Home | History | Annotate | Download | only in serviceworkers
      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