// Copyright 2014 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 SKY_ENGINE_CORE_DOM_INCREMENTLOADEVENTDELAYCOUNT_H_
#define SKY_ENGINE_CORE_DOM_INCREMENTLOADEVENTDELAYCOUNT_H_

#include "sky/engine/wtf/Noncopyable.h"
#include "sky/engine/wtf/PassOwnPtr.h"
#include "sky/engine/wtf/RefPtr.h"

namespace blink {

class Document;

// A helper class that will increment a document's loadEventDelayCount on
// contruction and decrement it on destruction (semantics similar to RefPtr).
class IncrementLoadEventDelayCount {
    WTF_MAKE_NONCOPYABLE(IncrementLoadEventDelayCount);

public:
    static PassOwnPtr<IncrementLoadEventDelayCount> create(Document&);
    ~IncrementLoadEventDelayCount();

    // Increments the new document's count and decrements the old count.
    void documentChanged(Document& newDocument);

private:
    IncrementLoadEventDelayCount(Document&);
    RefPtr<Document> m_document;
};
}

#endif  // SKY_ENGINE_CORE_DOM_INCREMENTLOADEVENTDELAYCOUNT_H_
