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

Unified Diff: chrome/browser/extensions/app_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/app_sync_data.h
diff --git a/chrome/browser/extensions/app_sync_data.h b/chrome/browser/extensions/app_sync_data.h
index bdbb1641f3608d4491f87f45eb4b24bc7743e3dd..efa0f649962bba5b6d41e1d5a856d2b02bcd8942 100644
--- a/chrome/browser/extensions/app_sync_data.h
+++ b/chrome/browser/extensions/app_sync_data.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_EXTENSIONS_APP_SYNC_DATA_H_
#define CHROME_BROWSER_EXTENSIONS_APP_SYNC_DATA_H_
+#include "base/memory/scoped_ptr.h"
#include "chrome/browser/extensions/extension_sync_data.h"
#include "extensions/common/constants.h"
#include "sync/api/string_ordinal.h"
@@ -28,8 +29,6 @@ class ExtensionSyncData;
class AppSyncData {
public:
AppSyncData();
- explicit AppSyncData(const syncer::SyncData& sync_data);
- explicit AppSyncData(const syncer::SyncChange& sync_change);
AppSyncData(const Extension& extension,
bool enabled,
bool incognito_enabled,
@@ -40,6 +39,12 @@ class AppSyncData {
extensions::LaunchType launch_type);
~AppSyncData();
+ // For constructing an AppSyncData from received sync data.
not at google - send to devlin 2015/03/11 23:21:34 Mention these may be null (because...)
Yoyo Zhou 2015/03/12 00:25:48 Ok. Also changed to not use the implicit construct
+ static scoped_ptr<AppSyncData> CreateFromSyncData(
+ const syncer::SyncData& sync_data);
+ static scoped_ptr<AppSyncData> CreateFromSyncChange(
+ const syncer::SyncChange& sync_change);
+
// Retrive sync data from this class.
syncer::SyncData GetSyncData() const;
syncer::SyncChange GetSyncChange(
@@ -80,10 +85,10 @@ class AppSyncData {
// Convert an AppSyncData back out to a sync structure.
void PopulateAppSpecifics(sync_pb::AppSpecifics* specifics) const;
- // Populate this class from sync inputs.
- void PopulateFromAppSpecifics(
- const sync_pb::AppSpecifics& specifics);
- void PopulateFromSyncData(const syncer::SyncData& sync_data);
+ // Populate this class from sync inputs. Return true if the input
+ // was valid.
+ bool PopulateFromAppSpecifics(const sync_pb::AppSpecifics& specifics);
+ bool PopulateFromSyncData(const syncer::SyncData& sync_data);
ExtensionSyncData extension_sync_data_;
syncer::StringOrdinal app_launch_ordinal_;
@@ -97,4 +102,3 @@ class AppSyncData {
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_APP_SYNC_DATA_H_
-

Powered by Google App Engine
This is Rietveld 408576698