summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_impl.cc
diff options
context:
space:
mode:
authorojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-11 21:53:21 +0000
committerojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-11 21:53:21 +0000
commitc6a160f26486feab68aac93419618f399bbf472d (patch)
treec631dce94cb4c9db09ae8734e259d017ca6d5b46 /content/renderer/render_view_impl.cc
parente12ca65eec4c7778dff4330beb6060f95914f5ce (diff)
downloadchromium_src-c6a160f26486feab68aac93419618f399bbf472d.zip
chromium_src-c6a160f26486feab68aac93419618f399bbf472d.tar.gz
chromium_src-c6a160f26486feab68aac93419618f399bbf472d.tar.bz2
Revert "Move IPC for DidStartProvisionalLoadForFrame"
This reverts r228244. It caused hundreds of layout tests to timeout. TBR=nasko@chromium.org Review URL: https://codereview.chromium.org/26799006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228261 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_impl.cc')
-rw-r--r--content/renderer/render_view_impl.cc43
1 files changed, 42 insertions, 1 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 32aaa53d73..10a4abc 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -3606,8 +3606,49 @@ void RenderViewImpl::ProcessViewLayoutFlags(const CommandLine& command_line) {
webview()->setPageScaleFactorLimits(1, maxPageScaleFactor);
}
-// TODO(nasko): Remove this method once WebTestProxy in Blink is fixed.
void RenderViewImpl::didStartProvisionalLoad(WebFrame* frame) {
+ WebDataSource* ds = frame->provisionalDataSource();
+
+ // In fast/loader/stop-provisional-loads.html, we abort the load before this
+ // callback is invoked.
+ if (!ds)
+ return;
+
+ DocumentState* document_state = DocumentState::FromDataSource(ds);
+
+ // We should only navigate to swappedout:// when is_swapped_out_ is true.
+ CHECK((ds->request().url() != GURL(kSwappedOutURL)) ||
+ is_swapped_out_) << "Heard swappedout:// when not swapped out.";
+
+ // Update the request time if WebKit has better knowledge of it.
+ if (document_state->request_time().is_null()) {
+ double event_time = ds->triggeringEventTime();
+ if (event_time != 0.0)
+ document_state->set_request_time(Time::FromDoubleT(event_time));
+ }
+
+ // Start time is only set after request time.
+ document_state->set_start_load_time(Time::Now());
+
+ bool is_top_most = !frame->parent();
+ if (is_top_most) {
+ navigation_gesture_ = WebUserGestureIndicator::isProcessingUserGesture() ?
+ NavigationGestureUser : NavigationGestureAuto;
+ } else if (ds->replacesCurrentHistoryItem()) {
+ // Subframe navigations that don't add session history items must be
+ // marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we
+ // handle loading of error pages.
+ document_state->navigation_state()->set_transition_type(
+ PAGE_TRANSITION_AUTO_SUBFRAME);
+ }
+
+ FOR_EACH_OBSERVER(
+ RenderViewObserver, observers_, DidStartProvisionalLoad(frame));
+
+ Send(new ViewHostMsg_DidStartProvisionalLoadForFrame(
+ routing_id_, frame->identifier(),
+ frame->parent() ? frame->parent()->identifier() : -1,
+ is_top_most, ds->request().url()));
}
void RenderViewImpl::didReceiveServerRedirectForProvisionalLoad(