| Index: third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp b/third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp
|
| index d7fad12fa695d98da79499de7832e7176e07d912..fcbde6e34bdbf362c45fe49d40882c09f759c044 100644
|
| --- a/third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp
|
| +++ b/third_party/WebKit/Source/core/html/parser/CSSPreloadScanner.cpp
|
| @@ -35,9 +35,6 @@
|
| namespace blink {
|
|
|
| CSSPreloadScanner::CSSPreloadScanner()
|
| - : m_state(Initial)
|
| - , m_requests(0)
|
| - , m_referrerPolicy(ReferrerPolicyDefault)
|
| {
|
| }
|
|
|
| @@ -53,28 +50,32 @@ void CSSPreloadScanner::reset()
|
| }
|
|
|
| template<typename Char>
|
| -void CSSPreloadScanner::scanCommon(const Char* begin, const Char* end, const SegmentedString& source, PreloadRequestStream& requests)
|
| +void CSSPreloadScanner::scanCommon(const Char* begin, const Char* end, const SegmentedString& source, PreloadRequestStream& requests, const KURL& predictedBaseElementURL)
|
| {
|
| m_requests = &requests;
|
| + m_predictedBaseElementURL = &predictedBaseElementURL;
|
| +
|
| for (const Char* it = begin; it != end && m_state != DoneParsingImportRules; ++it)
|
| tokenize(*it, source);
|
| - m_requests = 0;
|
| +
|
| + m_requests = nullptr;
|
| + m_predictedBaseElementURL = nullptr;
|
| }
|
|
|
| -void CSSPreloadScanner::scan(const HTMLToken::DataVector& data, const SegmentedString& source, PreloadRequestStream& requests)
|
| +void CSSPreloadScanner::scan(const HTMLToken::DataVector& data, const SegmentedString& source, PreloadRequestStream& requests, const KURL& predictedBaseElementURL)
|
| {
|
| - scanCommon(data.data(), data.data() + data.size(), source, requests);
|
| + scanCommon(data.data(), data.data() + data.size(), source, requests, predictedBaseElementURL);
|
| }
|
|
|
| -void CSSPreloadScanner::scan(const String& tagName, const SegmentedString& source, PreloadRequestStream& requests)
|
| +void CSSPreloadScanner::scan(const String& tagName, const SegmentedString& source, PreloadRequestStream& requests, const KURL& predictedBaseElementURL)
|
| {
|
| if (tagName.is8Bit()) {
|
| const LChar* begin = tagName.characters8();
|
| - scanCommon(begin, begin + tagName.length(), source, requests);
|
| + scanCommon(begin, begin + tagName.length(), source, requests, predictedBaseElementURL);
|
| return;
|
| }
|
| const UChar* begin = tagName.characters16();
|
| - scanCommon(begin, begin + tagName.length(), source, requests);
|
| + scanCommon(begin, begin + tagName.length(), source, requests, predictedBaseElementURL);
|
| }
|
|
|
| void CSSPreloadScanner::setReferrerPolicy(const ReferrerPolicy policy)
|
| @@ -219,9 +220,8 @@ void CSSPreloadScanner::emitRule(const SegmentedString& source)
|
| if (equalIgnoringCase(m_rule, "import")) {
|
| String url = parseCSSStringOrURL(m_ruleValue.toString());
|
| if (!url.isEmpty()) {
|
| - KURL baseElementURL; // FIXME: This should be passed in from the HTMLPreloadScaner via scan()!
|
| TextPosition position = TextPosition(source.currentLine(), source.currentColumn());
|
| - OwnPtr<PreloadRequest> request = PreloadRequest::create(FetchInitiatorTypeNames::css, position, url, baseElementURL, Resource::CSSStyleSheet, m_referrerPolicy);
|
| + OwnPtr<PreloadRequest> request = PreloadRequest::create(FetchInitiatorTypeNames::css, position, url, *m_predictedBaseElementURL, Resource::CSSStyleSheet, m_referrerPolicy);
|
| // FIXME: Should this be including the charset in the preload request?
|
| m_requests->append(request.release());
|
| }
|
|
|