Title: [150977] trunk/Source/WebCore
Revision
150977
Author
[email protected]
Date
2013-05-30 13:50:03 -0700 (Thu, 30 May 2013)

Log Message

REGRESSION (r119759): Adobe Flash Player "smaller" installer relies on the incorrect firing of a load event and needs an app-specific hack for compatibility
https://bugs.webkit.org/show_bug.cgi?id=117042
<rdar://problem/13916291>

Reviewed by Mark Rowe.

Ignore HTTP errors for scripts requested from within the installer. Instead of just checking for the
Adobe Flash installer, we use the "com.solidstatenetworks.awkhost" bundle identifier to determine
whether to apply the workaround. This could in theory fix other installers that use the same mechanism.

* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::shouldIgnoreHTTPStatusCodeErrors):
* loader/cache/CachedScript.h:
* platform/RuntimeApplicationChecks.cpp:
(WebCore::applicationIsSolidStateNetworksDownloader):
* platform/RuntimeApplicationChecks.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (150976 => 150977)


--- trunk/Source/WebCore/ChangeLog	2013-05-30 20:39:15 UTC (rev 150976)
+++ trunk/Source/WebCore/ChangeLog	2013-05-30 20:50:03 UTC (rev 150977)
@@ -1,3 +1,22 @@
+2013-05-30  Anders Carlsson  <[email protected]>
+
+        REGRESSION (r119759): Adobe Flash Player "smaller" installer relies on the incorrect firing of a load event and needs an app-specific hack for compatibility
+        https://bugs.webkit.org/show_bug.cgi?id=117042
+        <rdar://problem/13916291>
+
+        Reviewed by Mark Rowe.
+
+        Ignore HTTP errors for scripts requested from within the installer. Instead of just checking for the
+        Adobe Flash installer, we use the "com.solidstatenetworks.awkhost" bundle identifier to determine
+        whether to apply the workaround. This could in theory fix other installers that use the same mechanism.
+
+        * loader/cache/CachedScript.cpp:
+        (WebCore::CachedScript::shouldIgnoreHTTPStatusCodeErrors):
+        * loader/cache/CachedScript.h:
+        * platform/RuntimeApplicationChecks.cpp:
+        (WebCore::applicationIsSolidStateNetworksDownloader):
+        * platform/RuntimeApplicationChecks.h:
+
 2013-05-30  Sergio Villar Senin  <[email protected]>
 
         Allow no space between "background-position:" dimensions

Modified: trunk/Source/WebCore/loader/cache/CachedScript.cpp (150976 => 150977)


--- trunk/Source/WebCore/loader/cache/CachedScript.cpp	2013-05-30 20:39:15 UTC (rev 150976)
+++ trunk/Source/WebCore/loader/cache/CachedScript.cpp	2013-05-30 20:50:03 UTC (rev 150977)
@@ -33,6 +33,7 @@
 #include "MIMETypeRegistry.h"
 #include "MemoryCache.h"
 #include "ResourceBuffer.h"
+#include "RuntimeApplicationChecks.h"
 #include "TextResourceDecoder.h"
 #include <wtf/Vector.h>
 
@@ -107,4 +108,18 @@
 }
 #endif
 
+bool CachedScript::shouldIgnoreHTTPStatusCodeErrors() const
+{
+    // This is a workaround for <rdar://problem/13916291>
+    // REGRESSION (r119759): Adobe Flash Player "smaller" installer relies on the incorrect firing
+    // of a load event and needs an app-specific hack for compatibility.
+    // The installer in question tries to load .js file that doesn't exist, causing the server to
+    // return a 404 response. Normally, this would trigger an error event to be dispatched, but the
+    // installer expects a load event instead so we work around it here.
+    if (applicationIsSolidStateNetworksDownloader())
+        return true;
+
+    return CachedResource::shouldIgnoreHTTPStatusCodeErrors();
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/loader/cache/CachedScript.h (150976 => 150977)


--- trunk/Source/WebCore/loader/cache/CachedScript.h	2013-05-30 20:39:15 UTC (rev 150976)
+++ trunk/Source/WebCore/loader/cache/CachedScript.h	2013-05-30 20:50:03 UTC (rev 150977)
@@ -54,6 +54,8 @@
         virtual PurgePriority purgePriority() const { return PurgeLast; }
         virtual bool mayTryReplaceEncodedData() const OVERRIDE { return true; }
 
+        virtual bool shouldIgnoreHTTPStatusCodeErrors() const OVERRIDE;
+
         String m_script;
         RefPtr<TextResourceDecoder> m_decoder;
     };

Modified: trunk/Source/WebCore/platform/RuntimeApplicationChecks.cpp (150976 => 150977)


--- trunk/Source/WebCore/platform/RuntimeApplicationChecks.cpp	2013-05-30 20:39:15 UTC (rev 150976)
+++ trunk/Source/WebCore/platform/RuntimeApplicationChecks.cpp	2013-05-30 20:50:03 UTC (rev 150977)
@@ -108,4 +108,10 @@
     return isVersions;
 }
 
+bool applicationIsSolidStateNetworksDownloader()
+{
+    static bool isSolidStateNetworksDownloader = mainBundleIsEqualTo("com.solidstatenetworks.awkhost");
+    return isSolidStateNetworksDownloader;
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/RuntimeApplicationChecks.h (150976 => 150977)


--- trunk/Source/WebCore/platform/RuntimeApplicationChecks.h	2013-05-30 20:39:15 UTC (rev 150976)
+++ trunk/Source/WebCore/platform/RuntimeApplicationChecks.h	2013-05-30 20:50:03 UTC (rev 150977)
@@ -36,6 +36,7 @@
 bool applicationIsMicrosoftMyDay();
 bool applicationIsMicrosoftOutlook();
 bool applicationIsSafari();
+bool applicationIsSolidStateNetworksDownloader();
 bool applicationIsVersions();
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to