0
Commit Graph

36 Commits

Author SHA1 Message Date
Austin Sullivan
9920c2c8f1 Remove unused JSON compiler code
Helpfully removes uses of DictionaryValue::CreateDeepCopy()

Bug: 1187059
Change-Id: I3d575bf1963ef6bbf0f7b110198ae964c4dbb070
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3385258
Auto-Submit: Austin Sullivan <asully@chromium.org>
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Commit-Queue: Devlin Cronin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#960761}
2022-01-19 02:53:47 +00:00
Maggie Cai
0e72a7b681 [CodeHealth] Remove Append* from tools/json_schema_compiler/.
This CL removes the usage of deprecated ListValue::AppendString(),
ListValue::AppendInteger() and ListValue::AppendBoolean() API from
tools/json_schema_compiler/.

BUG=1187102, 1187099, 1187100

Change-Id: I2d6abf3742e202c62fa8bded33eb1f0803a00c60
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3026696
Commit-Queue: Maggie Cai <mxcai@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#902293}
2021-07-16 02:52:16 +00:00
Thomas Lukaszewicz
1aaf4253b0 CodeHealth: Remove use of Value::GetAs*
This change removes the use of Value::GetAs* and replaces with
Value::is_*(), Value::Get*(), Value::GetIf*().

Bug: 1187003, 1187006, 1187007
Change-Id: Idcefdb56d3438c42738e9dbbf046723c38da8e6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3022522
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Thomas Lukaszewicz <tluk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#900737}
2021-07-13 00:08:21 +00:00
Maksim Sadym
8b63f395a9 CodeHealth: Remove use of Value::GetAsDouble
This change removes the use of Value::GetAsDouble
and replaces with Value::is_double(), Value::GetDouble(),
Value::GetIfDouble().

tools/json_schema_compiler/util.cc

Bug: 1187006
Change-Id: Id22e104cff0bb3280975f4a0c9d3613055ea929b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3015324
Auto-Submit: Maksim Sadym <sadym@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#900477}
2021-07-12 15:02:29 +00:00
Anders Hartvoll Ruud
2c4b29ccd9 Remove base::ListValue::AppendDouble
Fixed: 1187101
AX-Relnotes: n/a
Change-Id: Ieb5a44fbb89c94b522dced0d4aafdc5d9ad8cd5b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2885266
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Matt Jones <mdjones@chromium.org>
Reviewed-by: weiliangc <weiliangc@chromium.org>
Reviewed-by: Rachel Blum <groby@chromium.org>
Reviewed-by: Renjie Tang <renjietang@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Filip Gorski <fgorski@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Xiaohui Chen <xiaohuic@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Owners-Override: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#883236}
2021-05-15 01:19:41 +00:00
Austin Sullivan
42a87be42a [Code Health] Remove uses of Value::CreateDeepCopy()
This CL was uploaded by git cl split.

R=rdevlin.cronin@chromium.org

Bug: 1187013
Change-Id: I08df010c22da04301004bc11059d0b765bc0e962
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2873790
Auto-Submit: Austin Sullivan <asully@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#879501}
2021-05-05 19:53:03 +00:00
Ayu Ishii
fe46fd3556 CodeHealth: Remove use of Value::GetAsBoolean
This change removes the use of Value::GetAsBoolean
and replaces with Value::is_bool(), Value::GetBool(),
Value::GetIfBool().

Bug: 1187003
Change-Id: Ie11137a1fe5d739a3cd932eb9d6213a046282804
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2869287
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Ayu Ishii <ayui@chromium.org>
Cr-Commit-Position: refs/heads/master@{#879054}
2021-05-04 20:47:27 +00:00
Minoru Chikamune
c5e2e5e816 CodeHealth: Remove use of Value::GetAsInteger
This change removes the use of Value::GetAsInteger and replaces with
Value::is_int(), Value::GetInt(), Value::GetIfInt().

Bug: 1187004
Change-Id: If41e925b14a7ec3d9d2c0eeeefff7d65f47a0b76
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2831129
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Minoru Chikamune <chikamune@chromium.org>
Cr-Commit-Position: refs/heads/master@{#873578}
2021-04-17 02:22:23 +00:00
Jan Wilken Dörrie
739ccc2128 [LSC] Replace base::string16 with std::u16string in //[f-z]*
This change replaces base::string16 with std::u16string in //[f-z]*

Reproduction steps:
$ git grep -lw 'base::string16' [f-z]* | \
      xargs sed -i 's/\bbase::string16\b/std::u16string/g'
$ git cl format

Bug: 1184339
Change-Id: I4e0ff2fd300c9fd9360dbf8f4b44e74f5f511797
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2752148
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Owners-Override: Jan Wilken Dörrie <jdoerrie@chromium.org>
Owners-Override: danakj <danakj@chromium.org>
Auto-Submit: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#862044}
2021-03-11 18:13:05 +00:00
Karandeep Bhatia
56dea612e1 JsonSchemaCompiler: Ensure we never concatenate different errors.
After https://chromium-review.googlesource.com/c/chromium/src/+/2519173,
we raise a hard error on failing to parse optional properties. As a
result, we should never be concatenating unrelated errors. Modify the
code to reflect the same.

BUG=1113513

Change-Id: If7a4220435378207d84e32e9dd093d63059e7a29
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2547422
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828993}
2020-11-19 00:19:26 +00:00
Jan Wilken Dörrie
85a66712ac [base] Replace GetList().{emplace,push}_back with Append
This change replaces usages of base::Value::GetList() followed by either
emplace_back() or push_back() with base::Value::Append(). This is
because of the upcoming change to GetList() to return a base::span
instead, which does not support either emplace_back() or push_back().

This is a mostly mechanical change. Steps to reproduce:
- sed -i 's/GetList().push_back/Append/g'
- sed -i 's/GetList().emplace_back/Append/g'
- git cl format
- Manually fixing the breakage in base/json/json_writer_unittest.cc
  and tools/json_schema_compiler/util.cc

TBR=afakhry,boliu,eugenebut,mmoroz,rdevlin.cronin,rockot@google.com,sandersd

Bug: 646113
Change-Id: I2f13fd0efa7fe712f7659500404192be4a344e14
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796427
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695711}
2019-09-11 18:35:09 +00:00
jdoerrie
9970f20e1b [base] Change Value::BlobStorage to std::vector<uint8_t>
This change updates Value::BlobStorage to be a std::vector<uint8_t>
instead of std::vector<char>. In order to minimize code-breakage, a
converting constructor is added.

TBR=fukino@chromium.org, boliu@chromium.org, rockot@chromium.org, chcunningham@chromium.org, bbudge@chromium.org

Bug: 646113, 864676
Change-Id: Ifbb0ecd116a95135ac7218d2accc8ac841e59db9
Reviewed-on: https://chromium-review.googlesource.com/1137819
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576996}
2018-07-20 21:41:18 +00:00
jdoerrie
76cee9c97a Rewrite base::Value::GetType to base::Value::type on Linux
This change replaces usages of base::Value::GetType with
base::Value::type for files compiled on Linux.

Bug: 646113
Change-Id: Idbb142c2f15fdb7a75ffee1d547d5de2129d83b0
Reviewed-on: https://chromium-review.googlesource.com/702456
Reviewed-by: Mike West <mkwst@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507204}
2017-10-06 22:42:42 +00:00
jdoerrie
4e1f66f1c9 Remove base::Value::GetAsBinary
This change removes the deprecated base::Value::GetAsBinary in favor of
base::Value::is_blob() and base::Value::GetBlob().

BUG=646113

Review-Url: https://codereview.chromium.org/2839753005
Cr-Commit-Position: refs/heads/master@{#467102}
2017-04-25 20:39:25 +00:00
jdoerrie
5328aff0ad Remove base::Value::Get{Buffer,Size}
This change removes the deprecated base::Value::Get{Buffer(),Size()} and
replaces them with base::Value::GetBlob().{data(),size()} while
simplifing the code where appropriate.

BUG=646113

Review-Url: https://codereview.chromium.org/2841623003
Cr-Commit-Position: refs/heads/master@{#467085}
2017-04-25 20:08:15 +00:00
jdoerrie
14b25da487 Remove base::BinaryValue
As a follow-up to typedeffing base::BinaryValue to base::Value in
http://crrev.com/2689673002 this change replaces all references to
base::StringValue by base::Value. Also it adds missing #includes of base/values.h.

BUG=646113

Review-Url: https://codereview.chromium.org/2799093006
Cr-Commit-Position: refs/heads/master@{#463568}
2017-04-11 07:45:50 +00:00
jdoerrie
dc72ee94d4 Make base::Value::TYPE a scoped enum.
As mentioned in the base::Value refactor proposal, base::Value::Type should be a
C++11 style scoped enumeration. This change addresses this issue by adding the
required keyword, making the necessary substitutions and adding casts where
needed.

TBR=stevenjb@chromium.org
BUG=646113
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2539363004
Cr-Commit-Position: refs/heads/master@{#436961}
2016-12-07 15:46:53 +00:00
thestig
e7615d6c7a Switch various ValueTypeToString()s to base::Value::GetTypeName().
Simplify code along the way.

Review-Url: https://codereview.chromium.org/2149253003
Cr-Commit-Position: refs/heads/master@{#406351}
2016-07-19 19:47:16 +00:00
dcheng
3646638f8a Remove ListValue::Append(new {Fundamental,String}Value(...)) pattern in //tools
The raw pointer overload of ListValue::Append() is deprecated and will
be removed. Instead, code should just write:
- ListValue::AppendBoolean()
- ListValue::AppendInteger()
- ListValue::AppendDouble()
- ListValue::AppendString()

BUG=581865

Review-Url: https://codereview.chromium.org/2036013002
Cr-Commit-Position: refs/heads/master@{#397571}
2016-06-03 01:00:16 +00:00
dcheng
992ba621b0 Convert generated extension bindings to use base::Value::CreateDeepCopy
BUG=581865

Review-Url: https://codereview.chromium.org/1926933002
Cr-Commit-Position: refs/heads/master@{#390239}
2016-04-27 23:48:33 +00:00
dcheng
a500b69aa0 Convert //tools to use std::unique_ptr
BUG=554298

Review URL: https://codereview.chromium.org/1869503004

Cr-Commit-Position: refs/heads/master@{#386168}
2016-04-08 19:59:12 +00:00
rdevlin.cronin
3d8ce9c0d3 [Extensions] Remove linked_ptr entirely from extensions generated code
After the work to implement movable types in extensions generated code
(completed in r384773), we now only use linked_ptrs to store base::Values in
containers. Luckily, we don't need to - convert these to scoped_ptrs and
eliminate all traces of linked_ptrs from extensions generated code.

BUG=595949
TBR=isherman@chromium.org (autofill IWYU fix)

Review URL: https://codereview.chromium.org/1854993002

Cr-Commit-Position: refs/heads/master@{#385005}
2016-04-04 21:15:23 +00:00
davidben
b50f00c17d Convert various vector_as_array calls to vector::data.
This gets everything that wasn't covered by a previous CL in flight.

BUG=556678
TBR=zea@chromium.org

Review URL: https://codereview.chromium.org/1471043004

Cr-Commit-Position: refs/heads/master@{#362283}
2015-12-01 00:02:51 +00:00
reillyg
89a17f7839 Add support for passing errors through PopulateArrayFromList.
When a JSON schema includes an array of objects PopulateArrayFromList
calls a specialized PopulateItem instance for the generated object
type. When compiled with generate_error_messages=True the generated
type's Populate method expects to receive an error parameter. This
patch adds versions of the PopulateArrayFromList and PopulateItem
functions that pass through and provide that parameter.

This capability is required for a new manifest key that will include
an array of objects being added as part of issue 468955.

Review URL: https://codereview.chromium.org/1128523003

Cr-Commit-Position: refs/heads/master@{#328471}
2015-05-06 02:35:09 +00:00
pneubeck
9387125812 json_schema_compiler: Use std::vector<char> for binary values.
This change enables ArrayBuffer[] in IDLs / json-schema descriptions of extension APIs.

This affects the code generated from these descriptions:
The C++ members (and arguments to the ::Create functions) that refer to binary values are now represented by std::vector<char> instead of std::string.

All usages are adapted in this CL.
While there, this change updates the affected code parts
 - to use vector_as_array where it makes sense
 - unnecessary copies are removed where easily possible
 - and range based assigns ( ::assign(InputIterator first, InputIterator last) or the same with c'tors) are uniformly used.

BUG=448383
TBR=stevenjb@chromium.org (chromeos/dbus was reviewed by bartfab@)

Review URL: https://codereview.chromium.org/820673004

Cr-Commit-Position: refs/heads/master@{#312183}
2015-01-20 11:27:44 +00:00
pneubeck
de496d5995 Cleanup: Some simplifications in json_schema_compiler.
There were several GetItemFromList functions that extract an element from a ListValue and converted it.
This change consolidates the list access into a single place and simplifies the GetItemFromList to the conversion only (renamed to PopulateItem).

No functional change.

Review URL: https://codereview.chromium.org/851673003

Cr-Commit-Position: refs/heads/master@{#312082}
2015-01-19 08:50:43 +00:00
avi@chromium.org
a644f1e204 Remove the Value class names from the global namespace.
BUG=88666
TEST=no change
TBR=ben@chromium.org

Review URL: https://codereview.chromium.org/116543010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242440 0039d316-1c4b-4281-b951-d872f2087c98
2013-12-24 15:31:21 +00:00
DHNishi@gmail.com
aa15e2e3f6 c/b/extensions: Do not use Value::Create*.
src/tools/json_schema_compiler: Do not use Value::Create*.

BUG=160586

Review URL: https://chromiumcodereview.appspot.com/22885002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217444 0039d316-1c4b-4281-b951-d872f2087c98
2013-08-14 02:13:58 +00:00
DHNishi@gmail.com
bee7a793de Add optional schema compiler error messages and unit tests.
Provides the ability to generate error messages within schema-compiled code for ease of debugging. 
Error messages may be disabled by adding a 'generate_error_messages' property to json schema, e.g. "generate_error_messages": false

Error generation mostly written by Aaron Jacobs (https://codereview.chromium.org/16462004/).

BUG=234834

Review URL: https://chromiumcodereview.appspot.com/22228002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217118 0039d316-1c4b-4281-b951-d872f2087c98
2013-08-12 23:45:38 +00:00
brettw@chromium.org
0c6c1e4328 Add base namespace to more values in sync and elsewhere.
This makes sync and net compile with no "using *Value".

BUG=

Review URL: https://codereview.chromium.org/17034006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207907 0039d316-1c4b-4281-b951-d872f2087c98
2013-06-21 19:42:19 +00:00
kalman@chromium.org
242d5e7aaf Overhaul JSON Schema Compiler to support a number of features required to
support the full range of JSON/IDL features, improve the interface of generated
code, and improve generated code formatting, notably:
 * Make "choices" generate a struct containing each possible type, rather than
   multiple fields with different names plus and enum. This makes it possible
   to embed choices inside containers - notably within arrays (as in bug).
   It also improves optional choices detection.
 * Remove the Any C++ type generated by "any", and model it as a base::Value.
 * Make "additionalProperties" generated a std::map with the actual types as
   values, rather than just a DictionaryValue forcing callers to extract types.
 * Fix enum naming, it was unnecessarily including the namespace as a prefix.

R=yoz@chromium.org
BUG=162044

Review URL: https://codereview.chromium.org/11827026

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177361 0039d316-1c4b-4281-b951-d872f2087c98
2013-01-17 06:50:31 +00:00
vabr@chromium.org
5d30f92bf4 Correct const accessors in base/values.(h|cc), Part II (ListValue)
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
2012-08-03 08:43:37 +00:00
calamity@chromium.org
feba21e3dd json_schema_compiler: any, additionalProperties, functions on types
Add support and tests for more json types. Also fixed a number of API jsons.

BUG=
TEST=


Review URL: http://codereview.chromium.org/9491002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124643 0039d316-1c4b-4281-b951-d872f2087c98
2012-03-02 15:05:27 +00:00
calamity@chromium.org
bd6c99b121 json_schema_compiler: make util::AddItemToList take a const reference to match the compiler.
BUG=
TEST=

Review URL: http://codereview.chromium.org/9423035

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122725 0039d316-1c4b-4281-b951-d872f2087c98
2012-02-20 00:49:01 +00:00
calamity@chromium.org
cfe4849050 Adds support for the "choices" and "any" types to json_schema_compiler, as well
as miscellaneous improvements to get at least 3 more schema files compiling:
windows, tabs, and the in-progress experimental.declarative.

For description of the generator, see http://codereview.chromium.org/9114036/

BUG=
TEST=


Review URL: http://codereview.chromium.org/9309044

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122082 0039d316-1c4b-4281-b951-d872f2087c98
2012-02-15 14:52:32 +00:00
calamity@chromium.org
15f08dde26 Code generation for extensions api
This is a preliminary code review for a code generator. The tool's purpose is to generate the tedious serialization code that needs to be written when defining a new extensions api. It generates from the json files in chrome/common/extensions/api.

As an example usage, chrome/browser/extensions/extension_permissions_api.cc has been changed to use a class generated from permissions.json.

The tool has been integrated into the build system and generates compiling and working code (for permissions.json at least)

BUG=
TEST=


Review URL: http://codereview.chromium.org/9114036

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119405 0039d316-1c4b-4281-b951-d872f2087c98
2012-01-27 07:29:48 +00:00