Index: third_party/WebKit/Source/core/css/FontFaceSet.h |
diff --git a/third_party/WebKit/Source/core/css/FontFaceSet.h b/third_party/WebKit/Source/core/css/FontFaceSet.h |
index fda6c9171e0ae44cbd4ed82cdf12b379849013f5..5c2e7594724abe060bffb20141b1134d9f8c018e 100644 |
--- a/third_party/WebKit/Source/core/css/FontFaceSet.h |
+++ b/third_party/WebKit/Source/core/css/FontFaceSet.h |
@@ -26,6 +26,7 @@ |
#ifndef FontFaceSet_h |
#define FontFaceSet_h |
+#include "bindings/core/v8/Iterable.h" |
#include "bindings/core/v8/ScriptPromise.h" |
#include "core/css/FontFace.h" |
#include "core/css/FontFaceSetForEachCallback.h" |
@@ -57,12 +58,14 @@ class FontFaceCache; |
class FontResource; |
class ExecutionContext; |
+using FontFaceSetIterable = PairIterable<RefPtrWillBeMember<FontFace>, RefPtrWillBeMember<FontFace>>; |
+ |
#if ENABLE(OILPAN) |
-class FontFaceSet final : public EventTargetWithInlineData, public HeapSupplement<Document>, public ActiveDOMObject { |
+class FontFaceSet final : public EventTargetWithInlineData, public HeapSupplement<Document>, public ActiveDOMObject, public FontFaceSetIterable { |
USING_GARBAGE_COLLECTED_MIXIN(FontFaceSet); |
using SupplementType = HeapSupplement<Document>; |
#else |
-class FontFaceSet final : public EventTargetWithInlineData, public RefCountedSupplement<Document, FontFaceSet>, public ActiveDOMObject { |
+class FontFaceSet final : public EventTargetWithInlineData, public RefCountedSupplement<Document, FontFaceSet>, public ActiveDOMObject, public FontFaceSetIterable { |
REFCOUNTED_EVENT_TARGET(FontFaceSet); |
using SupplementType = RefCountedSupplement<Document, FontFaceSet>; |
#endif |
@@ -81,11 +84,9 @@ public: |
void add(FontFace*, ExceptionState&); |
void clear(); |
bool remove(FontFace*, ExceptionState&); |
- void forEach(FontFaceSetForEachCallback*, const ScriptValue& thisArg) const; |
- void forEach(FontFaceSetForEachCallback*) const; |
- bool has(FontFace*, ExceptionState&) const; |
+ bool hasForBinding(ScriptState*, const PassRefPtrWillBeRawPtr<FontFace>&, ExceptionState&) const; |
Takashi Toyoshima
2015/10/16 10:07:03
The second argument seems to be FontFace* here.
|
- unsigned long size() const; |
+ size_t size() const; |
AtomicString status() const; |
ExecutionContext* executionContext() const override; |
@@ -116,6 +117,19 @@ private: |
return adoptRefWillBeNoop(new FontFaceSet(document)); |
} |
+ FontFaceSetIterable::IterationSource* startIteration(ScriptState*, ExceptionState&) override; |
+ |
+ class IterationSource final : public FontFaceSetIterable::IterationSource { |
+ public: |
+ IterationSource(const WillBeHeapVector<RefPtrWillBeMember<FontFace>> fontFaces) |
Kunihiko Sakamoto
2015/10/16 09:50:07
nit: explicit, and maybe a reference parameter?
Takashi Toyoshima
2015/10/16 10:07:03
Done.
|
+ : m_index(0) |
+ , m_fontFaces(fontFaces) { } |
+ bool next(ScriptState*, RefPtrWillBeMember<FontFace>&, RefPtrWillBeMember<FontFace>&, ExceptionState&) override; |
+ private: |
+ size_t m_index; |
+ WillBeHeapVector<RefPtrWillBeMember<FontFace>> m_fontFaces; |
+ }; |
+ |
class FontLoadHistogram { |
DISALLOW_ALLOCATION(); |
public: |
@@ -134,7 +148,6 @@ private: |
FontFaceSet(Document&); |
bool inActiveDocumentContext() const; |
- void forEachInternal(FontFaceSetForEachCallback*, const ScriptValue* thisArg) const; |
void addToLoadingFonts(PassRefPtrWillBeRawPtr<FontFace>); |
void removeFromLoadingFonts(PassRefPtrWillBeRawPtr<FontFace>); |
void fireLoadingEvent(); |