| OLD | NEW |
| 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 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 669 // If no origin Document* was specified, skip remaining security checks and | 669 // If no origin Document* was specified, skip remaining security checks and |
| 670 // assume the caller has fully initialized the FrameLoadRequest. | 670 // assume the caller has fully initialized the FrameLoadRequest. |
| 671 if (!request.OriginDocument()) | 671 if (!request.OriginDocument()) |
| 672 return true; | 672 return true; |
| 673 | 673 |
| 674 KURL url = request.GetResourceRequest().Url(); | 674 KURL url = request.GetResourceRequest().Url(); |
| 675 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr)) | 675 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr)) |
| 676 return false; | 676 return false; |
| 677 | 677 |
| 678 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) { | 678 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) { |
| 679 ReportLocalLoadFailed(frame_, url.ElidedString()); | 679 request.OriginDocument()->AddConsoleMessage(ConsoleMessage::Create( |
| 680 kSecurityMessageSource, kErrorMessageLevel, |
| 681 "Not allowed to load local resource: " + url.ElidedString())); |
| 680 return false; | 682 return false; |
| 681 } | 683 } |
| 682 | 684 |
| 683 // Block renderer-initiated loads of data URLs in the top frame. If the mime | 685 // Block renderer-initiated loads of data URLs in the top frame. If the mime |
| 684 // type of the data URL is supported, the URL will eventually be rendered, so | 686 // type of the data URL is supported, the URL will eventually be rendered, so |
| 685 // block it here. Otherwise, the load might be handled by a plugin or end up | 687 // block it here. Otherwise, the load might be handled by a plugin or end up |
| 686 // as a download, so allow it to let the embedder figure out what to do with | 688 // as a download, so allow it to let the embedder figure out what to do with |
| 687 // it. | 689 // it. |
| 688 if (frame_->IsMainFrame() && | 690 if (frame_->IsMainFrame() && |
| 689 !request.GetResourceRequest().IsSameDocumentNavigation() && | 691 !request.GetResourceRequest().IsSameDocumentNavigation() && |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 912 if (!ShouldTreatURLAsSrcdocDocument(url)) | 914 if (!ShouldTreatURLAsSrcdocDocument(url)) |
| 913 return SubstituteData(); | 915 return SubstituteData(); |
| 914 String srcdoc = frame_->DeprecatedLocalOwner()->FastGetAttribute(srcdocAttr); | 916 String srcdoc = frame_->DeprecatedLocalOwner()->FastGetAttribute(srcdocAttr); |
| 915 DCHECK(!srcdoc.IsNull()); | 917 DCHECK(!srcdoc.IsNull()); |
| 916 CString encoded_srcdoc = srcdoc.Utf8(); | 918 CString encoded_srcdoc = srcdoc.Utf8(); |
| 917 return SubstituteData( | 919 return SubstituteData( |
| 918 SharedBuffer::Create(encoded_srcdoc.data(), encoded_srcdoc.length()), | 920 SharedBuffer::Create(encoded_srcdoc.data(), encoded_srcdoc.length()), |
| 919 "text/html", "UTF-8", KURL()); | 921 "text/html", "UTF-8", KURL()); |
| 920 } | 922 } |
| 921 | 923 |
| 922 void FrameLoader::ReportLocalLoadFailed(LocalFrame* frame, const String& url) { | |
| 923 DCHECK(!url.IsEmpty()); | |
| 924 if (!frame) | |
| 925 return; | |
| 926 | |
| 927 frame->GetDocument()->AddConsoleMessage( | |
| 928 ConsoleMessage::Create(kSecurityMessageSource, kErrorMessageLevel, | |
| 929 "Not allowed to load local resource: " + url)); | |
| 930 } | |
| 931 | |
| 932 void FrameLoader::StopAllLoaders() { | 924 void FrameLoader::StopAllLoaders() { |
| 933 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() != | 925 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() != |
| 934 Document::kNoDismissal) | 926 Document::kNoDismissal) |
| 935 return; | 927 return; |
| 936 | 928 |
| 937 // If this method is called from within this method, infinite recursion can | 929 // If this method is called from within this method, infinite recursion can |
| 938 // occur (3442218). Avoid this. | 930 // occur (3442218). Avoid this. |
| 939 if (in_stop_all_loaders_) | 931 if (in_stop_all_loaders_) |
| 940 return; | 932 return; |
| 941 | 933 |
| (...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1710 // TODO(japhet): This is needed because the browser process DCHECKs if the | 1702 // TODO(japhet): This is needed because the browser process DCHECKs if the |
| 1711 // first entry we commit in a new frame has replacement set. It's unclear | 1703 // first entry we commit in a new frame has replacement set. It's unclear |
| 1712 // whether the DCHECK is right, investigate removing this special case. | 1704 // whether the DCHECK is right, investigate removing this special case. |
| 1713 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem && | 1705 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem && |
| 1714 (!Opener() || !request.Url().IsEmpty()); | 1706 (!Opener() || !request.Url().IsEmpty()); |
| 1715 loader->SetReplacesCurrentHistoryItem(replace_current_item); | 1707 loader->SetReplacesCurrentHistoryItem(replace_current_item); |
| 1716 return loader; | 1708 return loader; |
| 1717 } | 1709 } |
| 1718 | 1710 |
| 1719 } // namespace blink | 1711 } // namespace blink |
| OLD | NEW |