• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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