diff options
author | miket@chromium.org <miket@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 00:16:47 +0000 |
---|---|---|
committer | miket@chromium.org <miket@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 00:16:47 +0000 |
commit | ece26dd93e5f4c9aa72e9ee2927ff8e9660e7174 (patch) | |
tree | 81ad0f1d20d36fa95ee728d1dc36468bdcf926e7 | |
parent | d5a578fa1357a7bb59351f43fa23509d8e14766e (diff) | |
download | chromium_src-ece26dd93e5f4c9aa72e9ee2927ff8e9660e7174.zip chromium_src-ece26dd93e5f4c9aa72e9ee2927ff8e9660e7174.tar.gz chromium_src-ece26dd93e5f4c9aa72e9ee2927ff8e9660e7174.tar.bz2 |
Move serial out of experimental.
This CL is unremarkable except that I figured out that we're improperly
including some permissions for experimental APIs (which are already
covered by the blanket experimental permission). This made it tougher
because I used http://codereview.chromium.org/10440097/, which
benefited unwittingly from a pre-declared socket permission, as an
example. I then ran into missing namespace problems because I hadn't
done everything necessary (such as including serial in api_permission.cc).
I did my job as a good citizen and removed the superfluous USB permission.
Also ran build.py to update docs.
BUG=138370
TEST=no new ones; updated old ones to build.
Review URL: https://chromiumcodereview.appspot.com/10852016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150186 0039d316-1c4b-4281-b951-d872f2087c98
23 files changed, 69 insertions, 3083 deletions
diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc index 6a5e173..87a61c2 100644 --- a/chrome/browser/extensions/api/serial/serial_api.cc +++ b/chrome/browser/extensions/api/serial/serial_api.cc @@ -89,7 +89,7 @@ SerialOpenFunction::~SerialOpenFunction() { bool SerialOpenFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::Open::Params::Create(*args_); + params_ = api::serial::Open::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); if (params_->options.get()) { @@ -166,7 +166,7 @@ SerialCloseFunction::~SerialCloseFunction() { bool SerialCloseFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::Close::Params::Create(*args_); + params_ = api::serial::Close::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); return true; @@ -197,7 +197,7 @@ SerialReadFunction::~SerialReadFunction() { bool SerialReadFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::Read::Params::Create(*args_); + params_ = api::serial::Read::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); if (params_->bytes_to_read <= 0 || params_->bytes_to_read >= 1024 * 1024) { error_ = kSerialReadInvalidBytesToRead; @@ -242,7 +242,7 @@ SerialWriteFunction::~SerialWriteFunction() { bool SerialWriteFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::Write::Params::Create(*args_); + params_ = api::serial::Write::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); io_buffer_size_ = params_->data.size(); @@ -277,7 +277,7 @@ SerialFlushFunction::~SerialFlushFunction() { bool SerialFlushFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::Flush::Params::Create(*args_); + params_ = api::serial::Flush::Params::Create(*args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); return true; } @@ -307,7 +307,7 @@ SerialGetControlSignalsFunction::~SerialGetControlSignalsFunction() { bool SerialGetControlSignalsFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::GetControlSignals::Params::Create( + params_ = api::serial::GetControlSignals::Params::Create( *args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); @@ -347,7 +347,7 @@ SerialSetControlSignalsFunction::~SerialSetControlSignalsFunction() { bool SerialSetControlSignalsFunction::Prepare() { set_work_thread_id(BrowserThread::FILE); - params_ = api::experimental_serial::SetControlSignals::Params::Create( + params_ = api::serial::SetControlSignals::Params::Create( *args_); EXTENSION_FUNCTION_VALIDATE(params_.get()); diff --git a/chrome/browser/extensions/api/serial/serial_api.h b/chrome/browser/extensions/api/serial/serial_api.h index 123eef5..7e43b63 100644 --- a/chrome/browser/extensions/api/serial/serial_api.h +++ b/chrome/browser/extensions/api/serial/serial_api.h @@ -10,7 +10,7 @@ #include "base/memory/ref_counted.h" #include "chrome/browser/extensions/api/api_function.h" #include "chrome/browser/extensions/api/api_resource_manager.h" -#include "chrome/common/extensions/api/experimental_serial.h" +#include "chrome/common/extensions/api/serial.h" #include "net/base/io_buffer.h" namespace extensions { @@ -35,7 +35,7 @@ class SerialAsyncApiFunction : public AsyncApiFunction { class SerialGetPortsFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.getPorts") + DECLARE_EXTENSION_FUNCTION_NAME("serial.getPorts") SerialGetPortsFunction(); @@ -50,7 +50,7 @@ class SerialGetPortsFunction : public SerialAsyncApiFunction { class SerialOpenFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.open") + DECLARE_EXTENSION_FUNCTION_NAME("serial.open") SerialOpenFunction(); @@ -71,7 +71,7 @@ class SerialOpenFunction : public SerialAsyncApiFunction { virtual bool DoesPortExist(const std::string& port); private: - scoped_ptr<api::experimental_serial::Open::Params> params_; + scoped_ptr<api::serial::Open::Params> params_; int src_id_; int bitrate_; @@ -81,7 +81,7 @@ class SerialOpenFunction : public SerialAsyncApiFunction { class SerialCloseFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.close") + DECLARE_EXTENSION_FUNCTION_NAME("serial.close") SerialCloseFunction(); @@ -94,12 +94,12 @@ class SerialCloseFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::Close::Params> params_; + scoped_ptr<api::serial::Close::Params> params_; }; class SerialReadFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.read") + DECLARE_EXTENSION_FUNCTION_NAME("serial.read") SerialReadFunction(); @@ -112,12 +112,12 @@ class SerialReadFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::Read::Params> params_; + scoped_ptr<api::serial::Read::Params> params_; }; class SerialWriteFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.write") + DECLARE_EXTENSION_FUNCTION_NAME("serial.write") SerialWriteFunction(); @@ -130,14 +130,14 @@ class SerialWriteFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::Write::Params> params_; + scoped_ptr<api::serial::Write::Params> params_; scoped_refptr<net::IOBuffer> io_buffer_; size_t io_buffer_size_; }; class SerialFlushFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.flush") + DECLARE_EXTENSION_FUNCTION_NAME("serial.flush") SerialFlushFunction(); @@ -150,12 +150,12 @@ class SerialFlushFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::Flush::Params> params_; + scoped_ptr<api::serial::Flush::Params> params_; }; class SerialGetControlSignalsFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.getControlSignals") + DECLARE_EXTENSION_FUNCTION_NAME("serial.getControlSignals") SerialGetControlSignalsFunction(); @@ -168,13 +168,13 @@ class SerialGetControlSignalsFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::GetControlSignals::Params> params_; + scoped_ptr<api::serial::GetControlSignals::Params> params_; bool api_response_; }; class SerialSetControlSignalsFunction : public SerialAsyncApiFunction { public: - DECLARE_EXTENSION_FUNCTION_NAME("experimental.serial.setControlSignals") + DECLARE_EXTENSION_FUNCTION_NAME("serial.setControlSignals") SerialSetControlSignalsFunction(); @@ -187,7 +187,7 @@ class SerialSetControlSignalsFunction : public SerialAsyncApiFunction { virtual bool Respond() OVERRIDE; private: - scoped_ptr<api::experimental_serial::SetControlSignals::Params> params_; + scoped_ptr<api::serial::SetControlSignals::Params> params_; }; } // namespace extensions diff --git a/chrome/browser/extensions/api/serial/serial_apitest.cc b/chrome/browser/extensions/api/serial/serial_apitest.cc index 09f0557..0bd26ab 100644 --- a/chrome/browser/extensions/api/serial/serial_apitest.cc +++ b/chrome/browser/extensions/api/serial/serial_apitest.cc @@ -172,10 +172,10 @@ IN_PROC_BROWSER_TEST_F(SerialApiTest, SerialFakeHardware) { #if SIMULATE_SERIAL_PORTS ASSERT_TRUE(ExtensionFunctionDispatcher::OverrideFunction( - "experimental.serial.getPorts", + "serial.getPorts", FakeSerialGetPortsFunctionFactory)); ASSERT_TRUE(ExtensionFunctionDispatcher::OverrideFunction( - "experimental.serial.open", + "serial.open", FakeSerialOpenFunctionFactory)); #endif diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json index 79cfe5e..ed35c80 100644 --- a/chrome/common/extensions/api/_permission_features.json +++ b/chrome/common/extensions/api/_permission_features.json @@ -236,7 +236,7 @@ "min_manifest_version": 2 }, "serial": { - "channel": "stable", + "channel": "dev", "extension_types": ["platform_app"] }, "socket": { @@ -283,10 +283,6 @@ "extension", "packaged_app", "hosted_app", "platform_app" ] }, - "usb": { - "channel": "stable", - "extension_types": ["platform_app"] - }, "videoCapture": { "channel": "stable", "extension_types": ["platform_app"] diff --git a/chrome/common/extensions/api/api.gyp b/chrome/common/extensions/api/api.gyp index 9cae8e4..690f9e3 100644 --- a/chrome/common/extensions/api/api.gyp +++ b/chrome/common/extensions/api/api.gyp @@ -46,9 +46,9 @@ 'experimental_idltest.idl', 'experimental_media_galleries.idl', 'experimental_push_messaging.idl', - 'experimental_serial.idl', 'experimental_usb.idl', 'file_system.idl', + 'serial.idl', 'socket.idl', ], 'cc_dir': 'chrome/common/extensions/api', diff --git a/chrome/common/extensions/api/experimental_serial.idl b/chrome/common/extensions/api/serial.idl index 62b5e19..fd9a4fb 100644 --- a/chrome/common/extensions/api/experimental_serial.idl +++ b/chrome/common/extensions/api/serial.idl @@ -4,7 +4,7 @@ // File-level comment to appease parser. Eventually this will not be necessary. -namespace experimental.serial { +namespace serial { callback GetPortsCallback = void (DOMString[] ports); diff --git a/chrome/common/extensions/docs/apps/api_index.html b/chrome/common/extensions/docs/apps/api_index.html index 9049b61..edc8d23 100644 --- a/chrome/common/extensions/docs/apps/api_index.html +++ b/chrome/common/extensions/docs/apps/api_index.html @@ -210,6 +210,7 @@ Here are the supported chrome.* APIs: </li><li><a href="idle.html" js="">idle</a> </li><li><a href="permissions.html" js="">permissions</a> </li><li><a href="runtime.html" js="">runtime</a> + </li><li><a href="serial.html" js="">serial</a> </li><li><a href="socket.html" js="">socket</a> </li><li><a href="storage.html" js="">storage</a> </li><li><a href="tts.html" js="">tts</a> diff --git a/chrome/common/extensions/docs/apps/experimental.html b/chrome/common/extensions/docs/apps/experimental.html index e079f0a..8a6cac0 100644 --- a/chrome/common/extensions/docs/apps/experimental.html +++ b/chrome/common/extensions/docs/apps/experimental.html @@ -216,7 +216,6 @@ on the following experimental APIs: <a href="experimental.commands.html">experimental.commands</a></li><li> <a href="experimental.identity.html">experimental.identity</a></li><li> <a href="experimental.mediaGalleries.html">experimental.mediaGalleries</a></li><li> - <a href="experimental.serial.html">experimental.serial</a></li><li> <a href="experimental.usb.html">experimental.usb</a></li> </ul> <p class="doc-family extensions"> diff --git a/chrome/common/extensions/docs/apps/experimental.serial.html b/chrome/common/extensions/docs/apps/experimental.serial.html index a99581d..7347aae 100644 --- a/chrome/common/extensions/docs/apps/experimental.serial.html +++ b/chrome/common/extensions/docs/apps/experimental.serial.html @@ -17,7 +17,7 @@ <script type="text/javascript" src="../js/api_page_generator.js"></script> <script type="text/javascript" src="../js/bootstrap.js"></script> <script type="text/javascript" src="../js/sidebar.js"></script> - <meta name="description" content="Documentation for the chrome.experimental.serial module, which is part of the Google Chrome extension APIs."><title>chrome.experimental.serial - Google Chrome Extensions - Google Code</title></head> + <title>Experimental.serial - Google Chrome Extensions - Google Code</title></head> <body doc-family="apps"> <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css"> <link href="../css/prettify.css" rel="stylesheet" type="text/css"> <link href="../css/shared.css" rel="stylesheet" type="text/css"> @@ -157,1358 +157,15 @@ </script> <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> - <h1 class="page_title">chrome.experimental.serial</h1> + <h1 class="page_title">Experimental.serial</h1> </div> <!-- TABLE OF CONTENTS --> - <div id="toc"> - <h2>Contents</h2> - <ol> - <li> - <a href="#apiReference">API reference: chrome.experimental.serial</a> - <ol> - <li> - <a href="#global-methods">Methods</a> - <ol> - <li> - <a href="#method-close">close</a> - </li><li> - <a href="#method-flush">flush</a> - </li><li> - <a href="#method-getControlSignals">getControlSignals</a> - </li><li> - <a href="#method-getPorts">getPorts</a> - </li><li> - <a href="#method-open">open</a> - </li><li> - <a href="#method-read">read</a> - </li><li> - <a href="#method-setControlSignals">setControlSignals</a> - </li><li> - <a href="#method-write">write</a> - </li> - </ol> - </li> - <li> - <a href="#types">Types</a> - <ol> - <li> - <a href="#type-experimental.serial.OpenOptions">experimental.serial.OpenOptions</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.OpenInfo">experimental.serial.OpenInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.ReadInfo">experimental.serial.ReadInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.WriteInfo">experimental.serial.WriteInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - <ol> - </ol> - </li> - </ol> - </li> - </ol> - </li> - </ol> - </div> <!-- /TABLE OF CONTENTS --> <!-- Standard content lead-in for experimental API pages --> - <p id="classSummary"> - For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. - </p> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"></div> <!-- API PAGE --> - <div class="apiPage"> - <a name="apiReference"></a> - <h2>API reference: chrome.experimental.serial</h2> - <!-- PROPERTIES --> - <!-- /apiGroup --> - <!-- METHODS --> - <div id="methodsTemplate" class="apiGroup"> - <a name="global-methods"></a> - <h3>Methods</h3> - <!-- iterates over all functions --> - <div class="apiItem"> - <a name="method-close"></a> <!-- method-anchor --> - <h4>close</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.close</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>CloseCallback</span></var></span>)</div> - <div class="description"> - <p>Closes an open connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the opened connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>CloseCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-flush"></a> <!-- method-anchor --> - <h4>flush</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.flush</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>FlushCallback</span></var></span>)</div> - <div class="description"> - <p>Flushes all bytes in the given connection's input and output buffers.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>FlushCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-getControlSignals"></a> <!-- method-anchor --> - <h4>getControlSignals</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.getControlSignals</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>GetControlSignalsCallback</span></var></span>)</div> - <div class="description"> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>GetControlSignalsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns a snapshot of current control signals.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-getPorts"></a> <!-- method-anchor --> - <h4>getPorts</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.getPorts</span>(<span class="null"><span>function</span> - <var><span>GetPortsCallback</span></var></span>)</div> - <div class="description"> - <p>Returns names of valid ports on this machine, each of which is likely to be valid to pass as the port argument to open(). The list is regenerated each time this method is called, as port validity is dynamic.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>GetPortsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>ports</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span> - array of <span><span> - <span> - <span>string</span> - </span> - </span></span> - </span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-open"></a> <!-- method-anchor --> - <h4>open</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.open</span>(<span class="null"><span>string</span> - <var><span>port</span></var></span><span class="optional"><span>, </span><span>experimental.serial.OpenOptions</span> - <var><span>options</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>OpenCallback</span></var></span>)</div> - <div class="description"> - <p>Opens a connection to the given serial port.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>port</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>string</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The name of the serial port to open.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.OpenOptions">experimental.serial.OpenOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Connection options.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>OpenCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>openInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.OpenInfo">experimental.serial.OpenInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-read"></a> <!-- method-anchor --> - <h4>read</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.read</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>integer</span> - <var><span>bytesToRead</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>ReadCallback</span></var></span>)</div> - <div class="description"> - <p>Reads a byte from the given connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>bytesToRead</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes to read.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>ReadCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>readInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ReadInfo">experimental.serial.ReadInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-setControlSignals"></a> <!-- method-anchor --> - <h4>setControlSignals</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.setControlSignals</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>experimental.serial.ControlSignalOptions</span> - <var><span>options</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>SetControlSignalsCallback</span></var></span>)</div> - <div class="description"> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>SetControlSignalsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-write"></a> <!-- method-anchor --> - <h4>write</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.write</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>ArrayBuffer</span> - <var><span>data</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>WriteCallback</span></var></span>)</div> - <div class="description"> - <p>Writes a string to the given connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>data</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>ArrayBuffer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The string to write.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>WriteCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>writeInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.WriteInfo">experimental.serial.WriteInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div> <!-- /apiItem --> - </div> <!-- /apiGroup --> - <!-- EVENTS --> - <!-- /apiGroup --> - <!-- TYPES --> - <div class="apiGroup"> - <a name="types"></a> - <h3 id="types">Types</h3> - <!-- iterates over all types --> - <div class="apiItem"> - <a name="type-experimental.serial.OpenOptions"></a> - <h4>experimental.serial.OpenOptions</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bitrate</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The requested bitrate of the connection to be opened. For compatibility with the widest range of hardware, this number should match one of commonly-available bitrates, such as 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. There is no guarantee, of course, that the device connected to the serial port will support the requested bitrate, even if the port itself supports that bitrate.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.OpenInfo"></a> - <h4>experimental.serial.OpenInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the opened connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.ReadInfo"></a> - <h4>experimental.serial.ReadInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bytesRead</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes received, or a negative number if an error occurred. This number will be smaller than the number of bytes requested in the original read call if the call would need to block to read that number of bytes.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>data</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>ArrayBuffer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The data received.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.WriteInfo"></a> - <h4>experimental.serial.WriteInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bytesWritten</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes written.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.ControlSignalOptions"></a> - <h4>experimental.serial.ControlSignalOptions</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>cts</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>dcd</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Serial control signals that your machine can receive. If a get operation fails, success will be false, and these fields will be absent. DCD (Data Carrier Detect) is equivalent to RLSD (Receive Line Signal Detect) on some platforms.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>dtr</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Serial control signals that your machine can send. Missing fields will be set to false.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>rts</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> <!-- /apiItem --> - </div> <!-- /apiGroup --> - </div> <!-- /apiPage --> + <!-- /apiPage --> </div> <!-- /gc-pagecontent --> </div> <!-- /g-section --> </div> <!-- /codesiteContent --> diff --git a/chrome/common/extensions/docs/examples/api/notifications.zip b/chrome/common/extensions/docs/examples/api/notifications.zip Binary files differindex 22dcc0a..51b7fd4 100644 --- a/chrome/common/extensions/docs/examples/api/notifications.zip +++ b/chrome/common/extensions/docs/examples/api/notifications.zip diff --git a/chrome/common/extensions/docs/extensions/experimental.html b/chrome/common/extensions/docs/extensions/experimental.html index bbad2ff..3438815 100644 --- a/chrome/common/extensions/docs/extensions/experimental.html +++ b/chrome/common/extensions/docs/extensions/experimental.html @@ -252,7 +252,6 @@ on the following experimental APIs: <a href="experimental.infobars.html">experimental.infobars</a></li><li> <a href="experimental.offscreenTabs.html">experimental.offscreenTabs</a></li><li> <a href="experimental.processes.html">experimental.processes</a></li><li> - <a href="experimental.serial.html">experimental.serial</a></li><li> <a href="experimental.speechInput.html">experimental.speechInput</a></li><li> <a href="experimental.usb.html">experimental.usb</a></li> </ul> diff --git a/chrome/common/extensions/docs/extensions/experimental.serial.html b/chrome/common/extensions/docs/extensions/experimental.serial.html index ec9f1ff..a58adbb 100644 --- a/chrome/common/extensions/docs/extensions/experimental.serial.html +++ b/chrome/common/extensions/docs/extensions/experimental.serial.html @@ -17,7 +17,7 @@ <script type="text/javascript" src="../js/api_page_generator.js"></script> <script type="text/javascript" src="../js/bootstrap.js"></script> <script type="text/javascript" src="../js/sidebar.js"></script> - <meta name="description" content="Documentation for the chrome.experimental.serial module, which is part of the Google Chrome extension APIs."><title>chrome.experimental.serial - Google Chrome Extensions - Google Code</title></head> + <title>Experimental.serial - Google Chrome Extensions - Google Code</title></head> <body doc-family="extensions"> <link href="../css/ApiRefStyles.css" rel="stylesheet" type="text/css"> <link href="../css/prettify.css" rel="stylesheet" type="text/css"> <link href="../css/shared.css" rel="stylesheet" type="text/css"> @@ -188,1676 +188,15 @@ </script> <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> - <h1 class="page_title">chrome.experimental.serial</h1> + <h1 class="page_title">Experimental.serial</h1> </div> <!-- TABLE OF CONTENTS --> - <div id="toc"> - <h2>Contents</h2> - <ol> - <li> - <a href="#apiReference">API reference: chrome.experimental.serial</a> - <ol> - <li> - <a href="#global-methods">Methods</a> - <ol> - <li> - <a href="#method-close">close</a> - </li><li> - <a href="#method-flush">flush</a> - </li><li> - <a href="#method-getControlSignals">getControlSignals</a> - </li><li> - <a href="#method-getPorts">getPorts</a> - </li><li> - <a href="#method-open">open</a> - </li><li> - <a href="#method-read">read</a> - </li><li> - <a href="#method-setControlSignals">setControlSignals</a> - </li><li> - <a href="#method-write">write</a> - </li> - </ol> - </li> - <li> - <a href="#types">Types</a> - <ol> - <li> - <a href="#type-experimental.serial.OpenOptions">OpenOptions</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.OpenInfo">OpenInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.ReadInfo">ReadInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.WriteInfo">WriteInfo</a> - <ol> - </ol> - </li><li> - <a href="#type-experimental.serial.ControlSignalOptions">ControlSignalOptions</a> - <ol> - </ol> - </li> - </ol> - </li> - </ol> - </li> - </ol> - </div> <!-- /TABLE OF CONTENTS --> <!-- Standard content lead-in for experimental API pages --> - <p id="classSummary"> - For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. - </p> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"></div> <!-- API PAGE --> - <div class="apiPage"> - <a name="apiReference"></a> - <h2>API reference: chrome.experimental.serial</h2> - <!-- PROPERTIES --> - <!-- /apiGroup --> - <!-- METHODS --> - <div id="methodsTemplate" class="apiGroup"> - <a name="global-methods"></a> - <h3>Methods</h3> - <!-- iterates over all functions --> - <div class="apiItem"> - <a name="method-close"></a> <!-- method-anchor --> - <h4>close</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.close</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>CloseCallback</span></var></span>)</div> - <div class="description"> - <p>Closes an open connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the opened connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>CloseCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>boolean result</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-flush"></a> <!-- method-anchor --> - <h4>flush</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.flush</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>FlushCallback</span></var></span>)</div> - <div class="description"> - <p>Flushes all bytes in the given connection's input and output buffers.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>FlushCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>boolean result</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-getControlSignals"></a> <!-- method-anchor --> - <h4>getControlSignals</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.getControlSignals</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>GetControlSignalsCallback</span></var></span>)</div> - <div class="description"> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>GetControlSignalsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns a snapshot of current control signals.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>experimental.serial.ControlSignalOptions options</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-getPorts"></a> <!-- method-anchor --> - <h4>getPorts</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.getPorts</span>(<span class="null"><span>function</span> - <var><span>GetPortsCallback</span></var></span>)</div> - <div class="description"> - <p>Returns names of valid ports on this machine, each of which is likely to be valid to pass as the port argument to open(). The list is regenerated each time this method is called, as port validity is dynamic.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>GetPortsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>ports</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span> - array of <span><span> - <span> - <span>string</span> - </span> - </span></span> - </span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>array of string ports</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>ports</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span> - array of <span><span> - <span> - <span>string</span> - </span> - </span></span> - </span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-open"></a> <!-- method-anchor --> - <h4>open</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.open</span>(<span class="null"><span>string</span> - <var><span>port</span></var></span><span class="optional"><span>, </span><span>experimental.serial.OpenOptions</span> - <var><span>options</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>OpenCallback</span></var></span>)</div> - <div class="description"> - <p>Opens a connection to the given serial port.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>port</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>string</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The name of the serial port to open.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.OpenOptions">experimental.serial.OpenOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Connection options.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>OpenCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>openInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.OpenInfo">experimental.serial.OpenInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>experimental.serial.OpenInfo openInfo</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>openInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.OpenInfo">experimental.serial.OpenInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-read"></a> <!-- method-anchor --> - <h4>read</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.read</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>integer</span> - <var><span>bytesToRead</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>ReadCallback</span></var></span>)</div> - <div class="description"> - <p>Reads a byte from the given connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>bytesToRead</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes to read.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>ReadCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>readInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ReadInfo">experimental.serial.ReadInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>experimental.serial.ReadInfo readInfo</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>readInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ReadInfo">experimental.serial.ReadInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-setControlSignals"></a> <!-- method-anchor --> - <h4>setControlSignals</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.setControlSignals</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>experimental.serial.ControlSignalOptions</span> - <var><span>options</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>SetControlSignalsCallback</span></var></span>)</div> - <div class="description"> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>options</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.ControlSignalOptions">experimental.serial.ControlSignalOptions</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>SetControlSignalsCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Returns true if operation was successful.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>boolean result</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>result</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div><div class="apiItem"> - <a name="method-write"></a> <!-- method-anchor --> - <h4>write</h4> - <div class="summary"> - <!-- Note: intentionally longer 80 columns --> - <span>chrome.experimental.serial.write</span>(<span class="null"><span>integer</span> - <var><span>connectionId</span></var></span><span class="null"><span>, </span><span>ArrayBuffer</span> - <var><span>data</span></var></span><span class="null"><span>, </span><span>function</span> - <var><span>WriteCallback</span></var></span>)</div> - <div class="description"> - <p>Writes a string to the given connection.</p> - <!-- PARAMETERS --> - <h4>Parameters</h4> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>data</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>ArrayBuffer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The string to write.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>WriteCallback</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>function</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - <dd> - <div> - <h5>Parameters</h5> - <dl> - <div> - <div> - <dt> - <var>writeInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.WriteInfo">experimental.serial.WriteInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </dd> - </div> - </div> - </dl> - <!-- RETURNS --> - <dl> - </dl> - <!-- CALLBACK --> - <div> - <div> - <h4>Callback function</h4> - <p> - The <em>callback</em> parameter should specify a function - that looks like this: - </p> - <!-- Note: intentionally longer 80 columns --> - <pre>function(<span>experimental.serial.WriteInfo writeInfo</span>) <span class="subdued">{...}</span>;</pre> - <dl> - <div> - <div> - <dt> - <var>writeInfo</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <a href="experimental.serial.html#type-experimental.serial.WriteInfo">experimental.serial.WriteInfo</a> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </div> - </div> - <!-- MIN_VERSION --> - </div> <!-- /description --> - </div> <!-- /apiItem --> - </div> <!-- /apiGroup --> - <!-- EVENTS --> - <!-- /apiGroup --> - <!-- TYPES --> - <div class="apiGroup"> - <a name="types"></a> - <h3 id="types">Types</h3> - <!-- iterates over all types --> - <div class="apiItem"> - <a name="type-experimental.serial.OpenOptions"></a> - <h4>experimental.serial.OpenOptions</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bitrate</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The requested bitrate of the connection to be opened. For compatibility with the widest range of hardware, this number should match one of commonly-available bitrates, such as 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200. There is no guarantee, of course, that the device connected to the serial port will support the requested bitrate, even if the port itself supports that bitrate.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.OpenInfo"></a> - <h4>experimental.serial.OpenInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>connectionId</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The id of the opened connection.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.ReadInfo"></a> - <h4>experimental.serial.ReadInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bytesRead</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes received, or a negative number if an error occurred. This number will be smaller than the number of bytes requested in the original read call if the call would need to block to read that number of bytes.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>data</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>ArrayBuffer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The data received.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.WriteInfo"></a> - <h4>experimental.serial.WriteInfo</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>bytesWritten</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>integer</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>The number of bytes written.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div class="apiItem"> - <a name="type-experimental.serial.ControlSignalOptions"></a> - <h4>experimental.serial.ControlSignalOptions</h4> - <div> - <dt> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span id="typeTemplate"> - <span> - <span>object</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <dd> - <dl> - <div> - <div> - <dt> - <var>cts</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>dcd</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Serial control signals that your machine can receive. If a get operation fails, success will be false, and these fields will be absent. DCD (Data Carrier Detect) is equivalent to RLSD (Receive Line Signal Detect) on some platforms.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>dtr</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd>Serial control signals that your machine can send. Missing fields will be set to false.</dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div><div> - <div> - <dt> - <var>rts</var> - <em> - <!-- TYPE --> - <div style="display:inline"> - ( - <span class="optional">optional</span> - <span id="typeTemplate"> - <span> - <span>boolean</span> - </span> - </span> - ) - </div> - </em> - </dt> - <dd class="todo"> - Undocumented. - </dd> - <!-- OBJECT PROPERTIES --> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> - </dl> - </dd> - <!-- OBJECT METHODS --> - <!-- OBJECT EVENT FIELDS --> - <!-- FUNCTION PARAMETERS --> - </div> - </div> <!-- /apiItem --> - </div> <!-- /apiGroup --> - </div> <!-- /apiPage --> + <!-- /apiPage --> </div> <!-- /gc-pagecontent --> </div> <!-- /g-section --> </div> <!-- /codesiteContent --> diff --git a/chrome/common/extensions/docs/extensions/samples.html b/chrome/common/extensions/docs/extensions/samples.html index 4d42a9f..2e84072 100644 --- a/chrome/common/extensions/docs/extensions/samples.html +++ b/chrome/common/extensions/docs/extensions/samples.html @@ -347,6 +347,8 @@ </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.scriptBadge', this)">chrome.scriptBadge</a><span>, </span> </span><span> + <a href="javascript:void(0);" onclick="setFilter('chrome.serial', this)">chrome.serial</a><span>, </span> + </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.socket', this)">chrome.socket</a><span>, </span> </span><span> <a href="javascript:void(0);" onclick="setFilter('chrome.storage', this)">chrome.storage</a><span>, </span> diff --git a/chrome/common/extensions/docs/js/api_page_generator.js b/chrome/common/extensions/docs/js/api_page_generator.js index 3da9035..e1f7ef1 100644 --- a/chrome/common/extensions/docs/js/api_page_generator.js +++ b/chrome/common/extensions/docs/js/api_page_generator.js @@ -55,7 +55,6 @@ var MODULE_SCHEMAS = [ '../../api/experimental_processes.json', '../../api/experimental_push_messaging.json', // autogenerated '../../api/experimental_rlz.json', - '../../api/experimental_serial.json', // autogenerated '../../api/experimental_speech_input.json', '../../api/experimental_usb.json', // autogenerated '../../api/extension.json', @@ -82,6 +81,7 @@ var MODULE_SCHEMAS = [ '../../api/proxy.json', '../../api/runtime.json', '../../api/script_badge.json', + '../../api/serial.json', // autogenerated '../../api/socket.json', // autogenerated '../../api/storage.json', '../../api/system_private.json', diff --git a/chrome/common/extensions/docs/samples.json b/chrome/common/extensions/docs/samples.json index fce741e..0357dbf 100644 --- a/chrome/common/extensions/docs/samples.json +++ b/chrome/common/extensions/docs/samples.json @@ -177,14 +177,6 @@ "chrome.experimental.processes.terminate": "experimental.processes.html#method-terminate", "chrome.experimental.record.captureURLs": "experimental.record.html#method-captureURLs", "chrome.experimental.record.replayURLs": "experimental.record.html#method-replayURLs", - "chrome.experimental.serial.close": "experimental.serial.html#method-close", - "chrome.experimental.serial.flush": "experimental.serial.html#method-flush", - "chrome.experimental.serial.getControlSignals": "experimental.serial.html#method-getControlSignals", - "chrome.experimental.serial.getPorts": "experimental.serial.html#method-getPorts", - "chrome.experimental.serial.open": "experimental.serial.html#method-open", - "chrome.experimental.serial.read": "experimental.serial.html#method-read", - "chrome.experimental.serial.setControlSignals": "experimental.serial.html#method-setControlSignals", - "chrome.experimental.serial.write": "experimental.serial.html#method-write", "chrome.experimental.speechInput.isRecording": "experimental.speechInput.html#method-isRecording", "chrome.experimental.speechInput.onError": "experimental.speechInput.html#event-onError", "chrome.experimental.speechInput.onResult": "experimental.speechInput.html#event-onResult", @@ -304,6 +296,14 @@ "chrome.scriptBadge.getPopup": "scriptBadge.html#method-getPopup", "chrome.scriptBadge.onClicked": "scriptBadge.html#event-onClicked", "chrome.scriptBadge.setPopup": "scriptBadge.html#method-setPopup", + "chrome.serial.close": "serial.html#method-close", + "chrome.serial.flush": "serial.html#method-flush", + "chrome.serial.getControlSignals": "serial.html#method-getControlSignals", + "chrome.serial.getPorts": "serial.html#method-getPorts", + "chrome.serial.open": "serial.html#method-open", + "chrome.serial.read": "serial.html#method-read", + "chrome.serial.setControlSignals": "serial.html#method-setControlSignals", + "chrome.serial.write": "serial.html#method-write", "chrome.socket.bind": "socket.html#method-bind", "chrome.socket.connect": "socket.html#method-connect", "chrome.socket.create": "socket.html#method-create", diff --git a/chrome/common/extensions/permissions/api_permission.cc b/chrome/common/extensions/permissions/api_permission.cc index 30ceeaf..884260b 100644 --- a/chrome/common/extensions/permissions/api_permission.cc +++ b/chrome/common/extensions/permissions/api_permission.cc @@ -117,9 +117,6 @@ void APIPermission::RegisterAllPermissions( { kTtsEngine, "ttsEngine", kFlagCannotBeOptional, IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, PermissionMessage::kTtsEngine }, - { kUsb, "usb", kFlagNone, - IDS_EXTENSION_PROMPT_WARNING_USB, - PermissionMessage::kNone }, { kWebNavigation, "webNavigation", kFlagNone, IDS_EXTENSION_PROMPT_WARNING_TABS, PermissionMessage::kTabs }, { kWebRequest, "webRequest" }, @@ -157,6 +154,7 @@ void APIPermission::RegisterAllPermissions( PermissionMessage::kFullAccess }, // Platform-app permissions. + { kSerial, "serial", kFlagCannotBeOptional }, { kSocket, "socket", kFlagCannotBeOptional }, { kAppWindow, "app.window" }, { kAudioCapture, "audioCapture", kFlagNone, diff --git a/chrome/common/extensions/permissions/api_permission.h b/chrome/common/extensions/permissions/api_permission.h index 1cd9286..bd24a1c 100644 --- a/chrome/common/extensions/permissions/api_permission.h +++ b/chrome/common/extensions/permissions/api_permission.h @@ -70,6 +70,7 @@ class APIPermission { kPlugin, kPrivacy, kProxy, + kSerial, kSocket, kStorage, kSystemPrivate, @@ -79,7 +80,6 @@ class APIPermission { kTts, kTtsEngine, kUnlimitedStorage, - kUsb, kVideoCapture, kWallpaperPrivate, kWebNavigation, diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc index 17f7cca..39cf0a8 100644 --- a/chrome/common/extensions/permissions/permission_set_unittest.cc +++ b/chrome/common/extensions/permissions/permission_set_unittest.cc @@ -608,8 +608,8 @@ TEST(PermissionsTest, PermissionMessages) { // Platform apps. TODO(miket): must we skip? skip.insert(APIPermission::kFileSystem); + skip.insert(APIPermission::kSerial); skip.insert(APIPermission::kSocket); - skip.insert(APIPermission::kUsb); PermissionsInfo* info = PermissionsInfo::GetInstance(); APIPermissionSet permissions = info->GetAll(); diff --git a/chrome/test/data/extensions/api_test/dns/api/manifest.json b/chrome/test/data/extensions/api_test/dns/api/manifest.json index 789980b..3ddcc97 100644 --- a/chrome/test/data/extensions/api_test/dns/api/manifest.json +++ b/chrome/test/data/extensions/api_test/dns/api/manifest.json @@ -9,7 +9,6 @@ } }, "permissions": [ - "experimental", - "dns" + "experimental" ] } diff --git a/chrome/test/data/extensions/api_test/serial/api/background.js b/chrome/test/data/extensions/api_test/serial/api/background.js index 207899d..67c0e30 100644 --- a/chrome/test/data/extensions/api_test/serial/api/background.js +++ b/chrome/test/data/extensions/api_test/serial/api/background.js @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +const serial = chrome.serial; + // TODO(miket): opening Bluetooth ports on OSX is unreliable. Investigate. function shouldSkipPort(portName) { return portName.match(/[Bb]luetooth/); @@ -33,34 +35,31 @@ var testSerial = function() { var doNextOperation = function() { switch (operation++) { case 0: - chrome.experimental.serial.getPorts(onGetPorts); + serial.getPorts(onGetPorts); break; case 1: var bitrate = 57600; console.log('Opening serial device ' + serialPort + ' at ' + bitrate + ' bps.'); - chrome.experimental.serial.open(serialPort, {bitrate: bitrate}, - onOpen); + serial.open(serialPort, {bitrate: bitrate}, onOpen); break; case 2: - chrome.experimental.serial.setControlSignals( - connectionId, {dtr: true}, onSetControlSignals); + serial.setControlSignals(connectionId, {dtr: true}, onSetControlSignals); break; case 3: - chrome.experimental.serial.getControlSignals(connectionId, - onGetControlSignals); + serial.getControlSignals(connectionId,onGetControlSignals); break; case 4: - chrome.experimental.serial.write(connectionId, writeBuffer, onWrite); + serial.write(connectionId, writeBuffer, onWrite); break; case 5: - chrome.experimental.serial.read(connectionId, bytesToRead, onRead); + serial.read(connectionId, bytesToRead, onRead); break; case 6: - chrome.experimental.serial.flush(connectionId, onFlush); + serial.flush(connectionId, onFlush); break; case 50: // GOTO 4 EVER - chrome.experimental.serial.close(connectionId, onClose); + serial.close(connectionId, onClose); break; default: // Beware! If you forget to assign a case for your next test, the whole @@ -94,9 +93,8 @@ var testSerial = function() { bytesToRead -= readInfo.bytesRead; var readBufferIndex = bufferLength - readInfo.bytesRead; var messageUint8View = new Uint8Array(readInfo.data); - for (var i = 0; i < readInfo.bytesRead; i++) { + for (var i = 0; i < readInfo.bytesRead; i++) readBufferUint8View[i + readBufferIndex] = messageUint8View[i]; - } if (bytesToRead == 0) { chrome.test.assertEq(writeBufferUint8View, readBufferUint8View, 'Buffer read was not equal to buffer written.'); diff --git a/chrome/test/data/extensions/api_test/serial/api/manifest.json b/chrome/test/data/extensions/api_test/serial/api/manifest.json index c8d1aa4..642b587 100644 --- a/chrome/test/data/extensions/api_test/serial/api/manifest.json +++ b/chrome/test/data/extensions/api_test/serial/api/manifest.json @@ -1,15 +1,14 @@ { - "name": "chrome.experimental.serial", + "name": "chrome.serial", "version": "0.1", "manifest_version": 2, - "description": "end-to-end browser test for chrome.experimental.serial API", + "description": "end-to-end browser test for chrome.serial API", "app": { "background": { "scripts": ["background.js"] } }, "permissions": [ - "experimental", "serial" ] } diff --git a/chrome/test/data/extensions/api_test/serial/real_hardware/background.js b/chrome/test/data/extensions/api_test/serial/real_hardware/background.js index 05f2531..27e033d 100644 --- a/chrome/test/data/extensions/api_test/serial/real_hardware/background.js +++ b/chrome/test/data/extensions/api_test/serial/real_hardware/background.js @@ -16,7 +16,7 @@ var testGetPorts = function() { chrome.test.succeed(); } - chrome.experimental.serial.getPorts(onGetPorts); + chrome.serial.getPorts(onGetPorts); }; var testMaybeOpenPort = function() { @@ -44,7 +44,7 @@ var testMaybeOpenPort = function() { var onOpen = function(connectionInfo) { var id = connectionInfo.connectionId; if (id > 0) - chrome.experimental.serial.close(id, onClose); + chrome.serial.close(id, onClose); else onFinishedWithPort(); }; @@ -56,7 +56,7 @@ var testMaybeOpenPort = function() { onFinishedWithPort(); } else { console.log("Opening serial device " + port); - chrome.experimental.serial.open(port, onOpen); + chrome.serial.open(port, onOpen); } } @@ -67,7 +67,7 @@ var testMaybeOpenPort = function() { } } - chrome.experimental.serial.getPorts(onGetPorts); + chrome.serial.getPorts(onGetPorts); }; var tests = [testGetPorts, testMaybeOpenPort]; diff --git a/chrome/test/data/extensions/api_test/serial/real_hardware/manifest.json b/chrome/test/data/extensions/api_test/serial/real_hardware/manifest.json index c8d1aa4..46dfd0cb 100644 --- a/chrome/test/data/extensions/api_test/serial/real_hardware/manifest.json +++ b/chrome/test/data/extensions/api_test/serial/real_hardware/manifest.json @@ -1,15 +1,14 @@ { - "name": "chrome.experimental.serial", + "name": "chrome.serial real hardware", "version": "0.1", "manifest_version": 2, - "description": "end-to-end browser test for chrome.experimental.serial API", + "description": "end-to-end real-hardware test for chrome.serial API", "app": { "background": { "scripts": ["background.js"] } }, "permissions": [ - "experimental", "serial" ] } |