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

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: Fixing android compile break. Created 7 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 | 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 876 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 887
888 renderer_preferences_.user_agent_override = override; 888 renderer_preferences_.user_agent_override = override;
889 889
890 // Send the new override string to the renderer. 890 // Send the new override string to the renderer.
891 RenderViewHost* host = GetRenderViewHost(); 891 RenderViewHost* host = GetRenderViewHost();
892 if (host) 892 if (host)
893 host->SyncRendererPrefs(); 893 host->SyncRendererPrefs();
894 894
895 // Reload the page if a load is currently in progress to avoid having 895 // Reload the page if a load is currently in progress to avoid having
896 // different parts of the page loaded using different user agents. 896 // different parts of the page loaded using different user agents.
897 NavigationEntry* entry = controller_.GetActiveEntry(); 897 NavigationEntry* entry = controller_.GetVisibleEntry();
898 if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent()) 898 if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent())
899 controller_.ReloadIgnoringCache(true); 899 controller_.ReloadIgnoringCache(true);
900 900
901 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 901 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
902 UserAgentOverrideSet(override)); 902 UserAgentOverrideSet(override));
903 } 903 }
904 904
905 const std::string& WebContentsImpl::GetUserAgentOverride() const { 905 const std::string& WebContentsImpl::GetUserAgentOverride() const {
906 return renderer_preferences_.user_agent_override; 906 return renderer_preferences_.user_agent_override;
907 } 907 }
(...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after
1949 if (!GetURL().is_valid()) 1949 if (!GetURL().is_valid())
1950 return; 1950 return;
1951 bool is_main_frame = (url == GetURL()); 1951 bool is_main_frame = (url == GetURL());
1952 1952
1953 DownloadManager* dlm = 1953 DownloadManager* dlm =
1954 BrowserContext::GetDownloadManager(GetBrowserContext()); 1954 BrowserContext::GetDownloadManager(GetBrowserContext());
1955 if (!dlm) 1955 if (!dlm)
1956 return; 1956 return;
1957 int64 post_id = -1; 1957 int64 post_id = -1;
1958 if (is_main_frame) { 1958 if (is_main_frame) {
1959 const NavigationEntry* entry = controller_.GetActiveEntry(); 1959 const NavigationEntry* entry = controller_.GetLastCommittedEntry();
1960 if (entry) 1960 if (entry)
1961 post_id = entry->GetPostID(); 1961 post_id = entry->GetPostID();
1962 } 1962 }
1963 scoped_ptr<DownloadUrlParameters> params( 1963 scoped_ptr<DownloadUrlParameters> params(
1964 DownloadUrlParameters::FromWebContents(this, url)); 1964 DownloadUrlParameters::FromWebContents(this, url));
1965 params->set_referrer(referrer); 1965 params->set_referrer(referrer);
1966 params->set_post_id(post_id); 1966 params->set_post_id(post_id);
1967 params->set_prefer_cache(true); 1967 params->set_prefer_cache(true);
1968 if (post_id >= 0) 1968 if (post_id >= 0)
1969 params->set_method("POST"); 1969 params->set_method("POST");
1970 params->set_prompt(true); 1970 params->set_prompt(true);
1971 dlm->DownloadUrl(params.Pass()); 1971 dlm->DownloadUrl(params.Pass());
1972 } 1972 }
1973 1973
1974 void WebContentsImpl::GenerateMHTML( 1974 void WebContentsImpl::GenerateMHTML(
1975 const base::FilePath& file, 1975 const base::FilePath& file,
1976 const base::Callback<void(int64)>& callback) { 1976 const base::Callback<void(int64)>& callback) {
1977 MHTMLGenerationManager::GetInstance()->SaveMHTML(this, file, callback); 1977 MHTMLGenerationManager::GetInstance()->SaveMHTML(this, file, callback);
1978 } 1978 }
1979 1979
1980 // TODO(nasko): Rename this method to IsVisibleEntry.
1980 bool WebContentsImpl::IsActiveEntry(int32 page_id) { 1981 bool WebContentsImpl::IsActiveEntry(int32 page_id) {
1981 NavigationEntryImpl* active_entry = 1982 NavigationEntryImpl* visible_entry =
1982 NavigationEntryImpl::FromNavigationEntry(controller_.GetActiveEntry()); 1983 NavigationEntryImpl::FromNavigationEntry(controller_.GetVisibleEntry());
1983 return (active_entry != NULL && 1984 return (visible_entry != NULL &&
1984 active_entry->site_instance() == GetSiteInstance() && 1985 visible_entry->site_instance() == GetSiteInstance() &&
1985 active_entry->GetPageID() == page_id); 1986 visible_entry->GetPageID() == page_id);
1986 } 1987 }
1987 1988
1988 const std::string& WebContentsImpl::GetContentsMimeType() const { 1989 const std::string& WebContentsImpl::GetContentsMimeType() const {
1989 return contents_mime_type_; 1990 return contents_mime_type_;
1990 } 1991 }
1991 1992
1992 bool WebContentsImpl::WillNotifyDisconnection() const { 1993 bool WebContentsImpl::WillNotifyDisconnection() const {
1993 return notify_disconnection_; 1994 return notify_disconnection_;
1994 } 1995 }
1995 1996
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2057 HostZoomMap::GetForBrowserContext(GetBrowserContext())); 2058 HostZoomMap::GetForBrowserContext(GetBrowserContext()));
2058 if (!zoom_map) 2059 if (!zoom_map)
2059 return 0; 2060 return 0;
2060 2061
2061 double zoom_level; 2062 double zoom_level;
2062 if (temporary_zoom_settings_) { 2063 if (temporary_zoom_settings_) {
2063 zoom_level = zoom_map->GetTemporaryZoomLevel( 2064 zoom_level = zoom_map->GetTemporaryZoomLevel(
2064 GetRenderProcessHost()->GetID(), GetRenderViewHost()->GetRoutingID()); 2065 GetRenderProcessHost()->GetID(), GetRenderViewHost()->GetRoutingID());
2065 } else { 2066 } else {
2066 GURL url; 2067 GURL url;
2067 NavigationEntry* active_entry = GetController().GetActiveEntry(); 2068 NavigationEntry* entry = GetController().GetLastCommittedEntry();
2068 // Since zoom map is updated using rewritten URL, use rewritten URL 2069 // Since zoom map is updated using rewritten URL, use rewritten URL
2069 // to get the zoom level. 2070 // to get the zoom level.
2070 url = active_entry ? active_entry->GetURL() : GURL::EmptyGURL(); 2071 url = entry ? entry->GetURL() : GURL::EmptyGURL();
2071 zoom_level = zoom_map->GetZoomLevelForHostAndScheme(url.scheme(), 2072 zoom_level = zoom_map->GetZoomLevelForHostAndScheme(url.scheme(),
2072 net::GetHostOrSpecFromURL(url)); 2073 net::GetHostOrSpecFromURL(url));
2073 } 2074 }
2074 return zoom_level; 2075 return zoom_level;
2075 } 2076 }
2076 2077
2077 int WebContentsImpl::GetZoomPercent(bool* enable_increment, 2078 int WebContentsImpl::GetZoomPercent(bool* enable_increment,
2078 bool* enable_decrement) const { 2079 bool* enable_decrement) const {
2079 *enable_decrement = *enable_increment = false; 2080 *enable_decrement = *enable_increment = false;
2080 // Calculate the zoom percent from the factor. Round up to the nearest whole 2081 // Calculate the zoom percent from the factor. Round up to the nearest whole
2081 // number. 2082 // number.
2082 int percent = static_cast<int>( 2083 int percent = static_cast<int>(
2083 ZoomLevelToZoomFactor(GetZoomLevel()) * 100 + 0.5); 2084 ZoomLevelToZoomFactor(GetZoomLevel()) * 100 + 0.5);
2084 *enable_decrement = percent > minimum_zoom_percent_; 2085 *enable_decrement = percent > minimum_zoom_percent_;
2085 *enable_increment = percent < maximum_zoom_percent_; 2086 *enable_increment = percent < maximum_zoom_percent_;
2086 return percent; 2087 return percent;
2087 } 2088 }
2088 2089
2089 void WebContentsImpl::ViewSource() { 2090 void WebContentsImpl::ViewSource() {
2090 if (!delegate_) 2091 if (!delegate_)
2091 return; 2092 return;
2092 2093
2093 NavigationEntry* active_entry = GetController().GetActiveEntry(); 2094 NavigationEntry* entry = GetController().GetLastCommittedEntry();
2094 if (!active_entry) 2095 if (!entry)
2095 return; 2096 return;
2096 2097
2097 delegate_->ViewSourceForTab(this, active_entry->GetURL()); 2098 delegate_->ViewSourceForTab(this, entry->GetURL());
2098 } 2099 }
2099 2100
2100 void WebContentsImpl::ViewFrameSource(const GURL& url, 2101 void WebContentsImpl::ViewFrameSource(const GURL& url,
2101 const PageState& page_state) { 2102 const PageState& page_state) {
2102 if (!delegate_) 2103 if (!delegate_)
2103 return; 2104 return;
2104 2105
2105 delegate_->ViewSourceForFrame(this, url, page_state); 2106 delegate_->ViewSourceForFrame(this, url, page_state);
2106 } 2107 }
2107 2108
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 bool is_favicon, 2143 bool is_favicon,
2143 uint32_t max_bitmap_size, 2144 uint32_t max_bitmap_size,
2144 const ImageDownloadCallback& callback) { 2145 const ImageDownloadCallback& callback) {
2145 RenderViewHost* host = GetRenderViewHost(); 2146 RenderViewHost* host = GetRenderViewHost();
2146 int id = StartDownload(host, url, is_favicon, max_bitmap_size); 2147 int id = StartDownload(host, url, is_favicon, max_bitmap_size);
2147 image_download_map_[id] = callback; 2148 image_download_map_[id] = callback;
2148 return id; 2149 return id;
2149 } 2150 }
2150 2151
2151 bool WebContentsImpl::FocusLocationBarByDefault() { 2152 bool WebContentsImpl::FocusLocationBarByDefault() {
2152 NavigationEntry* entry = controller_.GetActiveEntry(); 2153 NavigationEntry* entry = controller_.GetVisibleEntry();
2153 if (entry && entry->GetURL() == GURL(kAboutBlankURL)) 2154 if (entry && entry->GetURL() == GURL(kAboutBlankURL))
2154 return true; 2155 return true;
2155 return delegate_ && delegate_->ShouldFocusLocationBarByDefault(this); 2156 return delegate_ && delegate_->ShouldFocusLocationBarByDefault(this);
2156 } 2157 }
2157 2158
2158 void WebContentsImpl::SetFocusToLocationBar(bool select_all) { 2159 void WebContentsImpl::SetFocusToLocationBar(bool select_all) {
2159 if (delegate_) 2160 if (delegate_)
2160 delegate_->SetFocusToLocationBar(select_all); 2161 delegate_->SetFocusToLocationBar(select_all);
2161 } 2162 }
2162 2163
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after
2940 NotificationService::current()->Notify( 2941 NotificationService::current()->Notify(
2941 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, 2942 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
2942 Source<WebContents>(this), 2943 Source<WebContents>(this),
2943 Details<RenderViewHost>(render_view_host)); 2944 Details<RenderViewHost>(render_view_host));
2944 2945
2945 // When we're creating views, we're still doing initial setup, so we always 2946 // When we're creating views, we're still doing initial setup, so we always
2946 // use the pending Web UI rather than any possibly existing committed one. 2947 // use the pending Web UI rather than any possibly existing committed one.
2947 if (render_manager_.pending_web_ui()) 2948 if (render_manager_.pending_web_ui())
2948 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host); 2949 render_manager_.pending_web_ui()->RenderViewCreated(render_view_host);
2949 2950
2950 NavigationEntry* entry = controller_.GetActiveEntry(); 2951 NavigationEntry* entry = controller_.GetPendingEntry();
2951 if (entry && entry->IsViewSourceMode()) { 2952 if (entry && entry->IsViewSourceMode()) {
2952 // Put the renderer in view source mode. 2953 // Put the renderer in view source mode.
2953 render_view_host->Send( 2954 render_view_host->Send(
2954 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); 2955 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
2955 } 2956 }
2956 2957
2957 view_->RenderViewCreated(render_view_host); 2958 view_->RenderViewCreated(render_view_host);
2958 2959
2959 FOR_EACH_OBSERVER( 2960 FOR_EACH_OBSERVER(
2960 WebContentsObserver, observers_, RenderViewCreated(render_view_host)); 2961 WebContentsObserver, observers_, RenderViewCreated(render_view_host));
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
3105 // For AUTO_SUBFRAME navigations, an event for the main frame is generated 3106 // For AUTO_SUBFRAME navigations, an event for the main frame is generated
3106 // that is not recorded in the navigation history. For the purpose of 3107 // that is not recorded in the navigation history. For the purpose of
3107 // tracking navigation events, we treat this event as a sub frame navigation 3108 // tracking navigation events, we treat this event as a sub frame navigation
3108 // event. 3109 // event.
3109 bool is_main_frame = did_navigate ? details.is_main_frame : false; 3110 bool is_main_frame = did_navigate ? details.is_main_frame : false;
3110 PageTransition transition_type = params.transition; 3111 PageTransition transition_type = params.transition;
3111 // Whether or not a page transition was triggered by going backward or 3112 // Whether or not a page transition was triggered by going backward or
3112 // forward in the history is only stored in the navigation controller's 3113 // forward in the history is only stored in the navigation controller's
3113 // entry list. 3114 // entry list.
3114 if (did_navigate && 3115 if (did_navigate &&
3115 (controller_.GetActiveEntry()->GetTransitionType() & 3116 (controller_.GetLastCommittedEntry()->GetTransitionType() &
3116 PAGE_TRANSITION_FORWARD_BACK)) { 3117 PAGE_TRANSITION_FORWARD_BACK)) {
3117 transition_type = PageTransitionFromInt( 3118 transition_type = PageTransitionFromInt(
3118 params.transition | PAGE_TRANSITION_FORWARD_BACK); 3119 params.transition | PAGE_TRANSITION_FORWARD_BACK);
3119 } 3120 }
3120 // Notify observers about the commit of the provisional load. 3121 // Notify observers about the commit of the provisional load.
3121 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 3122 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
3122 DidCommitProvisionalLoadForFrame(params.frame_id, 3123 DidCommitProvisionalLoadForFrame(params.frame_id,
3123 is_main_frame, params.url, transition_type, rvh)); 3124 is_main_frame, params.url, transition_type, rvh));
3124 } 3125 }
3125 3126
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
3534 const string16& source_id) { 3535 const string16& source_id) {
3535 if (!delegate_) 3536 if (!delegate_)
3536 return false; 3537 return false;
3537 return delegate_->AddMessageToConsole(this, level, message, line_no, 3538 return delegate_->AddMessageToConsole(this, level, message, line_no,
3538 source_id); 3539 source_id);
3539 } 3540 }
3540 3541
3541 WebPreferences WebContentsImpl::GetWebkitPrefs() { 3542 WebPreferences WebContentsImpl::GetWebkitPrefs() {
3542 // We want to base the page config off of the real URL, rather than the 3543 // We want to base the page config off of the real URL, rather than the
3543 // display URL. 3544 // display URL.
3544 GURL url = controller_.GetActiveEntry() 3545 GURL url = controller_.GetLastCommittedEntry()
3545 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL(); 3546 ? controller_.GetLastCommittedEntry()->GetURL() : GURL::EmptyGURL();
3546 return GetWebkitPrefs(GetRenderViewHost(), url); 3547 return GetWebkitPrefs(GetRenderViewHost(), url);
3547 } 3548 }
3548 3549
3549 int WebContentsImpl::CreateSwappedOutRenderView( 3550 int WebContentsImpl::CreateSwappedOutRenderView(
3550 SiteInstance* instance) { 3551 SiteInstance* instance) {
3551 return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE, 3552 return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE,
3552 true, true); 3553 true, true);
3553 } 3554 }
3554 3555
3555 void WebContentsImpl::OnUserGesture() { 3556 void WebContentsImpl::OnUserGesture() {
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
3859 gfx::Size WebContentsImpl::GetSizeForNewRenderView() const { 3860 gfx::Size WebContentsImpl::GetSizeForNewRenderView() const {
3860 gfx::Size size; 3861 gfx::Size size;
3861 if (delegate_) 3862 if (delegate_)
3862 size = delegate_->GetSizeForNewRenderView(this); 3863 size = delegate_->GetSizeForNewRenderView(this);
3863 if (size.IsEmpty()) 3864 if (size.IsEmpty())
3864 size = view_->GetContainerSize(); 3865 size = view_->GetContainerSize();
3865 return size; 3866 return size;
3866 } 3867 }
3867 3868
3868 } // namespace content 3869 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698