Hello aa,
I'd like you to do a code review. Please execute
g4 diff -c 11293032
or point your web browser to
http://mondrian/11293032
to review the following code:
Change 11293032 by nigel...@nigeltao-srcgears1 on 2009/05/28 17:27:42 *pending*
SDK documentation update for 0.5.21.
PRESUBMIT=passed
R=aa
CC=jonc,[email protected]
DELTA=524 (518 added, 0 deleted, 6 changed)
OCL=11293032
Affected files ...
... //depot/googleclient/gears/opensource/gears/sdk/api_blob.html#2 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_blobbuilder.html#1 add
... //depot/googleclient/gears/opensource/gears/sdk/api_canvas.html#1 add
... //depot/googleclient/gears/opensource/gears/sdk/api_desktop.html#10 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_factory.html#4 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_summary.html#14 edit
... //depot/googleclient/gears/opensource/gears/sdk/history.html#10 edit
524 delta lines: 518 added, 0 deleted, 6 changed
Also consider running:
g4 lint -c 11293032
which verifies that the changelist doesn't introduce new style violations.
If you can't do the review, please let me know as soon as possible. During
your review, please ensure that all new code has corresponding unit tests and
that existing unit tests are updated appropriately. Visit
http://www/eng/code_review.html for more information.
This is a semiautomated message from "g4 mail". Complaints or suggestions?
Mail [email protected].
Change 11293032 by nigel...@nigeltao-srcgears1 on 2009/05/28 17:27:42 *pending*
SDK documentation update for 0.5.21.
Affected files ...
... //depot/googleclient/gears/opensource/gears/sdk/api_blob.html#2 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_blobbuilder.html#1 add
... //depot/googleclient/gears/opensource/gears/sdk/api_canvas.html#1 add
... //depot/googleclient/gears/opensource/gears/sdk/api_desktop.html#10 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_factory.html#4 edit
... //depot/googleclient/gears/opensource/gears/sdk/api_summary.html#14 edit
... //depot/googleclient/gears/opensource/gears/sdk/history.html#10 edit
==== //depot/googleclient/gears/opensource/gears/sdk/api_blob.html#2 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_blob.html
====
# action=edit type=text
--- googleclient/gears/opensource/gears/sdk/api_blob.html 2009-05-28
17:23:56.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_blob.html 2009-05-28
17:22:22.000000000 +1000
@@ -40,7 +40,7 @@
<div id="pagecontent">
<p>The 'Blob' object is a general-purpose way to reference binary data in
-web applications.
+web applications.</p>
<h3>Contents</h3>
@@ -100,7 +100,8 @@
<h2 id="blob_class">Blob class</h2>
<pre><code>readonly attribute int <b>length</b>
-Blob <b>slice</b>(offset, length)
+int[] <b>getBytes</b>([offset, length])
+Blob <b>slice</b>(offset, [length])
</code></pre>
<br>
@@ -123,10 +124,37 @@
<h3>Methods</h3>
+<a name="getBytes"></a>
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>int[] getBytes([offset, length])</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Returns the bytes (as integers in the range 0-255) of a slice of the
Blob.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>offset</code> - Optional. The position of the first byte to return.
+ The default value is zero.
+ <br/>
+ <code>length</code> - Optional. The number of bytes to return. The
+ default value means to the end of the Blob.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td>An integer array containing the Blob's bytes.</td>
+ </tr>
+</table>
+
<a name="slice"></a>
<table>
<tr class="odd">
- <th colspan="2"><code>Blob slice(offset, length)</code></th>
+ <th colspan="2"><code>Blob slice(offset, [length])</code></th>
</tr>
<tr class="odd">
<td width="113">Summary:</td>
@@ -139,7 +167,8 @@
<td class="odd">
<code>offset</code> - The position of the first byte to extract.
<br/>
- <code>length</code> - The number of bytes to extract.
+ <code>length</code> - Optional. The number of bytes to extract. The
+ default value means to the end of the Blob.
</td>
</tr>
<tr class="odd">
==== //depot/googleclient/gears/opensource/gears/sdk/api_blobbuilder.html#1 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_blobbuilder.html
====
# action=add type=text
--- /dev/null 1970-01-01 10:00:00.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_blobbuilder.html
2009-05-28 17:22:22.000000000 +1000
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
+
+<!--
+Copyright 2008, Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of Google Inc. nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<html>
+ <head>
+ <title>BlobBuilder API</title>
+ <link rel="stylesheet" type="text/css" href="gears.css" />
+ </head>
+
+<body>
+
+<h1>BlobBuilder API</h1>
+
+<div id="pagecontent">
+
+<p>A BlobBuilder is a helper object for creating (immutable) Blobs.</p>
+
+
+<h3>Contents</h3>
+
+ <ol class="toc">
+ <li><a href="#overview">Overview</a>
+ <li><a href="#blobbuilder_class">BlobBuilder class</a>
+ </ol>
+
+
+
+<h2 id="overview">Overview</h2>
+
+<p>A Blob is an immutable, read-only object, the same as a JavaScript string.
+BlobBuilders are used to generate a Blob with new content. They are to Java's
+StringBuilder as Gears Blobs are to Java's Strings.</p>
+
+
+<h4>Permission</h4>
+
+<p>The BlobBuilder API does not require user permission.</p>
+
+
+<h2 id="blobbuilder_class">BlobBuilder class</h2>
+
+<pre><code>void <b>append</b>(data)
+Blob <b>getAsBlob</b>()
+</code></pre>
+<br>
+
+
+<h3>Methods</h3>
+
+<a name="append"></a>
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>void append(data)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Appends bytes to the Blob-in-progress.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>data</code> - Either an integer (in the range 0-255 inclusive), a
+ string (which will be encoded as UTF-8), a Blob, or an array of
+ appendable data (such as an array of a mix of strings and Blobs).
+ </td>
+ </tr>
+</table>
+
+<a name="getAsBlob"></a>
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>Blob getAsBlob()</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Bakes the previously appended data into a new, immutable Blob object. It
+ is a programming error to make any further calls to a BlobBuilder object
+ after calling getAsBlob.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td>A new Blob containing the previously appended data.</td>
+ </tr>
+</table>
+
+
+</div>
+</body>
+</html>
==== //depot/googleclient/gears/opensource/gears/sdk/api_canvas.html#1 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_canvas.html
====
# action=add type=text
--- /dev/null 1970-01-01 10:00:00.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_canvas.html 2009-05-28
17:22:23.000000000 +1000
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
+
+<!--
+Copyright 2008, Google Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of Google Inc. nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<html>
+ <head>
+ <title>Canvas API</title>
+ <link rel="stylesheet" type="text/css" href="gears.css" />
+ </head>
+
+<body>
+
+<h1>Canvas API</h1>
+
+<div id="pagecontent">
+
+<p>The Canvas module provides an image manipulation API to JavaScript.</p>
+
+
+<h3>Contents</h3>
+
+ <ol class="toc">
+ <li><a href="#overview">Overview</a>
+ <li><a href="#canvas_class">Canvas class</a>
+ </ol>
+
+
+
+<h2 id="overview">Overview</h2>
+
+<p>The Canvas module is a graphics API that is inspired by <a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">the
+HTML5 canvas</a>, with additional methods to decode from and encode to binary
+formats (such as PNG and JPEG), represented by Blobs.</p>
+
+<p>A Gears Canvas is not yet a complete implementation of the HTML5 canvas
+specification, and there are two significant differences:</p>
+
+<ul>
+<li>A Gears Canvas is off-screen, in that creating a Canvas object doesn't
+directly paint any pixels on the screen. Furthermore, for technical reasons, a
+Gears Canvas is not a DOM Element. On the other hand, you can create a Gears
+Canvas in a Worker.</li>
+<li>A Gears Canvas does not implement <code>getContext</code>, and in
particular
+does not provide a 2D context.</li>
+</ul>
+
+
+<h4>Permission</h4>
+
+<p>This API requires user permission. If you would like to customize the
default dialog, you can explicitly call
<code>google.gears.factory.getPermission()</code> - <a
href="api_factory.html">see how.</a></p>
+
+
+<h2 id="canvas_class">Canvas class</h2>
+
+<pre><code>readwrite attribute int <b>height</b>
+readwrite attribute int <b>width</b>
+void <b>crop</b>(x, y, w, h)
+void <b>decode</b>(blob)
+Blob <b>encode</b>([mimeType, options])
+void <b>resize</b>(w, h, [filter])
+</code></pre>
+<br>
+
+
+<h3>Attributes</h3>
+
+<table>
+ <tr class="odd">
+ <th width="158">Attribute</th>
+ <th width="109">Type</th>
+ <th width="432">Description</th>
+ </tr>
+ <tr class="odd">
+ <td><a name="height"></a><strong>height</strong></td>
+ <td class="odd">readwrite attribute int</td>
+ <td class="odd">The height of the Canvas. The default value is 150.</td>
+ </tr>
+ <tr class="odd">
+ <td><a name="width"></a><strong>width</strong></td>
+ <td class="odd">readwrite attribute int</td>
+ <td class="odd">The width of the Canvas. The default value is 300.</td>
+ </tr>
+</table>
+
+
+<h3>Methods</h3>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>void crop(x, y, w, h)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Crops the Canvas. The crop happens "in-place", as opposed
+ to returning a new Canvas.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>x</code> - The left co-ordinate of the crop rectangle.
+ <br/>
+ <code>y</code> - The top co-ordinate of the crop rectangle.
+ <br/>
+ <code>w</code> - The width of the crop rectangle.
+ <br/>
+ <code>h</code> - The height of the crop rectangle.
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>void decode(blob)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Loads an image into this Canvas, replacing the Canvas' current dimensions
+ and contents.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>blob</code> - The Blob to decode. The image should be in PNG or
+ JPEG format.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td>A new Blob containing the specified subset.</td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>Blob encode([mimeType, options])</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Saves the Canvas' contents to a binary format, such as PNG or JPEG.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>mimeType</code> - Optional. The image format to encode to. Valid
+ values include "image/png" and "image/jpeg". The
+ default encoding is PNG.
+ <br/>
+ <code>options</code> - Optional. A JavaScript object (i.e. key-value map)
+ that specifies encoding options. For lossy formats, such as JPEG, one
+ can specify a "quality" key, whose value should be a number
+ between 0.0 and 1.0 inclusive.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td>A new Blob encoding the Canvas' image data.</td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>void resize(w, h, [filter])</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Resizes the Canvas. The resize happens "in-place", as opposed
+ to returning a new Canvas.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>w</code> - The new width.
+ <br/>
+ <code>h</code> - The new height.
+ <br/>
+ <code>filter</code> - Optional. A string specifying the image filter.
+ There are two options: "nearest" for nearest-neighbor
+ filtering, and "bilinear" for bi-linear filtering. The
+ default filter, if unspecified, is "bilinear".
+ </td>
+ </tr>
+</table>
+
+
+</div>
+</body>
+</html>
==== //depot/googleclient/gears/opensource/gears/sdk/api_desktop.html#10 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_desktop.html
====
# action=edit type=text
--- googleclient/gears/opensource/gears/sdk/api_desktop.html 2009-05-28
17:23:56.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_desktop.html 2009-05-28
17:22:25.000000000 +1000
@@ -72,7 +72,10 @@
<pre><code><a href="#Desktop">Desktop class</a>
void <b>createShortcut</b>(name, url, icons, [description])
- void <b>openFiles</b>(callback, [options])</code></pre>
+ Object <b>extractMetaData</b>(blob)
+ Object <b>getDragData</b>(event, flavor)
+ void <b>openFiles</b>(callback, [options])
+ void <b>setDropEffect</b>(event, dropEffect)</code></pre>
<pre><code><a href="#OpenFilesCallback">OpenFilesCallback</a>(<a
href="#File">File</a>[] files)</code></pre>
@@ -157,6 +160,75 @@
<table>
<tr class="odd">
+ <th colspan="2"><code>extractMetaData(blob)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Calculates metadata (such as MIME type) from a Blob's contents. For
+ example, if the Blob contains image data in a well-known encoding (such
+ as PNG or JPEG), this will return the image's width and height.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>blob</code> - The Blob to examine.
+ <br>
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td class="odd">
+ A JavaScript Object (i.e. a key-value map). One such key is
+ "mimeType", which can have values such as "image/png"
+ or "application/octet-stream". Another key, which might not
+ always be present, is "imageWidth", which will be an integer
+ that is the width of the Blob's decoded image.
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>getDragData(event, flavor)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Returns the data that is on the OS's drag-and-drop clipboard. This
+ method is valid to call only during processing of a drag-and-drop event
+ (such as during ondragenter, ondragover, ondragleave or ondrop). This
+ method is analogous to HTML5's DataTransfer.getData method.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>event</code> - The drag-and-drop event. Typically, just pass
+ window.event. On Firefox, pass the event that is given as an argument
+ of the event handler.
+ <br>
+ <code>flavor</code> - The flavor of data requested. Currently, the only
+ supported flavor is "application/x-gears-files", to get
+ File data.
+ <br>
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Return value:</td>
+ <td class="odd">
+ A JavaScript Object (i.e. a key-value map). One such key is
+ "count", which is the number of objects being dragged.
+ Another key, only present during an ondrop event and not other events,
+ is "files", which will return the actual File objects being
+ drag-and-dropped.
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
<th colspan="2"><code>openFiles(callback, [options])</code></th>
</tr>
<tr class="odd">
@@ -193,6 +265,34 @@
<br><br>
If the user cancels the dialog without selecting any files, the
callback is invoked with an empty array.
+ </td>
+ </tr>
+</table>
+
+<table>
+ <tr class="odd">
+ <th colspan="2"><code>setDropEffect(event, dropEffect)</code></th>
+ </tr>
+ <tr class="odd">
+ <td width="113">Summary:</td>
+ <td width="550" class="odd">
+ Sets the dropEffect (i.e. the cursor) in response to a drag-and-drop
+ event. This method is valid to call only during processing of a
+ drag-and-drop event (such as during ondragenter, ondragover, ondragleave
+ or ondrop). This method is analogous to HTML5's DataTransfer.dropEffect
+ setter.
+ </td>
+ </tr>
+ <tr class="odd">
+ <td>Parameters:</td>
+ <td class="odd">
+ <code>event</code> - The drag-and-drop event. Typically, just pass
+ window.event. On Firefox, pass the event that is given as an argument
+ of the event handler.
+ <br>
+ <code>dropEffect</code> - Either the value "copy", or
+ "none".
+ <br>
</td>
</tr>
</table>
==== //depot/googleclient/gears/opensource/gears/sdk/api_factory.html#4 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_factory.html
====
# action=edit type=text
--- googleclient/gears/opensource/gears/sdk/api_factory.html 2009-05-28
17:23:56.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_factory.html 2009-05-28
17:22:26.000000000 +1000
@@ -114,6 +114,14 @@
<th width="216">Gears class created</th>
</tr>
<tr>
+ <td class="code">beta.blobbuilder</td>
+ <td><a href="api_blobbuilder.html">BlobBuilder</a></td>
+ </tr>
+ <tr>
+ <td class="code">beta.canvas</td>
+ <td><a href="api_canvas.html">Canvas</a></td>
+ </tr>
+ <tr>
<td class="code">beta.database</td>
<td><a href="api_database.html">Database</a></td>
</tr>
==== //depot/googleclient/gears/opensource/gears/sdk/api_summary.html#14 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/api_summary.html
====
# action=edit type=text
--- googleclient/gears/opensource/gears/sdk/api_summary.html 2009-05-28
17:23:57.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/api_summary.html 2009-05-28
17:24:33.000000000 +1000
@@ -61,7 +61,26 @@
<p>Provides a way to reference binary data.</p>
<pre><code><a href="api_blob.html">Blob class</a>
readonly attribute int <b>length</b>
+ int[] <b>getBytes</b>(offset, length)</code></pre>
Blob <b>slice</b>(offset, length)</code></pre>
+
+
+<h3>BlobBuilder</h3>
+<p>Provides a way to reference binary data.</p>
+<pre><code><a href="api_blobbuilder.html">BlobBuilder class</a>
+ void <b>append</b>(data)
+ Blob <b>getAsBlob</b>()</code></pre>
+
+
+<h3>Canvas</h3>
+<p>Provides a way to perform image manipulation.</p>
+<pre><code><a href="api_canvas.html">Canvas class</a>
+ readwrite attribute int <b>height</b>
+ readwrite attribute int <b>width</b>
+ void <b>crop</b>(x, y, w, h)
+ void <b>decode</b>(blob)
+ Blob <b>encode</b>([mimeType, options])
+ void <b>resize</b>(w, h, [filter])</code></pre>
<h3>Database</h3>
@@ -88,7 +107,10 @@
<p>Provides an interface for accessing Desktop functionality.</p>
<pre><code><a href="api_desktop.html">Desktop class</a>
void <b>createShortcut</b>(name, url, icons, [description])
- void <b>openFiles</b>(callback, [options])</code></pre>
+ Object <b>extractMetaData</b>(blob)
+ Object <b>getDragData</b>(event, flavor)
+ void <b>openFiles</b>(callback, [options])
+ void <b>setDropEffect</b>(event, dropEffect)</code></pre>
<h3>Geolocation</h3>
==== //depot/googleclient/gears/opensource/gears/sdk/history.html#10 -
/home/nigeltao/srcgears1/googleclient/gears/opensource/gears/sdk/history.html
====
# action=edit type=text
--- googleclient/gears/opensource/gears/sdk/history.html 2009-05-28
17:23:57.000000000 +1000
+++ googleclient/gears/opensource/gears/sdk/history.html 2009-05-28
17:22:33.000000000 +1000
@@ -38,6 +38,25 @@
<h1>API History</h1>
<div id="pagecontent">
+
+<h3 id="0.5.21">New in 0.5.21 <em>- Released May 29, 2009</em></h3>
+
+<ul>
+ <li><a href="api_blob.html">Blob</a> changes:
+ <ul>
+ <li>Added the <code>getBytes()</code> method.
+ </ul>
+ <li>Added the <a href="api_blobbuilder.html">BlobBuilder</a> API.
+ <li>Added the <a href="api_canvas.html">Canvas</a> API.
+ <li><a href="api_desktop.html">Desktop</a> changes:
+ <ul>
+ <li>Added the <code>extractMetaData()</code> method.
+ <li>Added the <code>getDragData()</code> method.
+ <li>Added the <code>setDropEffect()</code> method.
+ </ul>
+</ul>
+
+<br>
<h3 id="0.5">New in 0.5 <em>- Released November 24, 2008</em></h3>