Merge from Chromium at DEPS revision 251904

This commit was generated by merge_to_master.py.

Change-Id: I1f9543259d7d2a57d81aa41a1b84f85837439d21
diff --git a/ash/wm/resize_handle_window_targeter.h b/ash/wm/resize_handle_window_targeter.h
new file mode 100644
index 0000000..4ddb66f
--- /dev/null
+++ b/ash/wm/resize_handle_window_targeter.h
@@ -0,0 +1,56 @@
+// 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.
+
+#ifndef ASH_WM_RESIZE_HANDLE_WINDOW_TARGETER_H_
+#define ASH_WM_RESIZE_HANDLE_WINDOW_TARGETER_H_
+
+#include "ash/wm/window_state_observer.h"
+#include "ui/aura/window_observer.h"
+#include "ui/aura/window_targeter.h"
+#include "ui/gfx/geometry/insets.h"
+
+namespace ash {
+
+class ImmersiveFullscreenController;
+
+// To allow easy resize, the resize handles should slightly overlap the content
+// area of non-maximized and non-fullscreen windows. For immersive fullscreen
+// windows, this targeter makes sure that touch-events towards the top of the
+// screen are targeted to the window itself (instead of a child window that may
+// otherwise have been targeted) when the top-of-window views are not revealed.
+class ResizeHandleWindowTargeter : public wm::WindowStateObserver,
+                                   public aura::WindowObserver,
+                                   public aura::WindowTargeter {
+ public:
+  ResizeHandleWindowTargeter(aura::Window* window,
+                             ImmersiveFullscreenController* immersive);
+  virtual ~ResizeHandleWindowTargeter();
+
+ private:
+  // wm::WindowStateObserver:
+  virtual void OnPostWindowShowTypeChange(wm::WindowState* window_state,
+                                          wm::WindowShowType old_type) OVERRIDE;
+  // aura::WindowObserver:
+  virtual void OnWindowDestroying(aura::Window* window) OVERRIDE;
+
+  // aura::WindowTargeter:
+  virtual ui::EventTarget* FindTargetForLocatedEvent(
+      ui::EventTarget* root,
+      ui::LocatedEvent* event) OVERRIDE;
+  virtual bool SubtreeShouldBeExploredForEvent(
+      ui::EventTarget* target,
+      const ui::LocatedEvent& event) OVERRIDE;
+
+  // The targeter does not take ownership of |window_| or
+  // |immersive_controller_|.
+  aura::Window* window_;
+  gfx::Insets frame_border_inset_;
+  ImmersiveFullscreenController* immersive_controller_;
+
+  DISALLOW_COPY_AND_ASSIGN(ResizeHandleWindowTargeter);
+};
+
+}  // namespace ash
+
+#endif  // ASH_WM_RESIZE_HANDLE_WINDOW_TARGETER_H_