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

Issue 641448 link

Starred by 2 users

Issue metadata

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

Blocking:
issue 624086



Sign in to add a comment

Flash component sometimes not pulled on demand

Project Member Reported by wfh@chromium.org, Aug 26 2016

Issue description

Version: 54.0.2840.0 canary (64-bit)
OS: Windows 8.1

What steps will reproduce the problem?
(1) Install canary
(2) Go to http://wwwns.akamai.com/hdnetwork/demo/flash/default.html
(3) Notice flash doesn't download

What is the expected output?

Flash downloads and runs

What do you see instead?

Flash does not download.

Please use labels and text to provide additional information.

Additional findings:

Visiting chrome://components and clicking "Check for update" on the "Adobe Flash  Player" component fixes this, but doesn't fix the currently opened tab, I need to open in a new tab for some reason.

Visiting some sites does correctly trigger auto download e.g. http://www.adobe.com/software/flash/about/ but notice the first Flash object does not load, only the second one.
 
For this particular case, the issue appears to be that we aren't advertising the presence of Flash Player (technically correctly) and so they aren't instantiating an embed object.

Going to this site, http://www.adobe.com/software/flash/about/, however does appropriately trigger a component download.
Yes: akami is using swfobject.js to try to detect the presence of Flash; looks like the browser (truthfully) responds that it doesn't have Flash, and swfobject.js inserts a <noscript> tag containing an <object>; but since technically scripting is enabled Chrome skips the <noscript> contents.

Since the site didn't actually request Flash, but only probed for it, Chrome doesn't initiate a download of Flash.

IIUC, swfobject.js is pretty widely used and so maybe we have to do something here. The only remediation I can think of is to hook navigator.plugins to (falsely) state that we do have an implementation of Flash. (Unclear what we would use for a version number, etc.) Navigator.plugins is a synchronous API so we can't actually do the download/install as part of answering the query.

Anthony, how do you want to proceed?
(Er, one minor correction, it is not swfobject.js inserting the <noscript> tag; default.html actually has the <noscript> specified as their fallback content.

Contrast the adobe page, which falls back to some html showing the flash icon in the banner.)
If there is a simple path to doing it, we probably should do it, since it will reflect the initial experience for new users (at least for the first 6 minutes) and we'd like for that to be seamless.

Comment 5 by wfh@chromium.org, Aug 26 2016

I think this could be a pretty significant oob regression. Do we have metrics to record when this would be happening, perhaps we can decide what to do based on those, before this ships to stable?

Comment 6 by grt@chromium.org, Aug 26 2016

I think it would be nice if we could find a way to magically do the right thing for the user. I've been on the short end of the stick with EME stuff after a fresh install, and it's less than fun. I wouldn't want to put non-power users through that. Just my two cents.

Comment 7 by wfh@chromium.org, Aug 26 2016

Another idea (or something we could do as well, regardless of the solution here) is to make sure all paths from a search for "flash not working" end up on a page that tells users to try updating the component from chrome://components. Right now I see those searches mostly end up on Adobe controlled sites, and a casual navigation of the links there don't suggest doing a manual component update.

https://helpx.adobe.com/flash-player/kb/enabling-flash-player-chrome.html

we might need a page similar to https://support.google.com/chrome/answer/6258784?hl=en that explains this?
I believe that pnacl handles this by advertising it's presence in navigator.plugins, prior to it's install.
My main concern is being able to distinguish the cases of "Flash is not present because we haven't downloaded it yet" and "Flash is not present because the user has disabled it (e.g. chrome://plugins → disable)." Additionally, seems unwise to falsely advertise Flash if component updates have been disabled (by group policy, flag, etc).

If pnacl has already solved this maybe we can copy what they did.

Comment 10 by wfh@chromium.org, Aug 26 2016

Maybe advertise in navigator.plugins except if the plugin is disabled (either by user or policy).

Comment 11 by wfh@chromium.org, Aug 26 2016

Blocking: 624086
Labels: -Pri-2 Pri-1
My opinion is that this is a blocker for the launch of this feature, given the number of sites that use some form of Flash detection rather than just instantiating the object.
Status: Started (was: Assigned)
Labels: ReleaseBlock-Stable
Marking as RBS.
Labels: Merge-Request-54

Comment 16 by dimu@chromium.org, Aug 31 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

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

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e450b2360ecde771cdfb67c647fef7523bde435f

commit e450b2360ecde771cdfb67c647fef7523bde435f
Author: Joshua Pawlicki <waffles@google.com>
Date: Thu Sep 01 23:12:11 2016

Register a fake Flash with chrome://plugins during browser start-up. This enables websites to query for the presence of Flash using navigator.plugins and navigator.mimeTypes even when we don't actually have it.

TEST=https://docs.google.com/a/google.com/document/d/1P0WslUXMUO9azLmWZ0AtQ-sGExWbHttr_2gQWDXf3MY/pub
BUG= 641448 ,641884, 641657 

Review-Url: https://codereview.chromium.org/2284053002
Cr-Commit-Position: refs/heads/master@{#415100}
(cherry picked from commit cd59e9b913623e8fec8bbc9d5517610bc1bfc9a7)

Review URL: https://codereview.chromium.org/2303983002 .

Cr-Commit-Position: refs/branch-heads/2840@{#113}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/browser/plugins/plugin_info_message_filter.cc
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client.cc
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client.h
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client_constants.cc

Status: Fixed (was: Started)
Cc: rnimmagadda@chromium.org
Fix is not landed yet for the Chrome Dev Version - 54.0.2840.14, hence couldn't verity it. Would monitor this issue and update it accordingly.

Base Commit Position for Chrome Dev Version - 54.0.2840.14 is 414607
Status: Verified (was: Fixed)
Confirming that Flash works fine in latest Dev - 54.0.2840.14. Flash Version : 22.0.0.209

Fix landed at Revision :  refs/branch-heads/2840@{#113} and 54.0.2840.14. was cut @ : branch-heads/2840@{#158}

Testing URLs.
=============
http://wwwns.akamai.com/hdnetwork/demo/flash/default.html
http://www.cnn.com/videos
http://www.adobe.com/software/flash/about/

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 27 2016

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

commit e450b2360ecde771cdfb67c647fef7523bde435f
Author: Joshua Pawlicki <waffles@google.com>
Date: Thu Sep 01 23:12:11 2016

Register a fake Flash with chrome://plugins during browser start-up. This enables websites to query for the presence of Flash using navigator.plugins and navigator.mimeTypes even when we don't actually have it.

TEST=https://docs.google.com/a/google.com/document/d/1P0WslUXMUO9azLmWZ0AtQ-sGExWbHttr_2gQWDXf3MY/pub
BUG= 641448 ,641884, 641657 

Review-Url: https://codereview.chromium.org/2284053002
Cr-Commit-Position: refs/heads/master@{#415100}
(cherry picked from commit cd59e9b913623e8fec8bbc9d5517610bc1bfc9a7)

Review URL: https://codereview.chromium.org/2303983002 .

Cr-Commit-Position: refs/branch-heads/2840@{#113}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/browser/plugins/plugin_info_message_filter.cc
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client.cc
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client.h
[modify] https://crrev.com/e450b2360ecde771cdfb67c647fef7523bde435f/chrome/common/chrome_content_client_constants.cc

Sign in to add a comment