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

Side by Side Diff: chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc

Issue 2479593006: Move enable extensions define to a build flag. (Closed)
Patch Set: Merge Created 4 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
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/loader/chrome_resource_dispatcher_host_delegate.h" 5 #include "chrome/browser/loader/chrome_resource_dispatcher_host_delegate.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 #include "content/public/browser/render_frame_host.h" 59 #include "content/public/browser/render_frame_host.h"
60 #include "content/public/browser/render_process_host.h" 60 #include "content/public/browser/render_process_host.h"
61 #include "content/public/browser/render_view_host.h" 61 #include "content/public/browser/render_view_host.h"
62 #include "content/public/browser/resource_context.h" 62 #include "content/public/browser/resource_context.h"
63 #include "content/public/browser/resource_dispatcher_host.h" 63 #include "content/public/browser/resource_dispatcher_host.h"
64 #include "content/public/browser/resource_request_info.h" 64 #include "content/public/browser/resource_request_info.h"
65 #include "content/public/browser/service_worker_context.h" 65 #include "content/public/browser/service_worker_context.h"
66 #include "content/public/browser/stream_info.h" 66 #include "content/public/browser/stream_info.h"
67 #include "content/public/browser/web_contents.h" 67 #include "content/public/browser/web_contents.h"
68 #include "content/public/common/resource_response.h" 68 #include "content/public/common/resource_response.h"
69 #include "extensions/features/features.h"
69 #include "net/base/load_flags.h" 70 #include "net/base/load_flags.h"
70 #include "net/base/load_timing_info.h" 71 #include "net/base/load_timing_info.h"
71 #include "net/base/request_priority.h" 72 #include "net/base/request_priority.h"
72 #include "net/http/http_response_headers.h" 73 #include "net/http/http_response_headers.h"
73 #include "net/ssl/client_cert_store.h" 74 #include "net/ssl/client_cert_store.h"
74 #include "net/url_request/url_request.h" 75 #include "net/url_request/url_request.h"
75 76
76 #if !defined(DISABLE_NACL) 77 #if !defined(DISABLE_NACL)
77 #include "chrome/browser/component_updater/pnacl_component_installer.h" 78 #include "chrome/browser/component_updater/pnacl_component_installer.h"
78 #endif 79 #endif
79 80
80 #if defined(ENABLE_EXTENSIONS) 81 #if BUILDFLAG(ENABLE_EXTENSIONS)
81 #include "chrome/browser/apps/app_url_redirector.h" 82 #include "chrome/browser/apps/app_url_redirector.h"
82 #include "chrome/browser/extensions/api/streams_private/streams_private_api.h" 83 #include "chrome/browser/extensions/api/streams_private/streams_private_api.h"
83 #include "chrome/browser/extensions/user_script_listener.h" 84 #include "chrome/browser/extensions/user_script_listener.h"
84 #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h" 85 #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h"
85 #include "extensions/browser/extension_throttle_manager.h" 86 #include "extensions/browser/extension_throttle_manager.h"
86 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h" 87 #include "extensions/browser/guest_view/web_view/web_view_renderer_state.h"
87 #include "extensions/browser/info_map.h" 88 #include "extensions/browser/info_map.h"
88 #include "extensions/common/constants.h" 89 #include "extensions/common/constants.h"
89 #include "extensions/common/extension_urls.h" 90 #include "extensions/common/extension_urls.h"
90 #include "extensions/common/manifest_handlers/mime_types_handler.h" 91 #include "extensions/common/manifest_handlers/mime_types_handler.h"
(...skipping 19 matching lines...) Expand all
110 #include "chrome/browser/chromeos/login/signin/merge_session_resource_throttle.h " 111 #include "chrome/browser/chromeos/login/signin/merge_session_resource_throttle.h "
111 #include "chrome/browser/chromeos/login/signin/merge_session_throttling_utils.h" 112 #include "chrome/browser/chromeos/login/signin/merge_session_throttling_utils.h"
112 #endif 113 #endif
113 114
114 using content::BrowserThread; 115 using content::BrowserThread;
115 using content::RenderViewHost; 116 using content::RenderViewHost;
116 using content::ResourceDispatcherHostLoginDelegate; 117 using content::ResourceDispatcherHostLoginDelegate;
117 using content::ResourceRequestInfo; 118 using content::ResourceRequestInfo;
118 using content::ResourceType; 119 using content::ResourceType;
119 120
120 #if defined(ENABLE_EXTENSIONS) 121 #if BUILDFLAG(ENABLE_EXTENSIONS)
121 using extensions::Extension; 122 using extensions::Extension;
122 using extensions::StreamsPrivateAPI; 123 using extensions::StreamsPrivateAPI;
123 #endif 124 #endif
124 125
125 #if defined(OS_ANDROID) 126 #if defined(OS_ANDROID)
126 using navigation_interception::InterceptNavigationDelegate; 127 using navigation_interception::InterceptNavigationDelegate;
127 #endif 128 #endif
128 129
129 namespace { 130 namespace {
130 131
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 166
166 if (prerender_contents) 167 if (prerender_contents)
167 prerender_contents->AddNetworkBytes(bytes); 168 prerender_contents->AddNetworkBytes(bytes);
168 169
169 prerender::PrerenderManager* prerender_manager = 170 prerender::PrerenderManager* prerender_manager =
170 GetPrerenderManager(web_contents); 171 GetPrerenderManager(web_contents);
171 if (prerender_manager) 172 if (prerender_manager)
172 prerender_manager->AddProfileNetworkBytesIfEnabled(bytes); 173 prerender_manager->AddProfileNetworkBytesIfEnabled(bytes);
173 } 174 }
174 175
175 #if defined(ENABLE_EXTENSIONS) 176 #if BUILDFLAG(ENABLE_EXTENSIONS)
176 void SendExecuteMimeTypeHandlerEvent( 177 void SendExecuteMimeTypeHandlerEvent(
177 std::unique_ptr<content::StreamInfo> stream, 178 std::unique_ptr<content::StreamInfo> stream,
178 int64_t expected_content_size, 179 int64_t expected_content_size,
179 const std::string& extension_id, 180 const std::string& extension_id,
180 const std::string& view_id, 181 const std::string& view_id,
181 bool embedded, 182 bool embedded,
182 int frame_tree_node_id, 183 int frame_tree_node_id,
183 int render_process_id, 184 int render_process_id,
184 int render_frame_id) { 185 int render_frame_id) {
185 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 186 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
(...skipping 21 matching lines...) Expand all
207 Profile* profile = 208 Profile* profile =
208 Profile::FromBrowserContext(web_contents->GetBrowserContext()); 209 Profile::FromBrowserContext(web_contents->GetBrowserContext());
209 210
210 StreamsPrivateAPI* streams_private = StreamsPrivateAPI::Get(profile); 211 StreamsPrivateAPI* streams_private = StreamsPrivateAPI::Get(profile);
211 if (!streams_private) 212 if (!streams_private)
212 return; 213 return;
213 streams_private->ExecuteMimeTypeHandler( 214 streams_private->ExecuteMimeTypeHandler(
214 extension_id, std::move(stream), view_id, expected_content_size, embedded, 215 extension_id, std::move(stream), view_id, expected_content_size, embedded,
215 frame_tree_node_id, render_process_id, render_frame_id); 216 frame_tree_node_id, render_process_id, render_frame_id);
216 } 217 }
217 #endif // !defined(ENABLE_EXTENSIONS) 218 #endif // !BUILDFLAG(ENABLE_EXTENSIONS)
218 219
219 void LaunchURL( 220 void LaunchURL(
220 const GURL& url, 221 const GURL& url,
221 int render_process_id, 222 int render_process_id,
222 const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, 223 const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter,
223 ui::PageTransition page_transition, 224 ui::PageTransition page_transition,
224 bool has_user_gesture, 225 bool has_user_gesture,
225 bool is_whitelisted) { 226 bool is_whitelisted) {
226 // If there is no longer a WebContents, the request may have raced with tab 227 // If there is no longer a WebContents, the request may have raced with tab
227 // closing. Don't fire the external request. (It may have been a prerender.) 228 // closing. Don't fire the external request. (It may have been a prerender.)
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 if (metrics_observer) { 371 if (metrics_observer) {
371 metrics_observer->OnRequestComplete(resource_type, was_cached, net_error); 372 metrics_observer->OnRequestComplete(resource_type, was_cached, net_error);
372 } 373 }
373 } 374 }
374 375
375 } // namespace 376 } // namespace
376 377
377 ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate() 378 ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate()
378 : download_request_limiter_(g_browser_process->download_request_limiter()), 379 : download_request_limiter_(g_browser_process->download_request_limiter()),
379 safe_browsing_(g_browser_process->safe_browsing_service()) 380 safe_browsing_(g_browser_process->safe_browsing_service())
380 #if defined(ENABLE_EXTENSIONS) 381 #if BUILDFLAG(ENABLE_EXTENSIONS)
381 , user_script_listener_(new extensions::UserScriptListener()) 382 , user_script_listener_(new extensions::UserScriptListener())
382 #endif 383 #endif
383 { 384 {
384 BrowserThread::PostTask( 385 BrowserThread::PostTask(
385 BrowserThread::IO, FROM_HERE, 386 BrowserThread::IO, FROM_HERE,
386 base::Bind(content::ServiceWorkerContext::AddExcludedHeadersForFetchEvent, 387 base::Bind(content::ServiceWorkerContext::AddExcludedHeadersForFetchEvent,
387 variations::GetVariationHeaderNames())); 388 variations::GetVariationHeaderNames()));
388 } 389 }
389 390
390 ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() { 391 ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() {
391 #if defined(ENABLE_EXTENSIONS) 392 #if BUILDFLAG(ENABLE_EXTENSIONS)
392 CHECK(stream_target_info_.empty()); 393 CHECK(stream_target_info_.empty());
393 #endif 394 #endif
394 } 395 }
395 396
396 bool ChromeResourceDispatcherHostDelegate::ShouldBeginRequest( 397 bool ChromeResourceDispatcherHostDelegate::ShouldBeginRequest(
397 const std::string& method, 398 const std::string& method,
398 const GURL& url, 399 const GURL& url,
399 ResourceType resource_type, 400 ResourceType resource_type,
400 content::ResourceContext* resource_context) { 401 content::ResourceContext* resource_context) {
401 DCHECK_CURRENTLY_ON(BrowserThread::IO); 402 DCHECK_CURRENTLY_ON(BrowserThread::IO);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 const policy::URLBlacklist::URLBlacklistState url_state = 555 const policy::URLBlacklist::URLBlacklistState url_state =
555 io_data->GetURLBlacklistState(url); 556 io_data->GetURLBlacklistState(url);
556 if (url_state == policy::URLBlacklist::URLBlacklistState::URL_IN_BLACKLIST) { 557 if (url_state == policy::URLBlacklist::URLBlacklistState::URL_IN_BLACKLIST) {
557 // It's a link with custom scheme and it's blacklisted. We return false here 558 // It's a link with custom scheme and it's blacklisted. We return false here
558 // and let it process as a normal URL. Eventually chrome_network_delegate 559 // and let it process as a normal URL. Eventually chrome_network_delegate
559 // will see it's in the blacklist and the user will be shown the blocked 560 // will see it's in the blacklist and the user will be shown the blocked
560 // content page. 561 // content page.
561 return false; 562 return false;
562 } 563 }
563 int child_id = info->GetChildID(); 564 int child_id = info->GetChildID();
564 #if defined(ENABLE_EXTENSIONS) 565 #if BUILDFLAG(ENABLE_EXTENSIONS)
565 // External protocols are disabled for guests. An exception is made for the 566 // External protocols are disabled for guests. An exception is made for the
566 // "mailto" protocol, so that pages that utilize it work properly in a 567 // "mailto" protocol, so that pages that utilize it work properly in a
567 // WebView. 568 // WebView.
568 ChromeNavigationUIData* navigation_data = 569 ChromeNavigationUIData* navigation_data =
569 static_cast<ChromeNavigationUIData*>(info->GetNavigationUIData()); 570 static_cast<ChromeNavigationUIData*>(info->GetNavigationUIData());
570 if ((extensions::WebViewRendererState::GetInstance()->IsGuest(child_id) || 571 if ((extensions::WebViewRendererState::GetInstance()->IsGuest(child_id) ||
571 (navigation_data && 572 (navigation_data &&
572 navigation_data->GetExtensionNavigationUIData()->is_web_view())) && 573 navigation_data->GetExtensionNavigationUIData()->is_web_view())) &&
573 !url.SchemeIs(url::kMailToScheme)) { 574 !url.SchemeIs(url::kMailToScheme)) {
574 return false; 575 return false;
575 } 576 }
576 #endif // defined(ENABLE_EXTENSIONS) 577 #endif // BUILDFLAG(ENABLE_EXTENSIONS)
577 578
578 #if defined(OS_ANDROID) 579 #if defined(OS_ANDROID)
579 // Main frame external protocols are handled by 580 // Main frame external protocols are handled by
580 // InterceptNavigationResourceThrottle. 581 // InterceptNavigationResourceThrottle.
581 if (info->IsMainFrame()) 582 if (info->IsMainFrame())
582 return false; 583 return false;
583 #endif // defined(ANDROID) 584 #endif // defined(ANDROID)
584 585
585 const bool is_whitelisted = 586 const bool is_whitelisted =
586 url_state == policy::URLBlacklist::URLBlacklistState::URL_IN_WHITELIST; 587 url_state == policy::URLBlacklist::URLBlacklistState::URL_IN_WHITELIST;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 throttles->push_back(first_throttle); 620 throttles->push_back(first_throttle);
620 621
621 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) 622 #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
622 bool is_subresource_request = 623 bool is_subresource_request =
623 resource_type != content::RESOURCE_TYPE_MAIN_FRAME; 624 resource_type != content::RESOURCE_TYPE_MAIN_FRAME;
624 throttles->push_back(new SupervisedUserResourceThrottle( 625 throttles->push_back(new SupervisedUserResourceThrottle(
625 request, !is_subresource_request, 626 request, !is_subresource_request,
626 io_data->supervised_user_url_filter())); 627 io_data->supervised_user_url_filter()));
627 #endif 628 #endif
628 629
629 #if defined(ENABLE_EXTENSIONS) 630 #if BUILDFLAG(ENABLE_EXTENSIONS)
630 content::ResourceThrottle* wait_for_extensions_init_throttle = 631 content::ResourceThrottle* wait_for_extensions_init_throttle =
631 user_script_listener_->CreateResourceThrottle(request->url(), 632 user_script_listener_->CreateResourceThrottle(request->url(),
632 resource_type); 633 resource_type);
633 if (wait_for_extensions_init_throttle) 634 if (wait_for_extensions_init_throttle)
634 throttles->push_back(wait_for_extensions_init_throttle); 635 throttles->push_back(wait_for_extensions_init_throttle);
635 636
636 extensions::ExtensionThrottleManager* extension_throttle_manager = 637 extensions::ExtensionThrottleManager* extension_throttle_manager =
637 io_data->GetExtensionThrottleManager(); 638 io_data->GetExtensionThrottleManager();
638 if (extension_throttle_manager) { 639 if (extension_throttle_manager) {
639 std::unique_ptr<content::ResourceThrottle> extension_throttle = 640 std::unique_ptr<content::ResourceThrottle> extension_throttle =
640 extension_throttle_manager->MaybeCreateThrottle(request); 641 extension_throttle_manager->MaybeCreateThrottle(request);
641 if (extension_throttle) 642 if (extension_throttle)
642 throttles->push_back(extension_throttle.release()); 643 throttles->push_back(extension_throttle.release());
643 } 644 }
644 #endif 645 #endif
645 646
646 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 647 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
647 if (info->GetVisibilityState() == blink::WebPageVisibilityStatePrerender) { 648 if (info->GetVisibilityState() == blink::WebPageVisibilityStatePrerender) {
648 throttles->push_back(new prerender::PrerenderResourceThrottle(request)); 649 throttles->push_back(new prerender::PrerenderResourceThrottle(request));
649 } 650 }
650 651
651 std::unique_ptr<PredictorResourceThrottle> predictor_throttle = 652 std::unique_ptr<PredictorResourceThrottle> predictor_throttle =
652 PredictorResourceThrottle::MaybeCreate(request, io_data); 653 PredictorResourceThrottle::MaybeCreate(request, io_data);
653 if (predictor_throttle) 654 if (predictor_throttle)
654 throttles->push_back(predictor_throttle.release()); 655 throttles->push_back(predictor_throttle.release());
655 } 656 }
656 657
657 bool ChromeResourceDispatcherHostDelegate::ShouldForceDownloadResource( 658 bool ChromeResourceDispatcherHostDelegate::ShouldForceDownloadResource(
658 const GURL& url, const std::string& mime_type) { 659 const GURL& url, const std::string& mime_type) {
659 #if defined(ENABLE_EXTENSIONS) 660 #if BUILDFLAG(ENABLE_EXTENSIONS)
660 // Special-case user scripts to get downloaded instead of viewed. 661 // Special-case user scripts to get downloaded instead of viewed.
661 return extensions::UserScript::IsURLUserScript(url, mime_type); 662 return extensions::UserScript::IsURLUserScript(url, mime_type);
662 #else 663 #else
663 return false; 664 return false;
664 #endif 665 #endif
665 } 666 }
666 667
667 bool ChromeResourceDispatcherHostDelegate::ShouldInterceptResourceAsStream( 668 bool ChromeResourceDispatcherHostDelegate::ShouldInterceptResourceAsStream(
668 net::URLRequest* request, 669 net::URLRequest* request,
669 const base::FilePath& plugin_path, 670 const base::FilePath& plugin_path,
670 const std::string& mime_type, 671 const std::string& mime_type,
671 GURL* origin, 672 GURL* origin,
672 std::string* payload) { 673 std::string* payload) {
673 #if defined(ENABLE_EXTENSIONS) 674 #if BUILDFLAG(ENABLE_EXTENSIONS)
674 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 675 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
675 ProfileIOData* io_data = 676 ProfileIOData* io_data =
676 ProfileIOData::FromResourceContext(info->GetContext()); 677 ProfileIOData::FromResourceContext(info->GetContext());
677 bool profile_is_off_the_record = io_data->IsOffTheRecord(); 678 bool profile_is_off_the_record = io_data->IsOffTheRecord();
678 const scoped_refptr<const extensions::InfoMap> extension_info_map( 679 const scoped_refptr<const extensions::InfoMap> extension_info_map(
679 io_data->GetExtensionInfoMap()); 680 io_data->GetExtensionInfoMap());
680 std::vector<std::string> whitelist = MimeTypesHandler::GetMIMETypeWhitelist(); 681 std::vector<std::string> whitelist = MimeTypesHandler::GetMIMETypeWhitelist();
681 // Go through the white-listed extensions and try to use them to intercept 682 // Go through the white-listed extensions and try to use them to intercept
682 // the URL request. 683 // the URL request.
683 for (const std::string& extension_id : whitelist) { 684 for (const std::string& extension_id : whitelist) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 } 718 }
718 } 719 }
719 } 720 }
720 #endif 721 #endif
721 return false; 722 return false;
722 } 723 }
723 724
724 void ChromeResourceDispatcherHostDelegate::OnStreamCreated( 725 void ChromeResourceDispatcherHostDelegate::OnStreamCreated(
725 net::URLRequest* request, 726 net::URLRequest* request,
726 std::unique_ptr<content::StreamInfo> stream) { 727 std::unique_ptr<content::StreamInfo> stream) {
727 #if defined(ENABLE_EXTENSIONS) 728 #if BUILDFLAG(ENABLE_EXTENSIONS)
728 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 729 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
729 std::map<net::URLRequest*, StreamTargetInfo>::iterator ix = 730 std::map<net::URLRequest*, StreamTargetInfo>::iterator ix =
730 stream_target_info_.find(request); 731 stream_target_info_.find(request);
731 CHECK(ix != stream_target_info_.end()); 732 CHECK(ix != stream_target_info_.end());
732 bool embedded = info->GetResourceType() != content::RESOURCE_TYPE_MAIN_FRAME; 733 bool embedded = info->GetResourceType() != content::RESOURCE_TYPE_MAIN_FRAME;
733 content::BrowserThread::PostTask( 734 content::BrowserThread::PostTask(
734 content::BrowserThread::UI, FROM_HERE, 735 content::BrowserThread::UI, FROM_HERE,
735 base::Bind(&SendExecuteMimeTypeHandlerEvent, base::Passed(&stream), 736 base::Bind(&SendExecuteMimeTypeHandlerEvent, base::Passed(&stream),
736 request->GetExpectedContentSize(), ix->second.extension_id, 737 request->GetExpectedContentSize(), ix->second.extension_id,
737 ix->second.view_id, embedded, info->GetFrameTreeNodeId(), 738 ix->second.view_id, embedded, info->GetFrameTreeNodeId(),
(...skipping 10 matching lines...) Expand all
748 ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context); 749 ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
749 750
750 // See if the response contains the X-Chrome-Manage-Accounts header. If so 751 // See if the response contains the X-Chrome-Manage-Accounts header. If so
751 // show the profile avatar bubble so that user can complete signin/out action 752 // show the profile avatar bubble so that user can complete signin/out action
752 // the native UI. 753 // the native UI.
753 signin::ProcessMirrorResponseHeaderIfExists(request, io_data, 754 signin::ProcessMirrorResponseHeaderIfExists(request, io_data,
754 info->GetChildID(), 755 info->GetChildID(),
755 info->GetRouteID()); 756 info->GetRouteID());
756 757
757 // Built-in additional protection for the chrome web store origin. 758 // Built-in additional protection for the chrome web store origin.
758 #if defined(ENABLE_EXTENSIONS) 759 #if BUILDFLAG(ENABLE_EXTENSIONS)
759 GURL webstore_url(extension_urls::GetWebstoreLaunchURL()); 760 GURL webstore_url(extension_urls::GetWebstoreLaunchURL());
760 if (request->url().SchemeIsHTTPOrHTTPS() && 761 if (request->url().SchemeIsHTTPOrHTTPS() &&
761 request->url().DomainIs(webstore_url.host().c_str())) { 762 request->url().DomainIs(webstore_url.host().c_str())) {
762 net::HttpResponseHeaders* response_headers = request->response_headers(); 763 net::HttpResponseHeaders* response_headers = request->response_headers();
763 if (response_headers && 764 if (response_headers &&
764 !response_headers->HasHeaderValue("x-frame-options", "deny") && 765 !response_headers->HasHeaderValue("x-frame-options", "deny") &&
765 !response_headers->HasHeaderValue("x-frame-options", "sameorigin")) { 766 !response_headers->HasHeaderValue("x-frame-options", "sameorigin")) {
766 response_headers->RemoveHeader("x-frame-options"); 767 response_headers->RemoveHeader("x-frame-options");
767 response_headers->AddHeader("x-frame-options: sameorigin"); 768 response_headers->AddHeader("x-frame-options: sameorigin");
768 } 769 }
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 base::Bind(&ChromeResourceDispatcherHostDelegate::OnAbortedFrameLoad, 879 base::Bind(&ChromeResourceDispatcherHostDelegate::OnAbortedFrameLoad,
879 base::Unretained(this), url, request_loading_time)); 880 base::Unretained(this), url, request_loading_time));
880 return; 881 return;
881 } 882 }
882 883
883 std::string metric_name = (request_loading_time.InMilliseconds() < 100 ? 884 std::string metric_name = (request_loading_time.InMilliseconds() < 100 ?
884 "Net.ErrAborted.Fast" : "Net.ErrAborted.Slow"); 885 "Net.ErrAborted.Fast" : "Net.ErrAborted.Slow");
885 rappor::SampleDomainAndRegistryFromGURL( 886 rappor::SampleDomainAndRegistryFromGURL(
886 g_browser_process->rappor_service(), metric_name, url); 887 g_browser_process->rappor_service(), metric_name, url);
887 } 888 }
OLDNEW
« no previous file with comments | « chrome/browser/loader/chrome_resource_dispatcher_host_delegate.h ('k') | chrome/browser/media/router/media_router_feature.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698