Chromium Code Reviews| Index: content/browser/frame_host/navigation_handle_impl.h |
| diff --git a/content/browser/frame_host/navigation_handle_impl.h b/content/browser/frame_host/navigation_handle_impl.h |
| index 3a460592222cbb92be3cf6bd10c8fc36d129ff6e..02a7625f2182b704cc81344dd8bcc7fc7e72afee 100644 |
| --- a/content/browser/frame_host/navigation_handle_impl.h |
| +++ b/content/browser/frame_host/navigation_handle_impl.h |
| @@ -131,22 +131,24 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
| const Referrer& sanitized_referrer, |
| bool has_user_gesture, |
| ui::PageTransition transition, |
| - bool is_external_protocol) override; |
| + bool is_external_protocol, |
| + const ThrottleChecksFinishedCallback& complete_callback) override; |
| NavigationThrottle::ThrottleCheckResult CallWillRedirectRequestForTesting( |
| const GURL& new_url, |
| bool new_method_is_post, |
| const GURL& new_referrer_url, |
| - bool new_is_external_protocol) override; |
| + bool new_is_external_protocol, |
| + const ThrottleChecksFinishedCallback& complete_callback) override; |
| NavigationThrottle::ThrottleCheckResult CallWillProcessResponseForTesting( |
| RenderFrameHost* render_frame_host, |
| - const std::string& raw_response_header) override; |
| + const std::string& raw_response_header, |
| + const ThrottleChecksFinishedCallback& complete_callback) override; |
| void CallDidCommitNavigationForTesting(const GURL& url) override; |
| bool WasStartedFromContextMenu() const override; |
| const GURL& GetSearchableFormURL() override; |
| const std::string& GetSearchableFormEncoding() override; |
| ReloadType GetReloadType() override; |
| const GlobalRequestID& GetGlobalRequestID() override; |
| - |
| NavigationData* GetNavigationData() override; |
| // The NavigatorDelegate to notify/query for various navigation events. |
| @@ -223,13 +225,12 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
| return appcache_handle_.get(); |
| } |
| - typedef base::Callback<void(NavigationThrottle::ThrottleCheckResult)> |
| - ThrottleChecksFinishedCallback; |
| - |
| // Called when the URLRequest will start in the network stack. |callback| |
| // will be called when all throttle checks have completed. This will allow |
| // the caller to cancel the navigation or let it proceed. |
| - void WillStartRequest( |
| + // Returns the synchronous throttle check result, or DEFER if it is being |
| + // calculated asynchronously. |
| + NavigationThrottle::ThrottleCheckResult WillStartRequest( |
|
clamy
2017/02/15 16:37:22
I'm don't really like having the result be returne
Charlie Harrison
2017/02/15 16:42:12
What would you prefer? One idea is to have the cal
clamy
2017/02/16 14:10:43
I really don't want to be modifying the semantic o
|
| const std::string& method, |
| scoped_refptr<content::ResourceRequestBodyImpl> resource_request_body, |
| const Referrer& sanitized_referrer, |
| @@ -244,7 +245,9 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
| // |callback| will be called when all throttles check have completed. This |
| // will allow the caller to cancel the navigation or let it proceed. |
| // This will also inform the delegate that the request was redirected. |
| - void WillRedirectRequest( |
| + // Returns the synchronous throttle check result, or DEFER if it is being |
| + // calculated asynchronously. |
| + NavigationThrottle::ThrottleCheckResult WillRedirectRequest( |
| const GURL& new_url, |
| const std::string& new_method, |
| const GURL& new_referrer_url, |
| @@ -261,8 +264,10 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle { |
| // with |render_frame_host| and |response_headers| just before calling |
| // |callback|. Should a transfer navigation happen, |transfer_callback| will |
| // be run on the IO thread. |
| + // Returns the synchronous throttle check result, or DEFER if it is being |
| + // calculated asynchronously. |
| // PlzNavigate: transfer navigations are not possible. |
| - void WillProcessResponse( |
| + NavigationThrottle::ThrottleCheckResult WillProcessResponse( |
| RenderFrameHostImpl* render_frame_host, |
| scoped_refptr<net::HttpResponseHeaders> response_headers, |
| net::HttpResponseInfo::ConnectionInfo connection_info, |