Issue metadata
Sign in to add a comment
|
The EME call generateRequest() fails when attempting to use Chrome with Shaka player in a closed environment |
||||||||||||||||||||
Issue descriptionSteps to reproduce the problem: Reproduces on the following devices: Samsung Galaxy S8 - Android 7.0, Chrome 66 Samsung Galaxy S6 -Android 7.0, Chrome 66 Huawei Nova Lite - Android 7.0, Chrome 66 Huawei P8 - Android 6.0, Chrome 66 Attempt to play content using the Shaka player in Chrome browser https://shaka-player-demo.appspot.com/demo/#asset=https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd;lang=en-US;build=uncompiled Device should have no external access and only be on an isolated wifi network with only access to the What is the expected behavior? generateRequest() should not fail and prevent content playback. What went wrong? The service certificate is set as required by the Widevine License SDK. The first call always fails with 139 and returns a certificate. But in the closed network environment the license SDK is not reached at all by the player. Did this work before? N/A Chrome version: 66.0.3359.126 Channel: stable OS Version: Android N 7.0 Flash Version: Github background issue: https://github.com/google/shaka-player/issues/1433 From partner describing videos: All these were done in a disconnected environment (no internet connection) as the devices work fine in a connected environment. In video1 I play the content on Chrome on Windows, works fine and calls the Widevine SDK with no problems. In video2 I try play the same content on an Android 7 with Chrome 67. It fails and the Widevine SDK is not even called it fails on an EME call as described in earlier emails. In video3 I set Chrome back to the factory settings which is version 61. In video4 I can play the content with Chrome 61 installed, the Widevine SDK is reached and the license returned. So with this evidence I can surmise the following: That my Widevine SDK setup is working correctly. It is not a bug either in the Widevine product, since it is not calling the product. The changes made between Chrome 61 and 67 on an Android are (only in disconnected mode) refusing to connect with the Widevine SDK.
,
Jul 24
More details. Partner captured Client User-Agent: Widevine CDM v1.0 Transport Host:www.googleapis.com:443 Proxy-Connection: keep-alive They never saw this call in previous Chrome versions and see this call return successful when in online mode, but never in offline or in a local connection. See screenshots for more details.
,
Jul 25
Tested the issue on Android and unable to reproduce this issue. Below are the observations Observations: ============== 1. Connected to google internal guest wifi 2. launched https://shaka-player-demo.appspot.com/demo/#asset=https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd;lang=en-US;build=uncompiled from chrome , clicked on Load and clicked on video -- video played succesfully. 3. Disconnected from wifi and tried playing above , clicked on load and observed 2 different error - Error code 1002, Error code 4000 Chrome versions tested: 67.0.3396.87(Stable) OS: Android 7.0 Android Devices: Samsung GalaxyJ7 ryanlewis@: Could you please check the steps and let us know if we miss anything/ this is the behavior you are seeing. If possible please guide us with screencast on reproducing the issue. This would help in better triaging. Thanks!
,
Jul 25
,
Jul 26
We see the same issue. After step 2, please perform the below steps: Chrome->Settings->Site settings->Media->Protected Content. Clear and reset the entry for https://shaka-player-demo.appspot.com Chrome->Settings->Privacy->Clear browsing data-> Advanced->Media Licenses(check this) and click clear data. After these two steps please attempt to play the content connected to a Wifi not connected to internet.
,
Jul 26
Provisioning requires network access to a Google server, e.g. www.googleapis.com:443 as noted in #2, which will not work in a closed environment. So the device has to be provisioned in an online environment before it can work in a closed environment. Previously we use per-device provisioning, meaning the device only need to be provisioned once, triggered either by Chrome or by an Android app. Around M58 we started to use per-origin provisioning feature provided by Android OS. That means each site (origin) needs to be provisioned separately. To make it work, user needs to visit that exact site and trigger provisioning with network access to finish the provisioning process. Then user should be able to use the device to play content on that site in a closed environment.
,
Jul 26
Thanks for the reply. Is provisioning mentioned here, the device provisioning as mandated by Widevine protocol or is it some provisioning by Chrome? If Chrome needs provisioning, how can a closed environment support provisioning.
,
Jul 27
Tested the issue on Android and unable to reproduce this issue. Below are the observations Observations: ============== 1. Connected to google internal guest wifi 2. launched https://shaka-player-demo.appspot.com/demo/#asset=https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd;lang=en-US;build=uncompiled from chrome , clicked on Load and clicked on video -- video played succesfully. 3. Navigated to Chrome->Settings->Site settings->Media->Protected Content. Cleared and resetted the entry for https://shaka-player-demo.appspot.com 4. Navigated to Chrome->Settings->Privacy->Clear browsing data-> Advanced->Media Licenses(check this) and click clear data. 5. Now played video and observed video playing successfully. Chrome versions tested: 67.0.3396.87(Stable) OS: Android 7.0 Android Devices: Samsung GalaxyJ7 shiney.james@: Could you please check the screencast and let us know if we miss anything. Thanks!
,
Jul 27
Hi, as Shiney, we are having the same issue. Keep in mind that our environment is completely offline: it is an aircraft flying with no internet. In this scenario we have a stand-alone widevine license server on board. In your example, your device seem to have internet connectivity, so the conditions are not the same as in our scenario. Probably your device has access to the provisioning service, which is not the case in our offline scenario.
,
Jul 27
The steps are fine. But the WiFi connected does have Internet enabled. The issue is replicated only in a closed network(Internet disabled). Let me know if you would need any logs collected from our test environment.
,
Jul 27
,
Jul 30
Is it possible to raise the priority of the issue to priority 1? As per https://www.chromium.org/for-testers/bug-reporting-guidelines/chromium-bug-labels, Type-Bug-Regression: Features that worked in prior releases and are now broken. These should be Pri-1.
,
Jul 30
Hello Shiney, Out of curiosity, this should have been broken for long time since the change was made around Chrome 58, which was released last year. Do you know why this is only reported now?
,
Jul 30
I know from the partners I've spoken to they've been aware that "something broke" a while back but haven't been able to pin down what / where until recently. Given the fact that it is very hard to replicate without getting on a flight, and even then only when not connecting to the internet it's been challenging.
,
Jul 31
Yes, this issue was reported earlier in Nov 11 in Widevine discussion forum(see link below). As no feedback was received, this was marked as an open issue. In couple of aircrafts connectivity was supported. Business use case started to get affected for completely disconnected aircrafts. There is no way to enable connectivity here. Hence the push for a quicker resolution. https://groups.google.com/forum/#!searchin/cwip-discuss/mediadrm$20is$20null$20or$20security$20level$20is$20not$20supported.%7Csort:date/cwip-discuss/Mwbb1egg3Ro/srCMDcaAAwAJ
,
Jul 31
All, We are actively working on a solution for this, but do not yet have a time frame. Please stay tuned for more updates. Thanks, Ryan
,
Aug 1
Hi Ryan, We are also serving in aircraft non connected environment and using ExoPlayer to play widevine DRM content. in Android 8/8.1 we are facing same issue (request made to google cloud server for device provisioning & failing due to non connectivity) in new devices like Galaxy S9+ or after doing factory reset to oneplus6, Nokia 7 plus, Galaxy S9. but I can not reproduce it in Android 7 devices with ExoPlayer. As we are using App(ExoPlayer) and Not browser so want to know if the Fix will come in "Chrome browser" or in "Android OS"? as we need fix at App level. Thanks,
,
Aug 2
,
Aug 3
Can this issue be reassigned to priority 1 as per regression bug guidelines? I am also experiencing this issue in a disconnected environment and also in Exo Player on Android 8 devices too; which is unrelated to this particular regression in Chrome, but worthwhile noting.
,
Aug 13
Has there been any progress with this issue?
,
Sep 25
Please confirm if the fix is added in Chrome 70 beta release done in September 20, 2018.
,
Sep 28
,
Oct 8
,
Oct 9
This issue seems to persist in Chrome 70 and 71 (canary) is 72 now the target?
,
Oct 9
That's correct.
,
Oct 24
This issue can still be reproduced in Chrome 72 (canary).
,
Jan 8
Is the fix still targeted for M-72?
,
Jan 11
Sorry for the delay. We have a plan and the current tentative target is M73.
,
Jan 11
|
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by ericde@google.com
, Jul 23Components: Internals>Media>Encrypted