diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-22 03:32:07 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-22 03:32:07 +0000 |
commit | be80eae925e1bb08b0584e55cd47accceba09390 (patch) | |
tree | 2209732664ad91da73883747415c1bddb60ab25c /chrome/browser/extensions/extension_setting_changes.cc | |
parent | 15245b8b5298a41363183deba5f5e156c6d0ac74 (diff) | |
download | chromium_src-be80eae925e1bb08b0584e55cd47accceba09390.zip chromium_src-be80eae925e1bb08b0584e55cd47accceba09390.tar.gz chromium_src-be80eae925e1bb08b0584e55cd47accceba09390.tar.bz2 |
Re-commit 106660 with the crashing test disabled. Reverted in 106671.
Add onChanged events to the extension settings API, both from sync and between
split mode background pages.
BUG=97545
TEST=ExtensionSettingsStorageUnittest, ExtensionSettingsSyncUnittest, ExtensionSettingsApitest
Review URL: http://codereview.chromium.org/8177022
TBR=rsleevi@chromium.org
Review URL: http://codereview.chromium.org/8361027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106848 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_setting_changes.cc')
-rw-r--r-- | chrome/browser/extensions/extension_setting_changes.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_setting_changes.cc b/chrome/browser/extensions/extension_setting_changes.cc new file mode 100644 index 0000000..ce1a95c --- /dev/null +++ b/chrome/browser/extensions/extension_setting_changes.cc @@ -0,0 +1,38 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/extensions/extension_setting_changes.h" + +#include "base/json/json_writer.h" + +void ExtensionSettingChanges::Builder::AppendChange( + const std::string& key, Value* old_value, Value* new_value) { + DictionaryValue* change = new DictionaryValue(); + changes_.Append(change); + + change->SetString("key", key); + if (old_value) { + change->Set("oldValue", old_value); + } + if (new_value) { + change->Set("newValue", new_value); + } +} + +ExtensionSettingChanges ExtensionSettingChanges::Builder::Build() { + return ExtensionSettingChanges(&changes_); +} + +ExtensionSettingChanges::ExtensionSettingChanges(ListValue* changes) + : inner_(new Inner()) { + inner_->changes_.Swap(changes); +} + +ExtensionSettingChanges::~ExtensionSettingChanges() {} + +std::string ExtensionSettingChanges::ToJson() const { + std::string changes_json; + base::JSONWriter::Write(&inner_->changes_, false, &changes_json); + return changes_json; +} |