Merge from Chromium at DEPS revision r198571

This commit was generated by merge_to_master.py.

Change-Id: I951118a03836157090561764dd2627f0add8118f
diff --git a/ash/launcher/launcher_delegate.h b/ash/launcher/launcher_delegate.h
index 5ca045e..45109e8 100644
--- a/ash/launcher/launcher_delegate.h
+++ b/ash/launcher/launcher_delegate.h
@@ -19,6 +19,12 @@
 }
 
 namespace ash {
+class Launcher;
+
+// When passed to LauncherDelegate::ItemSelected, the browser item will be
+// addressed for switching.
+// TODO(skuhne): Remove this constant once CL 11596003 has landed.
+const LauncherID kAppIdForBrowserSwitching = -1;
 
 // A special menu model which keeps track of an "active" menu item.
 class ASH_EXPORT LauncherMenuModel : public ui::SimpleMenuModel {
@@ -48,16 +54,18 @@
   // Invoked when the user clicks on a window entry in the launcher.
   // |event| is the click event. The |event| is dispatched by a view
   // and has an instance of |views::View| as the event target
-  // but not |aura::Window|.
-  virtual void ItemClicked(const LauncherItem& item,
-                           const ui::Event& event) = 0;
+  // but not |aura::Window|. If the |event| is of type KeyEvent, it is assumed
+  // that this was triggered by keyboard action (Alt+<number>) and special
+  // handling might happen (PerApp launcher).
+  virtual void ItemSelected(const LauncherItem& item,
+                            const ui::Event& event) = 0;
 
   // Returns the resource id of the image to show on the browser shortcut
   // button.
   virtual int GetBrowserShortcutResourceId() = 0;
 
   // Returns the title to display for the specified launcher item.
-  virtual string16 GetTitle(const LauncherItem& item) = 0;
+  virtual base::string16 GetTitle(const LauncherItem& item) = 0;
 
   // Returns the context menumodel for the specified item on
   // |root_window|.  Return NULL if there should be no context
@@ -87,6 +95,17 @@
 
   // Returns true if a tooltip should be shown for the item.
   virtual bool ShouldShowTooltip(const LauncherItem& item) = 0;
+
+  // Callback used to allow delegate to perform initialization actions that
+  // depend on the Launcher being in a known state.
+  virtual void OnLauncherCreated(Launcher* launcher) = 0;
+
+  // Callback used to inform the delegate that a specific launcher no longer
+  // exists.
+  virtual void OnLauncherDestroyed(Launcher* launcher) = 0;
+
+  // True if the running launcher is the per application launcher.
+  virtual bool IsPerAppLauncher() = 0;
 };
 
 }  // namespace ash