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

Side by Side Diff: third_party/WebKit/Source/core/loader/FrameLoader.cpp

Issue 2842253002: Move ReportLocalLoadFailed to ExecutionContext (Closed)
Patch Set: Created 3 years, 7 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 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 4 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 5 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
6 * (http://www.torchmobile.com/) 6 * (http://www.torchmobile.com/)
7 * Copyright (C) 2008 Alp Toker <alp@atoker.com> 7 * Copyright (C) 2008 Alp Toker <alp@atoker.com>
8 * Copyright (C) Research In Motion Limited 2009. All rights reserved. 8 * Copyright (C) Research In Motion Limited 2009. All rights reserved.
9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> 9 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com>
10 * Copyright (C) 2011 Google Inc. All rights reserved. 10 * Copyright (C) 2011 Google Inc. All rights reserved.
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 // If no origin Document* was specified, skip remaining security checks and 787 // If no origin Document* was specified, skip remaining security checks and
788 // assume the caller has fully initialized the FrameLoadRequest. 788 // assume the caller has fully initialized the FrameLoadRequest.
789 if (!request.OriginDocument()) 789 if (!request.OriginDocument())
790 return true; 790 return true;
791 791
792 KURL url = request.GetResourceRequest().Url(); 792 KURL url = request.GetResourceRequest().Url();
793 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr)) 793 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr))
794 return false; 794 return false;
795 795
796 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) { 796 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) {
797 ReportLocalLoadFailed(frame_, url.ElidedString()); 797 frame_->GetDocument()->ReportLocalLoadFailed(url.ElidedString());
798 return false; 798 return false;
799 } 799 }
800 800
801 // Block renderer-initiated loads of data URLs in the top frame. If the mime 801 // Block renderer-initiated loads of data URLs in the top frame. If the mime
802 // type of the data URL is supported, the URL will eventually be rendered, so 802 // type of the data URL is supported, the URL will eventually be rendered, so
803 // block it here. Otherwise, the load might be handled by a plugin or end up 803 // block it here. Otherwise, the load might be handled by a plugin or end up
804 // as a download, so allow it to let the embedder figure out what to do with 804 // as a download, so allow it to let the embedder figure out what to do with
805 // it. 805 // it.
806 if (frame_->IsMainFrame() && 806 if (frame_->IsMainFrame() &&
807 !request.GetResourceRequest().IsSameDocumentNavigation() && 807 !request.GetResourceRequest().IsSameDocumentNavigation() &&
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 if (!ShouldTreatURLAsSrcdocDocument(url)) 1030 if (!ShouldTreatURLAsSrcdocDocument(url))
1031 return SubstituteData(); 1031 return SubstituteData();
1032 String srcdoc = frame_->DeprecatedLocalOwner()->FastGetAttribute(srcdocAttr); 1032 String srcdoc = frame_->DeprecatedLocalOwner()->FastGetAttribute(srcdocAttr);
1033 DCHECK(!srcdoc.IsNull()); 1033 DCHECK(!srcdoc.IsNull());
1034 CString encoded_srcdoc = srcdoc.Utf8(); 1034 CString encoded_srcdoc = srcdoc.Utf8();
1035 return SubstituteData( 1035 return SubstituteData(
1036 SharedBuffer::Create(encoded_srcdoc.data(), encoded_srcdoc.length()), 1036 SharedBuffer::Create(encoded_srcdoc.data(), encoded_srcdoc.length()),
1037 "text/html", "UTF-8", KURL()); 1037 "text/html", "UTF-8", KURL());
1038 } 1038 }
1039 1039
1040 void FrameLoader::ReportLocalLoadFailed(LocalFrame* frame, const String& url) {
1041 DCHECK(!url.IsEmpty());
1042 if (!frame)
1043 return;
1044
1045 frame->GetDocument()->AddConsoleMessage(
1046 ConsoleMessage::Create(kSecurityMessageSource, kErrorMessageLevel,
1047 "Not allowed to load local resource: " + url));
1048 }
1049
1050 void FrameLoader::StopAllLoaders() { 1040 void FrameLoader::StopAllLoaders() {
1051 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() != 1041 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() !=
1052 Document::kNoDismissal) 1042 Document::kNoDismissal)
1053 return; 1043 return;
1054 1044
1055 // If this method is called from within this method, infinite recursion can 1045 // If this method is called from within this method, infinite recursion can
1056 // occur (3442218). Avoid this. 1046 // occur (3442218). Avoid this.
1057 if (in_stop_all_loaders_) 1047 if (in_stop_all_loaders_)
1058 return; 1048 return;
1059 1049
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 // TODO(japhet): This is needed because the browser process DCHECKs if the 1824 // TODO(japhet): This is needed because the browser process DCHECKs if the
1835 // first entry we commit in a new frame has replacement set. It's unclear 1825 // first entry we commit in a new frame has replacement set. It's unclear
1836 // whether the DCHECK is right, investigate removing this special case. 1826 // whether the DCHECK is right, investigate removing this special case.
1837 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem && 1827 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem &&
1838 (!Opener() || !request.Url().IsEmpty()); 1828 (!Opener() || !request.Url().IsEmpty());
1839 loader->SetReplacesCurrentHistoryItem(replace_current_item); 1829 loader->SetReplacesCurrentHistoryItem(replace_current_item);
1840 return loader; 1830 return loader;
1841 } 1831 }
1842 1832
1843 } // namespace blink 1833 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698