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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/BaseAudioContextTest.cpp

Issue 2645733003: Remove STACK_ALLOCATED() from ScopedTestingPlatformSupport (Closed)
Patch Set: Created 3 years, 11 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/webaudio/BaseAudioContext.h" 5 #include "modules/webaudio/BaseAudioContext.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/dom/DocumentUserGestureToken.h" 8 #include "core/dom/DocumentUserGestureToken.h"
9 #include "core/frame/FrameOwner.h" 9 #include "core/frame/FrameOwner.h"
10 #include "core/frame/FrameTypes.h" 10 #include "core/frame/FrameTypes.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 audioContext->rejectPendingResolvers(); 114 audioContext->rejectPendingResolvers();
115 } 115 }
116 116
117 void recordAutoplayStatus(BaseAudioContext* audioContext) { 117 void recordAutoplayStatus(BaseAudioContext* audioContext) {
118 audioContext->recordAutoplayStatus(); 118 audioContext->recordAutoplayStatus();
119 } 119 }
120 120
121 private: 121 private:
122 std::unique_ptr<DummyPageHolder> m_dummyPageHolder; 122 std::unique_ptr<DummyPageHolder> m_dummyPageHolder;
123 Persistent<DummyFrameOwner> m_dummyFrameOwner; 123 Persistent<DummyFrameOwner> m_dummyFrameOwner;
124
125 Persistent<LocalFrame> m_childFrame; 124 Persistent<LocalFrame> m_childFrame;
125 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> m_platform;
126 }; 126 };
127 127
128 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) { 128 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) {
129 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
130 HistogramTester histogramTester; 129 HistogramTester histogramTester;
131 130
132 BaseAudioContext* audioContext = 131 BaseAudioContext* audioContext =
133 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION); 132 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION);
134 recordAutoplayStatus(audioContext); 133 recordAutoplayStatus(audioContext);
135 134
136 histogramTester.expectTotalCount(kCrossOriginMetric, 0); 135 histogramTester.expectTotalCount(kCrossOriginMetric, 0);
137 } 136 }
138 137
139 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateNoGesture) { 138 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateNoGesture) {
140 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
141 HistogramTester histogramTester; 139 HistogramTester histogramTester;
142 createChildFrame(); 140 createChildFrame();
143 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 141 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
144 142
145 BaseAudioContext* audioContext = 143 BaseAudioContext* audioContext =
146 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 144 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
147 recordAutoplayStatus(audioContext); 145 recordAutoplayStatus(audioContext);
148 146
149 histogramTester.expectBucketCount(kCrossOriginMetric, 147 histogramTester.expectBucketCount(kCrossOriginMetric,
150 AutoplayStatus::AutoplayStatusFailed, 1); 148 AutoplayStatus::AutoplayStatusFailed, 1);
151 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 149 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
152 } 150 }
153 151
154 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeNoGesture) { 152 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeNoGesture) {
155 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
156 HistogramTester histogramTester; 153 HistogramTester histogramTester;
157 createChildFrame(); 154 createChildFrame();
158 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 155 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
159 156
160 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 157 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
161 158
162 BaseAudioContext* audioContext = 159 BaseAudioContext* audioContext =
163 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 160 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
164 audioContext->resumeContext(getScriptStateFrom(childDocument())); 161 audioContext->resumeContext(getScriptStateFrom(childDocument()));
165 rejectPendingResolvers(audioContext); 162 rejectPendingResolvers(audioContext);
166 recordAutoplayStatus(audioContext); 163 recordAutoplayStatus(audioContext);
167 164
168 histogramTester.expectBucketCount(kCrossOriginMetric, 165 histogramTester.expectBucketCount(kCrossOriginMetric,
169 AutoplayStatus::AutoplayStatusFailed, 1); 166 AutoplayStatus::AutoplayStatusFailed, 1);
170 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 167 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
171 } 168 }
172 169
173 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateGesture) { 170 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateGesture) {
174 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
175 HistogramTester histogramTester; 171 HistogramTester histogramTester;
176 createChildFrame(); 172 createChildFrame();
177 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 173 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
178 174
179 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 175 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
180 &childDocument(), UserGestureToken::NewGesture)); 176 &childDocument(), UserGestureToken::NewGesture));
181 177
182 BaseAudioContext* audioContext = 178 BaseAudioContext* audioContext =
183 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 179 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
184 recordAutoplayStatus(audioContext); 180 recordAutoplayStatus(audioContext);
185 181
186 histogramTester.expectBucketCount(kCrossOriginMetric, 182 histogramTester.expectBucketCount(kCrossOriginMetric,
187 AutoplayStatus::AutoplayStatusSucceeded, 1); 183 AutoplayStatus::AutoplayStatusSucceeded, 1);
188 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 184 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
189 } 185 }
190 186
191 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeGesture) { 187 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeGesture) {
192 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
193 HistogramTester histogramTester; 188 HistogramTester histogramTester;
194 createChildFrame(); 189 createChildFrame();
195 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 190 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
196 191
197 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 192 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
198 193
199 BaseAudioContext* audioContext = 194 BaseAudioContext* audioContext =
200 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 195 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
201 196
202 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 197 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
203 &childDocument(), UserGestureToken::NewGesture)); 198 &childDocument(), UserGestureToken::NewGesture));
204 199
205 audioContext->resumeContext(getScriptStateFrom(childDocument())); 200 audioContext->resumeContext(getScriptStateFrom(childDocument()));
206 rejectPendingResolvers(audioContext); 201 rejectPendingResolvers(audioContext);
207 recordAutoplayStatus(audioContext); 202 recordAutoplayStatus(audioContext);
208 203
209 histogramTester.expectBucketCount(kCrossOriginMetric, 204 histogramTester.expectBucketCount(kCrossOriginMetric,
210 AutoplayStatus::AutoplayStatusSucceeded, 1); 205 AutoplayStatus::AutoplayStatusSucceeded, 1);
211 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 206 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
212 } 207 }
213 208
214 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGesture) { 209 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGesture) {
215 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
216 HistogramTester histogramTester; 210 HistogramTester histogramTester;
217 createChildFrame(); 211 createChildFrame();
218 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 212 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
219 213
220 BaseAudioContext* audioContext = 214 BaseAudioContext* audioContext =
221 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 215 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
222 audioContext->maybeRecordStartAttempt(); 216 audioContext->maybeRecordStartAttempt();
223 recordAutoplayStatus(audioContext); 217 recordAutoplayStatus(audioContext);
224 218
225 histogramTester.expectBucketCount(kCrossOriginMetric, 219 histogramTester.expectBucketCount(kCrossOriginMetric,
226 AutoplayStatus::AutoplayStatusFailed, 1); 220 AutoplayStatus::AutoplayStatusFailed, 1);
227 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 221 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
228 } 222 }
229 223
230 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGesture) { 224 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGesture) {
231 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
232 HistogramTester histogramTester; 225 HistogramTester histogramTester;
233 createChildFrame(); 226 createChildFrame();
234 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 227 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
235 228
236 BaseAudioContext* audioContext = 229 BaseAudioContext* audioContext =
237 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 230 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
238 231
239 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 232 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
240 &childDocument(), UserGestureToken::NewGesture)); 233 &childDocument(), UserGestureToken::NewGesture));
241 audioContext->maybeRecordStartAttempt(); 234 audioContext->maybeRecordStartAttempt();
242 recordAutoplayStatus(audioContext); 235 recordAutoplayStatus(audioContext);
243 236
244 histogramTester.expectBucketCount( 237 histogramTester.expectBucketCount(
245 kCrossOriginMetric, AutoplayStatus::AutoplayStatusFailedWithStart, 1); 238 kCrossOriginMetric, AutoplayStatus::AutoplayStatusFailedWithStart, 1);
246 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 239 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
247 } 240 }
248 241
249 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGestureThenSuccess) { 242 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGestureThenSuccess) {
250 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
251 HistogramTester histogramTester; 243 HistogramTester histogramTester;
252 createChildFrame(); 244 createChildFrame();
253 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 245 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
254 246
255 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 247 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
256 248
257 BaseAudioContext* audioContext = 249 BaseAudioContext* audioContext =
258 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 250 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
259 audioContext->maybeRecordStartAttempt(); 251 audioContext->maybeRecordStartAttempt();
260 252
261 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 253 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
262 &childDocument(), UserGestureToken::NewGesture)); 254 &childDocument(), UserGestureToken::NewGesture));
263 audioContext->resumeContext(getScriptStateFrom(childDocument())); 255 audioContext->resumeContext(getScriptStateFrom(childDocument()));
264 rejectPendingResolvers(audioContext); 256 rejectPendingResolvers(audioContext);
265 recordAutoplayStatus(audioContext); 257 recordAutoplayStatus(audioContext);
266 258
267 histogramTester.expectBucketCount(kCrossOriginMetric, 259 histogramTester.expectBucketCount(kCrossOriginMetric,
268 AutoplayStatus::AutoplayStatusSucceeded, 1); 260 AutoplayStatus::AutoplayStatusSucceeded, 1);
269 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 261 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
270 } 262 }
271 263
272 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGestureThenSucces) { 264 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGestureThenSucces) {
273 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
274 HistogramTester histogramTester; 265 HistogramTester histogramTester;
275 createChildFrame(); 266 createChildFrame();
276 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 267 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
277 268
278 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 269 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
279 270
280 BaseAudioContext* audioContext = 271 BaseAudioContext* audioContext =
281 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 272 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
282 273
283 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 274 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
284 &childDocument(), UserGestureToken::NewGesture)); 275 &childDocument(), UserGestureToken::NewGesture));
285 audioContext->maybeRecordStartAttempt(); 276 audioContext->maybeRecordStartAttempt();
286 audioContext->resumeContext(getScriptStateFrom(childDocument())); 277 audioContext->resumeContext(getScriptStateFrom(childDocument()));
287 rejectPendingResolvers(audioContext); 278 rejectPendingResolvers(audioContext);
288 recordAutoplayStatus(audioContext); 279 recordAutoplayStatus(audioContext);
289 280
290 histogramTester.expectBucketCount(kCrossOriginMetric, 281 histogramTester.expectBucketCount(kCrossOriginMetric,
291 AutoplayStatus::AutoplayStatusSucceeded, 1); 282 AutoplayStatus::AutoplayStatusSucceeded, 1);
292 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 283 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
293 } 284 }
294 285
295 } // namespace blink 286 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698