The default bug view has changed. See this FAQ.

nsIDOMCanvasRenderingContext2D.putImageData NS_ERROR_NOT_IMPLEMENTED in nightly with non-Azure canvas when using the addon SDK

RESOLVED FIXED in Firefox 16

Status

()

Core
Canvas: 2D
RESOLVED FIXED
5 years ago
4 years ago

People

(Reporter: Thomasy, Assigned: bz)

Tracking

({regression})

16 Branch
mozilla17
x86
Linux
regression
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(firefox15 unaffected, firefox16+ verified, firefox17+ verified)

Details

Attachments

(1 attachment)

(Reporter)

Description

5 years ago
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0
Build ID: 20120724053527

Steps to reproduce:

Using 
Nightly 17.0a1 (2012-07-24)
Install 
https://addons.mozilla.org/en-US/firefox/addon/nctutab/ 
Go to
http://portal.nctu.edu.tw/portal/login.php




Actual results:

error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/panel.js", line 290, in _onShow
    let textColor = win.getComputedStyle(node).getPropertyValue("color");
[Exception... "Operation is not supported"  code: "9" nsresult: "0x80530009 (NotSupportedError)"  location: "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/panel.js Line: 290"]
error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 195, in onReady
    self._createWorker(window);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 203, in _createWorker
    onError: this._onUncaughtError
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 403, in Worker
    this._contentWorker = WorkerSandbox(this);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 204, in WorkerSandbox
    this._importScripts(contentScriptFile);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 260, in _importScripts
    load(this._sandbox, String(uri));
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js", line 43, in load
    return scriptLoader.loadSubScript(uri, sandbox, 'UTF-8');
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 762, in null
    document.nctutab.init();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 19, in null
    this.inject_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 42, in null
    this.captcha_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 528, in null
    document.nctutab.runFilter('canvas', document.nctutab.threshold_with_bgremove, 75);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 618, in null
    ctx.putImageData(idata, 0, 0);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/data/content-proxy.js", line 100, in null
    let unwrapResult = Function.prototype.apply.apply(fun, [obj, args]);
[Exception... "Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.putImageData]"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/data/content-proxy.js :: <TOP_LEVEL> :: line 100"  data: no]



Expected results:

No Exception in 14.0.1
(Reporter)

Comment 1

5 years ago
Exception is at 


            var idata = document.nctutab.filterImage(filter, document.nctutab.img, arg1, arg2, arg3);
            c.width = idata.width;
            c.height = idata.height;
            var ctx = c.getContext('2d');
            ctx.putImageData(idata, 0, 0); // <-- this line
            c.style.display = 'inline';
(Reporter)

Comment 2

5 years ago
I try 


http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2012-07-02-mozilla-inbound-debug/firefox-16.0a1.en-US.debug-linux-i686.tar.bz2

will have the same exception

while 

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/15.0b2-candidates/build1/linux-i686/zh-TW/firefox-15.0b2.tar.bz2

is work
(Reporter)

Comment 3

5 years ago
The error message is


error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 198, in onReady
    self._createWorker(window);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 207, in _createWorker
    onError: this._onUncaughtError
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 428, in Worker
    this._contentWorker = WorkerSandbox(this);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 227, in WorkerSandbox
    this._importScripts(contentScriptFile);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 283, in _importScripts
    load(this._sandbox, String(uri));
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js", line 43, in load
    return scriptLoader.loadSubScript(uri, sandbox, 'UTF-8');
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 773, in null
    document.nctutab.init();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 19, in null
    this.inject_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 42, in null
    this.captcha_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 543, in null
    document.nctutab.runFilter('canvas', document.nctutab.threshold_with_bgremove, 75);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 630, in null
    ctx.putImageData(idata, 0, 0);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js", line 107, in null
    let unwrapResult = Function.prototype.apply.apply(fun, [obj, args]);
[Exception... "Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.putImageData]"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js :: <TOP_LEVEL> :: line 107"  data: no]
(Reporter)

Comment 4

5 years ago
And I also try addon SDK trunk version. It looks the same:


error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 198, in onReady
    self._createWorker(window);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 207, in _createWorker
    onError: this._onUncaughtError
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 428, in Worker
    this._contentWorker = WorkerSandbox(this);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 227, in WorkerSandbox
    this._importScripts(contentScriptFile);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 283, in _importScripts
    load(this._sandbox, String(uri));
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js", line 43, in load
    return scriptLoader.loadSubScript(uri, sandbox, 'UTF-8');
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 758, in null
    document.nctutab.init();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 19, in null
    this.inject_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 42, in null
    this.captcha_portal();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 528, in null
    document.nctutab.runFilter('canvas', document.nctutab.threshold_with_bgremove, 75);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 615, in null
    ctx.putImageData(idata, 0, 0);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js", line 111, in null
    let unwrapResult = Function.prototype.apply.apply(fun, [obj, args]);
[Exception... "Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.putImageData]"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/loader.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js :: <TOP_LEVEL> :: line 111"  data: no]
(Reporter)

Comment 5

5 years ago
Same in Win7 + Aurora 
16.0a2 (2012-07-20)


An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 198, in onReady
    self._createWorker(window);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/addon-kit/lib/page-mod.js", line 207, in _createWorker
    onError: this._onUncaughtError
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 428, in Worker
    this._contentWorker = WorkerSandbox(this);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/traits.js", line 110, in Trait
    return self.constructor.apply(self, arguments) || self._public;
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 227, in WorkerSandbox
    this._importScripts(contentScriptFile);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/worker.js", line 283, in _importScripts
    load(this._sandbox, String(uri));
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js", line 43, in load
    return scriptLoader.loadSubScript(uri, sandbox, 'UTF-8');
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 773, in null
    document.nctutab.init();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 21, in null
    this.inject_regist();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 49, in null
    this.captcha_regist();
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 579, in null
    document.nctutab.runFilter('canvas', document.nctutab.threshold, 35);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js", line 630, in null
    ctx.putImageData(idata, 0, 0);
  File "resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js", line 107, in null
    let unwrapResult = Function.prototype.apply.apply(fun, [obj, args]);
[Exception... "Component returned failure code: 0x80004001 (NS_ERROR_NOT_IMPLEMENTED) [nsIDOMCanvasRenderingContext2D.putImageData]"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js :: <TOP_LEVEL> :: line 107"  data: no]

Updated

5 years ago
Depends on: 773545
I tried installing the extension from comment 0 in a current trunk debug build and then loading http://portal.nctu.edu.tw/portal/login.php and I see no exceptions anywhere...

I also looked over the actual code in the extension, as it is now on AMO, and I don't see any obvious problems, which matches me not getting an exception.

How do I reproduce this bug?
(Reporter)

Comment 7

5 years ago
(In reply to Boris Zbarsky (:bz) from comment #6)
> I tried installing the extension from comment 0 in a current trunk debug
> build and then loading http://portal.nctu.edu.tw/portal/login.php and I see
> no exceptions anywhere...
> 
> I also looked over the actual code in the extension, as it is now on AMO,
> and I don't see any obvious problems, which matches me not getting an
> exception.
> 
> How do I reproduce this bug?

I use Win7 + firefox-17.0a1  ( 2012-07-28 ) 

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-17.0a1.en-US.win32.installer.exe

Can produce the bug.

Maybe you should open a new profile
I just tried the 2012-07-28 nightly with a clean profile and the steps from comment 0.  I don't see the exception.  I'm on Mac, though.  Is the extension OS-specific somehow?

Just to check, just loading the login page reproduces the problem?  And there is an exception visible in the JS console when the problem happens?
Ah, interesting.  I _can_ reproduce this if I turn off Azure canvas (which is always enabled on Mac by default).  Presumably your Windows machine doesn't have d2d available, so you're ending up with fallback to the old canvas code.

Looking into this now.
Status: UNCONFIRMED → NEW
tracking-firefox16: --- → ?
tracking-firefox17: --- → ?
Component: Untriaged → Canvas: 2D
No longer depends on: 773545
Ever confirmed: true
Keywords: regression
Product: Firefox → Core
Summary: nsIDOMCanvasRenderingContext2D.putImageData NS_ERROR_NOT_IMPLEMENTED in nightly → nsIDOMCanvasRenderingContext2D.putImageData NS_ERROR_NOT_IMPLEMENTED in nightly with non-Azure canvas
Version: 17 Branch → 16 Branch
We're landing in nsCanvasRenderingContext2D::PutImageData directly via NS_InvokeByIndex_P.

Which means that the quickstub is not being installed for some reason.
Blocks: 762654
This is completely bizarre.  I see us land in the JS_DefineFunction call for the proto in question under xpc_qsDefineQuickStubs, but then we end up calling XPC_WN_CallMethod for some reason....
So the actual JS at the callsite looks like this:

    let unwrapResult = Function.prototype.apply.apply(fun, [obj, args]);

and the JS stack looks like this:

0 anonymous(args = undefined, obj = undefined, unwrapResult = undefined, result = undefined, arguments = undefined) ["resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/content/content-proxy.js":107]
    args = undefined
    obj = undefined
    unwrapResult = undefined
    result = undefined
    arguments = undefined
    this = [object CanvasRenderingContext2D @ 0x11f7eb7f0 (native @ 0x12c9fdc88)]
1 <TOP LEVEL> ["<unknown>":0]
    <failed to get 'this' value>
2 anonymous() ["resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/cuddlefish.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/api-utils/lib/sandbox.js -> resource://jid1-kpgzz5f0jye5aa-at-jetpack/nctutab/data/nctutab.js":630]

I have no idea what frame 1 is, but frame 2 line 630 looks like this:

            ctx.putImageData(idata, 0, 0);

So I poked a bit at the outer js_fun_apply frame, which corresponds to the apply() call with "fun" as argument.  In that frame, argv[2] (which should be "fun") is a Function object.  And in fact it's a Function object for a JSNative, and that JSNative is XPC_WN_CallMethod.

I wonder who knows that it is the SDK is doing here exactly to end up with the non-quickstub function somehow...

I guess I can try to at least do some bisecting to see when this first appeared.  Maybe that will give us a clue.




  In that frame, argv[2] (the first argument to apply()) is a proxy around a CanvasRenderingContext2D.  I can't tell what sort of proxy, because it seems to just use a BaseProxyHandler or something?  Can that happen?
Er, ignore the last paragraph of comment 12.  That was meant to be deleted.
Summary: nsIDOMCanvasRenderingContext2D.putImageData NS_ERROR_NOT_IMPLEMENTED in nightly with non-Azure canvas → nsIDOMCanvasRenderingContext2D.putImageData NS_ERROR_NOT_IMPLEMENTED in nightly with non-Azure canvas when using the addon SDK
OK, on nightlies I think the regression range is http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=83369c1bb9af&tochange=6e828a4d1348

That's a week before bug 762654.
No longer blocks: 762654
hg bisect says:

The first bad revision is:
changeset:   97007:1f38152fc9f6
user:        Peter Van der Beken <peterv@propagandism.org>
date:        Mon Jun 04 21:41:51 2012 +0200
summary:     Fix for bug 762651 (Add wrappercache to CanvasRenderingContext2D). r=bz.

Peter, do you have any idea what's going on here?  ;)  Did the addition of a parent make us create some new proxy somewhere that manages to screw up getting the right native for putImageData?
Blocks: 762651
Is it possible that we weren't getting an Xray here before but are now and Xrays don't know anything about quickstubs?  That last, at least, seems plausible...
And if that's what's going on, is it easier to teach Xray about quickstubs or to simply special-case putImageData, since in most cases the non-quickstub XPConnect stuff _does_ work right?
Or I guess another option is to fix the XPCOM version of PutImageData to actually work....

Comment 19

5 years ago
(In reply to Boris Zbarsky (:bz) from comment #15)
> hg bisect says:
> 
> The first bad revision is:
> changeset:   97007:1f38152fc9f6
> user:        Peter Van der Beken <peterv@propagandism.org>
> date:        Mon Jun 04 21:41:51 2012 +0200
> summary:     Fix for bug 762651 (Add wrappercache to
> CanvasRenderingContext2D). r=bz.

Yes, that's why I linked this current bug to bug 773545, because they have the same 2 first regression ranges.
After reg #2, the 'long' error message disappears from the error console.

-- 1st regression:
m-c
good=2012-06-20
bad=2012-06-21
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=83369c1bb9af&tochange=6e828a4d1348

Suspected bug:
Peter Van der Beken — Fix for bug 762651 (Add wrappercache to CanvasRenderingContext2D). r=bz.

-- 2nd regression:
m-c
good=2012-06-30
bad=2012-07-01
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f08d285b63b0&tochange=d9d61d199b11

Suspected bug:
Peter Van der Beken — Fix for bug 762652 (Add the new DOM bindings API to CanvasRenderingContext2D). r=bz.

So after 2012-07-01, no error message. Same result with the latest Nightly.
Blocks: 762652
This bug really has nothing to do with bug 762652 or bug 773545...  I'm not sure why you're bothering with suspected bugs when we have a one-changeset regression complete with code-level analysis of what's going wrong, nor what your "second regression" is exactly.
No longer blocks: 762652
Blocks: 773545

Updated

5 years ago
status-firefox15: --- → unaffected
status-firefox16: --- → affected
status-firefox17: --- → affected
tracking-firefox16: ? → +
tracking-firefox17: ? → +
Created attachment 647394 [details] [diff] [review]
Make putImageData and createImageData on non-Azure canvas work with Xrays.
Attachment #647394 - Flags: review?(peterv)
Assignee: nobody → bzbarsky
Whiteboard: [need review]

Comment 22

5 years ago
(In reply to Boris Zbarsky (:bz) [In and out Aug 1 - 10, out Aug 11-20] from comment #20)
> nor what your "second regression" is exactly.
I mentionned this 2nd regression because the error message appeared only between nightlies from 2012-06-21 to 2012-06-30. Maybe after 2012-06-30, the underlying regression about PutImageData is still here even if the error is not displayed anymore in the error console. :)
Oh, I see.

What happened was that from 6/21 to 6/30 the problem appeared in all builds.  On 6/30, the new bindings landed for Azure canvas, so after that it only appeared in builds that were using non-Azure canvas.  You should be able to test that by disabling azure canvas in about:config (requires a restart, I think).
Comment on attachment 647394 [details] [diff] [review]
Make putImageData and createImageData on non-Azure canvas work with Xrays.

Review of attachment 647394 [details] [diff] [review]:
-----------------------------------------------------------------

Hopefully this all goes away soon (when the non-Azure canvas disappears and we can unpref the new binding).
Attachment #647394 - Flags: review?(peterv) → review+
Yes, once that happens we can nuke all this code, as well as all the canvas quickstub goop...  Thanks for the review!
https://hg.mozilla.org/integration/mozilla-inbound/rev/091d0ed7202d
Flags: in-testsuite+
Whiteboard: [need review]
Target Milestone: --- → mozilla17
Comment on attachment 647394 [details] [diff] [review]
Make putImageData and createImageData on non-Azure canvas work with Xrays.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): Bug 762651
User impact if declined: Some extension that touch non-chrome canvases will be
   broken.
Testing completed (on m-c, etc.): Passes manual test steps in this bug, automated
   tests.
Risk to taking this patch (and alternatives if risky): Risk is low: only code
   that touches non-Azure canvas via Xray wrappers is affected, and only the
   putImagedata and createImageData methods.  And without this patch, those
   always throw in this situation.  So the only real risk is that the patch
   introduces a security problem.
String or UUID changes made by this patch: None.
Attachment #647394 - Flags: approval-mozilla-beta?
Attachment #647394 - Flags: approval-mozilla-aurora?
bz this is marked as status-firefox15 unaffected, can you confirm that is correct so we know what branches need approval?
Comment on attachment 647394 [details] [diff] [review]
Make putImageData and createImageData on non-Azure canvas work with Xrays.

Er, that's correct.  For some reason I thought our beta was already 16.  ;)

This is only needed on Aurora.
Attachment #647394 - Flags: approval-mozilla-beta?
https://hg.mozilla.org/mozilla-central/rev/091d0ed7202d
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
(Reporter)

Comment 31

5 years ago
Nightly 17.0a1 (2012-08-01) on both Linux and Win7 is okay. Confirmed here, thanks a lot guys!
Comment on attachment 647394 [details] [diff] [review]
Make putImageData and createImageData on non-Azure canvas work with Xrays.

Thanks for clarifying, looks good for Aurora.
Attachment #647394 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
https://hg.mozilla.org/releases/mozilla-aurora/rev/ff79f93761fd
status-firefox16: affected → fixed

Updated

5 years ago
status-firefox17: affected → fixed
Keywords: verifyme
Mozilla/5.0 (X11; Linux i686; rv:16.0) Gecko/20100101 Firefox/16.0 beta 4
Ubuntu 12.04 32bit

Verified the fix on the above build: no errors appear in console.
status-firefox16: fixed → verified
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0

Verified with Ubuntu 12.04 32 bit on Firefox 17 b5. No error triggered.
status-firefox17: fixed → verified
Keywords: verifyme
You need to log in before you can comment on or make changes to this bug.