| Index: Source/core/css/FontFaceSet.h
 | 
| diff --git a/Source/core/css/FontFaceSet.h b/Source/core/css/FontFaceSet.h
 | 
| index 50a84e6ffbdc7a6585752380c5105bae0140fa9b..fdc2b3abc556175d11b014ef8d37b2ebf6e93a3a 100644
 | 
| --- a/Source/core/css/FontFaceSet.h
 | 
| +++ b/Source/core/css/FontFaceSet.h
 | 
| @@ -26,25 +26,33 @@
 | 
|  #ifndef FontFaceSet_h
 | 
|  #define FontFaceSet_h
 | 
|  
 | 
| +#include "bindings/v8/ScriptPromise.h"
 | 
|  #include "core/css/FontFace.h"
 | 
|  #include "core/dom/ActiveDOMObject.h"
 | 
|  #include "core/dom/EventListener.h"
 | 
|  #include "core/dom/EventNames.h"
 | 
|  #include "core/dom/EventTarget.h"
 | 
| -#include "core/html/VoidCallback.h"
 | 
|  #include "core/platform/Timer.h"
 | 
|  #include "wtf/PassRefPtr.h"
 | 
|  #include "wtf/RefCounted.h"
 | 
|  #include "wtf/Vector.h"
 | 
|  
 | 
| +// Mac OS X 10.6 SDK defines check() macro that interfares with our check() method
 | 
| +#ifdef check
 | 
| +#undef check
 | 
| +#endif
 | 
| +
 | 
|  namespace WebCore {
 | 
|  
 | 
| -class FontResource;
 | 
|  class CSSFontFaceSource;
 | 
|  class Dictionary;
 | 
|  class Document;
 | 
|  class Event;
 | 
| +class ExceptionState;
 | 
|  class Font;
 | 
| +class FontResource;
 | 
| +class FontsReadyPromiseResolver;
 | 
| +class LoadFontPromiseResolver;
 | 
|  class ScriptExecutionContext;
 | 
|  
 | 
|  class FontFaceSet : public RefCounted<FontFaceSet>, public ActiveDOMObject, public EventTarget {
 | 
| @@ -59,11 +67,12 @@ public:
 | 
|      DEFINE_ATTRIBUTE_EVENT_LISTENER(loadingdone);
 | 
|      DEFINE_ATTRIBUTE_EVENT_LISTENER(loadingerror);
 | 
|  
 | 
| -    bool checkFont(const String&, const String&);
 | 
| -    void loadFont(const Dictionary&);
 | 
| -    void notifyWhenFontsReady(PassRefPtr<VoidCallback>);
 | 
| +    Vector<RefPtr<FontFace> > match(const String& font, const String& text, ExceptionState&);
 | 
| +    bool check(const String& font, const String& text, ExceptionState&);
 | 
| +    ScriptPromise load(const String& font, const String& text, ExceptionState&);
 | 
| +    ScriptPromise ready();
 | 
|  
 | 
| -    bool loading() const { return m_loadingCount > 0 || m_shouldFireDoneEvent; }
 | 
| +    AtomicString status() const;
 | 
|  
 | 
|      virtual ScriptExecutionContext* scriptExecutionContext() const;
 | 
|      virtual const AtomicString& interfaceName() const;
 | 
| @@ -77,7 +86,7 @@ public:
 | 
|      void beginFontLoading(FontFace*);
 | 
|      void fontLoaded(FontFace*);
 | 
|      void loadError(FontFace*);
 | 
| -    void scheduleCallback(PassRefPtr<VoidCallback>);
 | 
| +    void scheduleResolve(LoadFontPromiseResolver*);
 | 
|  
 | 
|  private:
 | 
|      class FontLoadHistogram {
 | 
| @@ -101,7 +110,7 @@ private:
 | 
|      void scheduleEvent(PassRefPtr<Event>);
 | 
|      void queueDoneEvent(FontFace*);
 | 
|      void firePendingEvents();
 | 
| -    void firePendingCallbacks();
 | 
| +    void resolvePendingLoadPromises();
 | 
|      void fireDoneEventIfPossible();
 | 
|      bool resolveFontStyle(const String&, Font&);
 | 
|      void timerFired(Timer<FontFaceSet>*);
 | 
| @@ -109,8 +118,8 @@ private:
 | 
|      EventTargetData m_eventTargetData;
 | 
|      unsigned m_loadingCount;
 | 
|      Vector<RefPtr<Event> > m_pendingEvents;
 | 
| -    Vector<RefPtr<VoidCallback> > m_pendingCallbacks;
 | 
| -    Vector<RefPtr<VoidCallback> > m_fontsReadyCallbacks;
 | 
| +    Vector<RefPtr<LoadFontPromiseResolver> > m_pendingLoadResolvers;
 | 
| +    Vector<OwnPtr<FontsReadyPromiseResolver> > m_readyResolvers;
 | 
|      FontFaceArray m_loadedFonts;
 | 
|      FontFaceArray m_failedFonts;
 | 
|      bool m_shouldFireDoneEvent;
 | 
| 
 |