Skip to content

Unsupport $object-subrequest filter option

Background

Firefox is the only browser that let's extensions distinguish between requests loading an <object> element (e.g. a Flash video), and subsequent requests sent by that plugin. Hence on other platforms, we alias OBJECT_SUBREQUEST to OBJECT, effectively making the filter options $object and $object-subrequest synonymous on Chromium-based browsers and Microsoft Edge.

Considering that most users are on Chrome, and that plugins like Flash and Java are essentially dead, it doesn't seem to be worth it anymore to keep supporting the $object-subrequest filter option just for Firefox. Also by removing it, we make the filter behavior more consistent across browsers.

What to change

Remove support for the $object-subrequest filter option.

Integration notes

Remove the workaround and add a mapping from object_subrequest to OBJECT, in lib/requestBlockers.js in adblockpluschrome.

Hints for testers

  • Test that the $object-subrequest options flag makes a filter invalid (e.g. ||example.com/foo^$object-subrequest should not block requests to http://example.com/foo/bar originating from a Flash object)
  • Test that a filter with the $object-subrequest option enabled does not have side effects on the rest of the list, e.g. given two filters ||example.com/foo/bar^$object-subrequest and ||example.com/foo^, the second filter should still block requests to http://example.com/foo/bar, even when such requests originate from a Flash object

/cc @skipintro

Edited by Manish Jethani