Index: content/common/navigation_params.h |
diff --git a/content/common/navigation_params.h b/content/common/navigation_params.h |
index 9b3fccf4ab78e61b656a68d5e077f0c0a1611989..47ec9a85259b3a12869d046a5ca202855b469773 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,31 +77,57 @@ struct CONTENT_EXPORT CommonNavigationParams { |
GURL history_url_for_data_url; |
}; |
-// PlzNavigate: parameters needed to start a navigation on the IO thread. |
-struct CONTENT_EXPORT BeginNavigationParams { |
- // TODO(clamy): See if it is possible to reuse this in |
- // ResourceMsg_Request_Params. |
- BeginNavigationParams(); |
- BeginNavigationParams(std::string method, |
- std::string headers, |
- int load_flags, |
- bool has_user_gesture); |
+// Provided by the browser ----------------------------------------------------- |
+// |
+// These structs are sent by the browser to the renderer to start (commit with |
+// PlzNavigate enabled) a navigation. Parameters used both in the current |
+// architecture and PlzNavigate should be put in CommitNavigationParams. |
+// 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 CommitNavigationParams above 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(); |
- // The request method: GET, POST, etc. |
- std::string method; |
+ // Whether the navigation is a POST request (as opposed to a GET). |
+ bool is_post; |
- // Additional HTTP request headers. |
- std::string headers; |
+ // Extra headers (separated by \n) to send during the request. |
+ std::string extra_headers; |
- // net::URLRequest load flags (net::LOAD_NORMAL) by default). |
- int load_flags; |
+ // If is_post is true, holds the post_data information from browser. Empty |
+ // otherwise. |
+ std::vector<unsigned char> browser_initiated_post_data; |
- // True if the request was user initiated. |
- bool has_user_gesture; |
+ // 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. |
-// PlzNavigate: sent to the renderer when the navigation is ready to commit. |
+// 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 commit a navigation. |
struct CONTENT_EXPORT CommitNavigationParams { |
CommitNavigationParams(); |
CommitNavigationParams(bool is_overriding_user_agent, |
@@ -108,7 +135,13 @@ struct CONTENT_EXPORT CommitNavigationParams { |
const std::vector<GURL>& redirects, |
bool can_load_local_resources, |
const std::string& frame_to_navigate, |
- base::Time request_time); |
+ 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); |
~CommitNavigationParams(); |
// Whether or not the user agent override string should be used. |
@@ -132,19 +165,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 +190,50 @@ 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 parameters the browser need |
+// 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 CommitNavigationParams& commit_params); |
~NavigationParams(); |
CommonNavigationParams common_params; |
StartNavigationParams start_params; |
CommitNavigationParams commit_params; |
- HistoryNavigationParams history_params; |
}; |
+ |
+// 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. |
+ BeginNavigationParams(); |
+ BeginNavigationParams(std::string method, |
+ std::string headers, |
+ int load_flags, |
+ bool has_user_gesture); |
+ |
+ // The request method: GET, POST, etc. |
+ std::string method; |
+ |
+ // Additional HTTP request headers. |
+ std::string headers; |
+ |
+ // net::URLRequest load flags (net::LOAD_NORMAL) by default). |
+ int load_flags; |
+ |
+ // True if the request was user initiated. |
+ bool has_user_gesture; |
+}; |
+ |
} // namespace content |
#endif // CONTENT_COMMON_NAVIGATION_PARAMS_H_ |