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 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 GetMainFrame()->RequestAXTreeSnapshot(callback); | 833 GetMainFrame()->RequestAXTreeSnapshot(callback); |
834 } | 834 } |
835 | 835 |
836 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, | 836 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, |
837 const std::string& frame_name) { | 837 const std::string& frame_name) { |
838 DCHECK(!frame_name.empty()); | 838 DCHECK(!frame_name.empty()); |
839 return CreateWebUI(url, frame_name); | 839 return CreateWebUI(url, frame_name); |
840 } | 840 } |
841 | 841 |
842 WebUI* WebContentsImpl::GetWebUI() const { | 842 WebUI* WebContentsImpl::GetWebUI() const { |
843 return GetRenderManager()->web_ui() | 843 if (GetCommittedWebUI()) |
844 ? GetRenderManager()->web_ui() | 844 return GetCommittedWebUI(); |
845 : GetRenderManager()->GetNavigatingWebUI(); | 845 |
| 846 RenderFrameHostImpl* upcoming_frame_host = nullptr; |
| 847 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 848 switches::kEnableBrowserSideNavigation)) { |
| 849 upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
| 850 } else { |
| 851 upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
| 852 } |
| 853 if (upcoming_frame_host) |
| 854 return upcoming_frame_host->web_ui(); |
| 855 |
| 856 return nullptr; |
846 } | 857 } |
847 | 858 |
848 WebUI* WebContentsImpl::GetCommittedWebUI() const { | 859 WebUI* WebContentsImpl::GetCommittedWebUI() const { |
849 return GetRenderManager()->web_ui(); | 860 return frame_tree_.root()->current_frame_host()->web_ui(); |
850 } | 861 } |
851 | 862 |
852 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { | 863 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { |
853 if (GetUserAgentOverride() == override) | 864 if (GetUserAgentOverride() == override) |
854 return; | 865 return; |
855 | 866 |
856 renderer_preferences_.user_agent_override = override; | 867 renderer_preferences_.user_agent_override = override; |
857 | 868 |
858 // Send the new override string to the renderer. | 869 // Send the new override string to the renderer. |
859 RenderViewHost* host = GetRenderViewHost(); | 870 RenderViewHost* host = GetRenderViewHost(); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 const base::string16& WebContentsImpl::GetTitle() const { | 917 const base::string16& WebContentsImpl::GetTitle() const { |
907 // Transient entries take precedence. They are used for interstitial pages | 918 // Transient entries take precedence. They are used for interstitial pages |
908 // that are shown on top of existing pages. | 919 // that are shown on top of existing pages. |
909 NavigationEntry* entry = controller_.GetTransientEntry(); | 920 NavigationEntry* entry = controller_.GetTransientEntry(); |
910 std::string accept_languages = | 921 std::string accept_languages = |
911 GetContentClient()->browser()->GetAcceptLangs( | 922 GetContentClient()->browser()->GetAcceptLangs( |
912 GetBrowserContext()); | 923 GetBrowserContext()); |
913 if (entry) { | 924 if (entry) { |
914 return entry->GetTitleForDisplay(accept_languages); | 925 return entry->GetTitleForDisplay(accept_languages); |
915 } | 926 } |
916 WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI() | 927 |
917 ? GetRenderManager()->GetNavigatingWebUI() | 928 RenderFrameHostImpl* upcoming_frame_host = nullptr; |
918 : GetRenderManager()->web_ui(); | 929 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 930 switches::kEnableBrowserSideNavigation)) { |
| 931 upcoming_frame_host = GetRenderManager()->speculative_frame_host(); |
| 932 } else { |
| 933 upcoming_frame_host = GetRenderManager()->pending_frame_host(); |
| 934 } |
| 935 WebUI* our_web_ui = upcoming_frame_host |
| 936 ? upcoming_frame_host->web_ui() |
| 937 : GetRenderManager()->current_frame_host()->web_ui(); |
| 938 |
919 if (our_web_ui) { | 939 if (our_web_ui) { |
920 // Don't override the title in view source mode. | 940 // Don't override the title in view source mode. |
921 entry = controller_.GetVisibleEntry(); | 941 entry = controller_.GetVisibleEntry(); |
922 if (!(entry && entry->IsViewSourceMode())) { | 942 if (!(entry && entry->IsViewSourceMode())) { |
923 // Give the Web UI the chance to override our title. | 943 // Give the Web UI the chance to override our title. |
924 const base::string16& title = our_web_ui->GetOverriddenTitle(); | 944 const base::string16& title = our_web_ui->GetOverriddenTitle(); |
925 if (!title.empty()) | 945 if (!title.empty()) |
926 return title; | 946 return title; |
927 } | 947 } |
928 } | 948 } |
(...skipping 3716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4645 return NULL; | 4665 return NULL; |
4646 } | 4666 } |
4647 | 4667 |
4648 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4668 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
4649 force_disable_overscroll_content_ = force_disable; | 4669 force_disable_overscroll_content_ = force_disable; |
4650 if (view_) | 4670 if (view_) |
4651 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4671 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
4652 } | 4672 } |
4653 | 4673 |
4654 } // namespace content | 4674 } // namespace content |
OLD | NEW |