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

Side by Side Diff: third_party/WebKit/Source/modules/remoteplayback/RemotePlayback.cpp

Issue 2415443004: [Blink, RemotePlayback]Split onstatechange to separate events (Closed)
Patch Set: Added extra state changes Created 4 years, 2 months 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "modules/remoteplayback/RemotePlayback.h" 5 #include "modules/remoteplayback/RemotePlayback.h"
6 6
7 #include "bindings/core/v8/ScriptPromiseResolver.h" 7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "core/HTMLNames.h" 8 #include "core/HTMLNames.h"
9 #include "core/dom/DOMException.h" 9 #include "core/dom/DOMException.h"
10 #include "core/dom/Document.h" 10 #include "core/dom/Document.h"
11 #include "core/events/Event.h" 11 #include "core/events/Event.h"
12 #include "core/html/HTMLMediaElement.h" 12 #include "core/html/HTMLMediaElement.h"
13 #include "modules/EventTargetModules.h" 13 #include "modules/EventTargetModules.h"
14 #include "modules/remoteplayback/RemotePlaybackAvailability.h" 14 #include "modules/remoteplayback/RemotePlaybackAvailability.h"
15 #include "platform/UserGestureIndicator.h" 15 #include "platform/UserGestureIndicator.h"
16 16
17 namespace blink { 17 namespace blink {
18 18
19 namespace { 19 namespace {
20 20
21 const AtomicString& remotePlaybackStateToString(WebRemotePlaybackState state) { 21 const AtomicString& remotePlaybackStateToString(WebRemotePlaybackState state) {
22 DEFINE_STATIC_LOCAL(const AtomicString, connectingValue, ("connecting"));
22 DEFINE_STATIC_LOCAL(const AtomicString, connectedValue, ("connected")); 23 DEFINE_STATIC_LOCAL(const AtomicString, connectedValue, ("connected"));
23 DEFINE_STATIC_LOCAL(const AtomicString, disconnectedValue, ("disconnected")); 24 DEFINE_STATIC_LOCAL(const AtomicString, disconnectedValue, ("disconnected"));
24 25
25 switch (state) { 26 switch (state) {
27 case WebRemotePlaybackState::Connecting:
28 return connectingValue;
26 case WebRemotePlaybackState::Connected: 29 case WebRemotePlaybackState::Connected:
27 return connectedValue; 30 return connectedValue;
28 case WebRemotePlaybackState::Disconnected: 31 case WebRemotePlaybackState::Disconnected:
29 return disconnectedValue; 32 return disconnectedValue;
30 } 33 }
31 34
32 ASSERT_NOT_REACHED(); 35 ASSERT_NOT_REACHED();
33 return disconnectedValue; 36 return disconnectedValue;
34 } 37 }
35 38
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 else 142 else
140 m_promptPromiseResolver->reject(DOMException::create( 143 m_promptPromiseResolver->reject(DOMException::create(
141 AbortError, "Failed to connect to the remote device.")); 144 AbortError, "Failed to connect to the remote device."));
142 m_promptPromiseResolver = nullptr; 145 m_promptPromiseResolver = nullptr;
143 } 146 }
144 147
145 if (m_state == state) 148 if (m_state == state)
146 return; 149 return;
147 150
148 m_state = state; 151 m_state = state;
149 dispatchEvent(Event::create(EventTypeNames::statechange)); 152 switch (m_state) {
153 case WebRemotePlaybackState::Connecting:
154 dispatchEvent(Event::create(EventTypeNames::connecting));
155 break;
156 case WebRemotePlaybackState::Connected:
157 dispatchEvent(Event::create(EventTypeNames::connect));
158 break;
159 case WebRemotePlaybackState::Disconnected:
160 dispatchEvent(Event::create(EventTypeNames::disconnect));
161 break;
162 }
150 } 163 }
151 164
152 void RemotePlayback::availabilityChanged(bool available) { 165 void RemotePlayback::availabilityChanged(bool available) {
153 if (m_availability == available) 166 if (m_availability == available)
154 return; 167 return;
155 168
156 m_availability = available; 169 m_availability = available;
157 for (auto& availabilityObject : m_availabilityObjects) 170 for (auto& availabilityObject : m_availabilityObjects)
158 availabilityObject->availabilityChanged(available); 171 availabilityObject->availabilityChanged(available);
159 } 172 }
160 173
161 void RemotePlayback::promptCancelled() { 174 void RemotePlayback::promptCancelled() {
162 if (!m_promptPromiseResolver) 175 if (!m_promptPromiseResolver)
163 return; 176 return;
164 177
165 m_promptPromiseResolver->reject( 178 m_promptPromiseResolver->reject(
166 DOMException::create(NotAllowedError, "The prompt was dismissed.")); 179 DOMException::create(NotAllowedError, "The prompt was dismissed."));
167 m_promptPromiseResolver = nullptr; 180 m_promptPromiseResolver = nullptr;
168 } 181 }
169 182
170 DEFINE_TRACE(RemotePlayback) { 183 DEFINE_TRACE(RemotePlayback) {
171 visitor->trace(m_availabilityObjects); 184 visitor->trace(m_availabilityObjects);
172 visitor->trace(m_promptPromiseResolver); 185 visitor->trace(m_promptPromiseResolver);
173 visitor->trace(m_mediaElement); 186 visitor->trace(m_mediaElement);
174 EventTargetWithInlineData::trace(visitor); 187 EventTargetWithInlineData::trace(visitor);
175 } 188 }
176 189
177 } // namespace blink 190 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698