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

Side by Side Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2246363003: [DO NOT COMMIT] Test implementation of converting same URL navigation into a reload Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased and logging. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 accessibility_reset_token_(0), 258 accessibility_reset_token_(0),
259 accessibility_reset_count_(0), 259 accessibility_reset_count_(0),
260 browser_plugin_embedder_ax_tree_id_(AXTreeIDRegistry::kNoAXTreeID), 260 browser_plugin_embedder_ax_tree_id_(AXTreeIDRegistry::kNoAXTreeID),
261 no_create_browser_accessibility_manager_for_testing_(false), 261 no_create_browser_accessibility_manager_for_testing_(false),
262 web_ui_type_(WebUI::kNoWebUI), 262 web_ui_type_(WebUI::kNoWebUI),
263 pending_web_ui_type_(WebUI::kNoWebUI), 263 pending_web_ui_type_(WebUI::kNoWebUI),
264 should_reuse_web_ui_(false), 264 should_reuse_web_ui_(false),
265 last_navigation_lofi_state_(LOFI_UNSPECIFIED), 265 last_navigation_lofi_state_(LOFI_UNSPECIFIED),
266 frame_host_binding_(this), 266 frame_host_binding_(this),
267 weak_ptr_factory_(this) { 267 weak_ptr_factory_(this) {
268 LOG(ERROR) << "RFH[" << this << "]::RFH: "
269 << " routing_id:" << routing_id
270 << " instance:" << site_instance->GetId() << ":" << site_instance->GetSiteUR L();
268 frame_tree_->AddRenderViewHostRef(render_view_host_); 271 frame_tree_->AddRenderViewHostRef(render_view_host_);
269 GetProcess()->AddRoute(routing_id_, this); 272 GetProcess()->AddRoute(routing_id_, this);
270 g_routing_id_frame_map.Get().insert(std::make_pair( 273 g_routing_id_frame_map.Get().insert(std::make_pair(
271 RenderFrameHostID(GetProcess()->GetID(), routing_id_), 274 RenderFrameHostID(GetProcess()->GetID(), routing_id_),
272 this)); 275 this));
273 site_instance_->AddObserver(this); 276 site_instance_->AddObserver(this);
274 GetSiteInstance()->IncrementActiveFrameCount(); 277 GetSiteInstance()->IncrementActiveFrameCount();
275 278
276 if (frame_tree_node_->parent()) { 279 if (frame_tree_node_->parent()) {
277 // Keep track of the parent RenderFrameHost, which shouldn't change even if 280 // Keep track of the parent RenderFrameHost, which shouldn't change even if
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 351
349 if (render_widget_host_ && 352 if (render_widget_host_ &&
350 render_widget_host_->owned_by_render_frame_host()) { 353 render_widget_host_->owned_by_render_frame_host()) {
351 // Shutdown causes the RenderWidgetHost to delete itself. 354 // Shutdown causes the RenderWidgetHost to delete itself.
352 render_widget_host_->ShutdownAndDestroyWidget(true); 355 render_widget_host_->ShutdownAndDestroyWidget(true);
353 } 356 }
354 357
355 // Notify the FrameTree that this RFH is going away, allowing it to shut down 358 // Notify the FrameTree that this RFH is going away, allowing it to shut down
356 // the corresponding RenderViewHost if it is no longer needed. 359 // the corresponding RenderViewHost if it is no longer needed.
357 frame_tree_->ReleaseRenderViewHostRef(render_view_host_); 360 frame_tree_->ReleaseRenderViewHostRef(render_view_host_);
361
362 LOG(ERROR) << "RFH[" << this << "]::~RFH";
358 } 363 }
359 364
360 int RenderFrameHostImpl::GetRoutingID() { 365 int RenderFrameHostImpl::GetRoutingID() {
361 return routing_id_; 366 return routing_id_;
362 } 367 }
363 368
364 AXTreeIDRegistry::AXTreeID RenderFrameHostImpl::GetAXTreeID() { 369 AXTreeIDRegistry::AXTreeID RenderFrameHostImpl::GetAXTreeID() {
365 return AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID( 370 return AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID(
366 GetProcess()->GetID(), routing_id_); 371 GetProcess()->GetID(), routing_id_);
367 } 372 }
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 base::TimeDelta::FromMinutes(10), 100); 1000 base::TimeDelta::FromMinutes(10), 100);
996 } 1001 }
997 // This message is only sent for top-level frames. TODO(avi): when frame tree 1002 // This message is only sent for top-level frames. TODO(avi): when frame tree
998 // mirroring works correctly, add a check here to enforce it. 1003 // mirroring works correctly, add a check here to enforce it.
999 delegate_->DocumentOnLoadCompleted(this); 1004 delegate_->DocumentOnLoadCompleted(this);
1000 } 1005 }
1001 1006
1002 void RenderFrameHostImpl::OnDidStartProvisionalLoad( 1007 void RenderFrameHostImpl::OnDidStartProvisionalLoad(
1003 const GURL& url, 1008 const GURL& url,
1004 const base::TimeTicks& navigation_start) { 1009 const base::TimeTicks& navigation_start) {
1010 LOG(ERROR) << "RFH[" << this << "]::DidStartProvisionalLoad: "
1011 << " url:" << url.spec().substr(0, 250);
1005 frame_tree_node_->navigator()->DidStartProvisionalLoad(this, url, 1012 frame_tree_node_->navigator()->DidStartProvisionalLoad(this, url,
1006 navigation_start); 1013 navigation_start);
1007 } 1014 }
1008 1015
1009 void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError( 1016 void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
1010 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) { 1017 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
1018 LOG(ERROR) << "RFH[" << this << "]::DidFailProvisionalLoadWithError: "
1019 << " error:" << params.error_code;
1020
1011 // TODO(clamy): Kill the renderer with RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE and 1021 // TODO(clamy): Kill the renderer with RFH_FAIL_PROVISIONAL_LOAD_NO_HANDLE and
1012 // return early if navigation_handle_ is null, once we prevent that case from 1022 // return early if navigation_handle_ is null, once we prevent that case from
1013 // happening in practice. 1023 // happening in practice.
1014 1024
1015 // Update the error code in the NavigationHandle of the navigation. 1025 // Update the error code in the NavigationHandle of the navigation.
1016 if (navigation_handle_) { 1026 if (navigation_handle_) {
1017 navigation_handle_->set_net_error_code( 1027 navigation_handle_->set_net_error_code(
1018 static_cast<net::Error>(params.error_code)); 1028 static_cast<net::Error>(params.error_code));
1019 } 1029 }
1020 1030
1021 frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params); 1031 frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params);
1022 } 1032 }
1023 1033
1024 void RenderFrameHostImpl::OnDidFailLoadWithError( 1034 void RenderFrameHostImpl::OnDidFailLoadWithError(
1025 const GURL& url, 1035 const GURL& url,
1026 int error_code, 1036 int error_code,
1027 const base::string16& error_description, 1037 const base::string16& error_description,
1028 bool was_ignored_by_handler) { 1038 bool was_ignored_by_handler) {
1029 GURL validated_url(url); 1039 GURL validated_url(url);
1040 LOG(ERROR) << "RFH[" << this << "]::DidFailLoadWithError: "
1041 << " url:" << url.spec().substr(0, 250)
1042 << " error:" << error_code;
1043
1030 GetProcess()->FilterURL(false, &validated_url); 1044 GetProcess()->FilterURL(false, &validated_url);
1031 1045
1032 frame_tree_node_->navigator()->DidFailLoadWithError( 1046 frame_tree_node_->navigator()->DidFailLoadWithError(
1033 this, validated_url, error_code, error_description, 1047 this, validated_url, error_code, error_description,
1034 was_ignored_by_handler); 1048 was_ignored_by_handler);
1035 } 1049 }
1036 1050
1037 // Called when the renderer navigates. For every frame loaded, we'll get this 1051 // Called when the renderer navigates. For every frame loaded, we'll get this
1038 // notification containing parameters identifying the navigation. 1052 // notification containing parameters identifying the navigation.
1039 // 1053 //
1040 // Subframes are identified by the page transition type. For subframes loaded 1054 // Subframes are identified by the page transition type. For subframes loaded
1041 // as part of a wider page load, the page_id will be the same as for the top 1055 // as part of a wider page load, the page_id will be the same as for the top
1042 // level frame. If the user explicitly requests a subframe navigation, we will 1056 // level frame. If the user explicitly requests a subframe navigation, we will
1043 // get a new page_id because we need to create a new navigation entry for that 1057 // get a new page_id because we need to create a new navigation entry for that
1044 // action. 1058 // action.
1045 void RenderFrameHostImpl::OnDidCommitProvisionalLoad(const IPC::Message& msg) { 1059 void RenderFrameHostImpl::OnDidCommitProvisionalLoad(const IPC::Message& msg) {
1046 ScopedCommitStateResetter commit_state_resetter(this); 1060 ScopedCommitStateResetter commit_state_resetter(this);
1047 RenderProcessHost* process = GetProcess(); 1061 RenderProcessHost* process = GetProcess();
1048 1062
1049 // Read the parameters out of the IPC message directly to avoid making another 1063 // Read the parameters out of the IPC message directly to avoid making another
1050 // copy when we filter the URLs. 1064 // copy when we filter the URLs.
1051 base::PickleIterator iter(msg); 1065 base::PickleIterator iter(msg);
1052 FrameHostMsg_DidCommitProvisionalLoad_Params validated_params; 1066 FrameHostMsg_DidCommitProvisionalLoad_Params validated_params;
1053 if (!IPC::ParamTraits<FrameHostMsg_DidCommitProvisionalLoad_Params>:: 1067 if (!IPC::ParamTraits<FrameHostMsg_DidCommitProvisionalLoad_Params>::
1054 Read(&msg, &iter, &validated_params)) { 1068 Read(&msg, &iter, &validated_params)) {
1055 bad_message::ReceivedBadMessage( 1069 bad_message::ReceivedBadMessage(
1056 process, bad_message::RFH_COMMIT_DESERIALIZATION_FAILED); 1070 process, bad_message::RFH_COMMIT_DESERIALIZATION_FAILED);
1071 LOG(ERROR) << "RFH[" << this << "]::DidCommitProvisionalLoad: "
1072 << " failed to read IPC, killed renderer";
1057 return; 1073 return;
1058 } 1074 }
1059 TRACE_EVENT1("navigation", "RenderFrameHostImpl::OnDidCommitProvisionalLoad", 1075 TRACE_EVENT1("navigation", "RenderFrameHostImpl::OnDidCommitProvisionalLoad",
1060 "url", validated_params.url.possibly_invalid_spec()); 1076 "url", validated_params.url.possibly_invalid_spec());
1061 1077
1078 LOG(ERROR) << "RFH[" << this << "]::DidCommitProvisionalLoad: "
1079 << " url:" << validated_params.url.spec().substr(0, 250);
1080
1062 // Sanity-check the page transition for frame type. 1081 // Sanity-check the page transition for frame type.
1063 DCHECK_EQ(ui::PageTransitionIsMainFrame(validated_params.transition), 1082 DCHECK_EQ(ui::PageTransitionIsMainFrame(validated_params.transition),
1064 !GetParent()); 1083 !GetParent());
1065 1084
1066 // If we're waiting for a cross-site beforeunload ack from this renderer and 1085 // If we're waiting for a cross-site beforeunload ack from this renderer and
1067 // we receive a Navigate message from the main frame, then the renderer was 1086 // we receive a Navigate message from the main frame, then the renderer was
1068 // navigating already and sent it before hearing the FrameMsg_Stop message. 1087 // navigating already and sent it before hearing the FrameMsg_Stop message.
1069 // Treat this as an implicit beforeunload ack to allow the pending navigation 1088 // Treat this as an implicit beforeunload ack to allow the pending navigation
1070 // to continue. 1089 // to continue.
1071 if (is_waiting_for_beforeunload_ack_ && 1090 if (is_waiting_for_beforeunload_ack_ &&
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 } 1309 }
1291 1310
1292 void RenderFrameHostImpl::SwapOut( 1311 void RenderFrameHostImpl::SwapOut(
1293 RenderFrameProxyHost* proxy, 1312 RenderFrameProxyHost* proxy,
1294 bool is_loading) { 1313 bool is_loading) {
1295 // The end of this event is in OnSwapOutACK when the RenderFrame has completed 1314 // The end of this event is in OnSwapOutACK when the RenderFrame has completed
1296 // the operation and sends back an IPC message. 1315 // the operation and sends back an IPC message.
1297 // The trace event may not end properly if the ACK times out. We expect this 1316 // The trace event may not end properly if the ACK times out. We expect this
1298 // to be fixed when RenderViewHostImpl::OnSwapOut moves to RenderFrameHost. 1317 // to be fixed when RenderViewHostImpl::OnSwapOut moves to RenderFrameHost.
1299 TRACE_EVENT_ASYNC_BEGIN0("navigation", "RenderFrameHostImpl::SwapOut", this); 1318 TRACE_EVENT_ASYNC_BEGIN0("navigation", "RenderFrameHostImpl::SwapOut", this);
1319 LOG(ERROR) << "RFH[" << this << "]::SwapOut";
1300 1320
1301 // If this RenderFrameHost is already pending deletion, it must have already 1321 // If this RenderFrameHost is already pending deletion, it must have already
1302 // gone through this, therefore just return. 1322 // gone through this, therefore just return.
1303 if (!is_active()) { 1323 if (!is_active()) {
1304 NOTREACHED() << "RFH should be in default state when calling SwapOut."; 1324 NOTREACHED() << "RFH should be in default state when calling SwapOut.";
1305 return; 1325 return;
1306 } 1326 }
1307 1327
1308 if (swapout_event_monitor_timeout_) { 1328 if (swapout_event_monitor_timeout_) {
1309 swapout_event_monitor_timeout_->Start(base::TimeDelta::FromMilliseconds( 1329 swapout_event_monitor_timeout_->Start(base::TimeDelta::FromMilliseconds(
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1429 if (!proceed) 1449 if (!proceed)
1430 render_view_host_->GetDelegate()->DidCancelLoading(); 1450 render_view_host_->GetDelegate()->DidCancelLoading();
1431 } 1451 }
1432 1452
1433 bool RenderFrameHostImpl::IsWaitingForUnloadACK() const { 1453 bool RenderFrameHostImpl::IsWaitingForUnloadACK() const {
1434 return render_view_host_->is_waiting_for_close_ack_ || 1454 return render_view_host_->is_waiting_for_close_ack_ ||
1435 is_waiting_for_swapout_ack_; 1455 is_waiting_for_swapout_ack_;
1436 } 1456 }
1437 1457
1438 void RenderFrameHostImpl::OnSwapOutACK() { 1458 void RenderFrameHostImpl::OnSwapOutACK() {
1459 LOG(ERROR) << "RFH[" << this << "]::SwapOutACK";
1439 OnSwappedOut(); 1460 OnSwappedOut();
1440 } 1461 }
1441 1462
1442 void RenderFrameHostImpl::OnRenderProcessGone(int status, int exit_code) { 1463 void RenderFrameHostImpl::OnRenderProcessGone(int status, int exit_code) {
1443 if (frame_tree_node_->IsMainFrame()) { 1464 if (frame_tree_node_->IsMainFrame()) {
1444 // Keep the termination status so we can get at it later when we 1465 // Keep the termination status so we can get at it later when we
1445 // need to know why it died. 1466 // need to know why it died.
1446 render_view_host_->render_view_termination_status_ = 1467 render_view_host_->render_view_termination_status_ =
1447 static_cast<base::TerminationStatus>(status); 1468 static_cast<base::TerminationStatus>(status);
1448 } 1469 }
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after
2220 return CanCommitURL(origin_url); 2241 return CanCommitURL(origin_url);
2221 } 2242 }
2222 2243
2223 void RenderFrameHostImpl::Navigate( 2244 void RenderFrameHostImpl::Navigate(
2224 const CommonNavigationParams& common_params, 2245 const CommonNavigationParams& common_params,
2225 const StartNavigationParams& start_params, 2246 const StartNavigationParams& start_params,
2226 const RequestNavigationParams& request_params) { 2247 const RequestNavigationParams& request_params) {
2227 TRACE_EVENT0("navigation", "RenderFrameHostImpl::Navigate"); 2248 TRACE_EVENT0("navigation", "RenderFrameHostImpl::Navigate");
2228 DCHECK(!IsBrowserSideNavigationEnabled()); 2249 DCHECK(!IsBrowserSideNavigationEnabled());
2229 2250
2251 LOG(ERROR) << "RFH[" << this << "]::Navigate: "
2252 << " url:" << common_params.url.spec().substr(0, 250);
2253
2230 UpdatePermissionsForNavigation(common_params, request_params); 2254 UpdatePermissionsForNavigation(common_params, request_params);
2231 2255
2232 // Only send the message if we aren't suspended at the start of a cross-site 2256 // Only send the message if we aren't suspended at the start of a cross-site
2233 // request. 2257 // request.
2234 if (navigations_suspended_) { 2258 if (navigations_suspended_) {
2235 // This may replace an existing set of params, if this is a pending RFH that 2259 // This may replace an existing set of params, if this is a pending RFH that
2236 // is navigated twice consecutively. 2260 // is navigated twice consecutively.
2237 suspended_nav_params_.reset( 2261 suspended_nav_params_.reset(
2238 new NavigationParams(common_params, start_params, request_params)); 2262 new NavigationParams(common_params, start_params, request_params));
2239 } else { 2263 } else {
(...skipping 29 matching lines...) Expand all
2269 CommitNavigation(nullptr, nullptr, common_params, RequestNavigationParams(), 2293 CommitNavigation(nullptr, nullptr, common_params, RequestNavigationParams(),
2270 false); 2294 false);
2271 } else { 2295 } else {
2272 Navigate(common_params, StartNavigationParams(), RequestNavigationParams()); 2296 Navigate(common_params, StartNavigationParams(), RequestNavigationParams());
2273 } 2297 }
2274 } 2298 }
2275 2299
2276 void RenderFrameHostImpl::OpenURL(const FrameHostMsg_OpenURL_Params& params, 2300 void RenderFrameHostImpl::OpenURL(const FrameHostMsg_OpenURL_Params& params,
2277 SiteInstance* source_site_instance) { 2301 SiteInstance* source_site_instance) {
2278 GURL validated_url(params.url); 2302 GURL validated_url(params.url);
2303
2304 LOG(ERROR) << "RFH[" << this << "]::OpenURL: "
2305 << " url:" << validated_url.spec().substr(0, 250);
2279 GetProcess()->FilterURL(false, &validated_url); 2306 GetProcess()->FilterURL(false, &validated_url);
2280 2307
2281 TRACE_EVENT1("navigation", "RenderFrameHostImpl::OpenURL", "url", 2308 TRACE_EVENT1("navigation", "RenderFrameHostImpl::OpenURL", "url",
2282 validated_url.possibly_invalid_spec()); 2309 validated_url.possibly_invalid_spec());
2283 frame_tree_node_->navigator()->RequestOpenURL( 2310 frame_tree_node_->navigator()->RequestOpenURL(
2284 this, validated_url, params.uses_post, params.resource_request_body, 2311 this, validated_url, params.uses_post, params.resource_request_body,
2285 source_site_instance, params.referrer, params.disposition, 2312 source_site_instance, params.referrer, params.disposition,
2286 params.should_replace_current_entry, params.user_gesture); 2313 params.should_replace_current_entry, params.user_gesture);
2287 } 2314 }
2288 2315
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
2415 } 2442 }
2416 } 2443 }
2417 2444
2418 // PlzNavigate 2445 // PlzNavigate
2419 void RenderFrameHostImpl::CommitNavigation( 2446 void RenderFrameHostImpl::CommitNavigation(
2420 ResourceResponse* response, 2447 ResourceResponse* response,
2421 std::unique_ptr<StreamHandle> body, 2448 std::unique_ptr<StreamHandle> body,
2422 const CommonNavigationParams& common_params, 2449 const CommonNavigationParams& common_params,
2423 const RequestNavigationParams& request_params, 2450 const RequestNavigationParams& request_params,
2424 bool is_view_source) { 2451 bool is_view_source) {
2452 LOG(ERROR) << "RFH[" << this << "]::CommitNavigation: "
2453 << " url:" << common_params.url.spec().substr(0, 250);
2454
2425 DCHECK((response && body.get()) || 2455 DCHECK((response && body.get()) ||
2426 !ShouldMakeNetworkRequestForURL(common_params.url)); 2456 !ShouldMakeNetworkRequestForURL(common_params.url));
2427 UpdatePermissionsForNavigation(common_params, request_params); 2457 UpdatePermissionsForNavigation(common_params, request_params);
2428 2458
2429 // Get back to a clean state, in case we start a new navigation without 2459 // Get back to a clean state, in case we start a new navigation without
2430 // completing an unload handler. 2460 // completing an unload handler.
2431 ResetWaitingState(); 2461 ResetWaitingState();
2432 2462
2433 // The renderer can exit view source mode when any error or cancellation 2463 // The renderer can exit view source mode when any error or cancellation
2434 // happen. When reusing the same renderer, overwrite to recover the mode. 2464 // happen. When reusing the same renderer, overwrite to recover the mode.
(...skipping 25 matching lines...) Expand all
2460 pending_commit_ = true; 2490 pending_commit_ = true;
2461 is_loading_ = true; 2491 is_loading_ = true;
2462 } 2492 }
2463 } 2493 }
2464 2494
2465 void RenderFrameHostImpl::FailedNavigation( 2495 void RenderFrameHostImpl::FailedNavigation(
2466 const CommonNavigationParams& common_params, 2496 const CommonNavigationParams& common_params,
2467 const RequestNavigationParams& request_params, 2497 const RequestNavigationParams& request_params,
2468 bool has_stale_copy_in_cache, 2498 bool has_stale_copy_in_cache,
2469 int error_code) { 2499 int error_code) {
2500 LOG(ERROR) << "RFH[" << this << "]::FailedNavigation: "
2501 << " url:" << common_params.url.spec().substr(0, 250);
2470 // Get back to a clean state, in case a new navigation started without 2502 // Get back to a clean state, in case a new navigation started without
2471 // completing an unload handler. 2503 // completing an unload handler.
2472 ResetWaitingState(); 2504 ResetWaitingState();
2473 2505
2474 Send(new FrameMsg_FailedNavigation(routing_id_, common_params, request_params, 2506 Send(new FrameMsg_FailedNavigation(routing_id_, common_params, request_params,
2475 has_stale_copy_in_cache, error_code)); 2507 has_stale_copy_in_cache, error_code));
2476 2508
2477 // An error page is expected to commit, hence why is_loading_ is set to true. 2509 // An error page is expected to commit, hence why is_loading_ is set to true.
2478 is_loading_ = true; 2510 is_loading_ = true;
2479 frame_tree_node_->ResetNavigationRequest(true); 2511 frame_tree_node_->ResetNavigationRequest(true);
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
3055 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind( 3087 web_bluetooth_service_->SetClientConnectionErrorHandler(base::Bind(
3056 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this))); 3088 &RenderFrameHostImpl::DeleteWebBluetoothService, base::Unretained(this)));
3057 return web_bluetooth_service_.get(); 3089 return web_bluetooth_service_.get();
3058 } 3090 }
3059 3091
3060 void RenderFrameHostImpl::DeleteWebBluetoothService() { 3092 void RenderFrameHostImpl::DeleteWebBluetoothService() {
3061 web_bluetooth_service_.reset(); 3093 web_bluetooth_service_.reset();
3062 } 3094 }
3063 3095
3064 } // namespace content 3096 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/navigation_controller_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698