summaryrefslogtreecommitdiff
path: root/chromium/media/base/android
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/base/android
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/media/base/android/android_cdm_factory.cc12
-rw-r--r--chromium/media/base/android/android_cdm_factory.h1
-rw-r--r--chromium/media/base/android/media_drm_bridge.cc1
-rw-r--r--chromium/media/base/android/media_drm_bridge_factory.cc3
-rw-r--r--chromium/media/base/android/media_drm_bridge_factory.h1
-rw-r--r--chromium/media/base/android/media_player_bridge.cc10
-rw-r--r--chromium/media/base/android/media_player_bridge.h3
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_;