diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/base/android | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/media/base/android')
7 files changed, 15 insertions, 16 deletions
diff --git a/chromium/media/base/android/android_cdm_factory.cc b/chromium/media/base/android/android_cdm_factory.cc index a2c20394f23..faa670ffb1d 100644 --- a/chromium/media/base/android/android_cdm_factory.cc +++ b/chromium/media/base/android/android_cdm_factory.cc @@ -43,7 +43,6 @@ AndroidCdmFactory::~AndroidCdmFactory() { void AndroidCdmFactory::Create( const std::string& key_system, - const url::Origin& security_origin, const CdmConfig& cdm_config, const SessionMessageCB& session_message_cb, const SessionClosedCB& session_closed_cb, @@ -56,11 +55,6 @@ void AndroidCdmFactory::Create( CdmCreatedCB bound_cdm_created_cb = BindToCurrentLoop(std::move(cdm_created_cb)); - if (security_origin.opaque()) { - std::move(bound_cdm_created_cb).Run(nullptr, "Invalid origin."); - return; - } - // Create AesDecryptor here to support External Clear Key key system. // This is used for testing. if (base::FeatureList::IsEnabled(media::kExternalClearKeyForTesting) && @@ -92,9 +86,9 @@ void AndroidCdmFactory::Create( creation_id_, PendingCreation(std::move(factory), std::move(bound_cdm_created_cb))); - raw_factory->Create(key_system, security_origin, cdm_config, - session_message_cb, session_closed_cb, - session_keys_change_cb, session_expiration_update_cb, + raw_factory->Create(key_system, cdm_config, session_message_cb, + session_closed_cb, session_keys_change_cb, + session_expiration_update_cb, base::BindOnce(&AndroidCdmFactory::OnCdmCreated, weak_factory_.GetWeakPtr(), creation_id_)); } diff --git a/chromium/media/base/android/android_cdm_factory.h b/chromium/media/base/android/android_cdm_factory.h index b32b7935b77..ce241061eff 100644 --- a/chromium/media/base/android/android_cdm_factory.h +++ b/chromium/media/base/android/android_cdm_factory.h @@ -29,7 +29,6 @@ class MEDIA_EXPORT AndroidCdmFactory : public CdmFactory { // CdmFactory implementation. void Create(const std::string& key_system, - const url::Origin& security_origin, const CdmConfig& cdm_config, const SessionMessageCB& session_message_cb, const SessionClosedCB& session_closed_cb, diff --git a/chromium/media/base/android/media_drm_bridge.cc b/chromium/media/base/android/media_drm_bridge.cc index 6bdfc3a974d..e0695e964d3 100644 --- a/chromium/media/base/android/media_drm_bridge.cc +++ b/chromium/media/base/android/media_drm_bridge.cc @@ -32,6 +32,7 @@ #include "media/base/android/media_drm_bridge_delegate.h" #include "media/base/android/media_jni_headers/MediaDrmBridge_jni.h" #include "media/base/cdm_key_information.h" +#include "media/base/logging_override_if_enabled.h" #include "media/base/media_drm_key_type.h" #include "media/base/media_switches.h" #include "media/base/provision_fetcher.h" diff --git a/chromium/media/base/android/media_drm_bridge_factory.cc b/chromium/media/base/android/media_drm_bridge_factory.cc index 52b3e01c271..ee3e4dcdb86 100644 --- a/chromium/media/base/android/media_drm_bridge_factory.cc +++ b/chromium/media/base/android/media_drm_bridge_factory.cc @@ -9,7 +9,6 @@ #include "media/base/cdm_config.h" #include "media/base/content_decryption_module.h" #include "third_party/widevine/cdm/widevine_cdm_common.h" -#include "url/origin.h" namespace media { @@ -28,7 +27,6 @@ MediaDrmBridgeFactory::~MediaDrmBridgeFactory() { void MediaDrmBridgeFactory::Create( const std::string& key_system, - const url::Origin& security_origin, const CdmConfig& cdm_config, const SessionMessageCB& session_message_cb, const SessionClosedCB& session_closed_cb, @@ -37,7 +35,6 @@ void MediaDrmBridgeFactory::Create( CdmCreatedCB cdm_created_cb) { DCHECK(MediaDrmBridge::IsKeySystemSupported(key_system)); DCHECK(MediaDrmBridge::IsAvailable()); - DCHECK(!security_origin.opaque()); DCHECK(scheme_uuid_.empty()) << "This factory can only be used once."; scheme_uuid_ = MediaDrmBridge::GetUUID(key_system); diff --git a/chromium/media/base/android/media_drm_bridge_factory.h b/chromium/media/base/android/media_drm_bridge_factory.h index 4dfa133dcf2..6df430ad62f 100644 --- a/chromium/media/base/android/media_drm_bridge_factory.h +++ b/chromium/media/base/android/media_drm_bridge_factory.h @@ -32,7 +32,6 @@ class MEDIA_EXPORT MediaDrmBridgeFactory : public CdmFactory { // CdmFactory implementation. void Create(const std::string& key_system, - const url::Origin& security_origin, const CdmConfig& cdm_config, const SessionMessageCB& session_message_cb, const SessionClosedCB& session_closed_cb, diff --git a/chromium/media/base/android/media_player_bridge.cc b/chromium/media/base/android/media_player_bridge.cc index c0a10cef065..eeab111c274 100644 --- a/chromium/media/base/android/media_player_bridge.cc +++ b/chromium/media/base/android/media_player_bridge.cc @@ -74,6 +74,7 @@ MediaPlayerBridge::MediaPlayerBridge(const GURL& url, bool allow_credentials, bool is_hls) : prepared_(false), + playback_completed_(false), pending_play_(false), should_seek_on_prepare_(false), url_(url), @@ -122,7 +123,7 @@ void MediaPlayerBridge::Initialize() { return; } - if (allow_credentials_) { + if (allow_credentials_ && !url_.SchemeIsFile()) { media::MediaResourceGetter* resource_getter = client_->GetMediaResourceGetter(); @@ -415,7 +416,10 @@ void MediaPlayerBridge::OnMediaError(int error_type) { } void MediaPlayerBridge::OnPlaybackComplete() { - client_->OnPlaybackComplete(); + if (!playback_completed_) { + playback_completed_ = true; + client_->OnPlaybackComplete(); + } } void MediaPlayerBridge::OnMediaPrepared() { @@ -509,6 +513,8 @@ void MediaPlayerBridge::SeekInternal(base::TimeDelta time) { return; } + playback_completed_ = false; + // Note: we do not want to count changes in media time due to seeks as watch // time, but tracking pending seeks is not completely trivial. Instead seeks // larger than kWatchTimeReportingInterval * 2 will be discarded by the sanity diff --git a/chromium/media/base/android/media_player_bridge.h b/chromium/media/base/android/media_player_bridge.h index 8de59c2c59a..8757e09b24a 100644 --- a/chromium/media/base/android/media_player_bridge.h +++ b/chromium/media/base/android/media_player_bridge.h @@ -199,6 +199,9 @@ class MEDIA_EXPORT MediaPlayerBridge { // Whether the player is prepared for playback. bool prepared_; + // Whether the player completed playback. + bool playback_completed_; + // Pending play event while player is preparing. bool pending_play_; |