Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5301)

Unified Diff: chrome/browser/extensions/execute_code_in_tab_function.cc

Issue 9456037: Adding run_at to chrome.tabs.executeScript/insertCss. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/execute_code_in_tab_function.cc
diff --git a/chrome/browser/extensions/execute_code_in_tab_function.cc b/chrome/browser/extensions/execute_code_in_tab_function.cc
index d17de243da87b5ef0c556ab6cc2e0f899bf3e07f..ee3f5be7f08559010e2745c2ef5c4613c99db5af 100644
--- a/chrome/browser/extensions/execute_code_in_tab_function.cc
+++ b/chrome/browser/extensions/execute_code_in_tab_function.cc
@@ -20,6 +20,7 @@
#include "chrome/common/extensions/extension_error_utils.h"
#include "chrome/common/extensions/extension_file_util.h"
#include "chrome/common/extensions/extension_l10n_util.h"
+#include "chrome/common/extensions/extension_manifest_constants.h"
#include "chrome/common/extensions/extension_message_bundle.h"
#include "chrome/common/extensions/extension_messages.h"
#include "content/public/browser/render_view_host.h"
@@ -31,7 +32,8 @@ namespace keys = extension_tabs_module_constants;
ExecuteCodeInTabFunction::ExecuteCodeInTabFunction()
: execute_tab_id_(-1),
- all_frames_(false) {
+ all_frames_(false),
+ run_at_(UserScript::DOCUMENT_IDLE) {
}
ExecuteCodeInTabFunction::~ExecuteCodeInTabFunction() {
@@ -95,6 +97,21 @@ bool ExecuteCodeInTabFunction::RunImpl() {
return false;
}
+ if (script_info->HasKey(keys::kRunAtKey)) {
+ std::string run_string;
+ EXTENSION_FUNCTION_VALIDATE(script_info->GetString(
+ keys::kRunAtKey, &run_string));
+
+ if (run_string == extension_manifest_values::kRunAtDocumentStart)
+ run_at_ = UserScript::DOCUMENT_START;
+ else if (run_string == extension_manifest_values::kRunAtDocumentEnd)
+ run_at_ = UserScript::DOCUMENT_END;
+ else if (run_string == extension_manifest_values::kRunAtDocumentIdle)
+ run_at_ = UserScript::DOCUMENT_IDLE;
+ else
+ EXTENSION_FUNCTION_VALIDATE(false);
+ }
+
std::string code_string;
if (script_info->HasKey(keys::kCodeKey)) {
if (!script_info->GetString(keys::kCodeKey, &code_string))
@@ -222,6 +239,7 @@ bool ExecuteCodeInTabFunction::Execute(const std::string& code_string) {
params.is_javascript = is_js_code;
params.code = code_string;
params.all_frames = all_frames_;
+ params.run_at = run_at_;
params.in_main_world = false;
contents->web_contents()->GetRenderViewHost()->Send(
new ExtensionMsg_ExecuteCode(
« no previous file with comments | « chrome/browser/extensions/execute_code_in_tab_function.h ('k') | chrome/browser/extensions/execute_script_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698