New issue
Advanced search Search tips

Issue 850839 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug

Blocking:
issue 715640



Sign in to add a comment

Inputing an address in Google Maps doesn't point or navigate to the address location.

Project Member Reported by pbomm...@chromium.org, Jun 8 2018

Issue description

Chrome Version: 69.0.3452.0
OS: Windows 10

What steps will reproduce the problem?
1. Enable "Enable network service" from Chrome://flags
2. Relaunch Chrome
3. Visit Maps.google.com and in search type in an address like "1950 Charleston Rd, Mountain view" 


What is the expected result?
Should direct to the input address.

What happens instead?
Nothing happens please refer the attached screenshot.


Was bug reproducible once "Enable Network service" flag is disable?
No

How frequent was the bug reproducible? 
100%
 
Jun 7 2018 10_13 PM.webm
5.1 MB View Download

Comment 1 by dxie@chromium.org, Jun 12 2018

Labels: Proj-Servicification-Canary
Status: Available (was: Untriaged)

Comment 2 by falken@chromium.org, Jun 14 2018

Blocking: 715640
Components: Blink>ServiceWorker
This appears to be service worker-related. The same bug happens when #enable-service-worker-servicification is enabled and network service is disabled.

There is an error in the console:
Failed to load https://www.gstatic.com/maps/res/CompactLegend-Roadmap-BeckWithoutDots-d779a3d0014b5b32e3bf4bee532c800a: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.google.co.jp' is therefore not allowed access.

I suspect the headers being sent to the server are somehow different, causing gstatic.com to give a different response than usual.

Comment 3 by dxie@chromium.org, Jun 14 2018

Labels: -Proj-Servicification-Canary
since this is service worker related, removing it for network service.

Comment 4 by falken@chromium.org, Jun 18 2018

Labels: Proj-Servicification-Canary
It's true this is service worker related. But I think it makes sense to track it for network service for the same reason  issue 715640  is. When network service is turned on, this bug will occur.
Owner: falken@chromium.org
I tried couldn't repro (no service worker in maps). Could you take a look at this?
I tried couldn't repro => I tried it but couldn't repro.

Comment 7 by falken@chromium.org, Jun 18 2018

Status: Started (was: Available)
Yea I'll look at this. I see it easily on google.co.jp. Maybe you need to be logged in and opt-in to push notifications?
Thanks! I could repro it by using another account (notification and location tracking are enabled).

Comment 9 by falken@chromium.org, Jun 18 2018

It looks like an error with how we do network fallback with CORS with non-fetch service workers.

We hit the DCHECK:

[1:1:0618/132124.521504:ERROR:document_threadable_loader.cc(952)] GetSecurityOrigin: "https://www.google.co.jp", "https://www.gstatic.com/maps/res/CompactLegend-Roadmap-BeckWithoutDots-aff90f7eb217efca4d2fc1269e160cb5"
[1:1:0618/132124.521676:FATAL:document_threadable_loader.cc(955)] Check failed: fallback_request_for_service_worker_.IsNull() || GetSecurityOrigin()->CanRequest( fallback_request_for_service_worker_.Url()).
#0 0x7fe5e4e46b5c base::debug::StackTrace::StackTrace()
#1 0x7fe5e4d9065b logging::LogMessage::~LogMessage()
#2 0x7fe5dd2cf860 blink::DocumentThreadableLoader::ResponseReceived()


Probably Blink expects us to use service worker when there's a controller, but in S13nSW we completely bypass SW loaders when there is no fetch event handler. That is surprising to DocumentThreadableLoader.
Yea I think the no-fetch optimizations breaks a number of assumptions.

In non-S13nSW Blink still is under the illusion it's being controlled by a SW and goes to the browser process, which is careful about how it falls back to network for CORS.

Probably we can just change IsControlledByServiceWorker to be false when there is no fetch event handler and S13nSW is on. From the point of view of Blink and resource fetching the page is not controlled at all.
Project Member

Comment 11 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44a78b2cf6ab98720cf83822758870a53588b557

commit 44a78b2cf6ab98720cf83822758870a53588b557
Author: Matt Falkenhagen <falken@chromium.org>
Date: Mon Jun 18 11:23:05 2018

service worker: Simplify WorkerFetchContext's controller state.

It was using two data members to determine if there was a controller.
It only needs one.

Minor cleanup for the linked bug.

Bug:  850839 
Change-Id: I1d816453047721d79503d47defc8f8cb3e25c7d9
Reviewed-on: https://chromium-review.googlesource.com/1103981
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567976}
[modify] https://crrev.com/44a78b2cf6ab98720cf83822758870a53588b557/content/common/service_worker/service_worker_provider.mojom
[modify] https://crrev.com/44a78b2cf6ab98720cf83822758870a53588b557/content/renderer/service_worker/service_worker_provider_context.cc
[modify] https://crrev.com/44a78b2cf6ab98720cf83822758870a53588b557/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/44a78b2cf6ab98720cf83822758870a53588b557/content/renderer/service_worker/worker_fetch_context_impl.h

Labels: Needs-Feedback
Tested this issue on Windows 10 on the reported version 69.0.3452.0 and unable to reproduce the issue by following the below steps.

1. Launched Chrome, Signed into Chrome, enabled the flag #network-service and relaunched Chrome.
2. Navigated to maps.google.com and allowed Location and Notification settings in Site settings(as per comment #7).
3. Searched for address "1950 Charleston Rd, Mountain view" and can see the page redirecting to the address.
4. Tested this same on maps.google.co.jp and unable to reproduce the issue.
Attached is the screen cast for reference.

falken@ Request you to check and confirm if anything is missed from our end in verifying the issue?

Thanks..
850839.mp4
8.0 MB View Download
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b9cc44ce6fa67627b8a865efdb0a99b950d7006

commit 2b9cc44ce6fa67627b8a865efdb0a99b950d7006
Author: Matt Falkenhagen <falken@chromium.org>
Date: Wed Jun 20 04:24:32 2018

service worker: Add WPT for requests through no fetch controller.

NetworkService and NetS13nSW currently fail this test.

Bug:  850839 
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Ic33481d43b34f36c5ac7b234a2ca149d4134fcd0
Reviewed-on: https://chromium-review.googlesource.com/1107029
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568725}
[modify] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
[modify] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html
[add] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/cors-approved.txt
[add] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/cors-approved.txt.headers
[add] https://crrev.com/2b9cc44ce6fa67627b8a865efdb0a99b950d7006/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/cors-denied.txt

c#12: After allowing notifications, you might need to wait a few seconds, close the tab, open a new tab, then navigate to Google Maps and try again. In DevTools, check the output of navigator.serviceWorker.controller. If it's null, you don't have a service worker and won't see the bug.
Project Member

Comment 15 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98515e97cc8b93d0ea975b470eff406a964c2f35

commit 98515e97cc8b93d0ea975b470eff406a964c2f35
Author: Matt Falkenhagen <falken@chromium.org>
Date: Wed Jun 20 08:12:48 2018

service worker: Make Blink aware of controllers with fetch handlers vs without.

The linked bug is because Blink is surprised when we skip a non-fetch
event controller. This CL is preparation to fix that.

We have IsControlledByServiceWorker() but some callsites might be
interested in the no-fetch vs fetch cases. Most likely, Blink only cares
about the fetch case. However, in non-S13nServiceWorker, it's
complicated because Blink doesn't know which controller will handle
a request, since it's ultimately decided by the browser process
and skipWaiting() may occur in the meantime.

It's safest to just make things explicit and make
IsControlledByServiceWorker() return an enum of state. If it turns out
after S13nSW we can collapse "no controller" and "no fetch event
controller" together, we can simplify then.

This CL doesn't have an expected behavior change, just preparation.

Bug:  850839 
Change-Id: Ic7b2b527947c09be46c337ce90024aabccecbb1c
Reviewed-on: https://chromium-review.googlesource.com/1104078
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568762}
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/loader/navigation_url_loader_impl.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/service_worker/service_worker_controllee_request_handler.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/service_worker/service_worker_provider_host.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/service_worker/service_worker_provider_host.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/service_worker/service_worker_provider_host_unittest.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/browser/service_worker/service_worker_version.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/common/service_worker/controller_service_worker.mojom
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/common/service_worker/service_worker_provider.mojom
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/render_frame_impl.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_fetch_context_impl.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_fetch_context_impl.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_network_provider.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_network_provider.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_provider_context.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_provider_context.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/service_worker_provider_context_unittest.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/service_worker/worker_fetch_context_impl.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/content/renderer/shared_worker/embedded_shared_worker_stub.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/public/mojom/service_worker/service_worker_object.mojom
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/public/platform/modules/serviceworker/web_service_worker_network_provider.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/public/platform/web_worker_fetch_context.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/document_loader.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/document_threadable_loader.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/frame_fetch_context.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/frame_fetch_context.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/frame_fetch_context_test.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/threadable_loader_test.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/worker_fetch_context.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/core/loader/worker_fetch_context.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
[modify] https://crrev.com/98515e97cc8b93d0ea975b470eff406a964c2f35/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4469f73f46d2df075b3dac8b0c0a850200efb057

commit 4469f73f46d2df075b3dac8b0c0a850200efb057
Author: Matt Falkenhagen <falken@chromium.org>
Date: Wed Jun 20 11:58:32 2018

service worker: Teach Blink more about no fetch handler controllers.

When the network service or NetS13nSW is enabled, requests
skip service worker loaders entirely when the controller has
no fetch event handler. This was broke assumptions in
DocumentThreadableLoader, since it expected service worker
machinery to return "fallback for CORS" responses for
certain requests when there was a controller.

Bug:  850839 
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I32b058caacb14cba2e53dd8667fe9fc930a776e8
Reviewed-on: https://chromium-review.googlesource.com/1107435
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568796}
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/content/child/blink_platform_impl.cc
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/content/child/blink_platform_impl.h
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/third_party/blink/public/platform/platform.h
[modify] https://crrev.com/4469f73f46d2df075b3dac8b0c0a850200efb057/third_party/blink/renderer/core/loader/document_threadable_loader.cc

Status: Fixed (was: Started)
Labels: TE-Verified-69.0.3493.0 TE-Verified-M69
Update:

Rechecked the above issue on latest canary version #69.0.3493.0 on Win 10 and the issue is Fixed. Hence, adding TE-verified labels.

Please refer the attached screen-cast.

Thank You..!!
850839_Fixed.mp4
966 KB View Download
Cc: bashi@chromium.org yhirano@chromium.org
 Issue 873433  has been merged into this issue.

Sign in to add a comment