<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>36902</bug_id>
          
          <creation_ts>2010-03-31 14:20:08 -0700</creation_ts>
          <short_desc>[Qt] Patch to allow java applet support through QWebPluginFactory...</short_desc>
          <delta_ts>2010-04-07 07:19:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>33044</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dawit A.">adawit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>laszlo.gombos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>206715</commentid>
    <comment_count>0</comment_count>
      <attachid>52210</attachid>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-03-31 14:20:08 -0700</bug_when>
    <thetext>Created attachment 52210
Java applet support through QWebPluginFactory::create I

Currently java applet support is not implemented in QtWebKit. Additionally the request to create a JavaApplet widget simply calls notImplemented() and returns a NULL. See the &quot;createJavaAppletWidget&quot; function under WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp. Unfortunately, this makes it impossible for client level applications to provide their own Java applet support by re-implementing QWebPluginFactory like they can for other plugins such as flash. The attached patch attempts to address this issue by simply making it possible for client applications to handle java applets through QWebPluginFactory::create(...) function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208308</commentid>
    <comment_count>1</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-04-03 14:47:05 -0700</bug_when>
    <thetext>Though this bug report is about for letting client applications handle java applet support if they so choose, bug #33044 is its cousin report ; so it is linked to here for reference...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209624</commentid>
    <comment_count>2</comment_count>
      <attachid>52210</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-07 07:06:56 -0700</bug_when>
    <thetext>Comment on attachment 52210
Java applet support through QWebPluginFactory::create I

&gt; diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
&gt; index 3a4b096..f811546 100644
&gt; --- a/WebKit/qt/ChangeLog
&gt; +++ b/WebKit/qt/ChangeLog
&gt; @@ -1,3 +1,14 @@
&gt; +2010-03-31  Dawit Alemayehu  &lt;adawit@kde.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Allow java applet support to be implemented through
&gt; +        QWebPluginFactory.

Please include a link to the bugzilla entry in the ChangeLog entry :)

&gt; +        * WebCoreSupport/FrameLoaderClientQt.cpp:
&gt; +        (WebCore::FrameLoaderClientQt::createPlugin):
&gt; +        (WebCore::FrameLoaderClientQt::createJavaAppletWidget):
&gt; +
&gt;  2010-03-26  Kenneth Rohde Christiansen  &lt;kenneth@webkit.org&gt;
&gt;  
&gt;          Reviewed by Antti Koivisto.
&gt; diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; index c5c5739..b0ff002 100644
&gt; --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; @@ -1340,9 +1340,11 @@ PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createPlugin(const IntSize&amp; pluginSize,
&gt;              }
&gt;          }
&gt;  
&gt; -        RefPtr&lt;PluginView&gt; pluginView = PluginView::create(m_frame, pluginSize, element, url,
&gt; -            params, values, mimeType, loadManually);
&gt; -        return pluginView;
&gt; +        if (mimeType != &quot;application/x-java-applet&quot;) {
&gt; +            RefPtr&lt;PluginView&gt; pluginView = PluginView::create(m_frame, pluginSize, element, url, params, values, mimeType, loadManually);        
&gt; +            if (pluginView-&gt;status() == PluginStatusLoadedSuccessfully)
&gt; +                return pluginView;
&gt; +        }

This part looks incorrect to me. Why are you avoiding the calls to PluginView::create?

I thought especially on platforms where the Java support comes through an NPAPI plugin - see Bug #33044 - AFAICS that call is needed.

&gt;      return 0;
&gt; @@ -1355,11 +1357,10 @@ void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget)
&gt;      m_hasSentResponseToPlugin = false;
&gt;  }
&gt;  
&gt; -PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createJavaAppletWidget(const IntSize&amp;, HTMLAppletElement*, const KURL&amp;,
&gt; -                                                    const Vector&lt;String&gt;&amp;, const Vector&lt;String&gt;&amp;)
&gt; +PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createJavaAppletWidget(const IntSize&amp; pluginSize, HTMLAppletElement* element, const KURL&amp; baseURL,
&gt; +                                                    const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues)
&gt;  {
&gt; -    notImplemented();
&gt; -    return 0;
&gt; +    return FrameLoaderClientQt::createPlugin(pluginSize, element, baseURL, paramNames, paramValues, &quot;application/x-java-applet&quot;, false);
&gt;  }

I&apos;m fine with this part of the patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209629</commentid>
    <comment_count>3</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2010-04-07 07:19:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 52210 [details])
&gt; &gt; diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
&gt; &gt; index 3a4b096..f811546 100644
&gt; &gt; --- a/WebKit/qt/ChangeLog
&gt; &gt; +++ b/WebKit/qt/ChangeLog
&gt; &gt; @@ -1,3 +1,14 @@
&gt; &gt; +2010-03-31  Dawit Alemayehu  &lt;adawit@kde.org&gt;
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Allow java applet support to be implemented through
&gt; &gt; +        QWebPluginFactory.
&gt; 
&gt; Please include a link to the bugzilla entry in the ChangeLog entry :)

Oops, forgot that!

&gt; &gt; +        * WebCoreSupport/FrameLoaderClientQt.cpp:
&gt; &gt; +        (WebCore::FrameLoaderClientQt::createPlugin):
&gt; &gt; +        (WebCore::FrameLoaderClientQt::createJavaAppletWidget):
&gt; &gt; +
&gt; &gt;  2010-03-26  Kenneth Rohde Christiansen  &lt;kenneth@webkit.org&gt;
&gt; &gt;  
&gt; &gt;          Reviewed by Antti Koivisto.
&gt; &gt; diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; &gt; index c5c5739..b0ff002 100644
&gt; &gt; --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; &gt; +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; &gt; @@ -1340,9 +1340,11 @@ PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createPlugin(const IntSize&amp; pluginSize,
&gt; &gt;              }
&gt; &gt;          }
&gt; &gt;  
&gt; &gt; -        RefPtr&lt;PluginView&gt; pluginView = PluginView::create(m_frame, pluginSize, element, url,
&gt; &gt; -            params, values, mimeType, loadManually);
&gt; &gt; -        return pluginView;
&gt; &gt; +        if (mimeType != &quot;application/x-java-applet&quot;) {
&gt; &gt; +            RefPtr&lt;PluginView&gt; pluginView = PluginView::create(m_frame, pluginSize, element, url, params, values, mimeType, loadManually);        
&gt; &gt; +            if (pluginView-&gt;status() == PluginStatusLoadedSuccessfully)
&gt; &gt; +                return pluginView;
&gt; &gt; +        }
&gt; 
&gt; This part looks incorrect to me. Why are you avoiding the calls to
&gt; PluginView::create?
&gt; 
&gt; I thought especially on platforms where the Java support comes through an 
&gt; NPAPI plugin - see Bug #33044 - AFAICS that call is needed.

That was because without applying the patch specified in #33044, actually the patch it depends on #3, that call will result in a SEGFAULT. To be honest there is really no need for this bug report as 33044 already exists and can be used to track Java applet support better...
 
&gt; &gt;      return 0;
&gt; &gt; @@ -1355,11 +1357,10 @@ void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget)
&gt; &gt;      m_hasSentResponseToPlugin = false;
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; -PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createJavaAppletWidget(const IntSize&amp;, HTMLAppletElement*, const KURL&amp;,
&gt; &gt; -                                                    const Vector&lt;String&gt;&amp;, const Vector&lt;String&gt;&amp;)
&gt; &gt; +PassRefPtr&lt;Widget&gt; FrameLoaderClientQt::createJavaAppletWidget(const IntSize&amp; pluginSize, HTMLAppletElement* element, const KURL&amp; baseURL,
&gt; &gt; +                                                    const Vector&lt;String&gt;&amp; paramNames, const Vector&lt;String&gt;&amp; paramValues)
&gt; &gt;  {
&gt; &gt; -    notImplemented();
&gt; &gt; -    return 0;
&gt; &gt; +    return FrameLoaderClientQt::createPlugin(pluginSize, element, baseURL, paramNames, paramValues, &quot;application/x-java-applet&quot;, false);
&gt; &gt;  }
&gt; 
&gt; I&apos;m fine with this part of the patch :)

*** This bug has been marked as a duplicate of bug 33044 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52210</attachid>
            <date>2010-03-31 14:20:08 -0700</date>
            <delta_ts>2010-04-07 07:06:56 -0700</delta_ts>
            <desc>Java applet support through QWebPluginFactory::create I</desc>
            <filename>qtwebkit_defer_java_applet_support_to_qwebpluginfactory_1.patch</filename>
            <type>text/plain</type>
            <size>2367</size>
            <attacher name="Dawit A.">adawit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDNhNGIwOTYuLmY4MTE1NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTAzLTMxICBEYXdp
dCBBbGVtYXllaHUgIDxhZGF3aXRAa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBqYXZhIGFwcGxldCBzdXBwb3J0IHRvIGJlIGlt
cGxlbWVudGVkIHRocm91Z2gKKyAgICAgICAgUVdlYlBsdWdpbkZhY3RvcnkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KToKKwogMjAxMC0w
My0yNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggYzVjNTczOS4uYjBmZjAw
MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcApAQCAtMTM0MCw5ICsxMzQwLDExIEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRl
ckNsaWVudFF0OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBwbHVnaW5W
aWV3ID0gUGx1Z2luVmlldzo6Y3JlYXRlKG1fZnJhbWUsIHBsdWdpblNpemUsIGVsZW1lbnQsIHVy
bCwKLSAgICAgICAgICAgIHBhcmFtcywgdmFsdWVzLCBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsK
LSAgICAgICAgcmV0dXJuIHBsdWdpblZpZXc7CisgICAgICAgIGlmIChtaW1lVHlwZSAhPSAiYXBw
bGljYXRpb24veC1qYXZhLWFwcGxldCIpIHsKKyAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5WaWV3
PiBwbHVnaW5WaWV3ID0gUGx1Z2luVmlldzo6Y3JlYXRlKG1fZnJhbWUsIHBsdWdpblNpemUsIGVs
ZW1lbnQsIHVybCwgcGFyYW1zLCB2YWx1ZXMsIG1pbWVUeXBlLCBsb2FkTWFudWFsbHkpOyAgICAg
ICAgCisgICAgICAgICAgICBpZiAocGx1Z2luVmlldy0+c3RhdHVzKCkgPT0gUGx1Z2luU3RhdHVz
TG9hZGVkU3VjY2Vzc2Z1bGx5KQorICAgICAgICAgICAgICAgIHJldHVybiBwbHVnaW5WaWV3Owor
ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0xMzU1LDExICsxMzU3LDEwIEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBw
bHVnaW5XaWRnZXQpCiAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNlOwogfQog
Ci1QYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlSmF2YUFwcGxl
dFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBLVVJMJiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKK1Bhc3NSZWZQdHI8V2lk
Z2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IElu
dFNpemUmIHBsdWdpblNpemUsIEhUTUxBcHBsZXRFbGVtZW50KiBlbGVtZW50LCBjb25zdCBLVVJM
JiBiYXNlVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gRnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlUGx1Z2luKHBsdWdpblNp
emUsIGVsZW1lbnQsIGJhc2VVUkwsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCAiYXBwbGljYXRp
b24veC1qYXZhLWFwcGxldCIsIGZhbHNlKTsKIH0KIAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6Om92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QK
</data>
<flag name="review"
          id="35626"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>