diff options
author | amogh.bihani@samsung.com <amogh.bihani@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-28 13:18:16 +0000 |
---|---|---|
committer | amogh.bihani@samsung.com <amogh.bihani@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-28 13:18:16 +0000 |
commit | 39edc50e9c5c99093e9cd91f70be391f8d8508e3 (patch) | |
tree | 5a92ba1dd0229355cf1256adbab0ef14da70dc04 /media | |
parent | b82e32b7d9e4e0be0cd7dacfe2647ab55ad44780 (diff) | |
download | chromium_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.cc | 9 | ||||
-rw-r--r-- | media/base/android/media_player_manager.h | 5 | ||||
-rw-r--r-- | media/base/android/media_source_player_unittest.cc | 2 | ||||
-rw-r--r-- | media/base/media_keys.h | 5 | ||||
-rw-r--r-- | media/cdm/aes_decryptor.cc | 2 | ||||
-rw-r--r-- | media/cdm/aes_decryptor_unittest.cc | 18 | ||||
-rw-r--r-- | media/cdm/ppapi/external_clear_key/clear_key_cdm.cc | 6 | ||||
-rw-r--r-- | media/cdm/ppapi/external_clear_key/clear_key_cdm.h | 2 | ||||
-rw-r--r-- | media/filters/pipeline_integration_test.cc | 8 | ||||
-rw-r--r-- | media/media.gyp | 1 | ||||
-rw-r--r-- | media/media_cdm.gypi | 1 |
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', |