Bug 1574307 - Part 3. Dispatch DOMMetaViewportFitChanged when viewport-fit is changed. r=smaug,hiro

Actually, we have `DOMMeta*` event for modifying meta element. But GeckoView wants viewport-fit change only.

@hiro suggests new event that is fired by viewport-fit will be changed. This event doesn't need current viewport-fit value since GeckoView doesn't need current value immediately.

Depends on D57397

Differential Revision: https://phabricator.services.mozilla.com/D57398

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Makoto Kato 2020-01-20 08:41:05 +00:00
Родитель 163a589174
Коммит 7b3ef75994
1 изменённых файлов: 10 добавлений и 0 удалений

Просмотреть файл

@ -9875,6 +9875,11 @@ void Document::AddMetaViewportElement(HTMLMetaElement* aElement,
mMetaViewports.AppendElement(MetaViewportElementAndData{aElement, aData});
// Trigger recomputation of the nsViewportInfo the next time it's queried.
mViewportType = Unknown;
RefPtr<AsyncEventDispatcher> asyncDispatcher = new AsyncEventDispatcher(
this, NS_LITERAL_STRING("DOMMetaViewportFitChanged"), CanBubble::eYes,
ChromeOnlyDispatch::eYes);
asyncDispatcher->RunDOMEventWhenSafe();
}
void Document::RemoveMetaViewportElement(HTMLMetaElement* aElement) {
@ -9883,6 +9888,11 @@ void Document::RemoveMetaViewportElement(HTMLMetaElement* aElement) {
mMetaViewports.RemoveElement(viewport);
// Trigger recomputation of the nsViewportInfo the next time it's queried.
mViewportType = Unknown;
RefPtr<AsyncEventDispatcher> asyncDispatcher = new AsyncEventDispatcher(
this, NS_LITERAL_STRING("DOMMetaViewportFitChanged"), CanBubble::eYes,
ChromeOnlyDispatch::eYes);
asyncDispatcher->RunDOMEventWhenSafe();
return;
}
}