Closed Bug 1391414 Opened 7 years ago Closed 7 years ago

Firefox Windows - NPN_InvalidateRect calculates incorrect offsets when Async drawing is disabled when scale factor applied

Categories

(Core Graveyard :: Plug-ins, defect, P3)

51 Branch
defect

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: jeclark, Unassigned)

Details

Attachments

(2 files)

Note: 
FAIL: on Win 10 Firefox 64 bit (53.0/52.0/51.0) with FP 26.0.0.126/23.0.0.206 with Async disabled
PASS: on Win 10 Firefox 64 bit (53.0/52.0/51.0) with FP 26.0.0.126/23.0.0.206 with Async disabled
PASS: on Win10/Win 7 Firefox 64 bit with FP 26.0.0.126/23.0.0.206 with Async enabled
PASS: on Win 10/ Win 7 Firefox 32 bit with FP 26.0.0.126

Method:
1) Set DPI value more than 100%, say 125%
2) Turn off Async drawing in Firefox 64 bit and launch ATS using link http://ats.macromedia.com/Players/ATS/ATS10AS3/Shipping/ATS.html
3) Try and interact with the lists in the suite

Result: 
The list display and elements selection is garbled

Expected: 
The list interaction should be proper as with Firefox 32 bit and Firefox 64 bit with async enabled.

Workaround:
Turn on async drawing feature


Reproducible when following conditions all met: 

32 or 64bits NPAPI Plugin for Windows
Windowless mode
No Async-Drawing
NPNVcontetsScaleFactor != 1.0f

Issue:
NPN_InvalidateRect works differently from what player expects. (Mozilla needs to take a look)

Detail:
When player runs in windowless mode and non-Async-Drawing, it calls NPN_InvalidateRect with dirty rect parameter to inform FF to invalidate the region. 

The dirty rect is caculrated based on the NPNVcontentsScaleFactor that player gets from FF through NPN_GetValue.

For example, if NPNVcontentsScaleFactor is 2.0f and a dirty rect(right, top, left, bottom) in original content is (10, 10, 50, 50), it will pass (20, 20, 100, 100) as parameter.

10 * 2.0f = 20
50 * 2.0f = 100

Acutal result is that FF looks like to invalidate for the region, (40, 40, 100, 100) instead of (20, 20, 100, 100).

If player doesn't apply NPNVcontentsScaleFactor to "left" and "top", so that the rect parameter is (10, 10, 100, 100), FF looks update the region, (20, 20, 100, 100) which player expects FF to do.
Summary: Firefox Windows - NPN_InvalidateRect calculates incorrect offsets when Async drawing is disabled → Firefox Windows - NPN_InvalidateRect calculates incorrect offsets when Async drawing is disabled when scale factor applied
Component: General → Plug-ins
Product: Firefox → Core
Hey David, could you take a poke at this once you get back?
Flags: needinfo?(davidp99)
Priority: -- → P3
Hi Jeromie,

The link in comment 0 isn't working.  Is it an Adobe intranet link?  From other bugs, I get the impression it should be http://www.playercore.com/ATS/ATS10AS3/Shipping/ATS.html -- but this link just shows "Results (clear)" -- no lists. 

I also tried the attached swfs and they run but there are no lists there to interact with.  What are the attachments for?
Flags: needinfo?(jeclark)
Sorry about that.  In looking at our internal bug, I get the sense that someone updated the wrong bug there, and we have mismatched assets and instructions.  I've sent the bug back to our internal reporter for clarification.  Hopefully we'll get an update to you in the next day or so.
Just following up on the conversation that David and I had offline.  I'm not able to reproduce this with the additional information provided by our reporter.  Given that this only affects legacy behavior, and is not enabled by default, I don't feel like it makes sense for either organization to invest additional time here.  I do appreciate the quick response and time you took to investigate.  Thanks!
Flags: needinfo?(jeclark)
As per Jeromie's comment, we no longer think this report is valid so I'm closing it out.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(davidp99)
Resolution: --- → INVALID
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: