• Victor Hugo Vianna Silva's avatar
    Sync: Support omitting sensitive info in ConstructAboutInformation() · c3c5fb3d
    Victor Hugo Vianna Silva authored
    ConstructAboutInformation() gathers debugging information about the sync
    state. It's employed both to power the sync-internals page - a debugging
    page only accessible locally - as well as to compose logs sent to Google
    in case of crashes (provided the user has agreed to this). For the
    latter use case, the caller used to manually filter a section containing
    PII, for privacy. Delegating this responsibility to the caller was bad
    since the return value is quite "weakly typed" (base::DictionaryValue).
    This meant that one might easily add new sensitive information to the
    return value while forgetting to update the filter in the caller.
    
    In this CL we transfer this responsibility to the method, by exposing
    an include_sensitive_data parameter. Additionally, we now force the
    constructor of a "section" to specify whether it is sensitive or not.
    This last part makes the code more privacy-aware, which should make it
    less likely to accidentally leak any data (even if this solution isn't
    bullet-proof).
    
    Bug: 973820
    Change-Id: I99138a741c26755e138ac0a60dd08815aa90a10c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2467939
    Commit-Queue: Victor Vianna <victorvianna@google.com>
    Reviewed-by: default avatarMarc Treib <treib@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#816616}
    c3c5fb3d
about_sync_util.cc 25.4 KB