| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 document_loader_->GetFrame()->Loader().ProvisionalDocumentLoader()) { | 346 document_loader_->GetFrame()->Loader().ProvisionalDocumentLoader()) { |
| 347 FrameClientHintsPreferencesContext hints_context(GetFrame()); | 347 FrameClientHintsPreferencesContext hints_context(GetFrame()); |
| 348 document_loader_->GetClientHintsPreferences() | 348 document_loader_->GetClientHintsPreferences() |
| 349 .UpdateFromAcceptClientHintsHeader( | 349 .UpdateFromAcceptClientHintsHeader( |
| 350 response.HttpHeaderField(HTTPNames::Accept_CH), &hints_context); | 350 response.HttpHeaderField(HTTPNames::Accept_CH), &hints_context); |
| 351 // When response is received with a provisional docloader, the resource | 351 // When response is received with a provisional docloader, the resource |
| 352 // haven't committed yet, and we cannot load resources, only preconnect. | 352 // haven't committed yet, and we cannot load resources, only preconnect. |
| 353 resource_loading_policy = LinkLoader::kDoNotLoadResources; | 353 resource_loading_policy = LinkLoader::kDoNotLoadResources; |
| 354 } | 354 } |
| 355 LinkLoader::LoadLinksFromHeader( | 355 LinkLoader::LoadLinksFromHeader( |
| 356 response.HttpHeaderField(HTTPNames::Link), response.Url(), | 356 response.HttpHeaderField(HTTPNames::Link), response.Url(), *GetFrame(), |
| 357 GetFrame()->GetDocument(), NetworkHintsInterfaceImpl(), | 357 GetDocument(), NetworkHintsInterfaceImpl(), resource_loading_policy, |
| 358 resource_loading_policy, LinkLoader::kLoadAll, nullptr); | 358 LinkLoader::kLoadAll, nullptr); |
| 359 | 359 |
| 360 if (response.HasMajorCertificateErrors()) { | 360 if (response.HasMajorCertificateErrors()) { |
| 361 MixedContentChecker::HandleCertificateError(GetFrame(), response, | 361 MixedContentChecker::HandleCertificateError(GetFrame(), response, |
| 362 frame_type, request_context); | 362 frame_type, request_context); |
| 363 } | 363 } |
| 364 | 364 |
| 365 GetFrame()->Loader().Progress().IncrementProgress(identifier, response); | 365 GetFrame()->Loader().Progress().IncrementProgress(identifier, response); |
| 366 GetLocalFrameClient()->DispatchDidReceiveResponse(response); | 366 GetLocalFrameClient()->DispatchDidReceiveResponse(response); |
| 367 DocumentLoader* document_loader = MasterDocumentLoader(); | 367 DocumentLoader* document_loader = MasterDocumentLoader(); |
| 368 probe::didReceiveResourceResponse(GetFrame(), identifier, document_loader, | 368 probe::didReceiveResourceResponse(GetFrame(), identifier, document_loader, |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 } | 564 } |
| 565 | 565 |
| 566 void FrameFetchContext::SendImagePing(const KURL& url) { | 566 void FrameFetchContext::SendImagePing(const KURL& url) { |
| 567 PingLoader::LoadImage(GetFrame(), url); | 567 PingLoader::LoadImage(GetFrame(), url); |
| 568 } | 568 } |
| 569 | 569 |
| 570 void FrameFetchContext::AddConsoleMessage(const String& message, | 570 void FrameFetchContext::AddConsoleMessage(const String& message, |
| 571 LogMessageType message_type) const { | 571 LogMessageType message_type) const { |
| 572 MessageLevel level = message_type == kLogWarningMessage ? kWarningMessageLevel | 572 MessageLevel level = message_type == kLogWarningMessage ? kWarningMessageLevel |
| 573 : kErrorMessageLevel; | 573 : kErrorMessageLevel; |
| 574 if (GetFrame()->GetDocument()) { | 574 ConsoleMessage* console_message = |
| 575 GetFrame()->GetDocument()->AddConsoleMessage( | 575 ConsoleMessage::Create(kJSMessageSource, level, message); |
| 576 ConsoleMessage::Create(kJSMessageSource, level, message)); | 576 // Route the console message through Document if it's attached, so |
| 577 } | 577 // that script line numbers can be included. Otherwise, route directly to the |
| 578 // FrameConsole, to ensure we never drop a message. |
| 579 if (GetDocument() && GetDocument()->GetFrame()) |
| 580 GetDocument()->AddConsoleMessage(console_message); |
| 581 else |
| 582 GetFrame()->Console().AddMessage(console_message); |
| 578 } | 583 } |
| 579 | 584 |
| 580 void FrameFetchContext::ModifyRequestForCSP(ResourceRequest& resource_request) { | 585 void FrameFetchContext::ModifyRequestForCSP(ResourceRequest& resource_request) { |
| 581 // Record the latest requiredCSP value that will be used when sending this | 586 // Record the latest requiredCSP value that will be used when sending this |
| 582 // request. | 587 // request. |
| 583 GetFrame()->Loader().RecordLatestRequiredCSP(); | 588 GetFrame()->Loader().RecordLatestRequiredCSP(); |
| 584 GetFrame()->Loader().ModifyRequestForCSP(resource_request, GetDocument()); | 589 GetFrame()->Loader().ModifyRequestForCSP(resource_request, GetDocument()); |
| 585 } | 590 } |
| 586 | 591 |
| 587 void FrameFetchContext::AddClientHintsIfNecessary( | 592 void FrameFetchContext::AddClientHintsIfNecessary( |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 Settings* FrameFetchContext::GetSettings() const { | 702 Settings* FrameFetchContext::GetSettings() const { |
| 698 DCHECK(GetFrame()); | 703 DCHECK(GetFrame()); |
| 699 return GetFrame()->GetSettings(); | 704 return GetFrame()->GetSettings(); |
| 700 } | 705 } |
| 701 | 706 |
| 702 SubresourceFilter* FrameFetchContext::GetSubresourceFilter() const { | 707 SubresourceFilter* FrameFetchContext::GetSubresourceFilter() const { |
| 703 DocumentLoader* document_loader = MasterDocumentLoader(); | 708 DocumentLoader* document_loader = MasterDocumentLoader(); |
| 704 return document_loader ? document_loader->GetSubresourceFilter() : nullptr; | 709 return document_loader ? document_loader->GetSubresourceFilter() : nullptr; |
| 705 } | 710 } |
| 706 | 711 |
| 707 SecurityContext* FrameFetchContext::GetMainResourceSecurityContext() const { | 712 SecurityContext* FrameFetchContext::GetParentSecurityContext() const { |
| 708 DCHECK(GetFrame()->GetDocument()); | 713 if (Frame* parent = GetFrame()->Tree().Parent()) |
| 709 return GetFrame()->GetDocument(); | 714 return parent->GetSecurityContext(); |
| 715 return nullptr; |
| 710 } | 716 } |
| 711 | 717 |
| 712 bool FrameFetchContext::ShouldBlockRequestByInspector( | 718 bool FrameFetchContext::ShouldBlockRequestByInspector( |
| 713 const ResourceRequest& resource_request) const { | 719 const ResourceRequest& resource_request) const { |
| 714 bool should_block_request = false; | 720 bool should_block_request = false; |
| 715 probe::shouldBlockRequest(GetFrame(), resource_request, | 721 probe::shouldBlockRequest(GetFrame(), resource_request, |
| 716 &should_block_request); | 722 &should_block_request); |
| 717 return should_block_request; | 723 return should_block_request; |
| 718 } | 724 } |
| 719 | 725 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 731 | 737 |
| 732 bool FrameFetchContext::ShouldBypassMainWorldCSP() const { | 738 bool FrameFetchContext::ShouldBypassMainWorldCSP() const { |
| 733 return GetFrame()->GetScriptController().ShouldBypassMainWorldCSP(); | 739 return GetFrame()->GetScriptController().ShouldBypassMainWorldCSP(); |
| 734 } | 740 } |
| 735 | 741 |
| 736 bool FrameFetchContext::IsSVGImageChromeClient() const { | 742 bool FrameFetchContext::IsSVGImageChromeClient() const { |
| 737 return GetFrame()->GetChromeClient().IsSVGImageChromeClient(); | 743 return GetFrame()->GetChromeClient().IsSVGImageChromeClient(); |
| 738 } | 744 } |
| 739 | 745 |
| 740 void FrameFetchContext::CountUsage(UseCounter::Feature feature) const { | 746 void FrameFetchContext::CountUsage(UseCounter::Feature feature) const { |
| 741 UseCounter::Count(GetFrame()->GetDocument(), feature); | 747 UseCounter::Count(GetFrame(), feature); |
| 742 } | 748 } |
| 743 | 749 |
| 744 void FrameFetchContext::CountDeprecation(UseCounter::Feature feature) const { | 750 void FrameFetchContext::CountDeprecation(UseCounter::Feature feature) const { |
| 745 Deprecation::CountDeprecation(GetFrame()->GetDocument(), feature); | 751 Deprecation::CountDeprecation(GetFrame(), feature); |
| 746 } | 752 } |
| 747 | 753 |
| 748 bool FrameFetchContext::ShouldBlockFetchByMixedContentCheck( | 754 bool FrameFetchContext::ShouldBlockFetchByMixedContentCheck( |
| 749 const ResourceRequest& resource_request, | 755 const ResourceRequest& resource_request, |
| 750 const KURL& url, | 756 const KURL& url, |
| 751 SecurityViolationReportingPolicy reporting_policy) const { | 757 SecurityViolationReportingPolicy reporting_policy) const { |
| 752 return MixedContentChecker::ShouldBlockFetch(GetFrame(), resource_request, | 758 return MixedContentChecker::ShouldBlockFetch(GetFrame(), resource_request, |
| 753 url, reporting_policy); | 759 url, reporting_policy); |
| 754 } | 760 } |
| 755 | 761 |
| 756 std::unique_ptr<WebURLLoader> FrameFetchContext::CreateURLLoader() { | 762 std::unique_ptr<WebURLLoader> FrameFetchContext::CreateURLLoader() { |
| 757 return Platform::Current()->CreateURLLoader(); | 763 return Platform::Current()->CreateURLLoader(); |
| 758 } | 764 } |
| 759 | 765 |
| 760 DEFINE_TRACE(FrameFetchContext) { | 766 DEFINE_TRACE(FrameFetchContext) { |
| 761 visitor->Trace(document_loader_); | 767 visitor->Trace(document_loader_); |
| 762 BaseFetchContext::Trace(visitor); | 768 BaseFetchContext::Trace(visitor); |
| 763 } | 769 } |
| 764 | 770 |
| 765 } // namespace blink | 771 } // namespace blink |
| OLD | NEW |