• Caitlin Fischer's avatar
    Reland "Prevent deadlock by checking kRestrictGoogleWebVisibility..." · 4260dcdd
    Caitlin Fischer authored
    The original CL for this change stored the value of the feature in
    VariationIdsProvider. However, the provider lives only in the browser
    process. Thus, when the renderer process checks the value of the
    feature via the provider in variations_http_headers.cc, the value is
    always seen as false.
    
    The fix is to check the FeatureList, which lives in both processes.
    
    I locally reproduced the failure using the failing builders gn args:
    https://ci.chromium.org/p/chromium/builders/ci/Linux%20Tests%20(dbg)(1)/91893?
    
    I confirm that the fix passes with these gn args, too.
    
    This is a reland of b622082c
    
    Original change's description:
    > Prevent deadlock by checking kRestrictGoogleWebVisibility sooner.
    >
    > More specifically, check the feature's state after field trials have
    > been created from the variations seed and before the variations
    > header is updated.
    >
    > Checking the state for the first time in
    > VariationsIdsProvider::GenerateBase64EncodedProto() could cause a
    > deadlock.
    >
    > Bug: 1094303
    > Change-Id: I53fe3446e3a4567d4b9122b54642b5744eb8b46e
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2431556
    > Commit-Queue: Caitlin Fischer <caitlinfischer@google.com>
    > Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
    > Reviewed-by: Jesse Doherty <jwd@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#811566}
    
    Bug: 1094303
    Change-Id: I7f73c1cb089635d4084b37646307561d235b6a25
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2436766
    Commit-Queue: Caitlin Fischer <caitlinfischer@google.com>
    Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#811965}
    4260dcdd
variations_ids_provider.cc 16.2 KB