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

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

Issue 222973003: Conversion of content_shell target to use WebLocalFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed rebase Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 #endif 102 #endif
103 103
104 using blink::WebContextMenuData; 104 using blink::WebContextMenuData;
105 using blink::WebData; 105 using blink::WebData;
106 using blink::WebDataSource; 106 using blink::WebDataSource;
107 using blink::WebDocument; 107 using blink::WebDocument;
108 using blink::WebElement; 108 using blink::WebElement;
109 using blink::WebFrame; 109 using blink::WebFrame;
110 using blink::WebHistoryItem; 110 using blink::WebHistoryItem;
111 using blink::WebHTTPBody; 111 using blink::WebHTTPBody;
112 using blink::WebLocalFrame;
112 using blink::WebNavigationPolicy; 113 using blink::WebNavigationPolicy;
113 using blink::WebNavigationType; 114 using blink::WebNavigationType;
114 using blink::WebNode; 115 using blink::WebNode;
115 using blink::WebPluginParams; 116 using blink::WebPluginParams;
116 using blink::WebRange; 117 using blink::WebRange;
117 using blink::WebReferrerPolicy; 118 using blink::WebReferrerPolicy;
118 using blink::WebScriptSource; 119 using blink::WebScriptSource;
119 using blink::WebSearchableFormData; 120 using blink::WebSearchableFormData;
120 using blink::WebSecurityOrigin; 121 using blink::WebSecurityOrigin;
121 using blink::WebSecurityPolicy; 122 using blink::WebSecurityPolicy;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 new JavaBridgeDispatcher(this); 324 new JavaBridgeDispatcher(this);
324 #endif 325 #endif
325 } 326 }
326 327
327 RenderFrameImpl::~RenderFrameImpl() { 328 RenderFrameImpl::~RenderFrameImpl() {
328 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); 329 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
329 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); 330 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
330 RenderThread::Get()->RemoveRoute(routing_id_); 331 RenderThread::Get()->RemoveRoute(routing_id_);
331 } 332 }
332 333
333 void RenderFrameImpl::SetWebFrame(blink::WebFrame* web_frame) { 334 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) {
334 DCHECK(!frame_); 335 DCHECK(!frame_);
335 336
336 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert( 337 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert(
337 std::make_pair(web_frame, this)); 338 std::make_pair(web_frame, this));
338 CHECK(result.second) << "Inserting a duplicate item."; 339 CHECK(result.second) << "Inserting a duplicate item.";
339 340
340 frame_ = web_frame; 341 frame_ = web_frame;
341 342
342 #if defined(ENABLE_PLUGINS) 343 #if defined(ENABLE_PLUGINS)
343 new PepperBrowserConnection(this); 344 new PepperBrowserConnection(this);
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 return NULL; 1150 return NULL;
1150 #else 1151 #else
1151 // TODO(jam): change to take RenderFrame. 1152 // TODO(jam): change to take RenderFrame.
1152 return new WebPluginImpl(frame, params, info.path, render_view_, this); 1153 return new WebPluginImpl(frame, params, info.path, render_view_, this);
1153 #endif 1154 #endif
1154 #else 1155 #else
1155 return NULL; 1156 return NULL;
1156 #endif 1157 #endif
1157 } 1158 }
1158 1159
1159 void RenderFrameImpl::LoadURLExternally( 1160 void RenderFrameImpl::LoadURLExternally(blink::WebLocalFrame* frame,
1160 blink::WebFrame* frame, 1161 const blink::WebURLRequest& request,
1161 const blink::WebURLRequest& request, 1162 blink::WebNavigationPolicy policy) {
1162 blink::WebNavigationPolicy policy) {
1163 DCHECK(!frame_ || frame_ == frame); 1163 DCHECK(!frame_ || frame_ == frame);
1164 loadURLExternally(frame, request, policy); 1164 loadURLExternally(frame, request, policy);
1165 } 1165 }
1166 1166
1167 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) { 1167 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) {
1168 OnJavaScriptExecuteRequest(javascript, 0, false); 1168 OnJavaScriptExecuteRequest(javascript, 0, false);
1169 } 1169 }
1170 1170
1171 void RenderFrameImpl::OnChildFrameProcessGone() { 1171 void RenderFrameImpl::OnChildFrameProcessGone() {
1172 if (compositing_helper_) 1172 if (compositing_helper_)
1173 compositing_helper_->ChildFrameGone(); 1173 compositing_helper_->ChildFrameGone();
1174 } 1174 }
1175 1175
1176 // blink::WebFrameClient implementation ---------------------------------------- 1176 // blink::WebFrameClient implementation ----------------------------------------
1177 1177
1178 blink::WebPlugin* RenderFrameImpl::createPlugin( 1178 blink::WebPlugin* RenderFrameImpl::createPlugin(
1179 blink::WebFrame* frame, 1179 blink::WebLocalFrame* frame,
1180 const blink::WebPluginParams& params) { 1180 const blink::WebPluginParams& params) {
1181 DCHECK_EQ(frame_, frame); 1181 DCHECK_EQ(frame_, frame);
1182 blink::WebPlugin* plugin = NULL; 1182 blink::WebPlugin* plugin = NULL;
1183 if (GetContentClient()->renderer()->OverrideCreatePlugin( 1183 if (GetContentClient()->renderer()->OverrideCreatePlugin(
1184 this, frame, params, &plugin)) { 1184 this, frame, params, &plugin)) {
1185 return plugin; 1185 return plugin;
1186 } 1186 }
1187 1187
1188 if (base::UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) { 1188 if (base::UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) {
1189 return render_view_->GetBrowserPluginManager()->CreateBrowserPlugin( 1189 return render_view_->GetBrowserPluginManager()->CreateBrowserPlugin(
(...skipping 12 matching lines...) Expand all
1202 1202
1203 WebPluginParams params_to_use = params; 1203 WebPluginParams params_to_use = params;
1204 params_to_use.mimeType = WebString::fromUTF8(mime_type); 1204 params_to_use.mimeType = WebString::fromUTF8(mime_type);
1205 return CreatePlugin(frame, info, params_to_use); 1205 return CreatePlugin(frame, info, params_to_use);
1206 #else 1206 #else
1207 return NULL; 1207 return NULL;
1208 #endif // defined(ENABLE_PLUGINS) 1208 #endif // defined(ENABLE_PLUGINS)
1209 } 1209 }
1210 1210
1211 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( 1211 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
1212 blink::WebFrame* frame, 1212 blink::WebLocalFrame* frame,
1213 const blink::WebURL& url, 1213 const blink::WebURL& url,
1214 blink::WebMediaPlayerClient* client) { 1214 blink::WebMediaPlayerClient* client) {
1215 DCHECK(!frame_ || frame_ == frame); 1215 DCHECK(!frame_ || frame_ == frame);
1216 // TODO(nasko): Moving the implementation here involves moving a few media 1216 // TODO(nasko): Moving the implementation here involves moving a few media
1217 // related client objects here or referencing them in the RenderView. Needs 1217 // related client objects here or referencing them in the RenderView. Needs
1218 // more work to understand where the proper place for those objects is. 1218 // more work to understand where the proper place for those objects is.
1219 return render_view_->CreateMediaPlayer(this, frame, url, client); 1219 return render_view_->CreateMediaPlayer(this, frame, url, client);
1220 } 1220 }
1221 1221
1222 blink::WebContentDecryptionModule* 1222 blink::WebContentDecryptionModule*
1223 RenderFrameImpl::createContentDecryptionModule( 1223 RenderFrameImpl::createContentDecryptionModule(
1224 blink::WebFrame* frame, 1224 blink::WebLocalFrame* frame,
1225 const blink::WebSecurityOrigin& security_origin, 1225 const blink::WebSecurityOrigin& security_origin,
1226 const blink::WebString& key_system) { 1226 const blink::WebString& key_system) {
1227 DCHECK(!frame_ || frame_ == frame); 1227 DCHECK(!frame_ || frame_ == frame);
1228 return WebContentDecryptionModuleImpl::Create( 1228 return WebContentDecryptionModuleImpl::Create(
1229 frame, security_origin, key_system); 1229 frame, security_origin, key_system);
1230 } 1230 }
1231 1231
1232 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( 1232 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost(
1233 blink::WebFrame* frame, 1233 blink::WebLocalFrame* frame,
1234 blink::WebApplicationCacheHostClient* client) { 1234 blink::WebApplicationCacheHostClient* client) {
1235 if (!frame || !frame->view()) 1235 if (!frame || !frame->view())
1236 return NULL; 1236 return NULL;
1237 DCHECK(!frame_ || frame_ == frame); 1237 DCHECK(!frame_ || frame_ == frame);
1238 return new RendererWebApplicationCacheHostImpl( 1238 return new RendererWebApplicationCacheHostImpl(
1239 RenderViewImpl::FromWebView(frame->view()), client, 1239 RenderViewImpl::FromWebView(frame->view()), client,
1240 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy()); 1240 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy());
1241 } 1241 }
1242 1242
1243 blink::WebWorkerPermissionClientProxy* 1243 blink::WebWorkerPermissionClientProxy*
1244 RenderFrameImpl::createWorkerPermissionClientProxy(blink::WebFrame* frame) { 1244 RenderFrameImpl::createWorkerPermissionClientProxy(
1245 blink::WebLocalFrame* frame) {
1245 if (!frame || !frame->view()) 1246 if (!frame || !frame->view())
1246 return NULL; 1247 return NULL;
1247 DCHECK(!frame_ || frame_ == frame); 1248 DCHECK(!frame_ || frame_ == frame);
1248 return GetContentClient()->renderer()->CreateWorkerPermissionClientProxy( 1249 return GetContentClient()->renderer()->CreateWorkerPermissionClientProxy(
1249 this, frame); 1250 this, frame);
1250 } 1251 }
1251 1252
1252 blink::WebCookieJar* RenderFrameImpl::cookieJar(blink::WebFrame* frame) { 1253 blink::WebCookieJar* RenderFrameImpl::cookieJar(blink::WebLocalFrame* frame) {
1253 DCHECK(!frame_ || frame_ == frame); 1254 DCHECK(!frame_ || frame_ == frame);
1254 return &cookie_jar_; 1255 return &cookie_jar_;
1255 } 1256 }
1256 1257
1257 blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider( 1258 blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider(
1258 blink::WebFrame* frame) { 1259 blink::WebLocalFrame* frame) {
1259 DCHECK(!frame_ || frame_ == frame); 1260 DCHECK(!frame_ || frame_ == frame);
1260 // At this point we should have non-null data source. 1261 // At this point we should have non-null data source.
1261 DCHECK(frame->dataSource()); 1262 DCHECK(frame->dataSource());
1262 ServiceWorkerNetworkProvider* provider = 1263 ServiceWorkerNetworkProvider* provider =
1263 ServiceWorkerNetworkProvider::FromDocumentState( 1264 ServiceWorkerNetworkProvider::FromDocumentState(
1264 DocumentState::FromDataSource(frame->dataSource())); 1265 DocumentState::FromDataSource(frame->dataSource()));
1265 int provider_id = provider ? 1266 int provider_id = provider ?
1266 provider->provider_id() : 1267 provider->provider_id() :
1267 kInvalidServiceWorkerProviderId; 1268 kInvalidServiceWorkerProviderId;
1268 return new WebServiceWorkerProviderImpl( 1269 return new WebServiceWorkerProviderImpl(
1269 ChildThread::current()->thread_safe_sender(), provider_id); 1270 ChildThread::current()->thread_safe_sender(), provider_id);
1270 } 1271 }
1271 1272
1272 void RenderFrameImpl::didAccessInitialDocument(blink::WebFrame* frame) { 1273 void RenderFrameImpl::didAccessInitialDocument(blink::WebLocalFrame* frame) {
1273 DCHECK(!frame_ || frame_ == frame); 1274 DCHECK(!frame_ || frame_ == frame);
1274 render_view_->didAccessInitialDocument(frame); 1275 render_view_->didAccessInitialDocument(frame);
1275 } 1276 }
1276 1277
1277 blink::WebFrame* RenderFrameImpl::createChildFrame( 1278 blink::WebFrame* RenderFrameImpl::createChildFrame(
1278 blink::WebFrame* parent, 1279 blink::WebLocalFrame* parent,
1279 const blink::WebString& name) { 1280 const blink::WebString& name) {
1280 // Synchronously notify the browser of a child frame creation to get the 1281 // Synchronously notify the browser of a child frame creation to get the
1281 // routing_id for the RenderFrame. 1282 // routing_id for the RenderFrame.
1282 int child_routing_id = MSG_ROUTING_NONE; 1283 int child_routing_id = MSG_ROUTING_NONE;
1283 Send(new FrameHostMsg_CreateChildFrame(routing_id_, 1284 Send(new FrameHostMsg_CreateChildFrame(routing_id_,
1284 base::UTF16ToUTF8(name), 1285 base::UTF16ToUTF8(name),
1285 &child_routing_id)); 1286 &child_routing_id));
1286 // Allocation of routing id failed, so we can't create a child frame. This can 1287 // Allocation of routing id failed, so we can't create a child frame. This can
1287 // happen if this RenderFrameImpl's IPCs are being filtered when in swapped 1288 // happen if this RenderFrameImpl's IPCs are being filtered when in swapped
1288 // out state. 1289 // out state.
1289 if (child_routing_id == MSG_ROUTING_NONE) { 1290 if (child_routing_id == MSG_ROUTING_NONE) {
1290 base::debug::Alias(parent); 1291 base::debug::Alias(parent);
1291 base::debug::Alias(&routing_id_); 1292 base::debug::Alias(&routing_id_);
1292 bool render_view_is_swapped_out = GetRenderWidget()->is_swapped_out(); 1293 bool render_view_is_swapped_out = GetRenderWidget()->is_swapped_out();
1293 base::debug::Alias(&render_view_is_swapped_out); 1294 base::debug::Alias(&render_view_is_swapped_out);
1294 bool render_view_is_closing = GetRenderWidget()->closing(); 1295 bool render_view_is_closing = GetRenderWidget()->closing();
1295 base::debug::Alias(&render_view_is_closing); 1296 base::debug::Alias(&render_view_is_closing);
1296 base::debug::Alias(&is_swapped_out_); 1297 base::debug::Alias(&is_swapped_out_);
1297 base::debug::DumpWithoutCrashing(); 1298 base::debug::DumpWithoutCrashing();
1298 return NULL; 1299 return NULL;
1299 } 1300 }
1300 1301
1301 RenderFrameImpl* child_render_frame = RenderFrameImpl::Create( 1302 RenderFrameImpl* child_render_frame = RenderFrameImpl::Create(
1302 render_view_.get(), child_routing_id); 1303 render_view_.get(), child_routing_id);
1303 blink::WebFrame* web_frame = WebFrame::create(child_render_frame); 1304 blink::WebLocalFrame* web_frame = WebLocalFrame::create(child_render_frame);
1304 parent->appendChild(web_frame); 1305 parent->appendChild(web_frame);
1305 child_render_frame->SetWebFrame(web_frame); 1306 child_render_frame->SetWebFrame(web_frame);
1306 1307
1307 return web_frame; 1308 return web_frame;
1308 } 1309 }
1309 1310
1310 void RenderFrameImpl::didDisownOpener(blink::WebFrame* frame) { 1311 void RenderFrameImpl::didDisownOpener(blink::WebLocalFrame* frame) {
1311 DCHECK(!frame_ || frame_ == frame); 1312 DCHECK(!frame_ || frame_ == frame);
1312 render_view_->didDisownOpener(frame); 1313 render_view_->didDisownOpener(frame);
1313 } 1314 }
1314 1315
1315 void RenderFrameImpl::frameDetached(blink::WebFrame* frame) { 1316 void RenderFrameImpl::frameDetached(blink::WebFrame* frame) {
1316 // NOTE: This function is called on the frame that is being detached and not 1317 // NOTE: This function is called on the frame that is being detached and not
1317 // the parent frame. This is different from createChildFrame() which is 1318 // the parent frame. This is different from createChildFrame() which is
1318 // called on the parent frame. 1319 // called on the parent frame.
1319 CHECK(!is_detaching_); 1320 CHECK(!is_detaching_);
1320 DCHECK(!frame_ || frame_ == frame); 1321 DCHECK(!frame_ || frame_ == frame);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 Send(new FrameHostMsg_FrameFocused(routing_id_)); 1361 Send(new FrameHostMsg_FrameFocused(routing_id_));
1361 } 1362 }
1362 1363
1363 void RenderFrameImpl::willClose(blink::WebFrame* frame) { 1364 void RenderFrameImpl::willClose(blink::WebFrame* frame) {
1364 DCHECK(!frame_ || frame_ == frame); 1365 DCHECK(!frame_ || frame_ == frame);
1365 // Call back to RenderViewImpl for observers to be notified. 1366 // Call back to RenderViewImpl for observers to be notified.
1366 // TODO(nasko): Remove once we have RenderFrameObserver. 1367 // TODO(nasko): Remove once we have RenderFrameObserver.
1367 render_view_->willClose(frame); 1368 render_view_->willClose(frame);
1368 } 1369 }
1369 1370
1370 void RenderFrameImpl::didChangeName(blink::WebFrame* frame, 1371 void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame,
1371 const blink::WebString& name) { 1372 const blink::WebString& name) {
1372 DCHECK(!frame_ || frame_ == frame); 1373 DCHECK(!frame_ || frame_ == frame);
1373 if (!render_view_->renderer_preferences_.report_frame_name_changes) 1374 if (!render_view_->renderer_preferences_.report_frame_name_changes)
1374 return; 1375 return;
1375 1376
1376 render_view_->Send( 1377 render_view_->Send(
1377 new ViewHostMsg_UpdateFrameName(render_view_->GetRoutingID(), 1378 new ViewHostMsg_UpdateFrameName(render_view_->GetRoutingID(),
1378 routing_id_, 1379 routing_id_,
1379 !frame->parent(), 1380 !frame->parent(),
1380 base::UTF16ToUTF8(name))); 1381 base::UTF16ToUTF8(name)));
1381 } 1382 }
1382 1383
1383 void RenderFrameImpl::didMatchCSS( 1384 void RenderFrameImpl::didMatchCSS(
1384 blink::WebFrame* frame, 1385 blink::WebLocalFrame* frame,
1385 const blink::WebVector<blink::WebString>& newly_matching_selectors, 1386 const blink::WebVector<blink::WebString>& newly_matching_selectors,
1386 const blink::WebVector<blink::WebString>& stopped_matching_selectors) { 1387 const blink::WebVector<blink::WebString>& stopped_matching_selectors) {
1387 DCHECK(!frame_ || frame_ == frame); 1388 DCHECK(!frame_ || frame_ == frame);
1388 render_view_->didMatchCSS( 1389 render_view_->didMatchCSS(
1389 frame, newly_matching_selectors, stopped_matching_selectors); 1390 frame, newly_matching_selectors, stopped_matching_selectors);
1390 } 1391 }
1391 1392
1392 bool RenderFrameImpl::shouldReportDetailedMessageForSource( 1393 bool RenderFrameImpl::shouldReportDetailedMessageForSource(
1393 const blink::WebString& source) { 1394 const blink::WebString& source) {
1394 return GetContentClient()->renderer()->ShouldReportDetailedMessageForSource( 1395 return GetContentClient()->renderer()->ShouldReportDetailedMessageForSource(
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 static_cast<int32>(log_severity))); 1439 static_cast<int32>(log_severity)));
1439 } 1440 }
1440 1441
1441 Send(new FrameHostMsg_AddMessageToConsole(routing_id_, 1442 Send(new FrameHostMsg_AddMessageToConsole(routing_id_,
1442 static_cast<int32>(log_severity), 1443 static_cast<int32>(log_severity),
1443 message.text, 1444 message.text,
1444 static_cast<int32>(source_line), 1445 static_cast<int32>(source_line),
1445 source_name)); 1446 source_name));
1446 } 1447 }
1447 1448
1448 void RenderFrameImpl::loadURLExternally(blink::WebFrame* frame, 1449 void RenderFrameImpl::loadURLExternally(blink::WebLocalFrame* frame,
1449 const blink::WebURLRequest& request, 1450 const blink::WebURLRequest& request,
1450 blink::WebNavigationPolicy policy) { 1451 blink::WebNavigationPolicy policy) {
1451 DCHECK(!frame_ || frame_ == frame); 1452 DCHECK(!frame_ || frame_ == frame);
1452 loadURLExternally(frame, request, policy, WebString()); 1453 loadURLExternally(frame, request, policy, WebString());
1453 } 1454 }
1454 1455
1455 void RenderFrameImpl::loadURLExternally( 1456 void RenderFrameImpl::loadURLExternally(
1456 blink::WebFrame* frame, 1457 blink::WebLocalFrame* frame,
1457 const blink::WebURLRequest& request, 1458 const blink::WebURLRequest& request,
1458 blink::WebNavigationPolicy policy, 1459 blink::WebNavigationPolicy policy,
1459 const blink::WebString& suggested_name) { 1460 const blink::WebString& suggested_name) {
1460 DCHECK(!frame_ || frame_ == frame); 1461 DCHECK(!frame_ || frame_ == frame);
1461 Referrer referrer(RenderViewImpl::GetReferrerFromRequest(frame, request)); 1462 Referrer referrer(RenderViewImpl::GetReferrerFromRequest(frame, request));
1462 if (policy == blink::WebNavigationPolicyDownload) { 1463 if (policy == blink::WebNavigationPolicyDownload) {
1463 render_view_->Send(new ViewHostMsg_DownloadUrl(render_view_->GetRoutingID(), 1464 render_view_->Send(new ViewHostMsg_DownloadUrl(render_view_->GetRoutingID(),
1464 request.url(), referrer, 1465 request.url(), referrer,
1465 suggested_name)); 1466 suggested_name));
1466 } else { 1467 } else {
1467 OpenURL(frame, request.url(), referrer, policy); 1468 OpenURL(frame, request.url(), referrer, policy);
1468 } 1469 }
1469 } 1470 }
1470 1471
1471 blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation( 1472 blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
1472 blink::WebFrame* frame, 1473 blink::WebLocalFrame* frame,
1473 blink::WebDataSource::ExtraData* extra_data, 1474 blink::WebDataSource::ExtraData* extra_data,
1474 const blink::WebURLRequest& request, 1475 const blink::WebURLRequest& request,
1475 blink::WebNavigationType type, 1476 blink::WebNavigationType type,
1476 blink::WebNavigationPolicy default_policy, 1477 blink::WebNavigationPolicy default_policy,
1477 bool is_redirect) { 1478 bool is_redirect) {
1478 DCHECK(!frame_ || frame_ == frame); 1479 DCHECK(!frame_ || frame_ == frame);
1479 return DecidePolicyForNavigation( 1480 return DecidePolicyForNavigation(
1480 this, frame, extra_data, request, type, default_policy, is_redirect); 1481 this, frame, extra_data, request, type, default_policy, is_redirect);
1481 } 1482 }
1482 1483
1483 blink::WebHistoryItem RenderFrameImpl::historyItemForNewChildFrame( 1484 blink::WebHistoryItem RenderFrameImpl::historyItemForNewChildFrame(
1484 blink::WebFrame* frame) { 1485 blink::WebFrame* frame) {
1485 return render_view_->webview()->itemForNewChildFrame(frame); 1486 return render_view_->webview()->itemForNewChildFrame(frame);
1486 } 1487 }
1487 1488
1488 void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame, 1489 void RenderFrameImpl::willSendSubmitEvent(blink::WebLocalFrame* frame,
1489 const blink::WebFormElement& form) { 1490 const blink::WebFormElement& form) {
1490 DCHECK(!frame_ || frame_ == frame); 1491 DCHECK(!frame_ || frame_ == frame);
1491 // Call back to RenderViewImpl for observers to be notified. 1492 // Call back to RenderViewImpl for observers to be notified.
1492 // TODO(nasko): Remove once we have RenderFrameObserver. 1493 // TODO(nasko): Remove once we have RenderFrameObserver.
1493 render_view_->willSendSubmitEvent(frame, form); 1494 render_view_->willSendSubmitEvent(frame, form);
1494 } 1495 }
1495 1496
1496 void RenderFrameImpl::willSubmitForm(blink::WebFrame* frame, 1497 void RenderFrameImpl::willSubmitForm(blink::WebLocalFrame* frame,
1497 const blink::WebFormElement& form) { 1498 const blink::WebFormElement& form) {
1498 DCHECK(!frame_ || frame_ == frame); 1499 DCHECK(!frame_ || frame_ == frame);
1499 DocumentState* document_state = 1500 DocumentState* document_state =
1500 DocumentState::FromDataSource(frame->provisionalDataSource()); 1501 DocumentState::FromDataSource(frame->provisionalDataSource());
1501 NavigationState* navigation_state = document_state->navigation_state(); 1502 NavigationState* navigation_state = document_state->navigation_state();
1502 InternalDocumentStateData* internal_data = 1503 InternalDocumentStateData* internal_data =
1503 InternalDocumentStateData::FromDocumentState(document_state); 1504 InternalDocumentStateData::FromDocumentState(document_state);
1504 1505
1505 if (PageTransitionCoreTypeIs(navigation_state->transition_type(), 1506 if (PageTransitionCoreTypeIs(navigation_state->transition_type(),
1506 PAGE_TRANSITION_LINK)) { 1507 PAGE_TRANSITION_LINK)) {
1507 navigation_state->set_transition_type(PAGE_TRANSITION_FORM_SUBMIT); 1508 navigation_state->set_transition_type(PAGE_TRANSITION_FORM_SUBMIT);
1508 } 1509 }
1509 1510
1510 // Save these to be processed when the ensuing navigation is committed. 1511 // Save these to be processed when the ensuing navigation is committed.
1511 WebSearchableFormData web_searchable_form_data(form); 1512 WebSearchableFormData web_searchable_form_data(form);
1512 internal_data->set_searchable_form_url(web_searchable_form_data.url()); 1513 internal_data->set_searchable_form_url(web_searchable_form_data.url());
1513 internal_data->set_searchable_form_encoding( 1514 internal_data->set_searchable_form_encoding(
1514 web_searchable_form_data.encoding().utf8()); 1515 web_searchable_form_data.encoding().utf8());
1515 1516
1516 // Call back to RenderViewImpl for observers to be notified. 1517 // Call back to RenderViewImpl for observers to be notified.
1517 // TODO(nasko): Remove once we have RenderFrameObserver. 1518 // TODO(nasko): Remove once we have RenderFrameObserver.
1518 render_view_->willSubmitForm(frame, form); 1519 render_view_->willSubmitForm(frame, form);
1519 } 1520 }
1520 1521
1521 void RenderFrameImpl::didCreateDataSource(blink::WebFrame* frame, 1522 void RenderFrameImpl::didCreateDataSource(blink::WebLocalFrame* frame,
1522 blink::WebDataSource* datasource) { 1523 blink::WebDataSource* datasource) {
1523 DCHECK(!frame_ || frame_ == frame); 1524 DCHECK(!frame_ || frame_ == frame);
1524 1525
1525 // TODO(nasko): Move implementation here. Needed state: 1526 // TODO(nasko): Move implementation here. Needed state:
1526 // * pending_navigation_params_ 1527 // * pending_navigation_params_
1527 // * webview 1528 // * webview
1528 // Needed methods: 1529 // Needed methods:
1529 // * PopulateDocumentStateFromPending 1530 // * PopulateDocumentStateFromPending
1530 // * CreateNavigationStateFromPending 1531 // * CreateNavigationStateFromPending
1531 render_view_->didCreateDataSource(frame, datasource); 1532 render_view_->didCreateDataSource(frame, datasource);
1532 1533
1533 // Create the serviceworker's per-document network observing object. 1534 // Create the serviceworker's per-document network observing object.
1534 scoped_ptr<ServiceWorkerNetworkProvider> 1535 scoped_ptr<ServiceWorkerNetworkProvider>
1535 network_provider(new ServiceWorkerNetworkProvider()); 1536 network_provider(new ServiceWorkerNetworkProvider());
1536 ServiceWorkerNetworkProvider::AttachToDocumentState( 1537 ServiceWorkerNetworkProvider::AttachToDocumentState(
1537 DocumentState::FromDataSource(datasource), 1538 DocumentState::FromDataSource(datasource),
1538 network_provider.Pass()); 1539 network_provider.Pass());
1539 } 1540 }
1540 1541
1541 void RenderFrameImpl::didStartProvisionalLoad(blink::WebFrame* frame) { 1542 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame) {
1542 DCHECK(!frame_ || frame_ == frame); 1543 DCHECK(!frame_ || frame_ == frame);
1543 WebDataSource* ds = frame->provisionalDataSource(); 1544 WebDataSource* ds = frame->provisionalDataSource();
1544 1545
1545 // In fast/loader/stop-provisional-loads.html, we abort the load before this 1546 // In fast/loader/stop-provisional-loads.html, we abort the load before this
1546 // callback is invoked. 1547 // callback is invoked.
1547 if (!ds) 1548 if (!ds)
1548 return; 1549 return;
1549 1550
1550 DocumentState* document_state = DocumentState::FromDataSource(ds); 1551 DocumentState* document_state = DocumentState::FromDataSource(ds);
1551 1552
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 RenderFrameObserver, observers_, 1587 RenderFrameObserver, observers_,
1587 DidStartProvisionalLoad()); 1588 DidStartProvisionalLoad());
1588 1589
1589 int parent_routing_id = frame->parent() ? 1590 int parent_routing_id = frame->parent() ?
1590 FromWebFrame(frame->parent())->GetRoutingID() : -1; 1591 FromWebFrame(frame->parent())->GetRoutingID() : -1;
1591 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( 1592 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(
1592 routing_id_, parent_routing_id, ds->request().url())); 1593 routing_id_, parent_routing_id, ds->request().url()));
1593 } 1594 }
1594 1595
1595 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( 1596 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
1596 blink::WebFrame* frame) { 1597 blink::WebLocalFrame* frame) {
1597 DCHECK(!frame_ || frame_ == frame); 1598 DCHECK(!frame_ || frame_ == frame);
1598 render_view_->webview()->removeChildrenForRedirect(frame); 1599 render_view_->webview()->removeChildrenForRedirect(frame);
1599 if (frame->parent()) 1600 if (frame->parent())
1600 return; 1601 return;
1601 // Received a redirect on the main frame. 1602 // Received a redirect on the main frame.
1602 WebDataSource* data_source = frame->provisionalDataSource(); 1603 WebDataSource* data_source = frame->provisionalDataSource();
1603 if (!data_source) { 1604 if (!data_source) {
1604 // Should only be invoked when we have a data source. 1605 // Should only be invoked when we have a data source.
1605 NOTREACHED(); 1606 NOTREACHED();
1606 return; 1607 return;
1607 } 1608 }
1608 std::vector<GURL> redirects; 1609 std::vector<GURL> redirects;
1609 GetRedirectChain(data_source, &redirects); 1610 GetRedirectChain(data_source, &redirects);
1610 if (redirects.size() >= 2) { 1611 if (redirects.size() >= 2) {
1611 Send(new FrameHostMsg_DidRedirectProvisionalLoad( 1612 Send(new FrameHostMsg_DidRedirectProvisionalLoad(
1612 routing_id_, 1613 routing_id_,
1613 render_view_->page_id_, 1614 render_view_->page_id_,
1614 redirects[redirects.size() - 2], 1615 redirects[redirects.size() - 2],
1615 redirects.back())); 1616 redirects.back()));
1616 } 1617 }
1617 } 1618 }
1618 1619
1619 void RenderFrameImpl::didFailProvisionalLoad( 1620 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame,
1620 blink::WebFrame* frame, 1621 const blink::WebURLError& error) {
1621 const blink::WebURLError& error) {
1622 DCHECK(!frame_ || frame_ == frame); 1622 DCHECK(!frame_ || frame_ == frame);
1623 WebDataSource* ds = frame->provisionalDataSource(); 1623 WebDataSource* ds = frame->provisionalDataSource();
1624 DCHECK(ds); 1624 DCHECK(ds);
1625 1625
1626 const WebURLRequest& failed_request = ds->request(); 1626 const WebURLRequest& failed_request = ds->request();
1627 1627
1628 // Call out to RenderViewImpl, so observers are notified. 1628 // Call out to RenderViewImpl, so observers are notified.
1629 render_view_->didFailProvisionalLoad(frame, error); 1629 render_view_->didFailProvisionalLoad(frame, error);
1630 1630
1631 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, 1631 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1722 const blink::WebHistoryItem& item, 1722 const blink::WebHistoryItem& item,
1723 blink::WebHistoryCommitType commit_type) { 1723 blink::WebHistoryCommitType commit_type) {
1724 DocumentState* document_state = 1724 DocumentState* document_state =
1725 DocumentState::FromDataSource(frame->dataSource()); 1725 DocumentState::FromDataSource(frame->dataSource());
1726 render_view_->webview()->updateForCommit(frame, item, commit_type, 1726 render_view_->webview()->updateForCommit(frame, item, commit_type,
1727 document_state->navigation_state()->was_within_same_page()); 1727 document_state->navigation_state()->was_within_same_page());
1728 1728
1729 didCommitProvisionalLoad(frame, commit_type == blink::WebStandardCommit); 1729 didCommitProvisionalLoad(frame, commit_type == blink::WebStandardCommit);
1730 } 1730 }
1731 1731
1732 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame, 1732 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebLocalFrame* frame,
1733 bool is_new_navigation) { 1733 bool is_new_navigation) {
1734 DCHECK(!frame_ || frame_ == frame); 1734 DCHECK(!frame_ || frame_ == frame);
1735 DocumentState* document_state = 1735 DocumentState* document_state =
1736 DocumentState::FromDataSource(frame->dataSource()); 1736 DocumentState::FromDataSource(frame->dataSource());
1737 NavigationState* navigation_state = document_state->navigation_state(); 1737 NavigationState* navigation_state = document_state->navigation_state();
1738 InternalDocumentStateData* internal_data = 1738 InternalDocumentStateData* internal_data =
1739 InternalDocumentStateData::FromDocumentState(document_state); 1739 InternalDocumentStateData::FromDocumentState(document_state);
1740 1740
1741 if (document_state->commit_load_time().is_null()) 1741 if (document_state->commit_load_time().is_null())
1742 document_state->set_commit_load_time(Time::Now()); 1742 document_state->set_commit_load_time(Time::Now());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 // navigation without valid HistoryItem state, WebCore will think it is a 1815 // navigation without valid HistoryItem state, WebCore will think it is a
1816 // new navigation. 1816 // new navigation.
1817 navigation_state->set_request_committed(true); 1817 navigation_state->set_request_committed(true);
1818 1818
1819 UpdateURL(frame); 1819 UpdateURL(frame);
1820 1820
1821 // Check whether we have new encoding name. 1821 // Check whether we have new encoding name.
1822 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 1822 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
1823 } 1823 }
1824 1824
1825 void RenderFrameImpl::didClearWindowObject(blink::WebFrame* frame, 1825 void RenderFrameImpl::didClearWindowObject(blink::WebLocalFrame* frame,
1826 int world_id) { 1826 int world_id) {
1827 DCHECK(!frame_ || frame_ == frame); 1827 DCHECK(!frame_ || frame_ == frame);
1828 // TODO(nasko): Move implementation here. Needed state: 1828 // TODO(nasko): Move implementation here. Needed state:
1829 // * enabled_bindings_ 1829 // * enabled_bindings_
1830 // * dom_automation_controller_ 1830 // * dom_automation_controller_
1831 // * stats_collection_controller_ 1831 // * stats_collection_controller_
1832 1832
1833 render_view_->didClearWindowObject(frame, world_id); 1833 render_view_->didClearWindowObject(frame, world_id);
1834 1834
1835 // Only install controllers into the main world. 1835 // Only install controllers into the main world.
1836 if (world_id) 1836 if (world_id)
1837 return; 1837 return;
1838 1838
1839 if (render_view_->GetEnabledBindings() & BINDINGS_POLICY_DOM_AUTOMATION) 1839 if (render_view_->GetEnabledBindings() & BINDINGS_POLICY_DOM_AUTOMATION)
1840 DomAutomationController::Install(this, frame); 1840 DomAutomationController::Install(this, frame);
1841 1841
1842 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, 1842 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
1843 DidClearWindowObject(world_id)); 1843 DidClearWindowObject(world_id));
1844 } 1844 }
1845 1845
1846 void RenderFrameImpl::didCreateDocumentElement(blink::WebFrame* frame) { 1846 void RenderFrameImpl::didCreateDocumentElement(blink::WebLocalFrame* frame) {
1847 DCHECK(!frame_ || frame_ == frame); 1847 DCHECK(!frame_ || frame_ == frame);
1848 1848
1849 // Notify the browser about non-blank documents loading in the top frame. 1849 // Notify the browser about non-blank documents loading in the top frame.
1850 GURL url = frame->document().url(); 1850 GURL url = frame->document().url();
1851 if (url.is_valid() && url.spec() != kAboutBlankURL) { 1851 if (url.is_valid() && url.spec() != kAboutBlankURL) {
1852 // TODO(nasko): Check if webview()->mainFrame() is the same as the 1852 // TODO(nasko): Check if webview()->mainFrame() is the same as the
1853 // frame->tree()->top(). 1853 // frame->tree()->top().
1854 if (frame == render_view_->webview()->mainFrame()) { 1854 if (frame == render_view_->webview()->mainFrame()) {
1855 render_view_->Send(new ViewHostMsg_DocumentAvailableInMainFrame( 1855 render_view_->Send(new ViewHostMsg_DocumentAvailableInMainFrame(
1856 render_view_->GetRoutingID())); 1856 render_view_->GetRoutingID()));
1857 } 1857 }
1858 } 1858 }
1859 1859
1860 // Call back to RenderViewImpl for observers to be notified. 1860 // Call back to RenderViewImpl for observers to be notified.
1861 // TODO(nasko): Remove once we have RenderFrameObserver. 1861 // TODO(nasko): Remove once we have RenderFrameObserver.
1862 render_view_->didCreateDocumentElement(frame); 1862 render_view_->didCreateDocumentElement(frame);
1863 } 1863 }
1864 1864
1865 void RenderFrameImpl::didReceiveTitle(blink::WebFrame* frame, 1865 void RenderFrameImpl::didReceiveTitle(blink::WebLocalFrame* frame,
1866 const blink::WebString& title, 1866 const blink::WebString& title,
1867 blink::WebTextDirection direction) { 1867 blink::WebTextDirection direction) {
1868 DCHECK(!frame_ || frame_ == frame); 1868 DCHECK(!frame_ || frame_ == frame);
1869 // TODO(nasko): Investigate wheather implementation should move here. 1869 // TODO(nasko): Investigate wheather implementation should move here.
1870 render_view_->didReceiveTitle(frame, title, direction); 1870 render_view_->didReceiveTitle(frame, title, direction);
1871 } 1871 }
1872 1872
1873 void RenderFrameImpl::didChangeIcon(blink::WebFrame* frame, 1873 void RenderFrameImpl::didChangeIcon(blink::WebLocalFrame* frame,
1874 blink::WebIconURL::Type icon_type) { 1874 blink::WebIconURL::Type icon_type) {
1875 DCHECK(!frame_ || frame_ == frame); 1875 DCHECK(!frame_ || frame_ == frame);
1876 // TODO(nasko): Investigate wheather implementation should move here. 1876 // TODO(nasko): Investigate wheather implementation should move here.
1877 render_view_->didChangeIcon(frame, icon_type); 1877 render_view_->didChangeIcon(frame, icon_type);
1878 } 1878 }
1879 1879
1880 void RenderFrameImpl::didFinishDocumentLoad(blink::WebFrame* frame) { 1880 void RenderFrameImpl::didFinishDocumentLoad(blink::WebLocalFrame* frame) {
1881 DCHECK(!frame_ || frame_ == frame); 1881 DCHECK(!frame_ || frame_ == frame);
1882 WebDataSource* ds = frame->dataSource(); 1882 WebDataSource* ds = frame->dataSource();
1883 DocumentState* document_state = DocumentState::FromDataSource(ds); 1883 DocumentState* document_state = DocumentState::FromDataSource(ds);
1884 document_state->set_finish_document_load_time(Time::Now()); 1884 document_state->set_finish_document_load_time(Time::Now());
1885 1885
1886 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_)); 1886 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_));
1887 1887
1888 // Call back to RenderViewImpl for observers to be notified. 1888 // Call back to RenderViewImpl for observers to be notified.
1889 // TODO(nasko): Remove once we have RenderFrameObserver for this method. 1889 // TODO(nasko): Remove once we have RenderFrameObserver for this method.
1890 render_view_->didFinishDocumentLoad(frame); 1890 render_view_->didFinishDocumentLoad(frame);
1891 1891
1892 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad()); 1892 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad());
1893 1893
1894 // Check whether we have new encoding name. 1894 // Check whether we have new encoding name.
1895 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 1895 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
1896 } 1896 }
1897 1897
1898 void RenderFrameImpl::didHandleOnloadEvents(blink::WebFrame* frame) { 1898 void RenderFrameImpl::didHandleOnloadEvents(blink::WebLocalFrame* frame) {
1899 DCHECK(!frame_ || frame_ == frame); 1899 DCHECK(!frame_ || frame_ == frame);
1900 // TODO(nasko): Move implementation here. Needed state: 1900 // TODO(nasko): Move implementation here. Needed state:
1901 // * page_id_ 1901 // * page_id_
1902 render_view_->didHandleOnloadEvents(frame); 1902 render_view_->didHandleOnloadEvents(frame);
1903 } 1903 }
1904 1904
1905 void RenderFrameImpl::didFailLoad(blink::WebFrame* frame, 1905 void RenderFrameImpl::didFailLoad(blink::WebLocalFrame* frame,
1906 const blink::WebURLError& error) { 1906 const blink::WebURLError& error) {
1907 DCHECK(!frame_ || frame_ == frame); 1907 DCHECK(!frame_ || frame_ == frame);
1908 // TODO(nasko): Move implementation here. No state needed. 1908 // TODO(nasko): Move implementation here. No state needed.
1909 WebDataSource* ds = frame->dataSource(); 1909 WebDataSource* ds = frame->dataSource();
1910 DCHECK(ds); 1910 DCHECK(ds);
1911 1911
1912 render_view_->didFailLoad(frame, error); 1912 render_view_->didFailLoad(frame, error);
1913 1913
1914 const WebURLRequest& failed_request = ds->request(); 1914 const WebURLRequest& failed_request = ds->request();
1915 base::string16 error_description; 1915 base::string16 error_description;
1916 GetContentClient()->renderer()->GetNavigationErrorStrings( 1916 GetContentClient()->renderer()->GetNavigationErrorStrings(
1917 render_view_.get(), 1917 render_view_.get(),
1918 frame, 1918 frame,
1919 failed_request, 1919 failed_request,
1920 error, 1920 error,
1921 NULL, 1921 NULL,
1922 &error_description); 1922 &error_description);
1923 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_, 1923 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_,
1924 failed_request.url(), 1924 failed_request.url(),
1925 error.reason, 1925 error.reason,
1926 error_description)); 1926 error_description));
1927 } 1927 }
1928 1928
1929 void RenderFrameImpl::didFinishLoad(blink::WebFrame* frame) { 1929 void RenderFrameImpl::didFinishLoad(blink::WebLocalFrame* frame) {
1930 DCHECK(!frame_ || frame_ == frame); 1930 DCHECK(!frame_ || frame_ == frame);
1931 WebDataSource* ds = frame->dataSource(); 1931 WebDataSource* ds = frame->dataSource();
1932 DocumentState* document_state = DocumentState::FromDataSource(ds); 1932 DocumentState* document_state = DocumentState::FromDataSource(ds);
1933 if (document_state->finish_load_time().is_null()) { 1933 if (document_state->finish_load_time().is_null()) {
1934 if (!frame->parent()) { 1934 if (!frame->parent()) {
1935 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished", 1935 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished",
1936 TRACE_EVENT_SCOPE_PROCESS); 1936 TRACE_EVENT_SCOPE_PROCESS);
1937 } 1937 }
1938 document_state->set_finish_load_time(Time::Now()); 1938 document_state->set_finish_load_time(Time::Now());
1939 } 1939 }
(...skipping 23 matching lines...) Expand all
1963 didCreateDataSource(frame, frame->dataSource()); 1963 didCreateDataSource(frame, frame->dataSource());
1964 1964
1965 DocumentState* document_state = 1965 DocumentState* document_state =
1966 DocumentState::FromDataSource(frame->dataSource()); 1966 DocumentState::FromDataSource(frame->dataSource());
1967 NavigationState* new_state = document_state->navigation_state(); 1967 NavigationState* new_state = document_state->navigation_state();
1968 new_state->set_was_within_same_page(true); 1968 new_state->set_was_within_same_page(true);
1969 1969
1970 didCommitProvisionalLoad(frame, item, commit_type); 1970 didCommitProvisionalLoad(frame, item, commit_type);
1971 } 1971 }
1972 1972
1973 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame, 1973 void RenderFrameImpl::didNavigateWithinPage(blink::WebLocalFrame* frame,
1974 bool is_new_navigation) { 1974 bool is_new_navigation) {
1975 DCHECK(!frame_ || frame_ == frame); 1975 DCHECK(!frame_ || frame_ == frame);
1976 // If this was a reference fragment navigation that we initiated, then we 1976 // If this was a reference fragment navigation that we initiated, then we
1977 // could end up having a non-null pending navigation params. We just need to 1977 // could end up having a non-null pending navigation params. We just need to
1978 // update the ExtraData on the datasource so that others who read the 1978 // update the ExtraData on the datasource so that others who read the
1979 // ExtraData will get the new NavigationState. Similarly, if we did not 1979 // ExtraData will get the new NavigationState. Similarly, if we did not
1980 // initiate this navigation, then we need to take care to reset any pre- 1980 // initiate this navigation, then we need to take care to reset any pre-
1981 // existing navigation state to a content-initiated navigation state. 1981 // existing navigation state to a content-initiated navigation state.
1982 // DidCreateDataSource conveniently takes care of this for us. 1982 // DidCreateDataSource conveniently takes care of this for us.
1983 didCreateDataSource(frame, frame->dataSource()); 1983 didCreateDataSource(frame, frame->dataSource());
1984 1984
1985 DocumentState* document_state = 1985 DocumentState* document_state =
1986 DocumentState::FromDataSource(frame->dataSource()); 1986 DocumentState::FromDataSource(frame->dataSource());
1987 NavigationState* new_state = document_state->navigation_state(); 1987 NavigationState* new_state = document_state->navigation_state();
1988 new_state->set_was_within_same_page(true); 1988 new_state->set_was_within_same_page(true);
1989 1989
1990 didCommitProvisionalLoad(frame, is_new_navigation); 1990 didCommitProvisionalLoad(frame, is_new_navigation);
1991 } 1991 }
1992 1992
1993 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebFrame* frame) { 1993 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) {
1994 DCHECK(!frame_ || frame_ == frame); 1994 DCHECK(!frame_ || frame_ == frame);
1995 // TODO(nasko): Move implementation here. Needed methods: 1995 // TODO(nasko): Move implementation here. Needed methods:
1996 // * StartNavStateSyncTimerIfNecessary 1996 // * StartNavStateSyncTimerIfNecessary
1997 render_view_->didUpdateCurrentHistoryItem(frame); 1997 render_view_->didUpdateCurrentHistoryItem(frame);
1998 } 1998 }
1999 1999
2000 void RenderFrameImpl::didChangeSelection(bool is_empty_selection) { 2000 void RenderFrameImpl::didChangeSelection(bool is_empty_selection) {
2001 if (!GetRenderWidget()->handling_input_event() && !handling_select_range_) 2001 if (!GetRenderWidget()->handling_input_event() && !handling_select_range_)
2002 return; 2002 return;
2003 2003
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2060 #endif 2060 #endif
2061 2061
2062 Send(new FrameHostMsg_ContextMenu(routing_id_, params)); 2062 Send(new FrameHostMsg_ContextMenu(routing_id_, params));
2063 } 2063 }
2064 2064
2065 void RenderFrameImpl::clearContextMenu() { 2065 void RenderFrameImpl::clearContextMenu() {
2066 context_menu_node_.reset(); 2066 context_menu_node_.reset();
2067 } 2067 }
2068 2068
2069 void RenderFrameImpl::willRequestAfterPreconnect( 2069 void RenderFrameImpl::willRequestAfterPreconnect(
2070 blink::WebFrame* frame, 2070 blink::WebLocalFrame* frame,
2071 blink::WebURLRequest& request) { 2071 blink::WebURLRequest& request) {
2072 DCHECK(!frame_ || frame_ == frame); 2072 DCHECK(!frame_ || frame_ == frame);
2073 // FIXME(kohei): This will never be set. 2073 // FIXME(kohei): This will never be set.
2074 WebString custom_user_agent; 2074 WebString custom_user_agent;
2075 2075
2076 DCHECK(!request.extraData()); 2076 DCHECK(!request.extraData());
2077 2077
2078 bool was_after_preconnect_request = true; 2078 bool was_after_preconnect_request = true;
2079 // The args after |was_after_preconnect_request| are not used, and set to 2079 // The args after |was_after_preconnect_request| are not used, and set to
2080 // correct values at |willSendRequest|. 2080 // correct values at |willSendRequest|.
2081 RequestExtraData* extra_data = new RequestExtraData(); 2081 RequestExtraData* extra_data = new RequestExtraData();
2082 extra_data->set_custom_user_agent(custom_user_agent); 2082 extra_data->set_custom_user_agent(custom_user_agent);
2083 extra_data->set_was_after_preconnect_request(was_after_preconnect_request); 2083 extra_data->set_was_after_preconnect_request(was_after_preconnect_request);
2084 request.setExtraData(extra_data); 2084 request.setExtraData(extra_data);
2085 } 2085 }
2086 2086
2087 void RenderFrameImpl::willSendRequest( 2087 void RenderFrameImpl::willSendRequest(
2088 blink::WebFrame* frame, 2088 blink::WebLocalFrame* frame,
2089 unsigned identifier, 2089 unsigned identifier,
2090 blink::WebURLRequest& request, 2090 blink::WebURLRequest& request,
2091 const blink::WebURLResponse& redirect_response) { 2091 const blink::WebURLResponse& redirect_response) {
2092 DCHECK(!frame_ || frame_ == frame); 2092 DCHECK(!frame_ || frame_ == frame);
2093 // The request my be empty during tests. 2093 // The request my be empty during tests.
2094 if (request.url().isEmpty()) 2094 if (request.url().isEmpty())
2095 return; 2095 return;
2096 2096
2097 WebFrame* top_frame = frame->top(); 2097 WebFrame* top_frame = frame->top();
2098 if (!top_frame) 2098 if (!top_frame)
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2236 WebString::fromUTF8(i.values())); 2236 WebString::fromUTF8(i.values()));
2237 } 2237 }
2238 } 2238 }
2239 } 2239 }
2240 2240
2241 if (!render_view_->renderer_preferences_.enable_referrers) 2241 if (!render_view_->renderer_preferences_.enable_referrers)
2242 request.setHTTPReferrer(WebString(), blink::WebReferrerPolicyDefault); 2242 request.setHTTPReferrer(WebString(), blink::WebReferrerPolicyDefault);
2243 } 2243 }
2244 2244
2245 void RenderFrameImpl::didReceiveResponse( 2245 void RenderFrameImpl::didReceiveResponse(
2246 blink::WebFrame* frame, 2246 blink::WebLocalFrame* frame,
2247 unsigned identifier, 2247 unsigned identifier,
2248 const blink::WebURLResponse& response) { 2248 const blink::WebURLResponse& response) {
2249 DCHECK(!frame_ || frame_ == frame); 2249 DCHECK(!frame_ || frame_ == frame);
2250 // Only do this for responses that correspond to a provisional data source 2250 // Only do this for responses that correspond to a provisional data source
2251 // of the top-most frame. If we have a provisional data source, then we 2251 // of the top-most frame. If we have a provisional data source, then we
2252 // can't have any sub-resources yet, so we know that this response must 2252 // can't have any sub-resources yet, so we know that this response must
2253 // correspond to a frame load. 2253 // correspond to a frame load.
2254 if (!frame->provisionalDataSource() || frame->parent()) 2254 if (!frame->provisionalDataSource() || frame->parent())
2255 return; 2255 return;
2256 2256
(...skipping 25 matching lines...) Expand all
2282 } 2282 }
2283 InternalDocumentStateData* internal_data = 2283 InternalDocumentStateData* internal_data =
2284 InternalDocumentStateData::FromDocumentState(document_state); 2284 InternalDocumentStateData::FromDocumentState(document_state);
2285 internal_data->set_http_status_code(http_status_code); 2285 internal_data->set_http_status_code(http_status_code);
2286 // Whether or not the http status code actually corresponds to an error is 2286 // Whether or not the http status code actually corresponds to an error is
2287 // only checked when the page is done loading, if |use_error_page| is 2287 // only checked when the page is done loading, if |use_error_page| is
2288 // still true. 2288 // still true.
2289 internal_data->set_use_error_page(true); 2289 internal_data->set_use_error_page(true);
2290 } 2290 }
2291 2291
2292 void RenderFrameImpl::didFinishResourceLoad(blink::WebFrame* frame, 2292 void RenderFrameImpl::didFinishResourceLoad(blink::WebLocalFrame* frame,
2293 unsigned identifier) { 2293 unsigned identifier) {
2294 DCHECK(!frame_ || frame_ == frame); 2294 DCHECK(!frame_ || frame_ == frame);
2295 // TODO(nasko): Move implementation here. Needed state: 2295 // TODO(nasko): Move implementation here. Needed state:
2296 // * devtools_agent_ 2296 // * devtools_agent_
2297 // Needed methods: 2297 // Needed methods:
2298 // * LoadNavigationErrorPage 2298 // * LoadNavigationErrorPage
2299 render_view_->didFinishResourceLoad(frame, identifier); 2299 render_view_->didFinishResourceLoad(frame, identifier);
2300 } 2300 }
2301 2301
2302 void RenderFrameImpl::didLoadResourceFromMemoryCache( 2302 void RenderFrameImpl::didLoadResourceFromMemoryCache(
2303 blink::WebFrame* frame, 2303 blink::WebLocalFrame* frame,
2304 const blink::WebURLRequest& request, 2304 const blink::WebURLRequest& request,
2305 const blink::WebURLResponse& response) { 2305 const blink::WebURLResponse& response) {
2306 DCHECK(!frame_ || frame_ == frame); 2306 DCHECK(!frame_ || frame_ == frame);
2307 // The recipients of this message have no use for data: URLs: they don't 2307 // The recipients of this message have no use for data: URLs: they don't
2308 // affect the page's insecure content list and are not in the disk cache. To 2308 // affect the page's insecure content list and are not in the disk cache. To
2309 // prevent large (1M+) data: URLs from crashing in the IPC system, we simply 2309 // prevent large (1M+) data: URLs from crashing in the IPC system, we simply
2310 // filter them out here. 2310 // filter them out here.
2311 GURL url(request.url()); 2311 GURL url(request.url());
2312 if (url.SchemeIs("data")) 2312 if (url.SchemeIs("data"))
2313 return; 2313 return;
2314 2314
2315 // Let the browser know we loaded a resource from the memory cache. This 2315 // Let the browser know we loaded a resource from the memory cache. This
2316 // message is needed to display the correct SSL indicators. 2316 // message is needed to display the correct SSL indicators.
2317 render_view_->Send(new ViewHostMsg_DidLoadResourceFromMemoryCache( 2317 render_view_->Send(new ViewHostMsg_DidLoadResourceFromMemoryCache(
2318 render_view_->GetRoutingID(), 2318 render_view_->GetRoutingID(),
2319 url, 2319 url,
2320 response.securityInfo(), 2320 response.securityInfo(),
2321 request.httpMethod().utf8(), 2321 request.httpMethod().utf8(),
2322 response.mimeType().utf8(), 2322 response.mimeType().utf8(),
2323 ResourceType::FromTargetType(request.targetType()))); 2323 ResourceType::FromTargetType(request.targetType())));
2324 } 2324 }
2325 2325
2326 void RenderFrameImpl::didDisplayInsecureContent(blink::WebFrame* frame) { 2326 void RenderFrameImpl::didDisplayInsecureContent(blink::WebLocalFrame* frame) {
2327 DCHECK(!frame_ || frame_ == frame); 2327 DCHECK(!frame_ || frame_ == frame);
2328 render_view_->Send(new ViewHostMsg_DidDisplayInsecureContent( 2328 render_view_->Send(new ViewHostMsg_DidDisplayInsecureContent(
2329 render_view_->GetRoutingID())); 2329 render_view_->GetRoutingID()));
2330 } 2330 }
2331 2331
2332 void RenderFrameImpl::didRunInsecureContent( 2332 void RenderFrameImpl::didRunInsecureContent(
2333 blink::WebFrame* frame, 2333 blink::WebLocalFrame* frame,
2334 const blink::WebSecurityOrigin& origin, 2334 const blink::WebSecurityOrigin& origin,
2335 const blink::WebURL& target) { 2335 const blink::WebURL& target) {
2336 DCHECK(!frame_ || frame_ == frame); 2336 DCHECK(!frame_ || frame_ == frame);
2337 render_view_->Send(new ViewHostMsg_DidRunInsecureContent( 2337 render_view_->Send(new ViewHostMsg_DidRunInsecureContent(
2338 render_view_->GetRoutingID(), 2338 render_view_->GetRoutingID(),
2339 origin.toString().utf8(), 2339 origin.toString().utf8(),
2340 target)); 2340 target));
2341 } 2341 }
2342 2342
2343 void RenderFrameImpl::didAbortLoading(blink::WebFrame* frame) { 2343 void RenderFrameImpl::didAbortLoading(blink::WebLocalFrame* frame) {
2344 DCHECK(!frame_ || frame_ == frame); 2344 DCHECK(!frame_ || frame_ == frame);
2345 #if defined(ENABLE_PLUGINS) 2345 #if defined(ENABLE_PLUGINS)
2346 if (frame != render_view_->webview()->mainFrame()) 2346 if (frame != render_view_->webview()->mainFrame())
2347 return; 2347 return;
2348 PluginChannelHost::Broadcast( 2348 PluginChannelHost::Broadcast(
2349 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID())); 2349 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID()));
2350 #endif 2350 #endif
2351 } 2351 }
2352 2352
2353 void RenderFrameImpl::didCreateScriptContext(blink::WebFrame* frame, 2353 void RenderFrameImpl::didCreateScriptContext(blink::WebLocalFrame* frame,
2354 v8::Handle<v8::Context> context, 2354 v8::Handle<v8::Context> context,
2355 int extension_group, 2355 int extension_group,
2356 int world_id) { 2356 int world_id) {
2357 DCHECK(!frame_ || frame_ == frame); 2357 DCHECK(!frame_ || frame_ == frame);
2358 GetContentClient()->renderer()->DidCreateScriptContext( 2358 GetContentClient()->renderer()->DidCreateScriptContext(
2359 frame, context, extension_group, world_id); 2359 frame, context, extension_group, world_id);
2360 } 2360 }
2361 2361
2362 void RenderFrameImpl::willReleaseScriptContext(blink::WebFrame* frame, 2362 void RenderFrameImpl::willReleaseScriptContext(blink::WebLocalFrame* frame,
2363 v8::Handle<v8::Context> context, 2363 v8::Handle<v8::Context> context,
2364 int world_id) { 2364 int world_id) {
2365 DCHECK(!frame_ || frame_ == frame); 2365 DCHECK(!frame_ || frame_ == frame);
2366 2366
2367 FOR_EACH_OBSERVER(RenderFrameObserver, 2367 FOR_EACH_OBSERVER(RenderFrameObserver,
2368 observers_, 2368 observers_,
2369 WillReleaseScriptContext(context, world_id)); 2369 WillReleaseScriptContext(context, world_id));
2370 } 2370 }
2371 2371
2372 void RenderFrameImpl::didFirstVisuallyNonEmptyLayout(blink::WebFrame* frame) { 2372 void RenderFrameImpl::didFirstVisuallyNonEmptyLayout(
2373 blink::WebLocalFrame* frame) {
2373 DCHECK(!frame_ || frame_ == frame); 2374 DCHECK(!frame_ || frame_ == frame);
2374 render_view_->didFirstVisuallyNonEmptyLayout(frame); 2375 render_view_->didFirstVisuallyNonEmptyLayout(frame);
2375 } 2376 }
2376 2377
2377 void RenderFrameImpl::didChangeContentsSize(blink::WebFrame* frame, 2378 void RenderFrameImpl::didChangeContentsSize(blink::WebLocalFrame* frame,
2378 const blink::WebSize& size) { 2379 const blink::WebSize& size) {
2379 DCHECK(!frame_ || frame_ == frame); 2380 DCHECK(!frame_ || frame_ == frame);
2380 // TODO(nasko): Move implementation here. Needed state: 2381 // TODO(nasko): Move implementation here. Needed state:
2381 // * cached_has_main_frame_horizontal_scrollbar_ 2382 // * cached_has_main_frame_horizontal_scrollbar_
2382 // * cached_has_main_frame_vertical_scrollbar_ 2383 // * cached_has_main_frame_vertical_scrollbar_
2383 render_view_->didChangeContentsSize(frame, size); 2384 render_view_->didChangeContentsSize(frame, size);
2384 } 2385 }
2385 2386
2386 void RenderFrameImpl::didChangeScrollOffset(blink::WebFrame* frame) { 2387 void RenderFrameImpl::didChangeScrollOffset(blink::WebLocalFrame* frame) {
2387 DCHECK(!frame_ || frame_ == frame); 2388 DCHECK(!frame_ || frame_ == frame);
2388 // TODO(nasko): Move implementation here. Needed methods: 2389 // TODO(nasko): Move implementation here. Needed methods:
2389 // * StartNavStateSyncTimerIfNecessary 2390 // * StartNavStateSyncTimerIfNecessary
2390 render_view_->didChangeScrollOffset(frame); 2391 render_view_->didChangeScrollOffset(frame);
2391 } 2392 }
2392 2393
2393 void RenderFrameImpl::willInsertBody(blink::WebFrame* frame) { 2394 void RenderFrameImpl::willInsertBody(blink::WebLocalFrame* frame) {
2394 DCHECK(!frame_ || frame_ == frame); 2395 DCHECK(!frame_ || frame_ == frame);
2395 if (!frame->parent()) { 2396 if (!frame->parent()) {
2396 render_view_->Send(new ViewHostMsg_WillInsertBody( 2397 render_view_->Send(new ViewHostMsg_WillInsertBody(
2397 render_view_->GetRoutingID())); 2398 render_view_->GetRoutingID()));
2398 } 2399 }
2399 } 2400 }
2400 2401
2401 void RenderFrameImpl::reportFindInPageMatchCount(int request_id, 2402 void RenderFrameImpl::reportFindInPageMatchCount(int request_id,
2402 int count, 2403 int count,
2403 bool final_update) { 2404 bool final_update) {
2404 int active_match_ordinal = -1; // -1 = don't update active match ordinal 2405 int active_match_ordinal = -1; // -1 = don't update active match ordinal
2405 if (!count) 2406 if (!count)
2406 active_match_ordinal = 0; 2407 active_match_ordinal = 0;
2407 2408
2408 render_view_->Send(new ViewHostMsg_Find_Reply( 2409 render_view_->Send(new ViewHostMsg_Find_Reply(
2409 render_view_->GetRoutingID(), request_id, count, 2410 render_view_->GetRoutingID(), request_id, count,
2410 gfx::Rect(), active_match_ordinal, final_update)); 2411 gfx::Rect(), active_match_ordinal, final_update));
2411 } 2412 }
2412 2413
2413 void RenderFrameImpl::reportFindInPageSelection( 2414 void RenderFrameImpl::reportFindInPageSelection(
2414 int request_id, 2415 int request_id,
2415 int active_match_ordinal, 2416 int active_match_ordinal,
2416 const blink::WebRect& selection_rect) { 2417 const blink::WebRect& selection_rect) {
2417 render_view_->Send(new ViewHostMsg_Find_Reply( 2418 render_view_->Send(new ViewHostMsg_Find_Reply(
2418 render_view_->GetRoutingID(), request_id, -1, selection_rect, 2419 render_view_->GetRoutingID(), request_id, -1, selection_rect,
2419 active_match_ordinal, false)); 2420 active_match_ordinal, false));
2420 } 2421 }
2421 2422
2422 void RenderFrameImpl::requestStorageQuota( 2423 void RenderFrameImpl::requestStorageQuota(
2423 blink::WebFrame* frame, 2424 blink::WebLocalFrame* frame,
2424 blink::WebStorageQuotaType type, 2425 blink::WebStorageQuotaType type,
2425 unsigned long long requested_size, 2426 unsigned long long requested_size,
2426 blink::WebStorageQuotaCallbacks callbacks) { 2427 blink::WebStorageQuotaCallbacks callbacks) {
2427 DCHECK(!frame_ || frame_ == frame); 2428 DCHECK(!frame_ || frame_ == frame);
2428 WebSecurityOrigin origin = frame->document().securityOrigin(); 2429 WebSecurityOrigin origin = frame->document().securityOrigin();
2429 if (origin.isUnique()) { 2430 if (origin.isUnique()) {
2430 // Unique origins cannot store persistent state. 2431 // Unique origins cannot store persistent state.
2431 callbacks.didFail(blink::WebStorageQuotaErrorAbort); 2432 callbacks.didFail(blink::WebStorageQuotaErrorAbort);
2432 return; 2433 return;
2433 } 2434 }
2434 ChildThread::current()->quota_dispatcher()->RequestStorageQuota( 2435 ChildThread::current()->quota_dispatcher()->RequestStorageQuota(
2435 render_view_->GetRoutingID(), GURL(origin.toString()), 2436 render_view_->GetRoutingID(), GURL(origin.toString()),
2436 static_cast<quota::StorageType>(type), requested_size, 2437 static_cast<quota::StorageType>(type), requested_size,
2437 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); 2438 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks));
2438 } 2439 }
2439 2440
2440 void RenderFrameImpl::willOpenSocketStream( 2441 void RenderFrameImpl::willOpenSocketStream(
2441 blink::WebSocketStreamHandle* handle) { 2442 blink::WebSocketStreamHandle* handle) {
2442 WebSocketStreamHandleImpl* impl = 2443 WebSocketStreamHandleImpl* impl =
2443 static_cast<WebSocketStreamHandleImpl*>(handle); 2444 static_cast<WebSocketStreamHandleImpl*>(handle);
2444 impl->SetUserData(handle, new SocketStreamHandleData(routing_id_)); 2445 impl->SetUserData(handle, new SocketStreamHandleData(routing_id_));
2445 } 2446 }
2446 2447
2447 void RenderFrameImpl::willStartUsingPeerConnectionHandler( 2448 void RenderFrameImpl::willStartUsingPeerConnectionHandler(
2448 blink::WebFrame* frame, 2449 blink::WebLocalFrame* frame,
2449 blink::WebRTCPeerConnectionHandler* handler) { 2450 blink::WebRTCPeerConnectionHandler* handler) {
2450 DCHECK(!frame_ || frame_ == frame); 2451 DCHECK(!frame_ || frame_ == frame);
2451 #if defined(ENABLE_WEBRTC) 2452 #if defined(ENABLE_WEBRTC)
2452 static_cast<RTCPeerConnectionHandler*>(handler)->associateWithFrame(frame); 2453 static_cast<RTCPeerConnectionHandler*>(handler)->associateWithFrame(frame);
2453 #endif 2454 #endif
2454 } 2455 }
2455 2456
2456 bool RenderFrameImpl::willCheckAndDispatchMessageEvent( 2457 bool RenderFrameImpl::willCheckAndDispatchMessageEvent(
2457 blink::WebFrame* sourceFrame, 2458 blink::WebLocalFrame* sourceFrame,
2458 blink::WebFrame* targetFrame, 2459 blink::WebFrame* targetFrame,
2459 blink::WebSecurityOrigin targetOrigin, 2460 blink::WebSecurityOrigin targetOrigin,
2460 blink::WebDOMMessageEvent event) { 2461 blink::WebDOMMessageEvent event) {
2461 DCHECK(!frame_ || frame_ == targetFrame); 2462 DCHECK(!frame_ || frame_ == targetFrame);
2462 // TODO(nasko): Move implementation here. Needed state: 2463 // TODO(nasko): Move implementation here. Needed state:
2463 // * is_swapped_out_ 2464 // * is_swapped_out_
2464 return render_view_->willCheckAndDispatchMessageEvent( 2465 return render_view_->willCheckAndDispatchMessageEvent(
2465 sourceFrame, targetFrame, targetOrigin, event); 2466 sourceFrame, targetFrame, targetOrigin, event);
2466 } 2467 }
2467 2468
2468 blink::WebString RenderFrameImpl::userAgentOverride( 2469 blink::WebString RenderFrameImpl::userAgentOverride(blink::WebLocalFrame* frame,
2469 blink::WebFrame* frame, 2470 const blink::WebURL& url) {
2470 const blink::WebURL& url) {
2471 DCHECK(!frame_ || frame_ == frame); 2471 DCHECK(!frame_ || frame_ == frame);
2472 if (!render_view_->webview() || !render_view_->webview()->mainFrame() || 2472 if (!render_view_->webview() || !render_view_->webview()->mainFrame() ||
2473 render_view_->renderer_preferences_.user_agent_override.empty()) { 2473 render_view_->renderer_preferences_.user_agent_override.empty()) {
2474 return blink::WebString(); 2474 return blink::WebString();
2475 } 2475 }
2476 2476
2477 // If we're in the middle of committing a load, the data source we need 2477 // If we're in the middle of committing a load, the data source we need
2478 // will still be provisional. 2478 // will still be provisional.
2479 WebFrame* main_frame = render_view_->webview()->mainFrame(); 2479 WebFrame* main_frame = render_view_->webview()->mainFrame();
2480 WebDataSource* data_source = NULL; 2480 WebDataSource* data_source = NULL;
2481 if (main_frame->provisionalDataSource()) 2481 if (main_frame->provisionalDataSource())
2482 data_source = main_frame->provisionalDataSource(); 2482 data_source = main_frame->provisionalDataSource();
2483 else 2483 else
2484 data_source = main_frame->dataSource(); 2484 data_source = main_frame->dataSource();
2485 2485
2486 InternalDocumentStateData* internal_data = data_source ? 2486 InternalDocumentStateData* internal_data = data_source ?
2487 InternalDocumentStateData::FromDataSource(data_source) : NULL; 2487 InternalDocumentStateData::FromDataSource(data_source) : NULL;
2488 if (internal_data && internal_data->is_overriding_user_agent()) 2488 if (internal_data && internal_data->is_overriding_user_agent())
2489 return WebString::fromUTF8( 2489 return WebString::fromUTF8(
2490 render_view_->renderer_preferences_.user_agent_override); 2490 render_view_->renderer_preferences_.user_agent_override);
2491 return blink::WebString(); 2491 return blink::WebString();
2492 } 2492 }
2493 2493
2494 blink::WebString RenderFrameImpl::doNotTrackValue(blink::WebFrame* frame) { 2494 blink::WebString RenderFrameImpl::doNotTrackValue(blink::WebLocalFrame* frame) {
2495 DCHECK(!frame_ || frame_ == frame); 2495 DCHECK(!frame_ || frame_ == frame);
2496 if (render_view_->renderer_preferences_.enable_do_not_track) 2496 if (render_view_->renderer_preferences_.enable_do_not_track)
2497 return WebString::fromUTF8("1"); 2497 return WebString::fromUTF8("1");
2498 return WebString(); 2498 return WebString();
2499 } 2499 }
2500 2500
2501 bool RenderFrameImpl::allowWebGL(blink::WebFrame* frame, bool default_value) { 2501 bool RenderFrameImpl::allowWebGL(blink::WebLocalFrame* frame,
2502 bool default_value) {
2502 DCHECK(!frame_ || frame_ == frame); 2503 DCHECK(!frame_ || frame_ == frame);
2503 if (!default_value) 2504 if (!default_value)
2504 return false; 2505 return false;
2505 2506
2506 bool blocked = true; 2507 bool blocked = true;
2507 render_view_->Send(new ViewHostMsg_Are3DAPIsBlocked( 2508 render_view_->Send(new ViewHostMsg_Are3DAPIsBlocked(
2508 render_view_->GetRoutingID(), 2509 render_view_->GetRoutingID(),
2509 GURL(frame->top()->document().securityOrigin().toString()), 2510 GURL(frame->top()->document().securityOrigin().toString()),
2510 THREE_D_API_TYPE_WEBGL, 2511 THREE_D_API_TYPE_WEBGL,
2511 &blocked)); 2512 &blocked));
2512 return !blocked; 2513 return !blocked;
2513 } 2514 }
2514 2515
2515 void RenderFrameImpl::didLoseWebGLContext(blink::WebFrame* frame, 2516 void RenderFrameImpl::didLoseWebGLContext(blink::WebLocalFrame* frame,
2516 int arb_robustness_status_code) { 2517 int arb_robustness_status_code) {
2517 DCHECK(!frame_ || frame_ == frame); 2518 DCHECK(!frame_ || frame_ == frame);
2518 render_view_->Send(new ViewHostMsg_DidLose3DContext( 2519 render_view_->Send(new ViewHostMsg_DidLose3DContext(
2519 GURL(frame->top()->document().securityOrigin().toString()), 2520 GURL(frame->top()->document().securityOrigin().toString()),
2520 THREE_D_API_TYPE_WEBGL, 2521 THREE_D_API_TYPE_WEBGL,
2521 arb_robustness_status_code)); 2522 arb_robustness_status_code));
2522 } 2523 }
2523 2524
2524 void RenderFrameImpl::forwardInputEvent(const blink::WebInputEvent* event) { 2525 void RenderFrameImpl::forwardInputEvent(const blink::WebInputEvent* event) {
2525 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event)); 2526 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event));
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
3077 selection_text_offset_ = offset; 3078 selection_text_offset_ = offset;
3078 selection_range_ = range; 3079 selection_range_ = range;
3079 // This IPC is dispatched by RenderWidetHost, so use its routing ID. 3080 // This IPC is dispatched by RenderWidetHost, so use its routing ID.
3080 Send(new ViewHostMsg_SelectionChanged( 3081 Send(new ViewHostMsg_SelectionChanged(
3081 GetRenderWidget()->routing_id(), text, offset, range)); 3082 GetRenderWidget()->routing_id(), text, offset, range));
3082 } 3083 }
3083 GetRenderWidget()->UpdateSelectionBounds(); 3084 GetRenderWidget()->UpdateSelectionBounds();
3084 } 3085 }
3085 3086
3086 } // namespace content 3087 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698