layout/ipc/RenderFrameUtils.h
author Mike Shal <mshal@mozilla.com>
Fri, 16 May 2014 14:37:31 -0400
changeset 210584 c0efa7f1e54c2dfbc9dfa77c49bf0411bc8b891d
parent 197933 17597c063177b626d27d25b3852d2c21fe68bc5f
permissions -rw-r--r--
Bug 978211 - add an automation/build target for post-build steps; r=glandium

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: sw=2 ts=8 et :
 */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_layer_RenderFrameUtils_h
#define mozilla_layer_RenderFrameUtils_h

#include "ipc/IPCMessageUtils.h"

namespace mozilla {
namespace layout {

enum ScrollingBehavior {
  /**
   * Use default scrolling behavior, which is synchronous: web content
   * is reflowed and repainted for every scroll or zoom.
   */
  DEFAULT_SCROLLING,
  /**
   * Use asynchronous panning and zooming, in which prerendered
   * content can be translated and scaled independently of the thread
   * painting content, without content reflowing or repainting.
   */
  ASYNC_PAN_ZOOM,
  SCROLLING_BEHAVIOR_SENTINEL
};

} // namespace layout
} // namespace mozilla

namespace IPC {

template <>
struct ParamTraits<mozilla::layout::ScrollingBehavior>
  : public ContiguousEnumSerializer<
             mozilla::layout::ScrollingBehavior,
             mozilla::layout::DEFAULT_SCROLLING,
             mozilla::layout::SCROLLING_BEHAVIOR_SENTINEL>
{};

} // namespace IPC

#endif // mozilla_layer_RenderFrameUtils_h