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

Unified Diff: content/renderer/render_frame_impl.h

Issue 1693563002: PROTOTYPE: PlzNavigate: use a Mojo data pipe to stream navigation data to the renderer. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Browser sends URLRequest id to the renderer and renderer uses intermediary buffer for data: none he… Created 4 years, 9 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
« no previous file with comments | « content/content_child.gypi ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.h
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index b554ead998149fb3ce14a61c150947127da1abed..8112c4399a7fe10be8fffb66cdf3ef5f1f0ff260 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -24,9 +24,11 @@
#include "content/common/accessibility_mode_enums.h"
#include "content/common/frame_message_enums.h"
#include "content/common/mojo/service_registry_impl.h"
+#include "content/common/navigation_params.h"
#include "content/public/common/console_message_level.h"
#include "content/public/common/javascript_message_type.h"
#include "content/public/common/referrer.h"
+#include "content/public/common/resource_response.h"
#include "content/public/common/stop_find_action.h"
#include "content/public/renderer/render_frame.h"
#include "content/renderer/render_frame_proxy.h"
@@ -144,15 +146,13 @@ class RenderWidgetFullscreenPepper;
class ScreenOrientationDispatcher;
class UserMediaClientImpl;
class WakeLockDispatcher;
-struct CommonNavigationParams;
struct CustomContextMenuContext;
struct FrameReplicationState;
struct NavigationParams;
-struct RequestNavigationParams;
-struct ResourceResponseHead;
struct StartNavigationParams;
struct StreamOverrideParameters;
class VRDispatcher;
+class RenderThreadImpl;
class CONTENT_EXPORT RenderFrameImpl
: public RenderFrame,
@@ -651,6 +651,11 @@ class CONTENT_EXPORT RenderFrameImpl
// the Mojo IPC layer.
void MaybeEnableMojoBindings();
+ void ReceiveNavigationDataPipeConsumerHandle(
+ mojo::ScopedDataPipeConsumerHandle data_consumer_handle,
+ int browser_request_id,
+ int32_t handle_commit_id);
+
protected:
explicit RenderFrameImpl(const CreateParams& params);
@@ -782,7 +787,8 @@ class CONTENT_EXPORT RenderFrameImpl
void OnCommitNavigation(const ResourceResponseHead& response,
const GURL& stream_url,
const CommonNavigationParams& common_params,
- const RequestNavigationParams& request_params);
+ const RequestNavigationParams& request_params,
+ int32_t navigation_commit_id);
void OnFailedNavigation(const CommonNavigationParams& common_params,
const RequestNavigationParams& request_params,
bool has_stale_copy_in_cache,
@@ -806,6 +812,8 @@ class CONTENT_EXPORT RenderFrameImpl
void OnCopyToFindPboard();
#endif
+ void NavigateIfIPCSynched(bool no_sync_needed);
+
// Requests that the browser process navigates to |url|. If
// |is_history_navigation_in_new_child| is true, the browser process should
// look for a matching FrameNavigationEntry in the last committed entry to use
@@ -1197,6 +1205,20 @@ class CONTENT_EXPORT RenderFrameImpl
// Whether or not this RenderFrame is currently pasting.
bool is_pasting_;
+ // TODO(carlosk): if this hack should become a thing, all of this should be
+ // moved into a struct that holds "ongoing navigation commit data". Maybe
+ // there's a way to reuse pending_navigation_params_?
+ mojo::ScopedDataPipeConsumerHandle latest_handle_;
+ int latest_browser_request_id_;
+ int32_t latest_handle_commit_id_;
+ RenderThreadImpl* handle_render_thread_;
+ int32_t latest_navigation_commit_id_;
+ RenderThreadImpl* navigation_render_thread_;
+ ResourceResponseHead navigation_response_;
+ GURL navigation_stream_url_;
+ CommonNavigationParams navigation_common_params_;
+ RequestNavigationParams navigation_request_params_;
+
#if defined(ENABLE_WEBVR)
// The VR dispatcher attached to the frame, lazily initialized.
scoped_ptr<VRDispatcher> vr_dispatcher_;
« no previous file with comments | « content/content_child.gypi ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698