// Copyright 2013 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_RENDERER_RESIZING_MODE_SELECTOR_H_ #define CONTENT_RENDERER_RESIZING_MODE_SELECTOR_H_ #include "base/basictypes.h" struct ViewMsg_Resize_Params; namespace content { class RenderWidget; // Enables switching between two modes of resizing: // 1) The "normal" (asynchronous) resizing, which involves sending messages to // and receiving them from host; and // 2) The synchronous mode, which short-circuits the resizing logic to operate // strictly inside renderer. // The latter is necessary to support a handful of layout tests that were // written with the expectation of a synchronous resize, and we're going to // eventually rewrite or remove all of them. See http://crbug.com/309760 for // details. class ResizingModeSelector { public: ResizingModeSelector(); bool NeverUsesSynchronousResize() const; bool ShouldAbortOnResize(RenderWidget* widget, const ViewMsg_Resize_Params& params); void set_is_synchronous_mode(bool mode); bool is_synchronous_mode() const; private: bool is_synchronous_mode_; DISALLOW_COPY_AND_ASSIGN(ResizingModeSelector); }; } // namespace content #endif // CONTENT_RENDERER_RESIZING_MODE_SELECTOR_H_