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

Side by Side Diff: content/browser/frame_host/navigation_handle_impl.h

Issue 1530393003: WIP: Move 'X-Frame-Options' checking to the browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_ 5 #ifndef CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_
6 #define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_ 6 #define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_
7 7
8 #include "content/public/browser/navigation_handle.h" 8 #include "content/public/browser/navigation_handle.h"
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 // NavigationHandle implementation: 72 // NavigationHandle implementation:
73 const GURL& GetURL() override; 73 const GURL& GetURL() override;
74 bool IsInMainFrame() override; 74 bool IsInMainFrame() override;
75 const base::TimeTicks& NavigationStart() override; 75 const base::TimeTicks& NavigationStart() override;
76 bool IsPost() override; 76 bool IsPost() override;
77 const Referrer& GetReferrer() override; 77 const Referrer& GetReferrer() override;
78 bool HasUserGesture() override; 78 bool HasUserGesture() override;
79 ui::PageTransition GetPageTransition() override; 79 ui::PageTransition GetPageTransition() override;
80 bool IsExternalProtocol() override; 80 bool IsExternalProtocol() override;
81 const net::HttpResponseHeaders* GetResponseHeaders() override;
81 net::Error GetNetErrorCode() override; 82 net::Error GetNetErrorCode() override;
82 RenderFrameHostImpl* GetRenderFrameHost() override; 83 RenderFrameHostImpl* GetRenderFrameHost() override;
83 bool IsSamePage() override; 84 bool IsSamePage() override;
84 bool HasCommitted() override; 85 bool HasCommitted() override;
85 bool IsErrorPage() override; 86 bool IsErrorPage() override;
86 void Resume() override; 87 void Resume() override;
87 void CancelDeferredNavigation( 88 void CancelDeferredNavigation(
88 NavigationThrottle::ThrottleCheckResult result) override; 89 NavigationThrottle::ThrottleCheckResult result) override;
89 void RegisterThrottleForTesting( 90 void RegisterThrottleForTesting(
90 scoped_ptr<NavigationThrottle> navigation_throttle) override; 91 scoped_ptr<NavigationThrottle> navigation_throttle) override;
91 NavigationThrottle::ThrottleCheckResult CallWillStartRequestForTesting( 92 NavigationThrottle::ThrottleCheckResult CallWillStartRequestForTesting(
92 bool is_post, 93 bool is_post,
93 const Referrer& sanitized_referrer, 94 const Referrer& sanitized_referrer,
94 bool has_user_gesture, 95 bool has_user_gesture,
95 ui::PageTransition transition, 96 ui::PageTransition transition,
96 bool is_external_protocol) override; 97 bool is_external_protocol) override;
97 NavigationThrottle::ThrottleCheckResult CallWillRedirectRequestForTesting( 98 NavigationThrottle::ThrottleCheckResult CallWillRedirectRequestForTesting(
98 const GURL& new_url, 99 const GURL& new_url,
99 bool new_method_is_post, 100 bool new_method_is_post,
100 const GURL& new_referrer_url, 101 const GURL& new_referrer_url,
101 bool new_is_external_protocol) override; 102 bool new_is_external_protocol) override;
102 103
103 NavigatorDelegate* GetDelegate() const; 104 NavigatorDelegate* GetDelegate() const;
104 105
105 // Returns the response headers for the request. This can only be accessed
106 // after a redirect was encountered or after the the navigation is ready to
107 // commit. It should not be modified, as modifications will not be reflected
108 // in the network stack.
109 const net::HttpResponseHeaders* GetResponseHeaders();
Mike West 2015/12/17 13:09:15 This moved up to 'NavigationHandle'.
110
111 void set_net_error_code(net::Error net_error_code) { 106 void set_net_error_code(net::Error net_error_code) {
112 net_error_code_ = net_error_code; 107 net_error_code_ = net_error_code;
113 } 108 }
114 109
115 // Returns whether the navigation is currently being transferred from one 110 // Returns whether the navigation is currently being transferred from one
116 // RenderFrameHost to another. In particular, a DidStartProvisionalLoad IPC 111 // RenderFrameHost to another. In particular, a DidStartProvisionalLoad IPC
117 // for the navigation URL, received in the new RenderFrameHost, should not 112 // for the navigation URL, received in the new RenderFrameHost, should not
118 // indicate the start of a new navigation in that case. 113 // indicate the start of a new navigation in that case.
119 bool is_transferring() const { return is_transferring_; } 114 bool is_transferring() const { return is_transferring_; }
120 void set_is_transferring(bool is_transferring) { 115 void set_is_transferring(bool is_transferring) {
(...skipping 30 matching lines...) Expand all
151 // |callback| will be called when all throttles check have completed. This 146 // |callback| will be called when all throttles check have completed. This
152 // will allow the caller to cancel the navigation or let it proceed. 147 // will allow the caller to cancel the navigation or let it proceed.
153 void WillRedirectRequest( 148 void WillRedirectRequest(
154 const GURL& new_url, 149 const GURL& new_url,
155 bool new_method_is_post, 150 bool new_method_is_post,
156 const GURL& new_referrer_url, 151 const GURL& new_referrer_url,
157 bool new_is_external_protocol, 152 bool new_is_external_protocol,
158 scoped_refptr<net::HttpResponseHeaders> response_headers, 153 scoped_refptr<net::HttpResponseHeaders> response_headers,
159 const ThrottleChecksFinishedCallback& callback); 154 const ThrottleChecksFinishedCallback& callback);
160 155
156 // Called when the URLRequest has response data, and is ready to be
157 // committed. |callback| will be called if the throttle checks indicate
158 // that the request should be cancelled. Otherwise, 'ReadyToCommitNavigation'
159 // will be called.
160 void WillProcessResponse(
161 RenderFrameHostImpl* render_frame_host,
162 scoped_refptr<net::HttpResponseHeaders> response_headers,
163 const ThrottleChecksFinishedCallback& callback);
164
161 // Returns the FrameTreeNode this navigation is happening in. 165 // Returns the FrameTreeNode this navigation is happening in.
162 FrameTreeNode* frame_tree_node() { return frame_tree_node_; } 166 FrameTreeNode* frame_tree_node() { return frame_tree_node_; }
163 167
164 // Called when the navigation was redirected. This will update the |url_| and 168 // Called when the navigation was redirected. This will update the |url_| and
165 // inform the delegate. 169 // inform the delegate.
166 void DidRedirectNavigation(const GURL& new_url); 170 void DidRedirectNavigation(const GURL& new_url);
167 171
168 // Called when the navigation is ready to be committed in 172 // Called when the navigation is ready to be committed in
169 // |render_frame_host|. This will update the |state_| and inform the 173 // |render_frame_host|. This will update the |state_| and inform the
170 // delegate. 174 // delegate.
(...skipping 21 matching lines...) Expand all
192 DID_COMMIT, 196 DID_COMMIT,
193 DID_COMMIT_ERROR_PAGE, 197 DID_COMMIT_ERROR_PAGE,
194 }; 198 };
195 199
196 NavigationHandleImpl(const GURL& url, 200 NavigationHandleImpl(const GURL& url,
197 FrameTreeNode* frame_tree_node, 201 FrameTreeNode* frame_tree_node,
198 const base::TimeTicks& navigation_start); 202 const base::TimeTicks& navigation_start);
199 203
200 NavigationThrottle::ThrottleCheckResult CheckWillStartRequest(); 204 NavigationThrottle::ThrottleCheckResult CheckWillStartRequest();
201 NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest(); 205 NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest();
206 NavigationThrottle::ThrottleCheckResult CheckWillProcessResponse();
202 207
203 // Helper function to run and reset the |complete_callback_|. This marks the 208 // Helper function to run and reset the |complete_callback_|. This marks the
204 // end of a round of NavigationThrottleChecks. 209 // end of a round of NavigationThrottleChecks.
205 void RunCompleteCallback(NavigationThrottle::ThrottleCheckResult result); 210 void RunCompleteCallback(NavigationThrottle::ThrottleCheckResult result);
206 211
207 // Used in tests. 212 // Used in tests.
208 State state() const { return state_; } 213 State state() const { return state_; }
209 214
210 // See NavigationHandle for a description of those member variables. 215 // See NavigationHandle for a description of those member variables.
211 GURL url_; 216 GURL url_;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // Manages the lifetime of a pre-created ServiceWorkerProviderHost until a 250 // Manages the lifetime of a pre-created ServiceWorkerProviderHost until a
246 // corresponding ServiceWorkerNetworkProvider is created in the renderer. 251 // corresponding ServiceWorkerNetworkProvider is created in the renderer.
247 scoped_ptr<ServiceWorkerNavigationHandle> service_worker_handle_; 252 scoped_ptr<ServiceWorkerNavigationHandle> service_worker_handle_;
248 253
249 DISALLOW_COPY_AND_ASSIGN(NavigationHandleImpl); 254 DISALLOW_COPY_AND_ASSIGN(NavigationHandleImpl);
250 }; 255 };
251 256
252 } // namespace content 257 } // namespace content
253 258
254 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_ 259 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698