Chromium Code Reviews| OLD | NEW |
|---|---|
| 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_manager.h" | 5 #include "content/browser/frame_host/render_frame_host_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 276 return nullptr; | 276 return nullptr; |
| 277 return render_frame_host_->render_view_host(); | 277 return render_frame_host_->render_view_host(); |
| 278 } | 278 } |
| 279 | 279 |
| 280 RenderViewHostImpl* RenderFrameHostManager::pending_render_view_host() const { | 280 RenderViewHostImpl* RenderFrameHostManager::pending_render_view_host() const { |
| 281 if (!pending_render_frame_host_) | 281 if (!pending_render_frame_host_) |
| 282 return nullptr; | 282 return nullptr; |
| 283 return pending_render_frame_host_->render_view_host(); | 283 return pending_render_frame_host_->render_view_host(); |
| 284 } | 284 } |
| 285 | 285 |
| 286 WebUIImpl* RenderFrameHostManager::GetNavigatingWebUI() const { | |
| 287 if (current_web_ui_is_navigating_) | |
| 288 return render_frame_host_->web_ui(); | |
| 289 | |
| 290 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 291 switches::kEnableBrowserSideNavigation)) { | |
| 292 if (speculative_render_frame_host_) | |
| 293 return speculative_render_frame_host_->web_ui(); | |
| 294 } else { | |
| 295 if (pending_render_frame_host_) | |
| 296 return pending_render_frame_host_->web_ui(); | |
| 297 } | |
| 298 return nullptr; | |
| 299 } | |
| 300 | |
| 301 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { | 286 RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { |
| 302 if (interstitial_page_) | 287 if (interstitial_page_) |
| 303 return interstitial_page_->GetView(); | 288 return interstitial_page_->GetView(); |
| 304 if (render_frame_host_) | 289 if (render_frame_host_) |
| 305 return render_frame_host_->GetView(); | 290 return render_frame_host_->GetView(); |
| 306 return nullptr; | 291 return nullptr; |
| 307 } | 292 } |
| 308 | 293 |
| 309 bool RenderFrameHostManager::ForInnerDelegate() { | 294 bool RenderFrameHostManager::ForInnerDelegate() { |
| 310 return delegate_->GetOuterDelegateFrameTreeNodeID() != | 295 return delegate_->GetOuterDelegateFrameTreeNodeID() != |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 407 // site that is handled via Mojo, then Mojo WebUI code in //chrome will | 392 // site that is handled via Mojo, then Mojo WebUI code in //chrome will |
| 408 // add a service to this RFH's ServiceRegistry). | 393 // add a service to this RFH's ServiceRegistry). |
| 409 dest_render_frame_host->SetUpMojoIfNeeded(); | 394 dest_render_frame_host->SetUpMojoIfNeeded(); |
| 410 | 395 |
| 411 // Recreate the opener chain. | 396 // Recreate the opener chain. |
| 412 CreateOpenerProxies(dest_render_frame_host->GetSiteInstance(), | 397 CreateOpenerProxies(dest_render_frame_host->GetSiteInstance(), |
| 413 frame_tree_node_); | 398 frame_tree_node_); |
| 414 if (!InitRenderView(dest_render_frame_host->render_view_host(), nullptr)) | 399 if (!InitRenderView(dest_render_frame_host->render_view_host(), nullptr)) |
| 415 return nullptr; | 400 return nullptr; |
| 416 | 401 |
| 417 if (GetNavigatingWebUI()) { | 402 if (dest_render_frame_host->web_ui()) { |
| 418 GetNavigatingWebUI()->RenderViewCreated( | 403 dest_render_frame_host->web_ui()->RenderViewCreated( |
| 419 dest_render_frame_host->render_view_host()); | 404 dest_render_frame_host->render_view_host()); |
| 420 } | 405 } |
| 421 | 406 |
| 422 // Now that we've created a new renderer, be sure to hide it if it isn't | 407 // Now that we've created a new renderer, be sure to hide it if it isn't |
| 423 // our primary one. Otherwise, we might crash if we try to call Show() | 408 // our primary one. Otherwise, we might crash if we try to call Show() |
| 424 // on it later. | 409 // on it later. |
| 425 if (dest_render_frame_host != render_frame_host_) { | 410 if (dest_render_frame_host != render_frame_host_) { |
| 426 if (dest_render_frame_host->GetView()) | 411 if (dest_render_frame_host->GetView()) |
| 427 dest_render_frame_host->GetView()->Hide(); | 412 dest_render_frame_host->GetView()->Hide(); |
| 428 } else { | 413 } else { |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 667 | 652 |
| 668 void RenderFrameHostManager::CommitPendingIfNecessary( | 653 void RenderFrameHostManager::CommitPendingIfNecessary( |
| 669 RenderFrameHostImpl* render_frame_host, | 654 RenderFrameHostImpl* render_frame_host, |
| 670 bool was_caused_by_user_gesture) { | 655 bool was_caused_by_user_gesture) { |
| 671 if (!pending_render_frame_host_ && !speculative_render_frame_host_) { | 656 if (!pending_render_frame_host_ && !speculative_render_frame_host_) { |
| 672 DCHECK(!current_web_ui_is_navigating_ || render_frame_host_->web_ui()); | 657 DCHECK(!current_web_ui_is_navigating_ || render_frame_host_->web_ui()); |
| 673 | 658 |
| 674 // We should only hear this from our current renderer. | 659 // We should only hear this from our current renderer. |
| 675 DCHECK_EQ(render_frame_host_, render_frame_host); | 660 DCHECK_EQ(render_frame_host_, render_frame_host); |
| 676 | 661 |
| 677 // A commit is required if there is a navigating WebUI, even without a | 662 // If the current RenderFrameHost has a WebUI it must be committed (for |
| 678 // pending or speculative RenderFrameHost. | 663 // proper focus setting). |
|
nasko
2015/11/04 17:23:26
Is the detail about focus setting important?
carlosk
2015/11/04 21:50:38
I chose to mention it here because I spent some ti
nasko
2015/11/05 00:46:43
Let's put that as a separate sentence then explain
carlosk
2015/11/05 13:40:41
Done.
| |
| 679 if (GetNavigatingWebUI()) | 664 if (render_frame_host_->web_ui()) |
| 680 CommitPending(); | 665 CommitPending(); |
| 681 return; | 666 return; |
| 682 } | 667 } |
| 683 | 668 |
| 684 if (render_frame_host == pending_render_frame_host_ || | 669 if (render_frame_host == pending_render_frame_host_ || |
| 685 render_frame_host == speculative_render_frame_host_) { | 670 render_frame_host == speculative_render_frame_host_) { |
| 686 // The pending cross-process navigation completed, so show the renderer. | 671 // The pending cross-process navigation completed, so show the renderer. |
| 687 CommitPending(); | 672 CommitPending(); |
| 688 } else if (render_frame_host == render_frame_host_) { | 673 } else if (render_frame_host == render_frame_host_) { |
| 689 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 674 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1030 request.common_params().url, request.bindings()); | 1015 request.common_params().url, request.bindings()); |
| 1031 | 1016 |
| 1032 // If a change in WebUI happened, check this is an acceptable case. | 1017 // If a change in WebUI happened, check this is an acceptable case. |
| 1033 CHECK(!changed_web_ui || | 1018 CHECK(!changed_web_ui || |
| 1034 (IsAcceptableWebUITransition( | 1019 (IsAcceptableWebUITransition( |
| 1035 previous_web_ui_type, request.common_params().url, | 1020 previous_web_ui_type, request.common_params().url, |
| 1036 request.restore_type() != NavigationEntryImpl::RESTORE_NONE))); | 1021 request.restore_type() != NavigationEntryImpl::RESTORE_NONE))); |
| 1037 | 1022 |
| 1038 // If there is a WebUI in the current RenderFrameHost, it will navigate. | 1023 // If there is a WebUI in the current RenderFrameHost, it will navigate. |
| 1039 current_web_ui_is_navigating_ = !!render_frame_host_->web_ui(); | 1024 current_web_ui_is_navigating_ = !!render_frame_host_->web_ui(); |
| 1040 DCHECK_EQ(GetNavigatingWebUI(), render_frame_host_->web_ui()); | |
| 1041 | 1025 |
| 1042 // If the current RenderFrameHost has a WebUI and the associated RenderFrame | 1026 // If the current RenderFrameHost has a WebUI and the associated RenderFrame |
| 1043 // is alive, notify to the WebUI that the RenderView is being created or | 1027 // is alive, notify to the WebUI that the RenderView is being created or |
| 1044 // reused depending on whether the WebUI was changed or not. | 1028 // reused depending on whether the WebUI was changed or not. |
| 1045 if (GetNavigatingWebUI() && render_frame_host_->IsRenderFrameLive()) { | 1029 if (render_frame_host_->web_ui() && |
| 1030 render_frame_host_->IsRenderFrameLive()) { | |
| 1046 if (changed_web_ui) { | 1031 if (changed_web_ui) { |
| 1047 GetNavigatingWebUI()->RenderViewCreated( | 1032 render_frame_host_->web_ui()->RenderViewCreated( |
| 1048 render_frame_host_->render_view_host()); | 1033 render_frame_host_->render_view_host()); |
| 1049 } else { | 1034 } else { |
| 1050 GetNavigatingWebUI()->RenderViewReused( | 1035 render_frame_host_->web_ui()->RenderViewReused( |
| 1051 render_frame_host_->render_view_host(), | 1036 render_frame_host_->render_view_host(), |
| 1052 frame_tree_node_->IsMainFrame()); | 1037 frame_tree_node_->IsMainFrame()); |
| 1053 } | 1038 } |
| 1054 } | 1039 } |
| 1055 | 1040 |
| 1056 DCHECK(!speculative_render_frame_host_); | 1041 DCHECK(!speculative_render_frame_host_); |
| 1057 } else { | 1042 } else { |
| 1058 // If the SiteInstance for the final URL doesn't match the one from the | 1043 // If the SiteInstance for the final URL doesn't match the one from the |
| 1059 // speculatively created RenderFrameHost, create a new RenderFrameHost using | 1044 // speculatively created RenderFrameHost, create a new RenderFrameHost using |
| 1060 // this new SiteInstance. | 1045 // this new SiteInstance. |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1077 } else { | 1062 } else { |
| 1078 // Reuses the previous speculative RenderFrameHost. | 1063 // Reuses the previous speculative RenderFrameHost. |
| 1079 bool changed_web_ui = speculative_render_frame_host_->UpdateWebUI( | 1064 bool changed_web_ui = speculative_render_frame_host_->UpdateWebUI( |
| 1080 request.common_params().url, request.bindings()); | 1065 request.common_params().url, request.bindings()); |
| 1081 if (changed_web_ui && speculative_render_frame_host_->web_ui()) { | 1066 if (changed_web_ui && speculative_render_frame_host_->web_ui()) { |
| 1082 speculative_render_frame_host_->web_ui()->RenderViewCreated( | 1067 speculative_render_frame_host_->web_ui()->RenderViewCreated( |
| 1083 speculative_render_frame_host_->render_view_host()); | 1068 speculative_render_frame_host_->render_view_host()); |
| 1084 } | 1069 } |
| 1085 } | 1070 } |
| 1086 DCHECK(speculative_render_frame_host_); | 1071 DCHECK(speculative_render_frame_host_); |
| 1087 DCHECK_EQ(GetNavigatingWebUI(), speculative_render_frame_host_->web_ui()); | |
| 1088 | 1072 |
| 1089 navigation_rfh = speculative_render_frame_host_.get(); | 1073 navigation_rfh = speculative_render_frame_host_.get(); |
| 1090 | 1074 |
| 1091 // Check if our current RFH is live. | 1075 // Check if our current RFH is live. |
| 1092 if (!render_frame_host_->IsRenderFrameLive()) { | 1076 if (!render_frame_host_->IsRenderFrameLive()) { |
| 1093 // The current RFH is not live. There's no reason to sit around with a | 1077 // The current RFH is not live. There's no reason to sit around with a |
| 1094 // sad tab or a newly created RFH while we wait for the navigation to | 1078 // sad tab or a newly created RFH while we wait for the navigation to |
| 1095 // complete. Just switch to the speculative RFH now and go back to normal. | 1079 // complete. Just switch to the speculative RFH now and go back to normal. |
| 1096 // (Note that we don't care about on{before}unload handlers if the current | 1080 // (Note that we don't care about on{before}unload handlers if the current |
| 1097 // RFH isn't live.) | 1081 // RFH isn't live.) |
| 1098 CommitPending(); | 1082 CommitPending(); |
| 1099 } | 1083 } |
| 1100 DCHECK(!current_web_ui_is_navigating_); | 1084 DCHECK(!current_web_ui_is_navigating_); |
| 1101 } | 1085 } |
| 1102 DCHECK(navigation_rfh && | 1086 DCHECK(navigation_rfh && |
| 1103 (navigation_rfh == render_frame_host_.get() || | 1087 (navigation_rfh == render_frame_host_.get() || |
| 1104 navigation_rfh == speculative_render_frame_host_.get())); | 1088 navigation_rfh == speculative_render_frame_host_.get())); |
| 1105 | 1089 |
| 1106 // If the RenderFrame that needs to navigate is not live (its process was just | 1090 // If the RenderFrame that needs to navigate is not live (its process was just |
| 1107 // created or has crashed), initialize it. | 1091 // created or has crashed), initialize it. |
| 1108 if (!navigation_rfh->IsRenderFrameLive()) { | 1092 if (!navigation_rfh->IsRenderFrameLive()) { |
| 1109 // Recreate the opener chain. | 1093 // Recreate the opener chain. |
| 1110 CreateOpenerProxies(navigation_rfh->GetSiteInstance(), frame_tree_node_); | 1094 CreateOpenerProxies(navigation_rfh->GetSiteInstance(), frame_tree_node_); |
| 1111 if (!InitRenderView(navigation_rfh->render_view_host(), nullptr)) | 1095 if (!InitRenderView(navigation_rfh->render_view_host(), nullptr)) |
| 1112 return nullptr; | 1096 return nullptr; |
| 1113 | 1097 |
| 1114 if (GetNavigatingWebUI()) { | 1098 if (navigation_rfh->web_ui()) { |
| 1115 GetNavigatingWebUI()->RenderViewCreated( | 1099 navigation_rfh->web_ui()->RenderViewCreated( |
| 1116 navigation_rfh->render_view_host()); | 1100 navigation_rfh->render_view_host()); |
| 1117 } | 1101 } |
| 1118 | 1102 |
| 1119 if (navigation_rfh == render_frame_host_) { | 1103 if (navigation_rfh == render_frame_host_) { |
| 1120 // TODO(nasko): This is a very ugly hack. The Chrome extensions process | 1104 // TODO(nasko): This is a very ugly hack. The Chrome extensions process |
| 1121 // manager still uses NotificationService and expects to see a | 1105 // manager still uses NotificationService and expects to see a |
| 1122 // RenderViewHost changed notification after WebContents and | 1106 // RenderViewHost changed notification after WebContents and |
| 1123 // RenderFrameHostManager are completely initialized. This should be | 1107 // RenderFrameHostManager are completely initialized. This should be |
| 1124 // removed once the process manager moves away from NotificationService. | 1108 // removed once the process manager moves away from NotificationService. |
| 1125 // See https://crbug.com/462682. | 1109 // See https://crbug.com/462682. |
| (...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2111 void RenderFrameHostManager::CommitPending() { | 2095 void RenderFrameHostManager::CommitPending() { |
| 2112 TRACE_EVENT1("navigation", "RenderFrameHostManager::CommitPending", | 2096 TRACE_EVENT1("navigation", "RenderFrameHostManager::CommitPending", |
| 2113 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id()); | 2097 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id()); |
| 2114 // First check whether we're going to want to focus the location bar after | 2098 // First check whether we're going to want to focus the location bar after |
| 2115 // this commit. We do this now because the navigation hasn't formally | 2099 // this commit. We do this now because the navigation hasn't formally |
| 2116 // committed yet, so if we've already cleared the pending WebUI the call chain | 2100 // committed yet, so if we've already cleared the pending WebUI the call chain |
| 2117 // this triggers won't be able to figure out what's going on. | 2101 // this triggers won't be able to figure out what's going on. |
| 2118 bool will_focus_location_bar = delegate_->FocusLocationBarByDefault(); | 2102 bool will_focus_location_bar = delegate_->FocusLocationBarByDefault(); |
| 2119 | 2103 |
| 2120 if (!pending_render_frame_host_ && !speculative_render_frame_host_) { | 2104 if (!pending_render_frame_host_ && !speculative_render_frame_host_) { |
| 2121 DCHECK_EQ(current_web_ui_is_navigating_, !!render_frame_host_->web_ui()); | 2105 DCHECK(!current_web_ui_is_navigating_ || render_frame_host_->web_ui()); |
|
nasko
2015/11/04 17:23:26
I thought this variable is only needed to support
carlosk
2015/11/04 21:50:38
Oops! My bad! I forgot to remove it but it was alr
| |
| 2122 current_web_ui_is_navigating_ = false; | 2106 current_web_ui_is_navigating_ = false; |
| 2123 // If there's no pending/speculative RenderFrameHost then the current | 2107 // If there's no pending/speculative RenderFrameHost then the current |
| 2124 // RenderFrameHost is committing. | 2108 // RenderFrameHost is committing. |
| 2125 if (will_focus_location_bar) | 2109 if (will_focus_location_bar) |
| 2126 delegate_->SetFocusToLocationBar(false); | 2110 delegate_->SetFocusToLocationBar(false); |
| 2127 return; | 2111 return; |
| 2128 } | 2112 } |
| 2129 | 2113 |
| 2130 // Remember if the page was focused so we can focus the new renderer in | 2114 // Remember if the page was focused so we can focus the new renderer in |
| 2131 // that case. | 2115 // that case. |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2326 DCHECK(pending_render_frame_host_); | 2310 DCHECK(pending_render_frame_host_); |
| 2327 if (!pending_render_frame_host_) | 2311 if (!pending_render_frame_host_) |
| 2328 return nullptr; | 2312 return nullptr; |
| 2329 | 2313 |
| 2330 pending_render_frame_host_->UpdateWebUI(dest_url, bindings); | 2314 pending_render_frame_host_->UpdateWebUI(dest_url, bindings); |
| 2331 if (pending_render_frame_host_->web_ui()) { | 2315 if (pending_render_frame_host_->web_ui()) { |
| 2332 pending_render_frame_host_->web_ui()->RenderViewCreated( | 2316 pending_render_frame_host_->web_ui()->RenderViewCreated( |
| 2333 pending_render_frame_host_->render_view_host()); | 2317 pending_render_frame_host_->render_view_host()); |
| 2334 } | 2318 } |
| 2335 | 2319 |
| 2336 // We now have a pending RFH and possibly an associated pending WebUI. | |
| 2337 DCHECK_EQ(GetNavigatingWebUI(), pending_render_frame_host_->web_ui()); | |
| 2338 | |
| 2339 // Check if our current RFH is live before we set up a transition. | 2320 // Check if our current RFH is live before we set up a transition. |
| 2340 if (!render_frame_host_->IsRenderFrameLive()) { | 2321 if (!render_frame_host_->IsRenderFrameLive()) { |
| 2341 // The current RFH is not live. There's no reason to sit around with a | 2322 // The current RFH is not live. There's no reason to sit around with a |
| 2342 // sad tab or a newly created RFH while we wait for the pending RFH to | 2323 // sad tab or a newly created RFH while we wait for the pending RFH to |
| 2343 // navigate. Just switch to the pending RFH now and go back to normal. | 2324 // navigate. Just switch to the pending RFH now and go back to normal. |
| 2344 // (Note that we don't care about on{before}unload handlers if the current | 2325 // (Note that we don't care about on{before}unload handlers if the current |
| 2345 // RFH isn't live.) | 2326 // RFH isn't live.) |
| 2346 CommitPending(); | 2327 CommitPending(); |
| 2347 return render_frame_host_.get(); | 2328 return render_frame_host_.get(); |
| 2348 } | 2329 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2391 WebUI::TypeID previous_web_ui_type = render_frame_host_->web_ui_type(); | 2372 WebUI::TypeID previous_web_ui_type = render_frame_host_->web_ui_type(); |
| 2392 bool changed_web_ui = render_frame_host_->UpdateWebUI(dest_url, bindings); | 2373 bool changed_web_ui = render_frame_host_->UpdateWebUI(dest_url, bindings); |
| 2393 | 2374 |
| 2394 // If a change in WebUI happened, check this is an acceptable case. | 2375 // If a change in WebUI happened, check this is an acceptable case. |
| 2395 CHECK(!changed_web_ui || | 2376 CHECK(!changed_web_ui || |
| 2396 IsAcceptableWebUITransition(previous_web_ui_type, dest_url, | 2377 IsAcceptableWebUITransition(previous_web_ui_type, dest_url, |
| 2397 dest_is_restore)); | 2378 dest_is_restore)); |
| 2398 | 2379 |
| 2399 // If there is a WebUI in the current RenderFrameHost, it will navigate. | 2380 // If there is a WebUI in the current RenderFrameHost, it will navigate. |
| 2400 current_web_ui_is_navigating_ = !!render_frame_host_->web_ui(); | 2381 current_web_ui_is_navigating_ = !!render_frame_host_->web_ui(); |
| 2401 DCHECK_EQ(GetNavigatingWebUI(), render_frame_host_->web_ui()); | |
| 2402 | 2382 |
| 2403 // If the current RenderFrameHost has a WebUI and the associated RenderFrame | 2383 // If the current RenderFrameHost has a WebUI and the associated RenderFrame |
| 2404 // is alive, notify to the WebUI that the RenderView is being created or | 2384 // is alive, notify to the WebUI that the RenderView is being created or |
| 2405 // reused depending on whether the WebUI was changed or not. | 2385 // reused depending on whether the WebUI was changed or not. |
| 2406 if (GetNavigatingWebUI() && render_frame_host_->IsRenderFrameLive()) { | 2386 if (render_frame_host_->web_ui() && render_frame_host_->IsRenderFrameLive()) { |
| 2407 if (changed_web_ui) { | 2387 if (changed_web_ui) { |
| 2408 GetNavigatingWebUI()->RenderViewCreated( | 2388 render_frame_host_->web_ui()->RenderViewCreated( |
| 2409 render_frame_host_->render_view_host()); | 2389 render_frame_host_->render_view_host()); |
| 2410 } else { | 2390 } else { |
| 2411 GetNavigatingWebUI()->RenderViewReused( | 2391 render_frame_host_->web_ui()->RenderViewReused( |
| 2412 render_frame_host_->render_view_host(), | 2392 render_frame_host_->render_view_host(), |
| 2413 frame_tree_node_->IsMainFrame()); | 2393 frame_tree_node_->IsMainFrame()); |
| 2414 } | 2394 } |
| 2415 } | 2395 } |
| 2416 | 2396 |
| 2417 // The renderer can exit view source mode when any error or cancellation | 2397 // The renderer can exit view source mode when any error or cancellation |
| 2418 // happen. We must overwrite to recover the mode. | 2398 // happen. We must overwrite to recover the mode. |
| 2419 if (dest_is_view_source_mode) { | 2399 if (dest_is_view_source_mode) { |
| 2420 render_frame_host_->render_view_host()->Send( | 2400 render_frame_host_->render_view_host()->Send( |
| 2421 new ViewMsg_EnableViewSourceMode( | 2401 new ViewMsg_EnableViewSourceMode( |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2673 } else { | 2653 } else { |
| 2674 // Going from having to not having a WebUI is acceptable for: | 2654 // Going from having to not having a WebUI is acceptable for: |
| 2675 // - Navigating to a special, renderer controlled URL. | 2655 // - Navigating to a special, renderer controlled URL. |
| 2676 DCHECK(IsRendererDebugURL( | 2656 DCHECK(IsRendererDebugURL( |
| 2677 SiteInstanceImpl::GetEffectiveURL(browser_context, dest_url))); | 2657 SiteInstanceImpl::GetEffectiveURL(browser_context, dest_url))); |
| 2678 } | 2658 } |
| 2679 return true; | 2659 return true; |
| 2680 } | 2660 } |
| 2681 | 2661 |
| 2682 } // namespace content | 2662 } // namespace content |
| OLD | NEW |