Bug 52954
Summary: | [Qt] resizing NPAPI plugins | ||
---|---|---|---|
Product: | WebKit | Reporter: | Robert Hogan <robert> |
Component: | WebKit Qt | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | allan.jensen, andersca, bdecherf, cmarcelo, kenneth, kling, vestbo |
Priority: | P2 | Keywords: | Qt, QtTriaged |
Version: | 528+ (Nightly build) | ||
Hardware: | PC | ||
OS: | Linux |
Robert Hogan
PluginViewQt never changes the values of m_npWindow.width and m_npWindow.height after the first call to NP_SetWindow because repeated calls to NP_SetWindow with new height/width values tend to crash flash (Flash 9.1) or disappear the plugin altogether (Flash 10.1).
The result is that NPAPI plugins don't resize in QtWebKit.
Playing with it I've found that Flash will resize properly if PluginViewQt rations calls to NP_SetWindow when both width/height or both clipRect.width/height co-ordinates change. This won't work well in practice because it depends on receiving an even number of resize events or both for co-ordinates to change in the same resize event.
The only hack I can think of for getting it to work is to queue resize events until they've all arrived and send them at once. That's very messy though. Should we just leave it until flash fixes itself?
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Allan Sandfeld Jensen
So we can resize but only if both width and height changes? Or does window rect and clip rect both need to change?
Anyway, I don't see these crashes anymore, but disabling the quirk instead ends up grabbing the mouse cursor and messing up the window manager.