Canvas.drawWindow no longer captures windowed Flash plugins in Firefox 4

RESOLVED WONTFIX

Status

()

defect
--
major
RESOLVED WONTFIX
8 years ago
7 years ago

People

(Reporter: bookbaghead, Unassigned)

Tracking

2.0 Branch
x86
Windows XP
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

8 years ago
User-Agent:       Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
Build Identifier: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0

Canvas.drawWindow no longer captures Flash video in Firefox 4.  It worked in Firefox 3.  It does still capture regular Flash though.  For example, drawWindow no longer captures the video player on YouTube.  I wrote an add-on whose primary purpose is to capture screenshots from a website that uses Flash video.  Now this add-on no longer captures that video (it still captures anything else on the page).

Reproducible: Always

Steps to Reproduce:
1. Go to a website with Flash video
2. Attempt to use Canvas.drawWindow to capture anything from the video
3. Display that capture somehow
Actual Results:  
You get all white (or maybe whatever the background color is).

Expected Results:  
I expect to get a screenshot of the video.
Component: Developer Tools → Plug-ins
Product: Firefox → Core
QA Contact: developer.tools → plugins
Version: unspecified → 2.0 Branch
Is this a matter of drawWindow seeing windowless Flash but not windowed?
It's probably that we removed the PrintWindow code path because it busted OOP plugins. That was removed in bug 605928.
So basically, the only way we know of to try to grab the contents of a windowed Flash object broke badly with OOPP, so we removed it.
(Reporter)

Comment 4

8 years ago
Is there no way of rectifying this?  It seems silly that I'd have to use an outside process to query Firefox windows.  Surely,  if I could do it with an outside process, Firefox could do it itself.
What outside process are you using?
(Reporter)

Comment 6

8 years ago
I'm not using one yet, but if there's no fix for this, I'd have to.  If the implication is that an outside process couldn't do it, my print screen button begs to differ.
I assume "print screen" simply grabs a copy of what's on the screen. That doesn't work if the browser window is covered by another window, so we can't use it for drawWindow.
(Reporter)

Comment 8

8 years ago
You are correct in that.  It looks like one work-around is to use the wmode attribute of Flash.  Setting it to opaque or transparent allows drawWindow to capture it.  I don't think the property can be changed after the SWF is loaded (but I could be wrong).  I just programmed my extension to use ProgressListeners to modify any EMBED tags on the page and also listened for the DOMNodeInserted event on the document objects of any pages for dynamically added EMBED content.

Comment 9

7 years ago
Hi. I have encountered the same problem during my project. Is there a plan to actually fix this bug? thanks.
I don't think this is actually fixable. There is no reliable way to capture the contents of a windowed Flash plugin.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → WONTFIX
Summary: Canvas.drawWindow no longer captures Flash video in Firefox 4. It worked in Firefox 3. → Canvas.drawWindow no longer captures windowed Flash plugins in Firefox 4
You need to log in before you can comment on or make changes to this bug.