diff options
author | ojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-11 21:53:21 +0000 |
---|---|---|
committer | ojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-11 21:53:21 +0000 |
commit | c6a160f26486feab68aac93419618f399bbf472d (patch) | |
tree | c631dce94cb4c9db09ae8734e259d017ca6d5b46 /content/renderer/render_view_impl.cc | |
parent | e12ca65eec4c7778dff4330beb6060f95914f5ce (diff) | |
download | chromium_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.cc | 43 |
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( |