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

Side by Side Diff: chrome/browser/ui/browser_commands.cc

Issue 305243002: Replace usage of GetActiveEntry with GetLastCommittedEntry in chrome/browser/ui. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes based on pkasting's review. Created 6 years, 6 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
« no previous file with comments | « chrome/browser/ui/browser_command_controller.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/ui/browser_commands.h" 5 #include "chrome/browser/ui/browser_commands.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 command, observer); 306 command, observer);
307 } 307 }
308 308
309 int GetContentRestrictions(const Browser* browser) { 309 int GetContentRestrictions(const Browser* browser) {
310 int content_restrictions = 0; 310 int content_restrictions = 0;
311 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents(); 311 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents();
312 if (current_tab) { 312 if (current_tab) {
313 CoreTabHelper* core_tab_helper = 313 CoreTabHelper* core_tab_helper =
314 CoreTabHelper::FromWebContents(current_tab); 314 CoreTabHelper::FromWebContents(current_tab);
315 content_restrictions = core_tab_helper->content_restrictions(); 315 content_restrictions = core_tab_helper->content_restrictions();
316 NavigationEntry* active_entry = 316 NavigationEntry* last_committed_entry =
317 current_tab->GetController().GetActiveEntry(); 317 current_tab->GetController().GetLastCommittedEntry();
318 // See comment in UpdateCommandsForTabState about why we call url().
319 if (!content::IsSavableURL( 318 if (!content::IsSavableURL(
320 active_entry ? active_entry->GetURL() : GURL()) || 319 last_committed_entry ? last_committed_entry->GetURL() : GURL()) ||
321 current_tab->ShowingInterstitialPage()) 320 current_tab->ShowingInterstitialPage())
322 content_restrictions |= CONTENT_RESTRICTION_SAVE; 321 content_restrictions |= CONTENT_RESTRICTION_SAVE;
323 if (current_tab->ShowingInterstitialPage()) 322 if (current_tab->ShowingInterstitialPage())
324 content_restrictions |= CONTENT_RESTRICTION_PRINT; 323 content_restrictions |= CONTENT_RESTRICTION_PRINT;
325 } 324 }
326 return content_restrictions; 325 return content_restrictions;
327 } 326 }
328 327
329 void NewEmptyWindow(Profile* profile, HostDesktopType desktop_type) { 328 void NewEmptyWindow(Profile* profile, HostDesktopType desktop_type) {
330 bool incognito = profile->IsOffTheRecord(); 329 bool incognito = profile->IsOffTheRecord();
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 // |search_tab_helper| can be null in unit tests. 1070 // |search_tab_helper| can be null in unit tests.
1072 if (search_tab_helper) 1071 if (search_tab_helper)
1073 search_tab_helper->ToggleVoiceSearch(); 1072 search_tab_helper->ToggleVoiceSearch();
1074 } 1073 }
1075 1074
1076 void DistillCurrentPage(Browser* browser) { 1075 void DistillCurrentPage(Browser* browser) {
1077 DistillCurrentPageAndView(browser->tab_strip_model()->GetActiveWebContents()); 1076 DistillCurrentPageAndView(browser->tab_strip_model()->GetActiveWebContents());
1078 } 1077 }
1079 1078
1080 bool CanRequestTabletSite(WebContents* current_tab) { 1079 bool CanRequestTabletSite(WebContents* current_tab) {
1081 if (!current_tab) 1080 return current_tab &&
1082 return false; 1081 current_tab->GetController().GetLastCommittedEntry() != NULL;
1083 return current_tab->GetController().GetActiveEntry() != NULL;
1084 } 1082 }
1085 1083
1086 bool IsRequestingTabletSite(Browser* browser) { 1084 bool IsRequestingTabletSite(Browser* browser) {
1087 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents(); 1085 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents();
1088 if (!current_tab) 1086 if (!current_tab)
1089 return false; 1087 return false;
1090 content::NavigationEntry* entry = 1088 content::NavigationEntry* entry =
1091 current_tab->GetController().GetActiveEntry(); 1089 current_tab->GetController().GetLastCommittedEntry();
1092 if (!entry) 1090 if (!entry)
1093 return false; 1091 return false;
1094 return entry->GetIsOverridingUserAgent(); 1092 return entry->GetIsOverridingUserAgent();
1095 } 1093 }
1096 1094
1097 void ToggleRequestTabletSite(Browser* browser) { 1095 void ToggleRequestTabletSite(Browser* browser) {
1098 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents(); 1096 WebContents* current_tab = browser->tab_strip_model()->GetActiveWebContents();
1099 if (!current_tab) 1097 if (!current_tab)
1100 return; 1098 return;
1101 NavigationController& controller = current_tab->GetController(); 1099 NavigationController& controller = current_tab->GetController();
1102 NavigationEntry* entry = controller.GetActiveEntry(); 1100 NavigationEntry* entry = controller.GetLastCommittedEntry();
1103 if (!entry) 1101 if (!entry)
1104 return; 1102 return;
1105 if (entry->GetIsOverridingUserAgent()) { 1103 if (entry->GetIsOverridingUserAgent()) {
1106 entry->SetIsOverridingUserAgent(false); 1104 entry->SetIsOverridingUserAgent(false);
1107 } else { 1105 } else {
1108 entry->SetIsOverridingUserAgent(true); 1106 entry->SetIsOverridingUserAgent(true);
1109 chrome::VersionInfo version_info; 1107 chrome::VersionInfo version_info;
1110 std::string product; 1108 std::string product;
1111 if (version_info.is_valid()) 1109 if (version_info.is_valid())
1112 product = version_info.ProductNameAndVersionForUserAgent(); 1110 product = version_info.ProductNameAndVersionForUserAgent();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 ViewSource(browser, contents, entry->GetURL(), entry->GetPageState()); 1145 ViewSource(browser, contents, entry->GetURL(), entry->GetPageState());
1148 } 1146 }
1149 1147
1150 void ViewSource(Browser* browser, 1148 void ViewSource(Browser* browser,
1151 WebContents* contents, 1149 WebContents* contents,
1152 const GURL& url, 1150 const GURL& url,
1153 const content::PageState& page_state) { 1151 const content::PageState& page_state) {
1154 content::RecordAction(UserMetricsAction("ViewSource")); 1152 content::RecordAction(UserMetricsAction("ViewSource"));
1155 DCHECK(contents); 1153 DCHECK(contents);
1156 1154
1157 // Note that Clone does not copy the pending or transient entries, so the
1158 // active entry in view_source_contents will be the last committed entry.
1159 WebContents* view_source_contents = contents->Clone(); 1155 WebContents* view_source_contents = contents->Clone();
1160 DCHECK(view_source_contents->GetController().CanPruneAllButLastCommitted()); 1156 DCHECK(view_source_contents->GetController().CanPruneAllButLastCommitted());
1161 view_source_contents->GetController().PruneAllButLastCommitted(); 1157 view_source_contents->GetController().PruneAllButLastCommitted();
1162 NavigationEntry* active_entry = 1158 NavigationEntry* last_committed_entry =
1163 view_source_contents->GetController().GetActiveEntry(); 1159 view_source_contents->GetController().GetLastCommittedEntry();
1164 if (!active_entry) 1160 if (!last_committed_entry)
1165 return; 1161 return;
1166 1162
1167 GURL view_source_url = 1163 GURL view_source_url =
1168 GURL(content::kViewSourceScheme + std::string(":") + url.spec()); 1164 GURL(content::kViewSourceScheme + std::string(":") + url.spec());
1169 active_entry->SetVirtualURL(view_source_url); 1165 last_committed_entry->SetVirtualURL(view_source_url);
1170 1166
1171 // Do not restore scroller position. 1167 // Do not restore scroller position.
1172 active_entry->SetPageState(page_state.RemoveScrollOffset()); 1168 last_committed_entry->SetPageState(page_state.RemoveScrollOffset());
1173 1169
1174 // Do not restore title, derive it from the url. 1170 // Do not restore title, derive it from the url.
1175 active_entry->SetTitle(base::string16()); 1171 last_committed_entry->SetTitle(base::string16());
1176 1172
1177 // Now show view-source entry. 1173 // Now show view-source entry.
1178 if (browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) { 1174 if (browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) {
1179 // If this is a tabbed browser, just create a duplicate tab inside the same 1175 // If this is a tabbed browser, just create a duplicate tab inside the same
1180 // window next to the tab being duplicated. 1176 // window next to the tab being duplicated.
1181 int index = browser->tab_strip_model()->GetIndexOfWebContents(contents); 1177 int index = browser->tab_strip_model()->GetIndexOfWebContents(contents);
1182 int add_types = TabStripModel::ADD_ACTIVE | 1178 int add_types = TabStripModel::ADD_ACTIVE |
1183 TabStripModel::ADD_INHERIT_GROUP; 1179 TabStripModel::ADD_INHERIT_GROUP;
1184 browser->tab_strip_model()->InsertWebContentsAt( 1180 browser->tab_strip_model()->InsertWebContentsAt(
1185 index + 1, 1181 index + 1,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 } 1239 }
1244 1240
1245 bool CanCreateBookmarkApp(const Browser* browser) { 1241 bool CanCreateBookmarkApp(const Browser* browser) {
1246 return extensions::TabHelper::FromWebContents( 1242 return extensions::TabHelper::FromWebContents(
1247 browser->tab_strip_model()->GetActiveWebContents()) 1243 browser->tab_strip_model()->GetActiveWebContents())
1248 ->CanCreateBookmarkApp(); 1244 ->CanCreateBookmarkApp();
1249 } 1245 }
1250 1246
1251 void ConvertTabToAppWindow(Browser* browser, 1247 void ConvertTabToAppWindow(Browser* browser,
1252 content::WebContents* contents) { 1248 content::WebContents* contents) {
1253 const GURL& url = contents->GetController().GetActiveEntry()->GetURL(); 1249 const GURL& url = contents->GetController().GetLastCommittedEntry()->GetURL();
1254 std::string app_name = web_app::GenerateApplicationNameFromURL(url); 1250 std::string app_name = web_app::GenerateApplicationNameFromURL(url);
1255 1251
1256 int index = browser->tab_strip_model()->GetIndexOfWebContents(contents); 1252 int index = browser->tab_strip_model()->GetIndexOfWebContents(contents);
1257 if (index >= 0) 1253 if (index >= 0)
1258 browser->tab_strip_model()->DetachWebContentsAt(index); 1254 browser->tab_strip_model()->DetachWebContentsAt(index);
1259 1255
1260 Browser* app_browser = new Browser( 1256 Browser* app_browser = new Browser(
1261 Browser::CreateParams::CreateForApp(app_name, 1257 Browser::CreateParams::CreateForApp(app_name,
1262 true /* trusted_source */, 1258 true /* trusted_source */,
1263 gfx::Rect(), 1259 gfx::Rect(),
1264 browser->profile(), 1260 browser->profile(),
1265 browser->host_desktop_type())); 1261 browser->host_desktop_type()));
1266 app_browser->tab_strip_model()->AppendWebContents(contents, true); 1262 app_browser->tab_strip_model()->AppendWebContents(contents, true);
1267 1263
1268 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; 1264 contents->GetMutableRendererPrefs()->can_accept_load_drops = false;
1269 contents->GetRenderViewHost()->SyncRendererPrefs(); 1265 contents->GetRenderViewHost()->SyncRendererPrefs();
1270 app_browser->window()->Show(); 1266 app_browser->window()->Show();
1271 } 1267 }
1272 1268
1273 } // namespace chrome 1269 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_command_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698