OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/glue/session_change_processor.h" | 5 #include "chrome/browser/sync/glue/session_change_processor.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 | 102 |
103 case chrome::NOTIFICATION_BROWSER_OPENED: { | 103 case chrome::NOTIFICATION_BROWSER_OPENED: { |
104 Browser* browser = content::Source<Browser>(source).ptr(); | 104 Browser* browser = content::Source<Browser>(source).ptr(); |
105 if (!browser || browser->profile() != profile_) { | 105 if (!browser || browser->profile() != profile_) { |
106 return; | 106 return; |
107 } | 107 } |
108 DVLOG(1) << "Received BROWSER_OPENED for profile " << profile_; | 108 DVLOG(1) << "Received BROWSER_OPENED for profile " << profile_; |
109 break; | 109 break; |
110 } | 110 } |
111 | 111 |
112 case content::NOTIFICATION_TAB_PARENTED: { | 112 case chrome::NOTIFICATION_TAB_PARENTED: { |
113 SyncedTabDelegate* tab = | 113 SyncedTabDelegate* tab = |
114 content::Source<TabContentsWrapper>(source).ptr()-> | 114 content::Source<TabContentsWrapper>(source).ptr()-> |
115 synced_tab_delegate(); | 115 synced_tab_delegate(); |
116 if (!tab || tab->profile() != profile_) { | 116 if (!tab || tab->profile() != profile_) { |
117 return; | 117 return; |
118 } | 118 } |
119 modified_tabs.push_back(tab); | 119 modified_tabs.push_back(tab); |
120 DVLOG(1) << "Received TAB_PARENTED for profile " << profile_; | 120 DVLOG(1) << "Received TAB_PARENTED for profile " << profile_; |
121 break; | 121 break; |
122 } | 122 } |
123 | 123 |
124 case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: { | 124 case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: { |
125 TabContentsWrapper* tab_contents_wrapper = | 125 TabContentsWrapper* tab_contents_wrapper = |
126 TabContentsWrapper::GetCurrentWrapperForContents( | 126 TabContentsWrapper::GetCurrentWrapperForContents( |
127 content::Source<WebContents>(source).ptr()); | 127 content::Source<WebContents>(source).ptr()); |
128 if (!tab_contents_wrapper) { | 128 if (!tab_contents_wrapper) { |
129 return; | 129 return; |
130 } | 130 } |
131 SyncedTabDelegate* tab = tab_contents_wrapper->synced_tab_delegate(); | 131 SyncedTabDelegate* tab = tab_contents_wrapper->synced_tab_delegate(); |
132 if (!tab || tab->profile() != profile_) { | 132 if (!tab || tab->profile() != profile_) { |
133 return; | 133 return; |
134 } | 134 } |
135 modified_tabs.push_back(tab); | 135 modified_tabs.push_back(tab); |
136 DVLOG(1) << "Received LOAD_COMPLETED_MAIN_FRAME for profile " << profile_; | 136 DVLOG(1) << "Received LOAD_COMPLETED_MAIN_FRAME for profile " << profile_; |
137 break; | 137 break; |
138 } | 138 } |
139 | 139 |
140 case content::NOTIFICATION_TAB_CLOSED: { | 140 case content::NOTIFICATION_WEB_CONTENTS_DESTROYED: { |
141 SyncedTabDelegate* tab = ExtractSyncedTabDelegate(source); | 141 TabContentsWrapper* tab_contents_wrapper = |
| 142 TabContentsWrapper::GetCurrentWrapperForContents( |
| 143 content::Source<WebContents>(source).ptr()); |
| 144 if (!tab_contents_wrapper) { |
| 145 return; |
| 146 } |
| 147 SyncedTabDelegate* tab = tab_contents_wrapper->synced_tab_delegate(); |
142 if (!tab || tab->profile() != profile_) { | 148 if (!tab || tab->profile() != profile_) { |
143 return; | 149 return; |
144 } | 150 } |
145 modified_tabs.push_back(tab); | 151 modified_tabs.push_back(tab); |
146 DVLOG(1) << "Received TAB_CLOSED for profile " << profile_; | 152 DVLOG(1) << "Received NOTIFICATION_WEB_CONTENTS_DESTROYED for profile " |
| 153 << profile_; |
147 break; | 154 break; |
148 } | 155 } |
149 | 156 |
150 case content::NOTIFICATION_NAV_LIST_PRUNED: { | 157 case content::NOTIFICATION_NAV_LIST_PRUNED: { |
151 SyncedTabDelegate* tab = ExtractSyncedTabDelegate(source); | 158 SyncedTabDelegate* tab = ExtractSyncedTabDelegate(source); |
152 if (!tab || tab->profile() != profile_) { | 159 if (!tab || tab->profile() != profile_) { |
153 return; | 160 return; |
154 } | 161 } |
155 modified_tabs.push_back(tab); | 162 modified_tabs.push_back(tab); |
156 DVLOG(1) << "Received NAV_LIST_PRUNED for profile " << profile_; | 163 DVLOG(1) << "Received NAV_LIST_PRUNED for profile " << profile_; |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 void SessionChangeProcessor::StopImpl() { | 341 void SessionChangeProcessor::StopImpl() { |
335 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 342 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
336 StopObserving(); | 343 StopObserving(); |
337 profile_ = NULL; | 344 profile_ = NULL; |
338 } | 345 } |
339 | 346 |
340 void SessionChangeProcessor::StartObserving() { | 347 void SessionChangeProcessor::StartObserving() { |
341 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
342 if (!profile_) | 349 if (!profile_) |
343 return; | 350 return; |
344 notification_registrar_.Add(this, content::NOTIFICATION_TAB_PARENTED, | 351 notification_registrar_.Add(this, chrome::NOTIFICATION_TAB_PARENTED, |
345 content::NotificationService::AllSources()); | 352 content::NotificationService::AllSources()); |
346 notification_registrar_.Add(this, content::NOTIFICATION_TAB_CLOSED, | 353 notification_registrar_.Add(this, |
| 354 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
347 content::NotificationService::AllSources()); | 355 content::NotificationService::AllSources()); |
348 notification_registrar_.Add(this, content::NOTIFICATION_NAV_LIST_PRUNED, | 356 notification_registrar_.Add(this, content::NOTIFICATION_NAV_LIST_PRUNED, |
349 content::NotificationService::AllSources()); | 357 content::NotificationService::AllSources()); |
350 notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_CHANGED, | 358 notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_CHANGED, |
351 content::NotificationService::AllSources()); | 359 content::NotificationService::AllSources()); |
352 notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 360 notification_registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
353 content::NotificationService::AllSources()); | 361 content::NotificationService::AllSources()); |
354 notification_registrar_.Add(this, chrome::NOTIFICATION_BROWSER_OPENED, | 362 notification_registrar_.Add(this, chrome::NOTIFICATION_BROWSER_OPENED, |
355 content::NotificationService::AllBrowserContextsAndSources()); | 363 content::NotificationService::AllBrowserContextsAndSources()); |
356 notification_registrar_.Add(this, | 364 notification_registrar_.Add(this, |
357 chrome::NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED, | 365 chrome::NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED, |
358 content::NotificationService::AllSources()); | 366 content::NotificationService::AllSources()); |
359 notification_registrar_.Add(this, | 367 notification_registrar_.Add(this, |
360 content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, | 368 content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, |
361 content::NotificationService::AllBrowserContextsAndSources()); | 369 content::NotificationService::AllBrowserContextsAndSources()); |
362 notification_registrar_.Add(this, chrome::NOTIFICATION_FAVICON_CHANGED, | 370 notification_registrar_.Add(this, chrome::NOTIFICATION_FAVICON_CHANGED, |
363 content::Source<Profile>(profile_)); | 371 content::Source<Profile>(profile_)); |
364 } | 372 } |
365 | 373 |
366 void SessionChangeProcessor::StopObserving() { | 374 void SessionChangeProcessor::StopObserving() { |
367 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 375 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
368 notification_registrar_.RemoveAll(); | 376 notification_registrar_.RemoveAll(); |
369 } | 377 } |
370 | 378 |
371 } // namespace browser_sync | 379 } // namespace browser_sync |
OLD | NEW |