Changeset 252016 in webkit
- Timestamp:
- Nov 4, 2019 2:57:51 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r252014 r252016 1 2019-11-04 Chris Dumez <cdumez@apple.com> 2 3 Port FontFaceSet to the HTML5 event loop 4 https://bugs.webkit.org/show_bug.cgi?id=203769 5 6 Reviewed by Ryosuke Niwa. 7 8 * css/FontFaceSet.cpp: 9 (WebCore::FontFaceSet::didFirstLayout): 10 (WebCore::FontFaceSet::completedLoading): 11 (WebCore::FontFaceSet::faceFinished): 12 (WebCore::FontFaceSet::enqueueTask): 13 * css/FontFaceSet.h: 14 * dom/AbstractEventLoop.h: 15 1 16 2019-11-04 John Wilander <wilander@apple.com> 2 17 -
trunk/Source/WebCore/css/FontFaceSet.cpp
r251244 r252016 27 27 #include "FontFaceSet.h" 28 28 29 #include "AbstractEventLoop.h" 29 30 #include "DOMPromiseProxy.h" 30 31 #include "Document.h" … … 59 60 , m_backing(CSSFontFaceSet::create()) 60 61 , m_readyPromise(makeUniqueRef<ReadyPromise>(*this, &FontFaceSet::readyPromiseResolve)) 61 , m_taskQueue(SuspendableTaskQueue::create(document))62 62 { 63 63 m_backing->addClient(*this); … … 70 70 , m_backing(backing) 71 71 , m_readyPromise(makeUniqueRef<ReadyPromise>(*this, &FontFaceSet::readyPromiseResolve)) 72 , m_taskQueue(SuspendableTaskQueue::create(document))73 72 { 74 73 if (document.frame()) … … 202 201 m_isFirstLayoutDone = true; 203 202 if (!m_backing->hasActiveFontFaces() && !m_readyPromise->isFulfilled()) { 204 m_taskQueue->enqueueTask([this] {203 queueTaskKeepingObjectAlive(*this, TaskSource::FontLoading, [this] { 205 204 if (!m_readyPromise->isFulfilled()) 206 205 m_readyPromise->resolve(*this); … … 212 211 { 213 212 if (m_isFirstLayoutDone && !m_readyPromise->isFulfilled()) { 214 m_taskQueue->enqueueTask([this] {213 queueTaskKeepingObjectAlive(*this, TaskSource::FontLoading, [this] { 215 214 if (!m_readyPromise->isFulfilled()) 216 215 m_readyPromise->resolve(*this); … … 228 227 return; 229 228 230 m_taskQueue->enqueueTask([pendingPromises = WTFMove(pendingPromises), newStatus] {229 queueTaskKeepingObjectAlive(*this, TaskSource::FontLoading, [pendingPromises = WTFMove(pendingPromises), newStatus] { 231 230 for (auto& pendingPromise : pendingPromises) { 232 231 if (pendingPromise->hasReachedTerminalState) -
trunk/Source/WebCore/css/FontFaceSet.h
r251244 r252016 30 30 #include "EventTarget.h" 31 31 #include "IDLTypes.h" 32 #include "SuspendableTaskQueue.h"33 32 34 33 namespace WebCore { … … 119 118 HashMap<RefPtr<FontFace>, Vector<Ref<PendingPromise>>> m_pendingPromises; 120 119 UniqueRef<ReadyPromise> m_readyPromise; 121 UniqueRef<SuspendableTaskQueue> m_taskQueue;122 120 bool m_isFirstLayoutDone { true }; 123 121 }; -
trunk/Source/WebCore/dom/TaskSource.h
r251975 r252016 31 31 DOMManipulation, 32 32 FileReading, 33 FontLoading, 33 34 IdleTask, 34 35 Networking,
Note: See TracChangeset
for help on using the changeset viewer.