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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 23022006: Remove GetActiveEntry usage from content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 (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/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 856 matching lines...) Expand 10 before | Expand all | Expand 10 after
867 867
868 renderer_preferences_.user_agent_override = override; 868 renderer_preferences_.user_agent_override = override;
869 869
870 // Send the new override string to the renderer. 870 // Send the new override string to the renderer.
871 RenderViewHost* host = GetRenderViewHost(); 871 RenderViewHost* host = GetRenderViewHost();
872 if (host) 872 if (host)
873 host->SyncRendererPrefs(); 873 host->SyncRendererPrefs();
874 874
875 // Reload the page if a load is currently in progress to avoid having 875 // Reload the page if a load is currently in progress to avoid having
876 // different parts of the page loaded using different user agents. 876 // different parts of the page loaded using different user agents.
877 NavigationEntry* entry = controller_.GetActiveEntry(); 877 NavigationEntry* entry = controller_.GetVisibleEntry();
878 if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent()) 878 if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent())
879 controller_.ReloadIgnoringCache(true); 879 controller_.ReloadIgnoringCache(true);
880 880
881 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 881 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
882 UserAgentOverrideSet(override)); 882 UserAgentOverrideSet(override));
883 } 883 }
884 884
885 const std::string& WebContentsImpl::GetUserAgentOverride() const { 885 const std::string& WebContentsImpl::GetUserAgentOverride() const {
886 return renderer_preferences_.user_agent_override; 886 return renderer_preferences_.user_agent_override;
887 } 887 }
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after
1905 if (!GetURL().is_valid()) 1905 if (!GetURL().is_valid())
1906 return; 1906 return;
1907 bool is_main_frame = (url == GetURL()); 1907 bool is_main_frame = (url == GetURL());
1908 1908
1909 DownloadManager* dlm = 1909 DownloadManager* dlm =
1910 BrowserContext::GetDownloadManager(GetBrowserContext()); 1910 BrowserContext::GetDownloadManager(GetBrowserContext());
1911 if (!dlm) 1911 if (!dlm)
1912 return; 1912 return;
1913 int64 post_id = -1; 1913 int64 post_id = -1;
1914 if (is_main_frame) { 1914 if (is_main_frame) {
1915 const NavigationEntry* entry = controller_.GetActiveEntry(); 1915 const NavigationEntry* entry = controller_.GetVisibleEntry();
Charlie Reis 2013/08/16 22:10:14 I have similar concerns here as with the SavePacka
nasko 2013/09/12 17:56:31 Done.
1916 if (entry) 1916 if (entry)
1917 post_id = entry->GetPostID(); 1917 post_id = entry->GetPostID();
1918 } 1918 }
1919 scoped_ptr<DownloadUrlParameters> params( 1919 scoped_ptr<DownloadUrlParameters> params(
1920 DownloadUrlParameters::FromWebContents(this, url)); 1920 DownloadUrlParameters::FromWebContents(this, url));
1921 params->set_referrer(referrer); 1921 params->set_referrer(referrer);
1922 params->set_post_id(post_id); 1922 params->set_post_id(post_id);
1923 params->set_prefer_cache(true); 1923 params->set_prefer_cache(true);
1924 if (post_id >= 0) 1924 if (post_id >= 0)
1925 params->set_method("POST"); 1925 params->set_method("POST");
1926 params->set_prompt(true); 1926 params->set_prompt(true);
1927 dlm->DownloadUrl(params.Pass()); 1927 dlm->DownloadUrl(params.Pass());
1928 } 1928 }
1929 1929
1930 void WebContentsImpl::GenerateMHTML( 1930 void WebContentsImpl::GenerateMHTML(
1931 const base::FilePath& file, 1931 const base::FilePath& file,
1932 const base::Callback<void(const base::FilePath&, int64)>& callback) { 1932 const base::Callback<void(const base::FilePath&, int64)>& callback) {
1933 MHTMLGenerationManager::GetInstance()->GenerateMHTML(this, file, callback); 1933 MHTMLGenerationManager::GetInstance()->GenerateMHTML(this, file, callback);
1934 } 1934 }
1935 1935
1936 bool WebContentsImpl::IsActiveEntry(int32 page_id) { 1936 bool WebContentsImpl::IsActiveEntry(int32 page_id) {
Charlie Reis 2013/08/16 22:10:14 We should at least have a TODO to change this to I
nasko 2013/09/12 17:56:31 Done.
1937 NavigationEntryImpl* active_entry = 1937 NavigationEntryImpl* active_entry =
1938 NavigationEntryImpl::FromNavigationEntry(controller_.GetActiveEntry()); 1938 NavigationEntryImpl::FromNavigationEntry(controller_.GetVisibleEntry());
1939 return (active_entry != NULL && 1939 return (active_entry != NULL &&
1940 active_entry->site_instance() == GetSiteInstance() && 1940 active_entry->site_instance() == GetSiteInstance() &&
1941 active_entry->GetPageID() == page_id); 1941 active_entry->GetPageID() == page_id);
1942 } 1942 }
1943 1943
1944 const std::string& WebContentsImpl::GetContentsMimeType() const { 1944 const std::string& WebContentsImpl::GetContentsMimeType() const {
1945 return contents_mime_type_; 1945 return contents_mime_type_;
1946 } 1946 }
1947 1947
1948 bool WebContentsImpl::WillNotifyDisconnection() const { 1948 bool WebContentsImpl::WillNotifyDisconnection() const {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
2013 HostZoomMap::GetForBrowserContext(GetBrowserContext())); 2013 HostZoomMap::GetForBrowserContext(GetBrowserContext()));
2014 if (!zoom_map) 2014 if (!zoom_map)
2015 return 0; 2015 return 0;
2016 2016
2017 double zoom_level; 2017 double zoom_level;
2018 if (temporary_zoom_settings_) { 2018 if (temporary_zoom_settings_) {
2019 zoom_level = zoom_map->GetTemporaryZoomLevel( 2019 zoom_level = zoom_map->GetTemporaryZoomLevel(
2020 GetRenderProcessHost()->GetID(), GetRenderViewHost()->GetRoutingID()); 2020 GetRenderProcessHost()->GetID(), GetRenderViewHost()->GetRoutingID());
2021 } else { 2021 } else {
2022 GURL url; 2022 GURL url;
2023 NavigationEntry* active_entry = GetController().GetActiveEntry(); 2023 NavigationEntry* active_entry = GetController().GetVisibleEntry();
Charlie Reis 2013/08/16 22:10:14 nit: visible_entry Actually, this is broken. It'
nasko 2013/09/12 17:56:31 Done.
2024 // Since zoom map is updated using rewritten URL, use rewritten URL 2024 // Since zoom map is updated using rewritten URL, use rewritten URL
2025 // to get the zoom level. 2025 // to get the zoom level.
2026 url = active_entry ? active_entry->GetURL() : GURL::EmptyGURL(); 2026 url = active_entry ? active_entry->GetURL() : GURL::EmptyGURL();
2027 zoom_level = zoom_map->GetZoomLevelForHostAndScheme(url.scheme(), 2027 zoom_level = zoom_map->GetZoomLevelForHostAndScheme(url.scheme(),
2028 net::GetHostOrSpecFromURL(url)); 2028 net::GetHostOrSpecFromURL(url));
2029 } 2029 }
2030 return zoom_level; 2030 return zoom_level;
2031 } 2031 }
2032 2032
2033 int WebContentsImpl::GetZoomPercent(bool* enable_increment, 2033 int WebContentsImpl::GetZoomPercent(bool* enable_increment,
2034 bool* enable_decrement) const { 2034 bool* enable_decrement) const {
2035 *enable_decrement = *enable_increment = false; 2035 *enable_decrement = *enable_increment = false;
2036 // Calculate the zoom percent from the factor. Round up to the nearest whole 2036 // Calculate the zoom percent from the factor. Round up to the nearest whole
2037 // number. 2037 // number.
2038 int percent = static_cast<int>( 2038 int percent = static_cast<int>(
2039 ZoomLevelToZoomFactor(GetZoomLevel()) * 100 + 0.5); 2039 ZoomLevelToZoomFactor(GetZoomLevel()) * 100 + 0.5);
2040 *enable_decrement = percent > minimum_zoom_percent_; 2040 *enable_decrement = percent > minimum_zoom_percent_;
2041 *enable_increment = percent < maximum_zoom_percent_; 2041 *enable_increment = percent < maximum_zoom_percent_;
2042 return percent; 2042 return percent;
2043 } 2043 }
2044 2044
2045 void WebContentsImpl::ViewSource() { 2045 void WebContentsImpl::ViewSource() {
2046 if (!delegate_) 2046 if (!delegate_)
2047 return; 2047 return;
2048 2048
2049 NavigationEntry* active_entry = GetController().GetActiveEntry(); 2049 NavigationEntry* active_entry = GetController().GetVisibleEntry();
Charlie Reis 2013/08/16 22:10:14 nit: visible_entry Is this correct? I'm seeing a
nasko 2013/09/12 17:56:31 The URL passed in isn't used. Eventually down the
2050 if (!active_entry) 2050 if (!active_entry)
2051 return; 2051 return;
2052 2052
2053 delegate_->ViewSourceForTab(this, active_entry->GetURL()); 2053 delegate_->ViewSourceForTab(this, active_entry->GetURL());
2054 } 2054 }
2055 2055
2056 void WebContentsImpl::ViewFrameSource(const GURL& url, 2056 void WebContentsImpl::ViewFrameSource(const GURL& url,
2057 const PageState& page_state) { 2057 const PageState& page_state) {
2058 if (!delegate_) 2058 if (!delegate_)
2059 return; 2059 return;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2100 uint32_t max_image_size, 2100 uint32_t max_image_size,
2101 const ImageDownloadCallback& callback) { 2101 const ImageDownloadCallback& callback) {
2102 RenderViewHost* host = GetRenderViewHost(); 2102 RenderViewHost* host = GetRenderViewHost();
2103 int id = StartDownload( 2103 int id = StartDownload(
2104 host, url, is_favicon, preferred_image_size, max_image_size); 2104 host, url, is_favicon, preferred_image_size, max_image_size);
2105 image_download_map_[id] = callback; 2105 image_download_map_[id] = callback;
2106 return id; 2106 return id;
2107 } 2107 }
2108 2108
2109 bool WebContentsImpl::FocusLocationBarByDefault() { 2109 bool WebContentsImpl::FocusLocationBarByDefault() {
2110 NavigationEntry* entry = controller_.GetActiveEntry(); 2110 NavigationEntry* entry = controller_.GetVisibleEntry();
2111 if (entry && entry->GetURL() == GURL(kAboutBlankURL)) 2111 if (entry && entry->GetURL() == GURL(kAboutBlankURL))
2112 return true; 2112 return true;
2113 return delegate_ && delegate_->ShouldFocusLocationBarByDefault(this); 2113 return delegate_ && delegate_->ShouldFocusLocationBarByDefault(this);
2114 } 2114 }
2115 2115
2116 void WebContentsImpl::SetFocusToLocationBar(bool select_all) { 2116 void WebContentsImpl::SetFocusToLocationBar(bool select_all) {
2117 if (delegate_) 2117 if (delegate_)
2118 delegate_->SetFocusToLocationBar(select_all); 2118 delegate_->SetFocusToLocationBar(select_all);
2119 } 2119 }
2120 2120
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
2856 if (static_cast<RenderViewHostImpl*>(render_view_host)->is_swapped_out()) 2856 if (static_cast<RenderViewHostImpl*>(render_view_host)->is_swapped_out())
2857 return; 2857 return;
2858 2858
2859 if (delegate_) 2859 if (delegate_)
2860 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent()); 2860 view_->SetOverscrollControllerEnabled(delegate_->CanOverscrollContent());
2861 2861
2862 NotificationService::current()->Notify( 2862 NotificationService::current()->Notify(
2863 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, 2863 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
2864 Source<WebContents>(this), 2864 Source<WebContents>(this),
2865 Details<RenderViewHost>(render_view_host)); 2865 Details<RenderViewHost>(render_view_host));
2866 NavigationEntry* entry = controller_.GetActiveEntry(); 2866 NavigationEntry* entry = controller_.GetVisibleEntry();
Charlie Reis 2013/08/16 22:10:14 Is this buggy? Depends on whether render_view_hos
nasko 2013/09/12 17:56:31 I'm not sure I follow your comment, but the code h
2867 if (!entry) 2867 if (!entry)
2868 return; 2868 return;
2869 2869
2870 // When we're creating views, we're still doing initial setup, so we always 2870 // When we're creating views, we're still doing initial setup, so we always
2871 // use the pending Web UI rather than any possibly existing committed one. 2871 // use the pending Web UI rather than any possibly existing committed one.
2872 if (render_manager_.pending_web_ui()) 2872 if (render_manager_.pending_web_ui())
2873 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host); 2873 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host);
2874 2874
2875 if (entry->IsViewSourceMode()) { 2875 if (entry->IsViewSourceMode()) {
2876 // Put the renderer in view source mode. 2876 // Put the renderer in view source mode.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
2995 // For AUTO_SUBFRAME navigations, an event for the main frame is generated 2995 // For AUTO_SUBFRAME navigations, an event for the main frame is generated
2996 // that is not recorded in the navigation history. For the purpose of 2996 // that is not recorded in the navigation history. For the purpose of
2997 // tracking navigation events, we treat this event as a sub frame navigation 2997 // tracking navigation events, we treat this event as a sub frame navigation
2998 // event. 2998 // event.
2999 bool is_main_frame = did_navigate ? details.is_main_frame : false; 2999 bool is_main_frame = did_navigate ? details.is_main_frame : false;
3000 PageTransition transition_type = params.transition; 3000 PageTransition transition_type = params.transition;
3001 // Whether or not a page transition was triggered by going backward or 3001 // Whether or not a page transition was triggered by going backward or
3002 // forward in the history is only stored in the navigation controller's 3002 // forward in the history is only stored in the navigation controller's
3003 // entry list. 3003 // entry list.
3004 if (did_navigate && 3004 if (did_navigate &&
3005 (controller_.GetActiveEntry()->GetTransitionType() & 3005 (controller_.GetVisibleEntry()->GetTransitionType() &
Charlie Reis 2013/08/16 22:10:14 Can this ever be different from GetLastCommittedEn
nasko 2013/09/12 17:56:31 I think you are right and it can't be different if
3006 PAGE_TRANSITION_FORWARD_BACK)) { 3006 PAGE_TRANSITION_FORWARD_BACK)) {
3007 transition_type = PageTransitionFromInt( 3007 transition_type = PageTransitionFromInt(
3008 params.transition | PAGE_TRANSITION_FORWARD_BACK); 3008 params.transition | PAGE_TRANSITION_FORWARD_BACK);
3009 } 3009 }
3010 // Notify observers about the commit of the provisional load. 3010 // Notify observers about the commit of the provisional load.
3011 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 3011 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
3012 DidCommitProvisionalLoadForFrame(params.frame_id, 3012 DidCommitProvisionalLoadForFrame(params.frame_id,
3013 is_main_frame, params.url, transition_type, rvh)); 3013 is_main_frame, params.url, transition_type, rvh));
3014 } 3014 }
3015 3015
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
3418 const string16& source_id) { 3418 const string16& source_id) {
3419 if (!delegate_) 3419 if (!delegate_)
3420 return false; 3420 return false;
3421 return delegate_->AddMessageToConsole(this, level, message, line_no, 3421 return delegate_->AddMessageToConsole(this, level, message, line_no,
3422 source_id); 3422 source_id);
3423 } 3423 }
3424 3424
3425 WebPreferences WebContentsImpl::GetWebkitPrefs() { 3425 WebPreferences WebContentsImpl::GetWebkitPrefs() {
3426 // We want to base the page config off of the real URL, rather than the 3426 // We want to base the page config off of the real URL, rather than the
3427 // display URL. 3427 // display URL.
3428 GURL url = controller_.GetActiveEntry() 3428 GURL url = controller_.GetVisibleEntry()
Charlie Reis 2013/08/16 22:10:14 This looks buggy, since GetVisibleEntry does not m
nasko 2013/09/12 17:56:31 Done.
3429 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL(); 3429 ? controller_.GetVisibleEntry()->GetURL() : GURL::EmptyGURL();
3430 return GetWebkitPrefs(GetRenderViewHost(), url); 3430 return GetWebkitPrefs(GetRenderViewHost(), url);
3431 } 3431 }
3432 3432
3433 int WebContentsImpl::CreateSwappedOutRenderView( 3433 int WebContentsImpl::CreateSwappedOutRenderView(
3434 SiteInstance* instance) { 3434 SiteInstance* instance) {
3435 return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE, true); 3435 return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE, true);
3436 } 3436 }
3437 3437
3438 void WebContentsImpl::OnUserGesture() { 3438 void WebContentsImpl::OnUserGesture() {
3439 // Notify observers. 3439 // Notify observers.
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
3721 } 3721 }
3722 3722
3723 void WebContentsImpl::ClearAllPowerSaveBlockers() { 3723 void WebContentsImpl::ClearAllPowerSaveBlockers() {
3724 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin()); 3724 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin());
3725 i != power_save_blockers_.end(); ++i) 3725 i != power_save_blockers_.end(); ++i)
3726 STLDeleteValues(&power_save_blockers_[i->first]); 3726 STLDeleteValues(&power_save_blockers_[i->first]);
3727 power_save_blockers_.clear(); 3727 power_save_blockers_.clear();
3728 } 3728 }
3729 3729
3730 } // namespace content 3730 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698