| Index: remoting/host/desktop_resizer.h | 
| diff --git a/remoting/host/desktop_resizer.h b/remoting/host/desktop_resizer.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..52c19a0c31b6edbf374679f5f5007e9f3c309a1d | 
| --- /dev/null | 
| +++ b/remoting/host/desktop_resizer.h | 
| @@ -0,0 +1,43 @@ | 
| +// Copyright (c) 2012 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 REMOTING_HOST_DESKTOP_RESIZER_H_ | 
| +#define REMOTING_HOST_DESKTOP_RESIZER_H_ | 
| + | 
| +#include <list> | 
| + | 
| +#include "base/memory/scoped_ptr.h" | 
| +#include "third_party/skia/include/core/SkRect.h" | 
| + | 
| +namespace remoting { | 
| + | 
| +class DesktopResizer { | 
| + public: | 
| +  virtual ~DesktopResizer() {} | 
| + | 
| +  // Create a platform-specific DesktopResizer instance. | 
| +  static scoped_ptr<DesktopResizer> Create(); | 
| + | 
| +  // Return the current size of the desktop. This size will be restored upon | 
| +  // disconnection. | 
| +  virtual SkISize GetCurrentSize() = 0; | 
| + | 
| +  // Get the list of supported sizes, which should ideally include |preferred|. | 
| +  // Implementations will generally do one of the following: | 
| +  //   1. Return the list of sizes supported by the underlying video driver, | 
| +  //      regardless of |preferred|. | 
| +  //   2. Return a list containing just |preferred|, perhaps after imposing | 
| +  //      some minimum size constraint. This will typically be the case if | 
| +  //      there are no constraints imposed by the underlying video driver. | 
| +  //   3. Return an empty list if resize is not supported. | 
| +  virtual std::list<SkISize> GetSupportedSizes(const SkISize& preferred) = 0; | 
| + | 
| +  // Set the size of the desktop. |size| is guaranteed to be one of the sizes | 
| +  // previously returned by |GetSupportedSizes| or |GetCurrentSize|. | 
| +  virtual void SetSize(const SkISize& size) = 0; | 
| +}; | 
| + | 
| +}  // namespace remoting | 
| + | 
| +#endif  // REMOTING_HOST_DESKTOP_RESIZER_H_ | 
|  |