| Index: content/common/navigation_params.h
|
| diff --git a/content/common/navigation_params.h b/content/common/navigation_params.h
|
| index 9b3fccf4ab78e61b656a68d5e077f0c0a1611989..ce34bcc04bdf1d7f7bab3adab382715c5587b28f 100644
|
| --- a/content/common/navigation_params.h
|
| +++ b/content/common/navigation_params.h
|
| @@ -21,12 +21,13 @@ class RefCountedMemory;
|
| }
|
|
|
| namespace content {
|
| -class NavigationEntry;
|
|
|
| // The following structures hold parameters used during a navigation. In
|
| // particular they are used by FrameMsg_Navigate, FrameMsg_CommitNavigation and
|
| // FrameHostMsg_BeginNavigation.
|
|
|
| +// Provided by the browser or the renderer -------------------------------------
|
| +
|
| // Used by all navigation IPCs.
|
| struct CONTENT_EXPORT CommonNavigationParams {
|
| CommonNavigationParams();
|
| @@ -76,7 +77,15 @@ struct CONTENT_EXPORT CommonNavigationParams {
|
| GURL history_url_for_data_url;
|
| };
|
|
|
| -// PlzNavigate: parameters needed to start a navigation on the IO thread.
|
| +// Provided by the renderer ----------------------------------------------------
|
| +//
|
| +// This struct holds parameters sent by the renderer to the browser. It is only
|
| +// used in PlzNavigate (since in the current architecture, the renderer does not
|
| +// inform the browser of navigations until they commit).
|
| +
|
| +// This struct is not used outside of the PlzNavigate project.
|
| +// PlzNavigate: parameters needed to start a navigation on the IO thread,
|
| +// following a renderer-initiated navigation request.
|
| struct CONTENT_EXPORT BeginNavigationParams {
|
| // TODO(clamy): See if it is possible to reuse this in
|
| // ResourceMsg_Request_Params.
|
| @@ -99,17 +108,73 @@ struct CONTENT_EXPORT BeginNavigationParams {
|
| bool has_user_gesture;
|
| };
|
|
|
| -// Used by FrameMsg_Navigate.
|
| -// PlzNavigate: sent to the renderer when the navigation is ready to commit.
|
| -struct CONTENT_EXPORT CommitNavigationParams {
|
| - CommitNavigationParams();
|
| - CommitNavigationParams(bool is_overriding_user_agent,
|
| - base::TimeTicks navigation_start,
|
| - const std::vector<GURL>& redirects,
|
| - bool can_load_local_resources,
|
| - const std::string& frame_to_navigate,
|
| - base::Time request_time);
|
| - ~CommitNavigationParams();
|
| +// Provided by the browser -----------------------------------------------------
|
| +//
|
| +// These structs are sent by the browser to the renderer to start/commit a
|
| +// navigation depending on whether browser-side navigation is enabled.
|
| +// Parameters used both in the current architecture and PlzNavigate should be
|
| +// put in RequestNavigationParams. Parameters only used by the current
|
| +// architecture should go in StartNavigationParams.
|
| +
|
| +// Used by FrameMsg_Navigate. Holds the parameters needed by the renderer to
|
| +// start a browser-initiated navigation besides those in CommonNavigationParams.
|
| +// The difference with the RequestNavigationParams below is that they are only
|
| +// used in the current architecture of navigation, and will not be used by
|
| +// PlzNavigate.
|
| +// PlzNavigate: These are not used.
|
| +struct CONTENT_EXPORT StartNavigationParams {
|
| + StartNavigationParams();
|
| + StartNavigationParams(
|
| + bool is_post,
|
| + const std::string& extra_headers,
|
| + const std::vector<unsigned char>& browser_initiated_post_data,
|
| + bool should_replace_current_entry,
|
| + int transferred_request_child_id,
|
| + int transferred_request_request_id);
|
| + ~StartNavigationParams();
|
| +
|
| + // Whether the navigation is a POST request (as opposed to a GET).
|
| + bool is_post;
|
| +
|
| + // Extra headers (separated by \n) to send during the request.
|
| + std::string extra_headers;
|
| +
|
| + // If is_post is true, holds the post_data information from browser. Empty
|
| + // otherwise.
|
| + std::vector<unsigned char> browser_initiated_post_data;
|
| +
|
| + // Informs the RenderView the pending navigation should replace the current
|
| + // history entry when it commits. This is used for cross-process redirects so
|
| + // the transferred navigation can recover the navigation state.
|
| + bool should_replace_current_entry;
|
| +
|
| + // The following two members identify a previous request that has been
|
| + // created before this navigation is being transferred to a new render view.
|
| + // This serves the purpose of recycling the old request.
|
| + // Unless this refers to a transferred navigation, these values are -1 and -1.
|
| + int transferred_request_child_id;
|
| + int transferred_request_request_id;
|
| +};
|
| +
|
| +// Used by FrameMsg_Navigate. Holds the parameters needed by the renderer to
|
| +// start a browser-initiated navigation besides those in CommonNavigationParams.
|
| +// PlzNavigate: sent to the renderer to make it issue a stream request for a
|
| +// navigation that is ready to commit.
|
| +struct CONTENT_EXPORT RequestNavigationParams {
|
| + RequestNavigationParams();
|
| + RequestNavigationParams(bool is_overriding_user_agent,
|
| + base::TimeTicks navigation_start,
|
| + const std::vector<GURL>& redirects,
|
| + bool can_load_local_resources,
|
| + const std::string& frame_to_navigate,
|
| + base::Time request_time,
|
| + const PageState& page_state,
|
| + int32 page_id,
|
| + int pending_history_list_offset,
|
| + int current_history_list_offset,
|
| + int current_history_list_length,
|
| + bool should_clear_history_list);
|
| + ~RequestNavigationParams();
|
|
|
| // Whether or not the user agent override string should be used.
|
| bool is_overriding_user_agent;
|
| @@ -132,19 +197,6 @@ struct CONTENT_EXPORT CommitNavigationParams {
|
| // infrastructure to set up DocumentState associated with the RenderView.
|
| // TODO(ppi): make it go away.
|
| base::Time request_time;
|
| -};
|
| -
|
| -// Used by FrameMsg_Navigate.
|
| -// PlzNavigate: sent to the renderer when the navigation is ready to commit.
|
| -struct CONTENT_EXPORT HistoryNavigationParams {
|
| - HistoryNavigationParams();
|
| - HistoryNavigationParams(const PageState& page_state,
|
| - int32 page_id,
|
| - int pending_history_list_offset,
|
| - int current_history_list_offset,
|
| - int current_history_list_length,
|
| - bool should_clear_history_list);
|
| - ~HistoryNavigationParams();
|
|
|
| // Opaque history state (received by ViewHostMsg_UpdateState).
|
| PageState page_state;
|
| @@ -170,54 +222,19 @@ struct CONTENT_EXPORT HistoryNavigationParams {
|
| bool should_clear_history_list;
|
| };
|
|
|
| -// Parameters needed at the start of a navigation. Used by FrameMsg_Navigate.
|
| -// PlzNavigate: these parameters are not used in navigation.
|
| -struct CONTENT_EXPORT StartNavigationParams {
|
| - StartNavigationParams();
|
| - StartNavigationParams(
|
| - bool is_post,
|
| - const std::string& extra_headers,
|
| - const std::vector<unsigned char>& browser_initiated_post_data,
|
| - bool should_replace_current_entry,
|
| - int transferred_request_child_id,
|
| - int transferred_request_request_id);
|
| - ~StartNavigationParams();
|
| -
|
| - // Whether the navigation is a POST request (as opposed to a GET).
|
| - bool is_post;
|
| -
|
| - // Extra headers (separated by \n) to send during the request.
|
| - std::string extra_headers;
|
| -
|
| - // If is_post is true, holds the post_data information from browser. Empty
|
| - // otherwise.
|
| - std::vector<unsigned char> browser_initiated_post_data;
|
| -
|
| - // Informs the RenderView the pending navigation should replace the current
|
| - // history entry when it commits. This is used for cross-process redirects so
|
| - // the transferred navigation can recover the navigation state.
|
| - bool should_replace_current_entry;
|
| -
|
| - // The following two members identify a previous request that has been
|
| - // created before this navigation is being transferred to a new render view.
|
| - // This serves the purpose of recycling the old request.
|
| - // Unless this refers to a transferred navigation, these values are -1 and -1.
|
| - int transferred_request_child_id;
|
| - int transferred_request_request_id;
|
| -};
|
| -
|
| +// Helper struct keeping track in one place of all the parameters the browser
|
| +// needs to provide to the renderer.
|
| struct NavigationParams {
|
| NavigationParams(const CommonNavigationParams& common_params,
|
| const StartNavigationParams& start_params,
|
| - const CommitNavigationParams& commit_params,
|
| - const HistoryNavigationParams& history_params);
|
| + const RequestNavigationParams& request_params);
|
| ~NavigationParams();
|
|
|
| CommonNavigationParams common_params;
|
| StartNavigationParams start_params;
|
| - CommitNavigationParams commit_params;
|
| - HistoryNavigationParams history_params;
|
| + RequestNavigationParams request_params;
|
| };
|
| +
|
| } // namespace content
|
|
|
| #endif // CONTENT_COMMON_NAVIGATION_PARAMS_H_
|
|
|