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

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

Issue 1427633004: Send navigation_start to the browser in DidStartProvisionalLoad IPC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@navigation_start_renderer
Patch Set: Conflict Resolution: FrameHostMsg_DidStartProvisionalLoad Created 5 years, 1 month 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/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 6f46707108e531ceac132639638d387611e5710f..b0a7b9a36008a11a40eeaca47a28970b330fa8a9 100644
--- a/content/browser/frame_host/navigation_handle_impl.h
+++ b/content/browser/frame_host/navigation_handle_impl.h
@@ -57,9 +57,14 @@ struct NavigationRequestInfo;
// the RenderFrameHost still apply.
class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle {
public:
+ // |navigation_start| comes from the DidStartProvisionalLoad IPC, which tracks
+ // both renderer-initiated and browser-initiated navigation start.
+ // PlzNavigate: This value always comes from the CommonNavigationParams
+ // associated with this navigation.
static scoped_ptr<NavigationHandleImpl> Create(
const GURL& url,
- FrameTreeNode* frame_tree_node);
+ FrameTreeNode* frame_tree_node,
+ const base::TimeTicks& navigation_start);
~NavigationHandleImpl() override;
// NavigationHandle implementation:
@@ -90,6 +95,11 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle {
const GURL& new_referrer_url,
bool new_is_external_protocol) override;
+ // The time the navigation started, recorded either in the renderer or browser
+ // process. Corresponds to Navigation Timing API.
+ // TODO(csharrison): Add this to the public class and mark this override.
+ const base::TimeTicks& navigation_start() { return navigation_start_; }
+
NavigatorDelegate* GetDelegate() const;
void set_net_error_code(net::Error net_error_code) {
@@ -162,7 +172,8 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle {
};
NavigationHandleImpl(const GURL& url,
- FrameTreeNode* frame_tree_node);
+ FrameTreeNode* frame_tree_node,
+ const base::TimeTicks& navigation_start);
NavigationThrottle::ThrottleCheckResult CheckWillStartRequest();
NavigationThrottle::ThrottleCheckResult CheckWillRedirectRequest();
@@ -197,6 +208,9 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle {
// The index of the next throttle to check.
size_t next_index_;
+ // The time this navigation started.
+ const base::TimeTicks navigation_start_;
+
// This callback will be run when all throttle checks have been performed.
ThrottleChecksFinishedCallback complete_callback_;

Powered by Google App Engine
This is Rietveld 408576698