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

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

Issue 2343463003: [Sync] Fix namespaces for the sync_sessions component. (Closed)
Patch Set: Fix gn. Created 4 years, 3 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
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/foreign_session_handler.h" 5 #include "chrome/browser/ui/webui/foreign_session_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 registry->RegisterDictionaryPref(prefs::kNtpCollapsedForeignSessions); 138 registry->RegisterDictionaryPref(prefs::kNtpCollapsedForeignSessions);
139 } 139 }
140 140
141 // static 141 // static
142 void ForeignSessionHandler::OpenForeignSessionTab( 142 void ForeignSessionHandler::OpenForeignSessionTab(
143 content::WebUI* web_ui, 143 content::WebUI* web_ui,
144 const std::string& session_string_value, 144 const std::string& session_string_value,
145 SessionID::id_type window_num, 145 SessionID::id_type window_num,
146 SessionID::id_type tab_id, 146 SessionID::id_type tab_id,
147 const WindowOpenDisposition& disposition) { 147 const WindowOpenDisposition& disposition) {
148 sync_driver::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui); 148 sync_sessions::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui);
149 if (!open_tabs) 149 if (!open_tabs)
150 return; 150 return;
151 151
152 // We don't actually care about |window_num|, this is just a sanity check. 152 // We don't actually care about |window_num|, this is just a sanity check.
153 DCHECK_LT(kInvalidId, window_num); 153 DCHECK_LT(kInvalidId, window_num);
154 const ::sessions::SessionTab* tab; 154 const ::sessions::SessionTab* tab;
155 if (!open_tabs->GetForeignTab(session_string_value, tab_id, &tab)) { 155 if (!open_tabs->GetForeignTab(session_string_value, tab_id, &tab)) {
156 LOG(ERROR) << "Failed to load foreign tab."; 156 LOG(ERROR) << "Failed to load foreign tab.";
157 return; 157 return;
158 } 158 }
159 if (tab->navigations.empty()) { 159 if (tab->navigations.empty()) {
160 LOG(ERROR) << "Foreign tab no longer has valid navigations."; 160 LOG(ERROR) << "Foreign tab no longer has valid navigations.";
161 return; 161 return;
162 } 162 }
163 SessionRestore::RestoreForeignSessionTab( 163 SessionRestore::RestoreForeignSessionTab(
164 web_ui->GetWebContents(), *tab, disposition); 164 web_ui->GetWebContents(), *tab, disposition);
165 } 165 }
166 166
167 // static 167 // static
168 void ForeignSessionHandler::OpenForeignSessionWindows( 168 void ForeignSessionHandler::OpenForeignSessionWindows(
169 content::WebUI* web_ui, 169 content::WebUI* web_ui,
170 const std::string& session_string_value, 170 const std::string& session_string_value,
171 SessionID::id_type window_num) { 171 SessionID::id_type window_num) {
172 sync_driver::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui); 172 sync_sessions::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui);
173 if (!open_tabs) 173 if (!open_tabs)
174 return; 174 return;
175 175
176 std::vector<const ::sessions::SessionWindow*> windows; 176 std::vector<const ::sessions::SessionWindow*> windows;
177 // Note: we don't own the ForeignSessions themselves. 177 // Note: we don't own the ForeignSessions themselves.
178 if (!open_tabs->GetForeignSession(session_string_value, &windows)) { 178 if (!open_tabs->GetForeignSession(session_string_value, &windows)) {
179 LOG(ERROR) << "ForeignSessionHandler failed to get session data from" 179 LOG(ERROR) << "ForeignSessionHandler failed to get session data from"
180 "OpenTabsUIDelegate."; 180 "OpenTabsUIDelegate.";
181 return; 181 return;
182 } 182 }
183 std::vector<const ::sessions::SessionWindow*>::const_iterator iter_begin = 183 std::vector<const ::sessions::SessionWindow*>::const_iterator iter_begin =
184 windows.begin() + (window_num == kInvalidId ? 0 : window_num); 184 windows.begin() + (window_num == kInvalidId ? 0 : window_num);
185 std::vector<const ::sessions::SessionWindow*>::const_iterator iter_end = 185 std::vector<const ::sessions::SessionWindow*>::const_iterator iter_end =
186 window_num == kInvalidId ? 186 window_num == kInvalidId ?
187 std::vector<const ::sessions::SessionWindow*>::const_iterator( 187 std::vector<const ::sessions::SessionWindow*>::const_iterator(
188 windows.end()) : iter_begin + 1; 188 windows.end()) : iter_begin + 1;
189 SessionRestore::RestoreForeignSessionWindows(Profile::FromWebUI(web_ui), 189 SessionRestore::RestoreForeignSessionWindows(Profile::FromWebUI(web_ui),
190 iter_begin, iter_end); 190 iter_begin, iter_end);
191 } 191 }
192 192
193 // static 193 // static
194 sync_driver::OpenTabsUIDelegate* ForeignSessionHandler::GetOpenTabsUIDelegate( 194 sync_sessions::OpenTabsUIDelegate* ForeignSessionHandler::GetOpenTabsUIDelegate(
195 content::WebUI* web_ui) { 195 content::WebUI* web_ui) {
196 Profile* profile = Profile::FromWebUI(web_ui); 196 Profile* profile = Profile::FromWebUI(web_ui);
197 ProfileSyncService* service = 197 ProfileSyncService* service =
198 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile); 198 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile);
199 199
200 // Only return the delegate if it exists and it is done syncing sessions. 200 // Only return the delegate if it exists and it is done syncing sessions.
201 if (service && service->IsSyncActive()) 201 if (service && service->IsSyncActive())
202 return service->GetOpenTabsUIDelegate(); 202 return service->GetOpenTabsUIDelegate();
203 203
204 return NULL; 204 return NULL;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // Return a time like "1 hour ago", "2 days ago", etc. 248 // Return a time like "1 hour ago", "2 days ago", etc.
249 base::Time now = base::Time::Now(); 249 base::Time now = base::Time::Now();
250 // TimeFormat does not support negative TimeDelta values, so then we use 0. 250 // TimeFormat does not support negative TimeDelta values, so then we use 0.
251 return ui::TimeFormat::Simple( 251 return ui::TimeFormat::Simple(
252 ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT, 252 ui::TimeFormat::FORMAT_ELAPSED, ui::TimeFormat::LENGTH_SHORT,
253 now < time ? base::TimeDelta() : now - time); 253 now < time ? base::TimeDelta() : now - time);
254 } 254 }
255 255
256 void ForeignSessionHandler::HandleGetForeignSessions( 256 void ForeignSessionHandler::HandleGetForeignSessions(
257 const base::ListValue* /*args*/) { 257 const base::ListValue* /*args*/) {
258 sync_driver::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui()); 258 sync_sessions::OpenTabsUIDelegate* open_tabs =
259 std::vector<const sync_driver::SyncedSession*> sessions; 259 GetOpenTabsUIDelegate(web_ui());
260 std::vector<const sync_sessions::SyncedSession*> sessions;
260 261
261 base::ListValue session_list; 262 base::ListValue session_list;
262 if (open_tabs && open_tabs->GetAllForeignSessions(&sessions)) { 263 if (open_tabs && open_tabs->GetAllForeignSessions(&sessions)) {
263 if (!load_attempt_time_.is_null()) { 264 if (!load_attempt_time_.is_null()) {
264 UMA_HISTOGRAM_TIMES("Sync.SessionsRefreshDelay", 265 UMA_HISTOGRAM_TIMES("Sync.SessionsRefreshDelay",
265 base::TimeTicks::Now() - load_attempt_time_); 266 base::TimeTicks::Now() - load_attempt_time_);
266 load_attempt_time_ = base::TimeTicks(); 267 load_attempt_time_ = base::TimeTicks();
267 } 268 }
268 269
269 // Use a pref to keep track of sessions that were collapsed by the user. 270 // Use a pref to keep track of sessions that were collapsed by the user.
270 // To prevent the pref from accumulating stale sessions, clear it each time 271 // To prevent the pref from accumulating stale sessions, clear it each time
271 // and only add back sessions that are still current. 272 // and only add back sessions that are still current.
272 DictionaryPrefUpdate pref_update(Profile::FromWebUI(web_ui())->GetPrefs(), 273 DictionaryPrefUpdate pref_update(Profile::FromWebUI(web_ui())->GetPrefs(),
273 prefs::kNtpCollapsedForeignSessions); 274 prefs::kNtpCollapsedForeignSessions);
274 base::DictionaryValue* current_collapsed_sessions = pref_update.Get(); 275 base::DictionaryValue* current_collapsed_sessions = pref_update.Get();
275 std::unique_ptr<base::DictionaryValue> collapsed_sessions( 276 std::unique_ptr<base::DictionaryValue> collapsed_sessions(
276 current_collapsed_sessions->DeepCopy()); 277 current_collapsed_sessions->DeepCopy());
277 current_collapsed_sessions->Clear(); 278 current_collapsed_sessions->Clear();
278 279
279 // Note: we don't own the SyncedSessions themselves. 280 // Note: we don't own the SyncedSessions themselves.
280 for (size_t i = 0; i < sessions.size() && i < kMaxSessionsToShow; ++i) { 281 for (size_t i = 0; i < sessions.size() && i < kMaxSessionsToShow; ++i) {
281 const sync_driver::SyncedSession* session = sessions[i]; 282 const sync_sessions::SyncedSession* session = sessions[i];
282 const std::string& session_tag = session->session_tag; 283 const std::string& session_tag = session->session_tag;
283 std::unique_ptr<base::DictionaryValue> session_data( 284 std::unique_ptr<base::DictionaryValue> session_data(
284 new base::DictionaryValue()); 285 new base::DictionaryValue());
285 // The items which are to be written into |session_data| are also 286 // The items which are to be written into |session_data| are also
286 // described in chrome/browser/resources/history/externs.js 287 // described in chrome/browser/resources/history/externs.js
287 // @typedef for ForeignSession. Please update it whenever you add or 288 // @typedef for ForeignSession. Please update it whenever you add or
288 // remove any keys here. 289 // remove any keys here.
289 session_data->SetString("tag", session_tag); 290 session_data->SetString("tag", session_tag);
290 session_data->SetString("name", session->session_name); 291 session_data->SetString("name", session->session_name);
291 session_data->SetString("deviceType", session->DeviceTypeAsString()); 292 session_data->SetString("deviceType", session->DeviceTypeAsString());
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 return; 397 return;
397 } 398 }
398 399
399 // Get the session tag argument (required). 400 // Get the session tag argument (required).
400 std::string session_tag; 401 std::string session_tag;
401 if (!args->GetString(0, &session_tag)) { 402 if (!args->GetString(0, &session_tag)) {
402 LOG(ERROR) << "Unable to extract session tag"; 403 LOG(ERROR) << "Unable to extract session tag";
403 return; 404 return;
404 } 405 }
405 406
406 sync_driver::OpenTabsUIDelegate* open_tabs = GetOpenTabsUIDelegate(web_ui()); 407 sync_sessions::OpenTabsUIDelegate* open_tabs =
408 GetOpenTabsUIDelegate(web_ui());
407 if (open_tabs) 409 if (open_tabs)
408 open_tabs->DeleteForeignSession(session_tag); 410 open_tabs->DeleteForeignSession(session_tag);
409 } 411 }
410 412
411 void ForeignSessionHandler::HandleSetForeignSessionCollapsed( 413 void ForeignSessionHandler::HandleSetForeignSessionCollapsed(
412 const base::ListValue* args) { 414 const base::ListValue* args) {
413 if (args->GetSize() != 2U) { 415 if (args->GetSize() != 2U) {
414 LOG(ERROR) << "Wrong number of args to setForeignSessionCollapsed"; 416 LOG(ERROR) << "Wrong number of args to setForeignSessionCollapsed";
415 return; 417 return;
416 } 418 }
(...skipping 15 matching lines...) Expand all
432 // collapsed state persists. 434 // collapsed state persists.
433 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); 435 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs();
434 DictionaryPrefUpdate update(prefs, prefs::kNtpCollapsedForeignSessions); 436 DictionaryPrefUpdate update(prefs, prefs::kNtpCollapsedForeignSessions);
435 if (is_collapsed) 437 if (is_collapsed)
436 update.Get()->SetBoolean(session_tag, true); 438 update.Get()->SetBoolean(session_tag, true);
437 else 439 else
438 update.Get()->Remove(session_tag, NULL); 440 update.Get()->Remove(session_tag, NULL);
439 } 441 }
440 442
441 } // namespace browser_sync 443 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/foreign_session_handler.h ('k') | chrome/browser/ui/webui/ntp/ntp_user_data_logger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698