New issue
Advanced search Search tips

Issue 786750 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 1
Type: Bug

Blocking:
issue 469639



Sign in to add a comment

window.audioWorklet and window.animationWorklet are not available even with experimental flag

Project Member Reported by hongchan@chromium.org, Nov 18 2017

Issue description

Version: Chrome Canary 64.0.3272.0

1. Launch Canary with AudioWorklet enabled:
   --enable-blink-features=Worklet,AudioWorklet
   Or chrome://flags > "Experimental Web Platform"

2. Go to the demo page and run any of demos:
   https://googlechromelabs.github.io/web-audio-samples/audio-worklet/

3. The warning says "browser does not support AudioWorklet yet".
   In the console panel, "window.audioWorklet" returns undefined.
 
Status: Assigned (was: Available)
nhiroki@ I think this is related to the recent change in SecureContext. WDYT?
 Issue 786794  has been merged into this issue.
A developer kindly did some bisecting for us:

3257 window.audioWorklet was defined if serving via http (and probably https)
3271 window.audioWorklet was defined if serving via https, and undefined if via http
3273 window.audioWorklet is undefined also in https
- Partial interface fix for Window landed at 64.0.3271.0.
- SecureContext on AudioWorklet also landed at 64.0.3272.0.
- MessagePort change landed at 64.0.3272.0.

I think https://chromium-review.googlesource.com/c/chromium/src/+/774338 might be the culprit. Perhaps the Worklet-level gate logic on SecureContext is broken?
Just confirmed that window.animationWorklet has the same problem. It's undefined even with the flag enabled.

My guess is WindowFooWorklet.{idl,h,cpp} is not working correctly.
Summary: window.audioWorklet and window.animationWorklet are not available even with experimental flag (was: Window.audioWorklet is undefined)
Cc: -nhiroki@chromium.org hongchan@chromium.org
Owner: nhiroki@chromium.org
Status: Started (was: Assigned)
Thank you for reporting this. I'll investigate...
CSS.paintWorklet is correctly defined on Mac Canary. Looks like this is an issue specific for [SecureContext] on "window".
Cc: peria@chromium.org
Components: Blink>Bindings
Hmm... apparently these attributes are defined on tests. Is there some flag that enables [[SecureContext]] only on tests...? I'll revert my change if it cannot get fixed soon.

+peria@: Any thoughts?

Comment 10 by peria@chromium.org, Nov 20 2017

Owner: peria@chromium.org
Hmm, I guess it is installed on Window wrapper only if V8ContextSnapshot is enabled.
I'll work for it soon.
re #9 #10: Until the fix is available, can we unblock developers by reverting the change https://chromium-review.googlesource.com/c/chromium/src/+/774338?

More facts:
- Canary 64.0.3273.0 fails even with the local host.
- Chromium ToT, 64.0.3274.0 works fine on https + localhost.

Also I am still not sure how this can pass the test in that CL. Perhaps there is a special setup for localhost/content-shell?
Labels: OS-Windows
peria@ has a CL, but it looks like it's still under review:
https://chromium-review.googlesource.com/c/chromium/src/+/778642

I'll revert my change for now. Sorry for disturbing you and developers.
nhiroki@ No worries! This is still experimental anyway. Can you confirm that reverting the CL fixes this issue? Like I mentioned in #11, ToT (64.0.3274.0) seems to be working.
Yeah, I'll confirm it (after arriving at the office).
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 21 2017

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

commit b0ad983de83697febc63ddc277cb28eb5bd48da8
Author: Hiroki Nakagawa <nhiroki@chromium.org>
Date: Tue Nov 21 03:33:10 2017

Revert "Worklet: Add [SecureContext] to WindowAnimationWorklet and WindowAudioWorklet"

This reverts commit 4318c06d949e678981bf5abec17c520623c664a6.

Reason for revert:
This CL works for test environments but unexpectedly disables window.animationWorklet and window.AudioWorklet on non-test environments.

Original change's description:
> Worklet: Add [SecureContext] to WindowAnimationWorklet and WindowAudioWorklet
> 
> [SecureContext] attribute was not supported on 'partial interface' and
> 'attribute', but peria@'s CL[1] fixed this issue.
> 
> This CL replaces workarounds with the proper [SecureContext] on
> WindowAnimationWorklet and WindowAudioWorklet.
> 
> [1] https://chromium-review.googlesource.com/c/chromium/src/+/765607
> 
> Bug:  779938 
> Change-Id: I96ed100c9937217e70e7ae4db7d6576305e05f25
> Reviewed-on: https://chromium-review.googlesource.com/774338
> Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#517301}

TBR=haraken@chromium.org,nhiroki@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  779938 ,  786750 
Change-Id: I0718a6eb21dfc589fe4cbc4b0e818eeb4b6910d1
Reviewed-on: https://chromium-review.googlesource.com/780159
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518090}
[modify] https://crrev.com/b0ad983de83697febc63ddc277cb28eb5bd48da8/third_party/WebKit/LayoutTests/http/tests/worklet/import-on-insecure-context.html
[modify] https://crrev.com/b0ad983de83697febc63ddc277cb28eb5bd48da8/third_party/WebKit/Source/modules/animationworklet/WindowAnimationWorklet.cpp
[modify] https://crrev.com/b0ad983de83697febc63ddc277cb28eb5bd48da8/third_party/WebKit/Source/modules/animationworklet/WindowAnimationWorklet.idl
[modify] https://crrev.com/b0ad983de83697febc63ddc277cb28eb5bd48da8/third_party/WebKit/Source/modules/webaudio/WindowAudioWorklet.cpp
[modify] https://crrev.com/b0ad983de83697febc63ddc277cb28eb5bd48da8/third_party/WebKit/Source/modules/webaudio/WindowAudioWorklet.idl

I confirmed the revert patch resurrected the attributes.
Project Member

Comment 18 by bugdroid1@chromium.org, Nov 22 2017

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

commit 23f435f60b4da564f4c4cc18874f8d512b7981fb
Author: Hitoshi Yoshida <peria@chromium.org>
Date: Wed Nov 22 09:48:42 2017

bindings: Install conditional interface objects on Window w/o snapshot

Before this CL, we installed conditional interface objects, i.e.
[SecureContext] attributes, on Window objects if and only if
the Window object was created from snapshot.
This CL installs them on the Window object regardless if it is
created from a snapshot or not.


Bug:  786750 
Change-Id: I5166340b0d300b7101d5ec04a7f4a5212dd4e43b
Reviewed-on: https://chromium-review.googlesource.com/778642
Commit-Queue: Hitoshi Yoshida <peria@chromium.org>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518588}
[modify] https://crrev.com/23f435f60b4da564f4c4cc18874f8d512b7981fb/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.cpp
[modify] https://crrev.com/23f435f60b4da564f4c4cc18874f8d512b7981fb/third_party/WebKit/Source/bindings/core/v8/LocalWindowProxy.h
[modify] https://crrev.com/23f435f60b4da564f4c4cc18874f8d512b7981fb/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.cpp
[modify] https://crrev.com/23f435f60b4da564f4c4cc18874f8d512b7981fb/third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.h

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 24 2017

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

commit 5a4e27575e8c7558ceddd2d7b8724a4d254670a6
Author: Hiroki Nakagawa <nhiroki@chromium.org>
Date: Fri Nov 24 02:52:21 2017

Revert "Revert "Worklet: Add [SecureContext] to WindowAnimationWorklet and WindowAudioWorklet""

This reverts commit b0ad983de83697febc63ddc277cb28eb5bd48da8.

Reason for revert:
The fix was landed in https://chromium-review.googlesource.com/c/chromium/src/+/778642

Original change's description:
> Revert "Worklet: Add [SecureContext] to WindowAnimationWorklet and WindowAudioWorklet"
> 
> This reverts commit 4318c06d949e678981bf5abec17c520623c664a6.
> 
> Reason for revert:
> This CL works for test environments but unexpectedly disables window.animationWorklet and window.AudioWorklet on non-test environments.
> 
> Original change's description:
> > Worklet: Add [SecureContext] to WindowAnimationWorklet and WindowAudioWorklet
> > 
> > [SecureContext] attribute was not supported on 'partial interface' and
> > 'attribute', but peria@'s CL[1] fixed this issue.
> > 
> > This CL replaces workarounds with the proper [SecureContext] on
> > WindowAnimationWorklet and WindowAudioWorklet.
> > 
> > [1] https://chromium-review.googlesource.com/c/chromium/src/+/765607
> > 
> > Bug:  779938 
> > Change-Id: I96ed100c9937217e70e7ae4db7d6576305e05f25
> > Reviewed-on: https://chromium-review.googlesource.com/774338
> > Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
> > Reviewed-by: Kentaro Hara <haraken@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#517301}
> 
> TBR=haraken@chromium.org,nhiroki@chromium.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug:  779938 ,  786750 
> Change-Id: I0718a6eb21dfc589fe4cbc4b0e818eeb4b6910d1
> Reviewed-on: https://chromium-review.googlesource.com/780159
> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
> Reviewed-by: Kentaro Hara <haraken@chromium.org>
> Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#518090}

TBR=haraken@chromium.org,nhiroki@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  779938 ,  786750 
Change-Id: I0fce8d06bb6d67b04fa572a1147cfbe16ae5e129
Reviewed-on: https://chromium-review.googlesource.com/788552
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519047}
[modify] https://crrev.com/5a4e27575e8c7558ceddd2d7b8724a4d254670a6/third_party/WebKit/LayoutTests/http/tests/worklet/import-on-insecure-context.html
[modify] https://crrev.com/5a4e27575e8c7558ceddd2d7b8724a4d254670a6/third_party/WebKit/Source/modules/animationworklet/WindowAnimationWorklet.cpp
[modify] https://crrev.com/5a4e27575e8c7558ceddd2d7b8724a4d254670a6/third_party/WebKit/Source/modules/animationworklet/WindowAnimationWorklet.idl
[modify] https://crrev.com/5a4e27575e8c7558ceddd2d7b8724a4d254670a6/third_party/WebKit/Source/modules/webaudio/WindowAudioWorklet.cpp
[modify] https://crrev.com/5a4e27575e8c7558ceddd2d7b8724a4d254670a6/third_party/WebKit/Source/modules/webaudio/WindowAudioWorklet.idl

Owner: nhiroki@chromium.org
Status: Fixed (was: Started)

Sign in to add a comment