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

Unified Diff: content/browser/frame_host/navigator_impl.h

Issue 615633005: PlzNavigate: Move the navigation logic to NavigatorImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@commit-nav
Patch Set: Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/navigator_impl.h
diff --git a/content/browser/frame_host/navigator_impl.h b/content/browser/frame_host/navigator_impl.h
index 7d58bbdc41028cba44fb33d7eb8f7616b10bf467..02747a6dece5f35baa7f3d6c4a2f340905b3b85e 100644
--- a/content/browser/frame_host/navigator_impl.h
+++ b/content/browser/frame_host/navigator_impl.h
@@ -5,6 +5,7 @@
#ifndef CONTENT_BROWSER_FRAME_HOST_NAVIGATOR_IMPL_H_
#define CONTENT_BROWSER_FRAME_HOST_NAVIGATOR_IMPL_H_
+#include "base/memory/linked_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "content/browser/frame_host/navigation_controller_impl.h"
@@ -67,14 +68,17 @@ class CONTENT_EXPORT NavigatorImpl : public Navigator {
const GlobalRequestID& transferred_global_request_id,
bool should_replace_current_entry,
bool user_gesture) OVERRIDE;
+ virtual void OnBeginNavigation(
+ FrameTreeNode* frame_tree_node,
+ const FrameHostMsg_BeginNavigation_Params& params,
+ const CommonNavigationParams& common_params) OVERRIDE;
virtual void CommitNavigation(
- RenderFrameHostImpl* render_frame_host,
- const GURL& stream_url,
- const CommonNavigationParams& common_params,
- const CommitNavigationParams& commit_params) OVERRIDE;
+ FrameTreeNode* frame_tree_node,
+ const NavigationBeforeCommitInfo& info) OVERRIDE;
+ virtual void CancelNavigation(FrameTreeNode* frame_tree_node) OVERRIDE;
private:
- virtual ~NavigatorImpl() {}
+ virtual ~NavigatorImpl();
// Navigates to the given entry, which must be the pending entry. Private
// because all callers should use NavigateToPendingEntry.
@@ -89,6 +93,14 @@ class CONTENT_EXPORT NavigatorImpl : public Navigator {
RenderFrameHostImpl* render_frame_host,
const GURL& url);
+ // PlzNavigate: sends a RequestNavigation IPC to the renderer to ask it to
+ // navigate. If no live renderer is present, then the navigation request will
+ // be sent directly to the ResourceDispatcherHost.
+ bool RequestNavigation(FrameTreeNode* frame_tree_node,
+ const NavigationEntryImpl& entry,
+ NavigationController::ReloadType reload_type,
+ base::TimeTicks navigation_start);
+
// The NavigationController that will keep track of session history for all
// RenderFrameHost objects using this NavigatorImpl.
// TODO(nasko): Move ownership of the NavigationController from
@@ -99,6 +111,12 @@ class CONTENT_EXPORT NavigatorImpl : public Navigator {
// events. Can be NULL in tests.
NavigatorDelegate* delegate_;
+ // PlzNavigate: used to track the various ongoing NavigationRequests in the
+ // different FrameTreeNode, based on the frame_tree_node_id.
nasko 2014/10/01 15:59:49 nit: nodes should be plural, based on the sentence
clamy 2014/10/01 17:10:43 Done.
+ typedef base::hash_map<int64, linked_ptr<NavigationRequest>>
nasko 2014/10/01 15:59:50 Why linked_ptr? Why not scoped_ptr?
clamy 2014/10/01 17:10:43 I was under the impression that you should not put
nasko 2014/10/01 18:20:19 Why not use ScopedPtrHashMap then? Scoped pointers
clamy 2014/10/01 22:30:46 Because I did not know we had a ScopedPtrHashMap :
+ NavigationRequestMap;
+ NavigationRequestMap navigation_request_map_;
carlosk 2014/10/01 18:31:10 More of a design discussion: this is in fact repli
clamy 2014/10/01 22:30:46 I don't think there is such a plan. And we are not
nasko 2014/10/02 00:09:39 There is no plan to have Navigator be 1-1 with Fra
+
DISALLOW_COPY_AND_ASSIGN(NavigatorImpl);
};

Powered by Google App Engine
This is Rietveld 408576698