Remove Profile and HostDesktopType dependencies from core TabRestore code
The remaining //chrome-level dependencies in core TabRestore code are due to
static methods of TabRestoreServiceDelegate that take in a Profile* and a
chrome::HostDesktopType. This CL replaces the usage of these methods in core
TabRestore code with usage of new methods that have no //chrome-level
dependencies:
(1) Creates corresponding virtual methods on TabRestoreServiceClient, removing
the need to pass a Profile* (since TabRestoreServiceClient is itself an
abstraction of Profile).
(2) Changes the reference to chrome::HostDesktopType to be an opaque integer
representing the host desktop type. This opaque integer is not used by core
tab restore code.
To move TabRestoreServiceDelegate toward componentization, this CL also removes
those static methods entirely. Once the usage of the TabRestoreServiceDelegate
static methods is removed from core TabRestore code, the only remaining usage
of these methods is in desktop-specific code that knows about Browser. Thus, we
move the declaration of the static methods into
BrowserTabRestoreServiceDelegate.
BUG=530162, 530163
Review URL: https://codereview.chromium.org/
1342743002
Cr-Commit-Position: refs/heads/master@{#348663}