| Index: chrome/browser/browser.h
|
| ===================================================================
|
| --- chrome/browser/browser.h (revision 5374)
|
| +++ chrome/browser/browser.h (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include "chrome/browser/controller.h"
|
| #include "chrome/browser/shell_dialogs.h"
|
| #include "chrome/browser/browser_type.h"
|
| +#include "chrome/browser/browser_window.h"
|
| #include "chrome/browser/session_id.h"
|
| #include "chrome/browser/tab_contents_delegate.h"
|
| #include "chrome/browser/tabs/tab_strip_model.h"
|
| @@ -24,7 +25,6 @@
|
| class Profile;
|
| class StatusBubble;
|
| struct TabNavigation;
|
| -class WebContents;
|
| class WebApp;
|
|
|
| class Browser : public TabStripModelDelegate,
|
| @@ -36,28 +36,36 @@
|
| public:
|
| // Constructors, Creation, Showing //////////////////////////////////////////
|
|
|
| - // Creates a new browser with the given bounds. If the bounds are empty, the
|
| - // system will try to find a saved size from a previous session, if none
|
| - // exists, the operating system will be allowed to size the window.
|
| - // |type| defines the kind of browser to create.
|
| - //
|
| - // Creating a browser does NOT show the window. You must manually call Show()
|
| - // to display the window.
|
| - Browser(const gfx::Rect& initial_bounds,
|
| - int show_command,
|
| - Profile* profile,
|
| - BrowserType::Type browser_type,
|
| - const std::wstring& app_name);
|
| + // Creates a new browser of the given |type| and for the given |profile|. The
|
| + // Browser has a NULL window after its construction, CreateBrowserWindow must
|
| + // be called after configuration for window() to be valid.
|
| + Browser(BrowserType::Type type, Profile* profile);
|
| ~Browser();
|
|
|
| - // Shows the browser window. It is initially created hidden. It will be shown
|
| - // with the show command passed to the constructor, or possibly another state
|
| - // if it was overridden in the preferences.
|
| - //
|
| - // Ideally, this function is called after everything in the window is
|
| - // initialized so that we do not have to repaint again.
|
| - void Show();
|
| + // Creates a normal tabbed browser with the specified profile. The Browser's
|
| + // window is created by this function call.
|
| + static Browser* Create(Profile* profile);
|
|
|
| + // Like Create, but creates a tabstrip-less popup window.
|
| + static Browser* CreateForPopup(Profile* profile);
|
| +
|
| + // Like Create, but creates a tabstrip-less and toolbar-less "app" window for
|
| + // the specified app.
|
| + static Browser* CreateForApp(const std::wstring& app_name, Profile* profile);
|
| +
|
| + // Set overrides for the initial window bounds and maximized state.
|
| + void set_override_bounds(const gfx::Rect& bounds) {
|
| + override_bounds_ = bounds;
|
| + }
|
| + void set_override_maximized(bool maximized) {
|
| + override_maximized_ = maximized;
|
| + }
|
| +
|
| + // Creates the Browser Window. Prefer to use the static helpers above where
|
| + // possible. This does not show the window. You need to call window()->Show()
|
| + // to show it.
|
| + void CreateBrowserWindow();
|
| +
|
| // Accessors ////////////////////////////////////////////////////////////////
|
|
|
| BrowserType::Type type() const { return type_; }
|
| @@ -69,9 +77,8 @@
|
|
|
| // Browser Creation Helpers /////////////////////////////////////////////////
|
|
|
| - // Opens a new browser window for the specified |profile|, shown according to
|
| - // |show_command|
|
| - static void OpenNewBrowserWindow(Profile* profile, int show_command);
|
| + // Opens a new window with the default blank tab.
|
| + static void OpenEmptyWindow(Profile* profile);
|
|
|
| // Opens the specified URL in a new browser window in an incognito session.
|
| // If there is already an existing active incognito session for the specified
|
| @@ -79,9 +86,7 @@
|
| static void OpenURLOffTheRecord(Profile* profile, const GURL& url);
|
|
|
| // Opens the a new application window for the specified WebApp.
|
| - static void OpenWebApplication(Profile* profile,
|
| - WebApp* app,
|
| - int show_command);
|
| + static void OpenWebApplication(Profile* profile, WebApp* app);
|
|
|
| // Command API //////////////////////////////////////////////////////////////
|
|
|
| @@ -98,8 +103,9 @@
|
| // State Storage and Retrieval for UI ///////////////////////////////////////
|
|
|
| // Save and restore the window position.
|
| - void SaveWindowPosition(const gfx::Rect& bounds, bool maximized);
|
| - void RestoreWindowPosition(gfx::Rect* bounds, bool* maximized);
|
| + void SaveWindowPlacement(const gfx::Rect& bounds, bool maximized);
|
| + gfx::Rect GetSavedWindowBounds() const;
|
| + bool GetSavedMaximizedState() const;
|
|
|
| // Gets the FavIcon of the page in the selected tab.
|
| SkBitmap GetCurrentPageIcon() const;
|
| @@ -288,14 +294,12 @@
|
| virtual void ExecuteCommand(int id);
|
|
|
| // Overridden from TabStripModelDelegate:
|
| + virtual GURL GetBlankTabURL() const;
|
| virtual void CreateNewStripWithContents(TabContents* detached_contents,
|
| const gfx::Point& drop_point);
|
| virtual int GetDragActions() const;
|
| // Construct a TabContents for a given URL, profile and transition type.
|
| // If instance is not null, its process will be used to render the tab.
|
| - // TODO(beng): remove this from TabStripDelegate, it's only used by
|
| - // TabStripModel::AddBlankTab*, which should really live here
|
| - // on Browser.
|
| virtual TabContents* CreateTabContentsForURL(
|
| const GURL& url,
|
| const GURL& referrer,
|
| @@ -499,16 +503,6 @@
|
| // This Browser's window.
|
| BrowserWindow* window_;
|
|
|
| - // Controls how the window will appear when Show() is called. This is one
|
| - // of the SW_* constants passed to ShowWindow, and will be initialized in the
|
| - // constructor.
|
| - //
|
| - // After the first call to Show() succeeds, this is set to -1, indicating that
|
| - // subsequent calls to Show() should be ignored.
|
| - // TODO(beng): This should be removed (http://crbug.com/3557) and put into
|
| - // BrowserView, or some more likely place.
|
| - int initial_show_command_;
|
| -
|
| // This Browser's TabStripModel.
|
| TabStripModel tabstrip_model_;
|
|
|
| @@ -575,6 +569,14 @@
|
|
|
| /////////////////////////////////////////////////////////////////////////////
|
|
|
| + // Override values for the bounds of the window and its maximized state.
|
| + // These are supplied by callers that don't want to use the default values.
|
| + // The default values are typically loaded from local state (last session),
|
| + // obtained from the last window of the same type, or obtained from the
|
| + // shell shortcut's startup info.
|
| + gfx::Rect override_bounds_;
|
| + bool override_maximized_;
|
| +
|
| // The following factory is used to close the frame at a later time.
|
| ScopedRunnableMethodFactory<Browser> method_factory_;
|
|
|
|
|