Skip to content
  • lukasza's avatar
    Move (most of) chrome/browser/drive into components/drive. · 8acc4eb1
    lukasza authored
    Note that drive_notification_manager_factory is left behind in
    chrome/browser/drive.  This is because it needs to stay dependent on the
    browser.  This is okay, because drive_notification_manager_factory is
    not needed by drive::FileSystem and other parts of drive libraries that
    we want to componentize.
    
    Also note that some things moved to components/drive continue to
    have slightly undesirable dependencies:
    
    - Tests are still built and executed as part of the browser test suites.
    
    - drive_uploader.cc depends on content/public/browser/power_save_blocker.h
      This means that to use components/drive outside of the browser,
      users of components/drive have to provide a no-op implementation
      of power_save_blocker.h
      The most desirable approach in the long-term would be to componentize
      power_save_blocker.h.  An alternative would be to continue with
      the state introduced by the current changelist (or to introduce
      drive-specific abstraction similar to power_save_blocker.h, but
      outside of the browser).
    
    - drive_api_util.cc depends on storage/browser/fileapi/file_stream_reader.h
      To get rid of this dependency, it is probably best to move
      FileStreamMd5Digester class closer to the only point of usage
      (c/b/chromeos/extensions/file_manager/private_api_file_system.cc).
    
    Landing via CQ with NOPRESUBMIT=true, because "git cl presubmit" incorrectly
    identifies target directory of a dependency (we are depending on
    third_party/cacheinvalidation/src/google/cacheinvalidation/types.proto
    and including the generated header via google/cacheinvalidation/types.pb.h).
    I believe this is a case of crbug.com/448570.  All other presubmit checks
    are passing AFAIK:
    
        $ git cl presubmit
        Running presubmit commit checks ...
    
        ** Presubmit ERRORS **
        Missing LGTM from OWNERS of dependencies added to DEPS:
            '+google/cacheinvalidation/types.pb.h',
    
            Presubmit checks took 2.9s to calculate.
    
    Test steps:
    1. Verify that things still build via GYP (and unit tests pass).
        $ GYP_DEFINES="use_goma=1 gomadir=... chromeos=1" gclient sync
        $ ninja -C out/Debug -j 150 chrome unit_tests \
                     interactive_ui_tests browser_tests drive
        $ out/Debug/unit_tests
    
    2. Verify that things still builds via GN.
        $ gn gen out/Default --args='target_os="chromeos" use_goma=true'
        $ ninja -C out/Default -j 150 chrome unit_tests \
                     interactive_ui_tests browser_tests components/drive
    
    TEST=Please see "Test steps" above.
    BUG=257943, 498951
    NOPRESUBMIT=true
    
    Review URL: https://codereview.chromium.org/1190203002
    
    Cr-Commit-Position: refs/heads/master@{#339512}
    8acc4eb1