| Index: third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
 | 
| diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
 | 
| index 4bb8a5d83c4b477c87e1f9328a307daefcf20c12..1982fb63d2f93c4a8e37de3a8fc15de84aa4edff 100644
 | 
| --- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
 | 
| +++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
 | 
| @@ -353,9 +353,9 @@ void FrameFetchContext::DispatchDidReceiveResponse(
 | 
|      resource_loading_policy = LinkLoader::kDoNotLoadResources;
 | 
|    }
 | 
|    LinkLoader::LoadLinksFromHeader(
 | 
| -      response.HttpHeaderField(HTTPNames::Link), response.Url(),
 | 
| -      GetFrame()->GetDocument(), NetworkHintsInterfaceImpl(),
 | 
| -      resource_loading_policy, LinkLoader::kLoadAll, nullptr);
 | 
| +      response.HttpHeaderField(HTTPNames::Link), response.Url(), *GetFrame(),
 | 
| +      GetDocument(), NetworkHintsInterfaceImpl(), resource_loading_policy,
 | 
| +      LinkLoader::kLoadAll, nullptr);
 | 
|  
 | 
|    if (response.HasMajorCertificateErrors()) {
 | 
|      MixedContentChecker::HandleCertificateError(GetFrame(), response,
 | 
| @@ -571,10 +571,15 @@ void FrameFetchContext::AddConsoleMessage(const String& message,
 | 
|                                            LogMessageType message_type) const {
 | 
|    MessageLevel level = message_type == kLogWarningMessage ? kWarningMessageLevel
 | 
|                                                            : kErrorMessageLevel;
 | 
| -  if (GetFrame()->GetDocument()) {
 | 
| -    GetFrame()->GetDocument()->AddConsoleMessage(
 | 
| -        ConsoleMessage::Create(kJSMessageSource, level, message));
 | 
| -  }
 | 
| +  ConsoleMessage* console_message =
 | 
| +      ConsoleMessage::Create(kJSMessageSource, level, message);
 | 
| +  // Route the console message through Document if it's attached, so
 | 
| +  // that script line numbers can be included. Otherwise, route directly to the
 | 
| +  // FrameConsole, to ensure we never drop a message.
 | 
| +  if (GetDocument() && GetDocument()->GetFrame())
 | 
| +    GetDocument()->AddConsoleMessage(console_message);
 | 
| +  else
 | 
| +    GetFrame()->Console().AddMessage(console_message);
 | 
|  }
 | 
|  
 | 
|  void FrameFetchContext::ModifyRequestForCSP(ResourceRequest& resource_request) {
 | 
| @@ -704,9 +709,10 @@ SubresourceFilter* FrameFetchContext::GetSubresourceFilter() const {
 | 
|    return document_loader ? document_loader->GetSubresourceFilter() : nullptr;
 | 
|  }
 | 
|  
 | 
| -SecurityContext* FrameFetchContext::GetMainResourceSecurityContext() const {
 | 
| -  DCHECK(GetFrame()->GetDocument());
 | 
| -  return GetFrame()->GetDocument();
 | 
| +SecurityContext* FrameFetchContext::GetParentSecurityContext() const {
 | 
| +  if (Frame* parent = GetFrame()->Tree().Parent())
 | 
| +    return parent->GetSecurityContext();
 | 
| +  return nullptr;
 | 
|  }
 | 
|  
 | 
|  bool FrameFetchContext::ShouldBlockRequestByInspector(
 | 
| @@ -738,11 +744,11 @@ bool FrameFetchContext::IsSVGImageChromeClient() const {
 | 
|  }
 | 
|  
 | 
|  void FrameFetchContext::CountUsage(UseCounter::Feature feature) const {
 | 
| -  UseCounter::Count(GetFrame()->GetDocument(), feature);
 | 
| +  UseCounter::Count(GetFrame(), feature);
 | 
|  }
 | 
|  
 | 
|  void FrameFetchContext::CountDeprecation(UseCounter::Feature feature) const {
 | 
| -  Deprecation::CountDeprecation(GetFrame()->GetDocument(), feature);
 | 
| +  Deprecation::CountDeprecation(GetFrame(), feature);
 | 
|  }
 | 
|  
 | 
|  bool FrameFetchContext::ShouldBlockFetchByMixedContentCheck(
 | 
| 
 |