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

Side by Side Diff: chrome/browser/chrome_content_browser_client.cc

Issue 591063003: Split ChromeContentBrowserClient into smaller parts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months 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
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/browser/chrome_content_browser_client.h" 5 #include "chrome/browser/chrome_content_browser_client.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 2276 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 #endif 2287 #endif
2288 return NULL; 2288 return NULL;
2289 } 2289 }
2290 2290
2291 bool ChromeContentBrowserClient::AllowPepperSocketAPI( 2291 bool ChromeContentBrowserClient::AllowPepperSocketAPI(
2292 content::BrowserContext* browser_context, 2292 content::BrowserContext* browser_context,
2293 const GURL& url, 2293 const GURL& url,
2294 bool private_api, 2294 bool private_api,
2295 const content::SocketPermissionRequest* params) { 2295 const content::SocketPermissionRequest* params) {
2296 #if defined(ENABLE_EXTENSIONS) 2296 #if defined(ENABLE_EXTENSIONS)
2297 Profile* profile = Profile::FromBrowserContext(browser_context); 2297 return ChromeContentBrowserClientExtensionsPart::AllowPepperSocketAPI(
2298 const extensions::ExtensionSet* extension_set = NULL; 2298 browser_context, url, private_api, params, allowed_socket_origins_);
2299 if (profile) {
2300 const ExtensionService* ext_service =
2301 extensions::ExtensionSystem::Get(profile)->extension_service();
2302 if (ext_service) {
2303 extension_set = ext_service->extensions();
2304 }
2305 }
2306
2307 if (private_api) {
2308 // Access to private socket APIs is controlled by the whitelist.
2309 if (IsExtensionOrSharedModuleWhitelisted(url, extension_set,
Lei Zhang 2014/09/23 01:15:11 BTW, this is only declared if defined(ENABLE_PLUGI
2310 allowed_socket_origins_)) {
2311 return true;
2312 }
2313 } else {
2314 // Access to public socket APIs is controlled by extension permissions.
2315 if (url.is_valid() && url.SchemeIs(extensions::kExtensionScheme) &&
2316 extension_set) {
2317 const Extension* extension = extension_set->GetByID(url.host());
2318 if (extension) {
2319 const extensions::PermissionsData* permissions_data =
2320 extension->permissions_data();
2321 if (params) {
2322 extensions::SocketPermission::CheckParam check_params(
2323 params->type, params->host, params->port);
2324 if (permissions_data->CheckAPIPermissionWithParam(
2325 extensions::APIPermission::kSocket, &check_params)) {
2326 return true;
2327 }
2328 } else if (permissions_data->HasAPIPermission(
2329 extensions::APIPermission::kSocket)) {
2330 return true;
2331 }
2332 }
2333 }
2334 }
2335
2336 // Allow both public and private APIs if the command line says so.
2337 return IsHostAllowedByCommandLine(url, extension_set,
2338 switches::kAllowNaClSocketAPI);
2339 #else 2299 #else
2340 return false; 2300 return false;
2341 #endif 2301 #endif
2342 } 2302 }
2343 2303
2344 ui::SelectFilePolicy* ChromeContentBrowserClient::CreateSelectFilePolicy( 2304 ui::SelectFilePolicy* ChromeContentBrowserClient::CreateSelectFilePolicy(
2345 WebContents* web_contents) { 2305 WebContents* web_contents) {
2346 return new ChromeSelectFilePolicy(web_contents); 2306 return new ChromeSelectFilePolicy(web_contents);
2347 } 2307 }
2348 2308
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
2502 2462
2503 content::DevToolsManagerDelegate* 2463 content::DevToolsManagerDelegate*
2504 ChromeContentBrowserClient::GetDevToolsManagerDelegate() { 2464 ChromeContentBrowserClient::GetDevToolsManagerDelegate() {
2505 return new ChromeDevToolsManagerDelegate(); 2465 return new ChromeDevToolsManagerDelegate();
2506 } 2466 }
2507 2467
2508 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle( 2468 bool ChromeContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle(
2509 content::BrowserContext* browser_context, 2469 content::BrowserContext* browser_context,
2510 const GURL& url) { 2470 const GURL& url) {
2511 #if defined(ENABLE_EXTENSIONS) 2471 #if defined(ENABLE_EXTENSIONS)
2512 Profile* profile = Profile::FromBrowserContext(browser_context); 2472 return ChromeContentBrowserClientExtensionsPart::
2513 const extensions::ExtensionSet* extension_set = NULL; 2473 IsPluginAllowedToCallRequestOSFileHandle(
2514 if (profile) { 2474 browser_context, url, allowed_file_handle_origins_);
2515 const ExtensionService* ext_service =
2516 extensions::ExtensionSystem::Get(profile)->extension_service();
2517 if (ext_service) {
2518 extension_set = ext_service->extensions();
2519 }
2520 }
2521 return IsExtensionOrSharedModuleWhitelisted(url, extension_set,
2522 allowed_file_handle_origins_) ||
2523 IsHostAllowedByCommandLine(url, extension_set,
2524 switches::kAllowNaClFileHandleAPI);
2525 #else 2475 #else
2526 return false; 2476 return false;
2527 #endif 2477 #endif
2528 } 2478 }
2529 2479
2530 bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs( 2480 bool ChromeContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs(
2531 content::BrowserContext* browser_context, 2481 content::BrowserContext* browser_context,
2532 const GURL& url) { 2482 const GURL& url) {
2533 #if defined(ENABLE_EXTENSIONS) 2483 #if defined(ENABLE_EXTENSIONS)
2534 // Allow access for tests. 2484 // Allow access for tests.
2535 if (CommandLine::ForCurrentProcess()->HasSwitch( 2485 if (CommandLine::ForCurrentProcess()->HasSwitch(
2536 switches::kEnablePepperTesting)) { 2486 switches::kEnablePepperTesting)) {
2537 return true; 2487 return true;
2538 } 2488 }
2539 2489 return ChromeContentBrowserClientExtensionsPart::
2540 Profile* profile = Profile::FromBrowserContext(browser_context); 2490 IsPluginAllowedToUseDevChannelAPIs(
2541 const extensions::ExtensionSet* extension_set = NULL; 2491 browser_context, url, allowed_dev_channel_origins_);
2542 if (profile) {
2543 const ExtensionService* ext_service =
2544 extensions::ExtensionSystem::Get(profile)->extension_service();
2545 if (ext_service) {
2546 extension_set = ext_service->extensions();
2547 }
2548 }
2549
2550 // Allow access for whitelisted applications.
2551 if (IsExtensionOrSharedModuleWhitelisted(url,
2552 extension_set,
2553 allowed_dev_channel_origins_)) {
2554 return true;
2555 }
2556
2557 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
2558 // Allow dev channel APIs to be used on "Canary", "Dev", and "Unknown"
2559 // releases of Chrome. Permitting "Unknown" allows these APIs to be used on
2560 // Chromium builds as well.
2561 return channel <= chrome::VersionInfo::CHANNEL_DEV;
2562 #else 2492 #else
2563 return false; 2493 return false;
2564 #endif 2494 #endif
2565 } 2495 }
2566 2496
2567 net::CookieStore* 2497 net::CookieStore*
2568 ChromeContentBrowserClient::OverrideCookieStoreForRenderProcess( 2498 ChromeContentBrowserClient::OverrideCookieStoreForRenderProcess(
2569 int render_process_id) { 2499 int render_process_id) {
2570 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 2500 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
2571 if (!prerender_tracker_) 2501 if (!prerender_tracker_)
(...skipping 19 matching lines...) Expand all
2591 switches::kDisableWebRtcEncryption, 2521 switches::kDisableWebRtcEncryption,
2592 }; 2522 };
2593 to_command_line->CopySwitchesFrom(from_command_line, 2523 to_command_line->CopySwitchesFrom(from_command_line,
2594 kWebRtcDevSwitchNames, 2524 kWebRtcDevSwitchNames,
2595 arraysize(kWebRtcDevSwitchNames)); 2525 arraysize(kWebRtcDevSwitchNames));
2596 } 2526 }
2597 } 2527 }
2598 #endif // defined(ENABLE_WEBRTC) 2528 #endif // defined(ENABLE_WEBRTC)
2599 2529
2600 } // namespace chrome 2530 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698