Title: [126670] branches/chromium/1229/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp
Revision
126670
Author
[email protected]
Date
2012-08-24 18:25:33 -0700 (Fri, 24 Aug 2012)

Log Message

Merge 125292
BUG=140656
Review URL: https://chromiumcodereview.appspot.com/10868093

Modified Paths

Diff

Modified: branches/chromium/1229/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp (126669 => 126670)


--- branches/chromium/1229/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp	2012-08-25 01:16:36 UTC (rev 126669)
+++ branches/chromium/1229/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp	2012-08-25 01:25:33 UTC (rev 126670)
@@ -59,10 +59,13 @@
 void CachedCSSStyleSheet::didAddClient(CachedResourceClient* c)
 {
     ASSERT(c->resourceClientType() == CachedStyleSheetClient::expectedType());
+    // CachedResource::didAddClient() must be before setCSSStyleSheet(),
+    // because setCSSStyleSheet() may cause scripts to be executed, which could destroy 'c' if it is an instance of HTMLLinkElement.
+    // see the comment of HTMLLinkElement::setCSSStyleSheet.
+    CachedResource::didAddClient(c);
+
     if (!isLoading())
         static_cast<CachedStyleSheetClient*>(c)->setCSSStyleSheet(m_resourceRequest.url(), m_response.url(), m_decoder->encoding().name(), this);
-
-    CachedResource::didAddClient(c);
 }
 
 void CachedCSSStyleSheet::setEncoding(const String& chs)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to