Chromium Code Reviews| 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/browser/extensions/api/declarative_webrequest/webrequest_action .h" | 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action .h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
| 12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "chrome/browser/extensions/api/declarative/deduping_factory.h" | 14 #include "chrome/browser/extensions/api/declarative/deduping_factory.h" |
| 15 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" | 15 #include "chrome/browser/extensions/api/declarative_webrequest/request_stage.h" |
| 16 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion.h" | 16 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit ion.h" |
| 17 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" | 17 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" |
| 18 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" | 18 #include "chrome/browser/extensions/api/web_request/web_request_api_constants.h" |
| 19 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" | 19 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" |
| 20 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" | 20 #include "chrome/browser/extensions/api/web_request/web_request_permissions.h" |
| 21 #include "chrome/browser/extensions/extension_renderer_state.h" | |
| 22 #include "content/public/browser/resource_request_info.h" | |
| 21 #include "content/public/common/url_constants.h" | 23 #include "content/public/common/url_constants.h" |
| 22 #include "extensions/browser/info_map.h" | 24 #include "extensions/browser/info_map.h" |
| 23 #include "extensions/common/error_utils.h" | 25 #include "extensions/common/error_utils.h" |
| 24 #include "extensions/common/extension.h" | 26 #include "extensions/common/extension.h" |
| 25 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 27 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 26 #include "net/url_request/url_request.h" | 28 #include "net/url_request/url_request.h" |
| 27 #include "third_party/re2/re2/re2.h" | 29 #include "third_party/re2/re2/re2.h" |
| 28 | 30 |
| 31 using content::ResourceRequestInfo; | |
| 32 | |
| 29 namespace extensions { | 33 namespace extensions { |
| 30 | 34 |
| 31 namespace helpers = extension_web_request_api_helpers; | 35 namespace helpers = extension_web_request_api_helpers; |
| 32 namespace keys = declarative_webrequest_constants; | 36 namespace keys = declarative_webrequest_constants; |
| 33 | 37 |
| 34 namespace { | 38 namespace { |
| 35 // Error messages. | 39 // Error messages. |
| 36 const char kIgnoreRulesRequiresParameterError[] = | 40 const char kIgnoreRulesRequiresParameterError[] = |
| 37 "IgnoreRules requires at least one parameter."; | 41 "IgnoreRules requires at least one parameter."; |
| 38 | 42 |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 474 const net::URLRequest* request, | 478 const net::URLRequest* request, |
| 475 bool crosses_incognito) const { | 479 bool crosses_incognito) const { |
| 476 if (WebRequestPermissions::HideRequest(extension_info_map, request)) | 480 if (WebRequestPermissions::HideRequest(extension_info_map, request)) |
| 477 return false; | 481 return false; |
| 478 | 482 |
| 479 // In unit tests we don't have an extension_info_map object here and skip host | 483 // In unit tests we don't have an extension_info_map object here and skip host |
| 480 // permission checks. | 484 // permission checks. |
| 481 if (!extension_info_map) | 485 if (!extension_info_map) |
| 482 return true; | 486 return true; |
| 483 | 487 |
| 488 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); | |
| 489 int process_id = info->GetChildID(); | |
| 490 int route_id = info->GetRouteID(); | |
| 491 ExtensionRendererState::WebViewInfo webview_info; | |
| 492 // The embedder can always access all hosts from within a <webview>. | |
| 493 // The same is not true of extensions. | |
| 494 if (ExtensionRendererState::GetInstance()->GetWebViewInfo( | |
| 495 process_id, route_id, &webview_info)) { | |
|
lazyboy
2014/05/29 17:50:14
Indent 4 more spaces.
Fady Samuel
2014/05/29 18:44:45
Done.
| |
| 496 return true; | |
| 497 } | |
| 484 WebRequestPermissions::HostPermissionsCheck permission_check = | 498 WebRequestPermissions::HostPermissionsCheck permission_check = |
| 485 WebRequestPermissions::REQUIRE_ALL_URLS; | 499 WebRequestPermissions::REQUIRE_ALL_URLS; |
| 486 switch (host_permissions_strategy()) { | 500 switch (host_permissions_strategy()) { |
| 487 case STRATEGY_DEFAULT: // Default value is already set. | 501 case STRATEGY_DEFAULT: // Default value is already set. |
| 488 break; | 502 break; |
| 489 case STRATEGY_NONE: | 503 case STRATEGY_NONE: |
| 490 permission_check = WebRequestPermissions::DO_NOT_CHECK_HOST; | 504 permission_check = WebRequestPermissions::DO_NOT_CHECK_HOST; |
| 491 break; | 505 break; |
| 492 case STRATEGY_HOST: | 506 case STRATEGY_HOST: |
| 493 permission_check = WebRequestPermissions::REQUIRE_HOST_PERMISSION; | 507 permission_check = WebRequestPermissions::REQUIRE_HOST_PERMISSION; |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1146 const base::Time& extension_install_time) const { | 1160 const base::Time& extension_install_time) const { |
| 1147 CHECK(request_data.stage & stages()); | 1161 CHECK(request_data.stage & stages()); |
| 1148 LinkedPtrEventResponseDelta result( | 1162 LinkedPtrEventResponseDelta result( |
| 1149 new extension_web_request_api_helpers::EventResponseDelta( | 1163 new extension_web_request_api_helpers::EventResponseDelta( |
| 1150 extension_id, extension_install_time)); | 1164 extension_id, extension_install_time)); |
| 1151 result->messages_to_extension.insert(message_); | 1165 result->messages_to_extension.insert(message_); |
| 1152 return result; | 1166 return result; |
| 1153 } | 1167 } |
| 1154 | 1168 |
| 1155 } // namespace extensions | 1169 } // namespace extensions |
| OLD | NEW |