| Index: chrome/browser/sync/glue/synced_tab_delegate_android.cc
|
| diff --git a/chrome/browser/sync/glue/synced_tab_delegate_android.cc b/chrome/browser/sync/glue/synced_tab_delegate_android.cc
|
| index 8173dfbba0da516fab9a53583d80217945893943..8637ffc93791b99ae1f632ada92730eda044006e 100644
|
| --- a/chrome/browser/sync/glue/synced_tab_delegate_android.cc
|
| +++ b/chrome/browser/sync/glue/synced_tab_delegate_android.cc
|
| @@ -8,6 +8,7 @@
|
| #include "chrome/browser/android/tab_android.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/sync/glue/synced_window_delegate.h"
|
| +#include "chrome/browser/sync/glue/synced_window_delegates_getter_android.h"
|
| #include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/web_contents.h"
|
| @@ -16,13 +17,17 @@ using content::NavigationEntry;
|
|
|
| namespace browser_sync {
|
| SyncedTabDelegateAndroid::SyncedTabDelegateAndroid(TabAndroid* tab_android)
|
| - : web_contents_(NULL), tab_android_(tab_android) {}
|
| + : web_contents_(nullptr),
|
| + tab_android_(tab_android),
|
| + tab_contents_delegate_(nullptr) {
|
| + SetSyncedWindowGetter(
|
| + make_scoped_ptr(new SyncedWindowDelegatesGetterAndroid()));
|
| +}
|
|
|
| SyncedTabDelegateAndroid::~SyncedTabDelegateAndroid() {}
|
|
|
| SessionID::id_type SyncedTabDelegateAndroid::GetWindowId() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetWindowId();
|
| + return tab_contents_delegate_->GetWindowId();
|
| }
|
|
|
| SessionID::id_type SyncedTabDelegateAndroid::GetSessionId() const {
|
| @@ -30,53 +35,43 @@ SessionID::id_type SyncedTabDelegateAndroid::GetSessionId() const {
|
| }
|
|
|
| bool SyncedTabDelegateAndroid::IsBeingDestroyed() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->IsBeingDestroyed();
|
| + return tab_contents_delegate_->IsBeingDestroyed();
|
| }
|
|
|
| Profile* SyncedTabDelegateAndroid::profile() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->profile();
|
| + return tab_contents_delegate_->profile();
|
| }
|
|
|
| std::string SyncedTabDelegateAndroid::GetExtensionAppId() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetExtensionAppId();
|
| + return tab_contents_delegate_->GetExtensionAppId();
|
| }
|
|
|
| int SyncedTabDelegateAndroid::GetCurrentEntryIndex() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetCurrentEntryIndex();
|
| + return tab_contents_delegate_->GetCurrentEntryIndex();
|
| }
|
|
|
| int SyncedTabDelegateAndroid::GetEntryCount() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetEntryCount();
|
| + return tab_contents_delegate_->GetEntryCount();
|
| }
|
|
|
| int SyncedTabDelegateAndroid::GetPendingEntryIndex() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetPendingEntryIndex();
|
| + return tab_contents_delegate_->GetPendingEntryIndex();
|
| }
|
|
|
| NavigationEntry* SyncedTabDelegateAndroid::GetPendingEntry() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetPendingEntry();
|
| + return tab_contents_delegate_->GetPendingEntry();
|
| }
|
|
|
| NavigationEntry* SyncedTabDelegateAndroid::GetEntryAtIndex(int i) const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetEntryAtIndex(i);
|
| + return tab_contents_delegate_->GetEntryAtIndex(i);
|
| }
|
|
|
| NavigationEntry* SyncedTabDelegateAndroid::GetActiveEntry() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetActiveEntry();
|
| + return tab_contents_delegate_->GetActiveEntry();
|
| }
|
|
|
| bool SyncedTabDelegateAndroid::IsPinned() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->IsPinned();
|
| + return tab_contents_delegate_->IsPinned();
|
| }
|
|
|
| bool SyncedTabDelegateAndroid::HasWebContents() const {
|
| @@ -91,19 +86,23 @@ void SyncedTabDelegateAndroid::SetWebContents(
|
| content::WebContents* web_contents) {
|
| web_contents_ = web_contents;
|
| TabContentsSyncedTabDelegate::CreateForWebContents(web_contents_);
|
| + // Store the TabContentsSyncedTabDelegate object that was created.
|
| + tab_contents_delegate_ =
|
| + TabContentsSyncedTabDelegate::FromWebContents(web_contents_);
|
| + // Tell it how to get SyncedWindowDelegates or some calls will fail.
|
| + tab_contents_delegate_->SetSyncedWindowGetter(
|
| + make_scoped_ptr(new SyncedWindowDelegatesGetterAndroid()));
|
| }
|
|
|
| void SyncedTabDelegateAndroid::ResetWebContents() { web_contents_ = NULL; }
|
|
|
| bool SyncedTabDelegateAndroid::ProfileIsSupervised() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->ProfileIsSupervised();
|
| + return tab_contents_delegate_->ProfileIsSupervised();
|
| }
|
|
|
| const std::vector<const content::NavigationEntry*>*
|
| SyncedTabDelegateAndroid::GetBlockedNavigations() const {
|
| - return TabContentsSyncedTabDelegate::FromWebContents(web_contents_)
|
| - ->GetBlockedNavigations();
|
| + return tab_contents_delegate_->GetBlockedNavigations();
|
| }
|
|
|
| int SyncedTabDelegateAndroid::GetSyncId() const {
|
| @@ -118,7 +117,7 @@ void SyncedTabDelegateAndroid::SetSyncId(int sync_id) {
|
| SyncedTabDelegate* SyncedTabDelegate::ImplFromWebContents(
|
| content::WebContents* web_contents) {
|
| TabAndroid* tab = TabAndroid::FromWebContents(web_contents);
|
| - return tab ? tab->GetSyncedTabDelegate() : NULL;
|
| + return tab ? tab->GetSyncedTabDelegate() : nullptr;
|
| }
|
|
|
| } // namespace browser_sync
|
|
|