| 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 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 741 | 741 |
| 742 KURL url = request.GetResourceRequest().Url(); | 742 KURL url = request.GetResourceRequest().Url(); |
| 743 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr)) | 743 if (frame_->GetScriptController().ExecuteScriptIfJavaScriptURL(url, nullptr)) |
| 744 return false; | 744 return false; |
| 745 | 745 |
| 746 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) { | 746 if (!request.OriginDocument()->GetSecurityOrigin()->CanDisplay(url)) { |
| 747 ReportLocalLoadFailed(frame_, url.ElidedString()); | 747 ReportLocalLoadFailed(frame_, url.ElidedString()); |
| 748 return false; | 748 return false; |
| 749 } | 749 } |
| 750 | 750 |
| 751 // Block content-initiated, top-frame navigations to data URLs. |
| 752 if (frame_->IsMainFrame() && |
| 753 !request.GetResourceRequest().IsSameDocumentNavigation() && |
| 754 !frame_->Client()->AllowContentInitiatedDataUrlNavigations( |
| 755 request.OriginDocument()->Url()) && |
| 756 !request.OriginDocument()->GetSecurityOrigin()->CanNavigateInTopFrame( |
| 757 url)) { |
| 758 ReportTopLevelNavigationFailed(frame_, url.ElidedString()); |
| 759 return false; |
| 760 } |
| 761 |
| 751 if (!request.Form() && request.FrameName().IsEmpty()) | 762 if (!request.Form() && request.FrameName().IsEmpty()) |
| 752 request.SetFrameName(frame_->GetDocument()->BaseTarget()); | 763 request.SetFrameName(frame_->GetDocument()->BaseTarget()); |
| 753 return true; | 764 return true; |
| 754 } | 765 } |
| 755 | 766 |
| 756 static bool ShouldNavigateTargetFrame(NavigationPolicy policy) { | 767 static bool ShouldNavigateTargetFrame(NavigationPolicy policy) { |
| 757 switch (policy) { | 768 switch (policy) { |
| 758 case kNavigationPolicyCurrentTab: | 769 case kNavigationPolicyCurrentTab: |
| 759 return true; | 770 return true; |
| 760 | 771 |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 980 void FrameLoader::ReportLocalLoadFailed(LocalFrame* frame, const String& url) { | 991 void FrameLoader::ReportLocalLoadFailed(LocalFrame* frame, const String& url) { |
| 981 DCHECK(!url.IsEmpty()); | 992 DCHECK(!url.IsEmpty()); |
| 982 if (!frame) | 993 if (!frame) |
| 983 return; | 994 return; |
| 984 | 995 |
| 985 frame->GetDocument()->AddConsoleMessage( | 996 frame->GetDocument()->AddConsoleMessage( |
| 986 ConsoleMessage::Create(kSecurityMessageSource, kErrorMessageLevel, | 997 ConsoleMessage::Create(kSecurityMessageSource, kErrorMessageLevel, |
| 987 "Not allowed to load local resource: " + url)); | 998 "Not allowed to load local resource: " + url)); |
| 988 } | 999 } |
| 989 | 1000 |
| 1001 void FrameLoader::ReportTopLevelNavigationFailed(LocalFrame* frame, |
| 1002 const String& url) { |
| 1003 DCHECK(!url.IsEmpty()); |
| 1004 if (!frame) |
| 1005 return; |
| 1006 |
| 1007 frame->GetDocument()->AddConsoleMessage(ConsoleMessage::Create( |
| 1008 kSecurityMessageSource, kErrorMessageLevel, |
| 1009 "Not allowed to top-level navigate to resource: " + url)); |
| 1010 } |
| 1011 |
| 990 void FrameLoader::StopAllLoaders() { | 1012 void FrameLoader::StopAllLoaders() { |
| 991 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() != | 1013 if (frame_->GetDocument()->PageDismissalEventBeingDispatched() != |
| 992 Document::kNoDismissal) | 1014 Document::kNoDismissal) |
| 993 return; | 1015 return; |
| 994 | 1016 |
| 995 // If this method is called from within this method, infinite recursion can | 1017 // If this method is called from within this method, infinite recursion can |
| 996 // occur (3442218). Avoid this. | 1018 // occur (3442218). Avoid this. |
| 997 if (in_stop_all_loaders_) | 1019 if (in_stop_all_loaders_) |
| 998 return; | 1020 return; |
| 999 | 1021 |
| (...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1774 // TODO(japhet): This is needed because the browser process DCHECKs if the | 1796 // TODO(japhet): This is needed because the browser process DCHECKs if the |
| 1775 // first entry we commit in a new frame has replacement set. It's unclear | 1797 // first entry we commit in a new frame has replacement set. It's unclear |
| 1776 // whether the DCHECK is right, investigate removing this special case. | 1798 // whether the DCHECK is right, investigate removing this special case. |
| 1777 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem && | 1799 bool replace_current_item = load_type == kFrameLoadTypeReplaceCurrentItem && |
| 1778 (!Opener() || !request.Url().IsEmpty()); | 1800 (!Opener() || !request.Url().IsEmpty()); |
| 1779 loader->SetReplacesCurrentHistoryItem(replace_current_item); | 1801 loader->SetReplacesCurrentHistoryItem(replace_current_item); |
| 1780 return loader; | 1802 return loader; |
| 1781 } | 1803 } |
| 1782 | 1804 |
| 1783 } // namespace blink | 1805 } // namespace blink |
| OLD | NEW |