void ZoomConstraintsClient::Destroy() { if (!(mPresShell && mDocument)) { return; } ZCC_LOG("Destroying %p\n", this); if (mEventTarget) { mEventTarget->RemoveEventListener(DOM_META_ADDED, this, false); mEventTarget = nullptr; } nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); if (observerService) { observerService->RemoveObserver(this, BEFORE_FIRST_PAINT.Data()); } if (mGuid) { if (nsIWidget* widget = GetWidget(mPresShell)) { ZCC_LOG("Sending null constraints in %p for { %u, %" PRIu64 " }\n", this, mGuid->mPresShellId, mGuid->mScrollId); widget->UpdateZoomConstraints(mGuid->mPresShellId, mGuid->mScrollId, Nothing()); mGuid = Nothing(); } } mDocument = nullptr; mPresShell = nullptr; }
void ZoomConstraintsClient::Init(nsIPresShell* aPresShell, nsIDocument* aDocument) { if (!(aPresShell && aDocument)) { return; } mPresShell = aPresShell; mDocument = aDocument; if (nsCOMPtr<nsPIDOMWindow> window = mDocument->GetWindow()) { mEventTarget = window->GetChromeEventHandler(); } if (mEventTarget) { mEventTarget->AddEventListener(DOM_META_ADDED, this, false); mEventTarget->AddEventListener(DOM_META_CHANGED, this, false); } nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); if (observerService) { observerService->AddObserver(this, BEFORE_FIRST_PAINT.Data(), false); } Preferences::AddStrongObserver(this, "browser.ui.zoom.force-user-scalable"); }
MobileViewportManager::MobileViewportManager(nsIPresShell* aPresShell, nsIDocument* aDocument) : mDocument(aDocument) , mPresShell(aPresShell) , mIsFirstPaint(false) , mPainted(false) { MOZ_ASSERT(mPresShell); MOZ_ASSERT(mDocument); MVM_LOG("%p: creating with presShell %p document %p\n", this, mPresShell, aDocument); if (nsCOMPtr<nsPIDOMWindowOuter> window = mDocument->GetWindow()) { mEventTarget = window->GetChromeEventHandler(); } if (mEventTarget) { mEventTarget->AddEventListener(DOM_META_ADDED, this, false); mEventTarget->AddEventListener(DOM_META_CHANGED, this, false); mEventTarget->AddEventListener(FULL_ZOOM_CHANGE, this, false); mEventTarget->AddEventListener(LOAD, this, true); } nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); if (observerService) { observerService->AddObserver(this, BEFORE_FIRST_PAINT.Data(), false); } }
void MobileViewportManager::Destroy() { MVM_LOG("%p: destroying\n", this); if (mEventTarget) { mEventTarget->RemoveEventListener(DOM_META_ADDED, this, false); mEventTarget->RemoveEventListener(FULL_ZOOM_CHANGE, this, false); mEventTarget = nullptr; } nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); if (observerService) { observerService->RemoveObserver(this, BEFORE_FIRST_PAINT.Data()); } mDocument = nullptr; mPresShell = nullptr; }