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

Side by Side Diff: extensions/browser/extension_protocols.cc

Issue 237793003: Use default CSP for resource loading in webview (instead of platform app's CSP) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add test Created 6 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/extension_protocols.h" 5 #include "extensions/browser/extension_protocols.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 if (directory_path.value().empty()) { 404 if (directory_path.value().empty()) {
405 LOG(WARNING) << "Failed to GetPathForExtension: " << extension_id; 405 LOG(WARNING) << "Failed to GetPathForExtension: " << extension_id;
406 return NULL; 406 return NULL;
407 } 407 }
408 } 408 }
409 409
410 // Set up content security policy. 410 // Set up content security policy.
411 std::string content_security_policy; 411 std::string content_security_policy;
412 bool send_cors_header = false; 412 bool send_cors_header = false;
413 bool follow_symlinks_anywhere = false; 413 bool follow_symlinks_anywhere = false;
414
414 if (extension) { 415 if (extension) {
415 std::string resource_path = request->url().path(); 416 std::string resource_path = request->url().path();
416 content_security_policy = 417
417 extensions::CSPInfo::GetResourceContentSecurityPolicy(extension, 418 // Use default CSP for <webview>.
418 resource_path); 419 if (!ExtensionsBrowserClient::Get()->IsWebViewRequest(request)) {
420 content_security_policy =
421 extensions::CSPInfo::GetResourceContentSecurityPolicy(extension,
422 resource_path);
423 }
424
419 if ((extension->manifest_version() >= 2 || 425 if ((extension->manifest_version() >= 2 ||
420 extensions::WebAccessibleResourcesInfo::HasWebAccessibleResources( 426 extensions::WebAccessibleResourcesInfo::HasWebAccessibleResources(
421 extension)) && 427 extension)) &&
422 extensions::WebAccessibleResourcesInfo::IsResourceWebAccessible( 428 extensions::WebAccessibleResourcesInfo::IsResourceWebAccessible(
423 extension, resource_path)) 429 extension, resource_path)) {
424 send_cors_header = true; 430 send_cors_header = true;
431 }
425 432
426 follow_symlinks_anywhere = 433 follow_symlinks_anywhere =
427 (extension->creation_flags() & Extension::FOLLOW_SYMLINKS_ANYWHERE) 434 (extension->creation_flags() & Extension::FOLLOW_SYMLINKS_ANYWHERE)
428 != 0; 435 != 0;
429 } 436 }
430 437
431 // Create a job for a generated background page. 438 // Create a job for a generated background page.
432 std::string path = request->url().path(); 439 std::string path = request->url().path();
433 if (path.size() > 1 && 440 if (path.size() > 1 &&
434 path.substr(1) == extensions::kGeneratedBackgroundPageFilename) { 441 path.substr(1) == extensions::kGeneratedBackgroundPageFilename) {
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 return new net::HttpResponseHeaders(raw_headers); 545 return new net::HttpResponseHeaders(raw_headers);
539 } 546 }
540 547
541 net::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler( 548 net::URLRequestJobFactory::ProtocolHandler* CreateExtensionProtocolHandler(
542 bool is_incognito, 549 bool is_incognito,
543 extensions::InfoMap* extension_info_map) { 550 extensions::InfoMap* extension_info_map) {
544 return new ExtensionProtocolHandler(is_incognito, extension_info_map); 551 return new ExtensionProtocolHandler(is_incognito, extension_info_map);
545 } 552 }
546 553
547 } // namespace extensions 554 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698