Chromium Code Reviews| Index: third_party/WebKit/Source/core/loader/LinkLoader.cpp |
| diff --git a/third_party/WebKit/Source/core/loader/LinkLoader.cpp b/third_party/WebKit/Source/core/loader/LinkLoader.cpp |
| index 40707b9ad19ed2a9a69d56429e8dfa4d30987ead..98e1b872d24b43486e2bacf5edc7e817cb46d06a 100644 |
| --- a/third_party/WebKit/Source/core/loader/LinkLoader.cpp |
| +++ b/third_party/WebKit/Source/core/loader/LinkLoader.cpp |
| @@ -182,27 +182,26 @@ static void preconnectIfNeeded( |
| } |
| } |
| -bool LinkLoader::getResourceTypeFromAsAttribute(const String& as, |
| - Resource::Type& type) { |
| +WTF::Optional<Resource::Type> LinkLoader::getResourceTypeFromAsAttribute( |
| + const String& as) { |
| DCHECK_EQ(as.lower(), as); |
| if (as == "image") { |
| - type = Resource::Image; |
| + return Resource::Image; |
| } else if (as == "script") { |
| - type = Resource::Script; |
| + return Resource::Script; |
| } else if (as == "style") { |
| - type = Resource::CSSStyleSheet; |
| + return Resource::CSSStyleSheet; |
| } else if (as == "media") { |
| - type = Resource::Media; |
| + return Resource::Media; |
| } else if (as == "font") { |
| - type = Resource::Font; |
| + return Resource::Font; |
| } else if (as == "track") { |
| - type = Resource::TextTrack; |
| + return Resource::TextTrack; |
| } else { |
| - type = Resource::Raw; |
| if (!as.isEmpty()) |
|
Charlie Harrison
2017/01/10 14:35:06
Can this condition be an "else if" in the outer el
Yoav Weiss
2017/01/11 05:14:36
Yeah (more or less). done
|
| - return false; |
| + return WTF::nullopt; |
| + return Resource::Raw; |
| } |
| - return true; |
| } |
| void LinkLoader::createLinkPreloadResourceClient(Resource* resource) { |
| @@ -300,8 +299,9 @@ static Resource* preloadIfNeeded(const LinkRelAttribute& relAttribute, |
| } |
| if (caller == LinkCalledFromHeader) |
| UseCounter::count(document, UseCounter::LinkHeaderPreload); |
| - Resource::Type resourceType; |
| - if (!LinkLoader::getResourceTypeFromAsAttribute(as, resourceType)) { |
| + Optional<Resource::Type> resourceType = |
| + LinkLoader::getResourceTypeFromAsAttribute(as); |
| + if (resourceType == WTF::nullopt) { |
| document.addConsoleMessage(ConsoleMessage::create( |
| OtherMessageSource, WarningMessageLevel, |
| String("<link rel=preload> must have a valid `as` value"))); |
| @@ -309,15 +309,15 @@ static Resource* preloadIfNeeded(const LinkRelAttribute& relAttribute, |
| return nullptr; |
| } |
| - if (!isSupportedType(resourceType, mimeType)) { |
| + if (!isSupportedType(resourceType.value(), mimeType)) { |
| document.addConsoleMessage(ConsoleMessage::create( |
| OtherMessageSource, WarningMessageLevel, |
| String("<link rel=preload> has an unsupported `type` value"))); |
| return nullptr; |
| } |
| ResourceRequest resourceRequest(document.completeURL(href)); |
| - ResourceFetcher::determineRequestContext(resourceRequest, resourceType, |
| - false); |
| + ResourceFetcher::determineRequestContext(resourceRequest, |
| + resourceType.value(), false); |
| if (referrerPolicy != ReferrerPolicyDefault) { |
| resourceRequest.setHTTPReferrer(SecurityPolicy::generateReferrer( |
| @@ -339,7 +339,7 @@ static Resource* preloadIfNeeded(const LinkRelAttribute& relAttribute, |
| } |
| linkRequest.setForPreload(true, monotonicallyIncreasingTime()); |
| linkRequest.setLinkPreload(true); |
| - return document.loader()->startPreload(resourceType, linkRequest); |
| + return document.loader()->startPreload(resourceType.value(), linkRequest); |
| } |
| static Resource* prefetchIfNeeded(Document& document, |