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

Unified Diff: chrome/browser/browser.cc

Issue 2819086: Removal of TabContentsDelegate::GetBrowser() interface method (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/browser_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser.cc
===================================================================
--- chrome/browser/browser.cc (revision 55729)
+++ chrome/browser/browser.cc (working copy)
@@ -447,7 +447,7 @@
// TODO(eroman): should we have referrer here?
browser->AddTabWithURL(
url, GURL(), PageTransition::LINK, -1, TabStripModel::ADD_SELECTED, NULL,
- std::string());
+ std::string(), &browser);
browser->window()->Show();
}
@@ -537,10 +537,10 @@
case Extension::LAUNCH_WINDOW:
case Extension::LAUNCH_PANEL:
tab = Browser::OpenApplicationWindow(profile, extension, container,
- GURL());
+ GURL(), &browser);
break;
case Extension::LAUNCH_TAB: {
- tab = Browser::OpenApplicationTab(profile, extension);
+ tab = Browser::OpenApplicationTab(profile, extension, &browser);
break;
}
default:
@@ -548,7 +548,6 @@
break;
}
if (tab) {
- Browser* browser = tab->delegate()->GetBrowser();
if (browser && extension && extension->launch_fullscreen())
browser->window()->SetFullscreen(true);
}
@@ -560,7 +559,8 @@
Profile* profile,
Extension* extension,
Extension::LaunchContainer container,
- const GURL& url_input) {
+ const GURL& url_input,
+ Browser** browser) {
GURL url;
if (!url_input.is_empty()) {
if (extension)
@@ -576,15 +576,15 @@
RegisterAppPrefs(app_name);
bool as_panel = extension && (container == Extension::LAUNCH_PANEL);
- Browser* browser = Browser::CreateForApp(app_name, extension, profile,
- as_panel);
- TabContents* tab_contents = browser->AddTabWithURL(
+ Browser* local_browser = Browser::CreateForApp(app_name, extension, profile,
+ as_panel);
+ TabContents* tab_contents = local_browser->AddTabWithURL(
url, GURL(), PageTransition::START_PAGE, -1, TabStripModel::ADD_SELECTED,
- NULL, std::string());
+ NULL, std::string(), &local_browser);
tab_contents->GetMutableRendererPrefs()->can_accept_load_drops = false;
tab_contents->render_view_host()->SyncRendererPrefs();
- browser->window()->Show();
+ local_browser->window()->Show();
// TODO(jcampan): http://crbug.com/8123 we should not need to set the initial
// focus explicitly.
@@ -597,33 +597,42 @@
// OnDidGetApplicationInfo, which calls
// web_app::UpdateShortcutForTabContents when it sees UPDATE_SHORTCUT as
// pending web app action.
- browser->pending_web_app_action_ = UPDATE_SHORTCUT;
+ local_browser->pending_web_app_action_ = UPDATE_SHORTCUT;
}
+ if (browser)
+ *browser = local_browser;
+
return tab_contents;
}
// static
TabContents* Browser::OpenApplicationWindow(Profile* profile,
- GURL& url) {
- return OpenApplicationWindow(profile, NULL, Extension::LAUNCH_WINDOW, url);
+ GURL& url, Browser** browser) {
+ return OpenApplicationWindow(profile, NULL, Extension::LAUNCH_WINDOW, url,
+ browser);
}
// static
TabContents* Browser::OpenApplicationTab(Profile* profile,
- Extension* extension) {
- Browser* browser = BrowserList::GetLastActiveWithProfile(profile);
- if (!browser || browser->type() != Browser::TYPE_NORMAL)
+ Extension* extension,
+ Browser** browser) {
+ Browser* local_browser = BrowserList::GetLastActiveWithProfile(profile);
+ if (!local_browser || local_browser->type() != Browser::TYPE_NORMAL)
return NULL;
// TODO(erikkay): This doesn't seem like the right transition in all cases.
PageTransition::Type transition = PageTransition::START_PAGE;
GURL url = extension->GetFullLaunchURL();
TabContents* tab_contents =
- browser->CreateTabContentsForURL(url, GURL(), profile,
- transition, false, NULL);
+ local_browser->CreateTabContentsForURL(url, GURL(), profile,
+ transition, false, NULL);
tab_contents->SetExtensionApp(extension);
- browser->AddTab(tab_contents, transition);
+ local_browser->AddTab(tab_contents, transition);
+
+ if (browser)
+ *browser = local_browser;
+
return tab_contents;
}
@@ -877,7 +886,8 @@
int index,
int add_types,
SiteInstance* instance,
- const std::string& extension_app_id) {
+ const std::string& extension_app_id,
+ Browser** browser_used) {
TabContents* contents = NULL;
if (CanSupportWindowFeature(FEATURE_TABSTRIP) || tabstrip_model()->empty()) {
GURL url_to_load = url;
@@ -895,6 +905,9 @@
// TabStripModel::AddTabContents invokes HideContents if not foreground.
contents->WasHidden();
}
+
+ if (browser_used)
+ *browser_used = this;
} else {
// We're in an app window or a popup window. Find an existing browser to
// open this URL in, creating one if none exists.
@@ -903,8 +916,11 @@
if (!b)
b = Browser::Create(profile_);
contents = b->AddTabWithURL(url, referrer, transition, index, add_types,
- instance, extension_app_id);
+ instance, extension_app_id, &b);
b->window()->Show();
+
+ if (browser_used)
+ *browser_used = b;
}
return contents;
}
@@ -1032,7 +1048,7 @@
// Otherwise, just create a new tab.
AddTabWithURL(url, GURL(), PageTransition::AUTO_BOOKMARK, -1,
- TabStripModel::ADD_SELECTED, NULL, std::string());
+ TabStripModel::ADD_SELECTED, NULL, std::string(), NULL);
}
void Browser::UpdateCommandsForFullscreenMode(bool is_fullscreen) {
@@ -1837,7 +1853,7 @@
void Browser::OpenHelpTab() {
GURL help_url = google_util::AppendGoogleLocaleParam(GURL(kHelpContentUrl));
AddTabWithURL(help_url, GURL(), PageTransition::AUTO_BOOKMARK, -1,
- TabStripModel::ADD_SELECTED, NULL, std::string());
+ TabStripModel::ADD_SELECTED, NULL, std::string(), NULL);
}
void Browser::OpenThemeGalleryTabAndActivate() {
@@ -2189,7 +2205,7 @@
TabContents* tab_contents = AddTabWithURL(
GURL(chrome::kChromeUINewTabURL), GURL(), PageTransition::TYPED, index,
foreground ? TabStripModel::ADD_SELECTED : TabStripModel::ADD_NONE, NULL,
- std::string());
+ std::string(), NULL);
tab_contents->set_new_tab_start_time(new_tab_start_time);
return tab_contents;
}
@@ -2379,6 +2395,13 @@
UseVerticalTabsChanged();
}
+bool Browser::LargeIconsPermitted() const {
+ // We don't show the big icons in tabs for TYPE_EXTENSION_APP windows because
+ // for those windows, we already have a big icon in the top-left outside any
+ // tab. Having big tab icons too looks kinda redonk.
+ return TYPE_EXTENSION_APP != type();
+}
+
///////////////////////////////////////////////////////////////////////////////
// Browser, TabStripModelObserver implementation:
@@ -2944,10 +2967,6 @@
pending_web_app_action_ = NONE;
}
-Browser* Browser::GetBrowser() {
- return this;
-}
-
void Browser::ContentTypeChanged(TabContents* source) {
if (source == GetSelectedTabContents())
UpdateZoomCommandsForTabState();
@@ -3758,7 +3777,7 @@
if (destination_extension->launch_container() ==
Extension::LAUNCH_WINDOW) {
Browser::OpenApplicationWindow(profile_, destination_extension,
- Extension::LAUNCH_WINDOW, url);
+ Extension::LAUNCH_WINDOW, url, NULL);
return true;
}
}
@@ -3912,7 +3931,8 @@
Browser* browser = Browser::Create(profile_);
new_contents = browser->AddTabWithURL(
url, referrer, transition, index,
- TabStripModel::ADD_SELECTED | add_types, instance, std::string());
+ TabStripModel::ADD_SELECTED | add_types, instance, std::string(),
+ &browser);
browser->window()->Show();
} else if ((disposition == CURRENT_TAB) && current_tab) {
tabstrip_model_.TabNavigating(current_tab, transition);
@@ -3947,7 +3967,7 @@
if (disposition != NEW_BACKGROUND_TAB)
add_types |= TabStripModel::ADD_SELECTED;
new_contents = AddTabWithURL(url, referrer, transition, index, add_types,
- instance, std::string());
+ instance, std::string(), NULL);
}
if (disposition != NEW_BACKGROUND_TAB && source_tab_was_frontmost &&
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/browser_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698