Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#4198 closed defect (fixed)

TypeError: domains[Symbol.iterator] is not a function in Firefox 38-40

Reported by: Ross Assignee: trev
Priority: P1 Milestone: Adblock-Plus-2.8-for-Firefox
Module: Adblock-Plus-for-Firefox Keywords:
Cc: trev Blocked By:
Blocking: Platform: Firefox
Ready: yes Confidential: no
Tester: Ross Verified working: yes
Review URL(s):

https://codereview.adblockplus.org/29352634/

Description (last modified by trev)

Environment

ABP 2.7.3.4184-beta
Firefox 38-40 / Windows 7

Does not occur with:
Firefox 41-44 / Windows 7

How to reproduce

  1. Navigate to https://testpages.adblockplus.org/en/testsuite/05
  2. Select [ABP Icon] > [Filter preferences...] > [Custom filters] tab.
  3. Add the custom filter testpages.adblockplus.org##.abp-test-hiding-filter
  4. Notice the filter does not affect the page.

-OR-

  1. Open Firefox console (CTRL+SHIFT+J).
  2. Install latest Firefox dev build.
  3. Observe error appears after installing.

Observed behaviour

Filters do not work (at least custom element hiding rules) and the following error is displayed in the console:

TypeError: domains[Symbol.iterator] is not a function elemHide.js:238:0

Expected behaviour

Filters to work as normal and the error to not occur.

Background

We send a Map object as a message parameter - it seem that Firefox 40 and below will turn that one into an empty object even though structured clone algorithm is supposed to clone Map and Set objects just fine.

Change History (10)

comment:1 Changed 3 years ago by Ross

Noticed while testing #4067.

comment:2 Changed 3 years ago by Ross

  • Description modified (diff)
  • Summary changed from TypeError: domains[Symbol.iterator] is not a function in Firefox 38/39 to TypeError: domains[Symbol.iterator] is not a function in Firefox 38-40

comment:3 Changed 3 years ago by Ross

Still occurs in 2.7.3.4197-beta

Firefox 38 / Windows 7

comment:4 Changed 3 years ago by Ross

This seems to completely break user's custom element hiding filters. Filters from subscriptions appear to work (I think, based on lack of ads), but using a custom filter of ##body for example (to hide the whole document) does not work in Firefox 38-40.

comment:5 Changed 3 years ago by trev

  • Priority changed from Unknown to P1
  • Ready set

comment:6 Changed 3 years ago by trev

  • Component changed from Core to Adblock-Plus-for-Firefox
  • Description modified (diff)
  • Owner set to trev

comment:7 Changed 3 years ago by trev

  • Review URL(s) modified (diff)
  • Status changed from new to reviewing

comment:9 Changed 3 years ago by trev

  • Milestone set to Adblock-Plus-for-Firefox-next
  • Resolution set to fixed
  • Status changed from reviewing to closed

comment:10 Changed 3 years ago by Ross

  • Tester changed from Unknown to Ross
  • Verified working set

Fixed.

ABP 2.7.3.4214-beta
Firefox 39 / 40 / Windows 7

Note: See TracTickets for help on using tickets.