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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 137463002: RenderFrame: flesh out Observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Bridge OnStop Created 6 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 // marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we 798 // marked with AUTO_SUBFRAME. See also didFailProvisionalLoad for how we
799 // handle loading of error pages. 799 // handle loading of error pages.
800 document_state->navigation_state()->set_transition_type( 800 document_state->navigation_state()->set_transition_type(
801 PAGE_TRANSITION_AUTO_SUBFRAME); 801 PAGE_TRANSITION_AUTO_SUBFRAME);
802 } 802 }
803 803
804 FOR_EACH_OBSERVER( 804 FOR_EACH_OBSERVER(
805 RenderViewObserver, render_view_->observers(), 805 RenderViewObserver, render_view_->observers(),
806 DidStartProvisionalLoad(frame)); 806 DidStartProvisionalLoad(frame));
807 807
808 FOR_EACH_OBSERVER(
809 RenderFrameObserver, observers_,
810 DidStartProvisionalLoad());
811
808 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( 812 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(
809 routing_id_, frame->identifier(), 813 routing_id_, frame->identifier(),
810 frame->parent() ? frame->parent()->identifier() : -1, 814 frame->parent() ? frame->parent()->identifier() : -1,
811 is_top_most, ds->request().url())); 815 is_top_most, ds->request().url()));
812 } 816 }
813 817
814 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( 818 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
815 blink::WebFrame* frame) { 819 blink::WebFrame* frame) {
816 if (frame->parent()) 820 if (frame->parent())
817 return; 821 return;
(...skipping 19 matching lines...) Expand all
837 blink::WebFrame* frame, 841 blink::WebFrame* frame,
838 const blink::WebURLError& error) { 842 const blink::WebURLError& error) {
839 WebDataSource* ds = frame->provisionalDataSource(); 843 WebDataSource* ds = frame->provisionalDataSource();
840 DCHECK(ds); 844 DCHECK(ds);
841 845
842 const WebURLRequest& failed_request = ds->request(); 846 const WebURLRequest& failed_request = ds->request();
843 847
844 // Call out to RenderViewImpl, so observers are notified. 848 // Call out to RenderViewImpl, so observers are notified.
845 render_view_->didFailProvisionalLoad(frame, error); 849 render_view_->didFailProvisionalLoad(frame, error);
846 850
851 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
852 DidFailProvisionalLoad(error));
853
847 bool show_repost_interstitial = 854 bool show_repost_interstitial =
848 (error.reason == net::ERR_CACHE_MISS && 855 (error.reason == net::ERR_CACHE_MISS &&
849 EqualsASCII(failed_request.httpMethod(), "POST")); 856 EqualsASCII(failed_request.httpMethod(), "POST"));
850 857
851 FrameHostMsg_DidFailProvisionalLoadWithError_Params params; 858 FrameHostMsg_DidFailProvisionalLoadWithError_Params params;
852 params.frame_id = frame->identifier(); 859 params.frame_id = frame->identifier();
853 params.frame_unique_name = frame->uniqueName(); 860 params.frame_unique_name = frame->uniqueName();
854 params.is_main_frame = !frame->parent(); 861 params.is_main_frame = !frame->parent();
855 params.error_code = error.reason; 862 params.error_code = error.reason;
856 GetContentClient()->renderer()->GetNavigationErrorStrings( 863 GetContentClient()->renderer()->GetNavigationErrorStrings(
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 1009
1003 void RenderFrameImpl::didFailLoad(blink::WebFrame* frame, 1010 void RenderFrameImpl::didFailLoad(blink::WebFrame* frame,
1004 const blink::WebURLError& error) { 1011 const blink::WebURLError& error) {
1005 // TODO(nasko): Move implementation here. No state needed. 1012 // TODO(nasko): Move implementation here. No state needed.
1006 render_view_->didFailLoad(frame, error); 1013 render_view_->didFailLoad(frame, error);
1007 } 1014 }
1008 1015
1009 void RenderFrameImpl::didFinishLoad(blink::WebFrame* frame) { 1016 void RenderFrameImpl::didFinishLoad(blink::WebFrame* frame) {
1010 // TODO(nasko): Move implementation here. No state needed, just observers 1017 // TODO(nasko): Move implementation here. No state needed, just observers
1011 // notification before sending message to the browser process. 1018 // notification before sending message to the browser process.
1019 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
nasko 2014/01/28 20:41:39 In all other cases we notify RVO before RFO, let's
Elly Fong-Jones 2014/01/28 21:34:20 Done.
1020 DidFinishLoad());
1012 render_view_->didFinishLoad(frame); 1021 render_view_->didFinishLoad(frame);
1013 } 1022 }
1014 1023
1015 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame, 1024 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame,
1016 bool is_new_navigation) { 1025 bool is_new_navigation) {
1017 // TODO(nasko): Move implementation here. No state needed, just observers 1026 // TODO(nasko): Move implementation here. No state needed, just observers
1018 // notification before sending message to the browser process. 1027 // notification before sending message to the browser process.
1019 render_view_->didNavigateWithinPage(frame, is_new_navigation); 1028 render_view_->didNavigateWithinPage(frame, is_new_navigation);
1020 } 1029 }
1021 1030
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 blink::WebFrame* frame, 1269 blink::WebFrame* frame,
1261 const blink::WebSecurityOrigin& origin, 1270 const blink::WebSecurityOrigin& origin,
1262 const blink::WebURL& target) { 1271 const blink::WebURL& target) {
1263 render_view_->Send(new ViewHostMsg_DidRunInsecureContent( 1272 render_view_->Send(new ViewHostMsg_DidRunInsecureContent(
1264 render_view_->GetRoutingID(), 1273 render_view_->GetRoutingID(),
1265 origin.toString().utf8(), 1274 origin.toString().utf8(),
1266 target)); 1275 target));
1267 } 1276 }
1268 1277
1269 void RenderFrameImpl::didAbortLoading(blink::WebFrame* frame) { 1278 void RenderFrameImpl::didAbortLoading(blink::WebFrame* frame) {
1270 #if defined(ENABLE_PLUGINS)
1271 if (frame != render_view_->webview()->mainFrame()) 1279 if (frame != render_view_->webview()->mainFrame())
1272 return; 1280 return;
1281 #if defined(ENABLE_PLUGINS)
nasko 2014/01/28 20:41:39 Why is this define moved?
Elly Fong-Jones 2014/01/28 21:34:20 Done.
1273 PluginChannelHost::Broadcast( 1282 PluginChannelHost::Broadcast(
1274 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID())); 1283 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID()));
1275 #endif 1284 #endif
1285 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidAbortLoad());
nasko 2014/01/28 20:41:39 Let's remove this.
Elly Fong-Jones 2014/01/28 21:34:20 Done.
1276 } 1286 }
1277 1287
1278 void RenderFrameImpl::didExhaustMemoryAvailableForScript( 1288 void RenderFrameImpl::didExhaustMemoryAvailableForScript(
1279 blink::WebFrame* frame) { 1289 blink::WebFrame* frame) {
1280 render_view_->Send(new ViewHostMsg_JSOutOfMemory( 1290 render_view_->Send(new ViewHostMsg_JSOutOfMemory(
1281 render_view_->GetRoutingID())); 1291 render_view_->GetRoutingID()));
1282 } 1292 }
1283 1293
1284 void RenderFrameImpl::didCreateScriptContext(blink::WebFrame* frame, 1294 void RenderFrameImpl::didCreateScriptContext(blink::WebFrame* frame,
1285 v8::Handle<v8::Context> context, 1295 v8::Handle<v8::Context> context,
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 1448
1439 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { 1449 void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) {
1440 observers_.AddObserver(observer); 1450 observers_.AddObserver(observer);
1441 } 1451 }
1442 1452
1443 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) { 1453 void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
1444 observer->RenderFrameGone(); 1454 observer->RenderFrameGone();
1445 observers_.RemoveObserver(observer); 1455 observers_.RemoveObserver(observer);
1446 } 1456 }
1447 1457
1458 void RenderFrameImpl::OnStop() {
1459 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop());
1460 }
1461
1448 } // namespace content 1462 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698