Skip to content
  • wfh's avatar
    Prefer System Flash over non-local component updated Flash. · 73d6faae
    wfh authored
    This avoids attempting to load a Flash DLL off a network drive if doing
    so would not result in loading an old version of Flash.
    
    When determining which Flash to load the following algorithm is evaluated:
    
    First, a candidate list of Flash versions is compiled sourced from:
    
     - System Flash (Adobe updated) - (could be the debug version)
     - Bundled Flash (ships with Chrome)
     - Component updated Flash (updated on user data dir by component updater)*
    
    * Note this really only applies on Linux when the component updated Flash
    is already available at Chrome startup.
    
    The highest single version will always win. If so, just use that version.
    
    If there are two or more available version of Flash with the same version
    then preference is given in the following order
    
     - Flash content Debugger
     - Bundled Flash
     - Local-drive Component updated Flash
     - System Flash
     - Network-mounted component updated Flash
    
    Because of the way that the pepperflash component updater injects its
    version of Flash later on in Chrome load, the network drive determination
    is done in two places, firstly inside ChromeContentClient when building
    a candidate list, since Linux could have a component updated flash
    ready for use at this point, and secondly when the pepperflash component
    comes to inject the new version it will evalulate the order based on
    the rule above on whether to inject itself.
    
    TEST=https://docs.google.com/document/d/1iTQiaqjuHsKV4cPqSOet-eJKWb2SsJLp2ieDj_Mul4s/preview
    TEST=unit_tests --gtest_filter=ChromeContentClientTest.*
    BUG=572131
    
    Review URL: https://codereview.chromium.org/1867833003
    
    Cr-Commit-Position: refs/heads/master@{#389006}
    73d6faae