Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(449)

Unified Diff: trunk/Source/platform/exported/WebURLRequest.cpp

Issue 422343003: Revert 179125 "Drop the 'WebURLRequest::TargetType' enum." (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | trunk/public/platform/WebURLRequest.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/Source/platform/exported/WebURLRequest.cpp
===================================================================
--- trunk/Source/platform/exported/WebURLRequest.cpp (revision 179161)
+++ trunk/Source/platform/exported/WebURLRequest.cpp (working copy)
@@ -356,4 +356,168 @@
m_private = p;
}
+WebURLRequest::RequestContext WebURLRequest::requestContextFromTargetType(WebURLRequest::TargetType targetType)
+{
+ switch (targetType) {
+ case TargetIsMainFrame:
+ return RequestContextHyperlink; // FIXME: Fetch defines the target separately from the cause. Need to work that out here.
+ case TargetIsSubframe:
+ return RequestContextIframe;
+ case TargetIsSubresource:
+ return RequestContextSubresource;
+ case TargetIsStyleSheet:
+ return RequestContextStyle;
+ case TargetIsScript:
+ return RequestContextScript;
+ case TargetIsFontResource:
+ return RequestContextFont;
+ case TargetIsImage:
+ return RequestContextImage;
+ case TargetIsObject:
+ return RequestContextObject;
+ case TargetIsMedia:
+ // FIXME: Split this out.
+ return RequestContextVideo;
+ case TargetIsWorker:
+ return RequestContextWorker;
+ case TargetIsSharedWorker:
+ return RequestContextSharedWorker;
+ case TargetIsPrefetch:
+ return RequestContextPrefetch;
+ case TargetIsFavicon:
+ return RequestContextFavicon;
+ case TargetIsXHR:
+ return RequestContextXMLHttpRequest;
+ case TargetIsTextTrack:
+ return RequestContextTrack;
+ case TargetIsPing:
+ return RequestContextPing;
+ case TargetIsServiceWorker:
+ return RequestContextServiceWorker;
+ case TargetIsUnspecified:
+ return RequestContextUnspecified;
+ }
+ ASSERT_NOT_REACHED();
+ return RequestContextUnspecified;
+}
+
+WebURLRequest::TargetType WebURLRequest::targetTypeFromRequestContextAndFrameType(WebURLRequest::RequestContext requestContext, WebURLRequest::FrameType frameType)
+{
+ if (frameType != FrameTypeNone) {
+ ASSERT(requestContext == RequestContextForm || requestContext == RequestContextFrame || requestContext == RequestContextHyperlink || requestContext == RequestContextIframe || requestContext == RequestContextInternal || requestContext == RequestContextLocation);
+ if (frameType == FrameTypeTopLevel || frameType == FrameTypeAuxiliary)
+ return TargetIsMainFrame;
+ if (frameType == FrameTypeNested)
+ return TargetIsSubframe;
+ ASSERT_NOT_REACHED();
+ return TargetIsUnspecified;
+ }
+
+ switch (requestContext) {
+ // Favicon
+ case RequestContextFavicon:
+ return TargetIsFavicon;
+
+ // Font
+ case RequestContextFont:
+ return TargetIsFontResource;
+
+ // Image
+ case RequestContextImage:
+ return TargetIsImage;
+
+ // Media
+ case RequestContextAudio:
+ case RequestContextVideo:
+ return TargetIsMedia;
+
+ // Object
+ case RequestContextEmbed:
+ case RequestContextObject:
+ return TargetIsObject;
+
+ // Ping
+ case RequestContextBeacon:
+ case RequestContextCSPReport:
+ case RequestContextPing:
+ return TargetIsPing;
+
+ // Prefetch
+ case RequestContextPrefetch:
+ return TargetIsPrefetch;
+
+ // Script
+ case RequestContextScript:
+ return TargetIsScript;
+
+ // Style
+ case RequestContextXSLT:
+ case RequestContextStyle:
+ return TargetIsStyleSheet;
+
+
+ // Subresource
+ case RequestContextDownload:
+ case RequestContextManifest:
+ case RequestContextSubresource:
+ case RequestContextPlugin:
+ return TargetIsSubresource;
+
+ // TextTrack
+ case RequestContextTrack:
+ return TargetIsTextTrack;
+
+ // Workers
+ case RequestContextServiceWorker:
+ return TargetIsServiceWorker;
+ case RequestContextSharedWorker:
+ return TargetIsSharedWorker;
+ case RequestContextWorker:
+ return TargetIsWorker;
+
+ // Unspecified
+ case RequestContextInternal:
+ case RequestContextUnspecified:
+ return TargetIsUnspecified;
+
+ // XHR
+ case RequestContextEventSource:
+ case RequestContextFetch:
+ case RequestContextXMLHttpRequest:
+ return TargetIsXHR;
+
+ // These should be handled by the FrameType checks at the top of the function.
+ // Main Frame
+ case RequestContextForm:
+ case RequestContextHyperlink:
+ case RequestContextLocation:
+ case RequestContextFrame:
+ case RequestContextIframe:
+ ASSERT_NOT_REACHED();
+ return TargetIsUnspecified;
+ }
+ ASSERT_NOT_REACHED();
+ return TargetIsUnspecified;
+}
+
+// FIXME: Drop these two methods once embedders are updated to use RequestContexts.
+WebURLRequest::TargetType WebURLRequest::targetType() const
+{
+ // FIXME: Temporary special case until downstream chromium.org knows of the new TargetTypes.
+ TargetType targetType = WebURLRequest::targetTypeFromRequestContextAndFrameType(requestContext(), frameType());
+ if (targetType == TargetIsTextTrack || targetType == TargetIsUnspecified)
+ return TargetIsSubresource;
+ return targetType;
+}
+
+void WebURLRequest::setTargetType(TargetType targetType)
+{
+ setRequestContext(WebURLRequest::requestContextFromTargetType(targetType));
+ if (targetType == TargetIsMainFrame)
+ setFrameType(FrameTypeTopLevel);
+ if (targetType == TargetIsSubframe)
+ setFrameType(FrameTypeNested);
+}
+
+
} // namespace blink
« no previous file with comments | « no previous file | trunk/public/platform/WebURLRequest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698