IconURLs IconController::urlsForTypes(int iconTypesMask) { IconURLs iconURLs; if (m_frame->tree().parent()) return iconURLs; if (iconTypesMask & Favicon && !appendToIconURLs(Favicon, &iconURLs)) iconURLs.append(defaultURL(Favicon)); #if ENABLE(TOUCH_ICON_LOADING) appendToIconURLs(TouchPrecomposedIcon, &iconURLs); appendToIconURLs(TouchIcon, &iconURLs); #endif // Finally, append all remaining icons of this type. const Vector<IconURL>& allIconURLs = m_frame->document()->iconURLs(iconTypesMask); for (Vector<IconURL>::const_iterator iter = allIconURLs.begin(); iter != allIconURLs.end(); ++iter) { int i; int iconCount = iconURLs.size(); for (i = 0; i < iconCount; ++i) { if (*iter == iconURLs.at(i)) break; } if (i == iconCount) iconURLs.append(*iter); } return iconURLs; }
IconURLs IconController::urlsForTypes(int iconTypesMask) { IconURLs iconURLs; if (m_frame->tree() && m_frame->tree()->parent()) return iconURLs; if (iconTypesMask & Favicon && !appendToIconURLs(Favicon, &iconURLs)) iconURLs.append(defaultURL(Favicon)); #if ENABLE(TOUCH_ICON_LOADING) int missedIcons = 0; if (iconTypesMask & TouchPrecomposedIcon) missedIcons += appendToIconURLs(TouchPrecomposedIcon, &iconURLs) ? 0:1; if (iconTypesMask & TouchIcon) missedIcons += appendToIconURLs(TouchIcon, &iconURLs) ? 0:1; // Only return the default touch icons when the both were required and neither was gotten. if (missedIcons == 2) { iconURLs.append(defaultURL(TouchPrecomposedIcon)); iconURLs.append(defaultURL(TouchIcon)); } #endif // Finally, append all remaining icons of this type. const Vector<IconURL>& allIconURLs = m_frame->document()->iconURLs(iconTypesMask); for (Vector<IconURL>::const_iterator iter = allIconURLs.begin(); iter != allIconURLs.end(); ++iter) { int i; int iconCount = iconURLs.size(); for (i = 0; i < iconCount; ++i) { if (*iter == iconURLs.at(i)) break; } if (i == iconCount) iconURLs.append(*iter); } return iconURLs; }
KURL IconController::url() { IconURLs iconURLs = urlsForTypes(Favicon); return iconURLs.isEmpty() ? KURL() : iconURLs[0].m_iconURL; }