OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
839 GetMainFrame()->RequestAXTreeSnapshot(callback); | 839 GetMainFrame()->RequestAXTreeSnapshot(callback); |
840 } | 840 } |
841 | 841 |
842 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, | 842 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, |
843 const std::string& frame_name) { | 843 const std::string& frame_name) { |
844 DCHECK(!frame_name.empty()); | 844 DCHECK(!frame_name.empty()); |
845 return CreateWebUI(url, frame_name); | 845 return CreateWebUI(url, frame_name); |
846 } | 846 } |
847 | 847 |
848 WebUI* WebContentsImpl::GetWebUI() const { | 848 WebUI* WebContentsImpl::GetWebUI() const { |
849 return GetRenderManager()->web_ui() | 849 if (GetCommittedWebUI()) |
850 ? GetRenderManager()->web_ui() | 850 return GetCommittedWebUI(); |
851 : GetRenderManager()->GetNavigatingWebUI(); | 851 |
| 852 RenderFrameHostImpl* upcoming_frame_host = nullptr; |
| 853 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 854 switches::kEnableBrowserSideNavigation)) { |
| 855 upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
| 856 } else { |
| 857 upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
| 858 } |
| 859 if (upcoming_frame_host) |
| 860 return upcoming_frame_host->web_ui(); |
| 861 |
| 862 return nullptr; |
852 } | 863 } |
853 | 864 |
854 WebUI* WebContentsImpl::GetCommittedWebUI() const { | 865 WebUI* WebContentsImpl::GetCommittedWebUI() const { |
855 return GetRenderManager()->web_ui(); | 866 return frame_tree_.root()->current_frame_host()->web_ui(); |
856 } | 867 } |
857 | 868 |
858 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { | 869 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { |
859 if (GetUserAgentOverride() == override) | 870 if (GetUserAgentOverride() == override) |
860 return; | 871 return; |
861 | 872 |
862 renderer_preferences_.user_agent_override = override; | 873 renderer_preferences_.user_agent_override = override; |
863 | 874 |
864 // Send the new override string to the renderer. | 875 // Send the new override string to the renderer. |
865 RenderViewHost* host = GetRenderViewHost(); | 876 RenderViewHost* host = GetRenderViewHost(); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
912 const base::string16& WebContentsImpl::GetTitle() const { | 923 const base::string16& WebContentsImpl::GetTitle() const { |
913 // Transient entries take precedence. They are used for interstitial pages | 924 // Transient entries take precedence. They are used for interstitial pages |
914 // that are shown on top of existing pages. | 925 // that are shown on top of existing pages. |
915 NavigationEntry* entry = controller_.GetTransientEntry(); | 926 NavigationEntry* entry = controller_.GetTransientEntry(); |
916 std::string accept_languages = | 927 std::string accept_languages = |
917 GetContentClient()->browser()->GetAcceptLangs( | 928 GetContentClient()->browser()->GetAcceptLangs( |
918 GetBrowserContext()); | 929 GetBrowserContext()); |
919 if (entry) { | 930 if (entry) { |
920 return entry->GetTitleForDisplay(accept_languages); | 931 return entry->GetTitleForDisplay(accept_languages); |
921 } | 932 } |
922 WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI() | 933 |
923 ? GetRenderManager()->GetNavigatingWebUI() | 934 RenderFrameHostImpl* upcoming_frame_host = nullptr; |
924 : GetRenderManager()->web_ui(); | 935 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 936 switches::kEnableBrowserSideNavigation)) { |
| 937 upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
| 938 } else { |
| 939 upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
| 940 } |
| 941 WebUI* our_web_ui = upcoming_frame_host |
| 942 ? upcoming_frame_host->web_ui() |
| 943 : GetRenderManager()->current_frame_host()->web_ui(); |
| 944 |
925 if (our_web_ui) { | 945 if (our_web_ui) { |
926 // Don't override the title in view source mode. | 946 // Don't override the title in view source mode. |
927 entry = controller_.GetVisibleEntry(); | 947 entry = controller_.GetVisibleEntry(); |
928 if (!(entry && entry->IsViewSourceMode())) { | 948 if (!(entry && entry->IsViewSourceMode())) { |
929 // Give the Web UI the chance to override our title. | 949 // Give the Web UI the chance to override our title. |
930 const base::string16& title = our_web_ui->GetOverriddenTitle(); | 950 const base::string16& title = our_web_ui->GetOverriddenTitle(); |
931 if (!title.empty()) | 951 if (!title.empty()) |
932 return title; | 952 return title; |
933 } | 953 } |
934 } | 954 } |
(...skipping 3792 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4727 return NULL; | 4747 return NULL; |
4728 } | 4748 } |
4729 | 4749 |
4730 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4750 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
4731 force_disable_overscroll_content_ = force_disable; | 4751 force_disable_overscroll_content_ = force_disable; |
4732 if (view_) | 4752 if (view_) |
4733 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4753 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
4734 } | 4754 } |
4735 | 4755 |
4736 } // namespace content | 4756 } // namespace content |
OLD | NEW |