| 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 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 using WebKit::WebURLError; | 132 using WebKit::WebURLError; |
| 133 using WebKit::WebURLRequest; | 133 using WebKit::WebURLRequest; |
| 134 using WebKit::WebURLResponse; | 134 using WebKit::WebURLResponse; |
| 135 using WebKit::WebVector; | 135 using WebKit::WebVector; |
| 136 | 136 |
| 137 namespace { | 137 namespace { |
| 138 | 138 |
| 139 const char kWebViewTagName[] = "WEBVIEW"; | 139 const char kWebViewTagName[] = "WEBVIEW"; |
| 140 const char kAdViewTagName[] = "ADVIEW"; | 140 const char kAdViewTagName[] = "ADVIEW"; |
| 141 | 141 |
| 142 chrome::ChromeContentRendererClient* g_current_client; |
| 143 |
| 142 // Explicitly register all extension ManifestHandlers needed to parse | 144 // Explicitly register all extension ManifestHandlers needed to parse |
| 143 // fields used in the renderer. | 145 // fields used in the renderer. |
| 144 void RegisterExtensionManifestHandlers() { | 146 void RegisterExtensionManifestHandlers() { |
| 145 (new extensions::AppIsolationHandler)->Register(); | 147 (new extensions::AppIsolationHandler)->Register(); |
| 146 (new extensions::BackgroundManifestHandler)->Register(); | 148 (new extensions::BackgroundManifestHandler)->Register(); |
| 147 (new extensions::CSPHandler(false))->Register(); // not platform app. | 149 (new extensions::CSPHandler(false))->Register(); // not platform app. |
| 148 (new extensions::CSPHandler(true))->Register(); // platform app. | 150 (new extensions::CSPHandler(true))->Register(); // platform app. |
| 149 (new extensions::DevToolsPageHandler)->Register(); | 151 (new extensions::DevToolsPageHandler)->Register(); |
| 150 (new extensions::IncognitoHandler)->Register(); | 152 (new extensions::IncognitoHandler)->Register(); |
| 151 (new extensions::PageActionHandler)->Register(); | 153 (new extensions::PageActionHandler)->Register(); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 if (!webview) | 229 if (!webview) |
| 228 return NULL; | 230 return NULL; |
| 229 return content::RenderView::FromWebView(webview); | 231 return content::RenderView::FromWebView(webview); |
| 230 } | 232 } |
| 231 | 233 |
| 232 } // namespace | 234 } // namespace |
| 233 | 235 |
| 234 namespace chrome { | 236 namespace chrome { |
| 235 | 237 |
| 236 ChromeContentRendererClient::ChromeContentRendererClient() { | 238 ChromeContentRendererClient::ChromeContentRendererClient() { |
| 239 g_current_client = this; |
| 237 } | 240 } |
| 238 | 241 |
| 239 ChromeContentRendererClient::~ChromeContentRendererClient() { | 242 ChromeContentRendererClient::~ChromeContentRendererClient() { |
| 243 g_current_client = NULL; |
| 240 } | 244 } |
| 241 | 245 |
| 242 void ChromeContentRendererClient::RenderThreadStarted() { | 246 void ChromeContentRendererClient::RenderThreadStarted() { |
| 243 chrome_observer_.reset(new ChromeRenderProcessObserver(this)); | 247 chrome_observer_.reset(new ChromeRenderProcessObserver(this)); |
| 244 extension_dispatcher_.reset(new extensions::Dispatcher()); | 248 extension_dispatcher_.reset(new extensions::Dispatcher()); |
| 245 net_predictor_.reset(new RendererNetPredictor()); | 249 net_predictor_.reset(new RendererNetPredictor()); |
| 246 spellcheck_.reset(new SpellCheck()); | 250 spellcheck_.reset(new SpellCheck()); |
| 247 visited_link_slave_.reset(new components::VisitedLinkSlave()); | 251 visited_link_slave_.reset(new components::VisitedLinkSlave()); |
| 248 #if defined(FULL_SAFE_BROWSING) | 252 #if defined(FULL_SAFE_BROWSING) |
| 249 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); | 253 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 switches::kEnableNaCl); | 591 switches::kEnableNaCl); |
| 588 } else { | 592 } else { |
| 589 // If this is an external plugin that handles the NaCl mime type, we | 593 // If this is an external plugin that handles the NaCl mime type, we |
| 590 // allow Native Client, so Native Client's integration tests work. | 594 // allow Native Client, so Native Client's integration tests work. |
| 591 is_nacl_unrestricted = true; | 595 is_nacl_unrestricted = true; |
| 592 } | 596 } |
| 593 if (is_nacl_plugin || is_nacl_mime_type) { | 597 if (is_nacl_plugin || is_nacl_mime_type) { |
| 594 GURL manifest_url = is_nacl_mime_type ? | 598 GURL manifest_url = is_nacl_mime_type ? |
| 595 url : GetNaClContentHandlerURL(actual_mime_type, plugin); | 599 url : GetNaClContentHandlerURL(actual_mime_type, plugin); |
| 596 const Extension* extension = | 600 const Extension* extension = |
| 597 extension_dispatcher_->extensions()->GetExtensionOrAppByURL( | 601 g_current_client->extension_dispatcher_->extensions()-> |
| 598 ExtensionURLInfo(manifest_url)); | 602 GetExtensionOrAppByURL(ExtensionURLInfo(manifest_url)); |
| 599 GURL top_url = frame->top()->document().url(); | 603 GURL top_url = frame->top()->document().url(); |
| 600 if (!IsNaClAllowed(manifest_url, | 604 if (!IsNaClAllowed(manifest_url, |
| 601 top_url, | 605 top_url, |
| 602 is_nacl_unrestricted, | 606 is_nacl_unrestricted, |
| 603 extension, | 607 extension, |
| 604 ¶ms)) { | 608 ¶ms)) { |
| 605 frame->addMessageToConsole( | 609 frame->addMessageToConsole( |
| 606 WebConsoleMessage( | 610 WebConsoleMessage( |
| 607 WebConsoleMessage::LevelError, | 611 WebConsoleMessage::LevelError, |
| 608 "Only unpacked extensions and apps installed from the " | 612 "Only unpacked extensions and apps installed from the " |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1139 if (thread) | 1143 if (thread) |
| 1140 thread->AddObserver(spellcheck_.get()); | 1144 thread->AddObserver(spellcheck_.get()); |
| 1141 } | 1145 } |
| 1142 | 1146 |
| 1143 void ChromeContentRendererClient::OnPurgeMemory() { | 1147 void ChromeContentRendererClient::OnPurgeMemory() { |
| 1144 DVLOG(1) << "Resetting spellcheck in renderer client"; | 1148 DVLOG(1) << "Resetting spellcheck in renderer client"; |
| 1145 SetSpellcheck(new SpellCheck()); | 1149 SetSpellcheck(new SpellCheck()); |
| 1146 } | 1150 } |
| 1147 | 1151 |
| 1148 bool ChromeContentRendererClient::IsAdblockInstalled() { | 1152 bool ChromeContentRendererClient::IsAdblockInstalled() { |
| 1149 return extension_dispatcher_->extensions()->Contains( | 1153 return g_current_client->extension_dispatcher_->extensions()->Contains( |
| 1150 "gighmmpiobklfepjocnamgkkbiglidom"); | 1154 "gighmmpiobklfepjocnamgkkbiglidom"); |
| 1151 } | 1155 } |
| 1152 | 1156 |
| 1153 bool ChromeContentRendererClient::IsAdblockPlusInstalled() { | 1157 bool ChromeContentRendererClient::IsAdblockPlusInstalled() { |
| 1154 return extension_dispatcher_->extensions()->Contains( | 1158 return g_current_client->extension_dispatcher_->extensions()->Contains( |
| 1155 "cfhdojbkjhnklbpkdaibdccddilifddb"); | 1159 "cfhdojbkjhnklbpkdaibdccddilifddb"); |
| 1156 } | 1160 } |
| 1157 | 1161 |
| 1158 bool ChromeContentRendererClient::IsAdblockWithWebRequestInstalled() { | 1162 bool ChromeContentRendererClient::IsAdblockWithWebRequestInstalled() { |
| 1159 return extension_dispatcher_->IsAdblockWithWebRequestInstalled(); | 1163 return g_current_client->extension_dispatcher_-> |
| 1164 IsAdblockWithWebRequestInstalled(); |
| 1160 } | 1165 } |
| 1161 | 1166 |
| 1162 bool ChromeContentRendererClient::IsAdblockPlusWithWebRequestInstalled() { | 1167 bool ChromeContentRendererClient::IsAdblockPlusWithWebRequestInstalled() { |
| 1163 return extension_dispatcher_->IsAdblockPlusWithWebRequestInstalled(); | 1168 return g_current_client->extension_dispatcher_-> |
| 1169 IsAdblockPlusWithWebRequestInstalled(); |
| 1164 } | 1170 } |
| 1165 | 1171 |
| 1166 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { | 1172 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { |
| 1167 return extension_dispatcher_->IsOtherExtensionWithWebRequestInstalled(); | 1173 return g_current_client->extension_dispatcher_-> |
| 1174 IsOtherExtensionWithWebRequestInstalled(); |
| 1168 } | 1175 } |
| 1169 | 1176 |
| 1170 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( | 1177 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( |
| 1171 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { | 1178 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { |
| 1172 #if defined(ENABLE_PLUGINS) | 1179 #if defined(ENABLE_PLUGINS) |
| 1173 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); | 1180 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); |
| 1174 #endif | 1181 #endif |
| 1175 } | 1182 } |
| 1176 | 1183 |
| 1177 bool ChromeContentRendererClient::AllowBrowserPlugin( | 1184 bool ChromeContentRendererClient::AllowBrowserPlugin( |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1227 return true; | 1234 return true; |
| 1228 } | 1235 } |
| 1229 | 1236 |
| 1230 if (request_os_file_handle_allowed_hosts_.count(inner.host())) | 1237 if (request_os_file_handle_allowed_hosts_.count(inner.host())) |
| 1231 return true; | 1238 return true; |
| 1232 | 1239 |
| 1233 return false; | 1240 return false; |
| 1234 } | 1241 } |
| 1235 | 1242 |
| 1236 } // namespace chrome | 1243 } // namespace chrome |
| OLD | NEW |