[tor-bugs] #29347 [Obfuscation/meek]: Rewrite meek-http-helper as a WebExtension

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Feb 15 22:11:32 UTC 2019


#29347: Rewrite meek-http-helper as a WebExtension
------------------------------+--------------------------
 Reporter:  dcf               |          Owner:  dcf
     Type:  enhancement       |         Status:  assigned
 Priority:  Medium            |      Milestone:
Component:  Obfuscation/meek  |        Version:
 Severity:  Normal            |     Resolution:
 Keywords:  webextension      |  Actual Points:
Parent ID:                    |         Points:
 Reviewer:                    |        Sponsor:
------------------------------+--------------------------

Comment (by dcf):

 I added the ability to control the header (including the Host header) in
 [https://gitweb.torproject.org/pluggable-
 transports/meek.git/commit/?h=webextension&id=b2b8b3af03b35d3c1fa794c229f77cc95db5cdf4
 b2b8b3af03b35d3c1fa794c229f77cc95db5cdf4]. Now I can bootstrap with
 {{{
 Bridge meek 0.0.2.0:3 url=https://meek.azureedge.net/
 front=ajax.aspnetcdn.com
 }}}

 In order to avoid conflicts with the shared `onBeforeSendHeaders` resource
 as described in comment:2, I'm using a mutex-like object that waits on a
 promise, while simultaneously creating a new promise for the ''next''
 caller to wait on. We acquire a lock and register an `onBeforeSendHeaders`
 listener just before sending the HTTP request, and release the lock and
 unregister the listener (i.e., resolve the promise) inside the listener
 itself (i.e., before the HTTP request actually hits the network). I'm
 pretty new to this JavaScript async stuff so you may want to look at it.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29347#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list