Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Side by Side Diff: Source/modules/serviceworkers/ServiceWorkerContainer.h

Issue 723923002: ServiceWorker: Add support for .skipWaiting and controllerchange event(1/3) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: update property tests Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 17 matching lines...) Expand all
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef ServiceWorkerContainer_h 31 #ifndef ServiceWorkerContainer_h
32 #define ServiceWorkerContainer_h 32 #define ServiceWorkerContainer_h
33 33
34 #include "bindings/core/v8/ScriptPromise.h" 34 #include "bindings/core/v8/ScriptPromise.h"
35 #include "bindings/core/v8/ScriptPromiseProperty.h" 35 #include "bindings/core/v8/ScriptPromiseProperty.h"
36 #include "bindings/core/v8/ScriptWrappable.h" 36 #include "bindings/core/v8/ScriptWrappable.h"
37 #include "core/dom/ContextLifecycleObserver.h" 37 #include "core/dom/ContextLifecycleObserver.h"
38 #include "core/events/EventTarget.h"
38 #include "modules/serviceworkers/RegistrationOptions.h" 39 #include "modules/serviceworkers/RegistrationOptions.h"
39 #include "modules/serviceworkers/ServiceWorker.h" 40 #include "modules/serviceworkers/ServiceWorker.h"
40 #include "modules/serviceworkers/ServiceWorkerRegistration.h" 41 #include "modules/serviceworkers/ServiceWorkerRegistration.h"
41 #include "platform/heap/Handle.h" 42 #include "platform/heap/Handle.h"
42 #include "public/platform/WebServiceWorkerProviderClient.h" 43 #include "public/platform/WebServiceWorkerProviderClient.h"
43 #include "wtf/Forward.h" 44 #include "wtf/Forward.h"
44 #include "wtf/PassRefPtr.h" 45 #include "wtf/PassRefPtr.h"
45 #include "wtf/RefPtr.h" 46 #include "wtf/RefPtr.h"
46 47
47 namespace blink { 48 namespace blink {
48 49
49 class ExecutionContext; 50 class ExecutionContext;
50 class WebServiceWorker; 51 class WebServiceWorker;
51 class WebServiceWorkerProvider; 52 class WebServiceWorkerProvider;
52 class WebServiceWorkerRegistration; 53 class WebServiceWorkerRegistration;
53 54
54 class ServiceWorkerContainer final 55 class ServiceWorkerContainer final
55 : public GarbageCollectedFinalized<ServiceWorkerContainer> 56 : public RefCountedGarbageCollectedWillBeGarbageCollectedFinalized<ServiceWo rkerContainer>
56 , public ScriptWrappable 57 , public EventTargetWithInlineData
57 , public ContextLifecycleObserver 58 , public ContextLifecycleObserver
58 , public WebServiceWorkerProviderClient { 59 , public WebServiceWorkerProviderClient {
59 DEFINE_WRAPPERTYPEINFO(); 60 DEFINE_WRAPPERTYPEINFO();
61 DEFINE_EVENT_TARGET_REFCOUNTING_WILL_BE_REMOVED(RefCountedGarbageCollected<S erviceWorkerContainer>);
62 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ServiceWorkerContainer);
60 public: 63 public:
61 static ServiceWorkerContainer* create(ExecutionContext*); 64 static ServiceWorkerContainer* create(ExecutionContext*);
62 ~ServiceWorkerContainer(); 65 ~ServiceWorkerContainer();
63 66
64 void willBeDetachedFromFrame(); 67 void willBeDetachedFromFrame();
65 68
66 void trace(Visitor*); 69 void trace(Visitor*);
67 70
68 PassRefPtrWillBeRawPtr<ServiceWorker> controller() { return m_controller.get (); } 71 PassRefPtrWillBeRawPtr<ServiceWorker> controller() { return m_controller.get (); }
69 ScriptPromise ready(ScriptState*); 72 ScriptPromise ready(ScriptState*);
70 WebServiceWorkerProvider* provider() { return m_provider; } 73 WebServiceWorkerProvider* provider() { return m_provider; }
71 74
72 ScriptPromise registerServiceWorker(ScriptState*, const String& pattern, con st RegistrationOptions&); 75 ScriptPromise registerServiceWorker(ScriptState*, const String& pattern, con st RegistrationOptions&);
73 ScriptPromise getRegistration(ScriptState*, const String& documentURL); 76 ScriptPromise getRegistration(ScriptState*, const String& documentURL);
74 77
75 // WebServiceWorkerProviderClient overrides. 78 // WebServiceWorkerProviderClient overrides.
76 virtual void setController(WebServiceWorker*) override; 79 virtual void setController(WebServiceWorker*, bool shouldNotifyControllerCha nge) override;
77 virtual void setReadyRegistration(WebServiceWorkerRegistration*) override; 80 virtual void setReadyRegistration(WebServiceWorkerRegistration*) override;
78 virtual void dispatchMessageEvent(const WebString& message, const WebMessage PortChannelArray&) override; 81 virtual void dispatchMessageEvent(const WebString& message, const WebMessage PortChannelArray&) override;
79 82
83 // EventTarget overrides.
84 virtual ExecutionContext* executionContext() const override { return Context LifecycleObserver::executionContext(); }
85 virtual const AtomicString& interfaceName() const override;
86
87 DEFINE_ATTRIBUTE_EVENT_LISTENER(controllerchange);
88
80 private: 89 private:
81 explicit ServiceWorkerContainer(ExecutionContext*); 90 explicit ServiceWorkerContainer(ExecutionContext*);
82 91
83 typedef ScriptPromiseProperty<Member<ServiceWorkerContainer>, Member<Service WorkerRegistration>, Member<ServiceWorkerRegistration> > ReadyProperty; 92 typedef ScriptPromiseProperty<Member<ServiceWorkerContainer>, Member<Service WorkerRegistration>, Member<ServiceWorkerRegistration> > ReadyProperty;
84 ReadyProperty* createReadyProperty(); 93 ReadyProperty* createReadyProperty();
85 94
86 WebServiceWorkerProvider* m_provider; 95 WebServiceWorkerProvider* m_provider;
87 RefPtrWillBeMember<ServiceWorker> m_controller; 96 RefPtrWillBeMember<ServiceWorker> m_controller;
88 Member<ServiceWorkerRegistration> m_readyRegistration; 97 Member<ServiceWorkerRegistration> m_readyRegistration;
89 Member<ReadyProperty> m_ready; 98 Member<ReadyProperty> m_ready;
90 }; 99 };
91 100
92 } // namespace blink 101 } // namespace blink
93 102
94 #endif // ServiceWorkerContainer_h 103 #endif // ServiceWorkerContainer_h
OLDNEW
« no previous file with comments | « Source/modules/EventTargetModulesFactory.in ('k') | Source/modules/serviceworkers/ServiceWorkerContainer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698