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

Side by Side Diff: chrome/browser/chromeos/accessibility/accessibility_util.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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/extensions/execute_code_in_tab_function.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" 5 #include "chrome/browser/chromeos/accessibility/accessibility_util.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/browser/accessibility/accessibility_extension_api.h" 10 #include "chrome/browser/accessibility/accessibility_extension_api.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/extensions/component_loader.h" 12 #include "chrome/browser/extensions/component_loader.h"
13 #include "chrome/browser/extensions/extension_service.h" 13 #include "chrome/browser/extensions/extension_service.h"
14 #include "chrome/browser/extensions/file_reader.h" 14 #include "chrome/browser/extensions/file_reader.h"
15 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/profiles/profile_manager.h" 16 #include "chrome/browser/profiles/profile_manager.h"
17 #include "chrome/browser/speech/extension_api/tts_extension_api_platform.h" 17 #include "chrome/browser/speech/extension_api/tts_extension_api_platform.h"
18 #include "chrome/common/extensions/extension_messages.h" 18 #include "chrome/common/extensions/extension_messages.h"
19 #include "chrome/common/extensions/extension_resource.h" 19 #include "chrome/common/extensions/extension_resource.h"
20 #include "chrome/common/extensions/user_script.h"
20 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
21 #include "content/public/browser/render_view_host.h" 22 #include "content/public/browser/render_view_host.h"
22 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
23 #include "content/public/browser/web_ui.h" 24 #include "content/public/browser/web_ui.h"
24 #include "grit/browser_resources.h" 25 #include "grit/browser_resources.h"
25 #include "grit/generated_resources.h" 26 #include "grit/generated_resources.h"
26 #include "ui/base/l10n/l10n_util.h" 27 #include "ui/base/l10n/l10n_util.h"
27 #include "ui/base/resource/resource_bundle.h" 28 #include "ui/base/resource/resource_bundle.h"
28 29
29 using content::RenderViewHost; 30 using content::RenderViewHost;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 } 65 }
65 66
66 private: 67 private:
67 void OnFileLoaded(bool success, const std::string& data) { 68 void OnFileLoaded(bool success, const std::string& data) {
68 if (success) { 69 if (success) {
69 ExtensionMsg_ExecuteCode_Params params; 70 ExtensionMsg_ExecuteCode_Params params;
70 params.request_id = 0; 71 params.request_id = 0;
71 params.extension_id = extension_id_; 72 params.extension_id = extension_id_;
72 params.is_javascript = true; 73 params.is_javascript = true;
73 params.code = data; 74 params.code = data;
75 params.run_at = UserScript::DOCUMENT_IDLE;
74 params.all_frames = true; 76 params.all_frames = true;
75 params.in_main_world = false; 77 params.in_main_world = false;
76 render_view_host_->Send(new ExtensionMsg_ExecuteCode( 78 render_view_host_->Send(new ExtensionMsg_ExecuteCode(
77 render_view_host_->GetRoutingID(), params)); 79 render_view_host_->GetRoutingID(), params));
78 } 80 }
79 Run(); 81 Run();
80 } 82 }
81 83
82 std::string extension_id_; 84 std::string extension_id_;
83 RenderViewHost* render_view_host_; 85 RenderViewHost* render_view_host_;
(...skipping 19 matching lines...) Expand all
103 Speak(l10n_util::GetStringUTF8( 105 Speak(l10n_util::GetStringUTF8(
104 enabled ? IDS_CHROMEOS_ACC_SPOKEN_FEEDBACK_ENABLED : 106 enabled ? IDS_CHROMEOS_ACC_SPOKEN_FEEDBACK_ENABLED :
105 IDS_CHROMEOS_ACC_SPOKEN_FEEDBACK_DISABLED).c_str()); 107 IDS_CHROMEOS_ACC_SPOKEN_FEEDBACK_DISABLED).c_str());
106 108
107 // Load/Unload ChromeVox 109 // Load/Unload ChromeVox
108 Profile* profile = ProfileManager::GetDefaultProfile(); 110 Profile* profile = ProfileManager::GetDefaultProfile();
109 ExtensionService* extension_service = 111 ExtensionService* extension_service =
110 profile->GetExtensionService(); 112 profile->GetExtensionService();
111 FilePath path = FilePath(extension_misc::kAccessExtensionPath) 113 FilePath path = FilePath(extension_misc::kAccessExtensionPath)
112 .AppendASCII(extension_misc::kChromeVoxDirectoryName); 114 .AppendASCII(extension_misc::kChromeVoxDirectoryName);
113 if (enabled) { // Load ChromeVox 115 if (enabled) { // Load ChromeVox
114 const Extension* extension = 116 const Extension* extension =
115 extension_service->component_loader()->Add(IDR_CHROMEVOX_MANIFEST, 117 extension_service->component_loader()->Add(IDR_CHROMEVOX_MANIFEST,
116 path); 118 path);
117 119
118 if (login_web_ui) { 120 if (login_web_ui) {
119 RenderViewHost* render_view_host = 121 RenderViewHost* render_view_host =
120 login_web_ui->GetWebContents()->GetRenderViewHost(); 122 login_web_ui->GetWebContents()->GetRenderViewHost();
121 // Set a flag to tell ChromeVox that it's just been enabled, 123 // Set a flag to tell ChromeVox that it's just been enabled,
122 // so that it won't interrupt our speech feedback enabled message. 124 // so that it won't interrupt our speech feedback enabled message.
123 ExtensionMsg_ExecuteCode_Params params; 125 ExtensionMsg_ExecuteCode_Params params;
124 params.request_id = 0; 126 params.request_id = 0;
125 params.extension_id = extension->id(); 127 params.extension_id = extension->id();
126 params.is_javascript = true; 128 params.is_javascript = true;
127 params.code = "window.INJECTED_AFTER_LOAD = true;"; 129 params.code = "window.INJECTED_AFTER_LOAD = true;";
130 params.run_at = UserScript::DOCUMENT_IDLE;
128 params.all_frames = true; 131 params.all_frames = true;
129 params.in_main_world = false; 132 params.in_main_world = false;
130 render_view_host->Send(new ExtensionMsg_ExecuteCode( 133 render_view_host->Send(new ExtensionMsg_ExecuteCode(
131 render_view_host->GetRoutingID(), params)); 134 render_view_host->GetRoutingID(), params));
132 135
133 // Inject ChromeVox' content scripts. 136 // Inject ChromeVox' content scripts.
134 ContentScriptLoader* loader = new ContentScriptLoader( 137 ContentScriptLoader* loader = new ContentScriptLoader(
135 extension->id(), render_view_host); 138 extension->id(), render_view_host);
136 139
137 for (size_t i = 0; i < extension->content_scripts().size(); i++) { 140 for (size_t i = 0; i < extension->content_scripts().size(); i++) {
138 const UserScript& script = extension->content_scripts()[i]; 141 const UserScript& script = extension->content_scripts()[i];
139 for (size_t j = 0; j < script.js_scripts().size(); ++j) { 142 for (size_t j = 0; j < script.js_scripts().size(); ++j) {
140 const UserScript::File &file = script.js_scripts()[j]; 143 const UserScript::File &file = script.js_scripts()[j];
141 ExtensionResource resource = extension->GetResource( 144 ExtensionResource resource = extension->GetResource(
142 file.relative_path()); 145 file.relative_path());
143 loader->AppendScript(resource); 146 loader->AppendScript(resource);
144 } 147 }
145 } 148 }
146 loader->Run(); // It cleans itself up when done. 149 loader->Run(); // It cleans itself up when done.
147 } 150 }
148 151
149 DLOG(INFO) << "ChromeVox was Loaded."; 152 DLOG(INFO) << "ChromeVox was Loaded.";
150 } else { // Unload ChromeVox 153 } else { // Unload ChromeVox
151 extension_service->component_loader()->Remove(path); 154 extension_service->component_loader()->Remove(path);
152 DLOG(INFO) << "ChromeVox was Unloaded."; 155 DLOG(INFO) << "ChromeVox was Unloaded.";
153 } 156 }
154 } 157 }
155 158
156 void EnableHighContrast(bool enabled) { 159 void EnableHighContrast(bool enabled) {
157 PrefService* pref_service = g_browser_process->local_state(); 160 PrefService* pref_service = g_browser_process->local_state();
158 pref_service->SetBoolean(prefs::kHighContrastEnabled, enabled); 161 pref_service->SetBoolean(prefs::kHighContrastEnabled, enabled);
159 pref_service->CommitPendingWrite(); 162 pref_service->CommitPendingWrite();
160 } 163 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 return spoken_feedback_enabled; 201 return spoken_feedback_enabled;
199 } 202 }
200 203
201 void MaybeSpeak(const std::string& utterance) { 204 void MaybeSpeak(const std::string& utterance) {
202 if (IsSpokenFeedbackEnabled()) 205 if (IsSpokenFeedbackEnabled())
203 Speak(utterance); 206 Speak(utterance);
204 } 207 }
205 208
206 } // namespace accessibility 209 } // namespace accessibility
207 } // namespace chromeos 210 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/execute_code_in_tab_function.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698