ArcSessionManager today manages the ToS negotiation. We can extract ToS related code into individual class. This will help the work that always starts ARC, where ToS negotiation can happen later than ARC instance start.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/63a1da923764a69409907f8135d0b4bbc56f0a03 commit 63a1da923764a69409907f8135d0b4bbc56f0a03 Author: victorhsieh <victorhsieh@chromium.org> Date: Tue Jun 06 19:42:58 2017 Turn ArcSupportHost from Observer model to Delegate ArcSupportHost's subscribers have some overlap of responsibility, and there are several places to skip the work in case it is supposed to be done in the other subscriber. Instead, this change turns the observer model into several delegates for better responsibility split. TEST=unit_test --gtest_filter=Arc* TEST=browser_test --gtest_filer=Arc* TEST=(disable silent sign-in) accept ToS, click sign-in and unplug ethernet cable. See feedback button. Click retry, click sign-in, See Play Store. TEST=(disable silent sign-in) accept ToS, force logout from Chrome OS. Re-login. See the window pops up with sign-in button. TEST=git cl try BUG= 698418 Review-Url: https://codereview.chromium.org/2844383006 Cr-Commit-Position: refs/heads/master@{#477376} [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/arc_session_manager.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/arc_session_manager.h [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/arc_support_host.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/arc_support_host.h [add] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/arc_support_host_unittest.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/auth/arc_manual_auth_code_fetcher.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/auth/arc_manual_auth_code_fetcher.h [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/extensions/fake_arc_support.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/extensions/fake_arc_support.h [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/optin/arc_terms_of_service_default_negotiator.cc [modify] https://crrev.com/63a1da923764a69409907f8135d0b4bbc56f0a03/chrome/browser/chromeos/arc/optin/arc_terms_of_service_default_negotiator.h
Comment 1 by hidehiko@chromium.org
, Mar 6 2017