| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/renderer/dispatcher.h" | 5 #include "extensions/renderer/dispatcher.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/alias.h" | 10 #include "base/debug/alias.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/metrics/histogram_macros.h" | 12 #include "base/metrics/histogram_macros.h" |
| 13 #include "base/metrics/user_metrics_action.h" | 13 #include "base/metrics/user_metrics_action.h" |
| 14 #include "base/strings/string_piece.h" | 14 #include "base/strings/string_piece.h" |
| 15 #include "base/strings/string_split.h" | 15 #include "base/strings/string_split.h" |
| 16 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
| 17 #include "base/time/time.h" | 17 #include "base/time/time.h" |
| 18 #include "base/values.h" | 18 #include "base/values.h" |
| 19 #include "content/grit/content_resources.h" | 19 #include "content/grit/content_resources.h" |
| 20 #include "content/public/child/v8_value_converter.h" | 20 #include "content/public/child/v8_value_converter.h" |
| 21 #include "content/public/common/content_switches.h" | 21 #include "content/public/common/content_switches.h" |
| 22 #include "content/public/common/site_isolation_policy.h" |
| 22 #include "content/public/common/url_constants.h" | 23 #include "content/public/common/url_constants.h" |
| 23 #include "content/public/renderer/render_frame.h" | 24 #include "content/public/renderer/render_frame.h" |
| 24 #include "content/public/renderer/render_thread.h" | 25 #include "content/public/renderer/render_thread.h" |
| 25 #include "extensions/common/api/messaging/message.h" | 26 #include "extensions/common/api/messaging/message.h" |
| 26 #include "extensions/common/constants.h" | 27 #include "extensions/common/constants.h" |
| 27 #include "extensions/common/extension_api.h" | 28 #include "extensions/common/extension_api.h" |
| 28 #include "extensions/common/extension_messages.h" | 29 #include "extensions/common/extension_messages.h" |
| 29 #include "extensions/common/extension_urls.h" | 30 #include "extensions/common/extension_urls.h" |
| 30 #include "extensions/common/feature_switch.h" | 31 #include "extensions/common/feature_switch.h" |
| 31 #include "extensions/common/features/feature.h" | 32 #include "extensions/common/features/feature.h" |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 "extensionViewInternal", IDR_EXTENSION_VIEW_INTERNAL_CUSTOM_BINDINGS_JS)); | 467 "extensionViewInternal", IDR_EXTENSION_VIEW_INTERNAL_CUSTOM_BINDINGS_JS)); |
| 467 resources.push_back(std::make_pair("guestView", IDR_GUEST_VIEW_JS)); | 468 resources.push_back(std::make_pair("guestView", IDR_GUEST_VIEW_JS)); |
| 468 resources.push_back(std::make_pair("guestViewAttributes", | 469 resources.push_back(std::make_pair("guestViewAttributes", |
| 469 IDR_GUEST_VIEW_ATTRIBUTES_JS)); | 470 IDR_GUEST_VIEW_ATTRIBUTES_JS)); |
| 470 resources.push_back(std::make_pair("guestViewContainer", | 471 resources.push_back(std::make_pair("guestViewContainer", |
| 471 IDR_GUEST_VIEW_CONTAINER_JS)); | 472 IDR_GUEST_VIEW_CONTAINER_JS)); |
| 472 resources.push_back(std::make_pair("guestViewDeny", IDR_GUEST_VIEW_DENY_JS)); | 473 resources.push_back(std::make_pair("guestViewDeny", IDR_GUEST_VIEW_DENY_JS)); |
| 473 resources.push_back(std::make_pair("guestViewEvents", | 474 resources.push_back(std::make_pair("guestViewEvents", |
| 474 IDR_GUEST_VIEW_EVENTS_JS)); | 475 IDR_GUEST_VIEW_EVENTS_JS)); |
| 475 | 476 |
| 476 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 477 if (content::SiteIsolationPolicy::AreCrossProcessFramesPossible()) { |
| 477 ::switches::kSitePerProcess)) { | |
| 478 resources.push_back(std::make_pair("guestViewIframe", | 478 resources.push_back(std::make_pair("guestViewIframe", |
| 479 IDR_GUEST_VIEW_IFRAME_JS)); | 479 IDR_GUEST_VIEW_IFRAME_JS)); |
| 480 resources.push_back(std::make_pair("guestViewIframeContainer", | 480 resources.push_back(std::make_pair("guestViewIframeContainer", |
| 481 IDR_GUEST_VIEW_IFRAME_CONTAINER_JS)); | 481 IDR_GUEST_VIEW_IFRAME_CONTAINER_JS)); |
| 482 } | 482 } |
| 483 | 483 |
| 484 resources.push_back(std::make_pair("imageUtil", IDR_IMAGE_UTIL_JS)); | 484 resources.push_back(std::make_pair("imageUtil", IDR_IMAGE_UTIL_JS)); |
| 485 resources.push_back(std::make_pair("json_schema", IDR_JSON_SCHEMA_JS)); | 485 resources.push_back(std::make_pair("json_schema", IDR_JSON_SCHEMA_JS)); |
| 486 resources.push_back(std::make_pair("lastError", IDR_LAST_ERROR_JS)); | 486 resources.push_back(std::make_pair("lastError", IDR_LAST_ERROR_JS)); |
| 487 resources.push_back(std::make_pair("messaging", IDR_MESSAGING_JS)); | 487 resources.push_back(std::make_pair("messaging", IDR_MESSAGING_JS)); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 511 IDR_WEB_VIEW_ACTION_REQUESTS_JS)); | 511 IDR_WEB_VIEW_ACTION_REQUESTS_JS)); |
| 512 resources.push_back(std::make_pair("webViewApiMethods", | 512 resources.push_back(std::make_pair("webViewApiMethods", |
| 513 IDR_WEB_VIEW_API_METHODS_JS)); | 513 IDR_WEB_VIEW_API_METHODS_JS)); |
| 514 resources.push_back(std::make_pair("webViewAttributes", | 514 resources.push_back(std::make_pair("webViewAttributes", |
| 515 IDR_WEB_VIEW_ATTRIBUTES_JS)); | 515 IDR_WEB_VIEW_ATTRIBUTES_JS)); |
| 516 resources.push_back(std::make_pair("webViewConstants", | 516 resources.push_back(std::make_pair("webViewConstants", |
| 517 IDR_WEB_VIEW_CONSTANTS_JS)); | 517 IDR_WEB_VIEW_CONSTANTS_JS)); |
| 518 resources.push_back(std::make_pair("webViewEvents", IDR_WEB_VIEW_EVENTS_JS)); | 518 resources.push_back(std::make_pair("webViewEvents", IDR_WEB_VIEW_EVENTS_JS)); |
| 519 resources.push_back(std::make_pair("webViewInternal", | 519 resources.push_back(std::make_pair("webViewInternal", |
| 520 IDR_WEB_VIEW_INTERNAL_CUSTOM_BINDINGS_JS)); | 520 IDR_WEB_VIEW_INTERNAL_CUSTOM_BINDINGS_JS)); |
| 521 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 521 if (content::SiteIsolationPolicy::AreCrossProcessFramesPossible()) { |
| 522 ::switches::kSitePerProcess)) { | |
| 523 resources.push_back(std::make_pair("webViewIframe", | 522 resources.push_back(std::make_pair("webViewIframe", |
| 524 IDR_WEB_VIEW_IFRAME_JS)); | 523 IDR_WEB_VIEW_IFRAME_JS)); |
| 525 } | 524 } |
| 526 resources.push_back( | 525 resources.push_back( |
| 527 std::make_pair(mojo::kBindingsModuleName, IDR_MOJO_BINDINGS_JS)); | 526 std::make_pair(mojo::kBindingsModuleName, IDR_MOJO_BINDINGS_JS)); |
| 528 resources.push_back( | 527 resources.push_back( |
| 529 std::make_pair(mojo::kBufferModuleName, IDR_MOJO_BUFFER_JS)); | 528 std::make_pair(mojo::kBufferModuleName, IDR_MOJO_BUFFER_JS)); |
| 530 resources.push_back( | 529 resources.push_back( |
| 531 std::make_pair(mojo::kCodecModuleName, IDR_MOJO_CODEC_JS)); | 530 std::make_pair(mojo::kCodecModuleName, IDR_MOJO_CODEC_JS)); |
| 532 resources.push_back( | 531 resources.push_back( |
| (...skipping 893 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1426 context->GetAvailability("surfaceWorkerInternal").is_available()) { | 1425 context->GetAvailability("surfaceWorkerInternal").is_available()) { |
| 1427 module_system->Require("surfaceWorker"); | 1426 module_system->Require("surfaceWorker"); |
| 1428 } | 1427 } |
| 1429 | 1428 |
| 1430 // Require WebView. | 1429 // Require WebView. |
| 1431 if (context->GetAvailability("webViewInternal").is_available()) { | 1430 if (context->GetAvailability("webViewInternal").is_available()) { |
| 1432 module_system->Require("webView"); | 1431 module_system->Require("webView"); |
| 1433 module_system->Require("webViewApiMethods"); | 1432 module_system->Require("webViewApiMethods"); |
| 1434 module_system->Require("webViewAttributes"); | 1433 module_system->Require("webViewAttributes"); |
| 1435 | 1434 |
| 1436 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1435 if (content::SiteIsolationPolicy::AreCrossProcessFramesPossible()) { |
| 1437 ::switches::kSitePerProcess)) { | |
| 1438 module_system->Require("webViewIframe"); | 1436 module_system->Require("webViewIframe"); |
| 1439 } | 1437 } |
| 1440 } | 1438 } |
| 1441 | 1439 |
| 1442 // The "guestViewDeny" module must always be loaded last. It registers | 1440 // The "guestViewDeny" module must always be loaded last. It registers |
| 1443 // error-providing custom elements for the GuestView types that are not | 1441 // error-providing custom elements for the GuestView types that are not |
| 1444 // available, and thus all of those types must have been checked and loaded | 1442 // available, and thus all of those types must have been checked and loaded |
| 1445 // (or not loaded) beforehand. | 1443 // (or not loaded) beforehand. |
| 1446 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT) { | 1444 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT) { |
| 1447 module_system->Require("guestViewDeny"); | 1445 module_system->Require("guestViewDeny"); |
| 1448 } | 1446 } |
| 1449 } | 1447 } |
| 1450 | 1448 |
| 1451 } // namespace extensions | 1449 } // namespace extensions |
| OLD | NEW |