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 | |
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')
-rw-r--r-- | content/renderer/render_frame_impl.cc | 52 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 43 | ||||
-rw-r--r-- | content/renderer/render_view_impl.h | 22 |
3 files changed, 48 insertions, 69 deletions
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index c1b1526..6cb82b9 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -120,7 +120,7 @@ int RenderFrameImpl::GetRoutingID() const { bool RenderFrameImpl::Send(IPC::Message* message) { if (is_detaching_ || - ((is_swapped_out_ || render_view_->is_swapped_out()) && + (is_swapped_out_ && !SwappedOutMessages::CanSendWhileSwappedOut(message))) { delete message; return false; @@ -402,51 +402,11 @@ void RenderFrameImpl::didCreateDataSource(WebKit::WebFrame* frame, } void RenderFrameImpl::didStartProvisionalLoad(WebKit::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)) || - render_view_->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) { - render_view_->set_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, render_view_->observers(), - DidStartProvisionalLoad(frame)); - - Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( - routing_id_, frame->identifier(), - frame->parent() ? frame->parent()->identifier() : -1, - is_top_most, ds->request().url())); + // TODO(nasko): Move implementation here. Needed state: + // * is_swapped_out_ + // * navigation_gesture_ + // * completed_client_redirect_src_ + render_view_->didStartProvisionalLoad(frame); } void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( 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( diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index dfbfdba..6b0f1c4a 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h @@ -1166,28 +1166,6 @@ class CONTENT_EXPORT RenderViewImpl gfx::RectF ClientRectToPhysicalWindowRect(const gfx::RectF& rect) const; - // RenderFrameImpl accessible state ------------------------------------------ - // The following section is the set of methods that RenderFrameImpl needs - // to access RenderViewImpl state. The set of state variables are page-level - // specific, so they don't belong in RenderFrameImpl and should remain in - // this object. - ObserverList<RenderViewObserver>& observers() { - return observers_; - } - - // TODO(nasko): Remove this method when we move to frame proxy objects, since - // the concept of swapped out will be eliminated. - void set_is_swapped_out(bool swapped_out) { - is_swapped_out_ = swapped_out; - } - - NavigationGesture navigation_gesture() { - return navigation_gesture_; - } - void set_navigation_gesture(NavigationGesture gesture) { - navigation_gesture_ = gesture; - } - // --------------------------------------------------------------------------- // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put // it in the same order in the .cc file as it was in the header. |