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

Unified Diff: chrome/browser/extensions/extension_sync_data.h

Issue 996213005: Don't crash when trying to create an ExtensionSyncData from invalid SyncData. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_sync_data.h
diff --git a/chrome/browser/extensions/extension_sync_data.h b/chrome/browser/extensions/extension_sync_data.h
index 9e6704353980dc433c69b89dc221f9dfb324fa13..2fc10df77ee9db2e0058c2a31a9b582537f01940 100644
--- a/chrome/browser/extensions/extension_sync_data.h
+++ b/chrome/browser/extensions/extension_sync_data.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/memory/scoped_ptr.h"
#include "base/version.h"
#include "sync/api/sync_change.h"
#include "url/gurl.h"
@@ -33,8 +34,6 @@ class ExtensionSyncData {
};
ExtensionSyncData();
- explicit ExtensionSyncData(const syncer::SyncData& sync_data);
- explicit ExtensionSyncData(const syncer::SyncChange& sync_change);
ExtensionSyncData(const Extension& extension,
bool enabled,
bool incognito_enabled,
@@ -42,6 +41,12 @@ class ExtensionSyncData {
OptionalBoolean all_urls_enabled);
~ExtensionSyncData();
+ // For constructing an ExtensionSyncData from received sync data.
not at google - send to devlin 2015/03/11 23:21:34 Same comment as before.
Yoyo Zhou 2015/03/12 00:25:49 Done.
+ static scoped_ptr<ExtensionSyncData> CreateFromSyncData(
+ const syncer::SyncData& sync_data);
+ static scoped_ptr<ExtensionSyncData> CreateFromSyncChange(
+ const syncer::SyncChange& sync_change);
+
// Retrieve sync data from this class.
syncer::SyncData GetSyncData() const;
syncer::SyncChange GetSyncChange(
@@ -50,8 +55,8 @@ class ExtensionSyncData {
// Convert an ExtensionSyncData back out to a sync structure.
void PopulateExtensionSpecifics(sync_pb::ExtensionSpecifics* specifics) const;
- // Populate this class from sync inputs.
- void PopulateFromExtensionSpecifics(
+ // Populate this class from sync inputs. Returns true if the input was valid.
+ bool PopulateFromExtensionSpecifics(
const sync_pb::ExtensionSpecifics& specifics);
void set_uninstalled(bool uninstalled);
@@ -77,7 +82,7 @@ class ExtensionSyncData {
private:
// Populate this class from sync inputs.
- void PopulateFromSyncData(const syncer::SyncData& sync_data);
+ bool PopulateFromSyncData(const syncer::SyncData& sync_data);
std::string id_;
bool uninstalled_;

Powered by Google App Engine
This is Rietveld 408576698