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

Side by Side Diff: chrome/browser/extensions/api/synced_notifications_private/synced_notifications_shim.h

Issue 780363003: Delete deprecated synced notifications code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_EXTENSIONS_API_SYNCED_NOTIFICATIONS_PRIVATE_SYNCED_NOTIFI CATIONS_SHIM_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_SYNCED_NOTIFICATIONS_PRIVATE_SYNCED_NOTIFI CATIONS_SHIM_H_
7
8 #include <string>
9
10 #include "base/callback.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "chrome/common/extensions/api/synced_notifications_private.h"
13 #include "sync/api/syncable_service.h"
14
15 namespace extensions {
16 struct Event;
17 }
18
19 // Shim for SYNCED_NOTIFICATIONS and SYNCED_NOTIFICATIONS_APP_INFO datatypes
20 // to interface with their extension backed sync code.
21 class SyncedNotificationsShim : public syncer::SyncableService {
22 public:
23 // Callback for firing extension events.
24 typedef base::Callback<void(scoped_ptr<extensions::Event>)> EventLauncher;
25
26 explicit SyncedNotificationsShim(const EventLauncher& event_launcher,
27 const base::Closure& refresh_request);
28 ~SyncedNotificationsShim() override;
29
30 // SyncableService interface.
31 syncer::SyncMergeResult MergeDataAndStartSyncing(
32 syncer::ModelType type,
33 const syncer::SyncDataList& initial_sync_data,
34 scoped_ptr<syncer::SyncChangeProcessor> sync_processor,
35 scoped_ptr<syncer::SyncErrorFactory> error_handler) override;
36 void StopSyncing(syncer::ModelType type) override;
37 syncer::SyncError ProcessSyncChanges(
38 const tracked_objects::Location& from_here,
39 const syncer::SyncChangeList& change_list) override;
40 syncer::SyncDataList GetAllSyncData(syncer::ModelType type) const override;
41
42 // JS interface methods (see synced_notifications_private.h).
43 bool GetInitialData(
44 extensions::api::synced_notifications_private::SyncDataType data_type,
45 std::vector<
46 linked_ptr<extensions::api::synced_notifications_private::SyncData> >*
47 js_data_list) const;
48 bool UpdateNotification(const std::string& changed_notification);
49 bool SetRenderContext(
50 extensions::api::synced_notifications_private::RefreshRequest
51 refresh_status,
52 const std::string& new_context);
53
54 // Returns whether both sync notification datatypes are up and running.
55 bool IsSyncReady() const;
56
57 private:
58 // Callback to trigger firing extension events.
59 EventLauncher event_launcher_;
60
61 // Callback to trigger synced notification refresh.
62 base::Closure refresh_request_;
63
64 // The sync change processors, initialized via MergeDataAndStartSyncing.
65 scoped_ptr<syncer::SyncChangeProcessor> notifications_change_processor_;
66 scoped_ptr<syncer::SyncChangeProcessor> app_info_change_processor_;
67
68 DISALLOW_COPY_AND_ASSIGN(SyncedNotificationsShim);
69 };
70
71 #endif // CHROME_BROWSER_EXTENSIONS_API_SYNCED_NOTIFICATIONS_PRIVATE_SYNCED_NOT IFICATIONS_SHIM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698