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

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

Issue 2321543002: Merge CrossSiteResourceHandler and NavigationResourceThrottle (Closed)
Patch Set: Addressed nits Created 4 years, 2 months 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_RENDER_FRAME_HOST_MANAGER_H_ 5 #ifndef CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_
6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ 6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 10 matching lines...) Expand all
21 #include "content/browser/site_instance_impl.h" 21 #include "content/browser/site_instance_impl.h"
22 #include "content/common/content_export.h" 22 #include "content/common/content_export.h"
23 #include "content/public/browser/global_request_id.h" 23 #include "content/public/browser/global_request_id.h"
24 #include "content/public/common/referrer.h" 24 #include "content/public/common/referrer.h"
25 #include "ui/base/page_transition_types.h" 25 #include "ui/base/page_transition_types.h"
26 #include "url/origin.h" 26 #include "url/origin.h"
27 27
28 namespace content { 28 namespace content {
29 class BrowserContext; 29 class BrowserContext;
30 class CrossProcessFrameConnector; 30 class CrossProcessFrameConnector;
31 class CrossSiteTransferringRequest;
32 class FrameNavigationEntry; 31 class FrameNavigationEntry;
33 class FrameTreeNode; 32 class FrameTreeNode;
34 class InterstitialPageImpl; 33 class InterstitialPageImpl;
35 class NavigationControllerImpl; 34 class NavigationControllerImpl;
36 class NavigationEntry; 35 class NavigationEntry;
37 class NavigationEntryImpl; 36 class NavigationEntryImpl;
38 class NavigationHandleImpl; 37 class NavigationHandleImpl;
39 class NavigationRequest; 38 class NavigationRequest;
40 class NavigatorTestWithBrowserSideNavigation; 39 class NavigatorTestWithBrowserSideNavigation;
41 class RenderFrameHostDelegate; 40 class RenderFrameHostDelegate;
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 // by the first parameter) to allow the appropriate renderer to approve or 291 // by the first parameter) to allow the appropriate renderer to approve or
293 // deny the request. |proceed| indicates whether the user chose to proceed. 292 // deny the request. |proceed| indicates whether the user chose to proceed.
294 // |proceed_time| is the time when the request was allowed to proceed. 293 // |proceed_time| is the time when the request was allowed to proceed.
295 void OnBeforeUnloadACK(bool for_cross_site_transition, 294 void OnBeforeUnloadACK(bool for_cross_site_transition,
296 bool proceed, 295 bool proceed,
297 const base::TimeTicks& proceed_time); 296 const base::TimeTicks& proceed_time);
298 297
299 // The |pending_render_frame_host| is ready to commit a page. We should 298 // The |pending_render_frame_host| is ready to commit a page. We should
300 // ensure that the old RenderFrameHost runs its unload handler first and 299 // ensure that the old RenderFrameHost runs its unload handler first and
301 // determine whether a RenderFrameHost transfer is needed. 300 // determine whether a RenderFrameHost transfer is needed.
302 // |cross_site_transferring_request| is NULL if a request is not being
303 // transferred between renderers.
304 void OnCrossSiteResponse(RenderFrameHostImpl* pending_render_frame_host, 301 void OnCrossSiteResponse(RenderFrameHostImpl* pending_render_frame_host,
305 const GlobalRequestID& global_request_id, 302 const GlobalRequestID& global_request_id,
306 std::unique_ptr<CrossSiteTransferringRequest>
307 cross_site_transferring_request,
308 const std::vector<GURL>& transfer_url_chain, 303 const std::vector<GURL>& transfer_url_chain,
309 const Referrer& referrer, 304 const Referrer& referrer,
310 ui::PageTransition page_transition, 305 ui::PageTransition page_transition,
311 bool should_replace_current_entry); 306 bool should_replace_current_entry);
312 307
313 // Determines whether a navigation to |dest_url| may be completed using an 308 // Determines whether a navigation to |dest_url| may be completed using an
314 // existing RenderFrameHost, or whether transferring to a new RenderFrameHost 309 // existing RenderFrameHost, or whether transferring to a new RenderFrameHost
315 // backed by a different render process is required. This is a security policy 310 // backed by a different render process is required. This is a security policy
316 // check determined by the current site isolation mode, and must be done 311 // check determined by the current site isolation mode, and must be done
317 // before the resource at |dest_url| is delivered to |existing_rfh|. 312 // before the resource at |dest_url| is delivered to |existing_rfh|.
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 // RenderFrame instance. 765 // RenderFrame instance.
771 // For now, RenderFrameHost keeps a RenderViewHost in its SiteInstance alive. 766 // For now, RenderFrameHost keeps a RenderViewHost in its SiteInstance alive.
772 // Eventually, RenderViewHost will be replaced with a page context. 767 // Eventually, RenderViewHost will be replaced with a page context.
773 std::unique_ptr<RenderFrameHostImpl> render_frame_host_; 768 std::unique_ptr<RenderFrameHostImpl> render_frame_host_;
774 769
775 // A RenderFrameHost used to load a cross-site page. This remains hidden 770 // A RenderFrameHost used to load a cross-site page. This remains hidden
776 // while a cross-site request is pending until it calls DidNavigate. 771 // while a cross-site request is pending until it calls DidNavigate.
777 // Note: This member is not used in PlzNavigate. 772 // Note: This member is not used in PlzNavigate.
778 std::unique_ptr<RenderFrameHostImpl> pending_render_frame_host_; 773 std::unique_ptr<RenderFrameHostImpl> pending_render_frame_host_;
779 774
780 // If a pending request needs to be transferred to another process, this
781 // owns the request until it's transferred to the new process, so it will be
782 // cleaned up if the navigation is cancelled. Otherwise, this is NULL.
783 std::unique_ptr<CrossSiteTransferringRequest>
784 cross_site_transferring_request_;
785
786 // This is used to temporarily store the NavigationHandle during 775 // This is used to temporarily store the NavigationHandle during
787 // transferring navigations. The handle needs to be stored because the old 776 // transferring navigations. The handle needs to be stored because the old
788 // RenderFrameHost may be discarded before a new RenderFrameHost is created 777 // RenderFrameHost may be discarded before a new RenderFrameHost is created
789 // for the navigation. 778 // for the navigation.
790 // PlzNavigate: this will never be set since there are no transferring 779 // PlzNavigate: this will never be set since there are no transferring
791 // navigations in PlzNavigate. 780 // navigations in PlzNavigate.
792 std::unique_ptr<NavigationHandleImpl> transfer_navigation_handle_; 781 std::unique_ptr<NavigationHandleImpl> transfer_navigation_handle_;
793 782
794 // Proxy hosts, indexed by site instance ID. 783 // Proxy hosts, indexed by site instance ID.
795 std::unordered_map<int32_t, std::unique_ptr<RenderFrameProxyHost>> 784 std::unordered_map<int32_t, std::unique_ptr<RenderFrameProxyHost>>
(...skipping 19 matching lines...) Expand all
815 std::unique_ptr<RenderFrameHostImpl> speculative_render_frame_host_; 804 std::unique_ptr<RenderFrameHostImpl> speculative_render_frame_host_;
816 805
817 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_; 806 base::WeakPtrFactory<RenderFrameHostManager> weak_factory_;
818 807
819 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager); 808 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostManager);
820 }; 809 };
821 810
822 } // namespace content 811 } // namespace content
823 812
824 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_ 813 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_MANAGER_H_
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.cc ('k') | content/browser/frame_host/render_frame_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698