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

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

Issue 174021: Convert users of the "get last active browser, get selected tab contents, ope... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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/browser.h" 5 #include "chrome/browser/browser.h"
6 6
7 #include "app/animation.h" 7 #include "app/animation.h"
8 #include "app/l10n_util.h" 8 #include "app/l10n_util.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/idle_timer.h" 10 #include "base/idle_timer.h"
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 transition, false, instance); 573 transition, false, instance);
574 tabstrip_model_.AddTabContents(contents, index, force_index, 574 tabstrip_model_.AddTabContents(contents, index, force_index,
575 transition, foreground); 575 transition, foreground);
576 // By default, content believes it is not hidden. When adding contents 576 // By default, content believes it is not hidden. When adding contents
577 // in the background, tell it that it's hidden. 577 // in the background, tell it that it's hidden.
578 if (!foreground) 578 if (!foreground)
579 contents->WasHidden(); 579 contents->WasHidden();
580 } else { 580 } else {
581 // We're in an app window or a popup window. Find an existing browser to 581 // We're in an app window or a popup window. Find an existing browser to
582 // open this URL in, creating one if none exists. 582 // open this URL in, creating one if none exists.
583 Browser* b = GetOrCreateTabbedBrowser(); 583 Browser* b = GetOrCreateTabbedBrowser(profile_);
584 contents = b->AddTabWithURL(url, referrer, transition, foreground, index, 584 contents = b->AddTabWithURL(url, referrer, transition, foreground, index,
585 force_index, instance); 585 force_index, instance);
586 b->window()->Show(); 586 b->window()->Show();
587 } 587 }
588 return contents; 588 return contents;
589 } 589 }
590 590
591 // TODO(brettw) this should be just AddTab and it should take a TabContents. 591 // TODO(brettw) this should be just AddTab and it should take a TabContents.
592 TabContents* Browser::AddTabWithNavigationController( 592 TabContents* Browser::AddTabWithNavigationController(
593 NavigationController* ctrl, PageTransition::Type type) { 593 NavigationController* ctrl, PageTransition::Type type) {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 void Browser::CloseWindow() { 825 void Browser::CloseWindow() {
826 UserMetrics::RecordAction(L"CloseWindow", profile_); 826 UserMetrics::RecordAction(L"CloseWindow", profile_);
827 window_->Close(); 827 window_->Close();
828 } 828 }
829 829
830 void Browser::NewTab() { 830 void Browser::NewTab() {
831 UserMetrics::RecordAction(L"NewTab", profile_); 831 UserMetrics::RecordAction(L"NewTab", profile_);
832 if (type() == TYPE_NORMAL) { 832 if (type() == TYPE_NORMAL) {
833 AddBlankTab(true); 833 AddBlankTab(true);
834 } else { 834 } else {
835 Browser* b = GetOrCreateTabbedBrowser(); 835 Browser* b = GetOrCreateTabbedBrowser(profile_);
836 b->AddBlankTab(true); 836 b->AddBlankTab(true);
837 b->window()->Show(); 837 b->window()->Show();
838 // The call to AddBlankTab above did not set the focus to the tab as its 838 // The call to AddBlankTab above did not set the focus to the tab as its
839 // window was not active, so we have to do it explicitly. 839 // window was not active, so we have to do it explicitly.
840 // See http://crbug.com/6380. 840 // See http://crbug.com/6380.
841 b->GetSelectedTabContents()->view()->RestoreFocus(); 841 b->GetSelectedTabContents()->view()->RestoreFocus();
842 } 842 }
843 } 843 }
844 844
845 void Browser::CloseTab() { 845 void Browser::CloseTab() {
(...skipping 926 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 bool user_gesture) { 1772 bool user_gesture) {
1773 DCHECK(disposition != SAVE_TO_DISK); // No code for this yet 1773 DCHECK(disposition != SAVE_TO_DISK); // No code for this yet
1774 DCHECK(disposition != CURRENT_TAB); // Can't create a new contents for the 1774 DCHECK(disposition != CURRENT_TAB); // Can't create a new contents for the
1775 // current tab. 1775 // current tab.
1776 1776
1777 // If this is an application we can only have one tab so we need to process 1777 // If this is an application we can only have one tab so we need to process
1778 // this in tabbed browser window. 1778 // this in tabbed browser window.
1779 if (tabstrip_model_.count() > 0 && 1779 if (tabstrip_model_.count() > 0 &&
1780 disposition != NEW_WINDOW && disposition != NEW_POPUP && 1780 disposition != NEW_WINDOW && disposition != NEW_POPUP &&
1781 type_ != TYPE_NORMAL) { 1781 type_ != TYPE_NORMAL) {
1782 Browser* b = GetOrCreateTabbedBrowser(); 1782 Browser* b = GetOrCreateTabbedBrowser(profile_);
1783 DCHECK(b); 1783 DCHECK(b);
1784 PageTransition::Type transition = PageTransition::LINK; 1784 PageTransition::Type transition = PageTransition::LINK;
1785 // If we were called from an "installed webapp" we want to emulate the code 1785 // If we were called from an "installed webapp" we want to emulate the code
1786 // that is run from browser_init.cc for links from external applications. 1786 // that is run from browser_init.cc for links from external applications.
1787 // This means we need to open the tab with the START PAGE transition. 1787 // This means we need to open the tab with the START PAGE transition.
1788 // AddNewContents doesn't support this but the TabStripModel's 1788 // AddNewContents doesn't support this but the TabStripModel's
1789 // AddTabContents method does. 1789 // AddTabContents method does.
1790 if (type_ & TYPE_APP) 1790 if (type_ & TYPE_APP)
1791 transition = PageTransition::START_PAGE; 1791 transition = PageTransition::START_PAGE;
1792 b->tabstrip_model()->AddTabContents(new_contents, -1, false, transition, 1792 b->tabstrip_model()->AddTabContents(new_contents, -1, false, transition,
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
2578 window_->ConfirmBrowserCloseWithPendingDownloads(); 2578 window_->ConfirmBrowserCloseWithPendingDownloads();
2579 2579
2580 // Return false so the browser does not close. We'll close if the user 2580 // Return false so the browser does not close. We'll close if the user
2581 // confirms in the dialog. 2581 // confirms in the dialog.
2582 return false; 2582 return false;
2583 } 2583 }
2584 2584
2585 /////////////////////////////////////////////////////////////////////////////// 2585 ///////////////////////////////////////////////////////////////////////////////
2586 // Browser, Assorted utility functions (private): 2586 // Browser, Assorted utility functions (private):
2587 2587
2588 Browser* Browser::GetOrCreateTabbedBrowser() { 2588 // static
2589 Browser* Browser::GetOrCreateTabbedBrowser(Profile* profile) {
2589 Browser* browser = BrowserList::FindBrowserWithType( 2590 Browser* browser = BrowserList::FindBrowserWithType(
2590 profile_, TYPE_NORMAL); 2591 profile, TYPE_NORMAL);
2591 if (!browser) 2592 if (!browser)
2592 browser = Browser::Create(profile_); 2593 browser = Browser::Create(profile);
2593 return browser; 2594 return browser;
2594 } 2595 }
2595 2596
2596 void Browser::OpenURLAtIndex(TabContents* source, 2597 void Browser::OpenURLAtIndex(TabContents* source,
2597 const GURL& url, 2598 const GURL& url,
2598 const GURL& referrer, 2599 const GURL& referrer,
2599 WindowOpenDisposition disposition, 2600 WindowOpenDisposition disposition,
2600 PageTransition::Type transition, 2601 PageTransition::Type transition,
2601 int index, 2602 int index,
2602 bool force_index) { 2603 bool force_index) {
(...skipping 27 matching lines...) Expand all
2630 // only have one tab so a new tab always goes into a tabbed browser window. 2631 // only have one tab so a new tab always goes into a tabbed browser window.
2631 if (disposition != NEW_WINDOW && type_ != TYPE_NORMAL) { 2632 if (disposition != NEW_WINDOW && type_ != TYPE_NORMAL) {
2632 // If the disposition is OFF_THE_RECORD we don't want to create a new 2633 // If the disposition is OFF_THE_RECORD we don't want to create a new
2633 // browser that will itself create another OTR browser. This will result in 2634 // browser that will itself create another OTR browser. This will result in
2634 // a browser leak (and crash below because no tab is created or selected). 2635 // a browser leak (and crash below because no tab is created or selected).
2635 if (disposition == OFF_THE_RECORD) { 2636 if (disposition == OFF_THE_RECORD) {
2636 OpenURLOffTheRecord(profile_, url); 2637 OpenURLOffTheRecord(profile_, url);
2637 return; 2638 return;
2638 } 2639 }
2639 2640
2640 Browser* b = GetOrCreateTabbedBrowser(); 2641 Browser* b = GetOrCreateTabbedBrowser(profile_);
2641 DCHECK(b); 2642 DCHECK(b);
2642 2643
2643 // If we have just created a new browser window, make sure we select the 2644 // If we have just created a new browser window, make sure we select the
2644 // tab. 2645 // tab.
2645 if (b->tab_count() == 0 && disposition == NEW_BACKGROUND_TAB) 2646 if (b->tab_count() == 0 && disposition == NEW_BACKGROUND_TAB)
2646 disposition = NEW_FOREGROUND_TAB; 2647 disposition = NEW_FOREGROUND_TAB;
2647 2648
2648 b->OpenURL(url, referrer, disposition, transition); 2649 b->OpenURL(url, referrer, disposition, transition);
2649 b->window()->Show(); 2650 b->window()->Show();
2650 return; 2651 return;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
2776 /////////////////////////////////////////////////////////////////////////////// 2777 ///////////////////////////////////////////////////////////////////////////////
2777 // BrowserToolbarModel (private): 2778 // BrowserToolbarModel (private):
2778 2779
2779 NavigationController* Browser::BrowserToolbarModel::GetNavigationController() { 2780 NavigationController* Browser::BrowserToolbarModel::GetNavigationController() {
2780 // This |current_tab| can be NULL during the initialization of the 2781 // This |current_tab| can be NULL during the initialization of the
2781 // toolbar during window creation (i.e. before any tabs have been added 2782 // toolbar during window creation (i.e. before any tabs have been added
2782 // to the window). 2783 // to the window).
2783 TabContents* current_tab = browser_->GetSelectedTabContents(); 2784 TabContents* current_tab = browser_->GetSelectedTabContents();
2784 return current_tab ? &current_tab->controller() : NULL; 2785 return current_tab ? &current_tab->controller() : NULL;
2785 } 2786 }
OLDNEW
« no previous file with comments | « chrome/browser/browser.h ('k') | chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698