Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support filtering streaming response data via webRequest API #1080

Merged
merged 17 commits into from Aug 1, 2019

Conversation

@hawkeye116477
Copy link
Contributor

commented Jul 25, 2019

Related:

https://bugzilla.mozilla.org/show_bug.cgi?id=1255894
https://bugzilla.mozilla.org/show_bug.cgi?id=1368527
https://bugzilla.mozilla.org/show_bug.cgi?id=1388889
https://bugzilla.mozilla.org/show_bug.cgi?id=1395140
https://www.reddit.com/r/waterfox/comments/chfqd0/browserwebrequestfilterresponsedata_is_not_a/
https://www.reddit.com/r/waterfox/comments/cemwha/ublock_origin_html_filtering_potentially_not/

Tested and seems that html filtering works perfectly on uBO 馃槃

hawkeye116477 and others added 17 commits Jul 25, 2019
Bug 1255894: Part 2 - Add mozIWebRequestService service for tracking 鈥
鈥iltered requests.

In order to allow extensions running in a content process to connect extension filters, we need to be able to track which requests they have permissions to modify, and which processes they have permissions to modify them from. This interface allows us to register channels that we've dispatched webRequest listeners for, and the TabParent (and, by proxy, content parent) we've dispatched them to. Extensions will only be able to filter those channels, and only from those processes.
Bug 1255894: Part 3 - Create skeleton IPDL framework for OOP stream f鈥
鈥lters.

This interface will allow extensions running into a content process to attach a filtering stream listener to an HTTP request in the parent process. The content process attaches a listener by sending a message from the content process containing the ID of the request to filter, and the ID of the add-on making the request. The permissions and request mappings for this are handled by the web request service added in part 2.
Bug 1255894: Part 4 - Implement StreamFilter IPC protocol. r=baku,mix鈥
鈥dpuppy

This part implements the IPC state logic for the stream filters.

Bill, can you please review the IPC and thread sanity, and Shane, the state
logic?

MozReview-Commit-ID: KrVOrdnuwC5
Bug 1255894: Part 5 - Hook up StreamFilterParent as a stream listener鈥
鈥. r=dragana,mixedpuppy

This part hooks up the parent side of the StreamListener protocol to the
channel, and implements the event handling and actual IO work.

Dragana, can you please review the network portions, particularly the thread
sanity, and Shane, the integration with the rest of the patch set?

MozReview-Commit-ID: DFuALpSSgA7
Bug 1255894: Part 6 - Implement StreamFilter DOM bindings. r=baku,mix鈥
鈥dpuppy

MozReview-Commit-ID: 6EaVrIep1gC
Bug 1368527 test event timing using hsts,r=dragana,kmag
MozReview-Commit-ID: Dbb56Bkicdd
Bug 1255894: Part 8 - Add tests for response stream filtering. r=mixe鈥
鈥puppy

MozReview-Commit-ID: 9C2QnNsm1W1
Bug 1255894: Part 9 - Allow returning non-copyable types in async IPD鈥
鈥 methods. r=kanru

Certain types (such as Shmem and Endpoint types) cannot be copied, and need to
be moved when passed around. When used with MozPromises, that means that the
promise needs to be non-shareable, and the resolve functions need to use the
correct ref qualifiers.

MozReview-Commit-ID: Kt4WZNsDErK
Bug 1396648: Bump response interval to avoid intermittents. r=trivial鈥
鈥,test-only

MozReview-Commit-ID: FSYVT848TES

@MrAlex94 MrAlex94 merged commit af9bc05 into MrAlex94:master Aug 1, 2019

@MrAlex94

This comment has been minimized.

Copy link
Owner

commented Aug 1, 2019

Wicked, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can鈥檛 perform that action at this time.