Opened 3 years ago

Closed 3 years ago

Last modified 19 months ago

#11393 closed project (implemented)

Make an HTTP requestor Chrome extension for meek-client

Reported by: dcf Owned by: clan
Priority: Medium Milestone:
Component: Obfuscation/meek Version:
Severity: Normal Keywords: meek
Cc: clan Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Like in #11183, make an extension for Chrome/Chromium that makes HTTP requests on behalf of another program.

Child Tickets

Change History (6)

comment:1 Changed 3 years ago by dcf

  • Owner changed from asn to clan
  • Status changed from new to assigned

Chang started doing this at https://github.com/changlan/meek/tree/chrome (and copied to https://gitweb.torproject.org/pluggable-transports/meek.git/shortlog/refs/heads/chrome). It is broken into two parts: and app and an extension, because extensions aren't allowed to open listening sockets in Chrome. It goes like this:

meek-client ←(socket)→ app ←(message)→ extension ←(HTTPS)→ www.google.com

According to https://developer.chrome.com/extensions/webRequest, it's not supposed to be possible to modify the Host header. But apparently it works. https://code.google.com/p/chromium/issues/detail?id=158073 is the bug report noting the discrepancy.

comment:2 Changed 3 years ago by dcf

  • Component changed from Pluggable transport to meek

comment:3 Changed 3 years ago by clan

The webRequest API does not handle SPDY connection properly. It does not change the HTTP header when SPDY is enabled. To use the extension you need to disable SPDY in Chrome, so that Chrome will connect to Google using HTTP rather SPDY. Since the documentation (https://developer.chrome.com/extensions/webRequest) does not mention anything about SPDY, it should behave consistently. It is probably a bug.

To disable SPDY, you can run Chrome with the argument --use-spdy=off.

comment:4 Changed 3 years ago by clan

  • Resolution set to implemented
  • Status changed from assigned to closed

comment:5 Changed 3 years ago by dcf

Adding a link to the upstream Chromium issue from comment:3:

comment:6 Changed 19 months ago by dcf

  • Severity set to Normal

I removed the Chrome extension from the source code just now. I think it hasn't been used in a while and it isn't getting maintenance. If we need to get it back, the last commit that had it was b60dc093c98c650f3a8ab1445da8b9185791cbcc.

Note: See TracTickets for help on using tickets.