2009-05-04 Brady Eidson <beidson@apple.com>
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 May 2009 01:18:52 +0000 (01:18 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 May 2009 01:18:52 +0000 (01:18 +0000)
        Reviewed by Sam 'The Belly' Weinig

        <rdar://problem/6828894> - Facebook photo uploader applet broken on Leopard only

        In r41568 we started adding a default codebase attribute to <applet> tags if they didn't specify one
        themselves.  Leopard's Java plug-in mishandles this case and fails to load code for the applet.

        The spirit of r41568 can be maintained by removing the "default codebase" piece and only performing
        the canLoad() check if a codebase was actually set on the applet tag.

        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::createRenderer): Don't create a default codebase attribute.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createJavaAppletWidget): Only perform the canLoad() check if the codebase was set.

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

WebCore/ChangeLog
WebCore/html/HTMLAppletElement.cpp
WebCore/loader/FrameLoader.cpp

index 3978e56fdae961e8615fad8976d365250f9013eb..aed6672e32732f090c1d244af46c70e99bd41881 100644 (file)
@@ -1,3 +1,21 @@
+2009-05-04  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Sam 'The Belly' Weinig
+
+        <rdar://problem/6828894> - Facebook photo uploader applet broken on Leopard only
+
+        In r41568 we started adding a default codebase attribute to <applet> tags if they didn't specify one
+        themselves.  Leopard's Java plug-in mishandles this case and fails to load code for the applet.
+
+        The spirit of r41568 can be maintained by removing the "default codebase" piece and only performing
+        the canLoad() check if a codebase was actually set on the applet tag.
+
+        * html/HTMLAppletElement.cpp:
+        (WebCore::HTMLAppletElement::createRenderer): Don't create a default codebase attribute.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::createJavaAppletWidget): Only perform the canLoad() check if the codebase was set.
+
 2009-05-04  Adam Roben  <aroben@apple.com>
 
         Windows build fix
 2009-05-04  Adam Roben  <aroben@apple.com>
 
         Windows build fix
index 7be1ffd4243ec040d780dc656e8f900e2454223a..13dd91172771ff7f87f207967c8d741e31d96c0a 100644 (file)
@@ -120,8 +120,6 @@ RenderObject* HTMLAppletElement::createRenderer(RenderArena*, RenderStyle* style
         const AtomicString& codeBase = getAttribute(codebaseAttr);
         if (!codeBase.isNull())
             args.set("codeBase", codeBase);
         const AtomicString& codeBase = getAttribute(codebaseAttr);
         if (!codeBase.isNull())
             args.set("codeBase", codeBase);
-        else
-            args.set("codeBase", document()->baseURL().baseAsString());
 
         const AtomicString& name = getAttribute(document()->isHTMLDocument() ? nameAttr : idAttr);
         if (!name.isNull())
 
         const AtomicString& name = getAttribute(document()->isHTMLDocument() ? nameAttr : idAttr);
         if (!name.isNull())
index e030105089842d4b2d53235152ff588bb02e54ab..ca541d2c4b1110b57b54ec384a4c455933eca1d8 100644 (file)
@@ -5109,10 +5109,12 @@ Widget* FrameLoader::createJavaAppletWidget(const IntSize& size, HTMLAppletEleme
         paramValues.append(it->second);
     }
 
         paramValues.append(it->second);
     }
 
-    KURL codeBaseURL = completeURL(codeBaseURLString);
-    if (!canLoad(codeBaseURL, String(), element->document())) {
-        FrameLoader::reportLocalLoadFailed(m_frame, codeBaseURL.string());
-        return 0;
+    if (!codeBaseURLString.isEmpty()) {
+        KURL codeBaseURL = completeURL(codeBaseURLString);
+        if (!canLoad(codeBaseURL, String(), element->document())) {
+            FrameLoader::reportLocalLoadFailed(m_frame, codeBaseURL.string());
+            return 0;
+        }
     }
 
     if (baseURLString.isEmpty())
     }
 
     if (baseURLString.isEmpty())