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_ |