// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_BROWSER_LIVE_TAB_CONTEXT_H_ #define CHROME_BROWSER_UI_BROWSER_LIVE_TAB_CONTEXT_H_ #include #include #include "base/compiler_specific.h" #include "chrome/browser/ui/host_desktop.h" #include "components/sessions/core/live_tab_context.h" class Browser; class Profile; namespace content { class WebContents; } // Implementation of LiveTabContext which uses an instance of // Browser in order to fulfil its duties. class BrowserLiveTabContext : public sessions::LiveTabContext { public: explicit BrowserLiveTabContext(Browser* browser) : browser_(browser) {} ~BrowserLiveTabContext() override {} // Overridden from LiveTabContext: void ShowBrowserWindow() override; const SessionID& GetSessionID() const override; int GetTabCount() const override; int GetSelectedIndex() const override; std::string GetAppName() const override; sessions::LiveTab* GetLiveTabAt(int index) const override; sessions::LiveTab* GetActiveLiveTab() const override; bool IsTabPinned(int index) const override; sessions::LiveTab* AddRestoredTab( const std::vector& navigations, int tab_index, int selected_navigation, const std::string& extension_app_id, bool select, bool pin, bool from_last_session, const sessions::PlatformSpecificTabData* storage_namespace, const std::string& user_agent_override) override; sessions::LiveTab* ReplaceRestoredTab( const std::vector& navigations, int selected_navigation, bool from_last_session, const std::string& extension_app_id, const sessions::PlatformSpecificTabData* tab_platform_data, const std::string& user_agent_override) override; void CloseTab() override; // see Browser::Create static sessions::LiveTabContext* Create( Profile* profile, chrome::HostDesktopType host_desktop_type, const std::string& app_name); // see browser::FindBrowserForWebContents static sessions::LiveTabContext* FindContextForWebContents( const content::WebContents* contents); // see chrome::FindBrowserWithID // Returns the LiveTabContext of the Browser with |desired_id| if // such a Browser exists and is on the desktop defined by |host_desktop_type|. static sessions::LiveTabContext* FindContextWithID( SessionID::id_type desired_id, chrome::HostDesktopType host_desktop_type); private: Browser* browser_; DISALLOW_COPY_AND_ASSIGN(BrowserLiveTabContext); }; #endif // CHROME_BROWSER_UI_BROWSER_LIVE_TAB_CONTEXT_H_