OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org) | 3 * (C) 2002-2003 Dirk Mueller (mueller@kde.org) |
4 * Copyright (C) 2002, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 4 * Copyright (C) 2002, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 String absHref = m_strHref; | 133 String absHref = m_strHref; |
134 if (!parentSheet->finalURL().isNull()) | 134 if (!parentSheet->finalURL().isNull()) |
135 // use parent styleheet's URL as the base URL | 135 // use parent styleheet's URL as the base URL |
136 absHref = KURL(parentSheet->finalURL(), m_strHref).string(); | 136 absHref = KURL(parentSheet->finalURL(), m_strHref).string(); |
137 | 137 |
138 // Check for a cycle in our import chain. If we encounter a stylesheet | 138 // Check for a cycle in our import chain. If we encounter a stylesheet |
139 // in our parent chain with the same URL, then just bail. | 139 // in our parent chain with the same URL, then just bail. |
140 CSSStyleSheet* rootSheet = parentSheet; | 140 CSSStyleSheet* rootSheet = parentSheet; |
141 for (CSSStyleSheet* sheet = parentSheet; sheet; sheet = sheet->parentStyleSh
eet()) { | 141 for (CSSStyleSheet* sheet = parentSheet; sheet; sheet = sheet->parentStyleSh
eet()) { |
142 // FIXME: This is wrong if the finalURL was updated via document::update
BaseURL. | 142 // FIXME: This is wrong if the finalURL was updated via document::update
BaseURL. |
143 if (absHref == sheet->finalURL().string()) | 143 if (absHref == sheet->finalURL().string() || absHref == sheet->href()) |
144 return; | 144 return; |
145 rootSheet = sheet; | 145 rootSheet = sheet; |
146 } | 146 } |
147 | 147 |
148 ResourceRequest request(document->completeURL(absHref)); | 148 ResourceRequest request(document->completeURL(absHref)); |
149 if (parentSheet->isUserStyleSheet()) | 149 if (parentSheet->isUserStyleSheet()) |
150 m_cachedSheet = cachedResourceLoader->requestUserCSSStyleSheet(request,
parentSheet->charset()); | 150 m_cachedSheet = cachedResourceLoader->requestUserCSSStyleSheet(request,
parentSheet->charset()); |
151 else | 151 else |
152 m_cachedSheet = cachedResourceLoader->requestCSSStyleSheet(request, pare
ntSheet->charset()); | 152 m_cachedSheet = cachedResourceLoader->requestCSSStyleSheet(request, pare
ntSheet->charset()); |
153 if (m_cachedSheet) { | 153 if (m_cachedSheet) { |
(...skipping 28 matching lines...) Expand all Loading... |
182 return result.toString(); | 182 return result.toString(); |
183 } | 183 } |
184 | 184 |
185 void CSSImportRule::addSubresourceStyleURLs(ListHashSet<KURL>& urls) | 185 void CSSImportRule::addSubresourceStyleURLs(ListHashSet<KURL>& urls) |
186 { | 186 { |
187 if (m_styleSheet) | 187 if (m_styleSheet) |
188 addSubresourceURL(urls, m_styleSheet->baseURL()); | 188 addSubresourceURL(urls, m_styleSheet->baseURL()); |
189 } | 189 } |
190 | 190 |
191 } // namespace WebCore | 191 } // namespace WebCore |
OLD | NEW |