Skip to content

Commit

Permalink
Bug 1795804 - Don't use lock to set persistent attribute timer. r=smaug
Browse files Browse the repository at this point in the history
Drive-by, but this timer is main-thread only, I have no idea why it'd
need a lock.

Differential Revision: https://phabricator.services.mozilla.com/D159576
  • Loading branch information
emilio committed Oct 18, 2022
1 parent c3da66c commit 34e00cb
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 18 deletions.
24 changes: 8 additions & 16 deletions xpfe/appshell/AppWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,12 @@ AppWindow::AppWindow(uint32_t aChromeFlags)
mPersistentAttributesDirty(0),
mPersistentAttributesMask(0),
mChromeFlags(aChromeFlags),
mSPTimerLock("AppWindow.mSPTimerLock"),
mWidgetListenerDelegate(this) {}

AppWindow::~AppWindow() {
{
MutexAutoLock lock(mSPTimerLock);
if (mSPTimer) mSPTimer->Cancel();
if (mSPTimer) {
mSPTimer->Cancel();
mSPTimer = nullptr;
}
Destroy();
}
Expand Down Expand Up @@ -558,13 +557,10 @@ NS_IMETHODIMP AppWindow::Destroy() {
mDocShell->RemoveProgressListener(this);
}

{
MutexAutoLock lock(mSPTimerLock);
if (mSPTimer) {
mSPTimer->Cancel();
SavePersistentAttributes();
mSPTimer = nullptr;
}
if (mSPTimer) {
mSPTimer->Cancel();
SavePersistentAttributes();
mSPTimer = nullptr;
}

if (!mWindow) return NS_OK;
Expand Down Expand Up @@ -3152,7 +3148,6 @@ class AppWindowTimerCallback final : public nsITimerCallback, public nsINamed {
NS_IMPL_ISUPPORTS(AppWindowTimerCallback, nsITimerCallback, nsINamed)

void AppWindow::SetPersistenceTimer(uint32_t aDirtyFlags) {
MutexAutoLock lock(mSPTimerLock);
if (!mSPTimer) {
mSPTimer = NS_NewTimer();
if (!mSPTimer) {
Expand All @@ -3168,10 +3163,7 @@ void AppWindow::SetPersistenceTimer(uint32_t aDirtyFlags) {
PersistentAttributesDirty(aDirtyFlags);
}

void AppWindow::FirePersistenceTimer() {
MutexAutoLock lock(mSPTimerLock);
SavePersistentAttributes();
}
void AppWindow::FirePersistenceTimer() { SavePersistentAttributes(); }

//----------------------------------------
// nsIWebProgessListener implementation
Expand Down
3 changes: 1 addition & 2 deletions xpfe/appshell/AppWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,7 @@ class AppWindow final : public nsIBaseWindow,

nsCOMPtr<nsIRemoteTab> mPrimaryBrowserParent;

nsCOMPtr<nsITimer> mSPTimer MOZ_GUARDED_BY(mSPTimerLock);
mozilla::Mutex mSPTimerLock;
nsCOMPtr<nsITimer> mSPTimer;
WidgetListenerDelegate mWidgetListenerDelegate;

private:
Expand Down

0 comments on commit 34e00cb

Please sign in to comment.