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

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: Remove some TODOs 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
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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 #endif 101 #endif
102 102
103 using blink::WebContextMenuData; 103 using blink::WebContextMenuData;
104 using blink::WebData; 104 using blink::WebData;
105 using blink::WebDataSource; 105 using blink::WebDataSource;
106 using blink::WebDocument; 106 using blink::WebDocument;
107 using blink::WebElement; 107 using blink::WebElement;
108 using blink::WebFrame; 108 using blink::WebFrame;
109 using blink::WebHistoryItem; 109 using blink::WebHistoryItem;
110 using blink::WebHTTPBody; 110 using blink::WebHTTPBody;
111 using blink::WebLocalFrame;
111 using blink::WebNavigationPolicy; 112 using blink::WebNavigationPolicy;
112 using blink::WebNavigationType; 113 using blink::WebNavigationType;
113 using blink::WebNode; 114 using blink::WebNode;
114 using blink::WebPluginParams; 115 using blink::WebPluginParams;
115 using blink::WebRange; 116 using blink::WebRange;
116 using blink::WebReferrerPolicy; 117 using blink::WebReferrerPolicy;
117 using blink::WebScriptSource; 118 using blink::WebScriptSource;
118 using blink::WebSearchableFormData; 119 using blink::WebSearchableFormData;
119 using blink::WebSecurityOrigin; 120 using blink::WebSecurityOrigin;
120 using blink::WebSecurityPolicy; 121 using blink::WebSecurityPolicy;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 new JavaBridgeDispatcher(this); 323 new JavaBridgeDispatcher(this);
323 #endif 324 #endif
324 } 325 }
325 326
326 RenderFrameImpl::~RenderFrameImpl() { 327 RenderFrameImpl::~RenderFrameImpl() {
327 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); 328 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
328 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); 329 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
329 RenderThread::Get()->RemoveRoute(routing_id_); 330 RenderThread::Get()->RemoveRoute(routing_id_);
330 } 331 }
331 332
332 void RenderFrameImpl::SetWebFrame(blink::WebFrame* web_frame) { 333 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) {
333 DCHECK(!frame_); 334 DCHECK(!frame_);
334 335
335 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert( 336 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert(
336 std::make_pair(web_frame, this)); 337 std::make_pair(web_frame, this));
337 CHECK(result.second) << "Inserting a duplicate item."; 338 CHECK(result.second) << "Inserting a duplicate item.";
338 339
339 frame_ = web_frame; 340 frame_ = web_frame;
340 341
341 #if defined(ENABLE_PLUGINS) 342 #if defined(ENABLE_PLUGINS)
342 new PepperBrowserConnection(this); 343 new PepperBrowserConnection(this);
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 return NULL; 1133 return NULL;
1133 #else 1134 #else
1134 // TODO(jam): change to take RenderFrame. 1135 // TODO(jam): change to take RenderFrame.
1135 return new WebPluginImpl(frame, params, info.path, render_view_, this); 1136 return new WebPluginImpl(frame, params, info.path, render_view_, this);
1136 #endif 1137 #endif
1137 #else 1138 #else
1138 return NULL; 1139 return NULL;
1139 #endif 1140 #endif
1140 } 1141 }
1141 1142
1142 void RenderFrameImpl::LoadURLExternally( 1143 void RenderFrameImpl::LoadURLExternally(blink::WebLocalFrame* frame,
1143 blink::WebFrame* frame, 1144 const blink::WebURLRequest& request,
1144 const blink::WebURLRequest& request, 1145 blink::WebNavigationPolicy policy) {
1145 blink::WebNavigationPolicy policy) {
1146 DCHECK(!frame_ || frame_ == frame); 1146 DCHECK(!frame_ || frame_ == frame);
1147 loadURLExternally(frame, request, policy); 1147 loadURLExternally(frame, request, policy);
1148 } 1148 }
1149 1149
1150 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) { 1150 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) {
1151 OnJavaScriptExecuteRequest(javascript, 0, false); 1151 OnJavaScriptExecuteRequest(javascript, 0, false);
1152 } 1152 }
1153 1153
1154 void RenderFrameImpl::OnChildFrameProcessGone() { 1154 void RenderFrameImpl::OnChildFrameProcessGone() {
1155 if (compositing_helper_) 1155 if (compositing_helper_)
1156 compositing_helper_->ChildFrameGone(); 1156 compositing_helper_->ChildFrameGone();
1157 } 1157 }
1158 1158
1159 // blink::WebFrameClient implementation ---------------------------------------- 1159 // blink::WebFrameClient implementation ----------------------------------------
1160 1160
1161 blink::WebPlugin* RenderFrameImpl::createPlugin( 1161 blink::WebPlugin* RenderFrameImpl::createPlugin(
1162 blink::WebFrame* frame, 1162 blink::WebLocalFrame* frame,
1163 const blink::WebPluginParams& params) { 1163 const blink::WebPluginParams& params) {
1164 DCHECK_EQ(frame_, frame); 1164 DCHECK_EQ(frame_, frame);
1165 blink::WebPlugin* plugin = NULL; 1165 blink::WebPlugin* plugin = NULL;
1166 if (GetContentClient()->renderer()->OverrideCreatePlugin( 1166 if (GetContentClient()->renderer()->OverrideCreatePlugin(
1167 this, frame, params, &plugin)) { 1167 this, frame, params, &plugin)) {
1168 return plugin; 1168 return plugin;
1169 } 1169 }
1170 1170
1171 if (base::UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) { 1171 if (base::UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) {
1172 return render_view_->GetBrowserPluginManager()->CreateBrowserPlugin( 1172 return render_view_->GetBrowserPluginManager()->CreateBrowserPlugin(
(...skipping 12 matching lines...) Expand all
1185 1185
1186 WebPluginParams params_to_use = params; 1186 WebPluginParams params_to_use = params;
1187 params_to_use.mimeType = WebString::fromUTF8(mime_type); 1187 params_to_use.mimeType = WebString::fromUTF8(mime_type);
1188 return CreatePlugin(frame, info, params_to_use); 1188 return CreatePlugin(frame, info, params_to_use);
1189 #else 1189 #else
1190 return NULL; 1190 return NULL;
1191 #endif // defined(ENABLE_PLUGINS) 1191 #endif // defined(ENABLE_PLUGINS)
1192 } 1192 }
1193 1193
1194 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( 1194 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
1195 blink::WebFrame* frame, 1195 blink::WebLocalFrame* frame,
1196 const blink::WebURL& url, 1196 const blink::WebURL& url,
1197 blink::WebMediaPlayerClient* client) { 1197 blink::WebMediaPlayerClient* client) {
1198 DCHECK(!frame_ || frame_ == frame); 1198 DCHECK(!frame_ || frame_ == frame);
1199 // TODO(nasko): Moving the implementation here involves moving a few media 1199 // TODO(nasko): Moving the implementation here involves moving a few media
1200 // related client objects here or referencing them in the RenderView. Needs 1200 // related client objects here or referencing them in the RenderView. Needs
1201 // more work to understand where the proper place for those objects is. 1201 // more work to understand where the proper place for those objects is.
1202 return render_view_->CreateMediaPlayer(this, frame, url, client); 1202 return render_view_->CreateMediaPlayer(this, frame, url, client);
1203 } 1203 }
1204 1204
1205 blink::WebContentDecryptionModule* 1205 blink::WebContentDecryptionModule*
1206 RenderFrameImpl::createContentDecryptionModule( 1206 RenderFrameImpl::createContentDecryptionModule(
1207 blink::WebFrame* frame, 1207 blink::WebLocalFrame* frame,
1208 const blink::WebSecurityOrigin& security_origin, 1208 const blink::WebSecurityOrigin& security_origin,
1209 const blink::WebString& key_system) { 1209 const blink::WebString& key_system) {
1210 DCHECK(!frame_ || frame_ == frame); 1210 DCHECK(!frame_ || frame_ == frame);
1211 return WebContentDecryptionModuleImpl::Create( 1211 return WebContentDecryptionModuleImpl::Create(
1212 frame, security_origin, key_system); 1212 frame, security_origin, key_system);
1213 } 1213 }
1214 1214
1215 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost( 1215 blink::WebApplicationCacheHost* RenderFrameImpl::createApplicationCacheHost(
1216 blink::WebFrame* frame, 1216 blink::WebLocalFrame* frame,
1217 blink::WebApplicationCacheHostClient* client) { 1217 blink::WebApplicationCacheHostClient* client) {
1218 if (!frame || !frame->view()) 1218 if (!frame || !frame->view())
1219 return NULL; 1219 return NULL;
1220 DCHECK(!frame_ || frame_ == frame); 1220 DCHECK(!frame_ || frame_ == frame);
1221 return new RendererWebApplicationCacheHostImpl( 1221 return new RendererWebApplicationCacheHostImpl(
1222 RenderViewImpl::FromWebView(frame->view()), client, 1222 RenderViewImpl::FromWebView(frame->view()), client,
1223 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy()); 1223 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy());
1224 } 1224 }
1225 1225
1226 blink::WebWorkerPermissionClientProxy* 1226 blink::WebWorkerPermissionClientProxy*
1227 RenderFrameImpl::createWorkerPermissionClientProxy(blink::WebFrame* frame) { 1227 RenderFrameImpl::createWorkerPermissionClientProxy(
1228 blink::WebLocalFrame* frame) {
1228 if (!frame || !frame->view()) 1229 if (!frame || !frame->view())
1229 return NULL; 1230 return NULL;
1230 DCHECK(!frame_ || frame_ == frame); 1231 DCHECK(!frame_ || frame_ == frame);
1231 return GetContentClient()->renderer()->CreateWorkerPermissionClientProxy( 1232 return GetContentClient()->renderer()->CreateWorkerPermissionClientProxy(
1232 this, frame); 1233 this, frame);
1233 } 1234 }
1234 1235
1235 blink::WebCookieJar* RenderFrameImpl::cookieJar(blink::WebFrame* frame) { 1236 blink::WebCookieJar* RenderFrameImpl::cookieJar(blink::WebLocalFrame* frame) {
1236 DCHECK(!frame_ || frame_ == frame); 1237 DCHECK(!frame_ || frame_ == frame);
1237 return &cookie_jar_; 1238 return &cookie_jar_;
1238 } 1239 }
1239 1240
1240 blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider( 1241 blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider(
1241 blink::WebFrame* frame) { 1242 blink::WebLocalFrame* frame) {
1242 DCHECK(!frame_ || frame_ == frame); 1243 DCHECK(!frame_ || frame_ == frame);
1243 // At this point we should have non-null data source. 1244 // At this point we should have non-null data source.
1244 DCHECK(frame->dataSource()); 1245 DCHECK(frame->dataSource());
1245 ServiceWorkerNetworkProvider* provider = 1246 ServiceWorkerNetworkProvider* provider =
1246 ServiceWorkerNetworkProvider::FromDocumentState( 1247 ServiceWorkerNetworkProvider::FromDocumentState(
1247 DocumentState::FromDataSource(frame->dataSource())); 1248 DocumentState::FromDataSource(frame->dataSource()));
1248 int provider_id = provider ? 1249 int provider_id = provider ?
1249 provider->provider_id() : 1250 provider->provider_id() :
1250 kInvalidServiceWorkerProviderId; 1251 kInvalidServiceWorkerProviderId;
1251 return new WebServiceWorkerProviderImpl( 1252 return new WebServiceWorkerProviderImpl(
1252 ChildThread::current()->thread_safe_sender(), provider_id); 1253 ChildThread::current()->thread_safe_sender(), provider_id);
1253 } 1254 }
1254 1255
1255 void RenderFrameImpl::didAccessInitialDocument(blink::WebFrame* frame) { 1256 void RenderFrameImpl::didAccessInitialDocument(blink::WebLocalFrame* frame) {
1256 DCHECK(!frame_ || frame_ == frame); 1257 DCHECK(!frame_ || frame_ == frame);
1257 render_view_->didAccessInitialDocument(frame); 1258 render_view_->didAccessInitialDocument(frame);
1258 } 1259 }
1259 1260
1260 blink::WebFrame* RenderFrameImpl::createChildFrame( 1261 blink::WebFrame* RenderFrameImpl::createChildFrame(
1261 blink::WebFrame* parent, 1262 blink::WebLocalFrame* parent,
1262 const blink::WebString& name) { 1263 const blink::WebString& name) {
1263 // Synchronously notify the browser of a child frame creation to get the 1264 // Synchronously notify the browser of a child frame creation to get the
1264 // routing_id for the RenderFrame. 1265 // routing_id for the RenderFrame.
1265 int child_routing_id = MSG_ROUTING_NONE; 1266 int child_routing_id = MSG_ROUTING_NONE;
1266 Send(new FrameHostMsg_CreateChildFrame(routing_id_, 1267 Send(new FrameHostMsg_CreateChildFrame(routing_id_,
1267 base::UTF16ToUTF8(name), 1268 base::UTF16ToUTF8(name),
1268 &child_routing_id)); 1269 &child_routing_id));
1269 // Allocation of routing id failed, so we can't create a child frame. This can 1270 // Allocation of routing id failed, so we can't create a child frame. This can
1270 // happen if this RenderFrameImpl's IPCs are being filtered when in swapped 1271 // happen if this RenderFrameImpl's IPCs are being filtered when in swapped
1271 // out state. 1272 // out state.
1272 if (child_routing_id == MSG_ROUTING_NONE) { 1273 if (child_routing_id == MSG_ROUTING_NONE) {
1273 base::debug::Alias(parent); 1274 base::debug::Alias(parent);
1274 base::debug::Alias(&routing_id_); 1275 base::debug::Alias(&routing_id_);
1275 bool render_view_is_swapped_out = GetRenderWidget()->is_swapped_out(); 1276 bool render_view_is_swapped_out = GetRenderWidget()->is_swapped_out();
1276 base::debug::Alias(&render_view_is_swapped_out); 1277 base::debug::Alias(&render_view_is_swapped_out);
1277 bool render_view_is_closing = GetRenderWidget()->closing(); 1278 bool render_view_is_closing = GetRenderWidget()->closing();
1278 base::debug::Alias(&render_view_is_closing); 1279 base::debug::Alias(&render_view_is_closing);
1279 base::debug::Alias(&is_swapped_out_); 1280 base::debug::Alias(&is_swapped_out_);
1280 base::debug::DumpWithoutCrashing(); 1281 base::debug::DumpWithoutCrashing();
1281 return NULL; 1282 return NULL;
1282 } 1283 }
1283 1284
1284 RenderFrameImpl* child_render_frame = RenderFrameImpl::Create( 1285 RenderFrameImpl* child_render_frame = RenderFrameImpl::Create(
1285 render_view_.get(), child_routing_id); 1286 render_view_.get(), child_routing_id);
1286 blink::WebFrame* web_frame = WebFrame::create(child_render_frame); 1287 blink::WebLocalFrame* web_frame = WebLocalFrame::create(child_render_frame);
1287 parent->appendChild(web_frame); 1288 parent->appendChild(web_frame);
1288 child_render_frame->SetWebFrame(web_frame); 1289 child_render_frame->SetWebFrame(web_frame);
1289 1290
1290 return web_frame; 1291 return web_frame;
1291 } 1292 }
1292 1293
1293 void RenderFrameImpl::didDisownOpener(blink::WebFrame* frame) { 1294 void RenderFrameImpl::didDisownOpener(blink::WebLocalFrame* frame) {
1294 DCHECK(!frame_ || frame_ == frame); 1295 DCHECK(!frame_ || frame_ == frame);
1295 render_view_->didDisownOpener(frame); 1296 render_view_->didDisownOpener(frame);
1296 } 1297 }
1297 1298
1298 void RenderFrameImpl::frameDetached(blink::WebFrame* frame) { 1299 void RenderFrameImpl::frameDetached(blink::WebFrame* frame) {
1299 // NOTE: This function is called on the frame that is being detached and not 1300 // NOTE: This function is called on the frame that is being detached and not
1300 // the parent frame. This is different from createChildFrame() which is 1301 // the parent frame. This is different from createChildFrame() which is
1301 // called on the parent frame. 1302 // called on the parent frame.
1302 CHECK(!is_detaching_); 1303 CHECK(!is_detaching_);
1303 DCHECK(!frame_ || frame_ == frame); 1304 DCHECK(!frame_ || frame_ == frame);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 Send(new FrameHostMsg_FrameFocused(routing_id_)); 1344 Send(new FrameHostMsg_FrameFocused(routing_id_));
1344 } 1345 }
1345 1346
1346 void RenderFrameImpl::willClose(blink::WebFrame* frame) { 1347 void RenderFrameImpl::willClose(blink::WebFrame* frame) {
1347 DCHECK(!frame_ || frame_ == frame); 1348 DCHECK(!frame_ || frame_ == frame);
1348 // Call back to RenderViewImpl for observers to be notified. 1349 // Call back to RenderViewImpl for observers to be notified.
1349 // TODO(nasko): Remove once we have RenderFrameObserver. 1350 // TODO(nasko): Remove once we have RenderFrameObserver.
1350 render_view_->willClose(frame); 1351 render_view_->willClose(frame);
1351 } 1352 }
1352 1353
1353 void RenderFrameImpl::didChangeName(blink::WebFrame* frame, 1354 void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame,
1354 const blink::WebString& name) { 1355 const blink::WebString& name) {
1355 DCHECK(!frame_ || frame_ == frame); 1356 DCHECK(!frame_ || frame_ == frame);
1356 if (!render_view_->renderer_preferences_.report_frame_name_changes) 1357 if (!render_view_->renderer_preferences_.report_frame_name_changes)
1357 return; 1358 return;
1358 1359
1359 render_view_->Send( 1360 render_view_->Send(
1360 new ViewHostMsg_UpdateFrameName(render_view_->GetRoutingID(), 1361 new ViewHostMsg_UpdateFrameName(render_view_->GetRoutingID(),
1361 routing_id_, 1362 routing_id_,
1362 !frame->parent(), 1363 !frame->parent(),
1363 base::UTF16ToUTF8(name))); 1364 base::UTF16ToUTF8(name)));
1364 } 1365 }
1365 1366
1366 void RenderFrameImpl::didMatchCSS( 1367 void RenderFrameImpl::didMatchCSS(
1367 blink::WebFrame* frame, 1368 blink::WebLocalFrame* frame,
1368 const blink::WebVector<blink::WebString>& newly_matching_selectors, 1369 const blink::WebVector<blink::WebString>& newly_matching_selectors,
1369 const blink::WebVector<blink::WebString>& stopped_matching_selectors) { 1370 const blink::WebVector<blink::WebString>& stopped_matching_selectors) {
1370 DCHECK(!frame_ || frame_ == frame); 1371 DCHECK(!frame_ || frame_ == frame);
1371 render_view_->didMatchCSS( 1372 render_view_->didMatchCSS(
1372 frame, newly_matching_selectors, stopped_matching_selectors); 1373 frame, newly_matching_selectors, stopped_matching_selectors);
1373 } 1374 }
1374 1375
1375 void RenderFrameImpl::loadURLExternally(blink::WebFrame* frame, 1376 void RenderFrameImpl::loadURLExternally(blink::WebLocalFrame* frame,
1376 const blink::WebURLRequest& request, 1377 const blink::WebURLRequest& request,
1377 blink::WebNavigationPolicy policy) { 1378 blink::WebNavigationPolicy policy) {
1378 DCHECK(!frame_ || frame_ == frame); 1379 DCHECK(!frame_ || frame_ == frame);
1379 loadURLExternally(frame, request, policy, WebString()); 1380 loadURLExternally(frame, request, policy, WebString());
1380 } 1381 }
1381 1382
1382 void RenderFrameImpl::loadURLExternally( 1383 void RenderFrameImpl::loadURLExternally(
1383 blink::WebFrame* frame, 1384 blink::WebLocalFrame* frame,
1384 const blink::WebURLRequest& request, 1385 const blink::WebURLRequest& request,
1385 blink::WebNavigationPolicy policy, 1386 blink::WebNavigationPolicy policy,
1386 const blink::WebString& suggested_name) { 1387 const blink::WebString& suggested_name) {
1387 DCHECK(!frame_ || frame_ == frame); 1388 DCHECK(!frame_ || frame_ == frame);
1388 Referrer referrer(RenderViewImpl::GetReferrerFromRequest(frame, request)); 1389 Referrer referrer(RenderViewImpl::GetReferrerFromRequest(frame, request));
1389 if (policy == blink::WebNavigationPolicyDownload) { 1390 if (policy == blink::WebNavigationPolicyDownload) {
1390 render_view_->Send(new ViewHostMsg_DownloadUrl(render_view_->GetRoutingID(), 1391 render_view_->Send(new ViewHostMsg_DownloadUrl(render_view_->GetRoutingID(),
1391 request.url(), referrer, 1392 request.url(), referrer,
1392 suggested_name)); 1393 suggested_name));
1393 } else { 1394 } else {
1394 OpenURL(frame, request.url(), referrer, policy); 1395 OpenURL(frame, request.url(), referrer, policy);
1395 } 1396 }
1396 } 1397 }
1397 1398
1398 blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation( 1399 blink::WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
1399 blink::WebFrame* frame, 1400 blink::WebLocalFrame* frame,
1400 blink::WebDataSource::ExtraData* extra_data, 1401 blink::WebDataSource::ExtraData* extra_data,
1401 const blink::WebURLRequest& request, 1402 const blink::WebURLRequest& request,
1402 blink::WebNavigationType type, 1403 blink::WebNavigationType type,
1403 blink::WebNavigationPolicy default_policy, 1404 blink::WebNavigationPolicy default_policy,
1404 bool is_redirect) { 1405 bool is_redirect) {
1405 DCHECK(!frame_ || frame_ == frame); 1406 DCHECK(!frame_ || frame_ == frame);
1406 return DecidePolicyForNavigation( 1407 return DecidePolicyForNavigation(
1407 this, frame, extra_data, request, type, default_policy, is_redirect); 1408 this, frame, extra_data, request, type, default_policy, is_redirect);
1408 } 1409 }
1409 1410
1410 void RenderFrameImpl::willSendSubmitEvent(blink::WebFrame* frame, 1411 void RenderFrameImpl::willSendSubmitEvent(blink::WebLocalFrame* frame,
1411 const blink::WebFormElement& form) { 1412 const blink::WebFormElement& form) {
1412 DCHECK(!frame_ || frame_ == frame); 1413 DCHECK(!frame_ || frame_ == frame);
1413 // Call back to RenderViewImpl for observers to be notified. 1414 // Call back to RenderViewImpl for observers to be notified.
1414 // TODO(nasko): Remove once we have RenderFrameObserver. 1415 // TODO(nasko): Remove once we have RenderFrameObserver.
1415 render_view_->willSendSubmitEvent(frame, form); 1416 render_view_->willSendSubmitEvent(frame, form);
1416 } 1417 }
1417 1418
1418 void RenderFrameImpl::willSubmitForm(blink::WebFrame* frame, 1419 void RenderFrameImpl::willSubmitForm(blink::WebLocalFrame* frame,
1419 const blink::WebFormElement& form) { 1420 const blink::WebFormElement& form) {
1420 DCHECK(!frame_ || frame_ == frame); 1421 DCHECK(!frame_ || frame_ == frame);
1421 DocumentState* document_state = 1422 DocumentState* document_state =
1422 DocumentState::FromDataSource(frame->provisionalDataSource()); 1423 DocumentState::FromDataSource(frame->provisionalDataSource());
1423 NavigationState* navigation_state = document_state->navigation_state(); 1424 NavigationState* navigation_state = document_state->navigation_state();
1424 InternalDocumentStateData* internal_data = 1425 InternalDocumentStateData* internal_data =
1425 InternalDocumentStateData::FromDocumentState(document_state); 1426 InternalDocumentStateData::FromDocumentState(document_state);
1426 1427
1427 if (PageTransitionCoreTypeIs(navigation_state->transition_type(), 1428 if (PageTransitionCoreTypeIs(navigation_state->transition_type(),
1428 PAGE_TRANSITION_LINK)) { 1429 PAGE_TRANSITION_LINK)) {
1429 navigation_state->set_transition_type(PAGE_TRANSITION_FORM_SUBMIT); 1430 navigation_state->set_transition_type(PAGE_TRANSITION_FORM_SUBMIT);
1430 } 1431 }
1431 1432
1432 // Save these to be processed when the ensuing navigation is committed. 1433 // Save these to be processed when the ensuing navigation is committed.
1433 WebSearchableFormData web_searchable_form_data(form); 1434 WebSearchableFormData web_searchable_form_data(form);
1434 internal_data->set_searchable_form_url(web_searchable_form_data.url()); 1435 internal_data->set_searchable_form_url(web_searchable_form_data.url());
1435 internal_data->set_searchable_form_encoding( 1436 internal_data->set_searchable_form_encoding(
1436 web_searchable_form_data.encoding().utf8()); 1437 web_searchable_form_data.encoding().utf8());
1437 1438
1438 // Call back to RenderViewImpl for observers to be notified. 1439 // Call back to RenderViewImpl for observers to be notified.
1439 // TODO(nasko): Remove once we have RenderFrameObserver. 1440 // TODO(nasko): Remove once we have RenderFrameObserver.
1440 render_view_->willSubmitForm(frame, form); 1441 render_view_->willSubmitForm(frame, form);
1441 } 1442 }
1442 1443
1443 void RenderFrameImpl::didCreateDataSource(blink::WebFrame* frame, 1444 void RenderFrameImpl::didCreateDataSource(blink::WebLocalFrame* frame,
1444 blink::WebDataSource* datasource) { 1445 blink::WebDataSource* datasource) {
1445 DCHECK(!frame_ || frame_ == frame); 1446 DCHECK(!frame_ || frame_ == frame);
1446 1447
1447 // TODO(nasko): Move implementation here. Needed state: 1448 // TODO(nasko): Move implementation here. Needed state:
1448 // * pending_navigation_params_ 1449 // * pending_navigation_params_
1449 // * webview 1450 // * webview
1450 // Needed methods: 1451 // Needed methods:
1451 // * PopulateDocumentStateFromPending 1452 // * PopulateDocumentStateFromPending
1452 // * CreateNavigationStateFromPending 1453 // * CreateNavigationStateFromPending
1453 render_view_->didCreateDataSource(frame, datasource); 1454 render_view_->didCreateDataSource(frame, datasource);
1454 1455
1455 // Create the serviceworker's per-document network observing object. 1456 // Create the serviceworker's per-document network observing object.
1456 scoped_ptr<ServiceWorkerNetworkProvider> 1457 scoped_ptr<ServiceWorkerNetworkProvider>
1457 network_provider(new ServiceWorkerNetworkProvider()); 1458 network_provider(new ServiceWorkerNetworkProvider());
1458 ServiceWorkerNetworkProvider::AttachToDocumentState( 1459 ServiceWorkerNetworkProvider::AttachToDocumentState(
1459 DocumentState::FromDataSource(datasource), 1460 DocumentState::FromDataSource(datasource),
1460 network_provider.Pass()); 1461 network_provider.Pass());
1461 } 1462 }
1462 1463
1463 void RenderFrameImpl::didStartProvisionalLoad(blink::WebFrame* frame) { 1464 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame) {
1464 DCHECK(!frame_ || frame_ == frame); 1465 DCHECK(!frame_ || frame_ == frame);
1465 WebDataSource* ds = frame->provisionalDataSource(); 1466 WebDataSource* ds = frame->provisionalDataSource();
1466 1467
1467 // In fast/loader/stop-provisional-loads.html, we abort the load before this 1468 // In fast/loader/stop-provisional-loads.html, we abort the load before this
1468 // callback is invoked. 1469 // callback is invoked.
1469 if (!ds) 1470 if (!ds)
1470 return; 1471 return;
1471 1472
1472 DocumentState* document_state = DocumentState::FromDataSource(ds); 1473 DocumentState* document_state = DocumentState::FromDataSource(ds);
1473 1474
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1508 RenderFrameObserver, observers_, 1509 RenderFrameObserver, observers_,
1509 DidStartProvisionalLoad()); 1510 DidStartProvisionalLoad());
1510 1511
1511 int parent_routing_id = frame->parent() ? 1512 int parent_routing_id = frame->parent() ?
1512 FromWebFrame(frame->parent())->GetRoutingID() : -1; 1513 FromWebFrame(frame->parent())->GetRoutingID() : -1;
1513 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame( 1514 Send(new FrameHostMsg_DidStartProvisionalLoadForFrame(
1514 routing_id_, parent_routing_id, ds->request().url())); 1515 routing_id_, parent_routing_id, ds->request().url()));
1515 } 1516 }
1516 1517
1517 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad( 1518 void RenderFrameImpl::didReceiveServerRedirectForProvisionalLoad(
1518 blink::WebFrame* frame) { 1519 blink::WebLocalFrame* frame) {
1519 DCHECK(!frame_ || frame_ == frame); 1520 DCHECK(!frame_ || frame_ == frame);
1520 if (frame->parent()) 1521 if (frame->parent())
1521 return; 1522 return;
1522 // Received a redirect on the main frame. 1523 // Received a redirect on the main frame.
1523 WebDataSource* data_source = frame->provisionalDataSource(); 1524 WebDataSource* data_source = frame->provisionalDataSource();
1524 if (!data_source) { 1525 if (!data_source) {
1525 // Should only be invoked when we have a data source. 1526 // Should only be invoked when we have a data source.
1526 NOTREACHED(); 1527 NOTREACHED();
1527 return; 1528 return;
1528 } 1529 }
1529 std::vector<GURL> redirects; 1530 std::vector<GURL> redirects;
1530 GetRedirectChain(data_source, &redirects); 1531 GetRedirectChain(data_source, &redirects);
1531 if (redirects.size() >= 2) { 1532 if (redirects.size() >= 2) {
1532 Send(new FrameHostMsg_DidRedirectProvisionalLoad( 1533 Send(new FrameHostMsg_DidRedirectProvisionalLoad(
1533 routing_id_, 1534 routing_id_,
1534 render_view_->page_id_, 1535 render_view_->page_id_,
1535 redirects[redirects.size() - 2], 1536 redirects[redirects.size() - 2],
1536 redirects.back())); 1537 redirects.back()));
1537 } 1538 }
1538 } 1539 }
1539 1540
1540 void RenderFrameImpl::didFailProvisionalLoad( 1541 void RenderFrameImpl::didFailProvisionalLoad(blink::WebLocalFrame* frame,
1541 blink::WebFrame* frame, 1542 const blink::WebURLError& error) {
1542 const blink::WebURLError& error) {
1543 DCHECK(!frame_ || frame_ == frame); 1543 DCHECK(!frame_ || frame_ == frame);
1544 WebDataSource* ds = frame->provisionalDataSource(); 1544 WebDataSource* ds = frame->provisionalDataSource();
1545 DCHECK(ds); 1545 DCHECK(ds);
1546 1546
1547 const WebURLRequest& failed_request = ds->request(); 1547 const WebURLRequest& failed_request = ds->request();
1548 1548
1549 // Call out to RenderViewImpl, so observers are notified. 1549 // Call out to RenderViewImpl, so observers are notified.
1550 render_view_->didFailProvisionalLoad(frame, error); 1550 render_view_->didFailProvisionalLoad(frame, error);
1551 1551
1552 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, 1552 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1631 document_state->request_time(); 1631 document_state->request_time();
1632 render_view_->pending_navigation_params_->should_replace_current_entry = 1632 render_view_->pending_navigation_params_->should_replace_current_entry =
1633 replace; 1633 replace;
1634 } 1634 }
1635 1635
1636 // Load an error page. 1636 // Load an error page.
1637 render_view_->LoadNavigationErrorPage( 1637 render_view_->LoadNavigationErrorPage(
1638 frame, failed_request, error, replace); 1638 frame, failed_request, error, replace);
1639 } 1639 }
1640 1640
1641 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebFrame* frame, 1641 void RenderFrameImpl::didCommitProvisionalLoad(blink::WebLocalFrame* frame,
1642 bool is_new_navigation) { 1642 bool is_new_navigation) {
1643 DCHECK(!frame_ || frame_ == frame); 1643 DCHECK(!frame_ || frame_ == frame);
1644 DocumentState* document_state = 1644 DocumentState* document_state =
1645 DocumentState::FromDataSource(frame->dataSource()); 1645 DocumentState::FromDataSource(frame->dataSource());
1646 NavigationState* navigation_state = document_state->navigation_state(); 1646 NavigationState* navigation_state = document_state->navigation_state();
1647 InternalDocumentStateData* internal_data = 1647 InternalDocumentStateData* internal_data =
1648 InternalDocumentStateData::FromDocumentState(document_state); 1648 InternalDocumentStateData::FromDocumentState(document_state);
1649 1649
1650 if (document_state->commit_load_time().is_null()) 1650 if (document_state->commit_load_time().is_null())
1651 document_state->set_commit_load_time(Time::Now()); 1651 document_state->set_commit_load_time(Time::Now());
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 // navigation without valid HistoryItem state, WebCore will think it is a 1724 // navigation without valid HistoryItem state, WebCore will think it is a
1725 // new navigation. 1725 // new navigation.
1726 navigation_state->set_request_committed(true); 1726 navigation_state->set_request_committed(true);
1727 1727
1728 UpdateURL(frame); 1728 UpdateURL(frame);
1729 1729
1730 // Check whether we have new encoding name. 1730 // Check whether we have new encoding name.
1731 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 1731 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
1732 } 1732 }
1733 1733
1734 void RenderFrameImpl::didClearWindowObject(blink::WebFrame* frame, 1734 void RenderFrameImpl::didClearWindowObject(blink::WebLocalFrame* frame,
1735 int world_id) { 1735 int world_id) {
1736 DCHECK(!frame_ || frame_ == frame); 1736 DCHECK(!frame_ || frame_ == frame);
1737 // TODO(nasko): Move implementation here. Needed state: 1737 // TODO(nasko): Move implementation here. Needed state:
1738 // * enabled_bindings_ 1738 // * enabled_bindings_
1739 // * dom_automation_controller_ 1739 // * dom_automation_controller_
1740 // * stats_collection_controller_ 1740 // * stats_collection_controller_
1741 1741
1742 render_view_->didClearWindowObject(frame, world_id); 1742 render_view_->didClearWindowObject(frame, world_id);
1743 1743
1744 // Only install controllers into the main world. 1744 // Only install controllers into the main world.
1745 if (world_id) 1745 if (world_id)
1746 return; 1746 return;
1747 1747
1748 if (render_view_->GetEnabledBindings() & BINDINGS_POLICY_DOM_AUTOMATION) 1748 if (render_view_->GetEnabledBindings() & BINDINGS_POLICY_DOM_AUTOMATION)
1749 DomAutomationController::Install(this, frame); 1749 DomAutomationController::Install(this, frame);
1750 1750
1751 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, 1751 FOR_EACH_OBSERVER(RenderFrameObserver, observers_,
1752 DidClearWindowObject(world_id)); 1752 DidClearWindowObject(world_id));
1753 } 1753 }
1754 1754
1755 void RenderFrameImpl::didCreateDocumentElement(blink::WebFrame* frame) { 1755 void RenderFrameImpl::didCreateDocumentElement(blink::WebLocalFrame* frame) {
1756 DCHECK(!frame_ || frame_ == frame); 1756 DCHECK(!frame_ || frame_ == frame);
1757 1757
1758 // Notify the browser about non-blank documents loading in the top frame. 1758 // Notify the browser about non-blank documents loading in the top frame.
1759 GURL url = frame->document().url(); 1759 GURL url = frame->document().url();
1760 if (url.is_valid() && url.spec() != kAboutBlankURL) { 1760 if (url.is_valid() && url.spec() != kAboutBlankURL) {
1761 // TODO(nasko): Check if webview()->mainFrame() is the same as the 1761 // TODO(nasko): Check if webview()->mainFrame() is the same as the
1762 // frame->tree()->top(). 1762 // frame->tree()->top().
1763 if (frame == render_view_->webview()->mainFrame()) { 1763 if (frame == render_view_->webview()->mainFrame()) {
1764 render_view_->Send(new ViewHostMsg_DocumentAvailableInMainFrame( 1764 render_view_->Send(new ViewHostMsg_DocumentAvailableInMainFrame(
1765 render_view_->GetRoutingID())); 1765 render_view_->GetRoutingID()));
1766 } 1766 }
1767 } 1767 }
1768 1768
1769 // Call back to RenderViewImpl for observers to be notified. 1769 // Call back to RenderViewImpl for observers to be notified.
1770 // TODO(nasko): Remove once we have RenderFrameObserver. 1770 // TODO(nasko): Remove once we have RenderFrameObserver.
1771 render_view_->didCreateDocumentElement(frame); 1771 render_view_->didCreateDocumentElement(frame);
1772 } 1772 }
1773 1773
1774 void RenderFrameImpl::didReceiveTitle(blink::WebFrame* frame, 1774 void RenderFrameImpl::didReceiveTitle(blink::WebLocalFrame* frame,
1775 const blink::WebString& title, 1775 const blink::WebString& title,
1776 blink::WebTextDirection direction) { 1776 blink::WebTextDirection direction) {
1777 DCHECK(!frame_ || frame_ == frame); 1777 DCHECK(!frame_ || frame_ == frame);
1778 // TODO(nasko): Investigate wheather implementation should move here. 1778 // TODO(nasko): Investigate wheather implementation should move here.
1779 render_view_->didReceiveTitle(frame, title, direction); 1779 render_view_->didReceiveTitle(frame, title, direction);
1780 } 1780 }
1781 1781
1782 void RenderFrameImpl::didChangeIcon(blink::WebFrame* frame, 1782 void RenderFrameImpl::didChangeIcon(blink::WebLocalFrame* frame,
1783 blink::WebIconURL::Type icon_type) { 1783 blink::WebIconURL::Type icon_type) {
1784 DCHECK(!frame_ || frame_ == frame); 1784 DCHECK(!frame_ || frame_ == frame);
1785 // TODO(nasko): Investigate wheather implementation should move here. 1785 // TODO(nasko): Investigate wheather implementation should move here.
1786 render_view_->didChangeIcon(frame, icon_type); 1786 render_view_->didChangeIcon(frame, icon_type);
1787 } 1787 }
1788 1788
1789 void RenderFrameImpl::didFinishDocumentLoad(blink::WebFrame* frame) { 1789 void RenderFrameImpl::didFinishDocumentLoad(blink::WebLocalFrame* frame) {
1790 DCHECK(!frame_ || frame_ == frame); 1790 DCHECK(!frame_ || frame_ == frame);
1791 WebDataSource* ds = frame->dataSource(); 1791 WebDataSource* ds = frame->dataSource();
1792 DocumentState* document_state = DocumentState::FromDataSource(ds); 1792 DocumentState* document_state = DocumentState::FromDataSource(ds);
1793 document_state->set_finish_document_load_time(Time::Now()); 1793 document_state->set_finish_document_load_time(Time::Now());
1794 1794
1795 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_)); 1795 Send(new FrameHostMsg_DidFinishDocumentLoad(routing_id_));
1796 1796
1797 // Call back to RenderViewImpl for observers to be notified. 1797 // Call back to RenderViewImpl for observers to be notified.
1798 // TODO(nasko): Remove once we have RenderFrameObserver for this method. 1798 // TODO(nasko): Remove once we have RenderFrameObserver for this method.
1799 render_view_->didFinishDocumentLoad(frame); 1799 render_view_->didFinishDocumentLoad(frame);
1800 1800
1801 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad()); 1801 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishDocumentLoad());
1802 1802
1803 // Check whether we have new encoding name. 1803 // Check whether we have new encoding name.
1804 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8()); 1804 render_view_->UpdateEncoding(frame, frame->view()->pageEncoding().utf8());
1805 } 1805 }
1806 1806
1807 void RenderFrameImpl::didHandleOnloadEvents(blink::WebFrame* frame) { 1807 void RenderFrameImpl::didHandleOnloadEvents(blink::WebLocalFrame* frame) {
1808 DCHECK(!frame_ || frame_ == frame); 1808 DCHECK(!frame_ || frame_ == frame);
1809 // TODO(nasko): Move implementation here. Needed state: 1809 // TODO(nasko): Move implementation here. Needed state:
1810 // * page_id_ 1810 // * page_id_
1811 render_view_->didHandleOnloadEvents(frame); 1811 render_view_->didHandleOnloadEvents(frame);
1812 } 1812 }
1813 1813
1814 void RenderFrameImpl::didFailLoad(blink::WebFrame* frame, 1814 void RenderFrameImpl::didFailLoad(blink::WebLocalFrame* frame,
1815 const blink::WebURLError& error) { 1815 const blink::WebURLError& error) {
1816 DCHECK(!frame_ || frame_ == frame); 1816 DCHECK(!frame_ || frame_ == frame);
1817 // TODO(nasko): Move implementation here. No state needed. 1817 // TODO(nasko): Move implementation here. No state needed.
1818 WebDataSource* ds = frame->dataSource(); 1818 WebDataSource* ds = frame->dataSource();
1819 DCHECK(ds); 1819 DCHECK(ds);
1820 1820
1821 render_view_->didFailLoad(frame, error); 1821 render_view_->didFailLoad(frame, error);
1822 1822
1823 const WebURLRequest& failed_request = ds->request(); 1823 const WebURLRequest& failed_request = ds->request();
1824 base::string16 error_description; 1824 base::string16 error_description;
1825 GetContentClient()->renderer()->GetNavigationErrorStrings( 1825 GetContentClient()->renderer()->GetNavigationErrorStrings(
1826 render_view_.get(), 1826 render_view_.get(),
1827 frame, 1827 frame,
1828 failed_request, 1828 failed_request,
1829 error, 1829 error,
1830 NULL, 1830 NULL,
1831 &error_description); 1831 &error_description);
1832 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_, 1832 Send(new FrameHostMsg_DidFailLoadWithError(routing_id_,
1833 failed_request.url(), 1833 failed_request.url(),
1834 error.reason, 1834 error.reason,
1835 error_description)); 1835 error_description));
1836 } 1836 }
1837 1837
1838 void RenderFrameImpl::didFinishLoad(blink::WebFrame* frame) { 1838 void RenderFrameImpl::didFinishLoad(blink::WebLocalFrame* frame) {
1839 DCHECK(!frame_ || frame_ == frame); 1839 DCHECK(!frame_ || frame_ == frame);
1840 WebDataSource* ds = frame->dataSource(); 1840 WebDataSource* ds = frame->dataSource();
1841 DocumentState* document_state = DocumentState::FromDataSource(ds); 1841 DocumentState* document_state = DocumentState::FromDataSource(ds);
1842 if (document_state->finish_load_time().is_null()) { 1842 if (document_state->finish_load_time().is_null()) {
1843 if (!frame->parent()) { 1843 if (!frame->parent()) {
1844 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished", 1844 TRACE_EVENT_INSTANT0("WebCore", "LoadFinished",
1845 TRACE_EVENT_SCOPE_PROCESS); 1845 TRACE_EVENT_SCOPE_PROCESS);
1846 } 1846 }
1847 document_state->set_finish_load_time(Time::Now()); 1847 document_state->set_finish_load_time(Time::Now());
1848 } 1848 }
1849 1849
1850 render_view_->didFinishLoad(frame); 1850 render_view_->didFinishLoad(frame);
1851 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishLoad()); 1851 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidFinishLoad());
1852 1852
1853 // Don't send this message while the frame is swapped out. 1853 // Don't send this message while the frame is swapped out.
1854 if (is_swapped_out()) 1854 if (is_swapped_out())
1855 return; 1855 return;
1856 1856
1857 Send(new FrameHostMsg_DidFinishLoad(routing_id_, 1857 Send(new FrameHostMsg_DidFinishLoad(routing_id_,
1858 ds->request().url())); 1858 ds->request().url()));
1859 } 1859 }
1860 1860
1861 void RenderFrameImpl::didNavigateWithinPage(blink::WebFrame* frame, 1861 void RenderFrameImpl::didNavigateWithinPage(blink::WebLocalFrame* frame,
1862 bool is_new_navigation) { 1862 bool is_new_navigation) {
1863 DCHECK(!frame_ || frame_ == frame); 1863 DCHECK(!frame_ || frame_ == frame);
1864 // If this was a reference fragment navigation that we initiated, then we 1864 // If this was a reference fragment navigation that we initiated, then we
1865 // could end up having a non-null pending navigation params. We just need to 1865 // could end up having a non-null pending navigation params. We just need to
1866 // update the ExtraData on the datasource so that others who read the 1866 // update the ExtraData on the datasource so that others who read the
1867 // ExtraData will get the new NavigationState. Similarly, if we did not 1867 // ExtraData will get the new NavigationState. Similarly, if we did not
1868 // initiate this navigation, then we need to take care to reset any pre- 1868 // initiate this navigation, then we need to take care to reset any pre-
1869 // existing navigation state to a content-initiated navigation state. 1869 // existing navigation state to a content-initiated navigation state.
1870 // DidCreateDataSource conveniently takes care of this for us. 1870 // DidCreateDataSource conveniently takes care of this for us.
1871 didCreateDataSource(frame, frame->dataSource()); 1871 didCreateDataSource(frame, frame->dataSource());
1872 1872
1873 DocumentState* document_state = 1873 DocumentState* document_state =
1874 DocumentState::FromDataSource(frame->dataSource()); 1874 DocumentState::FromDataSource(frame->dataSource());
1875 NavigationState* new_state = document_state->navigation_state(); 1875 NavigationState* new_state = document_state->navigation_state();
1876 new_state->set_was_within_same_page(true); 1876 new_state->set_was_within_same_page(true);
1877 1877
1878 didCommitProvisionalLoad(frame, is_new_navigation); 1878 didCommitProvisionalLoad(frame, is_new_navigation);
1879 } 1879 }
1880 1880
1881 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebFrame* frame) { 1881 void RenderFrameImpl::didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame) {
1882 DCHECK(!frame_ || frame_ == frame); 1882 DCHECK(!frame_ || frame_ == frame);
1883 // TODO(nasko): Move implementation here. Needed methods: 1883 // TODO(nasko): Move implementation here. Needed methods:
1884 // * StartNavStateSyncTimerIfNecessary 1884 // * StartNavStateSyncTimerIfNecessary
1885 render_view_->didUpdateCurrentHistoryItem(frame); 1885 render_view_->didUpdateCurrentHistoryItem(frame);
1886 } 1886 }
1887 1887
1888 void RenderFrameImpl::didChangeSelection(bool is_empty_selection) { 1888 void RenderFrameImpl::didChangeSelection(bool is_empty_selection) {
1889 if (!GetRenderWidget()->handling_input_event() && !handling_select_range_) 1889 if (!GetRenderWidget()->handling_input_event() && !handling_select_range_)
1890 return; 1890 return;
1891 1891
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 #endif 1948 #endif
1949 1949
1950 Send(new FrameHostMsg_ContextMenu(routing_id_, params)); 1950 Send(new FrameHostMsg_ContextMenu(routing_id_, params));
1951 } 1951 }
1952 1952
1953 void RenderFrameImpl::clearContextMenu() { 1953 void RenderFrameImpl::clearContextMenu() {
1954 context_menu_node_.reset(); 1954 context_menu_node_.reset();
1955 } 1955 }
1956 1956
1957 void RenderFrameImpl::willRequestAfterPreconnect( 1957 void RenderFrameImpl::willRequestAfterPreconnect(
1958 blink::WebFrame* frame, 1958 blink::WebLocalFrame* frame,
1959 blink::WebURLRequest& request) { 1959 blink::WebURLRequest& request) {
1960 DCHECK(!frame_ || frame_ == frame); 1960 DCHECK(!frame_ || frame_ == frame);
1961 // FIXME(kohei): This will never be set. 1961 // FIXME(kohei): This will never be set.
1962 WebString custom_user_agent; 1962 WebString custom_user_agent;
1963 1963
1964 DCHECK(!request.extraData()); 1964 DCHECK(!request.extraData());
1965 1965
1966 bool was_after_preconnect_request = true; 1966 bool was_after_preconnect_request = true;
1967 // The args after |was_after_preconnect_request| are not used, and set to 1967 // The args after |was_after_preconnect_request| are not used, and set to
1968 // correct values at |willSendRequest|. 1968 // correct values at |willSendRequest|.
1969 RequestExtraData* extra_data = new RequestExtraData(); 1969 RequestExtraData* extra_data = new RequestExtraData();
1970 extra_data->set_custom_user_agent(custom_user_agent); 1970 extra_data->set_custom_user_agent(custom_user_agent);
1971 extra_data->set_was_after_preconnect_request(was_after_preconnect_request); 1971 extra_data->set_was_after_preconnect_request(was_after_preconnect_request);
1972 request.setExtraData(extra_data); 1972 request.setExtraData(extra_data);
1973 } 1973 }
1974 1974
1975 void RenderFrameImpl::willSendRequest( 1975 void RenderFrameImpl::willSendRequest(
1976 blink::WebFrame* frame, 1976 blink::WebLocalFrame* frame,
1977 unsigned identifier, 1977 unsigned identifier,
1978 blink::WebURLRequest& request, 1978 blink::WebURLRequest& request,
1979 const blink::WebURLResponse& redirect_response) { 1979 const blink::WebURLResponse& redirect_response) {
1980 DCHECK(!frame_ || frame_ == frame); 1980 DCHECK(!frame_ || frame_ == frame);
1981 // The request my be empty during tests. 1981 // The request my be empty during tests.
1982 if (request.url().isEmpty()) 1982 if (request.url().isEmpty())
1983 return; 1983 return;
1984 1984
1985 WebFrame* top_frame = frame->top(); 1985 WebFrame* top_frame = frame->top();
1986 if (!top_frame) 1986 if (!top_frame)
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2124 WebString::fromUTF8(i.values())); 2124 WebString::fromUTF8(i.values()));
2125 } 2125 }
2126 } 2126 }
2127 } 2127 }
2128 2128
2129 if (!render_view_->renderer_preferences_.enable_referrers) 2129 if (!render_view_->renderer_preferences_.enable_referrers)
2130 request.setHTTPReferrer(WebString(), blink::WebReferrerPolicyDefault); 2130 request.setHTTPReferrer(WebString(), blink::WebReferrerPolicyDefault);
2131 } 2131 }
2132 2132
2133 void RenderFrameImpl::didReceiveResponse( 2133 void RenderFrameImpl::didReceiveResponse(
2134 blink::WebFrame* frame, 2134 blink::WebLocalFrame* frame,
2135 unsigned identifier, 2135 unsigned identifier,
2136 const blink::WebURLResponse& response) { 2136 const blink::WebURLResponse& response) {
2137 DCHECK(!frame_ || frame_ == frame); 2137 DCHECK(!frame_ || frame_ == frame);
2138 // Only do this for responses that correspond to a provisional data source 2138 // Only do this for responses that correspond to a provisional data source
2139 // of the top-most frame. If we have a provisional data source, then we 2139 // of the top-most frame. If we have a provisional data source, then we
2140 // can't have any sub-resources yet, so we know that this response must 2140 // can't have any sub-resources yet, so we know that this response must
2141 // correspond to a frame load. 2141 // correspond to a frame load.
2142 if (!frame->provisionalDataSource() || frame->parent()) 2142 if (!frame->provisionalDataSource() || frame->parent())
2143 return; 2143 return;
2144 2144
(...skipping 25 matching lines...) Expand all
2170 } 2170 }
2171 InternalDocumentStateData* internal_data = 2171 InternalDocumentStateData* internal_data =
2172 InternalDocumentStateData::FromDocumentState(document_state); 2172 InternalDocumentStateData::FromDocumentState(document_state);
2173 internal_data->set_http_status_code(http_status_code); 2173 internal_data->set_http_status_code(http_status_code);
2174 // Whether or not the http status code actually corresponds to an error is 2174 // Whether or not the http status code actually corresponds to an error is
2175 // only checked when the page is done loading, if |use_error_page| is 2175 // only checked when the page is done loading, if |use_error_page| is
2176 // still true. 2176 // still true.
2177 internal_data->set_use_error_page(true); 2177 internal_data->set_use_error_page(true);
2178 } 2178 }
2179 2179
2180 void RenderFrameImpl::didFinishResourceLoad(blink::WebFrame* frame, 2180 void RenderFrameImpl::didFinishResourceLoad(blink::WebLocalFrame* frame,
2181 unsigned identifier) { 2181 unsigned identifier) {
2182 DCHECK(!frame_ || frame_ == frame); 2182 DCHECK(!frame_ || frame_ == frame);
2183 // TODO(nasko): Move implementation here. Needed state: 2183 // TODO(nasko): Move implementation here. Needed state:
2184 // * devtools_agent_ 2184 // * devtools_agent_
2185 // Needed methods: 2185 // Needed methods:
2186 // * LoadNavigationErrorPage 2186 // * LoadNavigationErrorPage
2187 render_view_->didFinishResourceLoad(frame, identifier); 2187 render_view_->didFinishResourceLoad(frame, identifier);
2188 } 2188 }
2189 2189
2190 void RenderFrameImpl::didLoadResourceFromMemoryCache( 2190 void RenderFrameImpl::didLoadResourceFromMemoryCache(
2191 blink::WebFrame* frame, 2191 blink::WebLocalFrame* frame,
2192 const blink::WebURLRequest& request, 2192 const blink::WebURLRequest& request,
2193 const blink::WebURLResponse& response) { 2193 const blink::WebURLResponse& response) {
2194 DCHECK(!frame_ || frame_ == frame); 2194 DCHECK(!frame_ || frame_ == frame);
2195 // The recipients of this message have no use for data: URLs: they don't 2195 // The recipients of this message have no use for data: URLs: they don't
2196 // affect the page's insecure content list and are not in the disk cache. To 2196 // affect the page's insecure content list and are not in the disk cache. To
2197 // prevent large (1M+) data: URLs from crashing in the IPC system, we simply 2197 // prevent large (1M+) data: URLs from crashing in the IPC system, we simply
2198 // filter them out here. 2198 // filter them out here.
2199 GURL url(request.url()); 2199 GURL url(request.url());
2200 if (url.SchemeIs("data")) 2200 if (url.SchemeIs("data"))
2201 return; 2201 return;
2202 2202
2203 // Let the browser know we loaded a resource from the memory cache. This 2203 // Let the browser know we loaded a resource from the memory cache. This
2204 // message is needed to display the correct SSL indicators. 2204 // message is needed to display the correct SSL indicators.
2205 render_view_->Send(new ViewHostMsg_DidLoadResourceFromMemoryCache( 2205 render_view_->Send(new ViewHostMsg_DidLoadResourceFromMemoryCache(
2206 render_view_->GetRoutingID(), 2206 render_view_->GetRoutingID(),
2207 url, 2207 url,
2208 response.securityInfo(), 2208 response.securityInfo(),
2209 request.httpMethod().utf8(), 2209 request.httpMethod().utf8(),
2210 response.mimeType().utf8(), 2210 response.mimeType().utf8(),
2211 ResourceType::FromTargetType(request.targetType()))); 2211 ResourceType::FromTargetType(request.targetType())));
2212 } 2212 }
2213 2213
2214 void RenderFrameImpl::didDisplayInsecureContent(blink::WebFrame* frame) { 2214 void RenderFrameImpl::didDisplayInsecureContent(blink::WebLocalFrame* frame) {
2215 DCHECK(!frame_ || frame_ == frame); 2215 DCHECK(!frame_ || frame_ == frame);
2216 render_view_->Send(new ViewHostMsg_DidDisplayInsecureContent( 2216 render_view_->Send(new ViewHostMsg_DidDisplayInsecureContent(
2217 render_view_->GetRoutingID())); 2217 render_view_->GetRoutingID()));
2218 } 2218 }
2219 2219
2220 void RenderFrameImpl::didRunInsecureContent( 2220 void RenderFrameImpl::didRunInsecureContent(
2221 blink::WebFrame* frame, 2221 blink::WebLocalFrame* frame,
2222 const blink::WebSecurityOrigin& origin, 2222 const blink::WebSecurityOrigin& origin,
2223 const blink::WebURL& target) { 2223 const blink::WebURL& target) {
2224 DCHECK(!frame_ || frame_ == frame); 2224 DCHECK(!frame_ || frame_ == frame);
2225 render_view_->Send(new ViewHostMsg_DidRunInsecureContent( 2225 render_view_->Send(new ViewHostMsg_DidRunInsecureContent(
2226 render_view_->GetRoutingID(), 2226 render_view_->GetRoutingID(),
2227 origin.toString().utf8(), 2227 origin.toString().utf8(),
2228 target)); 2228 target));
2229 } 2229 }
2230 2230
2231 void RenderFrameImpl::didAbortLoading(blink::WebFrame* frame) { 2231 void RenderFrameImpl::didAbortLoading(blink::WebLocalFrame* frame) {
2232 DCHECK(!frame_ || frame_ == frame); 2232 DCHECK(!frame_ || frame_ == frame);
2233 #if defined(ENABLE_PLUGINS) 2233 #if defined(ENABLE_PLUGINS)
2234 if (frame != render_view_->webview()->mainFrame()) 2234 if (frame != render_view_->webview()->mainFrame())
2235 return; 2235 return;
2236 PluginChannelHost::Broadcast( 2236 PluginChannelHost::Broadcast(
2237 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID())); 2237 new PluginHostMsg_DidAbortLoading(render_view_->GetRoutingID()));
2238 #endif 2238 #endif
2239 } 2239 }
2240 2240
2241 void RenderFrameImpl::didCreateScriptContext(blink::WebFrame* frame, 2241 void RenderFrameImpl::didCreateScriptContext(blink::WebLocalFrame* frame,
2242 v8::Handle<v8::Context> context, 2242 v8::Handle<v8::Context> context,
2243 int extension_group, 2243 int extension_group,
2244 int world_id) { 2244 int world_id) {
2245 DCHECK(!frame_ || frame_ == frame); 2245 DCHECK(!frame_ || frame_ == frame);
2246 GetContentClient()->renderer()->DidCreateScriptContext( 2246 GetContentClient()->renderer()->DidCreateScriptContext(
2247 frame, context, extension_group, world_id); 2247 frame, context, extension_group, world_id);
2248 } 2248 }
2249 2249
2250 void RenderFrameImpl::willReleaseScriptContext(blink::WebFrame* frame, 2250 void RenderFrameImpl::willReleaseScriptContext(blink::WebLocalFrame* frame,
2251 v8::Handle<v8::Context> context, 2251 v8::Handle<v8::Context> context,
2252 int world_id) { 2252 int world_id) {
2253 DCHECK(!frame_ || frame_ == frame); 2253 DCHECK(!frame_ || frame_ == frame);
2254 2254
2255 FOR_EACH_OBSERVER(RenderFrameObserver, 2255 FOR_EACH_OBSERVER(RenderFrameObserver,
2256 observers_, 2256 observers_,
2257 WillReleaseScriptContext(context, world_id)); 2257 WillReleaseScriptContext(context, world_id));
2258 } 2258 }
2259 2259
2260 void RenderFrameImpl::didFirstVisuallyNonEmptyLayout(blink::WebFrame* frame) { 2260 void RenderFrameImpl::didFirstVisuallyNonEmptyLayout(
2261 blink::WebLocalFrame* frame) {
2261 DCHECK(!frame_ || frame_ == frame); 2262 DCHECK(!frame_ || frame_ == frame);
2262 render_view_->didFirstVisuallyNonEmptyLayout(frame); 2263 render_view_->didFirstVisuallyNonEmptyLayout(frame);
2263 } 2264 }
2264 2265
2265 void RenderFrameImpl::didChangeContentsSize(blink::WebFrame* frame, 2266 void RenderFrameImpl::didChangeContentsSize(blink::WebLocalFrame* frame,
2266 const blink::WebSize& size) { 2267 const blink::WebSize& size) {
2267 DCHECK(!frame_ || frame_ == frame); 2268 DCHECK(!frame_ || frame_ == frame);
2268 // TODO(nasko): Move implementation here. Needed state: 2269 // TODO(nasko): Move implementation here. Needed state:
2269 // * cached_has_main_frame_horizontal_scrollbar_ 2270 // * cached_has_main_frame_horizontal_scrollbar_
2270 // * cached_has_main_frame_vertical_scrollbar_ 2271 // * cached_has_main_frame_vertical_scrollbar_
2271 render_view_->didChangeContentsSize(frame, size); 2272 render_view_->didChangeContentsSize(frame, size);
2272 } 2273 }
2273 2274
2274 void RenderFrameImpl::didChangeScrollOffset(blink::WebFrame* frame) { 2275 void RenderFrameImpl::didChangeScrollOffset(blink::WebLocalFrame* frame) {
2275 DCHECK(!frame_ || frame_ == frame); 2276 DCHECK(!frame_ || frame_ == frame);
2276 // TODO(nasko): Move implementation here. Needed methods: 2277 // TODO(nasko): Move implementation here. Needed methods:
2277 // * StartNavStateSyncTimerIfNecessary 2278 // * StartNavStateSyncTimerIfNecessary
2278 render_view_->didChangeScrollOffset(frame); 2279 render_view_->didChangeScrollOffset(frame);
2279 } 2280 }
2280 2281
2281 void RenderFrameImpl::willInsertBody(blink::WebFrame* frame) { 2282 void RenderFrameImpl::willInsertBody(blink::WebLocalFrame* frame) {
2282 DCHECK(!frame_ || frame_ == frame); 2283 DCHECK(!frame_ || frame_ == frame);
2283 if (!frame->parent()) { 2284 if (!frame->parent()) {
2284 render_view_->Send(new ViewHostMsg_WillInsertBody( 2285 render_view_->Send(new ViewHostMsg_WillInsertBody(
2285 render_view_->GetRoutingID())); 2286 render_view_->GetRoutingID()));
2286 } 2287 }
2287 } 2288 }
2288 2289
2289 void RenderFrameImpl::reportFindInPageMatchCount(int request_id, 2290 void RenderFrameImpl::reportFindInPageMatchCount(int request_id,
2290 int count, 2291 int count,
2291 bool final_update) { 2292 bool final_update) {
2292 int active_match_ordinal = -1; // -1 = don't update active match ordinal 2293 int active_match_ordinal = -1; // -1 = don't update active match ordinal
2293 if (!count) 2294 if (!count)
2294 active_match_ordinal = 0; 2295 active_match_ordinal = 0;
2295 2296
2296 render_view_->Send(new ViewHostMsg_Find_Reply( 2297 render_view_->Send(new ViewHostMsg_Find_Reply(
2297 render_view_->GetRoutingID(), request_id, count, 2298 render_view_->GetRoutingID(), request_id, count,
2298 gfx::Rect(), active_match_ordinal, final_update)); 2299 gfx::Rect(), active_match_ordinal, final_update));
2299 } 2300 }
2300 2301
2301 void RenderFrameImpl::reportFindInPageSelection( 2302 void RenderFrameImpl::reportFindInPageSelection(
2302 int request_id, 2303 int request_id,
2303 int active_match_ordinal, 2304 int active_match_ordinal,
2304 const blink::WebRect& selection_rect) { 2305 const blink::WebRect& selection_rect) {
2305 render_view_->Send(new ViewHostMsg_Find_Reply( 2306 render_view_->Send(new ViewHostMsg_Find_Reply(
2306 render_view_->GetRoutingID(), request_id, -1, selection_rect, 2307 render_view_->GetRoutingID(), request_id, -1, selection_rect,
2307 active_match_ordinal, false)); 2308 active_match_ordinal, false));
2308 } 2309 }
2309 2310
2310 void RenderFrameImpl::requestStorageQuota( 2311 void RenderFrameImpl::requestStorageQuota(
2311 blink::WebFrame* frame, 2312 blink::WebLocalFrame* frame,
2312 blink::WebStorageQuotaType type, 2313 blink::WebStorageQuotaType type,
2313 unsigned long long requested_size, 2314 unsigned long long requested_size,
2314 blink::WebStorageQuotaCallbacks callbacks) { 2315 blink::WebStorageQuotaCallbacks callbacks) {
2315 DCHECK(!frame_ || frame_ == frame); 2316 DCHECK(!frame_ || frame_ == frame);
2316 WebSecurityOrigin origin = frame->document().securityOrigin(); 2317 WebSecurityOrigin origin = frame->document().securityOrigin();
2317 if (origin.isUnique()) { 2318 if (origin.isUnique()) {
2318 // Unique origins cannot store persistent state. 2319 // Unique origins cannot store persistent state.
2319 callbacks.didFail(blink::WebStorageQuotaErrorAbort); 2320 callbacks.didFail(blink::WebStorageQuotaErrorAbort);
2320 return; 2321 return;
2321 } 2322 }
2322 ChildThread::current()->quota_dispatcher()->RequestStorageQuota( 2323 ChildThread::current()->quota_dispatcher()->RequestStorageQuota(
2323 render_view_->GetRoutingID(), GURL(origin.toString()), 2324 render_view_->GetRoutingID(), GURL(origin.toString()),
2324 static_cast<quota::StorageType>(type), requested_size, 2325 static_cast<quota::StorageType>(type), requested_size,
2325 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); 2326 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks));
2326 } 2327 }
2327 2328
2328 void RenderFrameImpl::willOpenSocketStream( 2329 void RenderFrameImpl::willOpenSocketStream(
2329 blink::WebSocketStreamHandle* handle) { 2330 blink::WebSocketStreamHandle* handle) {
2330 WebSocketStreamHandleImpl* impl = 2331 WebSocketStreamHandleImpl* impl =
2331 static_cast<WebSocketStreamHandleImpl*>(handle); 2332 static_cast<WebSocketStreamHandleImpl*>(handle);
2332 impl->SetUserData(handle, new SocketStreamHandleData(routing_id_)); 2333 impl->SetUserData(handle, new SocketStreamHandleData(routing_id_));
2333 } 2334 }
2334 2335
2335 void RenderFrameImpl::willStartUsingPeerConnectionHandler( 2336 void RenderFrameImpl::willStartUsingPeerConnectionHandler(
2336 blink::WebFrame* frame, 2337 blink::WebLocalFrame* frame,
2337 blink::WebRTCPeerConnectionHandler* handler) { 2338 blink::WebRTCPeerConnectionHandler* handler) {
2338 DCHECK(!frame_ || frame_ == frame); 2339 DCHECK(!frame_ || frame_ == frame);
2339 #if defined(ENABLE_WEBRTC) 2340 #if defined(ENABLE_WEBRTC)
2340 static_cast<RTCPeerConnectionHandler*>(handler)->associateWithFrame(frame); 2341 static_cast<RTCPeerConnectionHandler*>(handler)->associateWithFrame(frame);
2341 #endif 2342 #endif
2342 } 2343 }
2343 2344
2344 bool RenderFrameImpl::willCheckAndDispatchMessageEvent( 2345 bool RenderFrameImpl::willCheckAndDispatchMessageEvent(
2345 blink::WebFrame* sourceFrame, 2346 blink::WebLocalFrame* sourceFrame,
2346 blink::WebFrame* targetFrame, 2347 blink::WebFrame* targetFrame,
2347 blink::WebSecurityOrigin targetOrigin, 2348 blink::WebSecurityOrigin targetOrigin,
2348 blink::WebDOMMessageEvent event) { 2349 blink::WebDOMMessageEvent event) {
2349 DCHECK(!frame_ || frame_ == targetFrame); 2350 DCHECK(!frame_ || frame_ == targetFrame);
2350 // TODO(nasko): Move implementation here. Needed state: 2351 // TODO(nasko): Move implementation here. Needed state:
2351 // * is_swapped_out_ 2352 // * is_swapped_out_
2352 return render_view_->willCheckAndDispatchMessageEvent( 2353 return render_view_->willCheckAndDispatchMessageEvent(
2353 sourceFrame, targetFrame, targetOrigin, event); 2354 sourceFrame, targetFrame, targetOrigin, event);
2354 } 2355 }
2355 2356
2356 blink::WebString RenderFrameImpl::userAgentOverride( 2357 blink::WebString RenderFrameImpl::userAgentOverride(blink::WebLocalFrame* frame,
2357 blink::WebFrame* frame, 2358 const blink::WebURL& url) {
2358 const blink::WebURL& url) {
2359 DCHECK(!frame_ || frame_ == frame); 2359 DCHECK(!frame_ || frame_ == frame);
2360 if (!render_view_->webview() || !render_view_->webview()->mainFrame() || 2360 if (!render_view_->webview() || !render_view_->webview()->mainFrame() ||
2361 render_view_->renderer_preferences_.user_agent_override.empty()) { 2361 render_view_->renderer_preferences_.user_agent_override.empty()) {
2362 return blink::WebString(); 2362 return blink::WebString();
2363 } 2363 }
2364 2364
2365 // If we're in the middle of committing a load, the data source we need 2365 // If we're in the middle of committing a load, the data source we need
2366 // will still be provisional. 2366 // will still be provisional.
2367 WebFrame* main_frame = render_view_->webview()->mainFrame(); 2367 WebFrame* main_frame = render_view_->webview()->mainFrame();
2368 WebDataSource* data_source = NULL; 2368 WebDataSource* data_source = NULL;
2369 if (main_frame->provisionalDataSource()) 2369 if (main_frame->provisionalDataSource())
2370 data_source = main_frame->provisionalDataSource(); 2370 data_source = main_frame->provisionalDataSource();
2371 else 2371 else
2372 data_source = main_frame->dataSource(); 2372 data_source = main_frame->dataSource();
2373 2373
2374 InternalDocumentStateData* internal_data = data_source ? 2374 InternalDocumentStateData* internal_data = data_source ?
2375 InternalDocumentStateData::FromDataSource(data_source) : NULL; 2375 InternalDocumentStateData::FromDataSource(data_source) : NULL;
2376 if (internal_data && internal_data->is_overriding_user_agent()) 2376 if (internal_data && internal_data->is_overriding_user_agent())
2377 return WebString::fromUTF8( 2377 return WebString::fromUTF8(
2378 render_view_->renderer_preferences_.user_agent_override); 2378 render_view_->renderer_preferences_.user_agent_override);
2379 return blink::WebString(); 2379 return blink::WebString();
2380 } 2380 }
2381 2381
2382 blink::WebString RenderFrameImpl::doNotTrackValue(blink::WebFrame* frame) { 2382 blink::WebString RenderFrameImpl::doNotTrackValue(blink::WebLocalFrame* frame) {
2383 DCHECK(!frame_ || frame_ == frame); 2383 DCHECK(!frame_ || frame_ == frame);
2384 if (render_view_->renderer_preferences_.enable_do_not_track) 2384 if (render_view_->renderer_preferences_.enable_do_not_track)
2385 return WebString::fromUTF8("1"); 2385 return WebString::fromUTF8("1");
2386 return WebString(); 2386 return WebString();
2387 } 2387 }
2388 2388
2389 bool RenderFrameImpl::allowWebGL(blink::WebFrame* frame, bool default_value) { 2389 bool RenderFrameImpl::allowWebGL(blink::WebLocalFrame* frame,
2390 bool default_value) {
2390 DCHECK(!frame_ || frame_ == frame); 2391 DCHECK(!frame_ || frame_ == frame);
2391 if (!default_value) 2392 if (!default_value)
2392 return false; 2393 return false;
2393 2394
2394 bool blocked = true; 2395 bool blocked = true;
2395 render_view_->Send(new ViewHostMsg_Are3DAPIsBlocked( 2396 render_view_->Send(new ViewHostMsg_Are3DAPIsBlocked(
2396 render_view_->GetRoutingID(), 2397 render_view_->GetRoutingID(),
2397 GURL(frame->top()->document().securityOrigin().toString()), 2398 GURL(frame->top()->document().securityOrigin().toString()),
2398 THREE_D_API_TYPE_WEBGL, 2399 THREE_D_API_TYPE_WEBGL,
2399 &blocked)); 2400 &blocked));
2400 return !blocked; 2401 return !blocked;
2401 } 2402 }
2402 2403
2403 void RenderFrameImpl::didLoseWebGLContext(blink::WebFrame* frame, 2404 void RenderFrameImpl::didLoseWebGLContext(blink::WebLocalFrame* frame,
2404 int arb_robustness_status_code) { 2405 int arb_robustness_status_code) {
2405 DCHECK(!frame_ || frame_ == frame); 2406 DCHECK(!frame_ || frame_ == frame);
2406 render_view_->Send(new ViewHostMsg_DidLose3DContext( 2407 render_view_->Send(new ViewHostMsg_DidLose3DContext(
2407 GURL(frame->top()->document().securityOrigin().toString()), 2408 GURL(frame->top()->document().securityOrigin().toString()),
2408 THREE_D_API_TYPE_WEBGL, 2409 THREE_D_API_TYPE_WEBGL,
2409 arb_robustness_status_code)); 2410 arb_robustness_status_code));
2410 } 2411 }
2411 2412
2412 void RenderFrameImpl::forwardInputEvent(const blink::WebInputEvent* event) { 2413 void RenderFrameImpl::forwardInputEvent(const blink::WebInputEvent* event) {
2413 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event)); 2414 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event));
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
2965 selection_text_offset_ = offset; 2966 selection_text_offset_ = offset;
2966 selection_range_ = range; 2967 selection_range_ = range;
2967 // This IPC is dispatched by RenderWidetHost, so use its routing ID. 2968 // This IPC is dispatched by RenderWidetHost, so use its routing ID.
2968 Send(new ViewHostMsg_SelectionChanged( 2969 Send(new ViewHostMsg_SelectionChanged(
2969 GetRenderWidget()->routing_id(), text, offset, range)); 2970 GetRenderWidget()->routing_id(), text, offset, range));
2970 } 2971 }
2971 GetRenderWidget()->UpdateSelectionBounds(); 2972 GetRenderWidget()->UpdateSelectionBounds();
2972 } 2973 }
2973 2974
2974 } // namespace content 2975 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698