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 FetchEvent_h 6 #define FetchEvent_h 7 8 #include "modules/EventModules.h" 9 #include "modules/serviceworkers/Request.h" 10 #include "modules/serviceworkers/RespondWithObserver.h" 11 #include "platform/heap/Handle.h" 12 13 namespace blink { 14 15 class ExceptionState; 16 class ExecutionContext; 17 class Request; 18 class RespondWithObserver; 19 20 // A fetch event is dispatched by the client to a service worker's script 21 // context. RespondWithObserver can be used to notify the client about the 22 // service worker's response. 23 class FetchEvent FINAL : public Event { 24 DEFINE_WRAPPERTYPEINFO(); 25 public: 26 static PassRefPtrWillBeRawPtr<FetchEvent> create(); 27 static PassRefPtrWillBeRawPtr<FetchEvent> create(RespondWithObserver*, Request*); 28 29 Request* request() const; 30 bool isReload() const; 31 32 void respondWith(ScriptState*, const ScriptValue&, ExceptionState&); 33 34 virtual const AtomicString& interfaceName() const OVERRIDE; 35 36 void setIsReload(bool); 37 38 virtual void trace(Visitor*) OVERRIDE; 39 40 protected: 41 FetchEvent(); 42 FetchEvent(RespondWithObserver*, Request*); 43 44 private: 45 PersistentWillBeMember<RespondWithObserver> m_observer; 46 PersistentWillBeMember<Request> m_request; 47 bool m_isReload; 48 }; 49 50 } // namespace blink 51 52 #endif // FetchEvent_h 53