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

Side by Side Diff: chrome/browser/ui/webui/ntp/foreign_session_handler.cc

Issue 10167001: Sync: Prevent delay in showing the Other Devices button after first sign-in (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add comment w/ link to bug for a follow-up CL. Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ui/webui/ntp/foreign_session_handler.h" 5 #include "chrome/browser/ui/webui/ntp/foreign_session_handler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 base::Unretained(this))); 55 base::Unretained(this)));
56 web_ui()->RegisterMessageCallback("openForeignSession", 56 web_ui()->RegisterMessageCallback("openForeignSession",
57 base::Bind(&ForeignSessionHandler::HandleOpenForeignSession, 57 base::Bind(&ForeignSessionHandler::HandleOpenForeignSession,
58 base::Unretained(this))); 58 base::Unretained(this)));
59 web_ui()->RegisterMessageCallback("deleteForeignSession", 59 web_ui()->RegisterMessageCallback("deleteForeignSession",
60 base::Bind(&ForeignSessionHandler::HandleDeleteForeignSession, 60 base::Bind(&ForeignSessionHandler::HandleDeleteForeignSession,
61 base::Unretained(this))); 61 base::Unretained(this)));
62 } 62 }
63 63
64 void ForeignSessionHandler::Init() { 64 void ForeignSessionHandler::Init() {
65 // TODO(dubroy): Change this to only observe this notification on the current
66 // profile, rather than all sources (crbug.com/124717).
67 registrar_.Add(this, chrome::NOTIFICATION_SYNC_CONFIGURE_DONE,
68 content::NotificationService::AllSources());
69
65 Profile* profile = Profile::FromWebUI(web_ui()); 70 Profile* profile = Profile::FromWebUI(web_ui());
66 registrar_.Add(this, chrome::NOTIFICATION_SYNC_CONFIGURE_DONE,
67 content::Source<Profile>(profile));
68 registrar_.Add(this, chrome::NOTIFICATION_FOREIGN_SESSION_UPDATED, 71 registrar_.Add(this, chrome::NOTIFICATION_FOREIGN_SESSION_UPDATED,
69 content::Source<Profile>(profile)); 72 content::Source<Profile>(profile));
70 registrar_.Add(this, chrome::NOTIFICATION_FOREIGN_SESSION_DISABLED, 73 registrar_.Add(this, chrome::NOTIFICATION_FOREIGN_SESSION_DISABLED,
71 content::Source<Profile>(profile)); 74 content::Source<Profile>(profile));
72 } 75 }
73 76
74 void ForeignSessionHandler::Observe( 77 void ForeignSessionHandler::Observe(
75 int type, 78 int type,
76 const content::NotificationSource& source, 79 const content::NotificationSource& source,
77 const content::NotificationDetails& details) { 80 const content::NotificationDetails& details) {
(...skipping 21 matching lines...) Expand all
99 service->GetSessionModelAssociator(); 102 service->GetSessionModelAssociator();
100 if (!service->ShouldPushChanges()) 103 if (!service->ShouldPushChanges())
101 return NULL; 104 return NULL;
102 return model_associator; 105 return model_associator;
103 } 106 }
104 107
105 bool ForeignSessionHandler::IsTabSyncEnabled() { 108 bool ForeignSessionHandler::IsTabSyncEnabled() {
106 Profile* profile = Profile::FromWebUI(web_ui()); 109 Profile* profile = Profile::FromWebUI(web_ui());
107 ProfileSyncService* service = 110 ProfileSyncService* service =
108 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile); 111 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile);
109 return service && service->GetSessionModelAssociator(); 112 return service && service->GetPreferredDataTypes().Has(syncable::SESSIONS);
110 } 113 }
111 114
112 string16 ForeignSessionHandler::FormatSessionTime(const base::Time& time) { 115 string16 ForeignSessionHandler::FormatSessionTime(const base::Time& time) {
113 // Return a time like "1 hour ago", "2 days ago", etc. 116 // Return a time like "1 hour ago", "2 days ago", etc.
114 return TimeFormat::TimeElapsed(base::Time::Now() - time); 117 return TimeFormat::TimeElapsed(base::Time::Now() - time);
115 } 118 }
116 119
117 void ForeignSessionHandler::HandleGetForeignSessions(const ListValue* args) { 120 void ForeignSessionHandler::HandleGetForeignSessions(const ListValue* args) {
118 SessionModelAssociator* associator = GetModelAssociator(); 121 SessionModelAssociator* associator = GetModelAssociator();
119 std::vector<const SyncedSession*> sessions; 122 std::vector<const SyncedSession*> sessions;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 return false; 277 return false;
275 dictionary->SetString("type", "window"); 278 dictionary->SetString("type", "window");
276 dictionary->SetDouble("timestamp", 279 dictionary->SetDouble("timestamp",
277 static_cast<double>(window.timestamp.ToInternalValue())); 280 static_cast<double>(window.timestamp.ToInternalValue()));
278 dictionary->SetInteger("sessionId", window.window_id.id()); 281 dictionary->SetInteger("sessionId", window.window_id.id());
279 dictionary->Set("tabs", tab_values.release()); 282 dictionary->Set("tabs", tab_values.release());
280 return true; 283 return true;
281 } 284 }
282 285
283 } // namespace browser_sync 286 } // namespace browser_sync
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698