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

Side by Side Diff: chrome/browser/extensions/api/sessions/sessions_api.cc

Issue 1342743002: Remove Profile and HostDesktopType dependencies from core TabRestore code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Mac Created 5 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
« no previous file with comments | « no previous file | chrome/browser/sessions/chrome_tab_restore_service_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/extensions/api/sessions/sessions_api.h" 5 #include "chrome/browser/extensions/api/sessions/sessions_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "chrome/browser/extensions/api/sessions/session_id.h" 16 #include "chrome/browser/extensions/api/sessions/session_id.h"
17 #include "chrome/browser/extensions/api/tabs/windows_util.h" 17 #include "chrome/browser/extensions/api/tabs/windows_util.h"
18 #include "chrome/browser/extensions/extension_tab_util.h" 18 #include "chrome/browser/extensions/extension_tab_util.h"
19 #include "chrome/browser/extensions/window_controller.h" 19 #include "chrome/browser/extensions/window_controller.h"
20 #include "chrome/browser/extensions/window_controller_list.h" 20 #include "chrome/browser/extensions/window_controller_list.h"
21 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/browser/search/search.h" 22 #include "chrome/browser/search/search.h"
23 #include "chrome/browser/sessions/session_restore.h" 23 #include "chrome/browser/sessions/session_restore.h"
24 #include "chrome/browser/sessions/tab_restore_service_delegate.h"
25 #include "chrome/browser/sessions/tab_restore_service_factory.h" 24 #include "chrome/browser/sessions/tab_restore_service_factory.h"
26 #include "chrome/browser/sync/profile_sync_service.h" 25 #include "chrome/browser/sync/profile_sync_service.h"
27 #include "chrome/browser/sync/profile_sync_service_factory.h" 26 #include "chrome/browser/sync/profile_sync_service_factory.h"
28 #include "chrome/browser/ui/browser.h" 27 #include "chrome/browser/ui/browser.h"
29 #include "chrome/browser/ui/browser_finder.h" 28 #include "chrome/browser/ui/browser_finder.h"
29 #include "chrome/browser/ui/browser_tab_restore_service_delegate.h"
30 #include "chrome/browser/ui/host_desktop.h" 30 #include "chrome/browser/ui/host_desktop.h"
31 #include "chrome/browser/ui/tabs/tab_strip_model.h" 31 #include "chrome/browser/ui/tabs/tab_strip_model.h"
32 #include "chrome/common/pref_names.h" 32 #include "chrome/common/pref_names.h"
33 #include "components/sync_driver/glue/synced_session.h" 33 #include "components/sync_driver/glue/synced_session.h"
34 #include "components/sync_driver/open_tabs_ui_delegate.h" 34 #include "components/sync_driver/open_tabs_ui_delegate.h"
35 #include "components/url_formatter/url_formatter.h" 35 #include "components/url_formatter/url_formatter.h"
36 #include "content/public/browser/web_contents.h" 36 #include "content/public/browser/web_contents.h"
37 #include "extensions/browser/extension_function_dispatcher.h" 37 #include "extensions/browser/extension_function_dispatcher.h"
38 #include "extensions/browser/extension_function_registry.h" 38 #include "extensions/browser/extension_function_registry.h"
39 #include "extensions/browser/extension_system.h" 39 #include "extensions/browser/extension_system.h"
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 chrome::HostDesktopType host_desktop_type = browser->host_desktop_type(); 445 chrome::HostDesktopType host_desktop_type = browser->host_desktop_type();
446 TabRestoreService::Entries entries = tab_restore_service->entries(); 446 TabRestoreService::Entries entries = tab_restore_service->entries();
447 447
448 if (entries.empty()) { 448 if (entries.empty()) {
449 SetError(kNoRecentlyClosedSessionsError); 449 SetError(kNoRecentlyClosedSessionsError);
450 return false; 450 return false;
451 } 451 }
452 452
453 bool is_window = is_window_entry(entries.front()); 453 bool is_window = is_window_entry(entries.front());
454 TabRestoreServiceDelegate* delegate = 454 TabRestoreServiceDelegate* delegate =
455 TabRestoreServiceDelegate::FindDelegateForWebContents( 455 BrowserTabRestoreServiceDelegate::FindDelegateForWebContents(
456 browser->tab_strip_model()->GetActiveWebContents()); 456 browser->tab_strip_model()->GetActiveWebContents());
457 std::vector<content::WebContents*> contents = 457 std::vector<content::WebContents*> contents =
458 tab_restore_service->RestoreMostRecentEntry(delegate, host_desktop_type); 458 tab_restore_service->RestoreMostRecentEntry(delegate, host_desktop_type);
459 DCHECK(contents.size()); 459 DCHECK(contents.size());
460 460
461 if (is_window) { 461 if (is_window) {
462 return SetResultRestoredWindow( 462 return SetResultRestoredWindow(
463 ExtensionTabUtil::GetWindowIdOfTab(contents[0])); 463 ExtensionTabUtil::GetWindowIdOfTab(contents[0]));
464 } 464 }
465 465
(...skipping 19 matching lines...) Expand all
485 it != entries.end(); ++it) { 485 it != entries.end(); ++it) {
486 if ((*it)->id == session_id.id()) { 486 if ((*it)->id == session_id.id()) {
487 // The only time a full window is being restored is if the entry ID 487 // The only time a full window is being restored is if the entry ID
488 // matches the provided ID and the entry type is Window. 488 // matches the provided ID and the entry type is Window.
489 is_window = is_window_entry(*it); 489 is_window = is_window_entry(*it);
490 break; 490 break;
491 } 491 }
492 } 492 }
493 493
494 TabRestoreServiceDelegate* delegate = 494 TabRestoreServiceDelegate* delegate =
495 TabRestoreServiceDelegate::FindDelegateForWebContents( 495 BrowserTabRestoreServiceDelegate::FindDelegateForWebContents(
496 browser->tab_strip_model()->GetActiveWebContents()); 496 browser->tab_strip_model()->GetActiveWebContents());
497 std::vector<content::WebContents*> contents = 497 std::vector<content::WebContents*> contents =
498 tab_restore_service->RestoreEntryById(delegate, 498 tab_restore_service->RestoreEntryById(delegate,
499 session_id.id(), 499 session_id.id(),
500 host_desktop_type, 500 host_desktop_type,
501 UNKNOWN); 501 UNKNOWN);
502 // If the ID is invalid, contents will be empty. 502 // If the ID is invalid, contents will be empty.
503 if (!contents.size()) { 503 if (!contents.size()) {
504 SetInvalidIdError(session_id.ToString()); 504 SetInvalidIdError(session_id.ToString());
505 return false; 505 return false;
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 return g_factory.Pointer(); 650 return g_factory.Pointer();
651 } 651 }
652 652
653 void SessionsAPI::OnListenerAdded(const EventListenerInfo& details) { 653 void SessionsAPI::OnListenerAdded(const EventListenerInfo& details) {
654 sessions_event_router_.reset( 654 sessions_event_router_.reset(
655 new SessionsEventRouter(Profile::FromBrowserContext(browser_context_))); 655 new SessionsEventRouter(Profile::FromBrowserContext(browser_context_)));
656 EventRouter::Get(browser_context_)->UnregisterObserver(this); 656 EventRouter::Get(browser_context_)->UnregisterObserver(this);
657 } 657 }
658 658
659 } // namespace extensions 659 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/sessions/chrome_tab_restore_service_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698