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 DeviceSingleWindowEventController_h 6#define DeviceSingleWindowEventController_h 7 8#include "core/frame/DOMWindowLifecycleObserver.h" 9#include "core/frame/PlatformEventController.h" 10#include "platform/heap/Handle.h" 11 12namespace blink { 13 14class Document; 15class Event; 16 17class DeviceSingleWindowEventController : public NoBaseWillBeGarbageCollectedFinalized<DeviceSingleWindowEventController>, public PlatformEventController, public DOMWindowLifecycleObserver { 18public: 19 virtual ~DeviceSingleWindowEventController(); 20 21 // Inherited from DeviceEventControllerBase. 22 virtual void didUpdateData() OVERRIDE; 23 virtual void trace(Visitor*); 24 25 // Inherited from DOMWindowLifecycleObserver. 26 virtual void didAddEventListener(LocalDOMWindow*, const AtomicString&) OVERRIDE; 27 virtual void didRemoveEventListener(LocalDOMWindow*, const AtomicString&) OVERRIDE; 28 virtual void didRemoveAllEventListeners(LocalDOMWindow*) OVERRIDE; 29 30protected: 31 explicit DeviceSingleWindowEventController(Document&); 32 33 void dispatchDeviceEvent(const PassRefPtrWillBeRawPtr<Event>); 34 35 virtual PassRefPtrWillBeRawPtr<Event> lastEvent() const = 0; 36 virtual const AtomicString& eventTypeName() const = 0; 37 virtual bool isNullEvent(Event*) const = 0; 38 39private: 40 Document& document() const { return *m_document; } 41 42 bool m_needsCheckingNullEvents; 43 RawPtrWillBeMember<Document> m_document; 44}; 45 46} // namespace blink 47 48#endif // DeviceSingleWindowEventController_h 49