Merge from Chromium at DEPS revision 273901

This commit was generated by merge_to_master.py.

Change-Id: I45745444894df927ffc1045ab8de88b9e52636a3
diff --git a/ash/shell.h b/ash/shell.h
index 718a6c6..1518ea6 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -62,8 +62,10 @@
 }
 
 namespace wm {
+class AcceleratorFilter;
 class CompoundEventFilter;
 class InputMethodEventFilter;
+class NestedAcceleratorController;
 class ShadowController;
 class VisibilityController;
 class UserActivityDetector;
@@ -74,7 +76,6 @@
 
 class AcceleratorController;
 class AccelerometerController;
-class AcceleratorFilter;
 class AccessibilityDelegate;
 class AppListController;
 class AshNativeCursorManager;
@@ -106,7 +107,6 @@
 class MediaDelegate;
 class MouseCursorEventFilter;
 class MruWindowTracker;
-class NestedDispatcherController;
 class NewWindowDelegate;
 class OverlayEventFilter;
 class PartialMagnificationController;
@@ -126,6 +126,7 @@
 class ShelfModel;
 class ShelfWindowWatcher;
 class ShellDelegate;
+struct ShellInitParams;
 class ShellObserver;
 class SlowAnimationEventFilter;
 class StatusAreaWidget;
@@ -136,6 +137,7 @@
 class SystemTrayDelegate;
 class SystemTrayNotifier;
 class ToplevelWindowEventHandler;
+class TouchTransformerController;
 class TouchObserverHUD;
 class UserActivityDetector;
 class UserWallpaperDelegate;
@@ -173,7 +175,7 @@
   // A shell must be explicitly created so that it can call |Init()| with the
   // delegate set. |delegate| can be NULL (if not required for initialization).
   // Takes ownership of |delegate|.
-  static Shell* CreateInstance(ShellDelegate* delegate);
+  static Shell* CreateInstance(const ShellInitParams& init_params);
 
   // Should never be called before |CreateInstance()|.
   static Shell* GetInstance();
@@ -330,6 +332,14 @@
   // Test if the MaximizeModeWindowManager is enabled or not.
   bool IsMaximizeModeWindowManagerEnabled();
 
+#if defined(OS_CHROMEOS)
+  // Test if MaximizeModeWindowManager is not enabled, and if
+  // MaximizeModeController is not currently setting a display rotation. Or if
+  // the |resolution_notification_controller_| is not showing its confirmation
+  // dialog. If true then changes to display settings can be saved.
+  bool ShouldSaveDisplaySettings();
+#endif
+
   AcceleratorController* accelerator_controller() {
     return accelerator_controller_.get();
   }
@@ -363,6 +373,9 @@
   VideoDetector* video_detector() {
     return video_detector_.get();
   }
+  WindowCycleController* window_cycle_controller() {
+    return window_cycle_controller_.get();
+  }
   WindowSelectorController* window_selector_controller() {
     return window_selector_controller_.get();
   }
@@ -370,6 +383,11 @@
   DisplayController* display_controller() {
     return display_controller_.get();
   }
+#if defined(OS_CHROMEOS) && defined(USE_X11)
+  TouchTransformerController* touch_transformer_controller() {
+    return touch_transformer_controller_.get();
+  }
+#endif  // defined(OS_CHROMEOS) && defined(USE_X11)
   MouseCursorEventFilter* mouse_cursor_filter() {
     return mouse_cursor_filter_.get();
   }
@@ -572,7 +590,7 @@
   explicit Shell(ShellDelegate* delegate);
   virtual ~Shell();
 
-  void Init();
+  void Init(const ShellInitParams& init_params);
 
   // Initializes virtual keyboard controller.
   void InitKeyboard();
@@ -613,7 +631,7 @@
   std::vector<WindowAndBoundsPair> to_restore_;
 
   scoped_ptr<UserMetricsRecorder> user_metrics_recorder_;
-  scoped_ptr<NestedDispatcherController> nested_dispatcher_controller_;
+  scoped_ptr< ::wm::NestedAcceleratorController> nested_accelerator_controller_;
   scoped_ptr<AcceleratorController> accelerator_controller_;
   scoped_ptr<ShellDelegate> delegate_;
   scoped_ptr<SystemTrayDelegate> system_tray_delegate_;
@@ -644,6 +662,7 @@
   scoped_ptr<MruWindowTracker> mru_window_tracker_;
   scoped_ptr< ::wm::UserActivityDetector> user_activity_detector_;
   scoped_ptr<VideoDetector> video_detector_;
+  scoped_ptr<WindowCycleController> window_cycle_controller_;
   scoped_ptr<WindowSelectorController> window_selector_controller_;
   scoped_ptr<FocusCycler> focus_cycler_;
   scoped_ptr<DisplayController> display_controller_;
@@ -674,7 +693,7 @@
   scoped_ptr<SystemGestureEventFilter> system_gesture_filter_;
 
   // An event filter that pre-handles global accelerators.
-  scoped_ptr<AcceleratorFilter> accelerator_filter_;
+  scoped_ptr< ::wm::AcceleratorFilter> accelerator_filter_;
 
   // An event filter that pre-handles all key events to send them to an IME.
   scoped_ptr< ::wm::InputMethodEventFilter> input_method_filter_;
@@ -714,6 +733,7 @@
 #if defined(USE_X11)
   scoped_ptr<ui::EventHandler> magnifier_key_scroll_handler_;
   scoped_ptr<ui::EventHandler> speech_feedback_handler_;
+  scoped_ptr<TouchTransformerController> touch_transformer_controller_;
 #endif  // defined(USE_X11)
 #endif  // defined(OS_CHROMEOS)