diff options
author | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 09:36:49 +0000 |
---|---|---|
committer | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 09:36:49 +0000 |
commit | 6cec7ee2e7ee985410f26b0700274aa92d0ad3a6 (patch) | |
tree | 8c65a1a335fe53fa570dd4ae7b1a80189b82b6dd /chrome/common | |
parent | 2e3ce511e2db5de848daf7d8ae59b899f17940f9 (diff) | |
download | chromium_src-6cec7ee2e7ee985410f26b0700274aa92d0ad3a6.zip chromium_src-6cec7ee2e7ee985410f26b0700274aa92d0ad3a6.tar.gz chromium_src-6cec7ee2e7ee985410f26b0700274aa92d0ad3a6.tar.bz2 |
Fix generation of API documentation for arrays of objects
If a type reflects an array of objects with specified properties, such as here
"id": "HttpHeaders",
"type": "array",
"items": {
"type": "object",
"properties": {...}
},
the API documentation generator would swallow the contents of "properties". The documentation would just contain the information that an array of objects is passed, without details of the keys stored in the objects. This is fixed in this CL.
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/8411001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107704 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r-- | chrome/common/extensions/api/extension_api.json | 6 | ||||
-rw-r--r-- | chrome/common/extensions/docs/experimental.webRequest.html | 135 | ||||
-rw-r--r-- | chrome/common/extensions/docs/extension.html | 4 | ||||
-rw-r--r-- | chrome/common/extensions/docs/js/api_page_generator.js | 11 | ||||
-rw-r--r-- | chrome/common/extensions/docs/webNavigation.html | 201 |
5 files changed, 348 insertions, 9 deletions
diff --git a/chrome/common/extensions/api/extension_api.json b/chrome/common/extensions/api/extension_api.json index 9202df4..7e25c33 100644 --- a/chrome/common/extensions/api/extension_api.json +++ b/chrome/common/extensions/api/extension_api.json @@ -5799,12 +5799,12 @@ { "id": "HttpHeaders", "type": "array", - "description": "An array of HTTP headers, in the form of name/value pairs.", + "description": "An array of HTTP headers. Each header is represented as a dictionary containing the keys <code>name</code> and <code>value</code>.", "items": { "type": "object", "properties": { - "name": {"type": "string"}, - "value": {"type": "string"} + "name": {"type": "string", "description": "Name of the HTTP header."}, + "value": {"type": "string", "description": "Value of the HTTP header."} } } }, diff --git a/chrome/common/extensions/docs/experimental.webRequest.html b/chrome/common/extensions/docs/experimental.webRequest.html index edb09fd..61680ce 100644 --- a/chrome/common/extensions/docs/experimental.webRequest.html +++ b/chrome/common/extensions/docs/experimental.webRequest.html @@ -10354,7 +10354,52 @@ chrome.windows.onRemoved.addListener( <dd class="todo" style="display: none; "> Undocumented. </dd> - <dd>An array of HTTP headers, in the form of name/value pairs.</dd> + <dd>An array of HTTP headers. Each header is represented as a dictionary containing the keys <code>name</code> and <code>value</code>.</dd> + <dd style="display: none; "> + This parameter was added in version + <b><span></span></b>. + You must omit this parameter in earlier versions, + and you may omit it in any version. If you require this + parameter, the manifest key + <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> + can ensure that your extension won't be run in an earlier browser version. + </dd> + + <!-- OBJECT PROPERTIES --> + <dd> + <dl> + <div> + <div> + <dt> + <var>name</var> + <em> + + <!-- TYPE --> + <div style="display:inline"> + ( + <span class="optional" style="display: none; ">optional</span> + <span class="enum" style="display: none; ">enumerated</span> + <span id="typeTemplate"> + <span style="display: none; "> + <a> Type</a> + </span> + <span> + <span style="display: none; "> + array of <span><span></span></span> + </span> + <span>string</span> + <span style="display: none; "></span> + </span> + </span> + ) + </div> + + </em> + </dt> + <dd class="todo" style="display: none; "> + Undocumented. + </dd> + <dd>Name of the HTTP header</dd> <dd style="display: none; "> This parameter was added in version <b><span></span></b>. @@ -10391,6 +10436,94 @@ chrome.windows.onRemoved.addListener( </dd> </div> + </div><div> + <div> + <dt> + <var>value</var> + <em> + + <!-- TYPE --> + <div style="display:inline"> + ( + <span class="optional" style="display: none; ">optional</span> + <span class="enum" style="display: none; ">enumerated</span> + <span id="typeTemplate"> + <span style="display: none; "> + <a> Type</a> + </span> + <span> + <span style="display: none; "> + array of <span><span></span></span> + </span> + <span>string</span> + <span style="display: none; "></span> + </span> + </span> + ) + </div> + + </em> + </dt> + <dd class="todo" style="display: none; "> + Undocumented. + </dd> + <dd>Value of the HTTP header</dd> + <dd style="display: none; "> + This parameter was added in version + <b><span></span></b>. + You must omit this parameter in earlier versions, + and you may omit it in any version. If you require this + parameter, the manifest key + <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> + can ensure that your extension won't be run in an earlier browser version. + </dd> + + <!-- OBJECT PROPERTIES --> + <dd style="display: none; "> + <dl> + <div> + <div> + </div> + </div> + </dl> + </dd> + + <!-- OBJECT METHODS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- OBJECT EVENT FIELDS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- FUNCTION PARAMETERS --> + <dd style="display: none; "> + <div></div> + </dd> + + </div> + </div> + </dl> + </dd> + + <!-- OBJECT METHODS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- OBJECT EVENT FIELDS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- FUNCTION PARAMETERS --> + <dd style="display: none; "> + <div></div> + </dd> + + </div> </div><div class="apiItem"> <a name="type-BlockingResponse"></a> diff --git a/chrome/common/extensions/docs/extension.html b/chrome/common/extensions/docs/extension.html index 686a07c..969c618 100644 --- a/chrome/common/extensions/docs/extension.html +++ b/chrome/common/extensions/docs/extension.html @@ -1622,9 +1622,9 @@ For details, see </dd> <!-- OBJECT PROPERTIES --> - <dd style="display: none; "> + <dd> <dl> - <div> + <div style="display: none; "> <div> </div> </div> diff --git a/chrome/common/extensions/docs/js/api_page_generator.js b/chrome/common/extensions/docs/js/api_page_generator.js index b98774c..20a6573 100644 --- a/chrome/common/extensions/docs/js/api_page_generator.js +++ b/chrome/common/extensions/docs/js/api_page_generator.js @@ -496,13 +496,18 @@ function getAnchorName(type, name, scope) { } function shouldExpandObject(object) { - return (object.type == "object" && object.properties); + return (object.type == "object" && object.properties) || + (object.type == "array" && object.items && object.items.properties); } function getPropertyListFromObject(object) { var propertyList = []; - for (var p in object.properties) { - var prop = object.properties[p]; + var properties = object.properties; + if (!properties && object.type === "array" && object.items) { + properties = object.items.properties; + } + for (var p in properties) { + var prop = properties[p]; // Do not render properties marked as "nodoc": true. if (prop.nodoc) { continue; diff --git a/chrome/common/extensions/docs/webNavigation.html b/chrome/common/extensions/docs/webNavigation.html index 080b2e2..4b7e1ca 100644 --- a/chrome/common/extensions/docs/webNavigation.html +++ b/chrome/common/extensions/docs/webNavigation.html @@ -773,6 +773,187 @@ unexpected results. </dd> <!-- OBJECT PROPERTIES --> + <dd> + <dl> + <div> + <div> + <dt> + <var>errorOccurred</var> + <em> + + <!-- TYPE --> + <div style="display:inline"> + ( + <span class="optional" style="display: none; ">optional</span> + <span class="enum" style="display: none; ">enumerated</span> + <span id="typeTemplate"> + <span style="display: none; "> + <a> Type</a> + </span> + <span> + <span style="display: none; "> + array of <span><span></span></span> + </span> + <span>boolean</span> + <span style="display: none; "></span> + </span> + </span> + ) + </div> + + </em> + </dt> + <dd class="todo" style="display: none; "> + Undocumented. + </dd> + <dd>True if the last navigation in this frame was interrupted by an error, i.e. the onErrorOccurred event fired.</dd> + <dd style="display: none; "> + This parameter was added in version + <b><span></span></b>. + You must omit this parameter in earlier versions, + and you may omit it in any version. If you require this + parameter, the manifest key + <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> + can ensure that your extension won't be run in an earlier browser version. + </dd> + + <!-- OBJECT PROPERTIES --> + <dd style="display: none; "> + <dl> + <div> + <div> + </div> + </div> + </dl> + </dd> + + <!-- OBJECT METHODS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- OBJECT EVENT FIELDS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- FUNCTION PARAMETERS --> + <dd style="display: none; "> + <div></div> + </dd> + + </div> + </div><div> + <div> + <dt> + <var>frameId</var> + <em> + + <!-- TYPE --> + <div style="display:inline"> + ( + <span class="optional" style="display: none; ">optional</span> + <span class="enum" style="display: none; ">enumerated</span> + <span id="typeTemplate"> + <span style="display: none; "> + <a> Type</a> + </span> + <span> + <span style="display: none; "> + array of <span><span></span></span> + </span> + <span>integer</span> + <span style="display: none; "></span> + </span> + </span> + ) + </div> + + </em> + </dt> + <dd class="todo" style="display: none; "> + Undocumented. + </dd> + <dd>The ID of the frame. 0 indicates that this is the main frame; a positive value indicates the ID of a subframe.</dd> + <dd style="display: none; "> + This parameter was added in version + <b><span></span></b>. + You must omit this parameter in earlier versions, + and you may omit it in any version. If you require this + parameter, the manifest key + <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> + can ensure that your extension won't be run in an earlier browser version. + </dd> + + <!-- OBJECT PROPERTIES --> + <dd style="display: none; "> + <dl> + <div> + <div> + </div> + </div> + </dl> + </dd> + + <!-- OBJECT METHODS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- OBJECT EVENT FIELDS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- FUNCTION PARAMETERS --> + <dd style="display: none; "> + <div></div> + </dd> + + </div> + </div><div> + <div> + <dt> + <var>url</var> + <em> + + <!-- TYPE --> + <div style="display:inline"> + ( + <span class="optional" style="display: none; ">optional</span> + <span class="enum" style="display: none; ">enumerated</span> + <span id="typeTemplate"> + <span style="display: none; "> + <a> Type</a> + </span> + <span> + <span style="display: none; "> + array of <span><span></span></span> + </span> + <span>string</span> + <span style="display: none; "></span> + </span> + </span> + ) + </div> + + </em> + </dt> + <dd class="todo" style="display: none; "> + Undocumented. + </dd> + <dd>The URL currently associated with this frame, if the frame identified by the frameId existed at one point in the given tab. The fact that an URL is associated with a given frameId does not imply that the corresponding frame still exists.</dd> + <dd style="display: none; "> + This parameter was added in version + <b><span></span></b>. + You must omit this parameter in earlier versions, + and you may omit it in any version. If you require this + parameter, the manifest key + <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> + can ensure that your extension won't be run in an earlier browser version. + </dd> + + <!-- OBJECT PROPERTIES --> <dd style="display: none; "> <dl> <div> @@ -798,6 +979,26 @@ unexpected results. </dd> </div> + </div> + </dl> + </dd> + + <!-- OBJECT METHODS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- OBJECT EVENT FIELDS --> + <dd style="display: none; "> + <div></div> + </dd> + + <!-- FUNCTION PARAMETERS --> + <dd style="display: none; "> + <div></div> + </dd> + + </div> </div> </dl> </div> |