| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_HANDOFF_HANDOFF_MANAGER_H_ | 
 | #define COMPONENTS_HANDOFF_HANDOFF_MANAGER_H_ | 
 |  | 
 | #import <Foundation/Foundation.h> | 
 |  | 
 | #include "base/mac/availability.h" | 
 | #include "build/build_config.h" | 
 | #include "components/handoff/handoff_utility.h" | 
 | #include "url/gurl.h" | 
 |  | 
 | @class NSUserActivity; | 
 |  | 
 | #if defined(OS_IOS) | 
 | namespace user_prefs { | 
 | class PrefRegistrySyncable; | 
 | }  // namespace user_prefs | 
 | #endif | 
 |  | 
 | // Maintains all of the state relevant to the Handoff feature. Allows Chrome to | 
 | // hand off the current active URL to other devices. | 
 | @interface HandoffManager : NSObject | 
 |  | 
 | #if defined(OS_IOS) | 
 | // Registers preferences related to Handoff. | 
 | + (void)registerBrowserStatePrefs:(user_prefs::PrefRegistrySyncable*)registry; | 
 | #endif | 
 |  | 
 | // The active URL is defined as the URL of the most recently accessed tab. This | 
 | // method should be called any time the active URL might have changed. This | 
 | // method is idempotent. | 
 | - (void)updateActiveURL:(const GURL&)url API_AVAILABLE(macos(10.10)); | 
 |  | 
 | @end | 
 |  | 
 | #if defined(OS_IOS) | 
 | @interface HandoffManager (TestingOnly) | 
 | - (NSURL*)userActivityWebpageURL; | 
 | @end | 
 | #endif | 
 |  | 
 | #endif  // COMPONENTS_HANDOFF_HANDOFF_MANAGER_H_ |