OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "modules/serviceworkers/WaitUntilObserver.h" | 6 #include "modules/serviceworkers/WaitUntilObserver.h" |
7 | 7 |
8 #include "bindings/v8/ScriptFunction.h" | 8 #include "bindings/v8/ScriptFunction.h" |
9 #include "bindings/v8/ScriptPromise.h" | 9 #include "bindings/v8/ScriptPromise.h" |
10 #include "bindings/v8/ScriptValue.h" | 10 #include "bindings/v8/ScriptValue.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 incrementPendingActivity(); | 77 incrementPendingActivity(); |
78 ScriptPromise::cast(value).then( | 78 ScriptPromise::cast(value).then( |
79 ThenFunction::create(this, ThenFunction::Fulfilled), | 79 ThenFunction::create(this, ThenFunction::Fulfilled), |
80 ThenFunction::create(this, ThenFunction::Rejected)); | 80 ThenFunction::create(this, ThenFunction::Rejected)); |
81 } | 81 } |
82 | 82 |
83 WaitUntilObserver::WaitUntilObserver(ExecutionContext* context, int eventID) | 83 WaitUntilObserver::WaitUntilObserver(ExecutionContext* context, int eventID) |
84 : ContextLifecycleObserver(context) | 84 : ContextLifecycleObserver(context) |
85 , m_eventID(eventID) | 85 , m_eventID(eventID) |
86 , m_pendingActivity(0) | 86 , m_pendingActivity(0) |
| 87 , m_error(false) |
87 { | 88 { |
88 } | 89 } |
89 | 90 |
90 void WaitUntilObserver::reportError(const ScriptValue& value) | 91 void WaitUntilObserver::reportError(const ScriptValue& value) |
91 { | 92 { |
92 // FIXME: Propagate error message to the client for onerror handling. | 93 // FIXME: Propagate error message to the client for onerror handling. |
93 notImplemented(); | 94 notImplemented(); |
| 95 |
| 96 m_error = true; |
94 } | 97 } |
95 | 98 |
96 void WaitUntilObserver::incrementPendingActivity() | 99 void WaitUntilObserver::incrementPendingActivity() |
97 { | 100 { |
98 ++m_pendingActivity; | 101 ++m_pendingActivity; |
99 } | 102 } |
100 | 103 |
101 void WaitUntilObserver::decrementPendingActivity() | 104 void WaitUntilObserver::decrementPendingActivity() |
102 { | 105 { |
103 ASSERT(m_pendingActivity > 0); | 106 ASSERT(m_pendingActivity > 0); |
104 if (--m_pendingActivity || !executionContext()) | 107 if (--m_pendingActivity || !executionContext()) |
105 return; | 108 return; |
106 | 109 |
107 ServiceWorkerGlobalScopeClient::from(executionContext())->didHandleInstallEv
ent(m_eventID); | 110 ServiceWorkerGlobalScopeClient::from(executionContext())->didHandleInstallEv
ent(m_eventID, m_error); |
108 observeContext(0); | 111 observeContext(0); |
109 } | 112 } |
110 | 113 |
111 } // namespace WebCore | 114 } // namespace WebCore |
OLD | NEW |