Chromium Code Reviews| Index: Source/core/xml/XSLImportRule.cpp |
| diff --git a/Source/core/xml/XSLImportRule.cpp b/Source/core/xml/XSLImportRule.cpp |
| index e8d38a07c9c94dd9d3d429e9c6b773d507bd0749..cd6c894ad53175a901eed9d209e7d435686342f1 100644 |
| --- a/Source/core/xml/XSLImportRule.cpp |
| +++ b/Source/core/xml/XSLImportRule.cpp |
| @@ -27,13 +27,13 @@ |
| #include "core/fetch/FetchRequest.h" |
| #include "core/fetch/ResourceFetcher.h" |
| #include "core/fetch/XSLStyleSheetResource.h" |
| +#include "platform/SharedBuffer.h" |
| namespace blink { |
| XSLImportRule::XSLImportRule(XSLStyleSheet* parent, const String& href) |
| : m_parentStyleSheet(parent) |
| , m_strHref(href) |
| - , m_resource(0) |
| , m_loading(false) |
| { |
| } |
| @@ -44,9 +44,6 @@ XSLImportRule::~XSLImportRule() |
| if (m_styleSheet) |
| m_styleSheet->setParentStyleSheet(0); |
| #endif |
| - |
| - if (m_resource) |
| - m_resource->removeClient(this); |
| } |
| void XSLImportRule::setXSLStyleSheet(const String& href, const KURL& baseURL, const String& sheet) |
| @@ -99,19 +96,16 @@ void XSLImportRule::loadSheet() |
| return; |
| } |
| - FetchRequest request(ResourceRequest(fetcher->document()->completeURL(absHref)), FetchInitiatorTypeNames::xml); |
| - m_resource = fetcher->fetchXSLStyleSheet(request); |
| - |
| - if (m_resource) { |
| - m_resource->addClient(this); |
| + ResourceLoaderOptions fetchOptions(ResourceFetcher::defaultResourceOptions()); |
| + FetchRequest request(ResourceRequest(fetcher->document()->completeURL(absHref)), FetchInitiatorTypeNames::xml, fetchOptions); |
| + request.setOriginRestriction(FetchRequest::RestrictToSameOrigin); |
| + ResourcePtr<Resource> resource = fetcher->fetchSynchronously(request); |
| + if (!resource) |
| + return; |
| - // If the imported sheet is in the cache, then setXSLStyleSheet gets |
| - // called, and the sheet even gets parsed (via parseString). In this |
| - // case we have loaded (even if our subresources haven't), so if we have |
| - // a stylesheet after checking the cache, then we've clearly loaded. |
| - if (!m_styleSheet) |
| - m_loading = true; |
| - } |
| + ASSERT(!m_styleSheet); |
| + if (SharedBuffer* data = resource->resourceBuffer()) |
| + setXSLStyleSheet(absHref, parentSheet->baseURL(), String(data->data(), data->size())); |
|
abarth-chromium
2014/09/03 05:19:47
String(data->data(), data->size()) <--- This seem
tasak
2014/09/04 11:14:40
Done.
I used TextResourceDecoder (XSLStyleSheetRes
|
| } |
| void XSLImportRule::trace(Visitor* visitor) |