1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_ 6#define CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_ 7 8#include "base/basictypes.h" 9#include "content/common/content_export.h" 10#include "ui/gfx/size.h" 11 12namespace content { 13 14class CONTENT_EXPORT ResizeLock { 15 public: 16 virtual ~ResizeLock(); 17 18 virtual bool GrabDeferredLock(); 19 virtual void UnlockCompositor(); 20 21 const gfx::Size& expected_size() const { return new_size_; } 22 23 protected: 24 ResizeLock(const gfx::Size new_size, bool defer_compositor_lock); 25 26 virtual void LockCompositor(); 27 28 private: 29 gfx::Size new_size_; 30 bool defer_compositor_lock_; 31 32 DISALLOW_COPY_AND_ASSIGN(ResizeLock); 33}; 34 35} // namespace content 36 37#endif // CONTENT_BROWSER_COMPOSITOR_RESIZE_LOCK_H_ 38