New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocking:
issue 624462



Sign in to add a comment
link

Issue 637017: Can't access router config on chromium based browser anymore

Reported by blackwid...@gmail.com, Aug 11 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2825.0 Safari/537.36

Example URL:
192.168.1.1

Steps to reproduce the problem:
1. Go to router config page
2. error message is displayed.
3. (IP) sent invalid response ERR_INVALID_HTTP_RESPONSE

What is the expected behavior?
Login page for router is supposed to show. 

What went wrong?
Router uses HTTP/1.1.
Can't see login page anymore on Chromium based. Chrome canary or Opera Dev.
IE 11 and Edge works as before. 

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? Yes Weeks ago. 

Does this work in other browsers? Yes 

Chrome version: 54.0.2825.0  Channel: canary
OS Version: 10.0
Flash Version: Shockwave Flash 22.0 r0
 

Comment 1 by tkonch...@chromium.org, Aug 12 2016

Labels: TE-NeedsTriageHelp

Comment 2 by cbiesin...@chromium.org, Aug 12 2016

Cc: cbiesin...@chromium.org
Components: -Blink Internals>Network>HTTP
If you could create & attach a network log per https://dev.chromium.org/for-testers/providing-network-details that would be very helpful in diagnosing this, thanks!

Comment 3 by mmenke@chromium.org, Aug 12 2016

Cc: cbentzel@chromium.org mmenke@chromium.org
What model router do you have?  If you're getting ERR_INVALID_HTTP_RESPONSE, that router's using HTTP/0.9, not HTTP/1.1 or HTTP/1.0.

Comment 4 by blackwid...@gmail.com, Aug 12 2016

Tenda D301 (Broadcom rebrand/based afaik)

Inspect network says HTTP/1.1 -> http://i.imgur.com/Yroobfi.png 

network log attached.
net-internals-log.json
432 KB View Download

Comment 5 by mmenke@chromium.org, Aug 12 2016

Could you enable byte logging, so we can verify whether it's really using HTTP/0.9 or not?  This is disabled by default both to save space, and to avoid leaking cookies and other credentials.

In order to avoid leaking any cookies from any background requests, close all other tabs before opening up about:net-internals#capture, select "Include the actual bytes sent/received", and then go to the #export tab and export the log as before.  Also, email the log to me directly (mmenke@chromium.org) instead of posting it here, to be extra careful about leaking anything.

Comment 6 by mmenke@chromium.org, Aug 12 2016

Blocking: 624462
Thanks for emailing me the log, blackwidow.za!

So, looking at the log, I can confirm that we are indeed getting an HTTP/0.9 response.  Whatever is claiming it's HTTP/1.1 may be using an HTTP library that adds a bogus HTTP/1.1 response header to HTTP/0.9 responses or something.

It's unclear if this is a problem just with the Tenda D301, or with the Broadcom base model.  Since rebrands use custom firmware, which modifies the UI, it's conceivable that they update the entire response including removing the HTTP/1.x response header.

This is the first issue reported from our attempt to remove HTTP/0.9 support for security reasons.  We'll need to take this into consideration when deciding if we want to ship the removal to stable, add a way to re-enable it, or go with some other mitigation.

Comment 7 by mmenke@chromium.org, Aug 12 2016

Cc: -mmenke@chromium.org
Owner: mmenke@chromium.org
Status: Assigned (was: Unconfirmed)
Oh, and I don't mean to sound dismissive of this - breaking compatibility with a home router is a big deal.  But the alternative is most likely being stuck supporting HTTP/0.9 in some form forever, given how rarely router firmware is updated.

Comment 8 by cbentzel@chromium.org, Aug 12 2016

#7: Agree that's most likely decision. Can you add a milestone to this associated with HTTP/0.9 deprecation (I forget which release that is slated for).

Comment 9 by mmenke@chromium.org, Aug 12 2016

Labels: M-54
Sure, it's M-54.

Comment 10 by blackwid...@gmail.com, Aug 12 2016

Can't be helped if they can't support their products. Can't even install the "latest" update. 

Thanks for the help.

Comment 11 by bugdroid1@chromium.org, Aug 16 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2dcd3bf444490b1eaf7aaafaa740310dc846137

commit a2dcd3bf444490b1eaf7aaafaa740310dc846137
Author: mmenke <mmenke@chromium.org>
Date: Tue Aug 16 21:49:41 2016

Revert HTTP/0.9 removal

This broke compatibility with the Tenda D301 router, which is using
HTTP/0.9 (Presumably because of a bug in the router's firmare).
We're going to go with a less aggressive deprecation instead, at least
for now - we'll just support HTTP/0.9 on default ports only.

I'll try to be more aggressive in future Chrome releases (No HTTP/0.9
over SSL, for instance).

Reverted CL description:
 Remove HTTP/0.9 support from HttpStreamParser.

 HTTP/0.9 is an ancient protocol with some fundamental design problems.
 This CL remove support for it, while leaving most of the code needed to
 support HTTP/0.9 in place, in case this has to be reverted late in the
 game, or we decide to add a (temporary) enterprise policy to enable it.

 BUG= 624462 
 Committed: https://crrev.com/e2172e4b83ad33aef354618ce2e092db85baee1d
 Cr-Commit-Position: refs/heads/master@{#405687}

TBR=eroman@chromium.org, ricea@chromium.org,  jwd@chromium.org
BUG= 637017 

Review-Url: https://codereview.chromium.org/2247003003
Cr-Commit-Position: refs/heads/master@{#412348}

[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/net/http/http_network_transaction_unittest.cc
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/net/http/http_stream_parser.cc
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/net/http/http_stream_parser_unittest.cc
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/net/url_request/url_request_http_job_unittest.cc
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/net/websockets/websocket_stream_test.cc
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-error-expected.txt
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-fail-by-maxlength-expected.txt
[modify] https://crrev.com/a2dcd3bf444490b1eaf7aaafaa740310dc846137/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-fail-by-prepended-null-expected.txt

Comment 12 by bugdroid1@chromium.org, Aug 31 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/398c105ea8391473126021104554d70fda08324b

commit 398c105ea8391473126021104554d70fda08324b
Author: mmenke <mmenke@chromium.org>
Date: Wed Aug 31 16:06:57 2016

Only allow HTTP/0.9 support on default ports.

Also add a group policy to allow HTTP/0.9 support on other
ports, which I plan to remove in a couple revisions.

BUG= 624462 , 637017 

Review-Url: https://codereview.chromium.org/2253653002
Cr-Commit-Position: refs/heads/master@{#415643}

[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/chrome/browser/io_thread.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/chrome/browser/io_thread.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/chrome/browser/io_thread_unittest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/chrome/browser/net/errorpage_browsertest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/chrome/test/data/policy/policy_test_cases.json
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/components/policy/resources/policy_templates.json
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_basic_state.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_basic_state.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_basic_state_unittest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_basic_stream.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_basic_stream.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_network_session.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_network_session.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_network_transaction_unittest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_stream_factory_impl_job.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_stream_factory_impl_job_controller_unittest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_stream_parser.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_stream_parser.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/http/http_stream_parser_unittest.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/spdy/spdy_test_util_common.h
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/test/embedded_test_server/default_handlers.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/net/websockets/websocket_basic_handshake_stream.cc
[modify] https://crrev.com/398c105ea8391473126021104554d70fda08324b/tools/metrics/histograms/histograms.xml

Comment 13 by bugdroid1@chromium.org, Aug 31 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/400eb587ad05c2aef8740e2bff550083ac90ea2d

commit 400eb587ad05c2aef8740e2bff550083ac90ea2d
Author: mmenke <mmenke@chromium.org>
Date: Wed Aug 31 17:20:48 2016

Revert "Only allow HTTP/0.9 support on default ports."

The CL broke some websocket layout tests, will reland once that's
worked out.

This reverts commit 398c105ea8391473126021104554d70fda08324b.

Also add a group policy to allow HTTP/0.9 support on other
ports, which I plan to remove in a couple revisions.

BUG= 624462 ,  637017 
Committed: https://crrev.com/398c105ea8391473126021104554d70fda08324b
Cr-Commit-Position: refs/heads/master@{#415643}
TBR=eroman@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2297263002
Cr-Commit-Position: refs/heads/master@{#415668}

[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/chrome/browser/io_thread.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/chrome/browser/io_thread.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/chrome/browser/io_thread_unittest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/chrome/browser/net/errorpage_browsertest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/chrome/test/data/policy/policy_test_cases.json
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/components/policy/resources/policy_templates.json
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_basic_state.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_basic_state.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_basic_state_unittest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_basic_stream.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_basic_stream.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_network_session.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_network_session.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_network_transaction_unittest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_stream_factory_impl_job.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_stream_factory_impl_job_controller_unittest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_stream_parser.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_stream_parser.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/http/http_stream_parser_unittest.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/spdy/spdy_test_util_common.h
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/test/embedded_test_server/default_handlers.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/net/websockets/websocket_basic_handshake_stream.cc
[modify] https://crrev.com/400eb587ad05c2aef8740e2bff550083ac90ea2d/tools/metrics/histograms/histograms.xml

Comment 14 by bugdroid1@chromium.org, Sep 1 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7da6da864dce77fe1c931653635c3ac757219cb

commit a7da6da864dce77fe1c931653635c3ac757219cb
Author: mmenke <mmenke@chromium.org>
Date: Thu Sep 01 21:56:52 2016

Re-land:  Only allow HTTP/0.9 support on default ports.

Also add a group policy to allow HTTP/0.9 support on other
ports, which I plan to remove in a couple revisions.

Originally landed in https://codereview.chromium.org/2253653002/
Reverted in https://codereview.chromium.org/2297263002/
for breaking WebSocket tests.

TBR=eroman@chromium.org
BUG= 624462 ,  637017 

Review-Url: https://codereview.chromium.org/2299703003
Cr-Commit-Position: refs/heads/master@{#416074}

[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/chrome/browser/io_thread.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/chrome/browser/io_thread.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/chrome/browser/io_thread_unittest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/chrome/browser/net/errorpage_browsertest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/chrome/test/data/policy/policy_test_cases.json
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/components/policy/resources/policy_templates.json
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_basic_state.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_basic_state.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_basic_state_unittest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_basic_stream.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_basic_stream.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_network_session.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_network_session.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_network_transaction_unittest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_stream_factory_impl_job.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_stream_factory_impl_job_controller_unittest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_stream_parser.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_stream_parser.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/http/http_stream_parser_unittest.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/spdy/spdy_test_util_common.h
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/test/embedded_test_server/default_handlers.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/net/websockets/websocket_basic_handshake_stream.cc
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-error-expected.txt
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-fail-by-maxlength-expected.txt
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/third_party/WebKit/LayoutTests/http/tests/websocket/handshake-fail-by-prepended-null-expected.txt
[modify] https://crrev.com/a7da6da864dce77fe1c931653635c3ac757219cb/tools/metrics/histograms/histograms.xml

Comment 15 by mmenke@chromium.org, Sep 2 2016

Status: Fixed (was: Assigned)

Comment 16 by efoo@chromium.org, Jul 6 2018

Components: Internals>Network

Comment 17 by efoo@chromium.org, Jul 6 2018

Components: -Internals>Network>HTTP

Sign in to add a comment