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