summaryrefslogtreecommitdiffstats
path: root/base/values.h
Commit message (Collapse)AuthorAgeFilesLines
* Add some useful features to base::Values:kalman@chromium.org2012-09-141-0/+18
| | | | | | | | | | | | - Typed Append methods to ListValue (AppendString etc) including AppendStrings. - Typed SetWithoutPathExpansion methods (SetStringWithoutPathExpansion etc). The latter is important because it's a common mistake to use Set rather than SetWithoutPathExpansion; the existence of these extra methods should help. Review URL: https://chromiumcodereview.appspot.com/10914246 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156716 0039d316-1c4b-4281-b951-d872f2087c98
* Add an ostream operator to Value (based on JSONWriter) so that assertionskalman@chromium.org2012-09-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | involving Value::Equals are much easier to understand. For example, ListValue list; DictionaryValue dict; ASSERT_TRUE(Value::Equals(&list, &dict)) << list << "does not equal\n" << dict; will now print Value of: Value::Equals(&list, &dict) Actual: false Expected: true [ ] does not equal { } Review URL: https://chromiumcodereview.appspot.com/10915194 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156226 0039d316-1c4b-4281-b951-d872f2087c98
* Clean-up inline members of nested classes (base/)hans@chromium.org2012-08-101-5/+6
| | | | | | | | | | | | | | | | Due to a bug, the Clang-plugin style checker failed to warn about inline constructors, destructors, non-empty virtual methods, etc. for nested classes. The plugin has been fixed, and this patch is part of a clean-up of all the code that now causes the plugin to issue errors. BUG=139346 Review URL: https://chromiumcodereview.appspot.com/10825273 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151016 0039d316-1c4b-4281-b951-d872f2087c98
* Correct const accessors in base/values.(h|cc), Part II (ListValue)vabr@chromium.org2012-08-031-4/+8
| | | | | | | | | | | | | | For problem description and other info please see the BUG page. This is for ListValue. BUG=138946 TEST=N/A (no fix & no new feature) TBR=jar,zelidrag,scottbyer,mpcomplete,darin,achuith,sky,estade,atwilson,grt,thakis,jamesr,hans,sadrul,pastarmovj Review URL: https://chromiumcodereview.appspot.com/10837044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149819 0039d316-1c4b-4281-b951-d872f2087c98
* Correct const accessors in base/values.(h|cc)vabr@chromium.org2012-07-271-8/+18
| | | | | | | | | | | | | For problem description and other info please see the BUG page. This is for DictionaryValue. BUG=138946 TEST=N/A (no fix & no new feature) TBR=jar scottbyer achuith agl mnissler davemoore garykac akalin hans bulach phajdan.jr jamesr Review URL: https://chromiumcodereview.appspot.com/10834004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148833 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* persist known media galleries (only directories for now)estade@chromium.org2012-07-031-0/+4
| | | | | | | | | | | not yet used by anything. BUG=134929 TEST=manual Review URL: https://chromiumcodereview.appspot.com/10704033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145248 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting due to memory waterfall failures.jhawkins@chromium.org2012-05-201-13/+13
| | | | | | | | | | | | | Revert 138044 - Allowed BinaryValue to take a NULL buffer. BUG=127630 Review URL: https://chromiumcodereview.appspot.com/10389088 TBR=mitchellwrosen@chromium.org Review URL: https://chromiumcodereview.appspot.com/10388207 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138050 0039d316-1c4b-4281-b951-d872f2087c98
* Allowed BinaryValue to take a NULL buffer.mitchellwrosen@chromium.org2012-05-191-13/+13
| | | | | | | | BUG=127630 Review URL: https://chromiumcodereview.appspot.com/10389088 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138044 0039d316-1c4b-4281-b951-d872f2087c98
* Rewrite base::JSONReader to be 35-40% faster, depending on the input string.rsesek@chromium.org2012-05-161-9/+6
| | | | | | | | | | | | | | | | This change does the following: * Parses the input string and generates the object representation in O(n) time. * Optimizes string decoding by using StringPiece where possible, which also introduces the JSON_DETACHABLE_CHILDREN parser option. * Makes JSONReader a simpler interface by hiding the parser details in an internal JSONParser class. BUG=49212,111581,121469 TEST=Hopefully covered by all test suites. New tests added for edge cases. Review URL: https://chromiumcodereview.appspot.com/10035042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137430 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Fix a leak.jhawkins@chromium.org2012-05-091-5/+6
| | | | | | | | | | | | | | | | | | | Also: * Clarify the interface for DictionaryValue::MergeDictionary. * Add tests that MergeDictionary performs a deep copy. FYI: * ReadExternalExtensionPrefFile() needs unit testing. CID=103941 BUG=none TEST=ValuesTest.MergeDictionaryDeepCopy R=finnur TBR=brettw Review URL: https://chromiumcodereview.appspot.com/10358020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136137 0039d316-1c4b-4281-b951-d872f2087c98
* Value::GetAsDictionarybattre@chromium.org2011-11-261-0/+7
| | | | | | | | | | BUG=none TEST=no Review URL: http://codereview.chromium.org/8701002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111623 0039d316-1c4b-4281-b951-d872f2087c98
* Add a key/value iterator to DictionaryValue (in addition to the existing keykalman@chromium.org2011-11-081-0/+18
| | | | | | | | | | | iterator). BUG= TEST=ValuesTest.DictionaryIterator Review URL: http://codereview.chromium.org/8351059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109102 0039d316-1c4b-4281-b951-d872f2087c98
* Adds Find method to the ListValue class.pastarmovj@chromium.org2011-09-191-0/+5
| | | | | | | | | | | | | This method makes working with lists easierand will be needed from the refactored signed settings code. BUG=chromium-os:14054 TEST=base_unittest --gtest_filter=ValuesTest.List Review URL: http://codereview.chromium.org/7892052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101741 0039d316-1c4b-4281-b951-d872f2087c98
* Revert recent changes to base::Valuestevenjb@google.com2011-08-261-5/+0
| | | | | | | | | | | | | | | | | | Reverts: 98223: base: Add AsList() function to Value API. 98266: base: Add AsBinary() function to Value API. There are two issues with these commits: 1. libcros uses base::Value to pass data to Chrome. It includes values.h from libchrome which contains its own copy. This is a terrible design flaw in libcros and is being addressed (http://crosbug.com/19576), however we need some time to address this before we can make these changes without breaking Chrome on ChromeOS. 2. AsList() and AsBinary() should be const. The fact that they were not const caused re-factoring that changed const Value& input arguments to Value*, which is against the spec. When we re-introduce this, these members should be made const. BUG=chromium-os:19604 TEST=Check bots + ChromeOS autotests Review URL: http://codereview.chromium.org/7753020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98378 0039d316-1c4b-4281-b951-d872f2087c98
* base: Add AsBinary() function to Value API.tfarina@chromium.org2011-08-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This function should simplify some constructions. Instead of: if (!value->IsType(Value::TYPE_BINARY)) return false; BinaryValue* binary_value = static_cast<BinaryValue*>(value); You can do: BinaryValue* binary_value = value->AsBinary(); if (!binary_value) return false; BUG=None TEST=base_unittests --gtest_filter=Values* R=evan@chromium.org Review URL: http://codereview.chromium.org/7748017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98266 0039d316-1c4b-4281-b951-d872f2087c98
* base: Add AsList() function to Value API.tfarina@chromium.org2011-08-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | This function should simplify some constructions. Instead of: if (!value->IsType(Value::TYPE_LIST)) return false; ListValue* list_value = static_cast<ListValue*>(value); You can do: ListValue* list_value = value->AsList(); if (!list_value) return false; BUG=None TEST=base_unittests --gtest_filter=Values* R=evan@chromium.org,tony@chromium.org Review URL: http://codereview.chromium.org/7714004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98223 0039d316-1c4b-4281-b951-d872f2087c98
* Reverts debugging code added in hopes of tracking crash. This alsosky@chromium.org2011-08-241-15/+2
| | | | | | | | | | | | | | | reverts 97997 as it was only needed with this debugging code. I'm TBRing this as it's just a revert (well, two reverts). BUG=91396 TEST=none R=brettw@chromium.org,mnissler@chromium.org,ben@chromium.org TBR=brettw@chromium.org,mnissler@chromium.org,ben@chromium.org Review URL: http://codereview.chromium.org/7714038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98115 0039d316-1c4b-4281-b951-d872f2087c98
* Remove check_on_delete for ChromeOS to avoid change to sizeof(Value)satorux@chromium.org2011-08-241-0/+8
| | | | | | | | | BUG=chromium-os:19577 TEST=chrome compiles on all platforms Review URL: http://codereview.chromium.org/7714024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97997 0039d316-1c4b-4281-b951-d872f2087c98
* Adds some debugging code in hopes of figuring out a crash. As far as Isky@chromium.org2011-08-231-2/+7
| | | | | | | | | | | | | | | can tell the crash is occurring because prefs has a Value that has been deleted so that when we go to update the Value we crash. I only enabled the debugging code for non-incognito prefs. If it turns out the crashes are in incognito-prefs, I'll update that next. BUG=91396 TEST=none R=brettw@chromium.org,bauerb@chromium.org,ben@chromium.org Review URL: http://codereview.chromium.org/7698004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97815 0039d316-1c4b-4281-b951-d872f2087c98
* base: Fix the TODO in ListValue::Remove().tfarina@chromium.org2011-08-131-2/+3
| | | | | | | | | | | | | Change the return type of Remove() to bool, and add a size_t output parameter. BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7618021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96702 0039d316-1c4b-4281-b951-d872f2087c98
* base: Rename ValueType to something less redundant as _just_ Type.tfarina@chromium.org2011-08-121-6/+6
| | | | | | | | | | | | | | | | | | | So instead of: base::Value::ValueType We write a nice: base::Value::Type BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7634018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96614 0039d316-1c4b-4281-b951-d872f2087c98
* base: Add missing OVERRIDE annotations to overridden methods from Value.tfarina@chromium.org2011-08-111-24/+25
| | | | | | | | | | | BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7617016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96452 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove CreateBinaryValue() function as it's redundant.tfarina@chromium.org2011-08-111-4/+0
| | | | | | | | | | | | | | It does the same thing of BinaryValue::Create(), it's more verbose, and used only in unittest. BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7623017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96413 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove using declaration of FundamentalValue as it's no longer necessary.tfarina@chromium.org2011-08-111-1/+0
| | | | | | | | | | | BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7619006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96400 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove using declaration of BinaryValue as it's no longer necessary.tfarina@chromium.org2011-08-051-5/+3
| | | | | | | | | | | BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7550026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95638 0039d316-1c4b-4281-b951-d872f2087c98
* Rename BASE_API to BASE_EXPORT.darin@chromium.org2011-08-051-8/+8
| | | | | | | R=rvargas Review URL: http://codereview.chromium.org/7461141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95618 0039d316-1c4b-4281-b951-d872f2087c98
* base: Remove unnecessary using declarations from values.htfarina@chromium.org2011-08-041-3/+0
| | | | | | | | | | | BUG=None TEST=None R=evan@chromium.org Review URL: http://codereview.chromium.org/7572032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95538 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/values.h into the base namespace. This includes a cros DEPS rolldmazzoni@chromium.org2011-07-121-0/+20
| | | | | | | | | | with a minor change to that code since libcros also uses base/values.h. BUG=88666 TEST=none Review URL: http://codereview.chromium.org/7259019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92208 0039d316-1c4b-4281-b951-d872f2087c98
* Explicitly ShutdownOnUIThread the HostContentSettingsMap when destroying the ↵bauerb@chromium.org2011-07-121-0/+2
| | | | | | | | | | | | Profile. Also, get rid of Profile dependencies while we're at it. BUG=88037,88557 Review URL: http://codereview.chromium.org/7218073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92128 0039d316-1c4b-4281-b951-d872f2087c98
* Virtual destructors should have virtual keyword.hans@chromium.org2011-05-251-1/+1
| | | | | | | | | | | | | | | | | Make sure user-declared virtual destructors always have the virtual keyword. The Clang style-check plugin will check for this soon. No functionality change: virtual is only added to destructors that are already implicitly virtual. Also fix a couple of in-line destructor definitions. BUG=83408 TEST=none Review URL: http://codereview.chromium.org/7064033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86587 0039d316-1c4b-4281-b951-d872f2087c98
* [Sync] Remove more boilerplate from chrome://sync-internals js filesakalin@chromium.org2011-05-101-0/+5
| | | | | | | | | | | | | | | | | | Add new JsEventDetails class which encapsulates a DictionaryValue. Make JS events use that instead of JsArgList. Automate listening to log events in sync_log.js. Cleaned up javascript files a bit. Add Swap() method to DictionaryValue. BUG= TEST= Review URL: http://codereview.chromium.org/6951009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84767 0039d316-1c4b-4281-b951-d872f2087c98
* There's no need to export the key_iterator class, and exporting itdarin@chromium.org2011-04-291-1/+1
| | | | | | | | | | | breaks VS2005 compilation. R=rvargas BUG=80925 TEST=none Review URL: http://codereview.chromium.org/6880306 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83548 0039d316-1c4b-4281-b951-d872f2087c98
* Base: A few more files using BASE_API (for base.dll)rvargas@google.com2011-03-241-8/+9
| | | | | | | | BUG=76996 TEST=none Review URL: http://codereview.chromium.org/6729002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79303 0039d316-1c4b-4281-b951-d872f2087c98
* Let the method ListValue::AppendIfNotPresent always take ownership of the ↵markusheintz@chromium.org2011-03-181-2/+3
| | | | | | | | | | | |in_value|. In any cases. What is passed in get's owned. BUG=none TEST=none Review URL: http://codereview.chromium.org/6695019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78686 0039d316-1c4b-4281-b951-d872f2087c98
* Move FilePath <-> Value conversions into a separate file.bauerb@chromium.org2011-03-151-4/+0
| | | | | | | | | BUG=75276 TEST=none Review URL: http://codereview.chromium.org/6691011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78182 0039d316-1c4b-4281-b951-d872f2087c98
* Add MoveToThread method to PrefMember to make it safe to read pref values ↵bauerb@chromium.org2011-02-211-3/+7
| | | | | | | | | | | from other threads. BUG=73385 TEST=PrefMemberTest.MoveToThread Review URL: http://codereview.chromium.org/6524041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75555 0039d316-1c4b-4281-b951-d872f2087c98
* Rename Real* to Double* in values.* and dependent filesarv@chromium.org2011-02-011-9/+9
| | | | | | | | | BUG=None TEST=Compiles and passes all tests Review URL: http://codereview.chromium.org/6248026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73232 0039d316-1c4b-4281-b951-d872f2087c98
* Made return types of various Value::DeepCopy() implementations more specificakalin@chromium.org2011-01-181-10/+13
| | | | | | | | | | | | | | | | | | Since C++ supports covariant return types, a subclass of Value can return its own pointer type for Value::DeepCopy(). Also made signatures of Value::Create*Value() more specific. Removed now-unnecessary casts. Added test for covariant return types. BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6324004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71617 0039d316-1c4b-4281-b951-d872f2087c98
* Start sorting methods in class declarations.erg@google.com2011-01-071-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | A lot of our headers are a mess and aren't organized. Impose the following order on files in the base/ directory: class Blah { each public/protected/private section: typedefs; enums; static constants; ctors; dtors; methods; overridden virtual methods; data members; }; BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6081007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70749 0039d316-1c4b-4281-b951-d872f2087c98
* Handle policy refresh internally in ConfigurationPolicyPrefStore.mnissler@chromium.org2010-12-231-21/+0
| | | | | | | | | | | This removes the final bits of thread-switching madness from PrefValueStore and also makes sure only the PrefStores and PrefService instances that are actually affected by a policy change get reconfigured. BUG=67715 TEST=unit tests in configuration_policy_provider_unittest.cc Review URL: http://codereview.chromium.org/6074003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70050 0039d316-1c4b-4281-b951-d872f2087c98
* Add the "virtual" keyword on method overrides that are missing it.erg@google.com2010-12-081-10/+10
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5648004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68606 0039d316-1c4b-4281-b951-d872f2087c98
* JavaScript to Value bridge.scottbyer@google.com2010-12-071-0/+2
| | | | | | | | | | | | Add more values that we can get back from JavaScript. Very useful for writing additional DOMUI browser test, and maybe in other cases as well. BUG=none TEST=RenderViewHostTest.ExecuteJavascriptInWebFrameNotifyResult Review URL: http://codereview.chromium.org/4924001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68416 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for Bug 50726 "Save extension list and "winning" prefs from extensions"bauerb@chromium.org2010-12-061-0/+4
| | | | | | | | | | | | | | | | | | | This is a redesign for http://codereview.chromium.org/4852002/ following discussions. The goal of this patch is to ensure that Chrome maintains the order in which extensions apply their preferences between restarts. This may be an issue if two extensions overwrite each others preferences. Furthermore, it ensures that preferences are persisted to disk between browser restarts. Therefore, previous settings are immediately available when the browser is restarted. A description of the design has been published https://docs.google.com/a/google.com/document/d/1E_HX_cUpET1gH2gDunGIU1EOywMM6FEOuVU6TlpnSwo/edit?hl=en for review and comments. - Sorry, accessible Google internally only. This CL requires http://codereview.chromium.org/5204006/ Contributed by battre@google.com BUG=50726 TEST=none Review URL: http://codereview.chromium.org/5213002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68355 0039d316-1c4b-4281-b951-d872f2087c98
* Chrome side of consolidating zoom code for pepper plugins (i.e. pdf) and the ↵jam@chromium.org2010-10-011-0/+2
| | | | | | | | rest of Chrome. Allows plugins to have different zoom ranges, and also to update zoom on its own. Review URL: http://codereview.chromium.org/3419023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61153 0039d316-1c4b-4281-b951-d872f2087c98
* Initial version of chrome.experimental.sidebar extension API. brettw@chromium.org2010-08-191-0/+5
| | | | | | | | | | | | | | BUG=51084 TEST=Run interactive_ui_tests and browser_tests. New: - sidebar Extension API (design doc: https://docs.google.com/a/google.com/Doc?docid=0AV4Qg3xyZ8RQZGZtbWIydDJfNWc0eHJtbmRm&hl=en); - Sidebar panel in Chrome browser view; Original review=http://codereview.chromium.org/2836040/show Patch by alekseys@google.com git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56716 0039d316-1c4b-4281-b951-d872f2087c98
* Remove remaining deprecated wstring methods from base/values.{cc,h}.viettrungluu@chromium.org2010-08-171-21/+0
| | | | | | | | | BUG=23581 TEST=builds and passes tests Review URL: http://codereview.chromium.org/3109025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56362 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated wstring DictionaryValue ↵viettrungluu@chromium.org2010-08-171-10/+0
| | | | | | | | | | | Get{Boolean,Integer,Real,Binary,Dictionary,List}(). BUG=23581 TEST=builds and passes tests Review URL: http://codereview.chromium.org/3187004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56302 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated wstring Get(As)String() methods from Value, etc.viettrungluu@chromium.org2010-08-161-13/+0
| | | | | | | | | BUG=23581 TEST=builds and passes tests Review URL: http://codereview.chromium.org/3117017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56187 0039d316-1c4b-4281-b951-d872f2087c98
* Remove (deprecated) wstring version of Value::CreateStringValue().viettrungluu@chromium.org2010-08-151-3/+0
| | | | | | | | | BUG=23581 TEST=builds and passes tests Review URL: http://codereview.chromium.org/3136012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56170 0039d316-1c4b-4281-b951-d872f2087c98