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

Side by Side Diff: media/base/android/media_player_bridge.cc

Issue 408873004: Fix for cross-origin video check for webgl on android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressing kbr's comments Created 6 years, 4 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 | Annotate | Revision Log
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/base/android/media_player_bridge.h" 5 #include "media/base/android/media_player_bridge.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 16 matching lines...) Expand all
27 27
28 MediaPlayerBridge::MediaPlayerBridge( 28 MediaPlayerBridge::MediaPlayerBridge(
29 int player_id, 29 int player_id,
30 const GURL& url, 30 const GURL& url,
31 const GURL& first_party_for_cookies, 31 const GURL& first_party_for_cookies,
32 const std::string& user_agent, 32 const std::string& user_agent,
33 bool hide_url_log, 33 bool hide_url_log,
34 MediaPlayerManager* manager, 34 MediaPlayerManager* manager,
35 const RequestMediaResourcesCB& request_media_resources_cb, 35 const RequestMediaResourcesCB& request_media_resources_cb,
36 const ReleaseMediaResourcesCB& release_media_resources_cb, 36 const ReleaseMediaResourcesCB& release_media_resources_cb,
37 const GURL& frame_url) 37 const GURL& frame_url,
38 bool has_single_security_origin,
39 bool allow_credentials)
38 : MediaPlayerAndroid(player_id, 40 : MediaPlayerAndroid(player_id,
39 manager, 41 manager,
40 request_media_resources_cb, 42 request_media_resources_cb,
41 release_media_resources_cb, 43 release_media_resources_cb,
42 frame_url), 44 frame_url),
43 prepared_(false), 45 prepared_(false),
44 pending_play_(false), 46 pending_play_(false),
45 url_(url), 47 url_(url),
46 first_party_for_cookies_(first_party_for_cookies), 48 first_party_for_cookies_(first_party_for_cookies),
47 user_agent_(user_agent), 49 user_agent_(user_agent),
48 hide_url_log_(hide_url_log), 50 hide_url_log_(hide_url_log),
49 width_(0), 51 width_(0),
50 height_(0), 52 height_(0),
51 can_pause_(true), 53 can_pause_(true),
52 can_seek_forward_(true), 54 can_seek_forward_(true),
53 can_seek_backward_(true), 55 can_seek_backward_(true),
54 is_surface_in_use_(false), 56 is_surface_in_use_(false),
55 volume_(-1.0), 57 volume_(-1.0),
58 has_single_security_origin_(has_single_security_origin),
59 allow_credentials_(allow_credentials),
56 weak_factory_(this) { 60 weak_factory_(this) {
57 listener_.reset(new MediaPlayerListener(base::MessageLoopProxy::current(), 61 listener_.reset(new MediaPlayerListener(base::MessageLoopProxy::current(),
58 weak_factory_.GetWeakPtr())); 62 weak_factory_.GetWeakPtr()));
59 } 63 }
60 64
61 MediaPlayerBridge::~MediaPlayerBridge() { 65 MediaPlayerBridge::~MediaPlayerBridge() {
62 if (!j_media_player_bridge_.is_null()) { 66 if (!j_media_player_bridge_.is_null()) {
63 JNIEnv* env = base::android::AttachCurrentThread(); 67 JNIEnv* env = base::android::AttachCurrentThread();
64 CHECK(env); 68 CHECK(env);
65 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_.obj()); 69 Java_MediaPlayerBridge_destroy(env, j_media_player_bridge_.obj());
(...skipping 11 matching lines...) Expand all
77 media::MediaResourceGetter* resource_getter = 81 media::MediaResourceGetter* resource_getter =
78 manager()->GetMediaResourceGetter(); 82 manager()->GetMediaResourceGetter();
79 if (url_.SchemeIsFileSystem() || url_.SchemeIs(kBlobScheme)) { 83 if (url_.SchemeIsFileSystem() || url_.SchemeIs(kBlobScheme)) {
80 resource_getter->GetPlatformPathFromURL( 84 resource_getter->GetPlatformPathFromURL(
81 url_, 85 url_,
82 base::Bind(&MediaPlayerBridge::ExtractMediaMetadata, 86 base::Bind(&MediaPlayerBridge::ExtractMediaMetadata,
83 weak_factory_.GetWeakPtr())); 87 weak_factory_.GetWeakPtr()));
84 return; 88 return;
85 } 89 }
86 90
91 if (!allow_credentials_) {
Ken Russell (switch to Gerrit) 2014/07/30 20:44:05 Please comment this block indicating why the short
qinmin 2014/07/30 23:46:05 Done.
92 ExtractMediaMetadata(url_.spec());
93 return;
94 }
95
87 resource_getter->GetCookies(url_, 96 resource_getter->GetCookies(url_,
88 first_party_for_cookies_, 97 first_party_for_cookies_,
89 base::Bind(&MediaPlayerBridge::OnCookiesRetrieved, 98 base::Bind(&MediaPlayerBridge::OnCookiesRetrieved,
90 weak_factory_.GetWeakPtr())); 99 weak_factory_.GetWeakPtr()));
91 } 100 }
92 101
93 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() { 102 void MediaPlayerBridge::CreateJavaMediaPlayerBridge() {
94 JNIEnv* env = base::android::AttachCurrentThread(); 103 JNIEnv* env = base::android::AttachCurrentThread();
95 CHECK(env); 104 CHECK(env);
96 105
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 if (StartsWithASCII(url, data_uri_prefix, true)) { 187 if (StartsWithASCII(url, data_uri_prefix, true)) {
179 if (!Java_MediaPlayerBridge_setDataUriDataSource( 188 if (!Java_MediaPlayerBridge_setDataUriDataSource(
180 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) { 189 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj())) {
181 OnMediaError(MEDIA_ERROR_FORMAT); 190 OnMediaError(MEDIA_ERROR_FORMAT);
182 } 191 }
183 return; 192 return;
184 } 193 }
185 194
186 if (!Java_MediaPlayerBridge_setDataSource( 195 if (!Java_MediaPlayerBridge_setDataSource(
187 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), 196 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(),
188 j_cookies.obj(), j_user_agent.obj(), hide_url_log_)) { 197 j_cookies.obj(), j_user_agent.obj(), hide_url_log_,
198 has_single_security_origin_)) {
189 OnMediaError(MEDIA_ERROR_FORMAT); 199 OnMediaError(MEDIA_ERROR_FORMAT);
190 return; 200 return;
191 } 201 }
192 202
193 request_media_resources_cb_.Run(player_id()); 203 request_media_resources_cb_.Run(player_id());
194 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) 204 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj()))
195 OnMediaError(MEDIA_ERROR_FORMAT); 205 OnMediaError(MEDIA_ERROR_FORMAT);
196 } 206 }
197 207
198 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj, 208 void MediaPlayerBridge::OnDidSetDataUriDataSource(JNIEnv* env, jobject obj,
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 506
497 GURL MediaPlayerBridge::GetFirstPartyForCookies() { 507 GURL MediaPlayerBridge::GetFirstPartyForCookies() {
498 return first_party_for_cookies_; 508 return first_party_for_cookies_;
499 } 509 }
500 510
501 bool MediaPlayerBridge::IsSurfaceInUse() const { 511 bool MediaPlayerBridge::IsSurfaceInUse() const {
502 return is_surface_in_use_; 512 return is_surface_in_use_;
503 } 513 }
504 514
505 } // namespace media 515 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698