OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sync/sessions/sync_sessions_web_contents_router.h" | 5 #include "chrome/browser/sync/sessions/sync_sessions_web_contents_router.h" |
6 | 6 |
7 #include "chrome/browser/history/history_service_factory.h" | 7 #include "chrome/browser/history/history_service_factory.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #if !defined(OS_ANDROID) | 9 #if !defined(OS_ANDROID) |
10 #include "chrome/browser/sync/sessions/browser_list_router_helper.h" | 10 #include "chrome/browser/sync/sessions/browser_list_router_helper.h" |
11 #else | 11 #else |
12 #include "chrome/browser/android/tab_android.h" | 12 #include "chrome/browser/android/tab_android.h" |
13 #endif // !defined(OS_ANDROID) | 13 #endif // !defined(OS_ANDROID) |
14 #include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h" | 14 #include "chrome/browser/ui/sync/tab_contents_synced_tab_delegate.h" |
15 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 15 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
16 #include "components/history/core/browser/history_service.h" | 16 #include "components/history/core/browser/history_service.h" |
| 17 #include "components/sync_sessions/sync_sessions_client.h" |
17 #include "components/sync_sessions/synced_tab_delegate.h" | 18 #include "components/sync_sessions/synced_tab_delegate.h" |
18 | 19 |
19 namespace sync_sessions { | 20 namespace sync_sessions { |
20 | 21 |
21 namespace { | 22 namespace { |
22 | 23 |
23 SyncedTabDelegate* GetSyncedTabDelegateFromWebContents( | 24 SyncedTabDelegate* GetSyncedTabDelegateFromWebContents( |
24 content::WebContents* web_contents) { | 25 content::WebContents* web_contents) { |
25 #if defined(OS_ANDROID) | 26 #if defined(OS_ANDROID) |
26 TabAndroid* tab = TabAndroid::FromWebContents(web_contents); | 27 TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
(...skipping 18 matching lines...) Expand all Loading... |
45 } | 46 } |
46 | 47 |
47 #if !defined(OS_ANDROID) | 48 #if !defined(OS_ANDROID) |
48 browser_list_helper_ = base::MakeUnique<BrowserListRouterHelper>(this); | 49 browser_list_helper_ = base::MakeUnique<BrowserListRouterHelper>(this); |
49 #endif // !defined(OS_ANDROID) | 50 #endif // !defined(OS_ANDROID) |
50 } | 51 } |
51 | 52 |
52 SyncSessionsWebContentsRouter::~SyncSessionsWebContentsRouter() {} | 53 SyncSessionsWebContentsRouter::~SyncSessionsWebContentsRouter() {} |
53 | 54 |
54 void SyncSessionsWebContentsRouter::NotifyTabModified( | 55 void SyncSessionsWebContentsRouter::NotifyTabModified( |
55 content::WebContents* web_contents) { | 56 content::WebContents* web_contents, |
56 if (handler_ && web_contents) { | 57 bool page_load_completed) { |
57 SyncedTabDelegate* delegate = | 58 SyncedTabDelegate* delegate = nullptr; |
58 GetSyncedTabDelegateFromWebContents(web_contents); | 59 if (web_contents) |
59 if (delegate) | 60 delegate = GetSyncedTabDelegateFromWebContents(web_contents); |
60 handler_->OnLocalTabModified(delegate); | 61 |
| 62 if (handler_ && delegate) { |
| 63 handler_->OnLocalTabModified(delegate); |
61 } | 64 } |
62 | 65 |
63 if (!flare_.is_null()) { | 66 if (!flare_.is_null() && delegate && page_load_completed) { |
64 flare_.Run(syncer::SESSIONS); | 67 flare_.Run(syncer::SESSIONS); |
65 flare_.Reset(); | 68 flare_.Reset(); |
66 } | 69 } |
67 } | 70 } |
68 | 71 |
69 void SyncSessionsWebContentsRouter::InjectStartSyncFlare( | 72 void SyncSessionsWebContentsRouter::InjectStartSyncFlare( |
70 syncer::SyncableService::StartSyncFlare flare) { | 73 syncer::SyncableService::StartSyncFlare flare) { |
71 flare_ = flare; | 74 flare_ = flare; |
72 } | 75 } |
73 | 76 |
(...skipping 15 matching lines...) Expand all Loading... |
89 | 92 |
90 void SyncSessionsWebContentsRouter::Shutdown() { | 93 void SyncSessionsWebContentsRouter::Shutdown() { |
91 favicon_changed_subscription_.reset(); | 94 favicon_changed_subscription_.reset(); |
92 | 95 |
93 #if !defined(OS_ANDROID) | 96 #if !defined(OS_ANDROID) |
94 browser_list_helper_.reset(); | 97 browser_list_helper_.reset(); |
95 #endif // !defined(OS_ANDROID) | 98 #endif // !defined(OS_ANDROID) |
96 } | 99 } |
97 | 100 |
98 } // namespace sync_sessions | 101 } // namespace sync_sessions |
OLD | NEW |