Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Unified Diff: chrome/browser/sync/glue/synced_tab_delegate_android.h

Issue 15499005: Add a new SyncedTabDelegate for Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add additional constructor. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 51%
copy from chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h
copy to chrome/browser/sync/glue/synced_tab_delegate_android.h
index 62717c4ec3deaecdedf52d8b225d85d245197ff9..ab384aff0b27351929c934555dbc88e2769c0b45 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,14 @@ 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();
+ virtual ~SyncedTabDelegateAndroid();
// Methods from SyncedTabDelegate.
virtual SessionID::id_type GetWindowId() const OVERRIDE;
@@ -33,14 +35,20 @@ class TabContentsSyncedTabDelegate
virtual content::NavigationEntry* GetEntryAtIndex(int i) const OVERRIDE;
virtual content::NavigationEntry* GetActiveEntry() const OVERRIDE;
virtual bool IsPinned() const OVERRIDE;
+ virtual bool HasWebContents() 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();
+ explicit SyncedTabDelegateAndroid(TabAndroid* owning_tab_);
+ 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_

Powered by Google App Engine
This is Rietveld 408576698