2010-09-10 Dirk Pranke <dpranke@chromium.org>
authordpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Sep 2010 07:45:15 +0000 (07:45 +0000)
committerdpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Sep 2010 07:45:15 +0000 (07:45 +0000)
        Reviewed by Kent Tamura.

        roll out r66992 and r66997 - possibly introduced a perf slowdown in chromium tests
        https://bugs.webkit.org/show_bug.cgi?id=45524

        * fast/replaced/object-param-url-control-char.html:
        * fast/replaced/object-with-embed-url-param-expected.txt:
        * fast/replaced/object-with-embed-url-param.html:
2010-09-10  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Kent Tamura.

        roll out r66992 and r66997 - possibly introduced a perf slowdown in chromium tests
        https://bugs.webkit.org/show_bug.cgi?id=45524

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parametersForPlugin):
        (WebCore::HTMLObjectElement::updateWidget):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestFrame):
        * loader/SubframeLoader.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/replaced/object-param-url-control-char.html
LayoutTests/fast/replaced/object-with-embed-url-param-expected.txt
LayoutTests/fast/replaced/object-with-embed-url-param.html
WebCore/ChangeLog
WebCore/html/HTMLObjectElement.cpp
WebCore/loader/SubframeLoader.cpp
WebCore/loader/SubframeLoader.h

index 56d19de0bbd1c8bf3c40732f0375868b02ad069b..cc8704def990a49d80d1b9e9ddfc634546e90cbd 100644 (file)
@@ -1,3 +1,14 @@
+2010-09-10  Dirk Pranke  <dpranke@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        roll out r66992 and r66997 - possibly introduced a perf slowdown in chromium tests
+        https://bugs.webkit.org/show_bug.cgi?id=45524
+
+        * fast/replaced/object-param-url-control-char.html:
+        * fast/replaced/object-with-embed-url-param-expected.txt:
+        * fast/replaced/object-with-embed-url-param.html:
+
 2010-09-10  Ryosuke Niwa  <rniwa@webkit.org>
 
         Unreviewed.
index 9fb4b40bca379581b341ef110d4f82114205dc2c..95590f42d664ae01d8b41bf5d1f476ce566af167 100644 (file)
@@ -21,7 +21,7 @@
         </script>
     </head>
     <body>
-        <object width="0" height="0" type="application/x-webkit-test-netscape">
+        <object width="0" height="0">
             <param name="movie" value=" \1c  uRl('scheme://url-with-\ 5control-char/') \1e ">
         </object>
         <p>This test verifies that a URL specified in a &lt;param&gt; of an &lt;object&gt; is parsed the same as if it was specified as the data attribute of the &lt;object&gt;. Specifically, this verifies that control characters and leading/trailing whitespace are stripped, and that a resource surrounded with url('') is understood.</p>
index 5c011dced383ae59e4fb70c331207595ef765f59..d280a75402ef4d614265f7edc17ffdb59da42e94 100644 (file)
@@ -1,8 +1,7 @@
+   
 This test verifies that the right URL is loaded when there is an <object> with a 'src' <param> and a fallback <embed>.
 
 An <object> with a 'data' @attr and a 'src' <param> should load the URL from the 'data' @attr and does.
 An <object> with a 'src' <param> should load the URL from the 'src' <param> and does.
 An <object> with no URL specified and a nested <embed> should load the URL from the 'src' @attr of the <embed> and does.
-An <object> with a URL specified in a 'src' <param> and a nested <embed> should load the URL from the 'src' @attr of the <embed> and does.
-An <object> with a URL specified in a 'src' <param> and a MIME type specified in a 'type' <param> should load the URL from the 'src' <param> and does.
-      
+
index 96c1de824a8615393bf7ff5cd964e74e29e1d780..ec3427045e7b5e7d3a6a80f38f63c1634412a161 100644 (file)
@@ -9,11 +9,9 @@
             var object1Result = "";
             var object2Result = "";
             var embed3Result = "";
-            var embed4Result = "";
-            var object5Result = "";
-            var notified = false;
 
             document.addEventListener("beforeload", function(event) {
+
                 if (event.url == "")
                     return;
  
                     object2Result = (event.url == "object-param" ? "does" : "does not");
                 } else if (event.target.id == "embed3") {
                     embed3Result = (event.url == "embed-attr" ? "does" : "does not");
-                } else if (event.target.id == "embed4") {
-                    embed4Result = (event.url == "embed-attr" ? "does" : "does not");
-                } else if (event.target.id == "object5") {
-                    object5Result = (event.url == "object-param" ? "does" : "does not");
                 }
 
-                if (!notified && object1Result != "" && object2Result != "" && embed3Result != "" && embed4Result != "" && object5Result != "") {
+                if (object1Result != "" && object2Result != "" && embed3Result != "") {
                     debug("An &lt;object&gt; with a 'data' @attr and a 'src' &lt;param&gt; should load the URL from the 'data' @attr and " + object1Result + ".");
                     debug("An &lt;object&gt; with a 'src' &lt;param&gt; should load the URL from the 'src' &lt;param&gt; and " + object2Result + ".");
                     debug("An &lt;object&gt; with no URL specified and a nested &lt;embed&gt; should load the URL from the 'src' @attr of the &lt;embed&gt; and " + embed3Result + ".");
-                    debug("An &lt;object&gt; with a URL specified in a 'src' &lt;param&gt; and a nested &lt;embed&gt; should load the URL from the 'src' @attr of the &lt;embed&gt; and " + embed3Result + ".");
-                    debug("An &lt;object&gt; with a URL specified in a 'src' &lt;param&gt; and a MIME type specified in a 'type' &lt;param&gt; should load the URL from the 'src' &lt;param&gt; and " + object5Result + ".");
-                    notified = true;
                     if (window.layoutTestController)
                         layoutTestController.notifyDone();
                 }
         </script>
     </head>
     <body>
-        <p>This test verifies that the right URL is loaded when there is an &lt;object&gt; with a 'src' &lt;param&gt; and a fallback &lt;embed&gt;.</p>
-        <div id="console"></div>
         <object id="object1" type="application/x-webkit-test-netscape" data="object-attr">
-            <param name="src" value="object-param"></param>
+            <param id="param1" name="src" value="object-param"></param>
             <embed id="embed1" type="application/x-webkit-test-netscape" src="embed-attr">
         </object>
         <object id="object2" type="application/x-webkit-test-netscape">
-            <param name="movie" value="object-param"></param>
+            <param id="param2" name="movie" value="object-param"></param>
             <embed id="embed2" type="application/x-webkit-test-netscape" src="embed-attr">
         </object>
         <object id="object3">
             <embed id="embed3" type="application/x-webkit-test-netscape" src="embed-attr">
         </object>
-        <object id="object4">
-            <param name="code" value="object-param"></param>
-            <embed id="embed4" type="application/x-webkit-test-netscape" src="embed-attr">
-        </object>
-        <object id="object5">
-            <param name="url" value="object-param"></param>
-            <param name="type" value="application/x-webkit-test-netscape"></param>
-        </object>
+        <p>This test verifies that the right URL is loaded when there is an &lt;object&gt; with a 'src' &lt;param&gt; and a fallback &lt;embed&gt;.</p>
+        <div id="console"></div>
     </body>
 </html>
index 194ff90816e6fbb9e6f0f5e0d0dd179d630c969c..730308a3928868fcf30676ab3fdfefebd96feef5 100644 (file)
@@ -1,3 +1,17 @@
+2010-09-10  Dirk Pranke  <dpranke@chromium.org>
+
+        Reviewed by Kent Tamura.
+
+        roll out r66992 and r66997 - possibly introduced a perf slowdown in chromium tests
+        https://bugs.webkit.org/show_bug.cgi?id=45524
+
+        * html/HTMLObjectElement.cpp:
+        (WebCore::HTMLObjectElement::parametersForPlugin):
+        (WebCore::HTMLObjectElement::updateWidget):
+        * loader/SubframeLoader.cpp:
+        (WebCore::SubframeLoader::requestFrame):
+        * loader/SubframeLoader.h:
+
 2010-09-10  Ryosuke Niwa  <rniwa@webkit.org>
 
         Reviewed by Tony Chang.
index e9c6f607c88e43d562313a475e51551aa2b21a7d..56a60955e9eb0112e76bc30bff7e5b84031b61b2 100644 (file)
@@ -163,7 +163,6 @@ static void mapDataParamToSrc(Vector<String>* paramNames, Vector<String>* paramV
 void HTMLObjectElement::parametersForPlugin(Vector<String>& paramNames, Vector<String>& paramValues, String& url, String& serviceType)
 {
     HashSet<StringImpl*, CaseFoldingHash> uniqueParamNames;
-    String urlParameter;
     
     // Scan the PARAM children and store their name/value pairs.
     // Get the URL and type from the params if we don't already have them.
@@ -181,8 +180,8 @@ void HTMLObjectElement::parametersForPlugin(Vector<String>& paramNames, Vector<S
         paramValues.append(p->value());
 
         // FIXME: url adjustment does not belong in this function.
-        if (url.isEmpty() && urlParameter.isEmpty() && (equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") || equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
-            urlParameter = deprecatedParseURL(p->value());
+        if (url.isEmpty() && (equalIgnoringCase(name, "src") || equalIgnoringCase(name, "movie") || equalIgnoringCase(name, "code") || equalIgnoringCase(name, "url")))
+            url = deprecatedParseURL(p->value());
         // FIXME: serviceType calculation does not belong in this function.
         if (serviceType.isEmpty() && equalIgnoringCase(name, "type")) {
             serviceType = p->value();
@@ -218,15 +217,9 @@ void HTMLObjectElement::parametersForPlugin(Vector<String>& paramNames, Vector<S
     
     mapDataParamToSrc(&paramNames, &paramValues);
     
-    // HTML5 says that an object resource's URL is specified by the object's data
-    // attribute, not by a param element. However, for compatibility, allow the
-    // resource's URL to be given by a param named "src", "movie", "code" or "url"
-    // if we know that resource points to a plug-in.
-    if (url.isEmpty() && !urlParameter.isEmpty()) {
-        SubframeLoader* loader = document()->frame()->loader()->subframeLoader();
-        if (loader->resourceWillUsePlugin(urlParameter, serviceType))
-            url = urlParameter;
-    }
+    // If we still don't have a type, try to map from a specific CLASSID to a type.
+    if (serviceType.isEmpty())
+        serviceType = serviceTypeForClassId(classId());
 }
 
     
@@ -257,12 +250,7 @@ void HTMLObjectElement::updateWidget(bool onlyCreateNonNetscapePlugins)
         return;
 
     String url = this->url();
-    
-    // If the object does not specify a MIME type via a type attribute, but does
-    // contain a classid attribute, try to map the classid to a MIME type.
     String serviceType = this->serviceType();
-    if (serviceType.isEmpty())
-        serviceType = serviceTypeForClassId(classId());
 
     // FIXME: These should be joined into a PluginParameters class.
     Vector<String> paramNames;
index d364e88f8b6838fe56ce20ddb2fb5fabc99c0a51..c25b37e71f71057dbcbdafabbb8822e2a78e2de7 100644 (file)
@@ -87,15 +87,6 @@ bool SubframeLoader::requestFrame(HTMLFrameOwnerElement* ownerElement, const Str
 
     return true;
 }
-    
-bool SubframeLoader::resourceWillUsePlugin(const String& url, const String& mimeType)
-{
-    KURL completedURL;
-    if (!url.isEmpty())
-        completedURL = completeURL(url);
-    bool useFallback;
-    return shouldUsePlugin(completedURL, mimeType, false, useFallback);
-}
 
 bool SubframeLoader::requestObject(HTMLPlugInImageElement* ownerElement, const String& url, const AtomicString& frameName,
     const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues)
index a5730454c3f2a0a96025211918394e879e2ac97d..6c3baf89810b7d9d672c2e7688920e415bee311e 100644 (file)
@@ -75,8 +75,6 @@ public:
     bool allowPlugins(ReasonForCallingAllowPlugins);
 
     bool containsPlugins() const { return m_containsPlugins; }
-    
-    bool resourceWillUsePlugin(const String& url, const String& mimeType);
 
 private:
     Frame* loadOrRedirectSubframe(HTMLFrameOwnerElement*, const KURL&, const AtomicString& frameName, bool lockHistory, bool lockBackForwardList);