| Index: media/blink/buffered_data_source_unittest.cc
|
| diff --git a/media/blink/buffered_data_source_unittest.cc b/media/blink/buffered_data_source_unittest.cc
|
| index 878d5f7ea007d663509dca2b131239f303645ad0..aed8453eba0dc1020438c91ed5aa6105839474e3 100644
|
| --- a/media/blink/buffered_data_source_unittest.cc
|
| +++ b/media/blink/buffered_data_source_unittest.cc
|
| @@ -51,11 +51,12 @@ class MockBufferedDataSource : public BufferedDataSource {
|
| public:
|
| MockBufferedDataSource(
|
| const GURL& url,
|
| + BufferedResourceLoader::CORSMode cors_mode,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| WebLocalFrame* frame,
|
| BufferedDataSourceHost* host)
|
| : BufferedDataSource(url,
|
| - BufferedResourceLoader::kUnspecified,
|
| + cors_mode,
|
| task_runner,
|
| frame,
|
| new media::MediaLog(),
|
| @@ -128,13 +129,13 @@ class BufferedDataSourceTest : public testing::Test {
|
|
|
| MOCK_METHOD1(OnInitialize, void(bool));
|
|
|
| - void Initialize(const char* url, bool expected) {
|
| + void InitializeWithCORS(const char* url,
|
| + bool expected,
|
| + BufferedResourceLoader::CORSMode cors_mode) {
|
| GURL gurl(url);
|
| - data_source_.reset(
|
| - new MockBufferedDataSource(gurl,
|
| - message_loop_.task_runner(),
|
| - view_->mainFrame()->toWebLocalFrame(),
|
| - &host_));
|
| + data_source_.reset(new MockBufferedDataSource(
|
| + gurl, cors_mode, message_loop_.task_runner(),
|
| + view_->mainFrame()->toWebLocalFrame(), &host_));
|
| data_source_->SetPreload(preload_);
|
|
|
| response_generator_.reset(new TestResponseGenerator(gurl, kFileSize));
|
| @@ -148,6 +149,10 @@ class BufferedDataSourceTest : public testing::Test {
|
| EXPECT_EQ(data_source_->downloading(), is_http);
|
| }
|
|
|
| + void Initialize(const char* url, bool expected) {
|
| + InitializeWithCORS(url, expected, BufferedResourceLoader::kUnspecified);
|
| + }
|
| +
|
| // Helper to initialize tests with a valid 200 response.
|
| void InitializeWith200Response() {
|
| Initialize(kHttpUrl, true);
|
| @@ -577,6 +582,20 @@ TEST_F(BufferedDataSourceTest,
|
| ExecuteMixedResponseFailureTest(response1, response2);
|
| }
|
|
|
| +TEST_F(BufferedDataSourceTest,
|
| + Http_MixedResponse_ServiceWorkerProxiedAndDifferentOriginResponseCORS) {
|
| + InitializeWithCORS(kHttpUrl, true, BufferedResourceLoader::kAnonymous);
|
| + WebURLResponse response1 =
|
| + response_generator_->GeneratePartial206(0, kDataSize - 1);
|
| + response1.setWasFetchedViaServiceWorker(true);
|
| + response1.setOriginalURLViaServiceWorker(GURL(kHttpDifferentOriginUrl));
|
| + WebURLResponse response2 =
|
| + response_generator_->GeneratePartial206(kDataSize, kDataSize * 2 - 1);
|
| + // The origin URL of response1 and response2 are different, but a CORS check
|
| + // has been passed for each request, so expect success.
|
| + ExecuteMixedResponseSuccessTest(response1, response2);
|
| +}
|
| +
|
| TEST_F(BufferedDataSourceTest, File_Retry) {
|
| InitializeWithFileResponse();
|
|
|
|
|