mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 05:45:33 +00:00
Backed out changeset 7bcb0c169466 (bug 1305628) for crashing with mozilla::OffTheBooksMutex::Lock. r=backout
This commit is contained in:
parent
de2a95a064
commit
a026f5edf9
@ -5,7 +5,6 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "RemoteCompositorSession.h"
|
||||
#include "mozilla/VsyncDispatcher.h"
|
||||
#include "mozilla/layers/APZChild.h"
|
||||
#include "mozilla/layers/APZCTreeManagerChild.h"
|
||||
#include "nsBaseWidget.h"
|
||||
|
@ -260,15 +260,6 @@ nsBaseWidget::Shutdown()
|
||||
|
||||
void nsBaseWidget::DestroyCompositor()
|
||||
{
|
||||
// We release this before releasing the compositor, since it may hold the
|
||||
// last reference to our ClientLayerManager. ClientLayerManager's dtor can
|
||||
// trigger a paint, creating a new compositor, and we don't want to re-use
|
||||
// the old vsync dispatcher.
|
||||
if (mCompositorVsyncDispatcher) {
|
||||
mCompositorVsyncDispatcher->Shutdown();
|
||||
mCompositorVsyncDispatcher = nullptr;
|
||||
}
|
||||
|
||||
// The compositor shutdown sequence looks like this:
|
||||
// 1. CompositorSession calls CompositorBridgeChild::Destroy.
|
||||
// 2. CompositorBridgeChild synchronously sends WillClose.
|
||||
@ -293,6 +284,13 @@ void nsBaseWidget::DestroyCompositor()
|
||||
RefPtr<CompositorSession> session = mCompositorSession.forget();
|
||||
session->Shutdown();
|
||||
}
|
||||
|
||||
// Can have base widgets that are things like tooltips
|
||||
// which don't have CompositorVsyncDispatchers
|
||||
if (mCompositorVsyncDispatcher) {
|
||||
mCompositorVsyncDispatcher->Shutdown();
|
||||
mCompositorVsyncDispatcher = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void nsBaseWidget::ReleaseContentController()
|
||||
|
@ -32,9 +32,8 @@ InProcessWinCompositorWidget::RealWidget()
|
||||
void
|
||||
InProcessWinCompositorWidget::ObserveVsync(VsyncObserver* aObserver)
|
||||
{
|
||||
if (RefPtr<CompositorVsyncDispatcher> cvd = mWindow->GetCompositorVsyncDispatcher()) {
|
||||
cvd->SetCompositorVsyncObserver(aObserver);
|
||||
}
|
||||
RefPtr<CompositorVsyncDispatcher> cvd = mWindow->GetCompositorVsyncDispatcher();
|
||||
cvd->SetCompositorVsyncObserver(aObserver);
|
||||
}
|
||||
|
||||
} // namespace widget
|
||||
|
Loading…
x
Reference in New Issue
Block a user