Index: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e03b2dfa89a19e4830377bab1acc2ca7805a33bd |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java |
@@ -0,0 +1,88 @@ |
+// Copyright 2014 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. |
+ |
+package org.chromium.chrome.browser.tabmodel; |
+ |
+import org.chromium.chrome.browser.Tab; |
+import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
+import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; |
+ |
+/** |
+ * An interface to be notified about changes to a TabModel. |
+ */ |
+public interface TabModelObserver { |
+ |
+ /** |
+ * Called when a tab is selected. |
+ * |
+ * @param tab The newly selected tab. |
+ * @param type The type of selection. |
+ * @param lastId The ID of the last selected tab, or {@link Tab#INVALID_TAB_ID} if no tab was |
+ * selected. |
+ */ |
+ void didSelectTab(Tab tab, TabSelectionType type, int lastId); |
+ |
+ /** |
+ * Called when a tab starts closing. |
+ * |
+ * @param tab The tab to close. |
+ * @param animate Whether or not to animate the closing. |
+ */ |
+ void willCloseTab(Tab tab, boolean animate); |
+ |
+ /** |
+ * Called right after {@code tab} has been destroyed. |
+ * |
+ * @param tab The tab that has been destroyed. |
+ */ |
+ void didCloseTab(Tab tab); |
+ |
+ /** |
+ * Called before a tab will be added to the {@link TabModel}. |
+ * |
+ * @param tab The tab about to be added. |
+ * @param type The type of tab launch. |
+ */ |
+ void willAddTab(Tab tab, TabLaunchType type); |
+ |
+ /** |
+ * Called after a tab has been added to the {@link TabModel}. |
+ * |
+ * @param tab The newly added tab. |
+ * @param type The type of tab launch. |
+ */ |
+ void didAddTab(Tab tab, TabLaunchType type); |
+ |
+ /** |
+ * Called after a tab has been moved from one position in the {@link TabModel} to another. |
+ * |
+ * @param tab The tab which has been moved. |
+ * @param newIndex The new index of the tab in the model. |
+ * @param curIndex The old index of the tab in the model. |
+ */ |
+ void didMoveTab(Tab tab, int newIndex, int curIndex); |
+ |
+ /** |
+ * Called when a tab is pending closure, i.e. the user has just closed it, but it can still be |
+ * undone. |
+ * |
+ * @param tab The tab that is pending closure. |
+ */ |
+ void tabPendingClosure(Tab tab); |
+ |
+ /** |
+ * Called when a tab closure is undone. |
+ * |
+ * @param tab The tab that has been reopened. |
+ */ |
+ void tabClosureUndone(Tab tab); |
+ |
+ /** |
+ * Called when a tab closure is committed and can't be undone anymore. |
+ * |
+ * @param tab The tab that has been closed. |
+ */ |
+ void tabClosureCommitted(Tab tab); |
+ |
+} |