103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file. 403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#ifndef CC_TREES_SCOPED_ABORT_REMAINING_SWAP_PROMISES_H_ 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#define CC_TREES_SCOPED_ABORT_REMAINING_SWAP_PROMISES_H_ 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/base/swap_promise.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/trees/layer_tree_host.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace cc { 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class ScopedAbortRemainingSwapPromises { 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) public: 1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) explicit ScopedAbortRemainingSwapPromises(LayerTreeHost* layer_tree_host) 1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) : layer_tree_host_(layer_tree_host) {} 1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) ~ScopedAbortRemainingSwapPromises() { 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) layer_tree_host_->BreakSwapPromises(SwapPromise::COMMIT_FAILS); 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) } 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) private: 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) LayerTreeHost* layer_tree_host_; 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ScopedAbortRemainingSwapPromises); 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}; 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace cc 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#endif // CC_TREES_SCOPED_ABORT_REMAINING_SWAP_PROMISES_H_ 31