summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authoramogh.bihani@samsung.com <amogh.bihani@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-28 13:18:16 +0000
committeramogh.bihani@samsung.com <amogh.bihani@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-28 13:18:16 +0000
commit39edc50e9c5c99093e9cd91f70be391f8d8508e3 (patch)
tree5a92ba1dd0229355cf1256adbab0ef14da70dc04 /media
parentb82e32b7d9e4e0be0cd7dacfe2647ab55ad44780 (diff)
downloadchromium_src-39edc50e9c5c99093e9cd91f70be391f8d8508e3.zip
chromium_src-39edc50e9c5c99093e9cd91f70be391f8d8508e3.tar.gz
chromium_src-39edc50e9c5c99093e9cd91f70be391f8d8508e3.tar.bz2
Using GURL in place of std::string for destination_url
Currently destination_url uses GURL type only for IPC. This patch makes all the layers use GURL. BUG=372877 Review URL: https://codereview.chromium.org/297703002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273197 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/base/android/media_drm_bridge.cc9
-rw-r--r--media/base/android/media_player_manager.h5
-rw-r--r--media/base/android/media_source_player_unittest.cc2
-rw-r--r--media/base/media_keys.h5
-rw-r--r--media/cdm/aes_decryptor.cc2
-rw-r--r--media/cdm/aes_decryptor_unittest.cc18
-rw-r--r--media/cdm/ppapi/external_clear_key/clear_key_cdm.cc6
-rw-r--r--media/cdm/ppapi/external_clear_key/clear_key_cdm.h2
-rw-r--r--media/filters/pipeline_integration_test.cc8
-rw-r--r--media/media.gyp1
-rw-r--r--media/media_cdm.gypi1
11 files changed, 37 insertions, 22 deletions
diff --git a/media/base/android/media_drm_bridge.cc b/media/base/android/media_drm_bridge.cc
index 6b022df..e1f14dc 100644
--- a/media/base/android/media_drm_bridge.cc
+++ b/media/base/android/media_drm_bridge.cc
@@ -473,8 +473,13 @@ void MediaDrmBridge::OnSessionMessage(JNIEnv* env,
uint32 session_id = j_session_id;
std::vector<uint8> message;
JavaByteArrayToByteVector(env, j_message, &message);
- std::string destination_url = ConvertJavaStringToUTF8(env, j_destination_url);
- session_message_cb_.Run(session_id, message, destination_url);
+ GURL destination_gurl = GURL(ConvertJavaStringToUTF8(env, j_destination_url));
+ if (!destination_gurl.is_valid() && !destination_gurl.is_empty()) {
+ DLOG(WARNING) << "SessionMessage destination_url is invalid : "
+ << destination_gurl.possibly_invalid_spec();
+ destination_gurl = GURL::EmptyGURL(); // Replace invalid destination_url.
+ }
+ session_message_cb_.Run(session_id, message, destination_gurl);
}
void MediaDrmBridge::OnSessionReady(JNIEnv* env,
diff --git a/media/base/android/media_player_manager.h b/media/base/android/media_player_manager.h
index 4666fb5..c7c996a 100644
--- a/media/base/android/media_player_manager.h
+++ b/media/base/android/media_player_manager.h
@@ -13,6 +13,9 @@
#include "media/base/android/demuxer_stream_player_params.h"
#include "media/base/media_export.h"
#include "media/base/media_keys.h"
+#include "url/gurl.h"
+
+class GURL;
namespace media {
@@ -91,7 +94,7 @@ class MEDIA_EXPORT MediaPlayerManager {
virtual void OnSessionMessage(int cdm_id,
uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url) = 0;
+ const GURL& destination_url) = 0;
// Called when CDM wants to send a Ready event.
virtual void OnSessionReady(int cdm_id, uint32 session_id) = 0;
diff --git a/media/base/android/media_source_player_unittest.cc b/media/base/android/media_source_player_unittest.cc
index 546ffc0..db09b54 100644
--- a/media/base/android/media_source_player_unittest.cc
+++ b/media/base/android/media_source_player_unittest.cc
@@ -80,7 +80,7 @@ class MockMediaPlayerManager : public MediaPlayerManager {
virtual void OnSessionMessage(int cdm_id,
uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url) OVERRIDE {}
+ const GURL& destination_url) OVERRIDE {}
virtual void OnSessionReady(int cdm_id, uint32 session_id) OVERRIDE {}
virtual void OnSessionClosed(int cdm_id, uint32 session_id) OVERRIDE {}
virtual void OnSessionError(int cdm_id,
diff --git a/media/base/media_keys.h b/media/base/media_keys.h
index 4af3581..3166063 100644
--- a/media/base/media_keys.h
+++ b/media/base/media_keys.h
@@ -12,6 +12,7 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "media/base/media_export.h"
+#include "url/gurl.h"
namespace media {
@@ -82,11 +83,9 @@ typedef base::Callback<
void(uint32 session_id, const std::string& web_session_id)>
SessionCreatedCB;
-// TODO(xhwang): Use GURL for |destination_url|. See http://crbug.com/372877
typedef base::Callback<void(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url)>
- SessionMessageCB;
+ const GURL& destination_url)> SessionMessageCB;
typedef base::Callback<void(uint32 session_id)> SessionReadyCB;
diff --git a/media/cdm/aes_decryptor.cc b/media/cdm/aes_decryptor.cc
index 82c899d..51661fd 100644
--- a/media/cdm/aes_decryptor.cc
+++ b/media/cdm/aes_decryptor.cc
@@ -247,7 +247,7 @@ bool AesDecryptor::CreateSession(uint32 session_id,
message.assign(init_data, init_data + init_data_length);
session_created_cb_.Run(session_id, web_session_id_string);
- session_message_cb_.Run(session_id, message, std::string());
+ session_message_cb_.Run(session_id, message, GURL());
return true;
}
diff --git a/media/cdm/aes_decryptor_unittest.cc b/media/cdm/aes_decryptor_unittest.cc
index 39a5036..3339fc5 100644
--- a/media/cdm/aes_decryptor_unittest.cc
+++ b/media/cdm/aes_decryptor_unittest.cc
@@ -23,6 +23,8 @@ using ::testing::StrNe;
MATCHER(IsEmpty, "") { return arg.empty(); }
+class GURL;
+
namespace media {
const uint8 kOriginalData[] = "Original subsample data.";
@@ -226,7 +228,7 @@ class AesDecryptorTest : public testing::Test {
DCHECK(!key_id.empty());
uint32 session_id = next_session_id_++;
EXPECT_CALL(*this, OnSessionCreated(session_id, StrNe(std::string())));
- EXPECT_CALL(*this, OnSessionMessage(session_id, key_id, ""));
+ EXPECT_CALL(*this, OnSessionMessage(session_id, key_id, GURL::EmptyGURL()));
EXPECT_TRUE(decryptor_.CreateSession(
session_id, std::string(), &key_id[0], key_id.size()));
return session_id;
@@ -328,7 +330,7 @@ class AesDecryptorTest : public testing::Test {
MOCK_METHOD3(OnSessionMessage,
void(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& default_url));
+ const GURL& default_url));
MOCK_METHOD1(OnSessionReady, void(uint32 session_id));
MOCK_METHOD1(OnSessionClosed, void(uint32 session_id));
MOCK_METHOD3(OnSessionError,
@@ -354,24 +356,28 @@ class AesDecryptorTest : public testing::Test {
TEST_F(AesDecryptorTest, CreateSessionWithNullInitData) {
uint32 session_id = 8;
- EXPECT_CALL(*this, OnSessionMessage(session_id, IsEmpty(), ""));
+ EXPECT_CALL(*this,
+ OnSessionMessage(session_id, IsEmpty(), GURL::EmptyGURL()));
EXPECT_CALL(*this, OnSessionCreated(session_id, StrNe(std::string())));
EXPECT_TRUE(decryptor_.CreateSession(session_id, std::string(), NULL, 0));
}
TEST_F(AesDecryptorTest, MultipleCreateSession) {
uint32 session_id1 = 10;
- EXPECT_CALL(*this, OnSessionMessage(session_id1, IsEmpty(), ""));
+ EXPECT_CALL(*this,
+ OnSessionMessage(session_id1, IsEmpty(), GURL::EmptyGURL()));
EXPECT_CALL(*this, OnSessionCreated(session_id1, StrNe(std::string())));
EXPECT_TRUE(decryptor_.CreateSession(session_id1, std::string(), NULL, 0));
uint32 session_id2 = 11;
- EXPECT_CALL(*this, OnSessionMessage(session_id2, IsEmpty(), ""));
+ EXPECT_CALL(*this,
+ OnSessionMessage(session_id2, IsEmpty(), GURL::EmptyGURL()));
EXPECT_CALL(*this, OnSessionCreated(session_id2, StrNe(std::string())));
EXPECT_TRUE(decryptor_.CreateSession(session_id2, std::string(), NULL, 0));
uint32 session_id3 = 23;
- EXPECT_CALL(*this, OnSessionMessage(session_id3, IsEmpty(), ""));
+ EXPECT_CALL(*this,
+ OnSessionMessage(session_id3, IsEmpty(), GURL::EmptyGURL()));
EXPECT_CALL(*this, OnSessionCreated(session_id3, StrNe(std::string())));
EXPECT_TRUE(decryptor_.CreateSession(session_id3, std::string(), NULL, 0));
}
diff --git a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
index e98db7c..82e3b63 100644
--- a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
+++ b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
@@ -562,7 +562,7 @@ void ClearKeyCdm::OnSessionCreated(uint32 session_id,
void ClearKeyCdm::OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url) {
+ const GURL& destination_url) {
DVLOG(1) << "OnSessionMessage: " << message.size();
// Ignore the message when we are waiting to update the loadable session.
@@ -572,8 +572,8 @@ void ClearKeyCdm::OnSessionMessage(uint32 session_id,
host_->OnSessionMessage(session_id,
reinterpret_cast<const char*>(message.data()),
message.size(),
- destination_url.data(),
- destination_url.size());
+ destination_url.spec().data(),
+ destination_url.spec().size());
}
void ClearKeyCdm::OnSessionReady(uint32 session_id) {
diff --git a/media/cdm/ppapi/external_clear_key/clear_key_cdm.h b/media/cdm/ppapi/external_clear_key/clear_key_cdm.h
index cef59db..d0ef3c7 100644
--- a/media/cdm/ppapi/external_clear_key/clear_key_cdm.h
+++ b/media/cdm/ppapi/external_clear_key/clear_key_cdm.h
@@ -76,7 +76,7 @@ class ClearKeyCdm : public ClearKeyCdmInterface {
void OnSessionCreated(uint32 session_id, const std::string& web_session_id);
void OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url);
+ const GURL& destination_url);
void OnSessionReady(uint32 session_id);
void OnSessionClosed(uint32 session_id);
void OnSessionError(uint32 session_id,
diff --git a/media/filters/pipeline_integration_test.cc b/media/filters/pipeline_integration_test.cc
index d3caa1e..8e42b8c 100644
--- a/media/filters/pipeline_integration_test.cc
+++ b/media/filters/pipeline_integration_test.cc
@@ -119,7 +119,7 @@ class FakeEncryptedMedia {
virtual void OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url) = 0;
+ const GURL& destination_url) = 0;
virtual void OnSessionReady(uint32 session_id) = 0;
@@ -161,7 +161,7 @@ class FakeEncryptedMedia {
void OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& destination_url) {
+ const GURL& destination_url) {
app_->OnSessionMessage(session_id, message, destination_url);
}
@@ -202,7 +202,7 @@ class KeyProvidingApp : public FakeEncryptedMedia::AppBase {
virtual void OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& default_url) OVERRIDE {
+ const GURL& default_url) OVERRIDE {
EXPECT_GT(session_id, 0u);
EXPECT_FALSE(message.empty());
@@ -329,7 +329,7 @@ class NoResponseApp : public FakeEncryptedMedia::AppBase {
virtual void OnSessionMessage(uint32 session_id,
const std::vector<uint8>& message,
- const std::string& default_url) OVERRIDE {
+ const GURL& default_url) OVERRIDE {
EXPECT_GT(session_id, 0u);
EXPECT_FALSE(message.empty());
FAIL() << "Unexpected KeyMessage";
diff --git a/media/media.gyp b/media/media.gyp
index 4f6068b..38c871c 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -955,6 +955,7 @@
'../ui/base/ui_base.gyp:ui_base',
'../ui/gfx/gfx.gyp:gfx',
'../ui/gfx/gfx.gyp:gfx_geometry',
+ '../url/url.gyp:url_lib',
],
'sources': [
'audio/android/audio_android_unittest.cc',
diff --git a/media/media_cdm.gypi b/media/media_cdm.gypi
index a4f968f..6f84ed5 100644
--- a/media/media_cdm.gypi
+++ b/media/media_cdm.gypi
@@ -76,6 +76,7 @@
'defines': ['CDM_IMPLEMENTATION'],
'dependencies': [
'media',
+ '../url/url.gyp:url_lib',
# Include the following for media::AudioBus.
'shared_memory_support',
'<(DEPTH)/base/base.gyp:base',