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 |