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 12 namespace WebCore { 13 14 class ExecutionContext; 15 class Request; 16 class RespondWithObserver; 17 18 // A fetch event is dispatched by the client to a service worker's script 19 // context. RespondWithObserver can be used to notify the client about the 20 // service worker's response. 21 class FetchEvent FINAL : public Event { 22 public: 23 static PassRefPtrWillBeRawPtr<FetchEvent> create(); 24 static PassRefPtrWillBeRawPtr<FetchEvent> create(PassRefPtr<RespondWithObserver>, PassRefPtr<Request>); ~FetchEvent()25 virtual ~FetchEvent() { } 26 27 Request* request() const; 28 29 void respondWith(ScriptState*, const ScriptValue&); 30 31 virtual const AtomicString& interfaceName() const OVERRIDE; 32 33 virtual void trace(Visitor*) OVERRIDE; 34 35 protected: 36 FetchEvent(); 37 FetchEvent(PassRefPtr<RespondWithObserver>, PassRefPtr<Request>); 38 39 private: 40 RefPtr<RespondWithObserver> m_observer; 41 RefPtr<Request> m_request; 42 }; 43 44 } // namespace WebCore 45 46 #endif // FetchEvent_h 47