summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/compositor/resize_lock.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/compositor/resize_lock.h')
-rw-r--r--chromium/content/browser/compositor/resize_lock.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/chromium/content/browser/compositor/resize_lock.h b/chromium/content/browser/compositor/resize_lock.h
new file mode 100644
index 00000000000..07acff33cf1
--- /dev/null
+++ b/chromium/content/browser/compositor/resize_lock.h
@@ -0,0 +1,37 @@
+// 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 CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_
+#define CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_
+
+#include "base/basictypes.h"
+#include "content/common/content_export.h"
+#include "ui/gfx/size.h"
+
+namespace content {
+
+class CONTENT_EXPORT ResizeLock {
+ public:
+ virtual ~ResizeLock();
+
+ virtual bool GrabDeferredLock();
+ virtual void UnlockCompositor();
+
+ const gfx::Size& expected_size() const { return new_size_; }
+
+ protected:
+ ResizeLock(const gfx::Size new_size, bool defer_compositor_lock);
+
+ virtual void LockCompositor();
+
+ private:
+ gfx::Size new_size_;
+ bool defer_compositor_lock_;
+
+ DISALLOW_COPY_AND_ASSIGN(ResizeLock);
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_