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

Side by Side Diff: chrome/browser/extensions/extension_service.cc

Issue 8889048: Add preexisting local extensions to sync bundle when sync is enabled. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extension_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1287 matching lines...) Expand 10 before | Expand all | Expand 10 after
1298 bundle = &app_sync_bundle_; 1298 bundle = &app_sync_bundle_;
1299 bundle->filter = IsSyncableApp; 1299 bundle->filter = IsSyncableApp;
1300 break; 1300 break;
1301 1301
1302 default: 1302 default:
1303 LOG(FATAL) << "Got " << type << " ModelType"; 1303 LOG(FATAL) << "Got " << type << " ModelType";
1304 } 1304 }
1305 1305
1306 bundle->sync_processor = sync_processor; 1306 bundle->sync_processor = sync_processor;
1307 1307
1308 // Process extensions from sync.
1308 for (SyncDataList::const_iterator i = initial_sync_data.begin(); 1309 for (SyncDataList::const_iterator i = initial_sync_data.begin();
1309 i != initial_sync_data.end(); 1310 i != initial_sync_data.end();
1310 ++i) { 1311 ++i) {
1311 ExtensionSyncData extension_sync_data = ExtensionSyncData(*i); 1312 ExtensionSyncData extension_sync_data = ExtensionSyncData(*i);
1312 bundle->synced_extensions.insert(extension_sync_data.id()); 1313 bundle->synced_extensions.insert(extension_sync_data.id());
1313 ProcessExtensionSyncData(extension_sync_data, *bundle); 1314 ProcessExtensionSyncData(extension_sync_data, *bundle);
1314 } 1315 }
1315 1316
1317 // Process local extensions.
1318 // TODO(yoz): Determine whether pending extensions should be considered too.
1319 // See crbug.com/104399.
1316 SyncDataList sync_data_list = GetAllSyncData(type); 1320 SyncDataList sync_data_list = GetAllSyncData(type);
1317 SyncChangeList sync_change_list; 1321 SyncChangeList sync_change_list;
1318 for (SyncDataList::const_iterator i = sync_data_list.begin(); 1322 for (SyncDataList::const_iterator i = sync_data_list.begin();
1319 i != sync_data_list.end(); 1323 i != sync_data_list.end();
1320 ++i) { 1324 ++i) {
1321 if (bundle->HasExtensionId(i->GetTag())) 1325 if (bundle->HasExtensionId(i->GetTag())) {
1322 sync_change_list.push_back(SyncChange(SyncChange::ACTION_UPDATE, *i)); 1326 sync_change_list.push_back(SyncChange(SyncChange::ACTION_UPDATE, *i));
1323 else 1327 } else {
1328 bundle->synced_extensions.insert(i->GetTag());
1324 sync_change_list.push_back(SyncChange(SyncChange::ACTION_ADD, *i)); 1329 sync_change_list.push_back(SyncChange(SyncChange::ACTION_ADD, *i));
1330 }
1325 } 1331 }
1326 bundle->sync_processor->ProcessSyncChanges(FROM_HERE, sync_change_list); 1332 bundle->sync_processor->ProcessSyncChanges(FROM_HERE, sync_change_list);
1327 1333
1328 return SyncError(); 1334 return SyncError();
1329 } 1335 }
1330 1336
1331 void ExtensionService::StopSyncing(syncable::ModelType type) { 1337 void ExtensionService::StopSyncing(syncable::ModelType type) {
1332 SyncBundle* bundle = GetSyncBundleForModelType(type); 1338 SyncBundle* bundle = GetSyncBundleForModelType(type);
1333 CHECK(bundle); 1339 CHECK(bundle);
1334 // This is the simplest way to clear out the bundle. 1340 // This is the simplest way to clear out the bundle.
(...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after
2557 // 2563 //
2558 // To coexist with certain unit tests that don't have an IO thread message 2564 // To coexist with certain unit tests that don't have an IO thread message
2559 // loop available at ExtensionService shutdown, we lazy-initialize this 2565 // loop available at ExtensionService shutdown, we lazy-initialize this
2560 // object so that those cases neither create nor destroy a SocketController. 2566 // object so that those cases neither create nor destroy a SocketController.
2561 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 2567 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
2562 if (!socket_controller_) { 2568 if (!socket_controller_) {
2563 socket_controller_ = new extensions::SocketController(); 2569 socket_controller_ = new extensions::SocketController();
2564 } 2570 }
2565 return socket_controller_; 2571 return socket_controller_;
2566 } 2572 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/sync/test/integration/two_client_extensions_sync_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698