exo: Improve support for transparent insets window state.

Use the alpha value to determine transparent insets instead
of the input bounds.

BUG=604773
TEST=manual

Review-Url: https://codereview.chromium.org/1971413002
Cr-Commit-Position: refs/heads/master@{#393421}
diff --git a/components/exo/surface.h b/components/exo/surface.h
index 417dba4..cc00e10 100644
--- a/components/exo/surface.h
+++ b/components/exo/surface.h
@@ -122,6 +122,9 @@
   // Returns the current input region of surface in the form of a hit-test mask.
   void GetHitTestMask(gfx::Path* mask) const;
 
+  // Returns the bounds of the surface area that is not know to be transparent.
+  gfx::Rect GetNonTransparentBounds() const;
+
   // Set the surface delegate.
   void SetSurfaceDelegate(SurfaceDelegate* delegate);
 
@@ -211,6 +214,9 @@
   // The alpha state to take effect when Commit() is called.
   float pending_alpha_;
 
+  // The active alpha state.
+  float alpha_;
+
   // The buffer that is currently set as content of surface.
   base::WeakPtr<Buffer> current_buffer_;