summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h')
-rw-r--r--chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
index 8e8b31d9ddf..6f126eeb482 100644
--- a/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
+++ b/chromium/chrome/browser/ui/webui/tab_strip/tab_strip_ui.h
@@ -5,19 +5,50 @@
#ifndef CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_UI_H_
#define CHROME_BROWSER_UI_WEBUI_TAB_STRIP_TAB_STRIP_UI_H_
+#include <memory>
+
#include "base/macros.h"
#include "chrome/browser/ui/webui/tab_strip/thumbnail_tracker.h"
#include "content/public/browser/web_ui_controller.h"
+class Browser;
+
+namespace gfx {
+class Point;
+}
+
+namespace ui {
+class MenuModel;
+}
+
// The WebUI version of the tab strip in the browser. It is currently only
// supported on ChromeOS in tablet mode.
class TabStripUI : public content::WebUIController {
public:
+ // Interface to be implemented by the embedder. Provides native UI
+ // functionality such as showing context menus.
+ class Embedder {
+ public:
+ Embedder() = default;
+ virtual ~Embedder() {}
+
+ virtual void CloseContainer() = 0;
+
+ virtual void ShowContextMenuAtPoint(
+ gfx::Point point,
+ std::unique_ptr<ui::MenuModel> menu_model) = 0;
+ };
+
explicit TabStripUI(content::WebUI* web_ui);
~TabStripUI() override;
+ // Initialize TabStripUI with its embedder and the Browser it's running in.
+ // Must be called exactly once. The WebUI won't work until this is called.
+ void Initialize(Browser* browser, Embedder* embedder);
+
private:
- void HandleThumbnailUpdate(int extension_tab_id, gfx::ImageSkia image);
+ void HandleThumbnailUpdate(int extension_tab_id,
+ ThumbnailTracker::CompressedThumbnailData image);
DISALLOW_COPY_AND_ASSIGN(TabStripUI);
};