mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-11 22:41:02 +00:00
Bug 1347791 - part2 : the tab would always be resumed when it goes to foreground first time. r=baku
Since now we move the block/resume logic to front-end side, we can remove the changing from bug1319771 and other related bugs which are used to ensure the pinned tab should be blocked successfully after session restore. MozReview-Commit-ID: Ixe7tOvCEhv --HG-- extra : rebase_source : 190e63b5df53c85f7282b5c2144ae7e7830d7ad3
This commit is contained in:
parent
ce9ddc4dab
commit
aae22221f8
@ -184,9 +184,6 @@ AudioChannelAgent::InitInternal(nsPIDOMWindowInner* aWindow,
|
||||
mCallback = aCallback;
|
||||
}
|
||||
|
||||
RefPtr<AudioChannelService> service = AudioChannelService::GetOrCreate();
|
||||
service->NotifyCreatedNewAgent(this);
|
||||
|
||||
MOZ_LOG(AudioChannelService::GetAudioChannelLog(), LogLevel::Debug,
|
||||
("AudioChannelAgent, InitInternal, this = %p, type = %d, "
|
||||
"owner = %p, hasCallback = %d\n", this, mAudioChannelType,
|
||||
|
@ -365,19 +365,6 @@ AudioChannelService::~AudioChannelService()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
AudioChannelService::NotifyCreatedNewAgent(AudioChannelAgent* aAgent)
|
||||
{
|
||||
MOZ_ASSERT(aAgent);
|
||||
|
||||
nsCOMPtr<nsPIDOMWindowOuter> window = aAgent->Window();
|
||||
if (!window) {
|
||||
return;
|
||||
}
|
||||
|
||||
window->NotifyCreatedNewMediaComponent();
|
||||
}
|
||||
|
||||
void
|
||||
AudioChannelService::RegisterAudioChannelAgent(AudioChannelAgent* aAgent,
|
||||
AudibleState aAudible)
|
||||
|
@ -206,8 +206,6 @@ public:
|
||||
void ChildStatusReceived(uint64_t aChildID, bool aTelephonyChannel,
|
||||
bool aContentOrNormalChannel, bool aAnyChannel);
|
||||
|
||||
void NotifyCreatedNewAgent(AudioChannelAgent* aAgent);
|
||||
|
||||
void NotifyMediaResumedFromBlock(nsPIDOMWindowOuter* aWindow);
|
||||
|
||||
private:
|
||||
|
@ -1007,8 +1007,7 @@ nsPIDOMWindow<T>::nsPIDOMWindow(nsPIDOMWindowOuter *aOuterWindow)
|
||||
// Make sure no actual window ends up with mWindowID == 0
|
||||
mWindowID(NextWindowID()), mHasNotifiedGlobalCreated(false),
|
||||
mMarkedCCGeneration(0), mServiceWorkersTestingEnabled(false),
|
||||
mLargeAllocStatus(LargeAllocStatus::NONE),
|
||||
mShouldResumeOnFirstActiveMediaComponent(false)
|
||||
mLargeAllocStatus(LargeAllocStatus::NONE)
|
||||
{
|
||||
if (aOuterWindow) {
|
||||
mTimeoutManager =
|
||||
@ -4417,20 +4416,6 @@ nsPIDOMWindowInner::IsRunningTimeout()
|
||||
return TimeoutManager().IsRunningTimeout();
|
||||
}
|
||||
|
||||
void
|
||||
nsPIDOMWindowOuter::NotifyCreatedNewMediaComponent()
|
||||
{
|
||||
// We would only active media component when there is any alive one.
|
||||
mShouldResumeOnFirstActiveMediaComponent = true;
|
||||
|
||||
// If the document is already on the foreground but the suspend state is still
|
||||
// suspend-block, that means the media component was created after calling
|
||||
// MaybeActiveMediaComponents, so the window's suspend state doesn't be
|
||||
// changed yet. Therefore, we need to call it again, because the state is only
|
||||
// changed after there exists alive media within the window.
|
||||
MaybeActiveMediaComponents();
|
||||
}
|
||||
|
||||
void
|
||||
nsPIDOMWindowOuter::MaybeActiveMediaComponents()
|
||||
{
|
||||
@ -4438,21 +4423,7 @@ nsPIDOMWindowOuter::MaybeActiveMediaComponents()
|
||||
return mOuterWindow->MaybeActiveMediaComponents();
|
||||
}
|
||||
|
||||
// Resume the media when the tab was blocked and the tab already has
|
||||
// alive media components.
|
||||
if (!mShouldResumeOnFirstActiveMediaComponent ||
|
||||
mMediaSuspend != nsISuspendedTypes::SUSPENDED_BLOCK) {
|
||||
return;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsPIDOMWindowInner> inner = GetCurrentInnerWindow();
|
||||
if (!inner) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If the document is not visible, don't need to resume it.
|
||||
nsCOMPtr<nsIDocument> doc = inner->GetExtantDoc();
|
||||
if (!doc || doc->Hidden()) {
|
||||
if (mMediaSuspend != nsISuspendedTypes::SUSPENDED_BLOCK) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -746,10 +746,6 @@ protected:
|
||||
bool mServiceWorkersTestingEnabled;
|
||||
|
||||
mozilla::dom::LargeAllocStatus mLargeAllocStatus; // Outer window only
|
||||
|
||||
// When there is any created alive media component, we can consider to resume
|
||||
// the media content in the window.
|
||||
bool mShouldResumeOnFirstActiveMediaComponent;
|
||||
};
|
||||
|
||||
#define NS_PIDOMWINDOWINNER_IID \
|
||||
@ -998,7 +994,6 @@ public:
|
||||
float GetAudioVolume() const;
|
||||
nsresult SetAudioVolume(float aVolume);
|
||||
|
||||
void NotifyCreatedNewMediaComponent();
|
||||
void MaybeActiveMediaComponents();
|
||||
|
||||
void SetServiceWorkersTestingEnabled(bool aEnabled);
|
||||
|
Loading…
x
Reference in New Issue
Block a user