1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef IncrementLoadEventDelayCount_h 6#define IncrementLoadEventDelayCount_h 7 8#include "platform/heap/Handle.h" 9#include "wtf/Noncopyable.h" 10#include "wtf/RefPtr.h" 11 12namespace blink { 13 14class Document; 15 16// A helper class that will increment a document's loadEventDelayCount on 17// contruction and decrement it on destruction (semantics similar to RefPtr). 18class IncrementLoadEventDelayCount { 19 WTF_MAKE_NONCOPYABLE(IncrementLoadEventDelayCount); 20 21public: 22 static PassOwnPtr<IncrementLoadEventDelayCount> create(Document&); 23 ~IncrementLoadEventDelayCount(); 24 25 // Increments the new document's count and decrements the old count. 26 void documentChanged(Document& newDocument); 27 28private: 29 IncrementLoadEventDelayCount(Document&); 30 RefPtrWillBePersistent<Document> m_document; 31}; 32} 33 34#endif 35