| 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/chrome_content_renderer_client.h" | 5 #include "chrome/renderer/chrome_content_renderer_client.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 | 224 |
| 225 // chrome:, and chrome-extension: resources shouldn't trigger insecure | 225 // chrome:, and chrome-extension: resources shouldn't trigger insecure |
| 226 // content warnings. | 226 // content warnings. |
| 227 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); | 227 WebSecurityPolicy::registerURLSchemeAsSecure(chrome_ui_scheme); |
| 228 | 228 |
| 229 WebString extension_scheme(ASCIIToUTF16(chrome::kExtensionScheme)); | 229 WebString extension_scheme(ASCIIToUTF16(chrome::kExtensionScheme)); |
| 230 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); | 230 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); |
| 231 | 231 |
| 232 // chrome-extension: resources should be allowed to receive CORS requests. | 232 // chrome-extension: resources should be allowed to receive CORS requests. |
| 233 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); | 233 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); |
| 234 |
| 235 WebString extension_resource_scheme( |
| 236 ASCIIToUTF16(chrome::kExtensionResourceScheme)); |
| 237 WebSecurityPolicy::registerURLSchemeAsSecure(extension_resource_scheme); |
| 238 |
| 239 // chrome-extension-resource: resources should be allowed to receive CORS |
| 240 // requests. |
| 241 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_resource_scheme); |
| 234 } | 242 } |
| 235 | 243 |
| 236 void ChromeContentRendererClient::RenderViewCreated( | 244 void ChromeContentRendererClient::RenderViewCreated( |
| 237 content::RenderView* render_view) { | 245 content::RenderView* render_view) { |
| 238 ContentSettingsObserver* content_settings = | 246 ContentSettingsObserver* content_settings = |
| 239 new ContentSettingsObserver(render_view); | 247 new ContentSettingsObserver(render_view); |
| 240 if (chrome_observer_.get()) { | 248 if (chrome_observer_.get()) { |
| 241 content_settings->SetContentSettingRules( | 249 content_settings->SetContentSettingRules( |
| 242 chrome_observer_->content_setting_rules()); | 250 chrome_observer_->content_setting_rules()); |
| 243 } | 251 } |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 if (is_extension_url != extension_dispatcher_->is_extension_process()) | 745 if (is_extension_url != extension_dispatcher_->is_extension_process()) |
| 738 return true; | 746 return true; |
| 739 } | 747 } |
| 740 | 748 |
| 741 return false; | 749 return false; |
| 742 } | 750 } |
| 743 | 751 |
| 744 bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame, | 752 bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame, |
| 745 const GURL& url, | 753 const GURL& url, |
| 746 GURL* new_url) { | 754 GURL* new_url) { |
| 747 // If the request is for an extension resource, check whether it should be | 755 // Check whether the request should be allowed. If not allowed, we reset the |
| 748 // allowed. If not allowed, we reset the URL to something invalid to prevent | 756 // URL to something invalid to prevent the request and cause an error. |
| 749 // the request and cause an error. | |
| 750 if (url.SchemeIs(chrome::kExtensionScheme) && | 757 if (url.SchemeIs(chrome::kExtensionScheme) && |
| 751 !ExtensionResourceRequestPolicy::CanRequestResource( | 758 !ExtensionResourceRequestPolicy::CanRequestResource( |
| 752 url, | 759 url, |
| 753 frame, | 760 frame, |
| 754 extension_dispatcher_->extensions())) { | 761 extension_dispatcher_->extensions())) { |
| 755 *new_url = GURL("chrome-extension://invalid/"); | 762 *new_url = GURL("chrome-extension://invalid/"); |
| 756 return true; | 763 return true; |
| 764 |
| 765 } |
| 766 |
| 767 if (url.SchemeIs(chrome::kExtensionResourceScheme) && |
| 768 !ExtensionResourceRequestPolicy::CanRequestExtensionResourceScheme( |
| 769 url, |
| 770 frame)) { |
| 771 *new_url = GURL("chrome-extension-resource://invalid/"); |
| 772 return true; |
| 757 } | 773 } |
| 758 | 774 |
| 759 return false; | 775 return false; |
| 760 } | 776 } |
| 761 | 777 |
| 762 bool ChromeContentRendererClient::ShouldPumpEventsDuringCookieMessage() { | 778 bool ChromeContentRendererClient::ShouldPumpEventsDuringCookieMessage() { |
| 763 // We no longer pump messages, even under Chrome Frame. We rely on cookie | 779 // We no longer pump messages, even under Chrome Frame. We rely on cookie |
| 764 // read requests handled by CF not putting up UI or causing other actions | 780 // read requests handled by CF not putting up UI or causing other actions |
| 765 // that would require us to pump messages. This fixes http://crbug.com/110090. | 781 // that would require us to pump messages. This fixes http://crbug.com/110090. |
| 766 return false; | 782 return false; |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 900 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { | 916 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { |
| 901 return extension_dispatcher_->IsOtherExtensionWithWebRequestInstalled(); | 917 return extension_dispatcher_->IsOtherExtensionWithWebRequestInstalled(); |
| 902 } | 918 } |
| 903 | 919 |
| 904 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( | 920 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( |
| 905 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { | 921 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { |
| 906 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); | 922 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); |
| 907 } | 923 } |
| 908 | 924 |
| 909 } // namespace chrome | 925 } // namespace chrome |
| OLD | NEW |