Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 33053002: Pepper: Move FileIO host from renderer to browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes for bbudge Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/crash_logging.h" 8 #include "base/debug/crash_logging.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Treat CDM invocations like JavaScript. 201 // Treat CDM invocations like JavaScript.
202 if (plugin.name == ASCIIToUTF16(kWidevineCdmDisplayName)) { 202 if (plugin.name == ASCIIToUTF16(kWidevineCdmDisplayName)) {
203 DCHECK(plugin.type == WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS); 203 DCHECK(plugin.type == WebPluginInfo::PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS);
204 return true; 204 return true;
205 } 205 }
206 #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) 206 #endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
207 207
208 return false; 208 return false;
209 } 209 }
210 210
211 #if defined(ENABLE_PLUGINS)
212 const char* kPredefinedAllowedFileHandleOrigins[] = {
213 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", // see crbug.com/234789
214 "4EB74897CB187C7633357C2FE832E0AD6A44883A" // see crbug.com/234789
215 };
216 #endif
217
218 } // namespace 211 } // namespace
219 212
220 namespace chrome { 213 namespace chrome {
221 214
222 ChromeContentRendererClient::ChromeContentRendererClient() { 215 ChromeContentRendererClient::ChromeContentRendererClient() {
223 g_current_client = this; 216 g_current_client = this;
224
225 #if defined(ENABLE_PLUGINS)
226 for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i)
227 allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]);
228 #endif
229 } 217 }
230 218
231 ChromeContentRendererClient::~ChromeContentRendererClient() { 219 ChromeContentRendererClient::~ChromeContentRendererClient() {
232 g_current_client = NULL; 220 g_current_client = NULL;
233 } 221 }
234 222
235 void ChromeContentRendererClient::RenderThreadStarted() { 223 void ChromeContentRendererClient::RenderThreadStarted() {
236 RenderThread* thread = RenderThread::Get(); 224 RenderThread* thread = RenderThread::Get();
237 225
238 chrome_observer_.reset(new ChromeRenderProcessObserver(this)); 226 chrome_observer_.reset(new ChromeRenderProcessObserver(this));
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 } 1284 }
1297 1285
1298 bool ChromeContentRendererClient::IsExternalPepperPlugin( 1286 bool ChromeContentRendererClient::IsExternalPepperPlugin(
1299 const std::string& module_name) { 1287 const std::string& module_name) {
1300 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. 1288 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed.
1301 // We must defer certain plugin events for NaCl instances since we switch 1289 // We must defer certain plugin events for NaCl instances since we switch
1302 // from the in-process to the out-of-process proxy after instantiating them. 1290 // from the in-process to the out-of-process proxy after instantiating them.
1303 return module_name == "Native Client"; 1291 return module_name == "Native Client";
1304 } 1292 }
1305 1293
1306 bool ChromeContentRendererClient::IsPluginAllowedToCallRequestOSFileHandle(
1307 WebKit::WebPluginContainer* container) {
1308 #if defined(ENABLE_PLUGINS)
1309 if (!container)
1310 return false;
1311 GURL url = container->element().document().baseURL();
1312 const ExtensionSet* extension_set = extension_dispatcher_->extensions();
1313
1314 return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
1315 allowed_file_handle_origins_) ||
1316 IsHostAllowedByCommandLine(url, extension_set,
1317 switches::kAllowNaClFileHandleAPI);
1318 #else
1319 return false;
1320 #endif
1321 }
1322
1323 WebKit::WebSpeechSynthesizer* 1294 WebKit::WebSpeechSynthesizer*
1324 ChromeContentRendererClient::OverrideSpeechSynthesizer( 1295 ChromeContentRendererClient::OverrideSpeechSynthesizer(
1325 WebKit::WebSpeechSynthesizerClient* client) { 1296 WebKit::WebSpeechSynthesizerClient* client) {
1326 return new TtsDispatcher(client); 1297 return new TtsDispatcher(client);
1327 } 1298 }
1328 1299
1329 bool ChromeContentRendererClient::AllowBrowserPlugin( 1300 bool ChromeContentRendererClient::AllowBrowserPlugin(
1330 WebKit::WebPluginContainer* container) { 1301 WebKit::WebPluginContainer* container) {
1331 if (CommandLine::ForCurrentProcess()->HasSwitch( 1302 if (CommandLine::ForCurrentProcess()->HasSwitch(
1332 switches::kEnableBrowserPluginForAllViewTypes)) 1303 switches::kEnableBrowserPluginForAllViewTypes))
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 // SiteIsolationPolicy is off by default. We would like to activate cross-site 1358 // SiteIsolationPolicy is off by default. We would like to activate cross-site
1388 // document blocking (for UMA data collection) for normal renderer processes 1359 // document blocking (for UMA data collection) for normal renderer processes
1389 // running a normal web page from the Internet. We only turn on 1360 // running a normal web page from the Internet. We only turn on
1390 // SiteIsolationPolicy for a renderer process that does not have the extension 1361 // SiteIsolationPolicy for a renderer process that does not have the extension
1391 // flag on. 1362 // flag on.
1392 CommandLine* command_line = CommandLine::ForCurrentProcess(); 1363 CommandLine* command_line = CommandLine::ForCurrentProcess();
1393 return !command_line->HasSwitch(switches::kExtensionProcess); 1364 return !command_line->HasSwitch(switches::kExtensionProcess);
1394 } 1365 }
1395 1366
1396 } // namespace chrome 1367 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698