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

Side by Side Diff: chrome/browser/sync/sessions/page_revisit_broadcaster.cc

Issue 1408643002: [Sync] Componentize synced_tab_delegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test broken by rebase Created 5 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/page_revisit_broadcaster.h" 5 #include "chrome/browser/sync/sessions/page_revisit_broadcaster.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/metrics/field_trial.h" 11 #include "base/metrics/field_trial.h"
12 #include "chrome/browser/sync/glue/synced_session_util.h"
13 #include "chrome/browser/sync/sessions/sessions_sync_manager.h" 12 #include "chrome/browser/sync/sessions/sessions_sync_manager.h"
14 #include "components/bookmarks/browser/bookmark_model.h" 13 #include "components/bookmarks/browser/bookmark_model.h"
15 #include "components/history/core/browser/history_service.h" 14 #include "components/history/core/browser/history_service.h"
16 #include "components/sync_sessions/revisit/bookmarks_by_url_provider_impl.h" 15 #include "components/sync_sessions/revisit/bookmarks_by_url_provider_impl.h"
17 #include "components/sync_sessions/revisit/bookmarks_page_revisit_observer.h" 16 #include "components/sync_sessions/revisit/bookmarks_page_revisit_observer.h"
18 #include "components/sync_sessions/revisit/sessions_page_revisit_observer.h" 17 #include "components/sync_sessions/revisit/sessions_page_revisit_observer.h"
19 #include "components/sync_sessions/revisit/typed_url_page_revisit_observer.h" 18 #include "components/sync_sessions/revisit/typed_url_page_revisit_observer.h"
19 #include "components/sync_sessions/sync_sessions_client.h"
20 20
21 namespace browser_sync { 21 namespace browser_sync {
22 22
23 namespace { 23 namespace {
24 24
25 // Simple implementation of ForeignSessionsProvider that delegates to 25 // Simple implementation of ForeignSessionsProvider that delegates to
26 // SessionsSyncManager. It holds onto a non-owning pointer, with the assumption 26 // SessionsSyncManager. It holds onto a non-owning pointer, with the assumption
27 // that this class is only used by classes owned by SessionsSyncManager itself. 27 // that this class is only used by classes owned by SessionsSyncManager itself.
28 class SessionsSyncManagerWrapper 28 class SessionsSyncManagerWrapper
29 : public sync_sessions::ForeignSessionsProvider { 29 : public sync_sessions::ForeignSessionsProvider {
30 public: 30 public:
31 explicit SessionsSyncManagerWrapper(SessionsSyncManager* manager) 31 explicit SessionsSyncManagerWrapper(SessionsSyncManager* manager)
32 : manager_(manager) {} 32 : manager_(manager) {}
33 ~SessionsSyncManagerWrapper() override{}; 33 ~SessionsSyncManagerWrapper() override{};
34 bool GetAllForeignSessions( 34 bool GetAllForeignSessions(
35 std::vector<const sync_driver::SyncedSession*>* sessions) override { 35 std::vector<const sync_driver::SyncedSession*>* sessions) override {
36 return manager_->GetAllForeignSessions(sessions); 36 return manager_->GetAllForeignSessions(sessions);
37 } 37 }
38 38
39 private: 39 private:
40 SessionsSyncManager* manager_; 40 SessionsSyncManager* manager_;
41 DISALLOW_COPY_AND_ASSIGN(SessionsSyncManagerWrapper); 41 DISALLOW_COPY_AND_ASSIGN(SessionsSyncManagerWrapper);
42 }; 42 };
43 43
44 } // namespace 44 } // namespace
45 45
46 PageRevisitBroadcaster::PageRevisitBroadcaster( 46 PageRevisitBroadcaster::PageRevisitBroadcaster(
47 SessionsSyncManager* sessions, 47 SessionsSyncManager* sessions,
48 sync_sessions::SyncSessionsClient* sessions_client,
48 history::HistoryService* history, 49 history::HistoryService* history,
49 bookmarks::BookmarkModel* bookmarks) { 50 bookmarks::BookmarkModel* bookmarks)
51 : sessions_client_(sessions_client) {
50 const std::string group_name = 52 const std::string group_name =
51 base::FieldTrialList::FindFullName("PageRevisitInstrumentation"); 53 base::FieldTrialList::FindFullName("PageRevisitInstrumentation");
52 bool shouldInstrument = group_name == "Enabled"; 54 bool shouldInstrument = group_name == "Enabled";
53 if (shouldInstrument) { 55 if (shouldInstrument) {
54 revisit_observers_.push_back(new sync_sessions::SessionsPageRevisitObserver( 56 revisit_observers_.push_back(new sync_sessions::SessionsPageRevisitObserver(
55 scoped_ptr<sync_sessions::ForeignSessionsProvider>( 57 scoped_ptr<sync_sessions::ForeignSessionsProvider>(
56 new SessionsSyncManagerWrapper(sessions)))); 58 new SessionsSyncManagerWrapper(sessions))));
57 59
58 revisit_observers_.push_back( 60 revisit_observers_.push_back(
59 new sync_sessions::TypedUrlPageRevisitObserver(history)); 61 new sync_sessions::TypedUrlPageRevisitObserver(history));
60 62
61 revisit_observers_.push_back( 63 revisit_observers_.push_back(
62 new sync_sessions::BookmarksPageRevisitObserver( 64 new sync_sessions::BookmarksPageRevisitObserver(
63 scoped_ptr<sync_sessions::BookmarksByUrlProvider>( 65 scoped_ptr<sync_sessions::BookmarksByUrlProvider>(
64 new sync_sessions::BookmarksByUrlProviderImpl(bookmarks)))); 66 new sync_sessions::BookmarksByUrlProviderImpl(bookmarks))));
65 } 67 }
66 } 68 }
67 69
68 PageRevisitBroadcaster::~PageRevisitBroadcaster() {} 70 PageRevisitBroadcaster::~PageRevisitBroadcaster() {}
69 71
70 void PageRevisitBroadcaster::OnPageVisit(const GURL& url, 72 void PageRevisitBroadcaster::OnPageVisit(const GURL& url,
71 const ui::PageTransition transition) { 73 const ui::PageTransition transition) {
72 if (ShouldSyncURL(url)) { 74 if (sessions_client_->ShouldSyncURL(url)) {
73 sync_sessions::PageVisitObserver::TransitionType converted( 75 sync_sessions::PageVisitObserver::TransitionType converted(
74 ConvertTransitionEnum(transition)); 76 ConvertTransitionEnum(transition));
75 for (auto* observer : revisit_observers_) { 77 for (auto* observer : revisit_observers_) {
76 observer->OnPageVisit(url, converted); 78 observer->OnPageVisit(url, converted);
77 } 79 }
78 } 80 }
79 } 81 }
80 82
81 // Static 83 // Static
82 sync_sessions::PageVisitObserver::TransitionType 84 sync_sessions::PageVisitObserver::TransitionType
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 case ui::PAGE_TRANSITION_KEYWORD: 123 case ui::PAGE_TRANSITION_KEYWORD:
122 case ui::PAGE_TRANSITION_KEYWORD_GENERATED: 124 case ui::PAGE_TRANSITION_KEYWORD_GENERATED:
123 return sync_sessions::PageVisitObserver::kTransitionOmniboxTemplateSearch; 125 return sync_sessions::PageVisitObserver::kTransitionOmniboxTemplateSearch;
124 126
125 default: 127 default:
126 return sync_sessions::PageVisitObserver::kTransitionUnknown; 128 return sync_sessions::PageVisitObserver::kTransitionUnknown;
127 } 129 }
128 } 130 }
129 131
130 } // namespace browser_sync 132 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698