blob: 467b8892d2114ac616417725427d3b60b00eab21 [file] [log] [blame]
// 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_