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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 base::Unretained(this))); | 297 base::Unretained(this))); |
298 RouteFunction("InIncognitoContext", | 298 RouteFunction("InIncognitoContext", |
299 base::Bind(&ProcessInfoNativeHandler::InIncognitoContext, | 299 base::Bind(&ProcessInfoNativeHandler::InIncognitoContext, |
300 base::Unretained(this))); | 300 base::Unretained(this))); |
301 RouteFunction("GetManifestVersion", | 301 RouteFunction("GetManifestVersion", |
302 base::Bind(&ProcessInfoNativeHandler::GetManifestVersion, | 302 base::Bind(&ProcessInfoNativeHandler::GetManifestVersion, |
303 base::Unretained(this))); | 303 base::Unretained(this))); |
304 RouteFunction("IsSendRequestDisabled", | 304 RouteFunction("IsSendRequestDisabled", |
305 base::Bind(&ProcessInfoNativeHandler::IsSendRequestDisabled, | 305 base::Bind(&ProcessInfoNativeHandler::IsSendRequestDisabled, |
306 base::Unretained(this))); | 306 base::Unretained(this))); |
| 307 RouteFunction("HasSwitch", |
| 308 base::Bind(&ProcessInfoNativeHandler::HasSwitch, |
| 309 base::Unretained(this))); |
307 } | 310 } |
308 | 311 |
| 312 private: |
309 void GetExtensionId(const v8::FunctionCallbackInfo<v8::Value>& args) { | 313 void GetExtensionId(const v8::FunctionCallbackInfo<v8::Value>& args) { |
310 args.GetReturnValue().Set(v8::String::New(extension_id_.c_str())); | 314 args.GetReturnValue().Set(v8::String::New(extension_id_.c_str())); |
311 } | 315 } |
312 | 316 |
313 void GetContextType(const v8::FunctionCallbackInfo<v8::Value>& args) { | 317 void GetContextType(const v8::FunctionCallbackInfo<v8::Value>& args) { |
314 args.GetReturnValue().Set(v8::String::New(context_type_.c_str())); | 318 args.GetReturnValue().Set(v8::String::New(context_type_.c_str())); |
315 } | 319 } |
316 | 320 |
317 void InIncognitoContext(const v8::FunctionCallbackInfo<v8::Value>& args) { | 321 void InIncognitoContext(const v8::FunctionCallbackInfo<v8::Value>& args) { |
318 args.GetReturnValue().Set(is_incognito_context_); | 322 args.GetReturnValue().Set(is_incognito_context_); |
319 } | 323 } |
320 | 324 |
321 void GetManifestVersion(const v8::FunctionCallbackInfo<v8::Value>& args) { | 325 void GetManifestVersion(const v8::FunctionCallbackInfo<v8::Value>& args) { |
322 args.GetReturnValue().Set(static_cast<int32_t>(manifest_version_)); | 326 args.GetReturnValue().Set(static_cast<int32_t>(manifest_version_)); |
323 } | 327 } |
324 | 328 |
325 void IsSendRequestDisabled(const v8::FunctionCallbackInfo<v8::Value>& args) { | 329 void IsSendRequestDisabled(const v8::FunctionCallbackInfo<v8::Value>& args) { |
326 if (send_request_disabled_) { | 330 if (send_request_disabled_) { |
327 args.GetReturnValue().Set(v8::String::New( | 331 args.GetReturnValue().Set(v8::String::New( |
328 "sendRequest and onRequest are obsolete." | 332 "sendRequest and onRequest are obsolete." |
329 " Please use sendMessage and onMessage instead.")); | 333 " Please use sendMessage and onMessage instead.")); |
330 } | 334 } |
331 } | 335 } |
332 | 336 |
333 private: | 337 void HasSwitch(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 338 CHECK(args.Length() == 1 && args[0]->IsString()); |
| 339 bool has_switch = CommandLine::ForCurrentProcess()->HasSwitch( |
| 340 *v8::String::AsciiValue(args[0])); |
| 341 args.GetReturnValue().Set(v8::Boolean::New(has_switch)); |
| 342 } |
| 343 |
334 std::string extension_id_; | 344 std::string extension_id_; |
335 std::string context_type_; | 345 std::string context_type_; |
336 bool is_incognito_context_; | 346 bool is_incognito_context_; |
337 int manifest_version_; | 347 int manifest_version_; |
338 bool send_request_disabled_; | 348 bool send_request_disabled_; |
339 }; | 349 }; |
340 | 350 |
341 void InstallAppBindings(ModuleSystem* module_system, | 351 void InstallAppBindings(ModuleSystem* module_system, |
342 v8::Handle<v8::Object> chrome) { | 352 v8::Handle<v8::Object> chrome) { |
343 module_system->SetLazyField(chrome, "app", "app", "chromeApp"); | 353 module_system->SetLazyField(chrome, "app", "app", "chromeApp"); |
(...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
964 | 974 |
965 // Platform app sources that are not API-specific.. | 975 // Platform app sources that are not API-specific.. |
966 source_map_.RegisterSource("tagWatcher", IDR_TAG_WATCHER_JS); | 976 source_map_.RegisterSource("tagWatcher", IDR_TAG_WATCHER_JS); |
967 // Note: webView not webview so that this doesn't interfere with the | 977 // Note: webView not webview so that this doesn't interfere with the |
968 // chrome.webview API bindings. | 978 // chrome.webview API bindings. |
969 source_map_.RegisterSource("webView", IDR_WEB_VIEW_JS); | 979 source_map_.RegisterSource("webView", IDR_WEB_VIEW_JS); |
970 source_map_.RegisterSource("webViewExperimental", | 980 source_map_.RegisterSource("webViewExperimental", |
971 IDR_WEB_VIEW_EXPERIMENTAL_JS); | 981 IDR_WEB_VIEW_EXPERIMENTAL_JS); |
972 source_map_.RegisterSource("denyWebView", IDR_WEB_VIEW_DENY_JS); | 982 source_map_.RegisterSource("denyWebView", IDR_WEB_VIEW_DENY_JS); |
973 source_map_.RegisterSource("adView", IDR_AD_VIEW_JS); | 983 source_map_.RegisterSource("adView", IDR_AD_VIEW_JS); |
974 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
975 switches::kEnableAdviewSrcAttribute)) { | |
976 source_map_.RegisterSource("adViewCustom", IDR_AD_VIEW_CUSTOM_JS); | |
977 } | |
978 source_map_.RegisterSource("denyAdView", IDR_AD_VIEW_DENY_JS); | 984 source_map_.RegisterSource("denyAdView", IDR_AD_VIEW_DENY_JS); |
979 source_map_.RegisterSource("platformApp", IDR_PLATFORM_APP_JS); | 985 source_map_.RegisterSource("platformApp", IDR_PLATFORM_APP_JS); |
980 source_map_.RegisterSource("injectAppTitlebar", IDR_INJECT_APP_TITLEBAR_JS); | 986 source_map_.RegisterSource("injectAppTitlebar", IDR_INJECT_APP_TITLEBAR_JS); |
981 } | 987 } |
982 | 988 |
983 void Dispatcher::PopulateLazyBindingsMap() { | 989 void Dispatcher::PopulateLazyBindingsMap() { |
984 lazy_bindings_map_["app"] = InstallAppBindings; | 990 lazy_bindings_map_["app"] = InstallAppBindings; |
985 lazy_bindings_map_["webstore"] = InstallWebstoreBindings; | 991 lazy_bindings_map_["webstore"] = InstallWebstoreBindings; |
986 } | 992 } |
987 | 993 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1107 } else { | 1113 } else { |
1108 module_system->Require("denyWebView"); | 1114 module_system->Require("denyWebView"); |
1109 } | 1115 } |
1110 } | 1116 } |
1111 | 1117 |
1112 // Same comment as above for <adview> tag. | 1118 // Same comment as above for <adview> tag. |
1113 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT && | 1119 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT && |
1114 is_within_platform_app) { | 1120 is_within_platform_app) { |
1115 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableAdview)) { | 1121 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableAdview)) { |
1116 if (extension->HasAPIPermission(APIPermission::kAdView)) { | 1122 if (extension->HasAPIPermission(APIPermission::kAdView)) { |
1117 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
1118 switches::kEnableAdviewSrcAttribute)) { | |
1119 module_system->Require("adViewCustom"); | |
1120 } | |
1121 module_system->Require("adView"); | 1123 module_system->Require("adView"); |
1122 } else { | 1124 } else { |
1123 module_system->Require("denyAdView"); | 1125 module_system->Require("denyAdView"); |
1124 } | 1126 } |
1125 } | 1127 } |
1126 } | 1128 } |
1127 | 1129 |
1128 VLOG(1) << "Num tracked contexts: " << v8_context_set_.size(); | 1130 VLOG(1) << "Num tracked contexts: " << v8_context_set_.size(); |
1129 } | 1131 } |
1130 | 1132 |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1505 RenderView* background_view = | 1507 RenderView* background_view = |
1506 ExtensionHelper::GetBackgroundPage(extension_id); | 1508 ExtensionHelper::GetBackgroundPage(extension_id); |
1507 if (background_view) { | 1509 if (background_view) { |
1508 background_view->Send(new ExtensionHostMsg_EventAck( | 1510 background_view->Send(new ExtensionHostMsg_EventAck( |
1509 background_view->GetRoutingID())); | 1511 background_view->GetRoutingID())); |
1510 } | 1512 } |
1511 } | 1513 } |
1512 } | 1514 } |
1513 | 1515 |
1514 } // namespace extensions | 1516 } // namespace extensions |
OLD | NEW |