| OLD | NEW |
| 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/renderer/extensions/dispatcher.h" | 5 #include "chrome/renderer/extensions/dispatcher.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/debug/alias.h" | 9 #include "base/debug/alias.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 arguments.push_back(converter->ToV8Value(*it, context->v8_context())); | 389 arguments.push_back(converter->ToV8Value(*it, context->v8_context())); |
| 390 } | 390 } |
| 391 | 391 |
| 392 context->module_system()->CallModuleMethod( | 392 context->module_system()->CallModuleMethod( |
| 393 module_name, method_name, &arguments); | 393 module_name, method_name, &arguments); |
| 394 } | 394 } |
| 395 | 395 |
| 396 } // namespace | 396 } // namespace |
| 397 | 397 |
| 398 Dispatcher::Dispatcher() | 398 Dispatcher::Dispatcher() |
| 399 : content_watcher_(new ContentWatcher(this)), | 399 : content_watcher_(new ContentWatcher()), |
| 400 is_webkit_initialized_(false), | 400 is_webkit_initialized_(false), |
| 401 webrequest_adblock_(false), | 401 webrequest_adblock_(false), |
| 402 webrequest_adblock_plus_(false), | 402 webrequest_adblock_plus_(false), |
| 403 webrequest_other_(false), | 403 webrequest_other_(false), |
| 404 source_map_(&ResourceBundle::GetSharedInstance()), | 404 source_map_(&ResourceBundle::GetSharedInstance()), |
| 405 v8_schema_registry_(new V8SchemaRegistry) { | 405 v8_schema_registry_(new V8SchemaRegistry) { |
| 406 const CommandLine& command_line = *(CommandLine::ForCurrentProcess()); | 406 const CommandLine& command_line = *(CommandLine::ForCurrentProcess()); |
| 407 is_extension_process_ = | 407 is_extension_process_ = |
| 408 command_line.HasSwitch(switches::kExtensionProcess) || | 408 command_line.HasSwitch(switches::kExtensionProcess) || |
| 409 command_line.HasSwitch(switches::kSingleProcess); | 409 command_line.HasSwitch(switches::kSingleProcess); |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 module_system->RegisterNativeHandler("messaging_natives", | 822 module_system->RegisterNativeHandler("messaging_natives", |
| 823 scoped_ptr<NativeHandler>(MessagingBindings::Get(this, context))); | 823 scoped_ptr<NativeHandler>(MessagingBindings::Get(this, context))); |
| 824 module_system->RegisterNativeHandler("apiDefinitions", | 824 module_system->RegisterNativeHandler("apiDefinitions", |
| 825 scoped_ptr<NativeHandler>(new ApiDefinitionsNatives(this, context))); | 825 scoped_ptr<NativeHandler>(new ApiDefinitionsNatives(this, context))); |
| 826 module_system->RegisterNativeHandler("sendRequest", | 826 module_system->RegisterNativeHandler("sendRequest", |
| 827 scoped_ptr<NativeHandler>( | 827 scoped_ptr<NativeHandler>( |
| 828 new SendRequestNatives(this, request_sender_.get(), context))); | 828 new SendRequestNatives(this, request_sender_.get(), context))); |
| 829 module_system->RegisterNativeHandler("setIcon", | 829 module_system->RegisterNativeHandler("setIcon", |
| 830 scoped_ptr<NativeHandler>( | 830 scoped_ptr<NativeHandler>( |
| 831 new SetIconNatives(this, request_sender_.get(), context))); | 831 new SetIconNatives(this, request_sender_.get(), context))); |
| 832 module_system->RegisterNativeHandler( | |
| 833 "contentWatcherNative", | |
| 834 content_watcher_->MakeNatives(context)); | |
| 835 module_system->RegisterNativeHandler("activityLogger", | 832 module_system->RegisterNativeHandler("activityLogger", |
| 836 scoped_ptr<NativeHandler>(new APIActivityLogger(this, context))); | 833 scoped_ptr<NativeHandler>(new APIActivityLogger(this, context))); |
| 837 module_system->RegisterNativeHandler("renderViewObserverNatives", | 834 module_system->RegisterNativeHandler("renderViewObserverNatives", |
| 838 scoped_ptr<NativeHandler>(new RenderViewObserverNatives(this, context))); | 835 scoped_ptr<NativeHandler>(new RenderViewObserverNatives(this, context))); |
| 839 | 836 |
| 840 // Natives used by multiple APIs. | 837 // Natives used by multiple APIs. |
| 841 module_system->RegisterNativeHandler("file_system_natives", | 838 module_system->RegisterNativeHandler("file_system_natives", |
| 842 scoped_ptr<NativeHandler>(new FileSystemNatives(context))); | 839 scoped_ptr<NativeHandler>(new FileSystemNatives(context))); |
| 843 | 840 |
| 844 // Custom bindings. | 841 // Custom bindings. |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 module_system->RegisterNativeHandler("runtime", | 888 module_system->RegisterNativeHandler("runtime", |
| 892 scoped_ptr<NativeHandler>(new RuntimeCustomBindings(this, context))); | 889 scoped_ptr<NativeHandler>(new RuntimeCustomBindings(this, context))); |
| 893 module_system->RegisterNativeHandler("tabs", | 890 module_system->RegisterNativeHandler("tabs", |
| 894 scoped_ptr<NativeHandler>(new TabsCustomBindings(this, context))); | 891 scoped_ptr<NativeHandler>(new TabsCustomBindings(this, context))); |
| 895 module_system->RegisterNativeHandler("webstore", | 892 module_system->RegisterNativeHandler("webstore", |
| 896 scoped_ptr<NativeHandler>(new WebstoreBindings(this, context))); | 893 scoped_ptr<NativeHandler>(new WebstoreBindings(this, context))); |
| 897 } | 894 } |
| 898 | 895 |
| 899 void Dispatcher::PopulateSourceMap() { | 896 void Dispatcher::PopulateSourceMap() { |
| 900 // Libraries. | 897 // Libraries. |
| 901 source_map_.RegisterSource("contentWatcher", IDR_CONTENT_WATCHER_JS); | |
| 902 source_map_.RegisterSource("entryIdManager", IDR_ENTRY_ID_MANAGER); | 898 source_map_.RegisterSource("entryIdManager", IDR_ENTRY_ID_MANAGER); |
| 903 source_map_.RegisterSource(kEventBindings, IDR_EVENT_BINDINGS_JS); | 899 source_map_.RegisterSource(kEventBindings, IDR_EVENT_BINDINGS_JS); |
| 904 source_map_.RegisterSource("imageUtil", IDR_IMAGE_UTIL_JS); | 900 source_map_.RegisterSource("imageUtil", IDR_IMAGE_UTIL_JS); |
| 905 source_map_.RegisterSource("json_schema", IDR_JSON_SCHEMA_JS); | 901 source_map_.RegisterSource("json_schema", IDR_JSON_SCHEMA_JS); |
| 906 source_map_.RegisterSource("lastError", IDR_LAST_ERROR_JS); | 902 source_map_.RegisterSource("lastError", IDR_LAST_ERROR_JS); |
| 907 source_map_.RegisterSource("messaging", IDR_MESSAGING_JS); | 903 source_map_.RegisterSource("messaging", IDR_MESSAGING_JS); |
| 908 source_map_.RegisterSource("messaging_utils", IDR_MESSAGING_UTILS_JS); | 904 source_map_.RegisterSource("messaging_utils", IDR_MESSAGING_UTILS_JS); |
| 909 source_map_.RegisterSource(kSchemaUtils, IDR_SCHEMA_UTILS_JS); | 905 source_map_.RegisterSource(kSchemaUtils, IDR_SCHEMA_UTILS_JS); |
| 910 source_map_.RegisterSource("sendRequest", IDR_SEND_REQUEST_JS); | 906 source_map_.RegisterSource("sendRequest", IDR_SEND_REQUEST_JS); |
| 911 source_map_.RegisterSource("setIcon", IDR_SET_ICON_JS); | 907 source_map_.RegisterSource("setIcon", IDR_SET_ICON_JS); |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1211 "$FONTFAMILY", system_font_family_); | 1207 "$FONTFAMILY", system_font_family_); |
| 1212 ReplaceFirstSubstringAfterOffset(&stylesheet, 0, | 1208 ReplaceFirstSubstringAfterOffset(&stylesheet, 0, |
| 1213 "$FONTSIZE", system_font_size_); | 1209 "$FONTSIZE", system_font_size_); |
| 1214 frame->document().insertUserStyleSheet( | 1210 frame->document().insertUserStyleSheet( |
| 1215 WebString::fromUTF8(stylesheet), WebDocument::UserStyleUserLevel); | 1211 WebString::fromUTF8(stylesheet), WebDocument::UserStyleUserLevel); |
| 1216 } | 1212 } |
| 1217 | 1213 |
| 1218 content_watcher_->DidCreateDocumentElement(frame); | 1214 content_watcher_->DidCreateDocumentElement(frame); |
| 1219 } | 1215 } |
| 1220 | 1216 |
| 1217 void Dispatcher::DidMatchCSS( |
| 1218 WebKit::WebFrame* frame, |
| 1219 const WebKit::WebVector<WebKit::WebString>& newlyMatchingSelectors, |
| 1220 const WebKit::WebVector<WebKit::WebString>& stoppedMatchingSelectors) { |
| 1221 content_watcher_->DidMatchCSS( |
| 1222 frame, newlyMatchingSelectors, stoppedMatchingSelectors); |
| 1223 } |
| 1224 |
| 1225 |
| 1221 void Dispatcher::OnActivateExtension(const std::string& extension_id) { | 1226 void Dispatcher::OnActivateExtension(const std::string& extension_id) { |
| 1222 const Extension* extension = extensions_.GetByID(extension_id); | 1227 const Extension* extension = extensions_.GetByID(extension_id); |
| 1223 if (!extension) { | 1228 if (!extension) { |
| 1224 // Extension was activated but was never loaded. This probably means that | 1229 // Extension was activated but was never loaded. This probably means that |
| 1225 // the renderer failed to load it (or the browser failed to tell us when it | 1230 // the renderer failed to load it (or the browser failed to tell us when it |
| 1226 // did). Failures shouldn't happen, but instead of crashing there (which | 1231 // did). Failures shouldn't happen, but instead of crashing there (which |
| 1227 // executes on all renderers) be conservative and only crash in the renderer | 1232 // executes on all renderers) be conservative and only crash in the renderer |
| 1228 // of the extension which failed to load; this one. | 1233 // of the extension which failed to load; this one. |
| 1229 std::string& error = extension_load_errors_[extension_id]; | 1234 std::string& error = extension_load_errors_[extension_id]; |
| 1230 char minidump[256]; | 1235 char minidump[256]; |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1561 RenderView* background_view = | 1566 RenderView* background_view = |
| 1562 ExtensionHelper::GetBackgroundPage(extension_id); | 1567 ExtensionHelper::GetBackgroundPage(extension_id); |
| 1563 if (background_view) { | 1568 if (background_view) { |
| 1564 background_view->Send(new ExtensionHostMsg_EventAck( | 1569 background_view->Send(new ExtensionHostMsg_EventAck( |
| 1565 background_view->GetRoutingID())); | 1570 background_view->GetRoutingID())); |
| 1566 } | 1571 } |
| 1567 } | 1572 } |
| 1568 } | 1573 } |
| 1569 | 1574 |
| 1570 } // namespace extensions | 1575 } // namespace extensions |
| OLD | NEW |