| OLD | NEW |
| 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 <stddef.h> | 10 #include <stddef.h> |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 // associated with this navigation. | 85 // associated with this navigation. |
| 86 static std::unique_ptr<NavigationHandleImpl> Create( | 86 static std::unique_ptr<NavigationHandleImpl> Create( |
| 87 const GURL& url, | 87 const GURL& url, |
| 88 const std::vector<GURL>& redirect_chain, | 88 const std::vector<GURL>& redirect_chain, |
| 89 FrameTreeNode* frame_tree_node, | 89 FrameTreeNode* frame_tree_node, |
| 90 bool is_renderer_initiated, | 90 bool is_renderer_initiated, |
| 91 bool is_same_page, | 91 bool is_same_page, |
| 92 const base::TimeTicks& navigation_start, | 92 const base::TimeTicks& navigation_start, |
| 93 int pending_nav_entry_id, | 93 int pending_nav_entry_id, |
| 94 bool started_from_context_menu, | 94 bool started_from_context_menu, |
| 95 bool should_bypass_main_world_csp); | 95 bool should_bypass_main_world_csp, |
| 96 bool is_form_submission); |
| 96 ~NavigationHandleImpl() override; | 97 ~NavigationHandleImpl() override; |
| 97 | 98 |
| 98 // NavigationHandle implementation: | 99 // NavigationHandle implementation: |
| 99 const GURL& GetURL() override; | 100 const GURL& GetURL() override; |
| 100 SiteInstance* GetStartingSiteInstance() override; | 101 SiteInstance* GetStartingSiteInstance() override; |
| 101 bool IsInMainFrame() override; | 102 bool IsInMainFrame() override; |
| 102 bool IsParentMainFrame() override; | 103 bool IsParentMainFrame() override; |
| 103 bool IsRendererInitiated() override; | 104 bool IsRendererInitiated() override; |
| 104 bool WasServerRedirect() override; | 105 bool WasServerRedirect() override; |
| 105 const std::vector<GURL>& GetRedirectChain() override; | 106 const std::vector<GURL>& GetRedirectChain() override; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 void CallDidCommitNavigationForTesting(const GURL& url) override; | 145 void CallDidCommitNavigationForTesting(const GURL& url) override; |
| 145 bool WasStartedFromContextMenu() const override; | 146 bool WasStartedFromContextMenu() const override; |
| 146 const GURL& GetSearchableFormURL() override; | 147 const GURL& GetSearchableFormURL() override; |
| 147 const std::string& GetSearchableFormEncoding() override; | 148 const std::string& GetSearchableFormEncoding() override; |
| 148 ReloadType GetReloadType() override; | 149 ReloadType GetReloadType() override; |
| 149 const GlobalRequestID& GetGlobalRequestID() override; | 150 const GlobalRequestID& GetGlobalRequestID() override; |
| 150 | 151 |
| 151 NavigationData* GetNavigationData() override; | 152 NavigationData* GetNavigationData() override; |
| 152 bool should_bypass_main_world_csp() const; | 153 bool should_bypass_main_world_csp() const; |
| 153 | 154 |
| 155 // Whether or not the navigation has been initiated by a form submission. It |
| 156 // is currently not available when PlzNavigate is disabled. |
| 157 bool is_form_submission() const; |
| 158 |
| 154 // The NavigatorDelegate to notify/query for various navigation events. | 159 // The NavigatorDelegate to notify/query for various navigation events. |
| 155 // Normally this is the WebContents, except if this NavigationHandle was | 160 // Normally this is the WebContents, except if this NavigationHandle was |
| 156 // created during a navigation to an interstitial page. In this case it will | 161 // created during a navigation to an interstitial page. In this case it will |
| 157 // be the InterstitialPage itself. | 162 // be the InterstitialPage itself. |
| 158 // | 163 // |
| 159 // Note: due to the interstitial navigation case, all calls that can possibly | 164 // Note: due to the interstitial navigation case, all calls that can possibly |
| 160 // expose the NavigationHandle to code outside of content/ MUST go though the | 165 // expose the NavigationHandle to code outside of content/ MUST go though the |
| 161 // NavigatorDelegate. In particular, the ContentBrowserClient should not be | 166 // NavigatorDelegate. In particular, the ContentBrowserClient should not be |
| 162 // called directly form the NavigationHandle code. Thus, these calls will not | 167 // called directly form the NavigationHandle code. Thus, these calls will not |
| 163 // expose the NavigationHandle when navigating to an InterstialPage. | 168 // expose the NavigationHandle when navigating to an InterstialPage. |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 }; | 352 }; |
| 348 | 353 |
| 349 NavigationHandleImpl(const GURL& url, | 354 NavigationHandleImpl(const GURL& url, |
| 350 const std::vector<GURL>& redirect_chain, | 355 const std::vector<GURL>& redirect_chain, |
| 351 FrameTreeNode* frame_tree_node, | 356 FrameTreeNode* frame_tree_node, |
| 352 bool is_renderer_initiated, | 357 bool is_renderer_initiated, |
| 353 bool is_same_page, | 358 bool is_same_page, |
| 354 const base::TimeTicks& navigation_start, | 359 const base::TimeTicks& navigation_start, |
| 355 int pending_nav_entry_id, | 360 int pending_nav_entry_id, |
| 356 bool started_from_context_menu, | 361 bool started_from_context_menu, |
| 357 bool should_bypass_main_world_csp); | 362 bool should_bypass_main_world_csp, |
| 363 bool is_form_submission); |
| 358 | 364 |
| 359 NavigationThrottle::ThrottleCheckResult CheckWillStartRequest(); | 365 NavigationThrottle::ThrottleCheckResult CheckWillStartRequest(); |
| 360 NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest(); | 366 NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest(); |
| 361 NavigationThrottle::ThrottleCheckResult CheckWillProcessResponse(); | 367 NavigationThrottle::ThrottleCheckResult CheckWillProcessResponse(); |
| 362 | 368 |
| 363 // Called when WillProcessResponse checks are done, to find the final | 369 // Called when WillProcessResponse checks are done, to find the final |
| 364 // RenderFrameHost for the navigation. Checks whether the navigation should be | 370 // RenderFrameHost for the navigation. Checks whether the navigation should be |
| 365 // transferred. Returns false if the transfer attempt results in the | 371 // transferred. Returns false if the transfer attempt results in the |
| 366 // destruction of this NavigationHandle and the navigation should no longer | 372 // destruction of this NavigationHandle and the navigation should no longer |
| 367 // proceed. This can happen when the RenderFrameHostManager determines a | 373 // proceed. This can happen when the RenderFrameHostManager determines a |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 GURL previous_url_; | 502 GURL previous_url_; |
| 497 GURL base_url_; | 503 GURL base_url_; |
| 498 net::HostPortPair socket_address_; | 504 net::HostPortPair socket_address_; |
| 499 NavigationType navigation_type_; | 505 NavigationType navigation_type_; |
| 500 | 506 |
| 501 // Whether or not the navigation has been issued by an isolated world, for | 507 // Whether or not the navigation has been issued by an isolated world, for |
| 502 // instance from a chrome extension. When true, the navigation should not be | 508 // instance from a chrome extension. When true, the navigation should not be |
| 503 // blocked by the parent frame's CSP. | 509 // blocked by the parent frame's CSP. |
| 504 bool should_bypass_main_world_csp_; | 510 bool should_bypass_main_world_csp_; |
| 505 | 511 |
| 512 // Whether or not the navigation results from the submission of a form. |
| 513 bool is_form_submission_; |
| 514 |
| 506 base::WeakPtrFactory<NavigationHandleImpl> weak_factory_; | 515 base::WeakPtrFactory<NavigationHandleImpl> weak_factory_; |
| 507 | 516 |
| 508 DISALLOW_COPY_AND_ASSIGN(NavigationHandleImpl); | 517 DISALLOW_COPY_AND_ASSIGN(NavigationHandleImpl); |
| 509 }; | 518 }; |
| 510 | 519 |
| 511 } // namespace content | 520 } // namespace content |
| 512 | 521 |
| 513 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_ | 522 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_HANDLE_IMPL_H_ |
| OLD | NEW |