#33 Firefox APIs are not compatible with Proxy objects
Opened 2 years ago by polcak. Modified 7 months ago

wrappingS-ECMA-ARRAY wrappers create a Proxy for each Array. Some web API expects typed arrrays as parameters. Firefox checks that the object implements the typed array interface and as it detects the proxy throws an exception.

One solution to the problem is to wrap the Firefox APIs that expects objects that we wrapped with Proxies to deal with the problem.

We need to:

[ ] identify affected APIs,
[ ] create test cases,
[ ] implement proxy removing wrappers.

I will turn on arraybuffer wrapping group in Chromium-based browsers for 0.8.


Metadata Update from @polcak:
- Issue assigned to xbedna60

2 years ago

I am not going to enable arraybuffer wrapping group in Chromium-based browsers for 0.8 as we need more testing.

Metadata Update from @polcak:
- Issue assigned to polcak (was: xbedna60)

2 years ago

Test cases created (integration tests). To get the idea of affected APIs, see https://searchfox.org/mozilla-central/source/dom/webidl

There is no download all button on the page, this code helps:

let all = "";
Array.prototype.forEach.call(document.querySelectorAll(".folder-content .description a"), function (e) {
  if (e.href.endsWith(".webidl")) {
    all += " https://hg.mozilla.org/mozilla-central/raw-file/tip/dom/webidl" + e.href.substring(e.href.lastIndexOf("/"));
  }
});
console.log(all);
wget [paste string without "]

Login to comment on this ticket.

Metadata