| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are met: | 5 * modification, are permitted provided that the following conditions are met: |
| 6 * | 6 * |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 Document* d = document(); | 350 Document* d = document(); |
| 351 d->ensureStyleResolver(); // Flush pending style changes. | 351 d->ensureStyleResolver(); // Flush pending style changes. |
| 352 return d->styleEngine()->fontSelector()->fontFaceCache()->cssConnectedFontFa
ces(); | 352 return d->styleEngine()->fontSelector()->fontFaceCache()->cssConnectedFontFa
ces(); |
| 353 } | 353 } |
| 354 | 354 |
| 355 bool FontFaceSet::isCSSConnectedFontFace(FontFace* fontFace) const | 355 bool FontFaceSet::isCSSConnectedFontFace(FontFace* fontFace) const |
| 356 { | 356 { |
| 357 return cssConnectedFontFaceList().contains(fontFace); | 357 return cssConnectedFontFaceList().contains(fontFace); |
| 358 } | 358 } |
| 359 | 359 |
| 360 void FontFaceSet::forEach(PassOwnPtr<FontFaceSetForEachCallback> callback, Scrip
tValue& thisArg) const | 360 void FontFaceSet::forEach(PassOwnPtr<FontFaceSetForEachCallback> callback, const
Optional<ScriptValue>& thisArg) const |
| 361 { | |
| 362 forEachInternal(callback, &thisArg); | |
| 363 } | |
| 364 | |
| 365 void FontFaceSet::forEach(PassOwnPtr<FontFaceSetForEachCallback> callback) const | |
| 366 { | |
| 367 forEachInternal(callback, 0); | |
| 368 } | |
| 369 | |
| 370 void FontFaceSet::forEachInternal(PassOwnPtr<FontFaceSetForEachCallback> callbac
k, ScriptValue* thisArg) const | |
| 371 { | 361 { |
| 372 if (!inActiveDocumentContext()) | 362 if (!inActiveDocumentContext()) |
| 373 return; | 363 return; |
| 374 const WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >& cssConnectedFace
s = cssConnectedFontFaceList(); | 364 const WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >& cssConnectedFace
s = cssConnectedFontFaceList(); |
| 375 WillBeHeapVector<RefPtrWillBeMember<FontFace> > fontFaces; | 365 WillBeHeapVector<RefPtrWillBeMember<FontFace> > fontFaces; |
| 376 fontFaces.reserveInitialCapacity(cssConnectedFaces.size() + m_nonCSSConnecte
dFaces.size()); | 366 fontFaces.reserveInitialCapacity(cssConnectedFaces.size() + m_nonCSSConnecte
dFaces.size()); |
| 377 for (WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >::const_iterator it
= cssConnectedFaces.begin(); it != cssConnectedFaces.end(); ++it) | 367 for (WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >::const_iterator it
= cssConnectedFaces.begin(); it != cssConnectedFaces.end(); ++it) |
| 378 fontFaces.append(*it); | 368 fontFaces.append(*it); |
| 379 for (WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >::const_iterator it
= m_nonCSSConnectedFaces.begin(); it != m_nonCSSConnectedFaces.end(); ++it) | 369 for (WillBeHeapListHashSet<RefPtrWillBeMember<FontFace> >::const_iterator it
= m_nonCSSConnectedFaces.begin(); it != m_nonCSSConnectedFaces.end(); ++it) |
| 380 fontFaces.append(*it); | 370 fontFaces.append(*it); |
| 381 | 371 |
| 382 for (size_t i = 0; i < fontFaces.size(); ++i) { | 372 for (size_t i = 0; i < fontFaces.size(); ++i) { |
| 383 FontFace* face = fontFaces[i].get(); | 373 FontFace* face = fontFaces[i].get(); |
| 384 if (thisArg) | 374 if (thisArg.isMissing()) |
| 385 callback->handleItem(*thisArg, face, face, const_cast<FontFaceSet*>(
this)); | 375 callback->handleItem(face, face, const_cast<FontFaceSet*>(this)); |
| 386 else | 376 else |
| 387 callback->handleItem(face, face, const_cast<FontFaceSet*>(this)); | 377 callback->handleItem(thisArg.get(), face, face, const_cast<FontFaceS
et*>(this)); |
| 388 } | 378 } |
| 389 } | 379 } |
| 390 | 380 |
| 391 unsigned long FontFaceSet::size() const | 381 unsigned long FontFaceSet::size() const |
| 392 { | 382 { |
| 393 if (!inActiveDocumentContext()) | 383 if (!inActiveDocumentContext()) |
| 394 return m_nonCSSConnectedFaces.size(); | 384 return m_nonCSSConnectedFaces.size(); |
| 395 return cssConnectedFontFaceList().size() + m_nonCSSConnectedFaces.size(); | 385 return cssConnectedFontFaceList().size() + m_nonCSSConnectedFaces.size(); |
| 396 } | 386 } |
| 397 | 387 |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 visitor->trace(m_loadingFonts); | 583 visitor->trace(m_loadingFonts); |
| 594 visitor->trace(m_loadedFonts); | 584 visitor->trace(m_loadedFonts); |
| 595 visitor->trace(m_failedFonts); | 585 visitor->trace(m_failedFonts); |
| 596 visitor->trace(m_nonCSSConnectedFaces); | 586 visitor->trace(m_nonCSSConnectedFaces); |
| 597 DocumentSupplement::trace(visitor); | 587 DocumentSupplement::trace(visitor); |
| 598 EventTargetWithInlineData::trace(visitor); | 588 EventTargetWithInlineData::trace(visitor); |
| 599 } | 589 } |
| 600 #endif | 590 #endif |
| 601 | 591 |
| 602 } // namespace blink | 592 } // namespace blink |
| OLD | NEW |