Title: [206902] trunk/Source/WebCore
Revision
206902
Author
commit-qu...@webkit.org
Date
2016-10-06 23:18:37 -0700 (Thu, 06 Oct 2016)

Log Message

CachedXSLStylesheet does not need to be updated according Origin/Fetch mode
https://bugs.webkit.org/show_bug.cgi?id=162389

Patch by Youenn Fablet <you...@apple.com> on 2016-10-06
Reviewed by Darin Adler.

No change of behavior.

Making clear that there is no reason to update cached XSLT resources according the origin, given that CORS is never checked and loading is always same-origin.

Renaming CachedResource::isClean to CachedResource::isCORSSameOrigin to better match spec terminology.
Updating HTMLLinkElement accordingly.

* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::initializeStyleSheet):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::isCORSSameOrigin): Ensuring that this method is not called for resource types for which CORS is not to be used.
(WebCore::CachedResource::isClean): Deleted.
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (206901 => 206902)


--- trunk/Source/WebCore/ChangeLog	2016-10-07 06:01:24 UTC (rev 206901)
+++ trunk/Source/WebCore/ChangeLog	2016-10-07 06:18:37 UTC (rev 206902)
@@ -1,5 +1,28 @@
 2016-10-06  Youenn Fablet  <you...@apple.com>
 
+        CachedXSLStylesheet does not need to be updated according Origin/Fetch mode
+        https://bugs.webkit.org/show_bug.cgi?id=162389
+
+        Reviewed by Darin Adler.
+
+        No change of behavior.
+
+        Making clear that there is no reason to update cached XSLT resources according the origin, given that CORS is never checked and loading is always same-origin.
+
+        Renaming CachedResource::isClean to CachedResource::isCORSSameOrigin to better match spec terminology.
+        Updating HTMLLinkElement accordingly.
+
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::initializeStyleSheet):
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::isCORSSameOrigin): Ensuring that this method is not called for resource types for which CORS is not to be used.
+        (WebCore::CachedResource::isClean): Deleted.
+        * loader/cache/CachedResource.h:
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
+
+2016-10-06  Youenn Fablet  <you...@apple.com>
+
         Add a place for common HTTP Header values
         https://bugs.webkit.org/show_bug.cgi?id=163002
 

Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (206901 => 206902)


--- trunk/Source/WebCore/html/HTMLLinkElement.cpp	2016-10-07 06:01:24 UTC (rev 206901)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp	2016-10-07 06:18:37 UTC (rev 206902)
@@ -341,7 +341,7 @@
     // FIXME: originClean should be turned to false except if fetch mode is CORS.
     Optional<bool> originClean;
     if (cachedStyleSheet.options().mode == FetchOptions::Mode::Cors)
-        originClean = cachedStyleSheet.isClean();
+        originClean = cachedStyleSheet.isCORSSameOrigin();
 
     m_sheet = CSSStyleSheet::create(WTFMove(styleSheet), *this, originClean);
     m_sheet->setMediaQueries(MediaQuerySet::createAllowingDescriptionSyntax(m_media));

Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (206901 => 206902)


--- trunk/Source/WebCore/loader/cache/CachedResource.cpp	2016-10-07 06:01:24 UTC (rev 206901)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp	2016-10-07 06:18:37 UTC (rev 206902)
@@ -442,8 +442,13 @@
     return m_responseTainting != ResourceResponse::Tainting::Basic;
 }
 
-bool CachedResource::isClean() const
+bool CachedResource::isCORSSameOrigin() const
 {
+    // Following resource types do not use CORS
+    ASSERT(type() != CachedResource::Type::FontResource);
+    ASSERT(type() != CachedResource::Type::SVGFontResource);
+    ASSERT(type() != CachedResource::XSLStyleSheet);
+
     // https://html.spec.whatwg.org/multipage/infrastructure.html#cors-same-origin
     return !loadFailedOrCanceled() && m_responseTainting != ResourceResponse::Tainting::Opaque;
 }

Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (206901 => 206902)


--- trunk/Source/WebCore/loader/cache/CachedResource.h	2016-10-07 06:01:24 UTC (rev 206901)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h	2016-10-07 06:18:37 UTC (rev 206902)
@@ -208,7 +208,7 @@
 
     void setCrossOrigin();
     bool isCrossOrigin() const;
-    bool isClean() const;
+    bool isCORSSameOrigin() const;
     ResourceResponse::Tainting responseTainting() const { return m_responseTainting; }
 
     void loadFrom(const CachedResource&);

Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (206901 => 206902)


--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp	2016-10-07 06:01:24 UTC (rev 206901)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp	2016-10-07 06:18:37 UTC (rev 206902)
@@ -549,6 +549,12 @@
         return false;
     }
 
+#if ENABLE(XSLT)
+    // Load is same-origin, we do not check for CORS.
+    if (resource.type() == CachedResource::XSLStyleSheet)
+        return false;
+#endif
+
     // FIXME: We should enable resource reuse for these resource types
     switch (resource.type()) {
     case CachedResource::SVGDocumentResource:
@@ -559,10 +565,6 @@
         return false;
     case CachedResource::MainResource:
         return false;
-#if ENABLE(XSLT)
-    case CachedResource::XSLStyleSheet:
-        return false;
-#endif
 #if ENABLE(LINK_PREFETCH)
     case CachedResource::LinkPrefetch:
         return false;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to