Chromium Code Reviews| Index: content/browser/frame_host/navigation_handle_impl.cc |
| diff --git a/content/browser/frame_host/navigation_handle_impl.cc b/content/browser/frame_host/navigation_handle_impl.cc |
| index b34eca2b8379e722f58289572ff7ca06bd150a76..443825551cf2eed452269170def8ff4316dc55d8 100644 |
| --- a/content/browser/frame_host/navigation_handle_impl.cc |
| +++ b/content/browser/frame_host/navigation_handle_impl.cc |
| @@ -13,6 +13,7 @@ |
| #include "content/browser/child_process_security_policy_impl.h" |
| #include "content/browser/devtools/render_frame_devtools_agent_host.h" |
| #include "content/browser/frame_host/ancestor_throttle.h" |
| +#include "content/browser/frame_host/data_url_navigation_throttle.h" |
| #include "content/browser/frame_host/debug_urls.h" |
| #include "content/browser/frame_host/form_submission_throttle.h" |
| #include "content/browser/frame_host/frame_tree_node.h" |
| @@ -290,6 +291,10 @@ bool NavigationHandleImpl::HasCommitted() { |
| return state_ == DID_COMMIT || state_ == DID_COMMIT_ERROR_PAGE; |
| } |
| +bool NavigationHandleImpl::IsDownload() { |
| + return is_download_; |
| +} |
| + |
| bool NavigationHandleImpl::IsErrorPage() { |
| return state_ == DID_COMMIT_ERROR_PAGE; |
| } |
| @@ -680,14 +685,6 @@ void NavigationHandleImpl::DidCommitNavigation( |
| } else { |
| state_ = DID_COMMIT; |
| } |
| - |
| - if (url_.SchemeIs(url::kDataScheme) && IsInMainFrame() && |
| - IsRendererInitiated()) { |
| - GetRenderFrameHost()->AddMessageToConsole( |
| - CONSOLE_MESSAGE_LEVEL_WARNING, |
| - "Upcoming versions will block content-initiated top frame navigations " |
| - "to data: URLs. For more information, see https://goo.gl/BaZAea."); |
| - } |
| } |
| void NavigationHandleImpl::Transfer() { |
| @@ -929,6 +926,13 @@ void NavigationHandleImpl::RegisterNavigationThrottles() { |
| std::vector<std::unique_ptr<NavigationThrottle>> throttles_to_register = |
| GetDelegate()->CreateThrottlesForNavigation(this); |
| + // Check for top-frame, content-initiated navigations to data URLs. This is |
|
nasko
2017/03/30 23:15:45
nit: s/content-initiated/renderer-initiated/, s/to
meacer
2017/04/05 22:33:28
Done.
|
| + // done first as it may block the top frame navigation altogether. |
| + std::unique_ptr<NavigationThrottle> data_url_navigation_throttle = |
| + DataUrlNavigationThrottle::CreateThrottleForNavigation(this); |
| + if (data_url_navigation_throttle) |
| + throttles_to_register.push_back(std::move(data_url_navigation_throttle)); |
| + |
| std::unique_ptr<content::NavigationThrottle> ancestor_throttle = |
| content::AncestorThrottle::MaybeCreateThrottleFor(this); |
| if (ancestor_throttle) |