Skip to content

Commit c3abc8f

Browse files
committed
Bug 1937908 - Revert changeset d75ea9fa6cda. r=aosmond,media-playback-reviewers
It only partially wallpapered over a problem. Subsequent commits will fix it better. Differential Revision: https://phabricator.services.mozilla.com/D234852
1 parent 031e7d3 commit c3abc8f

File tree

2 files changed

+17
-28
lines changed

2 files changed

+17
-28
lines changed

dom/media/gmp/GMPParent.cpp

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ GMPParent::GMPParent()
8181
mChildLaunchArch(base::PROCESS_ARCH_INVALID),
8282
#endif
8383
mMainThread(GetMainThreadSerialEventTarget()) {
84-
MOZ_ASSERT(IsOnGMPEventTarget());
84+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
8585
GMP_PARENT_LOG_DEBUG("GMPParent ctor id=%u", mPluginId);
8686
}
8787

@@ -92,7 +92,7 @@ GMPParent::~GMPParent() {
9292
}
9393

9494
void GMPParent::CloneFrom(const GMPParent* aOther) {
95-
MOZ_ASSERT(IsOnGMPEventTarget());
95+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
9696
MOZ_ASSERT(aOther->mDirectory && aOther->mService, "null plugin directory");
9797

9898
mService = aOther->mService;
@@ -169,7 +169,7 @@ RefPtr<GenericPromise> GMPParent::Init(GeckoMediaPluginServiceParent* aService,
169169
nsIFile* aPluginDir) {
170170
MOZ_ASSERT(aPluginDir);
171171
MOZ_ASSERT(aService);
172-
MOZ_ASSERT(IsOnGMPEventTarget());
172+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
173173

174174
mService = aService;
175175
mDirectory = aPluginDir;
@@ -343,7 +343,7 @@ class NotifyGMPProcessLoadedTask : public Runnable {
343343

344344
nsresult GMPParent::LoadProcess() {
345345
MOZ_ASSERT(mDirectory, "Plugin directory cannot be NULL!");
346-
MOZ_ASSERT(IsOnGMPEventTarget());
346+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
347347
MOZ_ASSERT(mState == GMPState::NotLoaded);
348348

349349
if (NS_WARN_IF(mPluginType == GMPPluginType::WidevineL1)) {
@@ -433,7 +433,7 @@ nsresult GMPParent::LoadProcess() {
433433
}
434434

435435
void GMPParent::OnPreferenceChange(const mozilla::dom::Pref& aPref) {
436-
MOZ_ASSERT(IsOnGMPEventTarget());
436+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
437437
GMP_PARENT_LOG_DEBUG("%s", __FUNCTION__);
438438

439439
if (!mProcess || !mProcess->UseXPCOM()) {
@@ -501,7 +501,7 @@ mozilla::ipc::IPCResult GMPParent::RecvGetModulesTrust(
501501
#endif // defined(XP_WIN)
502502

503503
void GMPParent::CloseIfUnused() {
504-
MOZ_ASSERT(IsOnGMPEventTarget());
504+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
505505
GMP_PARENT_LOG_DEBUG("%s", __FUNCTION__);
506506

507507
if ((mDeleteProcessOnlyOnUnload || mState == GMPState::Loaded ||
@@ -524,7 +524,7 @@ void GMPParent::CloseIfUnused() {
524524
}
525525

526526
void GMPParent::CloseActive(bool aDieWhenUnloaded) {
527-
MOZ_ASSERT(IsOnGMPEventTarget());
527+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
528528
GMP_PARENT_LOG_DEBUG("%s: state %u", __FUNCTION__,
529529
uint32_t(GMPState(mState)));
530530

@@ -548,7 +548,7 @@ void GMPParent::MarkForDeletion() {
548548
bool GMPParent::IsMarkedForDeletion() { return mIsBlockingDeletion; }
549549

550550
void GMPParent::Shutdown() {
551-
MOZ_ASSERT(IsOnGMPEventTarget());
551+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
552552
GMP_PARENT_LOG_DEBUG("%s", __FUNCTION__);
553553

554554
if (mAbnormalShutdownInProgress) {
@@ -615,7 +615,7 @@ void GMPParent::ChildTerminated() {
615615
}
616616

617617
void GMPParent::DeleteProcess() {
618-
MOZ_ASSERT(IsOnGMPEventTarget());
618+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
619619

620620
switch (mState) {
621621
case GMPState::Closed:
@@ -701,17 +701,7 @@ void GMPParent::DeleteProcess() {
701701

702702
GMPState GMPParent::State() const { return mState; }
703703

704-
bool GMPParent::IsOnGMPEventTarget() const {
705-
auto target = GMPEventTarget();
706-
if (!target) {
707-
// We can't get the GMP event target if it has started shutting down, but it
708-
// may still run tasks.
709-
return AppShutdown::IsInOrBeyond(ShutdownPhase::XPCOMShutdownThreads);
710-
}
711-
return target->IsOnCurrentThread();
712-
}
713-
714-
nsCOMPtr<nsISerialEventTarget> GMPParent::GMPEventTarget() const {
704+
nsCOMPtr<nsISerialEventTarget> GMPParent::GMPEventTarget() {
715705
nsCOMPtr<mozIGeckoMediaPluginService> mps =
716706
do_GetService("@mozilla.org/gecko-media-plugin-service;1");
717707
MOZ_ASSERT(mps);
@@ -823,7 +813,7 @@ static void GMPNotifyObservers(const uint32_t aPluginID,
823813
}
824814

825815
void GMPParent::ActorDestroy(ActorDestroyReason aWhy) {
826-
MOZ_ASSERT(IsOnGMPEventTarget());
816+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
827817
GMP_PARENT_LOG_DEBUG("%s: (%d)", __FUNCTION__, (int)aWhy);
828818

829819
if (AbnormalShutdown == aWhy) {
@@ -916,7 +906,7 @@ bool ReadInfoField(GMPInfoFileParser& aParser, const nsCString& aKey,
916906
}
917907

918908
RefPtr<GenericPromise> GMPParent::ReadGMPMetaData() {
919-
MOZ_ASSERT(IsOnGMPEventTarget());
909+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
920910
MOZ_ASSERT(mDirectory, "Plugin directory cannot be NULL!");
921911
MOZ_ASSERT(!mName.IsEmpty(), "Plugin mName cannot be empty!");
922912

@@ -1005,7 +995,7 @@ static nsresult ParseVersion(const nsACString& aVersion,
1005995
}
1006996

1007997
RefPtr<GenericPromise> GMPParent::ReadGMPInfoFile(nsIFile* aFile) {
1008-
MOZ_ASSERT(IsOnGMPEventTarget());
998+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
1009999
GMPInfoFileParser parser;
10101000
if (!parser.Init(aFile)) {
10111001
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
@@ -1113,7 +1103,7 @@ RefPtr<GenericPromise> GMPParent::ReadGMPInfoFile(nsIFile* aFile) {
11131103
}
11141104

11151105
RefPtr<GenericPromise> GMPParent::ReadChromiumManifestFile(nsIFile* aFile) {
1116-
MOZ_ASSERT(IsOnGMPEventTarget());
1106+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
11171107
nsAutoCString json;
11181108
if (!ReadIntoString(aFile, json, 5 * 1024)) {
11191109
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
@@ -1343,7 +1333,7 @@ void GMPParent::ResolveGetContentParentPromises() {
13431333
}
13441334

13451335
bool GMPParent::OpenPGMPContent() {
1346-
MOZ_ASSERT(IsOnGMPEventTarget());
1336+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
13471337
MOZ_ASSERT(!mGMPContentParent);
13481338

13491339
Endpoint<PGMPContentParent> parent;
@@ -1380,7 +1370,7 @@ void GMPParent::RejectGetContentParentPromises() {
13801370

13811371
void GMPParent::GetGMPContentParent(
13821372
UniquePtr<MozPromiseHolder<GetGMPContentParentPromise>>&& aPromiseHolder) {
1383-
MOZ_ASSERT(IsOnGMPEventTarget());
1373+
MOZ_ASSERT(GMPEventTarget()->IsOnCurrentThread());
13841374
GMP_PARENT_LOG_DEBUG("%s %p", __FUNCTION__, this);
13851375

13861376
if (mGMPContentParent) {

dom/media/gmp/GMPParent.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,7 @@ class GMPParent final
9191
void DeleteProcess();
9292

9393
GMPState State() const;
94-
bool IsOnGMPEventTarget() const;
95-
nsCOMPtr<nsISerialEventTarget> GMPEventTarget() const;
94+
nsCOMPtr<nsISerialEventTarget> GMPEventTarget();
9695

9796
void OnPreferenceChange(const mozilla::dom::Pref& aPref);
9897

0 commit comments

Comments
 (0)