| Index: chrome/browser/sync/glue/synced_tab_delegate_android.h
|
| diff --git a/chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h b/chrome/browser/sync/glue/synced_tab_delegate_android.h
|
| similarity index 54%
|
| copy from chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h
|
| copy to chrome/browser/sync/glue/synced_tab_delegate_android.h
|
| index 51dfa189ce7f9d8936f1a1818d7ea00288b57026..ee50882d54607704ced541db7ec058e5e4ddb32d 100644
|
| --- a/chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h
|
| +++ b/chrome/browser/sync/glue/synced_tab_delegate_android.h
|
| @@ -1,12 +1,11 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright 2013 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 CHROME_BROWSER_UI_SYNC_TAB_CONTENTS_SYNCED_TAB_DELEGATE_H_
|
| -#define CHROME_BROWSER_UI_SYNC_TAB_CONTENTS_SYNCED_TAB_DELEGATE_H_
|
| +#ifndef CHROME_BROWSER_SYNC_GLUE_SYNCED_TAB_DELEGATE_ANDROID_H_
|
| +#define CHROME_BROWSER_SYNC_GLUE_SYNCED_TAB_DELEGATE_ANDROID_H_
|
|
|
| #include "base/compiler_specific.h"
|
| -#include "chrome/browser/sessions/session_id.h"
|
| #include "chrome/browser/sync/glue/synced_tab_delegate.h"
|
| #include "content/public/browser/web_contents_user_data.h"
|
|
|
| @@ -14,11 +13,15 @@ namespace content {
|
| class WebContents;
|
| }
|
|
|
| -class TabContentsSyncedTabDelegate
|
| - : public browser_sync::SyncedTabDelegate,
|
| - public content::WebContentsUserData<TabContentsSyncedTabDelegate> {
|
| +class TabAndroid;
|
| +// On Android a tab can exist even without web contents.
|
| +
|
| +// SyncedTabDelegateAndroid wraps TabContentsSyncedTabDelegate and provides
|
| +// a method to set web contents later when tab is brought to memory.
|
| +class SyncedTabDelegateAndroid : public browser_sync::SyncedTabDelegate {
|
| public:
|
| - virtual ~TabContentsSyncedTabDelegate();
|
| + explicit SyncedTabDelegateAndroid(TabAndroid* owning_tab_);
|
| + virtual ~SyncedTabDelegateAndroid();
|
|
|
| // Methods from SyncedTabDelegate.
|
| virtual SessionID::id_type GetWindowId() const OVERRIDE;
|
| @@ -32,18 +35,26 @@ class TabContentsSyncedTabDelegate
|
| virtual content::NavigationEntry* GetPendingEntry() const OVERRIDE;
|
| virtual content::NavigationEntry* GetEntryAtIndex(int i) const OVERRIDE;
|
| virtual content::NavigationEntry* GetActiveEntry() const OVERRIDE;
|
| + virtual bool IsPinned() const OVERRIDE;
|
| + virtual bool HasWebContents() const OVERRIDE;
|
| +
|
| + // Managed user related methods.
|
| +
|
| virtual bool ProfileIsManaged() const OVERRIDE;
|
| virtual const std::vector<const content::NavigationEntry*>*
|
| GetBlockedNavigations() const OVERRIDE;
|
| - virtual bool IsPinned() const OVERRIDE;
|
|
|
| - private:
|
| - explicit TabContentsSyncedTabDelegate(content::WebContents* web_contents);
|
| - friend class content::WebContentsUserData<TabContentsSyncedTabDelegate>;
|
| + // Set the web contents for this tab. Also creates
|
| + // TabContentsSyncedTabDelegate for this tab.
|
| + virtual void SetWebContents(content::WebContents* web_contents);
|
| + // Set web contents to null.
|
| + virtual void ResetWebContents();
|
|
|
| + private:
|
| content::WebContents* web_contents_;
|
| + TabAndroid* tab_android_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(TabContentsSyncedTabDelegate);
|
| + DISALLOW_COPY_AND_ASSIGN(SyncedTabDelegateAndroid);
|
| };
|
|
|
| -#endif // CHROME_BROWSER_UI_SYNC_TAB_CONTENTS_SYNCED_TAB_DELEGATE_H_
|
| +#endif // CHROME_BROWSER_SYNC_GLUE_SYNCED_TAB_DELEGATE_ANDROID_H_
|
|
|