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

Side by Side Diff: media/filters/pipeline_integration_test.cc

Issue 555223004: Update MediaKeys interface for EME (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reorder Created 6 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/filters/pipeline_integration_test_base.h" 5 #include "media/filters/pipeline_integration_test_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 public: 112 public:
113 // Defines the behavior of the "app" that responds to EME events. 113 // Defines the behavior of the "app" that responds to EME events.
114 class AppBase { 114 class AppBase {
115 public: 115 public:
116 virtual ~AppBase() {} 116 virtual ~AppBase() {}
117 117
118 virtual void OnSessionMessage(const std::string& web_session_id, 118 virtual void OnSessionMessage(const std::string& web_session_id,
119 const std::vector<uint8>& message, 119 const std::vector<uint8>& message,
120 const GURL& destination_url) = 0; 120 const GURL& destination_url) = 0;
121 121
122 virtual void OnSessionReady(const std::string& web_session_id) = 0; 122 virtual void OnSessionClosed(const std::string& web_session_id) = 0;
123 123
124 virtual void OnSessionClosed(const std::string& web_session_id) = 0; 124 virtual void OnSessionKeysChange(const std::string& web_session_id,
125 bool has_additional_usable_key) = 0;
125 126
126 // Errors are not expected unless overridden. 127 // Errors are not expected unless overridden.
127 virtual void OnSessionError(const std::string& web_session_id, 128 virtual void OnSessionError(const std::string& web_session_id,
128 const std::string& error_name, 129 const std::string& error_name,
129 uint32 system_code, 130 uint32 system_code,
130 const std::string& error_message) { 131 const std::string& error_message) {
131 FAIL() << "Unexpected Key Error"; 132 FAIL() << "Unexpected Key Error";
132 } 133 }
133 134
134 virtual void NeedKey(const std::string& type, 135 virtual void NeedKey(const std::string& type,
135 const std::vector<uint8>& init_data, 136 const std::vector<uint8>& init_data,
136 AesDecryptor* decryptor) = 0; 137 AesDecryptor* decryptor) = 0;
137 }; 138 };
138 139
139 FakeEncryptedMedia(AppBase* app) 140 FakeEncryptedMedia(AppBase* app)
140 : decryptor_(base::Bind(&FakeEncryptedMedia::OnSessionMessage, 141 : decryptor_(base::Bind(&FakeEncryptedMedia::OnSessionMessage,
141 base::Unretained(this)), 142 base::Unretained(this)),
142 base::Bind(&FakeEncryptedMedia::OnSessionClosed, 143 base::Bind(&FakeEncryptedMedia::OnSessionClosed,
144 base::Unretained(this)),
145 base::Bind(&FakeEncryptedMedia::OnSessionKeysChange,
143 base::Unretained(this))), 146 base::Unretained(this))),
144 app_(app) {} 147 app_(app) {}
145 148
146 AesDecryptor* decryptor() { 149 AesDecryptor* decryptor() {
147 return &decryptor_; 150 return &decryptor_;
148 } 151 }
149 152
150 // Callbacks for firing session events. Delegate to |app_|. 153 // Callbacks for firing session events. Delegate to |app_|.
151 void OnSessionMessage(const std::string& web_session_id, 154 void OnSessionMessage(const std::string& web_session_id,
152 const std::vector<uint8>& message, 155 const std::vector<uint8>& message,
153 const GURL& destination_url) { 156 const GURL& destination_url) {
154 app_->OnSessionMessage(web_session_id, message, destination_url); 157 app_->OnSessionMessage(web_session_id, message, destination_url);
155 } 158 }
156 159
157 void OnSessionReady(const std::string& web_session_id) {
158 app_->OnSessionReady(web_session_id);
159 }
160
161 void OnSessionClosed(const std::string& web_session_id) { 160 void OnSessionClosed(const std::string& web_session_id) {
162 app_->OnSessionClosed(web_session_id); 161 app_->OnSessionClosed(web_session_id);
163 } 162 }
164 163
164 void OnSessionKeysChange(const std::string& web_session_id,
165 bool has_additional_usable_key) {
166 app_->OnSessionKeysChange(web_session_id, has_additional_usable_key);
167 }
168
165 void OnSessionError(const std::string& web_session_id, 169 void OnSessionError(const std::string& web_session_id,
166 const std::string& error_name, 170 const std::string& error_name,
167 uint32 system_code, 171 uint32 system_code,
168 const std::string& error_message) { 172 const std::string& error_message) {
169 app_->OnSessionError( 173 app_->OnSessionError(
170 web_session_id, error_name, system_code, error_message); 174 web_session_id, error_name, system_code, error_message);
171 } 175 }
172 176
173 void NeedKey(const std::string& type, 177 void NeedKey(const std::string& type,
174 const std::vector<uint8>& init_data) { 178 const std::vector<uint8>& init_data) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 } 231 }
228 232
229 virtual void OnSessionMessage(const std::string& web_session_id, 233 virtual void OnSessionMessage(const std::string& web_session_id,
230 const std::vector<uint8>& message, 234 const std::vector<uint8>& message,
231 const GURL& destination_url) OVERRIDE { 235 const GURL& destination_url) OVERRIDE {
232 EXPECT_FALSE(web_session_id.empty()); 236 EXPECT_FALSE(web_session_id.empty());
233 EXPECT_FALSE(message.empty()); 237 EXPECT_FALSE(message.empty());
234 EXPECT_EQ(current_session_id_, web_session_id); 238 EXPECT_EQ(current_session_id_, web_session_id);
235 } 239 }
236 240
237 virtual void OnSessionReady(const std::string& web_session_id) OVERRIDE {
238 EXPECT_EQ(current_session_id_, web_session_id);
239 }
240
241 virtual void OnSessionClosed(const std::string& web_session_id) OVERRIDE { 241 virtual void OnSessionClosed(const std::string& web_session_id) OVERRIDE {
242 EXPECT_EQ(current_session_id_, web_session_id); 242 EXPECT_EQ(current_session_id_, web_session_id);
243 } 243 }
244 244
245 virtual void OnSessionKeysChange(const std::string& web_session_id,
246 bool has_additional_usable_key) OVERRIDE {
247 EXPECT_EQ(current_session_id_, web_session_id);
248 EXPECT_EQ(has_additional_usable_key, true);
249 }
250
245 virtual void NeedKey(const std::string& type, 251 virtual void NeedKey(const std::string& type,
246 const std::vector<uint8>& init_data, 252 const std::vector<uint8>& init_data,
247 AesDecryptor* decryptor) OVERRIDE { 253 AesDecryptor* decryptor) OVERRIDE {
248 if (current_session_id_.empty()) { 254 if (current_session_id_.empty()) {
249 decryptor->CreateSession(type, 255 decryptor->CreateSession(type,
250 kInitData, 256 kInitData,
251 arraysize(kInitData), 257 arraysize(kInitData),
252 MediaKeys::TEMPORARY_SESSION, 258 MediaKeys::TEMPORARY_SESSION,
253 CreateSessionPromise(RESOLVED)); 259 CreateSessionPromise(RESOLVED));
254 EXPECT_FALSE(current_session_id_.empty()); 260 EXPECT_FALSE(current_session_id_.empty());
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 class NoResponseApp : public FakeEncryptedMedia::AppBase { 358 class NoResponseApp : public FakeEncryptedMedia::AppBase {
353 public: 359 public:
354 virtual void OnSessionMessage(const std::string& web_session_id, 360 virtual void OnSessionMessage(const std::string& web_session_id,
355 const std::vector<uint8>& message, 361 const std::vector<uint8>& message,
356 const GURL& default_url) OVERRIDE { 362 const GURL& default_url) OVERRIDE {
357 EXPECT_FALSE(web_session_id.empty()); 363 EXPECT_FALSE(web_session_id.empty());
358 EXPECT_FALSE(message.empty()); 364 EXPECT_FALSE(message.empty());
359 FAIL() << "Unexpected Message"; 365 FAIL() << "Unexpected Message";
360 } 366 }
361 367
362 virtual void OnSessionReady(const std::string& web_session_id) OVERRIDE {
363 EXPECT_FALSE(web_session_id.empty());
364 FAIL() << "Unexpected Ready";
365 }
366
367 virtual void OnSessionClosed(const std::string& web_session_id) OVERRIDE { 368 virtual void OnSessionClosed(const std::string& web_session_id) OVERRIDE {
368 EXPECT_FALSE(web_session_id.empty()); 369 EXPECT_FALSE(web_session_id.empty());
369 FAIL() << "Unexpected Closed"; 370 FAIL() << "Unexpected Closed";
370 } 371 }
371 372
373 virtual void OnSessionKeysChange(const std::string& web_session_id,
374 bool has_additional_usable_key) OVERRIDE {
375 EXPECT_FALSE(web_session_id.empty());
376 EXPECT_EQ(has_additional_usable_key, true);
377 }
378
372 virtual void NeedKey(const std::string& type, 379 virtual void NeedKey(const std::string& type,
373 const std::vector<uint8>& init_data, 380 const std::vector<uint8>& init_data,
374 AesDecryptor* decryptor) OVERRIDE { 381 AesDecryptor* decryptor) OVERRIDE {
375 } 382 }
376 }; 383 };
377 384
378 // Helper class that emulates calls made on the ChunkDemuxer by the 385 // Helper class that emulates calls made on the ChunkDemuxer by the
379 // Media Source API. 386 // Media Source API.
380 class MockMediaSource { 387 class MockMediaSource {
381 public: 388 public:
(...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1578 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_shorter_than_video.ogv"), 1585 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_shorter_than_video.ogv"),
1579 PIPELINE_OK)); 1586 PIPELINE_OK));
1580 // Audio track is 500ms. Video track is 1001ms. Duration should be higher of 1587 // Audio track is 500ms. Video track is 1001ms. Duration should be higher of
1581 // the two. 1588 // the two.
1582 EXPECT_EQ(1001, pipeline_->GetMediaDuration().InMilliseconds()); 1589 EXPECT_EQ(1001, pipeline_->GetMediaDuration().InMilliseconds());
1583 Play(); 1590 Play();
1584 ASSERT_TRUE(WaitUntilOnEnded()); 1591 ASSERT_TRUE(WaitUntilOnEnded());
1585 } 1592 }
1586 1593
1587 } // namespace media 1594 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698