зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1331294 - Part 1: Make nsPresContext::HasPendingRestyleOrReflow check nsIPresShell::mNeedStyleFlush instead of asking the RestyleManager for its status. r=bholley
This might delay the resolution of FontFaceSet's ready promise in cases where we don't delay it now, when we call nsIPresShell::SetNeedRestyle for something other than posting a restyle. But from the Font Loading API spec's point of view, I think this is fine. MozReview-Commit-ID: AnItzSPnIeB
This commit is contained in:
Родитель
d9afbf0240
Коммит
6c3d80b9c1
|
@ -77,7 +77,6 @@
|
||||||
#include "nsLayoutStylesheetCache.h"
|
#include "nsLayoutStylesheetCache.h"
|
||||||
#include "mozilla/StyleSheet.h"
|
#include "mozilla/StyleSheet.h"
|
||||||
#include "mozilla/StyleSheetInlines.h"
|
#include "mozilla/StyleSheetInlines.h"
|
||||||
#include "mozilla/ServoRestyleManagerInlines.h"
|
|
||||||
#include "mozilla/Telemetry.h"
|
#include "mozilla/Telemetry.h"
|
||||||
#include "mozilla/dom/Performance.h"
|
#include "mozilla/dom/Performance.h"
|
||||||
#include "mozilla/dom/PerformanceTiming.h"
|
#include "mozilla/dom/PerformanceTiming.h"
|
||||||
|
@ -2779,8 +2778,8 @@ nsPresContext::NotifyFontFaceSetOnRefresh()
|
||||||
bool
|
bool
|
||||||
nsPresContext::HasPendingRestyleOrReflow()
|
nsPresContext::HasPendingRestyleOrReflow()
|
||||||
{
|
{
|
||||||
return (mRestyleManager && mRestyleManager->HasPendingRestyles()) ||
|
nsIPresShell* shell = PresShell();
|
||||||
PresShell()->HasPendingReflow();
|
return shell->NeedStyleFlush() || shell->HasPendingReflow();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -162,6 +162,10 @@ function awaitRefresh() {
|
||||||
return awaitOneRefresh().then(awaitOneRefresh);
|
return awaitOneRefresh().then(awaitOneRefresh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function flushStyles() {
|
||||||
|
getComputedStyle(document.body).color;
|
||||||
|
}
|
||||||
|
|
||||||
function runTest() {
|
function runTest() {
|
||||||
// Document and window from inside the display:none iframe.
|
// Document and window from inside the display:none iframe.
|
||||||
var nframe = document.getElementById("n");
|
var nframe = document.getElementById("n");
|
||||||
|
@ -956,6 +960,7 @@ function runTest() {
|
||||||
is(document.fonts.status, "loading", "FontFaceSet.status after adding a loading FontFace (TEST 32)");
|
is(document.fonts.status, "loading", "FontFaceSet.status after adding a loading FontFace (TEST 32)");
|
||||||
|
|
||||||
document.fonts.clear();
|
document.fonts.clear();
|
||||||
|
flushStyles();
|
||||||
|
|
||||||
is(document.fonts.status, "loaded", "FontFaceSet.status after clearing (TEST 32)");
|
is(document.fonts.status, "loaded", "FontFaceSet.status after clearing (TEST 32)");
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче