summaryrefslogtreecommitdiffstats
path: root/content/renderer
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
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')
-rw-r--r--content/renderer/render_frame_impl.cc52
-rw-r--r--content/renderer/render_view_impl.cc43
-rw-r--r--content/renderer/render_view_impl.h22
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.