Bug 1338446 Part 6 - Label LoadTimer in nsFontFaceLoader::StartedLoading.
Delete #include "mozilla/Logging.h" because it has been included.
Add FontFaceSet::Document() to get valid document for nsFontFaceLoader.
MozReview-Commit-ID: IAXM9UgvjOE
--- a/layout/style/FontFaceSet.h
+++ b/layout/style/FontFaceSet.h
@@ -157,16 +157,18 @@ public:
void FlushUserFontSet();
static nsPresContext* GetPresContextFor(gfxUserFontSet* aUserFontSet)
{
FontFaceSet* set = static_cast<UserFontSet*>(aUserFontSet)->mFontFaceSet;
return set ? set->GetPresContext() : nullptr;
}
+ nsIDocument* Document() const { return mDocument; }
+
// -- Web IDL --------------------------------------------------------------
IMPL_EVENT_HANDLER(loading)
IMPL_EVENT_HANDLER(loadingdone)
IMPL_EVENT_HANDLER(loadingerror)
already_AddRefed<mozilla::dom::Promise> Load(JSContext* aCx,
const nsAString& aFont,
const nsAString& aText,
--- a/layout/style/nsFontFaceLoader.cpp
+++ b/layout/style/nsFontFaceLoader.cpp
@@ -6,18 +6,16 @@
/* code for loading in @font-face defined font data */
#include "mozilla/IntegerPrintfMacros.h"
#include "mozilla/Logging.h"
#include "nsFontFaceLoader.h"
-#include "mozilla/Logging.h"
-
#include "nsError.h"
#include "nsContentUtils.h"
#include "mozilla/Preferences.h"
#include "mozilla/Telemetry.h"
#include "FontFaceSet.h"
#include "nsPresContext.h"
#include "nsIPrincipal.h"
#include "nsIScriptSecurityManager.h"
@@ -50,16 +48,18 @@ nsFontFaceLoader::nsFontFaceLoader(gfxUs
nsIURI* aFontURI,
FontFaceSet* aFontFaceSet,
nsIChannel* aChannel)
: mUserFontEntry(aUserFontEntry),
mFontURI(aFontURI),
mFontFaceSet(aFontFaceSet),
mChannel(aChannel)
{
+ MOZ_ASSERT(mFontFaceSet,
+ "We should get a valid FontFaceSet from the caller!");
mStartTime = TimeStamp::Now();
}
nsFontFaceLoader::~nsFontFaceLoader()
{
if (mUserFontEntry) {
mUserFontEntry->mLoader = nullptr;
}
@@ -82,20 +82,23 @@ nsFontFaceLoader::StartedLoading(nsIStre
loadTimeout = GetFallbackDelay();
} else {
loadTimeout = GetShortFallbackDelay();
}
if (loadTimeout > 0) {
mLoadTimer = do_CreateInstance("@mozilla.org/timer;1");
if (mLoadTimer) {
- mLoadTimer->InitWithFuncCallback(LoadTimerCallback,
- static_cast<void*>(this),
- loadTimeout,
- nsITimer::TYPE_ONE_SHOT);
+ mLoadTimer->SetTarget(
+ mFontFaceSet->Document()->EventTargetFor(TaskCategory::Other));
+ mLoadTimer->InitWithNamedFuncCallback(LoadTimerCallback,
+ static_cast<void*>(this),
+ loadTimeout,
+ nsITimer::TYPE_ONE_SHOT,
+ "LoadTimerCallback");
}
} else {
mUserFontEntry->mFontDataLoadingState = gfxUserFontEntry::LOADING_SLOWLY;
}
mStreamLoader = aStreamLoader;
}
/* static */ void