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

Unified Diff: content/browser/frame_host/navigation_entry_impl.cc

Issue 1018383002: Make NavigationParams clearer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Charlie's comments Created 5 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
Index: content/browser/frame_host/navigation_entry_impl.cc
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc
index c7a84de7ff38c08f8db23c1c33af7a462c4c7cd5..82b97f9ec21639f5e01fb1706b3a37a6b6557890 100644
--- a/content/browser/frame_host/navigation_entry_impl.cc
+++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -7,7 +7,6 @@
#include "base/metrics/histogram.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "content/browser/frame_host/navigation_controller_impl.h"
#include "content/common/navigation_params.h"
#include "content/public/common/content_constants.h"
#include "content/public/common/url_constants.h"
@@ -387,38 +386,6 @@ NavigationEntryImpl* NavigationEntryImpl::Clone() const {
return copy;
}
-void NavigationEntryImpl::ResetForCommit() {
- // Any state that only matters when a navigation entry is pending should be
- // cleared here.
- // TODO(creis): This state should be moved to NavigationRequest once
- // PlzNavigate is enabled.
- SetBrowserInitiatedPostData(nullptr);
- set_source_site_instance(nullptr);
- set_is_renderer_initiated(false);
- set_transferred_global_request_id(GlobalRequestID());
- set_should_replace_entry(false);
-
- set_should_clear_history_list(false);
- set_frame_tree_node_id(-1);
-
-#if defined(OS_ANDROID)
- // Reset the time stamp so that the metrics are not reported if this entry is
- // loaded again in the future.
- set_intent_received_timestamp(base::TimeTicks());
-#endif
-}
-
-void NavigationEntryImpl::SetScreenshotPNGData(
- scoped_refptr<base::RefCountedBytes> png_data) {
- screenshot_ = png_data;
- if (screenshot_.get())
- UMA_HISTOGRAM_MEMORY_KB("Overscroll.ScreenshotSize", screenshot_->size());
-}
-
-GURL NavigationEntryImpl::GetHistoryURLForDataURL() const {
- return GetBaseURLForDataURL().is_empty() ? GURL() : GetVirtualURL();
-}
-
CommonNavigationParams NavigationEntryImpl::ConstructCommonNavigationParams(
FrameMsg_Navigate_Type::Value navigation_type) const {
FrameMsg_UILoadMetricsReportType::Value report_type =
@@ -436,8 +403,27 @@ CommonNavigationParams NavigationEntryImpl::ConstructCommonNavigationParams(
GetHistoryURLForDataURL());
}
-CommitNavigationParams NavigationEntryImpl::ConstructCommitNavigationParams(
- base::TimeTicks navigation_start) const {
+StartNavigationParams NavigationEntryImpl::ConstructStartNavigationParams()
+ const {
+ std::vector<unsigned char> browser_initiated_post_data;
+ if (GetBrowserInitiatedPostData()) {
+ browser_initiated_post_data.assign(
+ GetBrowserInitiatedPostData()->front(),
+ GetBrowserInitiatedPostData()->front() +
+ GetBrowserInitiatedPostData()->size());
+ }
+
+ return StartNavigationParams(
+ GetHasPostData(), extra_headers(), browser_initiated_post_data,
+ should_replace_entry(), transferred_global_request_id().child_id,
+ transferred_global_request_id().request_id);
+}
+
+RequestNavigationParams NavigationEntryImpl::ConstructRequestNavigationParams(
+ base::TimeTicks navigation_start,
+ int pending_history_list_offset,
+ int current_history_list_offset,
+ int current_history_list_length) const {
// Set the redirect chain to the navigation's redirects, unless returning to a
// completed navigation (whose previous redirects don't apply).
std::vector<GURL> redirects;
@@ -445,44 +431,55 @@ CommitNavigationParams NavigationEntryImpl::ConstructCommitNavigationParams(
redirects = GetRedirectChain();
}
- return CommitNavigationParams(GetIsOverridingUserAgent(), navigation_start,
- redirects, GetCanLoadLocalResources(),
- GetFrameToNavigate(), base::Time::Now());
-}
-
-HistoryNavigationParams NavigationEntryImpl::ConstructHistoryNavigationParams(
- NavigationControllerImpl* controller) const {
- int pending_history_list_offset = controller->GetIndexOfEntry(this);
- int current_history_list_offset = controller->GetLastCommittedEntryIndex();
- int current_history_list_length = controller->GetEntryCount();
+ int pending_offset_to_send = pending_history_list_offset;
Charlie Reis 2015/03/20 21:07:34 nit: Is there a reason to make copies of these?
clamy 2015/03/24 13:33:38 I thought it would be weird and not very readable
+ int current_offset_to_send = current_history_list_offset;
+ int current_length_to_send = current_history_list_length;
if (should_clear_history_list()) {
// Set the history list related parameters to the same values a
// NavigationController would return before its first navigation. This will
// fully clear the RenderView's view of the session history.
- pending_history_list_offset = -1;
- current_history_list_offset = -1;
- current_history_list_length = 0;
+ pending_offset_to_send = -1;
+ current_offset_to_send = -1;
+ current_length_to_send = 0;
}
- return HistoryNavigationParams(
- GetPageState(), GetPageID(), pending_history_list_offset,
- current_history_list_offset, current_history_list_length,
+ return RequestNavigationParams(
+ GetIsOverridingUserAgent(), navigation_start, redirects,
+ GetCanLoadLocalResources(), GetFrameToNavigate(), base::Time::Now(),
+ GetPageState(), GetPageID(), pending_offset_to_send,
+ current_offset_to_send, current_length_to_send,
should_clear_history_list());
}
-StartNavigationParams NavigationEntryImpl::ConstructStartNavigationParams()
- const {
- std::vector<unsigned char> browser_initiated_post_data;
- if (GetBrowserInitiatedPostData()) {
- browser_initiated_post_data.assign(
- GetBrowserInitiatedPostData()->front(),
- GetBrowserInitiatedPostData()->front() +
- GetBrowserInitiatedPostData()->size());
- }
+void NavigationEntryImpl::ResetForCommit() {
+ // Any state that only matters when a navigation entry is pending should be
+ // cleared here.
+ // TODO(creis): This state should be moved to NavigationRequest once
+ // PlzNavigate is enabled.
+ SetBrowserInitiatedPostData(nullptr);
+ set_source_site_instance(nullptr);
+ set_is_renderer_initiated(false);
+ set_transferred_global_request_id(GlobalRequestID());
+ set_should_replace_entry(false);
- return StartNavigationParams(
- GetHasPostData(), extra_headers(), browser_initiated_post_data,
- should_replace_entry(), transferred_global_request_id().child_id,
- transferred_global_request_id().request_id);
+ set_should_clear_history_list(false);
+ set_frame_tree_node_id(-1);
+
+#if defined(OS_ANDROID)
+ // Reset the time stamp so that the metrics are not reported if this entry is
+ // loaded again in the future.
+ set_intent_received_timestamp(base::TimeTicks());
+#endif
+}
+
+void NavigationEntryImpl::SetScreenshotPNGData(
+ scoped_refptr<base::RefCountedBytes> png_data) {
+ screenshot_ = png_data;
+ if (screenshot_.get())
+ UMA_HISTOGRAM_MEMORY_KB("Overscroll.ScreenshotSize", screenshot_->size());
+}
+
+GURL NavigationEntryImpl::GetHistoryURLForDataURL() const {
+ return GetBaseURLForDataURL().is_empty() ? GURL() : GetVirtualURL();
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698