Bug 35112 - [Qt] Windowed netscape plugins don't work with QGraphicsWebView on Symbian
Summary: [Qt] Windowed netscape plugins don't work with QGraphicsWebView on Symbian
Status: CLOSED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Plug-ins (show other bugs)
Version: 528+ (Nightly build)
Hardware: S60 Hardware S60 3rd edition
: P2 Critical
Assignee: Yael
URL:
Keywords: Qt
Depends on:
Blocks: 35784 35962
  Show dependency treegraph
 
Reported: 2010-02-18 10:37 PST by nokiabugz
Modified: 2010-04-07 00:47 PDT (History)
5 users (show)

See Also:


Attachments
Patch (4.58 KB, patch)
2010-03-22 06:25 PDT, Yael
no flags Details | Formatted Diff | Diff
Patch . (69.69 KB, patch)
2010-03-22 12:44 PDT, Yael
no flags Details | Formatted Diff | Diff
Patch v2 (5.66 KB, patch)
2010-03-24 17:54 PDT, Yael
no flags Details | Formatted Diff | Diff
Patch (5.63 KB, patch)
2010-03-24 18:01 PDT, Yael
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description nokiabugz 2010-02-18 10:37:18 PST
STEPS TO REPRODUCE:
1. Load the sample plugin in a QGraphicsWebView
2. Observe the poor rendering
Comment 1 Laszlo Gombos 2010-03-02 07:43:34 PST
Is this bug really only for Symbian ?
Comment 2 Yael 2010-03-02 07:49:29 PST
(In reply to comment #1)
> Is this bug really only for Symbian ?

That would make sense. At the time that we implemented Netscape Plugins for Symbian, QGraphicsWebView was under development and there was no API for getting the plugin's parent. I have left a FIXME in PluginViewSymbian.cpp about that.
Comment 3 Tor Arne Vestbø 2010-03-05 09:11:42 PST
Please follow the QtWebKit bug reporting guidelines when reporting bugs.

See http://trac.webkit.org/wiki/QtWebKitBugs

Specifically:

  - The 'QtWebKit' component should be used for bugs/features in the QtWebKit API layer, not to signify that the bug is specific to the Qt port of WebKit

    http://trac.webkit.org/wiki/QtWebKitBugs#Component

  - Priority is set by developers when scheduling and triaging tasks, please leave this at the default priority.

    http://trac.webkit.org/wiki/QtWebKitBugs#Priority

  - Choose a descriptive summary/title for the bug and prefix the summary with "[Qt]" if the bug only applies to the Qt-port.

    https://trac.webkit.org/wiki/QtWebKitBugs#Summary
Comment 4 Simon Hausmann 2010-03-17 15:16:02 PDT
Yael, can you verify that this bug still exists?

We don't have the plugin available for testing.
Comment 5 Yael 2010-03-17 16:12:04 PDT
(In reply to comment #4)
> Yael, can you verify that this bug still exists?
> 
> We don't have the plugin available for testing.

Yes, this is still a problem. Abhinav is working on a fix for it.
Comment 6 Yael 2010-03-19 05:18:20 PDT
Agreed with Abhinav that I will fix this.
Comment 7 Yael 2010-03-22 06:25:48 PDT
Created attachment 51280 [details]
Patch 

Add a proxy widget when loading a windowed plugin in a QGraphicsWebView.
Comment 8 Laszlo Gombos 2010-03-22 10:32:47 PDT
Comment on attachment 51280 [details]
Patch 

> Index: WebCore/plugins/symbian/PluginContainerSymbian.cpp
> ===================================================================
> --- WebCore/plugins/symbian/PluginContainerSymbian.cpp	(revision 56331)
> +++ WebCore/plugins/symbian/PluginContainerSymbian.cpp	(working copy)
> @@ -32,12 +32,14 @@
>  
>  using namespace WebCore;
>  
> -PluginContainerSymbian::PluginContainerSymbian(PluginView* view, QWidget* parent)
> +PluginContainerSymbian::PluginContainerSymbian(PluginView* view, QWidget* parent, QGraphicsProxyWidget* proxy)
>      : m_parent(parent)
>      , m_pluginView(view)
> +    , m_proxy(proxy)
>      , m_hasPendingGeometryChange(false)
>  {
> -    setParent(m_parent);
> +    if (!proxy)
> +        setParent(m_parent);
>  }

m_proxy does not need to be a member of PluginContainerSymbian; same with m_parent (in already landed code).

Calling setParent() in platformStart() would eliminate the need to pass in both the parent and the proxy to the PluginContainerSymbian constructor and in would - my view - make the code more readable.
Comment 9 Yael 2010-03-22 12:44:58 PDT
Created attachment 51335 [details]
Patch .

Updated the tests from the previous patch 

This patch adds support, test results and enables the PROGRESS_TAG flag on the Mac port of Safari.
Comment 10 Yael 2010-03-22 12:46:56 PDT
Sorry, Attachment added to the wrong browser window :-(
Comment 11 Yael 2010-03-24 17:54:09 PDT
Created attachment 51569 [details]
Patch v2

Wrap a proxy widget around PluginSymbianContainer.
Some minor changes in using QPageClient API, due to the changes that were introduced in QPageClient after Symbian plugins implementation was done.
Comment 12 Yael 2010-03-24 18:01:55 PDT
Created attachment 51571 [details]
Patch

Removed \n that crept into the files.
Comment 13 Laszlo Gombos 2010-03-25 07:44:15 PDT
Comment on attachment 51571 [details]
Patch

All previous comments addressed; looks good to me.
r+. Thanks.
Comment 14 WebKit Commit Bot 2010-03-25 08:06:20 PDT
Comment on attachment 51571 [details]
Patch

Clearing flags on attachment: 51571

Committed r56546: <http://trac.webkit.org/changeset/56546>
Comment 15 WebKit Commit Bot 2010-03-25 08:06:26 PDT
All reviewed patches have been landed.  Closing bug.
Comment 16 Simon Hausmann 2010-03-29 06:52:53 PDT
Cherry-picked into qtwebkit-4.6 with commit e9151b11e974f0aa47fd40c225f88f35ced91496
Comment 17 Simon Hausmann 2010-04-07 00:46:51 PDT
Revision r56546 cherry-picked into qtwebkit-2.0 with commit 7d6d3dfe8a5828a30f5903b523d3c30a0449b915