[TV] Added apireference for TV profile
authorPiotr Kosko <p.kosko@samsung.com>
Thu, 28 Apr 2016 08:42:39 +0000 (10:42 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Thu, 28 Apr 2016 08:42:39 +0000 (10:42 +0200)
Change-Id: I592e4e3cee331f8b8af25d39e9967f93a4132f5f
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
33 files changed:
org.tizen.web.apireference/html/device_api/tv/index.html [new file with mode: 0755]
org.tizen.web.apireference/html/device_api/tv/tizen/alarm.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/application.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/archive.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/content.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/datacontrol.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/download.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/exif.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/filesystem.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/fmradio-state.png [new file with mode: 0755]
org.tizen.web.apireference/html/device_api/tv/tizen/keymanager.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/linux-foundation-color.png [new file with mode: 0755]
org.tizen.web.apireference/html/device_api/tv/tizen/logo-tizen.png [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/messageport.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/package.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/privilege.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/privlevel.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/snippet.js [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/styles-systeminfo.css [new file with mode: 0755]
org.tizen.web.apireference/html/device_api/tv/tizen/systeminfo.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/time.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tizen.css [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tizen.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tizen.js [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvaudiocontrol.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvchannel.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvdisplaycontrol.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvinfo.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvinputdevice.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/tvwindow.html [new file with mode: 0644]
org.tizen.web.apireference/html/device_api/tv/tizen/websetting.html [new file with mode: 0644]
org.tizen.web.apireference/html/index.htm
org.tizen.web.apireference/index.xml

diff --git a/org.tizen.web.apireference/html/device_api/tv/index.html b/org.tizen.web.apireference/html/device_api/tv/index.html
new file mode 100755 (executable)
index 0000000..bf50b14
--- /dev/null
@@ -0,0 +1,215 @@
+    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+        <link media="screen" href="./tizen/tizen.css" type="text/css" rel="stylesheet">
+
+        <title>Tizen TV Web Device APIs Reference</title>
+        </head>
+        <body id="content">
+        <div id="title" class="api">
+
+            <h1>Tizen TV Web Device APIs Reference</h1>
+                    <div class="brief">
+                            <p>The Tizen Web Device API based on JavaScript provides you advanced access to the device&#39;s platform capabilities.</p>
+                            <p>You can develop rich Web applications using the Tizen Web Device API.</p>
+                            <p>The APIs listed in this category are created by the Tizen platform to expose device capabilities to the Web Apps.</p>
+
+            <h4 id="Tizen">Base</h4>
+             <table width="90%">
+                <thead>
+                <tr><th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+                <tr>
+                <td>
+                <a href="tizen/archive.html" data-origin="tizen" data-domain="filesystem" data-category="core" data-status="D" data-version="">
+                        Archive</a></td>
+                <td>This API provides interfaces and methods to create an archive file as well as various other kinds of manipulation(e.g. extract files, add a file to an archive file).</td>
+                <td>2.3</td>
+                </tr>
+
+                <tr>
+                <td><a href="tizen/filesystem.html" data-origin="tizen" data-domain="filesystem" data-category="core" data-status="D" data-version="">
+                        Filesystem</a></td>
+                <td>This API provides access to the file system of a device. This API might be obsolete in the future when W3C File APIs are extended to access system-sensitive files by Web applications. </td>
+                <td>1.0</td>
+                </tr>
+                <tr>
+                <td style="width:20%"><a href="tizen/tizen.html" data-origin="tizen" data-domain="system" data-category="core" data-status="S" data-version"">
+                        Tizen </a></td>
+                <td>The base object for accessing the Tizen Web Device API.</td>
+                <td>1.0</td>
+                </tr>
+                </tbody>
+             </table>
+
+            <h4 id="Application">Application Framework</h4>
+             <table width="90%">
+                <thead>
+                   <tr>
+                   <th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+                <tr>
+                <td style="width:20%"><a href="tizen/alarm.html" data-origin="tizen" data-domain="system" data-category="core" data-status="S" data-version="">
+                        Alarm</a></td>
+                <td>This API provides functionality for setting and unsetting alarms.</td>
+                <td>1.0</td>
+                </tr>
+                <tr><td><a href="tizen/application.html" data-origin="tizen" data-domain="system" data-category="core" data-status="D" data-version="">
+                        Application</a></td>
+                <td>This API provides information about running and installed applications and controls them.</td>
+                <td>1.0</td>
+                </tr>
+                <tr><td><a href="tizen/datacontrol.html" data-origin="tizen" data-domain="system" data-category="core" data-status="D" data-version="">
+                        Data Control</a></td>
+                <td>This API provides interfaces and methods for accessing specific data exported by other applications.</td>
+                <td>2.4</td>
+                </tr>
+                <tr>
+                <td><a href="tizen/messageport.html" data-origin="tizen" data-domain="filesystem" data-category="core" data-status="D" data-version="">
+                        Message Port</a></td>
+                <td>This API provides the functionality for communication with other applications. </td>
+                <td>2.1</td>
+                </tr>
+                <tr>
+                <td><a href="tizen/package.html" data-origin="tizen" data-domain="system" data-category="core" data-status="D" data-version="">
+                        Package</a></td>
+                <td>This API provides information install/uninstall package and get information about installed packages.</td>
+                <td>2.1</td>
+                </tr>
+                </tbody>
+             </table>
+
+            <h4 id="Contents">Content</h4>
+             <table width="90%">
+                <thead>
+                <tr>
+                <th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+                <tr>
+                <td><a href="tizen/content.html" data-origin="tizen" data-domain="content" data-category="core" data-status="D" data-version="">
+                        Content</a></td>
+                <td>This API provides functionality to discover multimedia content (such as images, videos or music).</td>
+                <td>2.0</td>
+                </tr>
+                <tr>
+                <td><a href="tizen/download.html" data-origin="tizen" data-domain="content" data-category="core" data-status="D" data-version="">
+                        Download</a></td>
+                <td>This API provides interfaces and methods for downloading remote objects by HTTP request.</td>
+                <td>2.0</td>
+                </tr>
+                <tr>
+                <td><a href="tizen/exif.html" data-origin="tizen" data-domain="content" data-category="core" data-status="D" data-version="">
+                        Exif</a></td>
+                <td>This API provides interfaces and methods for manipulatiing Exif data from JPEG file.</td>
+                <td>2.3</td>
+                </tr>
+                </tbody>
+             </table>
+
+            <h4 id="Security">Security</h4>
+             <table width="90%">
+                <thead>
+                <tr>
+                <th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+
+                <tr>
+                <td><a href="tizen/keymanager.html" data-origin="tizen" data-domain="filesystem" data-category="core" data-status="D" data-version="">
+                        Key Manager</a></td>
+                <td>This API provides a secure repository for keys, certificates, and sensitive data of users and/or their applications.</td>
+                <td>2.4</td>
+                </tr>
+                </tbody>
+              </table>
+
+            <h4 id="System">System</h4>
+             <table width="90%">
+                <thead>
+                <tr><th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+                <tr><td><a href="tizen/systeminfo.html" data-origin="tizen" data-domain="system" data-category="core" data-status="D" data-version="">
+                        System Information</a></td>
+                <td>This API provides information about the device's display, network, storage and other capabilities.</td>
+                <td>1.0</td>
+                </tr>
+                <tr><td><a href="tizen/time.html" data-origin="tizen" data-domain="system" data-category="core" data-status="S" data-version="">
+                        Time</a></td>
+                <td>This API exposes information about date, time and time zones.</td>
+                <td>1.0</td>
+                </tr>
+                <tr><td><a href="tizen/websetting.html" data-origin="tizen" data-domain="system" data-category="core" data-status="S" data-version="">
+                        Web Setting</a></td>
+                <td>This API manages the setting states of the web view in web applications.</td>
+                <td>2.2</td>
+                </tr>
+                </tbody>
+              </table>
+
+            <h4 id="TV Control">TV Controls</h4>
+             <table width="90%">
+                <thead>
+                <tr><th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
+                </thead>
+                <tbody>
+                <tr><td><a href="tizen/tvaudiocontrol.html" data-origin="tizen" data-domain="tv" data-category="core" data-status="D" data-version="">
+                        TV Audio Control</a></td>
+                <td>This API provides interfaces and methods for control of TV audio.</td>
+                <td>2.3</td>
+                </tr>
+                <tr><td><a href="tizen/tvchannel.html" data-origin="tizen" data-domain="tv" data-category="core" data-status="D" data-version="">
+                        TV Channel</a></td>
+                <td>This API provides interfaces and methods for control of TV channel, such as getting TV channel list, switching TV channels, and getting information of electronic program guide(EPG).</td>
+                <td>2.3</td>
+                </tr>
+                <tr><td><a href="tizen/tvdisplaycontrol.html" data-origin="tizen" data-domain="tv" data-category="core" data-status="D" data-version="">
+                        TV Display Control</a></td>
+                <td>This API provides interfaces and methods for getting information about the effects of stereoscopy(3D mode).</td>
+                <td>2.3</td>
+                </tr>
+                <tr><td><a href="tizen/tvinputdevice.html" data-origin="tizen" data-domain="system" data-category="core" data-status="S" data-version="2.3">
+                        TV Input Device</a></td>
+                <td>This API allows receiving key events generated when the user presses a key of an Input Device (for example a TV remote control).</td>
+                <td>2.3</td>
+                </tr>
+                <tr><td><a href="tizen/tvwindow.html" data-origin="tizen" data-domain="tv" data-category="core" data-status="D" data-version="">
+                        TV Window</a></td>
+                <td>This API provides interfaces and methods for control of TV Window(e.g. main window, PIP window )</td>
+                <td>2.3</td>
+                </tr>
+                <tr><td><a href="tizen/tvinfo.html" data-origin="tizen" data-domain="tv" data-category="core" data-status="D" data-version="">
+                        TV Information</a></td>
+                <td>This API provides interfaces and methods for getting information about TV setting.</td>
+                <td>2.4</td>
+                </tr>
+                </tbody>
+              </table>
+
+    <div id="footer">
+            <!--div class="copyright" align="center">
+            <small>&copy; 2013 Samsung Electronics Corporation. All rights reserved.</small></br>
+            <small>&copy; 2013 Intel Corporation. All rights reserved.</small></div-->
+            <div class="copyright" align="center">
+ Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br />For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div-->
+
+        <!--start-->
+           <script type="text/javascript">
+            var _gaq = _gaq || [];
+           _gaq.push(['_setAccount', 'UA-25976949-1']);
+           _gaq.push(['_trackPageview']);
+           (function() {
+               var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+               ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+               var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+           })();
+           </script>
+        <!--end-->
+    </div>
+
+    </div>
+    </body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/alarm.html b/org.tizen.web.apireference/html/device_api/tv/tizen/alarm.html
new file mode 100644 (file)
index 0000000..1f864ec
--- /dev/null
@@ -0,0 +1,891 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Alarm API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Alarm">
+<div class="title"><h1>Alarm API</h1></div>
+<div class="brief">
+ The Alarm API provides functionality for scheduling the system alarm.
+It allows you to run other applications and have them perform operations at a specific time.
+You can schedule an alarm to go off once or to repeat at specific intervals.
+        </div>
+<div class="description">
+        <p>
+Each application has its own individual alarm storage, that is, applications cannot view or edit alarms set by other applications.
+        </p>
+        <p>
+Once an alarm goes off, it will be removed from the alarm storage automatically.
+<em>AlarmManager</em> provides methods to manage alarms such as adding and removing.
+For more information on the Alarm features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/app_guide/alarm.htm">Alarm Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#AlarmId">AlarmId</a>
+</li>
+<li>
+                    1.2. <a href="#ByDayValue">ByDayValue</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#AlarmManagerObject">AlarmManagerObject</a>
+</li>
+<li>2.2. <a href="#AlarmManager">AlarmManager</a>
+</li>
+<li>2.3. <a href="#Alarm">Alarm</a>
+</li>
+<li>2.4. <a href="#AlarmRelative">AlarmRelative</a>
+</li>
+<li>2.5. <a href="#AlarmAbsolute">AlarmAbsolute</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#AlarmManagerObject">AlarmManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AlarmManager">AlarmManager</a></td>
+<td>
+<div>void <a href="#AlarmManager::add">add</a> (<a href="#Alarm">Alarm</a> alarm, <a href="application.html#ApplicationId">ApplicationId</a> applicationId, optional <a href="application.html#ApplicationControl">ApplicationControl</a>? appControl)</div>
+<div>void <a href="#AlarmManager::remove">remove</a> (<a href="#AlarmId">AlarmId</a> id)</div>
+<div>void <a href="#AlarmManager::removeAll">removeAll</a> ()</div>
+<div>
+<a href="#Alarm">Alarm</a> <a href="#AlarmManager::get">get</a> (<a href="#AlarmId">AlarmId</a> id)</div>
+<div>
+<a href="#Alarm">Alarm</a>[] <a href="#AlarmManager::getAll">getAll</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#Alarm">Alarm</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AlarmRelative">AlarmRelative</a></td>
+<td><div>long? <a href="#AlarmRelative::getRemainingSeconds">getRemainingSeconds</a> ()</div></td>
+</tr>
+<tr>
+<td><a href="#AlarmAbsolute">AlarmAbsolute</a></td>
+<td><div>Date? <a href="#AlarmAbsolute::getNextScheduledDate">getNextScheduledDate</a> ()</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="AlarmId">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmId"></a><h3>1.1. AlarmId</h3>
+<div class="brief">
+ An alarm identifier.
+          </div>
+<pre class="webidl prettyprint">    typedef DOMString AlarmId;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+</div>
+<div class="enum" id="ByDayValue">
+<a class="backward-compatibility-anchor" name="::Alarm::ByDayValue"></a><h3>1.2. ByDayValue</h3>
+<div class="brief">
+ Specifies the values for the <a href="#AlarmAbsolute::daysOfTheWeek">daysOfTheWeek</a> attribute.
+          </div>
+<pre class="webidl prettyprint">    enum ByDayValue { "MO", "TU", "WE", "TH", "FR", "SA", "SU" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+"MO" to "SU" correspond to "Monday" to "Sunday".
+          </p>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="AlarmManagerObject">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManagerObject"></a><h3>2.1. AlarmManagerObject</h3>
+<div class="brief">
+ The AlarmManagerObject interface defines what is instantiated by the <em>Tizen </em>object from the Tizen Platform.
+The <em>tizen.alarm </em>object allows access to the functionality of the Alarm API.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface AlarmManagerObject {
+        readonly attribute <a href="#AlarmManager">AlarmManager</a> alarm;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#AlarmManagerObject">AlarmManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+</div>
+<div class="interface" id="AlarmManager">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager"></a><h3>2.2. AlarmManager</h3>
+<div class="brief">
+ The AlarmManager interface provides methods to manage alarms.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface AlarmManager {
+        const long PERIOD_MINUTE = 60;
+
+        const long PERIOD_HOUR = 3600;
+
+        const long PERIOD_DAY = 86400;
+
+        const long PERIOD_WEEK = 604800;
+
+        void add(<a href="#Alarm">Alarm</a> alarm, <a href="application.html#ApplicationId">ApplicationId</a> applicationId, optional <a href="application.html#ApplicationControl">ApplicationControl</a>? appControl) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void remove(<a href="#AlarmId">AlarmId</a> id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeAll() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Alarm">Alarm</a> get(<a href="#AlarmId">AlarmId</a> id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Alarm">Alarm</a>[] getAll() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="consts">
+<h4>Constants</h4>
+<dl>
+<li class="const" id="AlarmManager::PERIOD_MINUTE">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::PERIOD_MINUTE"></a><span class="name">PERIOD_MINUTE</span><div class="brief">
+ The period of a minute.
+It defines the number of seconds per minute.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="AlarmManager::PERIOD_HOUR">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::PERIOD_HOUR"></a><span class="name">PERIOD_HOUR</span><div class="brief">
+ The period of an hour.
+It defines the number of seconds per hour.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="AlarmManager::PERIOD_DAY">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::PERIOD_DAY"></a><span class="name">PERIOD_DAY</span><div class="brief">
+ The period of a day.
+It defines the number of seconds per day.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="AlarmManager::PERIOD_WEEK">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::PERIOD_WEEK"></a><span class="name">PERIOD_WEEK</span><div class="brief">
+ The period of a week.
+It defines the number of seconds in a week.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<br><br>
+</li>
+</dl>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="AlarmManager::add">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::add"></a><code><b><span class="methodName">add</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds an alarm to the storage.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void add(<a href="#Alarm">Alarm</a> alarm, <a href="application.html#ApplicationId">ApplicationId</a> applicationId, optional <a href="application.html#ApplicationControl">ApplicationControl</a>? appControl);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Sets an alarm with the application ID to be run. You should definitely provide the application ID to run
+and the <a href="../../org.tizen.mobile.web.appprogramming/html/guide/app_guide/application_service.htm">application control </a>information if it is necessary.
+For more information about the application control, see <a href="application.html">The Application API</a>.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/alarm
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">alarm</span>: 
+ An alarm to add. It can be either <em>AlarmRelative </em> or <em>AlarmAbsolute</em>.
+                </li>
+          <li class="param">
+<span class="name">applicationId</span>: 
+ The application ID to run when the alarm is triggered.
+                </li>
+          <li class="param">
+<span class="name">appControl</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The data structure describing application control details.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any input parameter does not contain a valid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Triggers an alarm on a given date/time
+ var alarm = new tizen.AlarmAbsolute(new Date(2014, 10, 4, 8, 0));
+ var appControl = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/view");
+ tizen.alarm.add(alarm, tizen.application.getCurrentApplication().appInfo.id, appControl);
+ console.log("Alarm added with id: " + alarm.id);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AlarmManager::remove">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::remove"></a><code><b><span class="methodName">remove</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes an alarm from the storage.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void remove(<a href="#AlarmId">AlarmId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If an alarm goes off, it will be removed from the storage automatically.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/alarm
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The ID of the alarm to remove
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if this alarm identifier cannot be found in the storage.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any input parameter does not contain a valid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var alarms = tizen.alarm.getAll();
+
+ // Removes the first alarm
+ if (alarms.length &gt; 0) {
+   try {
+     tizen.alarm.remove(alarms[0].id);
+     console.log("Successfully removed the first alarm.");
+   } catch(error) {
+     console.log("Failed to remove the first alarm.");
+   }
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AlarmManager::removeAll">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::removeAll"></a><code><b><span class="methodName">removeAll</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes all alarms added by an application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeAll();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Because each application has its own alarm storage, this method removes alarms only added by the calling application.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/alarm
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.alarm.removeAll();
+ console.log("remove all registered alarms in the storage.");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AlarmManager::get">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::get"></a><code><b><span class="methodName">get</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Returns an alarm as per the specified identifier.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#Alarm">Alarm</a> get(<a href="#AlarmId">AlarmId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The alarm ID to retrieve.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Alarm An alarm object with the specified ID.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if this alarm identifier cannot be found in the storage.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any input parameter does not contain a valid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Sets an alarm
+ var date = new Date();
+ date.setHours(date.getHours()+1);
+ var abs_alarm = new tizen.AlarmAbsolute(date);
+
+ // Adds an alarm
+ tizen.alarm.add(abs_alarm, tizen.application.getCurrentApplication().appInfo.id);
+
+ // Gets an alarm
+ var alarm = tizen.alarm.get(abs_alarm.id);
+ console.log("The alarm will trigger at " + alarm.getNextScheduledDate());
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AlarmManager::getAll">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmManager::getAll"></a><code><b><span class="methodName">getAll</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Retrieves all alarms in an application storage.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#Alarm">Alarm</a>[] getAll();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Alarms that have already been triggered are removed automatically from the storage.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Alarm[] All Alarm objects.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var alarms = tizen.alarm.getAll();
+ console.log(alarms.length + " alarms present in the storage.");
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="Alarm">
+<a class="backward-compatibility-anchor" name="::Alarm::Alarm"></a><h3>2.3. Alarm</h3>
+<div class="brief">
+ The Alarm interface is an abstract interface for alarm types.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface Alarm {
+        readonly attribute <a href="#AlarmId">AlarmId</a>? id;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="Alarm::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">AlarmId </span><span class="name">id</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The alarm identifier.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="AlarmRelative">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmRelative"></a><h3>2.4. AlarmRelative</h3>
+<div class="brief">
+ The AlarmRelative interface provides the relative alarm, which occurs at a fixed interval in future.
+          </div>
+<pre class="webidl prettyprint">    [Constructor(long delay, optional long? period)]
+    interface AlarmRelative : <a href="#Alarm">Alarm</a> {
+        readonly attribute long delay;
+
+        readonly attribute long? period;
+
+        long? getRemainingSeconds() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This alarm triggers after a duration mentioned in the <em>delay</em> attribute from the moment the alarm is added.
+If a <em>period</em> is provided, the alarm keeps triggering for the given interval.
+          </p>
+         </div>
+<p><span class="remark"> Remark : </span>
+ Since Tizen 2.4 behaviour of this alarm has changed. In order to decrease the power consumption,
+the operating system decides when this alarm is going to be fired and what is the period between subsequent executions.
+It is guaranteed that this alarm will be fired after at least <em>delay</em> seconds.
+If <em>period</em> is provided, it will be adjusted by the operating system, however this value will not be lower than 600 seconds.
+          </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the current application ID.
+ var appId = tizen.application.getCurrentApplication().appInfo.id;
+
+ // Sets an alarm in 3 hours from now
+ var alarm1 = new tizen.AlarmRelative(3 * tizen.alarm.PERIOD_HOUR);
+ tizen.alarm.add(alarm1, appId);
+
+ // Sets an alarm in one hour, recurring after every 10 minutes
+ var alarm2 = new tizen.AlarmRelative(tizen.alarm.PERIOD_HOUR, 10 * tizen.alarm.PERIOD_MINUTE);
+ tizen.alarm.add(alarm2, appId);
+ </pre>
+</div>
+        
+      <div class="constructors">
+<h4 id="AlarmRelative::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">AlarmRelative(long delay, optional long? period);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AlarmRelative::delay">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">delay</span></span><div class="brief">
+ An attribute to store the difference in time (in seconds) between when an alarm is added and when it is triggered.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="remark"> Remark : </span>
+ Since Tizen 2.4 the operating system adjusts this value to decrease the power consumption.
+            </p>
+</li>
+<li class="attribute" id="AlarmRelative::period">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">period</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the duration in seconds between each trigger of an alarm.
+By default, this attribute is set to <var>null</var>, indicating that this alarm does not repeat.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="remark"> Remark : </span>
+ Since Tizen 2.4 the operating system adjusts this value to decrease the power consumption.
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="AlarmRelative::getRemainingSeconds">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmRelative::getRemainingSeconds"></a><code><b><span class="methodName">getRemainingSeconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Returns the duration in seconds before the next alarm is triggered.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long? getRemainingSeconds();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the alarm has expired, this method returns <var>null</var>.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The duration before the next alarm is triggered.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the current application ID.
+ var appId = tizen.application.getCurrentApplication().appInfo.id;
+
+ // Sets an alarm in 3 hours from now
+ var alarm = new tizen.AlarmRelative(3 * tizen.alarm.PERIOD_HOUR);
+ tizen.alarm.add(alarm, appId);
+
+ var sec = alarm.getRemainingSeconds();
+ console.log("remaining time is " + sec);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="AlarmAbsolute">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmAbsolute"></a><h3>2.5. AlarmAbsolute</h3>
+<div class="brief">
+ The AlarmAbsolute interface provides an absolute alarm, which triggers at a specified absolute date.
+          </div>
+<pre class="webidl prettyprint">    [Constructor(Date date),
+
+     Constructor(Date date, <a href="#ByDayValue">ByDayValue</a>[] daysOfTheWeek),
+
+     Constructor(Date date, long period)]
+    interface AlarmAbsolute : <a href="#Alarm">Alarm</a> {
+        readonly attribute Date date;
+
+        readonly attribute long? period;
+
+        readonly attribute <a href="#ByDayValue">ByDayValue</a>[] daysOfTheWeek;
+
+        Date? getNextScheduledDate() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+If a <em>period</em> is provided, the alarm keeps triggering for the given interval. If the <em>daysOfTheWeek</em> array is not empty, the alarm triggers every week, for the given days, at the time defined by the <em>date</em> attribute.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the current application ID.
+ var appId = tizen.application.getCurrentApplication().appInfo.id;
+
+ // Sets an alarm on January 1st 2014 08:00
+ var date = new Date(2014, 0, 1, 8, 0);
+ var alarm1 = new tizen.AlarmAbsolute(date);
+ tizen.alarm.add(alarm1, appId);
+
+ // Sets an alarm on January 1st 2014 08:00, repeating every 2 days
+ var alarm2 = new tizen.AlarmAbsolute(date, 2 * tizen.alarm.PERIOD_DAY);
+ tizen.alarm.add(alarm2, appId);
+
+ // Sets an alarm occurring on every Saturday and Sunday, at 08:00, starting from January 1st 2014
+ var alarm3 = new tizen.AlarmAbsolute(date, ["SA", "SU"]);
+ tizen.alarm.add(alarm3, appId);
+ </pre>
+</div>
+        
+      <div class="constructors">
+<h4 id="AlarmAbsolute::constructor">Constructors</h4>
+<dl>
+<pre class="webidl prettyprint">AlarmAbsolute(Date date);</pre>
+<pre class="webidl prettyprint">AlarmAbsolute(Date date, <a href="#ByDayValue">ByDayValue</a>[] daysOfTheWeek);</pre>
+<pre class="webidl prettyprint">AlarmAbsolute(Date date, long period);</pre>
+</dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AlarmAbsolute::date">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">date</span></span><div class="brief">
+ An attribute to store the absolute date/time when the alarm is initially triggered.
+            </div>
+<div class="description">
+            <p>
+This attribute is precise to the second. Milliseconds will be ignored.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AlarmAbsolute::period">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">period</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the duration in seconds between each trigger of the alarm.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to <var>null</var>, indicating that this alarm does not repeat.
+The <em>period</em> and <em>daysOfTheWeek</em> attributes are mutually exclusive.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AlarmAbsolute::daysOfTheWeek">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ByDayValue[]
+                      </span><span class="name">daysOfTheWeek</span></span><div class="brief">
+ An attribute to store the days of the week associated with the recurrence rule.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to an empty array.
+The <em>period</em> and <em>daysOfTheWeek</em> attributes are mutually exclusive.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="AlarmAbsolute::getNextScheduledDate">
+<a class="backward-compatibility-anchor" name="::Alarm::AlarmAbsolute::getNextScheduledDate"></a><code><b><span class="methodName">getNextScheduledDate</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Returns the date / time of the next alarm trigger.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">Date? getNextScheduledDate();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the alarm has expired, this method returns <var>null</var>. The returned date is precise to the second.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Date The date/time of the next alarm trigger.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the current application ID.
+ var appId = tizen.application.getCurrentApplication().appInfo.id;
+
+ // Sets an alarm on January 1st 2014 08:00
+ var date = new Date(2014, 0, 1, 8, 0);
+ var alarm1 = new tizen.AlarmAbsolute(date);
+ tizen.alarm.add(alarm1, appId);
+
+ var date = alarm1.getNextScheduledDate();
+ console.log("next scheduled time is " + date);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Alarm {
+    typedef DOMString AlarmId;
+
+    enum ByDayValue { "MO", "TU", "WE", "TH", "FR", "SA", "SU" };
+
+    [NoInterfaceObject] interface AlarmManagerObject {
+        readonly attribute <a href="#AlarmManager">AlarmManager</a> alarm;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#AlarmManagerObject">AlarmManagerObject</a>;
+
+    [NoInterfaceObject] interface AlarmManager {
+        const long PERIOD_MINUTE = 60;
+
+        const long PERIOD_HOUR = 3600;
+
+        const long PERIOD_DAY = 86400;
+
+        const long PERIOD_WEEK = 604800;
+
+        void add(<a href="#Alarm">Alarm</a> alarm, <a href="application.html#ApplicationId">ApplicationId</a> applicationId, optional <a href="application.html#ApplicationControl">ApplicationControl</a>? appControl) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void remove(<a href="#AlarmId">AlarmId</a> id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeAll() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Alarm">Alarm</a> get(<a href="#AlarmId">AlarmId</a> id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Alarm">Alarm</a>[] getAll() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [NoInterfaceObject] interface Alarm {
+        readonly attribute <a href="#AlarmId">AlarmId</a>? id;
+    };
+
+    [Constructor(long delay, optional long? period)]
+    interface AlarmRelative : <a href="#Alarm">Alarm</a> {
+        readonly attribute long delay;
+
+        readonly attribute long? period;
+
+        long? getRemainingSeconds() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [Constructor(Date date),
+
+     Constructor(Date date, <a href="#ByDayValue">ByDayValue</a>[] daysOfTheWeek),
+
+     Constructor(Date date, long period)]
+    interface AlarmAbsolute : <a href="#Alarm">Alarm</a> {
+        readonly attribute Date date;
+
+        readonly attribute long? period;
+
+        readonly attribute <a href="#ByDayValue">ByDayValue</a>[] daysOfTheWeek;
+
+        Date? getNextScheduledDate() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/application.html b/org.tizen.web.apireference/html/device_api/tv/tizen/application.html
new file mode 100644 (file)
index 0000000..a921a61
--- /dev/null
@@ -0,0 +1,2888 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Application API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Application">
+<div class="title"><h1>Application API</h1></div>
+<div class="brief">
+ This API provides a way to launch other applications and access
+application management.
+        </div>
+<div class="description">
+        <p>
+The <em>ApplicationManager</em> interface also provides methods to launch other applications
+explicitly and implicitly through the <em>ApplicationControl</em> interface.
+The <em>ApplicationControl</em> interface consists of an operation, URI, and MIME type
+and also describes an action to be performed by other
+applications and can carry the result from the subsequent application.
+The <em>ApplicationManager</em> interface also provides methods to handle the application
+lifecycle, to access the installed applications on the device, and to let
+an application be notified of a change in the application list.
+        </p>
+        <p>
+The <em>Application</em> interface defines the current application's information and
+the basic operations for the current application such as exit or hide.
+        </p>
+        <p>
+Since Tizen 2.4 the <em>Application</em> interface provides application event broadcasting and listening features. An application can broadcast user events to other listening applications and listen to broadcasted user events from other applications. In a future Tizen release, applications will also be able to receive pre-defined system events from the platform.
+        </p>
+        <p>
+For more information on the Application features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/app_guide/application.htm">Application Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#ApplicationId">ApplicationId</a>
+</li>
+<li>
+                    1.2. <a href="#ApplicationContextId">ApplicationContextId</a>
+</li>
+<li>
+                    1.3. <a href="#UserEventData">UserEventData</a>
+</li>
+<li>
+                    1.4. <a href="#EventData">EventData</a>
+</li>
+<li>
+                    1.5. <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#ApplicationManagerObject">ApplicationManagerObject</a>
+</li>
+<li>2.2. <a href="#ApplicationManager">ApplicationManager</a>
+</li>
+<li>2.3. <a href="#Application">Application</a>
+</li>
+<li>2.4. <a href="#ApplicationInformation">ApplicationInformation</a>
+</li>
+<li>2.5. <a href="#ApplicationContext">ApplicationContext</a>
+</li>
+<li>2.6. <a href="#ApplicationControlData">ApplicationControlData</a>
+</li>
+<li>2.7. <a href="#ApplicationControl">ApplicationControl</a>
+</li>
+<li>2.8. <a href="#RequestedApplicationControl">RequestedApplicationControl</a>
+</li>
+<li>2.9. <a href="#ApplicationCertificate">ApplicationCertificate</a>
+</li>
+<li>2.10. <a href="#ApplicationMetaData">ApplicationMetaData</a>
+</li>
+<li>2.11. <a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a>
+</li>
+<li>2.12. <a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a>
+</li>
+<li>2.13. <a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a>
+</li>
+<li>2.14. <a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a>
+</li>
+<li>2.15. <a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a>
+</li>
+<li>2.16. <a href="#SystemEventData">SystemEventData</a>
+</li>
+<li>2.17. <a href="#EventCallback">EventCallback</a>
+</li>
+<li>2.18. <a href="#EventInfo">EventInfo</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#ApplicationManagerObject">ApplicationManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationManager">ApplicationManager</a></td>
+<td>
+<div>
+<a href="#Application">Application</a> <a href="#ApplicationManager::getCurrentApplication">getCurrentApplication</a> ()</div>
+<div>void <a href="#ApplicationManager::kill">kill</a> (<a href="#ApplicationContextId">ApplicationContextId</a> contextId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ApplicationManager::launch">launch</a> (<a href="#ApplicationId">ApplicationId</a> id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ApplicationManager::launchAppControl">launchAppControl</a> (<a href="#ApplicationControl">ApplicationControl</a> appControl, optional <a href="#ApplicationId">ApplicationId</a>? id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a>? replyCallback)</div>
+<div>void <a href="#ApplicationManager::findAppControl">findAppControl</a> (<a href="#ApplicationControl">ApplicationControl</a> appControl, <a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ApplicationManager::getAppsContext">getAppsContext</a> (<a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>
+<a href="#ApplicationContext">ApplicationContext</a> <a href="#ApplicationManager::getAppContext">getAppContext</a> (optional <a href="#ApplicationContextId">ApplicationContextId</a>? contextId)</div>
+<div>void <a href="#ApplicationManager::getAppsInfo">getAppsInfo</a> (<a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>
+<a href="#ApplicationInformation">ApplicationInformation</a> <a href="#ApplicationManager::getAppInfo">getAppInfo</a> (optional <a href="#ApplicationId">ApplicationId</a>? id)</div>
+<div>
+<a href="#ApplicationCertificate">ApplicationCertificate</a>[] <a href="#ApplicationManager::getAppCerts">getAppCerts</a> (optional <a href="#ApplicationId">ApplicationId</a>? id)</div>
+<div>DOMString <a href="#ApplicationManager::getAppSharedURI">getAppSharedURI</a> (optional <a href="#ApplicationId">ApplicationId</a>? id)</div>
+<div>
+<a href="#ApplicationMetaData">ApplicationMetaData</a>[] <a href="#ApplicationManager::getAppMetaData">getAppMetaData</a> (optional <a href="#ApplicationId">ApplicationId</a>? id)</div>
+<div class="deprecated">long <a href="#ApplicationManager::addAppInfoEventListener">addAppInfoEventListener</a> (<a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a> eventCallback)</div>
+<div class="deprecated">void <a href="#ApplicationManager::removeAppInfoEventListener">removeAppInfoEventListener</a> (long watchId)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#Application">Application</a></td>
+<td>
+<div>void <a href="#Application::exit">exit</a> ()</div>
+<div>void <a href="#Application::hide">hide</a> ()</div>
+<div>
+<a href="#RequestedApplicationControl">RequestedApplicationControl</a> <a href="#Application::getRequestedAppControl">getRequestedAppControl</a> ()</div>
+<div>long <a href="#Application::addEventListener">addEventListener</a> (<a href="#EventInfo">EventInfo</a> event, <a href="#EventCallback">EventCallback</a> callback)</div>
+<div>void <a href="#Application::removeEventListener">removeEventListener</a> (long watchId)</div>
+<div>void <a href="#Application::broadcastEvent">broadcastEvent</a> (<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data)</div>
+<div>void <a href="#Application::broadcastTrustedEvent">broadcastTrustedEvent</a> (<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ApplicationInformation">ApplicationInformation</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationContext">ApplicationContext</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationControlData">ApplicationControlData</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationControl">ApplicationControl</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#RequestedApplicationControl">RequestedApplicationControl</a></td>
+<td>
+<div>void <a href="#RequestedApplicationControl::replyResult">replyResult</a> (optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data)</div>
+<div>void <a href="#RequestedApplicationControl::replyFailure">replyFailure</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ApplicationCertificate">ApplicationCertificate</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationMetaData">ApplicationMetaData</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a></td>
+<td><div>void <a href="#ApplicationInformationArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray)</div></td>
+</tr>
+<tr>
+<td><a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a></td>
+<td><div>void <a href="#FindAppControlSuccessCallback::onsuccess">onsuccess</a> (<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray, <a href="#ApplicationControl">ApplicationControl</a> appControl)</div></td>
+</tr>
+<tr>
+<td><a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a></td>
+<td><div>void <a href="#ApplicationContextArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#ApplicationContext">ApplicationContext</a>[] contexts)</div></td>
+</tr>
+<tr>
+<td><a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a></td>
+<td>
+<div>void <a href="#ApplicationControlDataArrayReplyCallback::onsuccess">onsuccess</a> (optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data)</div>
+<div>void <a href="#ApplicationControlDataArrayReplyCallback::onfailure">onfailure</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a></td>
+<td>
+<div>void <a href="#ApplicationInformationEventCallback::oninstalled">oninstalled</a> (<a href="#ApplicationInformation">ApplicationInformation</a> info)</div>
+<div>void <a href="#ApplicationInformationEventCallback::onupdated">onupdated</a> (<a href="#ApplicationInformation">ApplicationInformation</a> info)</div>
+<div>void <a href="#ApplicationInformationEventCallback::onuninstalled">onuninstalled</a> (<a href="#ApplicationId">ApplicationId</a> id)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#SystemEventData">SystemEventData</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#EventCallback">EventCallback</a></td>
+<td><div>void <a href="#EventCallback::onevent">onevent</a> (<a href="#EventInfo">EventInfo</a> event, <a href="#EventData">EventData</a> data)</div></td>
+</tr>
+<tr>
+<td><a href="#EventInfo">EventInfo</a></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="ApplicationId">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationId"></a><h3>1.1. ApplicationId</h3>
+<div class="brief">
+ The unique ID for an installed application.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString ApplicationId;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+</div>
+<div class="typedef" id="ApplicationContextId">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationContextId"></a><h3>1.2. ApplicationContextId</h3>
+<div class="brief">
+ The unique ID for a running application.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString ApplicationContextId;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+</div>
+<div class="typedef" id="UserEventData">
+<a class="backward-compatibility-anchor" name="::Application::UserEventData"></a><h3>1.3. UserEventData</h3>
+<div class="brief">
+ Specifies the user event data.
+          </div>
+<pre class="webidl prettyprint">  typedef object UserEventData;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+</div>
+<div class="typedef" id="EventData">
+<a class="backward-compatibility-anchor" name="::Application::EventData"></a><h3>1.4. EventData</h3>
+<div class="brief">
+ Specifies the user or system defined event data.
+          </div>
+<pre class="webidl prettyprint">  typedef (<a href="#SystemEventData">SystemEventData</a> or <a href="#UserEventData">UserEventData</a>) EventData;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+</div>
+<div class="enum" id="ApplicationControlLaunchMode">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControlLaunchMode"></a><h3>1.5. ApplicationControlLaunchMode</h3>
+<div class="brief">
+ Specifies the application launch mode when it is launched by <em>launchAppControl()</em>. This value may be overriden if application launched by <em>launchAppControl()</em> has value <em>SINGLE</em> configured in application manifest.
+          </div>
+<pre class="webidl prettyprint">  enum ApplicationControlLaunchMode { "SINGLE", "GROUP" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+The launch modes defined by this enumerator are:
+          </p>
+          <ul>
+            <li>
+SINGLE - Launch application as standalone instance            </li>
+            <li>
+GROUP - Launch application in subgroup            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="ApplicationManagerObject">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManagerObject"></a><h3>2.1. ApplicationManagerObject</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>Tizen </em>object on the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationManagerObject {
+    readonly attribute <a href="#ApplicationManager">ApplicationManager</a> application;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ApplicationManagerObject">ApplicationManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.application </em>object allows access to the Application API's functionality.
+          </p>
+         </div>
+</div>
+<div class="interface" id="ApplicationManager">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager"></a><h3>2.2. ApplicationManager</h3>
+<div class="brief">
+ The ApplicationManager interface provides methods to retrieve application information, launch, install application, etc.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationManager {
+
+    <a href="#Application">Application</a> getCurrentApplication() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void kill(<a href="#ApplicationContextId">ApplicationContextId</a> contextId,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void launch(<a href="#ApplicationId">ApplicationId</a> id,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void launchAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl,
+                          optional <a href="#ApplicationId">ApplicationId</a>? id,
+                          optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                          optional <a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void findAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl,
+                        <a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getAppsContext(<a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationContext">ApplicationContext</a> getAppContext(optional <a href="#ApplicationContextId">ApplicationContextId</a>? contextId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getAppsInfo(<a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a> successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationInformation">ApplicationInformation</a> getAppInfo(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationCertificate">ApplicationCertificate</a>[] getAppCerts(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getAppSharedURI(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationMetaData">ApplicationMetaData</a>[] getAppMetaData(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addAppInfoEventListener(<a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a> eventCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeAppInfoEventListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ApplicationManager::getCurrentApplication">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getCurrentApplication"></a><code><b><span class="methodName">getCurrentApplication</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the <em>Application </em>object defining the current application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#Application">Application</a> getCurrentApplication();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Application The data structure that defines the current application.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the application cannot be retrieved because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var app = tizen.application.getCurrentApplication();
+ console.log("Current application's app id is " + app.appInfo.id);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::kill">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::kill"></a><code><b><span class="methodName">kill</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Kills an application with the specified application context ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void kill(<a href="#ApplicationContextId">ApplicationContextId</a> contextId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> method is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the context is not found with the specified context ID.              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value
+or if the specified context ID matches the context ID of the calling application.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ partner
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/appmanager.kill
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contextId</span>: 
+ The identifier of the application to kill
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an application is killed successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onKillSuccess() {
+     console.log("Application terminated successfully");
+ }
+
+ function onRunningAppsContext(contexts) {
+    // let's assume that the application "targetApp0.main" has been installed.
+    var targetId = "targetApp0.main";
+
+    for (var i = 0; i &lt; contexts.length; i++) {
+        if (contexts[i].appId == targetId) {
+            tizen.application.kill(contexts[i].id, onKillSuccess);
+        }
+    }
+ }
+
+ tizen.application.getAppsContext(onRunningAppsContext);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::launch">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::launch"></a><code><b><span class="methodName">launch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Launches an application with the given application ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void launch(<a href="#ApplicationId">ApplicationId</a> id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> method is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the application is not found with the specified ID.              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/application.launch
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ A unique string representing the application ID
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when the invocation ends successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onsuccess() {
+     console.log("The application has launched successfully");
+ }
+
+ // let's assume that application "targetApp0.main" has been installed
+ tizen.application.launch("targetApp0.main", onsuccess);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::launchAppControl">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::launchAppControl"></a><code><b><span class="methodName">launchAppControl</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Launches an application with the specified application control.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void launchAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl, optional <a href="#ApplicationId">ApplicationId</a>? id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a>? replyCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+An application can launch other applications with the application control,
+and get back the results from the launched applications.
+            </p>
+            <p>
+The application control consists of an operation, URI, and MIME type, and describes
+the request to be performed by the newly launched application. The
+application control is passed to the <em>launchAppControl()</em> method to launch an
+application. The system tries to find the proper application
+to perform the requested application control, then launches the selected application.
+            </p>
+            <p>
+The application control request is passed to the newly launched application
+and it can be accessed by the <em>getRequestedAppControl() </em>method. The passed
+application control contains the reason the application has been launched and
+information about what the application is doing. The launched application
+can send a result to the caller application with the <em>replyResult() </em>method of the
+<em>RequestedApplicationControl</em> interface.
+            </p>
+            <p>
+The <em>ErrorCallback</em> method is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the system cannot find the application that matches the specified application control.              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+SecurityError - If the application does not have the privilege to call the specified application control operation.              </li>
+              <li>
+UnknownError: If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/application.launch
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">appControl</span>: 
+ The data structure describing application control details
+                </li>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An identifier of the application to be launched. If the ID is <var>null </var>or not specified, then the system tries to find the application to be launched for the requested application control
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when the invocation ends successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+          <li class="param">
+<span class="name">replyCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the application gets back results from the launched application
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appControl = new tizen.ApplicationControl(
+     "http://tizen.org/appcontrol/operation/pick",
+     null,
+     "image/jpeg",
+     null);
+
+ var appControlReplyCallback = {
+     // callee sent a reply
+     onsuccess: function(data) {
+         for (var i = 0; i &lt; data.length; i++) {
+             if (data[i].key == "http://tizen.org/appcontrol/data/selected") {
+                 console.log('Selected image is ' + data[i].value[0]);
+             }
+         }
+     },
+     // callee returned failure
+     onfailure: function() {
+         console.log('The launch application control failed');
+     }
+ }
+
+ tizen.application.launchAppControl(
+     appControl,
+     null,
+     function() {console.log("launch application control succeed"); },
+     function(e) {console.log("launch application control failed. reason: " + e.message); },
+     appControlReplyCallback );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::findAppControl">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::findAppControl"></a><code><b><span class="methodName">findAppControl</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Finds which applications can be launched with the given application control.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void findAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl, <a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+An application can get a list of other applications that can be launched with the application control.
+            </p>
+            <p>
+The <em>ErrorCallback</em> method is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">appControl</span>: 
+ A data structure describing application control details
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to call that returns a list of application information
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appControl = new tizen.ApplicationControl(
+     "http://tizen.org/appcontrol/operation/pick",
+     null,
+     "image/jpeg",
+     null);
+
+ function successCB(appInfos, appControl)
+ {
+     // appControl is same object with the value passed as first parameter to findAppControl()
+     var appControlReplyCallback = {
+         // callee sent a reply
+         onsuccess: function(data) {
+             for (var i = 0; i &lt; data.length; i++) {
+                 if (data[i].key == "http://tizen.org/appcontrol/data/selected") {
+                     console.log('Selected image is ' + data[i].value[0]);
+                 }
+             }
+         },
+         // callee returned failure
+         onfailure: function() {
+             console.log('The launch application control failed');
+         }
+     }
+
+     var appId = appInfos[0].id; // select first app's id
+
+     tizen.application.launchAppControl(
+         appControl,
+         appId,
+         function() {console.log("launch application control succeed"); },
+        function(e) {console.log("launch application control failed. reason: " + e.message); },
+        appControlReplyCallback );
+ }
+
+ tizen.application.findAppControl(appControl, successCB);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppsContext">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppsContext"></a><code><b><span class="methodName">getAppsContext</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a list of application contexts for applications that are currently running on a device.
+The information contained for each application corresponds to the application state at the time when the list had been generated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getAppsContext(<a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> method is launched with this error type:
+            </p>
+            <ul>
+              <li>
+UnknownError - If an unknown error occurs.              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to call when the invocation ends successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onRunningAppsContext(contexts) {
+     for (var i = 0; i &lt; contexts.length; i++)
+         console.log("ID : " + contexts[i].id);
+ }
+
+ tizen.application.getAppsContext(onRunningAppsContext);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppContext">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppContext"></a><code><b><span class="methodName">getAppContext</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the application context for the specified application context ID.
+If the ID is set to<var> null</var> or is not set at all, the method returns the application context of the current application.
+The list of running applications and their application IDs is obtained with <em>getAppsContext()</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ApplicationContext">ApplicationContext</a> getAppContext(optional <a href="#ApplicationContextId">ApplicationContextId</a>? contextId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contextId</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing an application context ID<br>If the ID is not provided, the application context of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ApplicationContext A data structure that lists running application details.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the application context is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the application context cannot be retrieved because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appContext = tizen.application.getAppContext(null);
+ console.log("Application context retrieved for app " + appContext.appId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppsInfo">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppsInfo"></a><code><b><span class="methodName">getAppsInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the list of installed applications' information on a device.
+The information contained on each application corresponds to the application state at the time when the list had been generated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getAppsInfo(<a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> method is launched with this error type:
+            </p>
+            <ul>
+              <li>
+UnknownError - If an unknown error occurs.              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to call when the invocation ends successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onListInstalledApps(applications) {
+     for (var i = 0; i &lt; applications.length; i++)
+         console.log("ID : " + applications[i].id);
+ }
+
+ tizen.application.getAppsInfo(onListInstalledApps);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppInfo">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppInfo"></a><code><b><span class="methodName">getAppInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets application information for a specified application ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ApplicationInformation">ApplicationInformation</a> getAppInfo(optional <a href="#ApplicationId">ApplicationId</a>? id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+If the ID is set to <var>null</var> or not set at all, it returns application information for the current application.
+The list of installed applications and their application IDs is obtained with <em>getAppsInfo()</em>.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing an application ID<br>If the ID is not provided, the application information of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ApplicationInformation The information of an application.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the application is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the application cannot be retrieved because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appInfo = tizen.application.getAppInfo(null);
+ console.log("Current application name : " + appInfo.name);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppCerts">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppCerts"></a><code><b><span class="methodName">getAppCerts</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets application certificates for a specified application ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ApplicationCertificate">ApplicationCertificate</a>[] getAppCerts(optional <a href="#ApplicationId">ApplicationId</a>? id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+If the ID is set to <var>null</var> or not set at all, it returns application certificates for the current application.
+            </p>
+            <p>
+The certificate types are listed below:
+            </p>
+            <ul>
+              <li>
+ AUTHOR_ROOT - Author Root Certificate               </li>
+              <li>
+ AUTHOR_INTERMEDIATE - Author Intermediate Certificate               </li>
+              <li>
+ AUTHOR_SIGNER - Author Signer Certificate               </li>
+              <li>
+ DISTRIBUTOR_ROOT - Distributor Root Certificate               </li>
+              <li>
+ DISTRIBUTOR_INTERMEDIATE - Distributor Intermediate Certificate               </li>
+              <li>
+ DISTRIBUTOR_SIGNER - Distributor Signer Certificate               </li>
+              <li>
+ DISTRIBUTOR2_ROOT - Distributor2 Root Certificate               </li>
+              <li>
+ DISTRIBUTOR2_INTERMEDIATE - Distributor2 Intermediate Certificate               </li>
+              <li>
+ DISTRIBUTOR2_SIGNER - Distributor2 Signer Certificate               </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ partner
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/appmanager.certificate
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing an application ID. If the ID is not provided, the application certificate of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ApplicationCertificate[] Array of certificate information of a specified application
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the application is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the application cannot be retrieved because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appCerts = tizen.application.getAppCerts(null);
+
+ for (var i = 0; i &lt; appCerts.length; i++) {
+    console.log("#" + i + " type:" + appCerts[i].type);
+    console.log("#" + i + " value:" + appCerts[i].value);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppSharedURI">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppSharedURI"></a><code><b><span class="methodName">getAppSharedURI</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the URI of the read-only shared directory of an application for a specified application ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getAppSharedURI(optional <a href="#ApplicationId">ApplicationId</a>? id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+The shared directory is used to export data to other applications.
+If the ID is set to <var>null</var> or not set at all, it returns the shared directory URI for the current application.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing an application ID. If the ID is not provided, the shared directory URI of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The shared directory URI of an application
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the application is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the application cannot be retrieved because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var sharedDir = tizen.application.getAppSharedURI(null);
+ console.log("shared directory : " + sharedDir);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ApplicationManager::getAppMetaData">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::getAppMetaData"></a><code><b><span class="methodName">getAppMetaData</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the application meta data array for a specified application ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ApplicationMetaData">ApplicationMetaData</a>[] getAppMetaData(optional <a href="#ApplicationId">ApplicationId</a>? id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+<div class="description">
+            <p>
+If the ID is set to <var>null</var> or not set at all, it returns the application meta data array for the current application.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/application.info
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing an application ID. If the ID is not provided, the application metadata array of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ApplicationMetaData[] Array of meta data of a specified application. If there are no meta data for a specified application,
+an empty array is returned
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the application is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the application cannot be retrieved because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var metaDataArray = tizen.application.getAppMetaData(null);
+ console.log("size of metadata : " + metaDataArray.length);
+
+ </pre>
+</div>
+</dd>
+<dt class="deprecated method" id="ApplicationManager::addAppInfoEventListener">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::addAppInfoEventListener"></a><code><b><span class="methodName">addAppInfoEventListener</span></b></code>
+</dt>
+<dd class="deprecated">
+<div class="brief">
+ Adds a listener for receiving any notification for changes in the list of installed applications
+on a device.
+            </div>
+<p class="deprecated"><b>Deprecated.</b>
+ Deprecated since 2.4.
+Instead, let the app developers set a listener for getting notified for the changes(add/remove/update) of applications on a device using <a href="./package.html#PackageManager::setPackageInfoEventListener">tizen.package.setPackageInfoEventListener()</a>.
+            </p>
+<div class="synopsis"><pre class="signature prettyprint">long addAppInfoEventListener(<a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a> eventCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+It installs a callback that is triggered every time a change occurs on
+the list of installed applications on a device. This change may
+occur due to a new installation, uninstallation, or update of an application.
+            </p>
+            <p>
+When executed, the implementation must immediately return a listener
+ID that identifies the listener. After returning the ID, the change
+detection operation is started asynchronously.
+            </p>
+            <p>
+The <em>ApplicationInformationEventCallback </em>must be invoked every time a new
+application is installed, removed, or updated.
+            </p>
+            <p>
+The change detection must continue until the <em>removeAppInfoEventListener()</em> method is called
+with the corresponding listener identifier.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">eventCallback</span>: 
+ The method to call when a change on the installed applications is made
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long ID of the listener that can be used to remove the listener later.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if it fails to add a listener because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appEventCallback = {
+    oninstalled: function(appInfo) {
+       console.log('The application ' + appInfo.name + ' is installed');
+    },
+    onupdated: function(appInfo) {
+       console.log('The application ' + appInfo.name + ' is updated');
+    },
+    onuninstalled: function(appid) {
+       console.log('The application ' + appid + ' is uninstalled');
+    }
+ };
+ var watchId = tizen.application.addAppInfoEventListener(appEventCallback);
+ </pre>
+</div>
+</dd>
+<dt class="deprecated method" id="ApplicationManager::removeAppInfoEventListener">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationManager::removeAppInfoEventListener"></a><code><b><span class="methodName">removeAppInfoEventListener</span></b></code>
+</dt>
+<dd class="deprecated">
+<div class="brief">
+ Removes the listener to stop receiving notifications for changes on the list of installed
+applications on a device.
+            </div>
+<p class="deprecated"><b>Deprecated.</b>
+ It is deprecated since Tizen 2.4.
+Instead, you can use <a href="./package.html#PackageManager::unsetPackageInfoEventListener">tizen.package.unsetPackageInfoEventListener()</a>.
+            </p>
+<div class="synopsis"><pre class="signature prettyprint">void removeAppInfoEventListener(long watchId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">watchId</span>: 
+ An ID that identifies the listener
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the listener is not found with the specified ID.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if it fails to remove a listener because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.application.removeAppInfoEventListener(watchId);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="Application">
+<a class="backward-compatibility-anchor" name="::Application::Application"></a><h3>2.3. Application</h3>
+<div class="brief">
+ This interface defines the current application's information and
+the basic operations (such as exit or hide) for the current application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface Application {
+
+    readonly attribute <a href="#ApplicationInformation">ApplicationInformation</a> appInfo;
+
+    readonly attribute <a href="#ApplicationContextId">ApplicationContextId</a> contextId;
+
+    void exit() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void hide() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RequestedApplicationControl">RequestedApplicationControl</a> getRequestedAppControl() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addEventListener(<a href="#EventInfo">EventInfo</a> event, <a href="#EventCallback">EventCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeEventListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void broadcastEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void broadcastTrustedEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="Application::appInfo">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationInformation </span><span class="name">appInfo</span></span><div class="brief">
+ An attribute to store the application information for the current application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Application::contextId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationContextId </span><span class="name">contextId</span></span><div class="brief">
+ An attribute to store the ID of a running application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="Application::exit">
+<a class="backward-compatibility-anchor" name="::Application::Application::exit"></a><code><b><span class="methodName">exit</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Exits the current application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void exit();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var app = tizen.application.getCurrentApplication();
+
+ app.exit();
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::hide">
+<a class="backward-compatibility-anchor" name="::Application::Application::hide"></a><code><b><span class="methodName">hide</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Hides the current application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void hide();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var app = tizen.application.getCurrentApplication();
+
+ app.hide();
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::getRequestedAppControl">
+<a class="backward-compatibility-anchor" name="::Application::Application::getRequestedAppControl"></a><code><b><span class="methodName">getRequestedAppControl</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the requested application control passed to the current application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#RequestedApplicationControl">RequestedApplicationControl</a> getRequestedAppControl();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+Gets the requested application control that contains the application control
+passed by the <em>launchAppControl()</em> method from the calling application.
+The requested application control contains the reason the application
+is launched and what it has to perform. For example, an application
+might be launched to display an image on a page by another
+application's request. In all of these cases, the application is
+responsible for checking the contents of the application control and responding
+appropriately when it is launched.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ RequestedApplicationControl The details of a requested application control
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the application control cannot be retrieved because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var reqAppControl = tizen.application.getCurrentApplication().getRequestedAppControl();
+
+ if (reqAppControl) {
+     console.log("Requester AppID : " + reqAppControl.callerAppId);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::addEventListener">
+<a class="backward-compatibility-anchor" name="::Application::Application::addEventListener"></a><code><b><span class="methodName">addEventListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a listener which will invoke a callback function when an event occurs.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addEventListener(<a href="#EventInfo">EventInfo</a> event, <a href="#EventCallback">EventCallback</a> callback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+System events do not require an application identifier to be specified. Therefore, the <var>appId</var> attribute of the <a href="#EventInfo">EventInfo</a> dictionary should not be specified when listening for system events. If it is specified, the event to listen for will be interpreted as an user event.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">event</span>: 
+ Event which will invoke the callback
+                </li>
+          <li class="param">
+<span class="name">callback</span>: 
+ Callback function to be invoked when the event occurs
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Listener identifier
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var app = tizen.application.getCurrentApplication();
+
+ // for user events: sender's application ID  and event name must be provided by using a dictionary
+ var watchId = app.addEventListener({"appId": "a234567890.TestWidget", "name": "custom_user_event"}, function(name, data) {
+   console.log("Data: " + JSON.stringify(data));
+   // do something
+ });
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::removeEventListener">
+<a class="backward-compatibility-anchor" name="::Application::Application::removeEventListener"></a><code><b><span class="methodName">removeEventListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes an event listener with a specified listener identifier.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeEventListener(long watchId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">watchId</span>: 
+ Listener identifier
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError in any error case.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var watchId, app = tizen.application.getCurrentApplication();
+
+ function eventListenerCallback(name, data) {
+   console.log("Data: " + JSON.stringify(data));
+   // do something and then remove the listener
+   app.removeEventListener(watchId);
+ }
+
+ watchId = app.addEventListener({"appId": "a234567890.TestWidget", "name": "custom_user_event"}, eventListenerCallback);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::broadcastEvent">
+<a class="backward-compatibility-anchor" name="::Application::Application::broadcastEvent"></a><code><b><span class="methodName">broadcastEvent</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Broadcasts a user defined event to all the listeners which are listening for this event.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void broadcastEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+An application can listen to events from other applications. However, it can only broadcast its own events. Therefore, the <var>appId</var> attribute of the <a href="#EventInfo">EventInfo</a> dictionary must be the identifier of the application which calls this method.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">event</span>: 
+ Event to broadcast
+                </li>
+          <li class="param">
+<span class="name">data</span>: 
+ User defined event data to broadcast
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var myCustomData = {
+   foo: 'bar'
+ };
+
+ var app = tizen.application.getCurrentApplication();
+
+ app.broadcastEvent({"name": "custom_user_event"}, myCustomData);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Application::broadcastTrustedEvent">
+<a class="backward-compatibility-anchor" name="::Application::Application::broadcastTrustedEvent"></a><code><b><span class="methodName">broadcastTrustedEvent</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Broadcasts a user defined event to all the trusted listeners which are listening for this event. Applications which have the same certificate as the sending application can receive the event.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void broadcastTrustedEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+An application can listen to events from other applications. However, it can only broadcast its own events. Therefore, the <var>appId</var> attribute of the <a href="#EventInfo">EventInfo</a> dictionary must be the identifier of the application which calls this method.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">event</span>: 
+ Trusted event to broadcast
+                </li>
+          <li class="param">
+<span class="name">data</span>: 
+ User defined trusted event data to broadcast
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var myTrustedCustomData = {
+   foo: 'bar'
+ };
+
+ var app = tizen.application.getCurrentApplication();
+
+ app.broadcastTrustedEvent({"name": "custom_user_event"}, myTrustedCustomData);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ApplicationInformation">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformation"></a><h3>2.4. ApplicationInformation</h3>
+<div class="brief">
+ This interface defines the general information available to an installed application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationInformation {
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> id;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString iconPath;
+
+    readonly attribute DOMString version;
+
+    readonly attribute boolean show;
+
+    readonly attribute DOMString[] categories;
+
+    readonly attribute Date installDate;
+
+    readonly attribute long size raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute <a href="package.html#PackageId">PackageId</a> packageId;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationInformation::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationId </span><span class="name">id</span></span><div class="brief">
+ An attribute to store the identifier of an application for application management.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ An attribute to store the name of an application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::iconPath">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">iconPath</span></span><div class="brief">
+ An attribute to store the icon path of an application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::version">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">version</span></span><div class="brief">
+ An attribute to store the version of an application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::show">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">show</span></span><div class="brief">
+ An attribute that determines whether the application information should
+be shown (such as in menus).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::categories">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">categories</span></span><div class="brief">
+ An array of attributes to store the categories that the app belongs to.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::installDate">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">installDate</span></span><div class="brief">
+ An attribute to store the application install/update time.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationInformation::size">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">size</span></span><div class="brief">
+ An attribute to store the application size (installed space).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/application.info
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="ApplicationInformation::packageId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">PackageId </span><span class="name">packageId</span></span><div class="brief">
+ An attribute to store the package ID of an application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ApplicationContext">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationContext"></a><h3>2.5. ApplicationContext</h3>
+<div class="brief">
+ This interface defines the information available about a running
+application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationContext {
+
+    readonly attribute <a href="#ApplicationContextId">ApplicationContextId</a> id;
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> appId;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationContext::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationContextId </span><span class="name">id</span></span><div class="brief">
+ An attribute to store the ID of a running application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationContext::appId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationId </span><span class="name">appId</span></span><div class="brief">
+ An attribute to store the ID of an installed application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ApplicationControlData">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControlData"></a><h3>2.6. ApplicationControlData</h3>
+<div class="brief">
+ This interface defines a key/value pair used to pass data
+between applications through the <em>ApplicationControl </em>interface.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(DOMString key, DOMString[] value)]
+  interface ApplicationControlData {
+
+    attribute DOMString key;
+
+    attribute DOMString[] value;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appControlData = new tizen.ApplicationControlData("image", [imagedata1]);
+ </pre>
+</div>
+<div class="constructors">
+<h4 id="ApplicationControlData::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">ApplicationControlData(DOMString key, DOMString[] value);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationControlData::key">
+<span class="attrName"><span class="type">DOMString </span><span class="name">key</span></span><div class="brief">
+ An attribute to store the name of a key.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControlData::value">
+<span class="attrName"><span class="type">DOMString[]
+                      </span><span class="name">value</span></span><div class="brief">
+ An attribute to store the value associated with a key.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ApplicationControl">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControl"></a><h3>2.7. ApplicationControl</h3>
+<div class="brief">
+ This interface consists of an operation, URI, MIME type,
+and data. It describes an action to be performed by other applications
+and is passed to launch other applications.
+If the system gets the application control request, it finds
+the corresponding application to be launched with the delivered application control
+and launches the selected application.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(DOMString operation, optional DOMString? uri,
+               optional DOMString? mime, optional DOMString? category,
+               optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data, optional <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a>? launchMode)]
+  interface ApplicationControl {
+
+    attribute DOMString operation;
+
+    attribute DOMString? uri;
+
+    attribute DOMString? mime;
+
+    attribute DOMString? category;
+
+    attribute <a href="#ApplicationControlData">ApplicationControlData</a>[] data;
+
+    attribute <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a> launchMode;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var appControl =
+       new tizen.ApplicationControl(
+                  "http://tizen.org/appcontrol/operation/view",
+                  null,
+                  "image/jpeg",
+                  null,
+                  [new tizen.ApplicationControlData("images",
+                                                    [imagedata1, imagedata2])] );
+ </pre>
+</div>
+<div class="constructors">
+<h4 id="ApplicationControl::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">ApplicationControl(DOMString operation, optional DOMString? uri, optional DOMString? mime, optional DOMString? category, optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data, optional <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a>? launchMode);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationControl::operation">
+<span class="attrName"><span class="type">DOMString </span><span class="name">operation</span></span><div class="brief">
+ An attribute to store the string that defines the action to be
+performed by an application control.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControl::uri">
+<span class="attrName"><span class="type">DOMString </span><span class="name">uri</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the URI needed by an application control.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControl::mime">
+<span class="attrName"><span class="type">DOMString </span><span class="name">mime</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the MIME type of content.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControl::category">
+<span class="attrName"><span class="type">DOMString </span><span class="name">category</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the category of the application to be launched.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControl::data">
+<span class="attrName"><span class="type">ApplicationControlData[]
+                      </span><span class="name">data</span></span><div class="brief">
+ An array of attributes to store the data needed for an application control.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationControl::launchMode">
+<span class="attrName"><span class="type">ApplicationControlLaunchMode </span><span class="name">launchMode</span></span><div class="brief">
+ An attribute to specify launch mode. Default application launch mode is <em>SINGLE</em>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="RequestedApplicationControl">
+<a class="backward-compatibility-anchor" name="::Application::RequestedApplicationControl"></a><h3>2.8. RequestedApplicationControl</h3>
+<div class="brief">
+ This interface has an application control information requested and passed
+from another application and is passed to launch other applications. The newly
+launched application can get the requested application control through the <em>getRequestedAppControl()</em> method, and send the results
+to the calling application through the <em>replyResult()</em> method after performing the
+required action requested by the calling application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface RequestedApplicationControl {
+
+    readonly attribute <a href="#ApplicationControl">ApplicationControl</a> appControl;
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> callerAppId;
+
+    void replyResult(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void replyFailure() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var reqAppControl = tizen.application.getCurrentApplication().getRequestedAppControl();
+ if (reqAppControl) {
+     console.log("Requester AppID : " + reqAppControl.callerAppId);
+
+     var appControl = reqAppControl.appControl;
+     if (appControl.operation == "http://tizen.org/appcontrol/operation/pick") {
+         var data = new tizen.ApplicationControlData("http://tizen.org/appcontrol/data/selected", ["Image1.jpg"]);
+         reqAppControl.replyResult([data]);
+     }
+ }
+ </pre>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="RequestedApplicationControl::appControl">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationControl </span><span class="name">appControl</span></span><div class="brief">
+ An attribute to store the application control object that describes the caller application's request.
+It contains the information that the calling application passed to <em>launchAppControl</em>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="RequestedApplicationControl::callerAppId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationId </span><span class="name">callerAppId</span></span><div class="brief">
+ An attribute to store the caller application's ID.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="RequestedApplicationControl::replyResult">
+<a class="backward-compatibility-anchor" name="::Application::RequestedApplicationControl::replyResult"></a><code><b><span class="methodName">replyResult</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sends the results to the caller application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void replyResult(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">data</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An array of ApplicationControlData objects
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the caller app is not alive or there is no response from the caller app.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the reply request fails because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="RequestedApplicationControl::replyFailure">
+<a class="backward-compatibility-anchor" name="::Application::RequestedApplicationControl::replyFailure"></a><code><b><span class="methodName">replyFailure</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Notifies the calling application that the application failed
+to perform the requested action.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void replyFailure();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the caller app is not alive or there is no response from the caller app.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the reply request fails because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ApplicationCertificate">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationCertificate"></a><h3>2.9. ApplicationCertificate</h3>
+<div class="brief">
+ This interface defines the certificate information of an installed application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationCertificate {
+
+    readonly attribute DOMString type;
+
+    readonly attribute DOMString value;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationCertificate::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">type</span></span><div class="brief">
+ An attribute to store the type of the application certificate
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ApplicationCertificate::value">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">value</span></span><div class="brief">
+ An attribute to store the value of the application certificate
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ApplicationMetaData">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationMetaData"></a><h3>2.10. ApplicationMetaData</h3>
+<div class="brief">
+ This interface defines the meta data of an installed application
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ApplicationMetaData {
+
+    readonly attribute DOMString key;
+
+    readonly attribute DOMString value;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.2
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ApplicationMetaData::key">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">key</span></span><div class="brief">
+ An attribute to store the key of the application meta data
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+</li>
+<li class="attribute" id="ApplicationMetaData::value">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">value</span></span><div class="brief">
+ An attribute to store the value of the application meta data
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ApplicationInformationArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationArraySuccessCallback"></a><h3>2.11. ApplicationInformationArraySuccessCallback</h3>
+<div class="brief">
+ This callback interface specifies a success callback that is invoked when the installed application list is retrieved.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface ApplicationInformationArraySuccessCallback {
+    void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success method with an array of
+<em>ApplicationInformation </em>objects as an input parameter. It is used in <em>ApplicationManager.getAppsInfo()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ApplicationInformationArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">informationArray</span>: 
+ A list of installed applications
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FindAppControlSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Application::FindAppControlSuccessCallback"></a><h3>2.12. FindAppControlSuccessCallback</h3>
+<div class="brief">
+ This callback interface specifies a success callback that is invoked when the system has finished searching applications that match a specific application control .
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FindAppControlSuccessCallback {
+    void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray, <a href="#ApplicationControl">ApplicationControl</a> appControl);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success method with an array of
+<em>ApplicationInformation </em>objects and application control as an input parameter.
+It is used in <em>ApplicationManager.findAppControl()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FindAppControlSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Application::FindAppControlSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray, <a href="#ApplicationControl">ApplicationControl</a> appControl);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">informationArray</span>: 
+ A list of installed applications
+                </li>
+          <li class="param">
+<span class="name">appControl</span>: 
+ The application control that is passed to <em>ApplicationManager.findAppControl()</em>                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ApplicationContextArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationContextArraySuccessCallback"></a><h3>2.13. ApplicationContextArraySuccessCallback</h3>
+<div class="brief">
+ This callback interface specifies a success callback that is invoked when the list of running applications is retrieved.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface ApplicationContextArraySuccessCallback {
+    void onsuccess(<a href="#ApplicationContext">ApplicationContext</a>[] contexts);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success method with
+an array of <em>ApplicationContext </em>objects as an input parameter. It is used in <em>ApplicationManager.getAppsContext()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ApplicationContextArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationContextArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when <em>ApplicationManager.getAppsContext() </em>completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ApplicationContext">ApplicationContext</a>[] contexts);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contexts</span>: 
+ A list of running applications
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ApplicationControlDataArrayReplyCallback">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControlDataArrayReplyCallback"></a><h3>2.14. ApplicationControlDataArrayReplyCallback</h3>
+<div class="brief">
+ The ApplicationControlDataArrayReplyCallback callback specifies success callbacks that are invoked as a reply from the requested application control within the application control requester.
+          </div>
+<pre class="webidl prettyprint">  [Callback, NoInterfaceObject] interface ApplicationControlDataArrayReplyCallback {
+    void onsuccess(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data);
+
+    void onfailure();
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies two methods:
+          </p>
+          <ul>
+            <li>
+ <em>onsuccess()</em> - Invoked if the callee application calls <em>RequestedApplicationControl.replyResult()</em>.            </li>
+            <li>
+ <em>onfailure()</em> - Invoked if the callee application calls <em>RequestedApplicationControl.replyFailure()</em>.            </li>
+          </ul>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ApplicationControlDataArrayReplyCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControlDataArrayReplyCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the callee application calls <em>RequestedApplicationControl.replyResult()</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">data</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An array of <em>ApplicationControlData</em> objects
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ApplicationControlDataArrayReplyCallback::onfailure">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationControlDataArrayReplyCallback::onfailure"></a><code><b><span class="methodName">onfailure</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the callee application calls <em>RequestedApplicationControl.replyFailure()</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onfailure();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ApplicationInformationEventCallback">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationEventCallback"></a><h3>2.15. ApplicationInformationEventCallback</h3>
+<div class="brief">
+ The ApplicationInformationEventCallback specifies listener for subscribing for notifications of changes in the list of installed
+applications on a device.
+          </div>
+<pre class="webidl prettyprint">  [Callback, NoInterfaceObject] interface ApplicationInformationEventCallback {
+    void oninstalled(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+
+    void onupdated(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+
+    void onuninstalled(<a href="#ApplicationId">ApplicationId</a> id);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies methods that are invoked when
+an application is installed, updated, or uninstalled.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ApplicationInformationEventCallback::oninstalled">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationEventCallback::oninstalled"></a><code><b><span class="methodName">oninstalled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when an application is installed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oninstalled(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">info</span>: 
+ The application information of the installed application
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ApplicationInformationEventCallback::onupdated">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationEventCallback::onupdated"></a><code><b><span class="methodName">onupdated</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when an application is updated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onupdated(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">info</span>: 
+ The application information of the updated application
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ApplicationInformationEventCallback::onuninstalled">
+<a class="backward-compatibility-anchor" name="::Application::ApplicationInformationEventCallback::onuninstalled"></a><code><b><span class="methodName">onuninstalled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when an application is uninstalled.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onuninstalled(<a href="#ApplicationId">ApplicationId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The ID of the uninstalled application
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SystemEventData">
+<a class="backward-compatibility-anchor" name="::Application::SystemEventData"></a><h3>2.16. SystemEventData</h3>
+<div class="brief">
+ The SystemEventData interface defines what is retrieved from the event listener.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemEventData {
+    attribute DOMString value;
+    attribute DOMString type;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+Platform modules will be able to broadcast system events in a future Tizen release.
+          </p>
+         </div>
+</div>
+<div class="interface" id="EventCallback">
+<a class="backward-compatibility-anchor" name="::Application::EventCallback"></a><h3>2.17. EventCallback</h3>
+<div class="brief">
+ The EventCallback interface specifies a callback for getting notified when a specified event occurs.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface EventCallback {
+    void onevent(<a href="#EventInfo">EventInfo</a> event, <a href="#EventData">EventData</a> data);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="EventCallback::onevent">
+<a class="backward-compatibility-anchor" name="::Application::EventCallback::onevent"></a><code><b><span class="methodName">onevent</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the event occurs.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onevent(<a href="#EventInfo">EventInfo</a> event, <a href="#EventData">EventData</a> data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">event</span>: 
+ Broadcasted event which invokes this callback
+                </li>
+          <li class="param">
+<span class="name">data</span>: 
+ Broadcasted event data
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="EventInfo">
+<a class="backward-compatibility-anchor" name="::Application::EventInfo"></a><h3>2.18. EventInfo</h3>
+<div class="brief">
+ The EventInfo dictionary identifies an event with information such as event name. If it is an user event, the broadasting application's identifier is also specified.
+          </div>
+<pre class="webidl prettyprint">  dictionary EventInfo {
+    <a href="#ApplicationId">ApplicationId</a> appId;
+
+    DOMString name;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+System events do not require an application identifier to be specified. If one is specified, the event will be interpreted as an user event.
+          </p>
+         </div>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="EventInfo::appId"><span class="attrName"><a href="#ApplicationId">ApplicationId</a> appId</span></dt>
+<dd>
+<div class="brief">
+ The unique identifier of the application which is broadcasting an event.
+            </div>
+<div class="description">
+            <p>
+An application can listen to events from other applications. However, it can only broadcast its own events. Therefore, when broadcasting an event, this dictionary member must be the identifier of the application which is broadcasting the event.
+            </p>
+            <p>
+System events do not require an application identifier to be specified. If one is specified, the event will be interpreted as an user event.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+<dt class="member" id="EventInfo::name"><span class="attrName">DOMString name</span></dt>
+<dd>
+<div class="brief">
+ Name which describes the event.
+            </div>
+<div class="description">
+            <p>
+Must only contain the ASCII characters "[A-Z][a-z][0-9]_" and may not begin with a digit.
+Must be at least 1 byte in length and not exceed the maximum name length of 127 bytes.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Application {
+
+  typedef DOMString ApplicationId;
+
+  typedef DOMString ApplicationContextId;
+
+  typedef object UserEventData;
+
+  typedef (<a href="#SystemEventData">SystemEventData</a> or <a href="#UserEventData">UserEventData</a>) EventData;
+
+  enum ApplicationControlLaunchMode { "SINGLE", "GROUP" };
+
+  [NoInterfaceObject] interface ApplicationManagerObject {
+    readonly attribute <a href="#ApplicationManager">ApplicationManager</a> application;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ApplicationManagerObject">ApplicationManagerObject</a>;
+
+  [NoInterfaceObject] interface ApplicationManager {
+
+    <a href="#Application">Application</a> getCurrentApplication() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void kill(<a href="#ApplicationContextId">ApplicationContextId</a> contextId,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void launch(<a href="#ApplicationId">ApplicationId</a> id,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void launchAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl,
+                          optional <a href="#ApplicationId">ApplicationId</a>? id,
+                          optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                          optional <a href="#ApplicationControlDataArrayReplyCallback">ApplicationControlDataArrayReplyCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void findAppControl(<a href="#ApplicationControl">ApplicationControl</a> appControl,
+                        <a href="#FindAppControlSuccessCallback">FindAppControlSuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getAppsContext(<a href="#ApplicationContextArraySuccessCallback">ApplicationContextArraySuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationContext">ApplicationContext</a> getAppContext(optional <a href="#ApplicationContextId">ApplicationContextId</a>? contextId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getAppsInfo(<a href="#ApplicationInformationArraySuccessCallback">ApplicationInformationArraySuccessCallback</a> successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationInformation">ApplicationInformation</a> getAppInfo(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationCertificate">ApplicationCertificate</a>[] getAppCerts(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getAppSharedURI(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#ApplicationMetaData">ApplicationMetaData</a>[] getAppMetaData(optional <a href="#ApplicationId">ApplicationId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addAppInfoEventListener(<a href="#ApplicationInformationEventCallback">ApplicationInformationEventCallback</a> eventCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeAppInfoEventListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface Application {
+
+    readonly attribute <a href="#ApplicationInformation">ApplicationInformation</a> appInfo;
+
+    readonly attribute <a href="#ApplicationContextId">ApplicationContextId</a> contextId;
+
+    void exit() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void hide() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RequestedApplicationControl">RequestedApplicationControl</a> getRequestedAppControl() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addEventListener(<a href="#EventInfo">EventInfo</a> event, <a href="#EventCallback">EventCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeEventListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void broadcastEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void broadcastTrustedEvent(<a href="#EventInfo">EventInfo</a> event, <a href="#UserEventData">UserEventData</a> data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface ApplicationInformation {
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> id;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString iconPath;
+
+    readonly attribute DOMString version;
+
+    readonly attribute boolean show;
+
+    readonly attribute DOMString[] categories;
+
+    readonly attribute Date installDate;
+
+    readonly attribute long size raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute <a href="package.html#PackageId">PackageId</a> packageId;
+  };
+
+  [NoInterfaceObject] interface ApplicationContext {
+
+    readonly attribute <a href="#ApplicationContextId">ApplicationContextId</a> id;
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> appId;
+  };
+
+  [Constructor(DOMString key, DOMString[] value)]
+  interface ApplicationControlData {
+
+    attribute DOMString key;
+
+    attribute DOMString[] value;
+  };
+
+  [Constructor(DOMString operation, optional DOMString? uri,
+               optional DOMString? mime, optional DOMString? category,
+               optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data, optional <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a>? launchMode)]
+  interface ApplicationControl {
+
+    attribute DOMString operation;
+
+    attribute DOMString? uri;
+
+    attribute DOMString? mime;
+
+    attribute DOMString? category;
+
+    attribute <a href="#ApplicationControlData">ApplicationControlData</a>[] data;
+
+    attribute <a href="#ApplicationControlLaunchMode">ApplicationControlLaunchMode</a> launchMode;
+  };
+
+  [NoInterfaceObject] interface RequestedApplicationControl {
+
+    readonly attribute <a href="#ApplicationControl">ApplicationControl</a> appControl;
+
+    readonly attribute <a href="#ApplicationId">ApplicationId</a> callerAppId;
+
+    void replyResult(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void replyFailure() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface ApplicationCertificate {
+
+    readonly attribute DOMString type;
+
+    readonly attribute DOMString value;
+  };
+
+  [NoInterfaceObject] interface ApplicationMetaData {
+
+    readonly attribute DOMString key;
+
+    readonly attribute DOMString value;
+  };
+
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface ApplicationInformationArraySuccessCallback {
+    void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FindAppControlSuccessCallback {
+    void onsuccess(<a href="#ApplicationInformation">ApplicationInformation</a>[] informationArray, <a href="#ApplicationControl">ApplicationControl</a> appControl);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface ApplicationContextArraySuccessCallback {
+    void onsuccess(<a href="#ApplicationContext">ApplicationContext</a>[] contexts);
+  };
+
+  [Callback, NoInterfaceObject] interface ApplicationControlDataArrayReplyCallback {
+    void onsuccess(optional <a href="#ApplicationControlData">ApplicationControlData</a>[]? data);
+
+    void onfailure();
+  };
+
+  [Callback, NoInterfaceObject] interface ApplicationInformationEventCallback {
+    void oninstalled(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+
+    void onupdated(<a href="#ApplicationInformation">ApplicationInformation</a> info);
+
+    void onuninstalled(<a href="#ApplicationId">ApplicationId</a> id);
+  };
+
+  [NoInterfaceObject] interface SystemEventData {
+    attribute DOMString value;
+    attribute DOMString type;
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface EventCallback {
+    void onevent(<a href="#EventInfo">EventInfo</a> event, <a href="#EventData">EventData</a> data);
+  };
+
+  dictionary EventInfo {
+    <a href="#ApplicationId">ApplicationId</a> appId;
+
+    DOMString name;
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/archive.html b/org.tizen.web.apireference/html/device_api/tv/tizen/archive.html
new file mode 100644 (file)
index 0000000..cfe118a
--- /dev/null
@@ -0,0 +1,1552 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Archive API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Archive">
+<div class="title"><h1>Archive API</h1></div>
+<div class="brief">
+ The Archive API provides functions to create and manage archive files.
+You can extract files, add a file to an archive file, and so on.
+        </div>
+<div class="description">
+        <p>
+For more information about how to use Archive API, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/io_guide/archive.htm">Archive Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#FileReference">FileReference</a>
+</li>
+<li>
+                    1.2. <a href="#ArchiveCompressionLevel">ArchiveCompressionLevel</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#ArchiveManagerObject">ArchiveManagerObject</a>
+</li>
+<li>2.2. <a href="#ArchiveFileOptions">ArchiveFileOptions</a>
+</li>
+<li>2.3. <a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a>
+</li>
+<li>2.4. <a href="#ArchiveManager">ArchiveManager</a>
+</li>
+<li>2.5. <a href="#ArchiveFile">ArchiveFile</a>
+</li>
+<li>2.6. <a href="#ArchiveFileEntry">ArchiveFileEntry</a>
+</li>
+<li>2.7. <a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a>
+</li>
+<li>2.8. <a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a>
+</li>
+<li>2.9. <a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a>
+</li>
+<li>2.10. <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#ArchiveManagerObject">ArchiveManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileOptions">ArchiveFileOptions</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ArchiveManager">ArchiveManager</a></td>
+<td>
+<div>long <a href="#ArchiveManager::open">open</a> (<a href="#FileReference">FileReference</a> file, <a href="filesystem.html#FileMode">FileMode</a> mode, <a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileOptions">ArchiveFileOptions</a>? options)</div>
+<div>void <a href="#ArchiveManager::abort">abort</a> (long operationIdentifier)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ArchiveFile">ArchiveFile</a></td>
+<td>
+<div>long <a href="#ArchiveFile::add">add</a> (<a href="#FileReference">FileReference</a> sourceFile, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional <a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a>? options)</div>
+<div>long <a href="#ArchiveFile::extractAll">extractAll</a> (<a href="#FileReference">FileReference</a> destinationDirectory, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional boolean? overwrite)</div>
+<div>long <a href="#ArchiveFile::getEntries">getEntries</a> (<a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>long <a href="#ArchiveFile::getEntryByName">getEntryByName</a> (DOMString name, <a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>void <a href="#ArchiveFile::close">close</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileEntry">ArchiveFileEntry</a></td>
+<td><div>long <a href="#ArchiveFileEntry::extract">extract</a> (<a href="#FileReference">FileReference</a> destinationDirectory, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional boolean? stripName, optional boolean? overwrite)</div></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a></td>
+<td><div>void <a href="#ArchiveFileSuccessCallback::onsuccess">onsuccess</a> (<a href="#ArchiveFile">ArchiveFile</a> archive)</div></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a></td>
+<td><div>void <a href="#ArchiveFileEntrySuccessCallback::onsuccess">onsuccess</a> (<a href="#ArchiveFileEntry">ArchiveFileEntry</a> entry)</div></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a></td>
+<td><div>void <a href="#ArchiveFileEntryArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#ArchiveFileEntry">ArchiveFileEntry</a>[] entries)</div></td>
+</tr>
+<tr>
+<td><a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a></td>
+<td><div>void <a href="#ArchiveFileProgressCallback::onprogress">onprogress</a> (long operationIdentifier, double value, DOMString filename)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="FileReference">
+<a class="backward-compatibility-anchor" name="::Archive::FileReference"></a><h3>1.1. FileReference</h3>
+<div class="brief">
+ File reference for an archive file.
+It can be either a <var>File</var> object or a virtual path.
+          </div>
+<pre class="webidl prettyprint">    typedef (DOMString or <a href="filesystem.html#File">File</a>) FileReference;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+</div>
+<div class="enum" id="ArchiveCompressionLevel">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveCompressionLevel"></a><h3>1.2. ArchiveCompressionLevel</h3>
+<div class="brief">
+ Enumeration for the compression level.
+          </div>
+<pre class="webidl prettyprint">    enum ArchiveCompressionLevel {"STORE", "FAST", "NORMAL", "BEST"};</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+STORE - No compression. The file is stored unchanged.            </li>
+            <li>
+FAST - Choose the fastest compression method, compression savings will be less.            </li>
+            <li>
+NORMAL - Default compression level.            </li>
+            <li>
+BEST - Choose the best compression method, compression may be slow.            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="ArchiveManagerObject">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveManagerObject"></a><h3>2.1. ArchiveManagerObject</h3>
+<div class="brief">
+ The ArchiveManagerObject interface defines what is instantiated in the <em>Tizen</em> object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ArchiveManagerObject {
+        readonly attribute <a href="#ArchiveManager">ArchiveManager</a> archive;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ArchiveManagerObject">ArchiveManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.archive</em> object allows access to the Archive API.
+          </p>
+         </div>
+</div>
+<div class="dictionary" id="ArchiveFileOptions">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileOptions"></a><h3>2.2. ArchiveFileOptions</h3>
+<div class="brief">
+ The ArchiveFileOptions dictionary represents the option to decide if an archive file can be overwritten when an archive file is opened.
+          </div>
+<pre class="webidl prettyprint">    dictionary ArchiveFileOptions {
+        boolean overwrite;
+
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="ArchiveFileOptions::overwrite"><span class="attrName">boolean overwrite</span></dt>
+<dd>
+<div class="brief">
+ Indicates whether opening an archive file for writing can overwrite the contents of the existing file.
+            </div>
+<div class="description">
+            <ul>
+              <li>
+true - The archive file is overwritten if an archive file with a same name exists in the same location. The previous contents are lost.              </li>
+              <li>
+false - The archive file is not overwritten if an archive file with a same name exists in the same location.              </li>
+            </ul>
+            <p>
+The default value is <var>false</var>            </p>
+            <p>
+See description of the <em>mode</em> argument of the <em>open()</em> method.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="ArchiveFileEntryOptions">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntryOptions"></a><h3>2.3. ArchiveFileEntryOptions</h3>
+<div class="brief">
+ The ArchiveFileEntryOptions dictionary controls behavior when adding a file to an archive.
+          </div>
+<pre class="webidl prettyprint">    dictionary ArchiveFileEntryOptions {
+        DOMString destination;
+
+        boolean stripSourceDirectory;
+
+        <a href="#ArchiveCompressionLevel">ArchiveCompressionLevel</a> compressionLevel;
+
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="ArchiveFileEntryOptions::destination"><span class="attrName">DOMString destination</span></dt>
+<dd>
+<div class="brief">
+ Path where <em>ArchiveFileEntry</em> should be stored in an archive file.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="remark"> Remark : </span>
+ If destination is not set, then the root directory of archive will be used (equivalent to <var>destination = ""</var>).
+            </p>
+</dd>
+<dt class="member" id="ArchiveFileEntryOptions::stripSourceDirectory"><span class="attrName">boolean stripSourceDirectory</span></dt>
+<dd>
+<div class="brief">
+ Controls whether leading directory information is stripped from the source file name before storing.
+            </div>
+<div class="description">
+            <p>
+The virtual root is always removed.
+To omit all the remaining directory names, set <em>stripSourceDirectory</em> to <var>true</var>.
+            </p>
+            <table>
+              <tr>
+                <th rowspan="2">
+Source file name                </th>
+                <th colspan="2">
+Target file name when <em>destination</em> is "mypackage"                </th>
+              </tr>
+              <tr>
+                <th>
+stripSourceDirectory: <em>true</em>                </th>
+                <th>
+stripSourceDirectory: <em>false</em>                </th>
+              </tr>
+              <tr>
+                <td>
+documents/tizen/archive/example/test.js                </td>
+                <td>
+mypackage/test.js                </td>
+                <td>
+mypackage/tizen/archive/example/test.js                </td>
+              </tr>
+              <tr>
+                <td>
+wgt-private/test/js/main.js                </td>
+                <td>
+mypackage/main.js                </td>
+                <td>
+mypackage/test/js/main.js                </td>
+              </tr>
+              <tr>
+                <td>
+downloads/test.c                </td>
+                <td>
+mypackage/test.c                </td>
+                <td>
+mypackage/test.c                </td>
+              </tr>
+            </table>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="remark"> Remark : </span>
+ The default value is <var>false</var>.
+            </p>
+</dd>
+<dt class="member" id="ArchiveFileEntryOptions::compressionLevel"><span class="attrName"><a href="#ArchiveCompressionLevel">ArchiveCompressionLevel</a> compressionLevel</span></dt>
+<dd>
+<div class="brief">
+ Compression level.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="remark"> Remark : </span>
+ The default compression level is <var>NORMAL</var>.
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveManager">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveManager"></a><h3>2.4. ArchiveManager</h3>
+<div class="brief">
+ The ArchiveManager interface provides methods for global operations related to ArchiveFile.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ArchiveManager {
+        long open(<a href="#FileReference">FileReference</a> file,
+                  <a href="filesystem.html#FileMode">FileMode</a> mode,
+                  <a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a> onsuccess,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                  optional <a href="#ArchiveFileOptions">ArchiveFileOptions</a>? options) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void abort(long operationIdentifier) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveManager::open">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveManager::open"></a><code><b><span class="methodName">open</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Opens the archive file. After this operation, it is possible to add or get files to and from the archive.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long open(<a href="#FileReference">FileReference</a> file, <a href="filesystem.html#FileMode">FileMode</a> mode, <a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileOptions">ArchiveFileOptions</a>? options);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If archiveFile format is not recognized              </li>
+              <li>
+NotFoundError: If the <em>mode</em> is "r" and the <em>file</em> does not exist, or the <em>mode</em> is not "r" and the <em>file</em> cannot be created because the path of the file after excluding its file name does not exist              </li>
+              <li>
+IOError: If the access is denied due to insufficient permissions              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+            <p>
+Use <em>mode</em> depending on which operation are intended:
+            </p>
+            <table>
+              <tr>
+                <th>
+Mode                </th>
+                <th>
+Description                </th>
+              </tr>
+              <tr>
+                <td>
+r                </td>
+                <td>
+Use this mode for extracting or getting information about the contents of an archive file. <br><em>file</em> must exist. If the <em>file</em> does not exist, <em>onerror</em> will be invoked (<em>NotFoundError</em>).<br>When an archive file is opened in this mode, <em>add()</em> will not be available. (<em>IOError</em> will be thrown.)                 </td>
+              </tr>
+              <tr>
+                <td>
+w                </td>
+                <td>
+Use this mode to create an archive file and add files to the archive file. <br>If <em>file</em> does not exist, it will be created. <br>If <em>file</em> exists and the <em>overwrite</em> option is <var>true</var>, the existing file will be overwritten with empty archive. <br>If <em>file</em> exists and the <em>overwrite</em> option is <var>false</var>, <em>onerror</em> callback will be invoked (<em>InvalidModificationError</em>). <br>When an archive file is opened in this mode, <em>getEntries()</em>, <em>getEntryByName()</em>, and <em>extractAll()</em> are not available. (<em>IOError</em> will be thrown.)
+                </td>
+              </tr>
+              <tr>
+                <td>
+rw                </td>
+                <td>
+Use this mode for archive zipping/unzipping. <br>If <em>file</em> does not exist, it will be created. <br>If <em>file</em> exists and the <em>overwrite</em> option is <var>true</var>, the existing file will be overwritten with an empty archive. <br>If <em>file</em> exists and the <em>overwrite</em> option is <var>false</var>, the existing contents are preserved.
+Both adding and extracting will be available. <br>                </td>
+              </tr>
+              <tr>
+                <td>
+a                </td>
+                <td>
+Use this mode to add new files to an archive file. <br>If <em>file</em> does not exist, it will be created. <br>If <em>file</em> exists, then the previous contents of the archive file are preserved and new files can be added to the archive file.
+In this mode, <em>getEntries()</em>, <em>getEntryByName()</em>, and <em>extractAll()</em> are not available. (<em>IOError</em> will be thrown.)
+                </td>
+              </tr>
+            </table>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">file</span>: 
+ File to open
+                </li>
+          <li class="param">
+<span class="name">mode</span>: 
+ File mode for the opened archive. Determines which operations are available
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when archive is opened successfully
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">options</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Additional options for initializing the ArchiveFile instance
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter type does not match.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCallback(archive) {
+     console.log("Success, can now read from archive " + archive);
+ }
+
+ function errorCallback(error) {
+     console.log(error);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", successCallback, errorCallback);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ArchiveManager::abort">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveManager::abort"></a><code><b><span class="methodName">abort</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Cancels an operation with the given identifier.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void abort(long operationIdentifier);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">operationIdentifier</span>: 
+ Task ID returned by an asynchronous function from this module
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if any error occurs.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function openSuccess(archive) {
+     operationId = archive.extractAll("downloads/extracted");
+     tizen.archive.abort(operationId);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", openSuccess);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFile">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile"></a><h3>2.5. ArchiveFile</h3>
+<div class="brief">
+ The ArchiveFile interface provides access to member files of the archive file.
+          </div>
+<pre class="webidl prettyprint">    interface ArchiveFile {
+        readonly attribute <a href="filesystem.html#FileMode">FileMode</a> mode;
+
+        readonly attribute unsigned long long? decompressedSize;
+
+        long add(<a href="#FileReference">FileReference</a> sourceFile,
+                 optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                 optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                 optional <a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a>? options) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long extractAll(<a href="#FileReference">FileReference</a> destinationDirectory,
+                        optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                        optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                        optional boolean? overwrite) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long getEntries(<a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a> onsuccess,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long getEntryByName(DOMString name,
+                            <a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a> onsuccess,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void close() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ArchiveFile::mode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">FileMode </span><span class="name">mode</span></span><div class="brief">
+ attribute File mode when it is opened.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ArchiveFile::decompressedSize">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">decompressedSize</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Size of all the files included in the archive after decompression.
+            </div>
+<div class="description">
+            <p>
+The size is <var>null</var> until the archive is opened.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFile::add">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile::add"></a><code><b><span class="methodName">add</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a new member file to <em>ArchiveFile</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long add(<a href="#FileReference">FileReference</a> sourceFile, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional <a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a>? options);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If <em>sourceFile</em> refers to a directory,
+the directory and its content will be added to ArchiveFile.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the given <em>sourceFile</em> does not exist              </li>
+              <li>
+IOError: If archiveFile can not be written due the lack of access permission              </li>
+              <li>
+InvalidModificationError: If the operation results in a name conflict in the archive<br>i.e. two entries in the archive with the same name (including directory names).              </li>
+              <li>
+UnknownError: In any case of any other error              </li>
+            </ul>
+            <p>
+Name stored for new entries is constructed from <em>sourceFile</em> according to the
+<a href="#ArchiveFileEntryOptions::stripSourceDirectory">stripSourceDirectory</a> and <a href="#ArchiveFileEntryOptions::destination">destination</a> options. Names are constructed as follows:
+            </p>
+            <table>
+              <tr>
+                <th>
+source file                </th>
+                <th>
+destination                </th>
+                <th>
+stripSourceDirectory                </th>
+                <th>
+resulting entry name                </th>
+              </tr>
+              <tr>
+                <td>
+documents/subdir/second/justName.ext                </td>
+                <td>
+<em>(empty)</em>                </td>
+                <td>
+<var>false</var>                </td>
+                <td>
+subdir/second/justName.ext                </td>
+              </tr>
+              <tr>
+                <td>
+documents/subdir/second/justName.ext                </td>
+                <td>
+<em>(empty)</em>                </td>
+                <td>
+<var>true</var>                </td>
+                <td>
+justName.ext                </td>
+              </tr>
+              <tr>
+                <td>
+documents/subdir/justName.ext                </td>
+                <td>
+"report3"                </td>
+                <td>
+<var>false</var>                </td>
+                <td>
+report3/subdir/justName.ext                </td>
+              </tr>
+              <tr>
+                <td>
+documents/subdir/justName.ext                </td>
+                <td>
+"report3"                </td>
+                <td>
+<var>true</var>                </td>
+                <td>
+report3/justName.ext                </td>
+              </tr>
+            </table>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">sourceFile</span>: 
+ File or directory to be added to archive
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when this operation is completed successfully
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">onprogress</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked to notify about operation progress <br>It is called every time a single source file has been completely added.
+If the source file is big then the callback can also be called while the file is being processed.
+                </li>
+          <li class="param">
+<span class="name">options</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Additional options used to control how the sourceFile will be compressed and stored in the archive
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter is of the wrong type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidStateError, if ArchiveFile is not open.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidAccessError, if the file mode is <var>"r"</var>.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCallback(error) {
+     console.log(error);
+ }
+
+ function successCallback() {
+     console.log("done");
+ }
+
+ function progressCallback(opId, val, name) {
+     console.log("opId: " + opId + " with progress val: " + val);
+ }
+
+ function createSuccess(archive) {
+     archive.add("downloads/file.txt", successCallback, errorCallback, progressCallback);
+ }
+
+ tizen.archive.open("downloads/new_archive.zip", "w", createSuccess);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ArchiveFile::extractAll">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile::extractAll"></a><code><b><span class="methodName">extractAll</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Extracts every file from this <em>ArchiveFile</em> to a given directory.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long extractAll(<a href="#FileReference">FileReference</a> destinationDirectory, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional boolean? overwrite);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+All extracted files will be located in the given directory.
+            </p>
+            <p>
+The <var>overwrite</var> attribute determines whether extracted files can overwrite existing files.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the given <em>destinationDirectory</em> does not exist              </li>
+              <li>
+IOError: If destinationDirectory can not be written to (e.g due to insufficient permissions)              </li>
+              <li>
+InvalidModificationError: If during extracting it is detected that an existing file would
+have to be overwritten and the <em>overwrite</em> argument is <var>false</var>              </li>
+              <li>
+UnknownError: In any other error case              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">destinationDirectory</span>: 
+ Directory where extracted files will be stored <br>Specified as a virtual path or a <em>File</em> object representing a directory.
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an archive is extracted successfully
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">onprogress</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked while the extracting is in progress <br>The onprogress callback is called at least once. It will be invoked for every extracted file.
+                </li>
+          <li class="param">
+<span class="name">overwrite</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Flag indicating whether to overwrite or keep the existing files with the same name in the <var>destinationDirectory</var> location when extracting an archive <br>By default, this attribute is set to <var>false</var>.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter is of the wrong type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidStateError, if ArchiveFile is not open.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidAccessError, if the file mode is <var>"w"</var> or <var>"a"</var>.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCallback(error) {
+     console.log(error);
+ }
+
+ function successCallback() {
+     console.log("done");
+ }
+
+ function progressCallback(opId, val, name) {
+     console.log("extracting operation (: " + opId + ") is in progress (" + (val * 100).toFixed(1) + "%)");
+ }
+
+ function openSuccess(archive) {
+     archive.extractAll("music", successCallback, errorCallback, progressCallback);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", openSuccess);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ArchiveFile::getEntries">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile::getEntries"></a><code><b><span class="methodName">getEntries</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Retrieves information about the member files in <em>ArchiveFile</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getEntries(<a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when information about all the files in the archive is successfully retrieved
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter is of the wrong type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidStateError, if ArchiveFile is not open.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidAccessError, if the file mode is <var>"w"</var> or <var>"a"</var>.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCallback(error) {
+     console.log(error);
+ }
+
+ function getEntriesSuccess(entries) {
+     console.log("Entries length: " + entries.length);
+     for (var i=0; i &lt; entries.length; i++) {
+         console.log(entries[i].name);
+     }
+ }
+
+ function openSuccess(archive) {
+     archive.getEntries(getEntriesSuccess, errorCallback);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", openSuccess, errorCallback);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ArchiveFile::getEntryByName">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile::getEntryByName"></a><code><b><span class="methodName">getEntryByName</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Retrieves information about <em>ArchiveFileEntry</em> with the specified name in <em>ArchiveFile</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getEntryByName(DOMString name, <a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If <em>ArchiveFileEntry</em> with the specific name does not exist              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">name</span>: 
+ Name of <em>ArchiveFileEntry</em> to extract
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when a file matched with the given name is found
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter is of the wrong type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidStateError, if ArchiveFile is not opened.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidAccessError, if the file mode is <var>"w"</var> or <var>"a"</var>.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCallback(error) {
+     console.log(error);
+ }
+
+ function getEntrySuccess(entry) {
+     console.log("Entry: " + entry.name + " size: " + entry.size);
+ }
+
+ function openSuccess(archive) {
+     archive.getEntryByName("arch/my_file.txt", getEntrySuccess, errorCallback);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", openSuccess);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ArchiveFile::close">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFile::close"></a><code><b><span class="methodName">close</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Closes the <em>ArchiveFile</em>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void close();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Call this method when the archive file is not used any more. Once you call this method, the archive file object will not be available and any further operation attempt results in an <em>InvalidStateError</em>.<br>Calling <em>close()</em> on an archive file object which is already closed does not raise any exception.
+            </p>
+           </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFileEntry">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntry"></a><h3>2.6. ArchiveFileEntry</h3>
+<div class="brief">
+ The ArchiveFileEntry interface provides access to ArchiveFile member information and file data.
+          </div>
+<pre class="webidl prettyprint">    interface ArchiveFileEntry {
+        readonly attribute DOMString name;
+
+        readonly attribute unsigned long long size;
+
+        readonly attribute unsigned long long? compressedSize;
+
+        readonly attribute Date modified;
+
+        long extract(<a href="#FileReference">FileReference</a> destinationDirectory,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                     optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                     optional boolean? stripName,
+                     optional boolean? overwrite) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ArchiveFileEntry::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ Path identifying the member file of ArchiveFile. <br>This is a full path with the directory and base name of the entry.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ArchiveFileEntry::size">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">size</span></span><div class="brief">
+ Original size of the member file [bytes].
+            </div>
+<div class="description">
+            <p>
+If the ArchiveFileEntry member is a folder, the attribute value will be the sum of sizes of all files in this directory.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ArchiveFileEntry::compressedSize">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">compressedSize</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Amount of storage space used by the member file, which may be compressed, in ArchiveFile [bytes].
+            </div>
+<div class="description">
+            <p>
+If ArchiveFileEntry member is a folder, the attribute will be sum of the sizes of all files in this directory.
+            </p>
+            <p>
+Until a new entry is added to the archive, the compressedSize is <var>null</var>            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ArchiveFileEntry::modified">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">modified</span></span><div class="brief">
+ Date and time stored with the member file.
+This is usually the modification date of the file.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFileEntry::extract">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntry::extract"></a><code><b><span class="methodName">extract</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Extracts ArchiveFileEntry to the given location.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long extract(<a href="#FileReference">FileReference</a> destinationDirectory, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress, optional boolean? stripName, optional boolean? overwrite);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the given <em>destinationDirectory</em> does not exist              </li>
+              <li>
+InvalidModificationError: If the file already exists and overwriting is not allowed              </li>
+              <li>
+IOError: If destinationDirectory can not be written to              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">destinationDirectory</span>: 
+ Directory where extracted files will be stored <br>Given as a virtual path or a <em>File</em> object representing a directory.
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an extract operation is completed
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">onprogress</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked while the extracting is in progress <br>The onprogress callback is called at least once. It will be invoked for every extracted file.
+                </li>
+          <li class="param">
+<span class="name">stripName</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Flag which determines if directory name part of <em>ArchiveFileEntry</em> should be removed or preserved <br>The default value is <var>false</var>. If it is <var>true</var>, use only base name (part after last slash) as a target path.
+                </li>
+          <li class="param">
+<span class="name">overwrite</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Flag which determines if it possible to overwrite files when the decompressed file already exists in this destination location <br>The default value is <var>false</var>.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Task ID which can be used to cancel the operation with abort()
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if parameter is of the wrong type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if directory parameter does not represent a directory.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCallback(error) {
+     console.log(error);
+ }
+
+ function extractSuccessCallback() {
+     console.log("done");
+ }
+
+ function getEntrySuccess(entry) {
+     entry.extract("downloads/extract", extractSuccessCallback, errorCallback);
+ }
+
+ function openSuccess(archive) {
+     archive.getEntryByName("my_file.txt", getEntrySuccess, errorCallback);
+ }
+
+ tizen.archive.open("downloads/some_archive.zip", "r", openSuccess, errorCallback);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFileSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileSuccessCallback"></a><h3>2.7. ArchiveFileSuccessCallback</h3>
+<div class="brief">
+ The ArchiveFileSuccessCallback interface provides a SuccessCallback for the ArchiveManager::open() method.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileSuccessCallback {
+        void onsuccess(<a href="#ArchiveFile">ArchiveFile</a> archive);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFileSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the archive file with the given name is ready to use.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ArchiveFile">ArchiveFile</a> archive);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">archive</span>: 
+ Archive file object
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFileEntrySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntrySuccessCallback"></a><h3>2.8. ArchiveFileEntrySuccessCallback</h3>
+<div class="brief">
+ The ArchiveFileEntrySuccessCallback interface provides a SuccessCallback for the ArchiveFile::getEntryByName() method.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileEntrySuccessCallback {
+        void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a> entry);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFileEntrySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntrySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the file with the given name through getEntryByName() is found successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a> entry);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">entry</span>: 
+ ArchiveFileEntry object representing the file found in ArchiveFile
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFileEntryArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntryArraySuccessCallback"></a><h3>2.9. ArchiveFileEntryArraySuccessCallback</h3>
+<div class="brief">
+ The ArchiveFileEntryArraySuccessCallback interface provides a SuccessCallback for the ArchiveFile::getEntries() method.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileEntryArraySuccessCallback {
+        void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a>[] entries);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFileEntryArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileEntryArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when all file entries in the archive file are retrieved successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a>[] entries);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">entries</span>: 
+ List of ArchiveFileEntry objects found in ArchiveFile
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ArchiveFileProgressCallback">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileProgressCallback"></a><h3>2.10. ArchiveFileProgressCallback</h3>
+<div class="brief">
+ The ArchiveFileProgressCallback interface provides a ProgressCallback for ArchiveFile and ArchiveFileEntry methods.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileProgressCallback {
+        void onprogress(long operationIdentifier, double value, DOMString filename);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ArchiveFileProgressCallback::onprogress">
+<a class="backward-compatibility-anchor" name="::Archive::ArchiveFileProgressCallback::onprogress"></a><code><b><span class="methodName">onprogress</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called to signal compressing or extracting operation progress.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onprogress(long operationIdentifier, double value, DOMString filename);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">operationIdentifier</span>: 
+ Operation identifier for which progress is reported
+                </li>
+          <li class="param">
+<span class="name">value</span>: 
+ Progress of the operation, value between 0.0 and 1.0 where 1.0 is 100% progress
+                </li>
+          <li class="param">
+<span class="name">filename</span>: 
+ Name of the compressed or extracted file
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Archive {
+
+    typedef (DOMString or <a href="filesystem.html#File">File</a>) FileReference;
+
+    enum ArchiveCompressionLevel {"STORE", "FAST", "NORMAL", "BEST"};
+
+    [NoInterfaceObject] interface ArchiveManagerObject {
+        readonly attribute <a href="#ArchiveManager">ArchiveManager</a> archive;
+    };
+
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ArchiveManagerObject">ArchiveManagerObject</a>;
+
+    dictionary ArchiveFileOptions {
+        boolean overwrite;
+
+    };
+
+    dictionary ArchiveFileEntryOptions {
+        DOMString destination;
+
+        boolean stripSourceDirectory;
+
+        <a href="#ArchiveCompressionLevel">ArchiveCompressionLevel</a> compressionLevel;
+
+    };
+
+    [NoInterfaceObject] interface ArchiveManager {
+        long open(<a href="#FileReference">FileReference</a> file,
+                  <a href="filesystem.html#FileMode">FileMode</a> mode,
+                  <a href="#ArchiveFileSuccessCallback">ArchiveFileSuccessCallback</a> onsuccess,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                  optional <a href="#ArchiveFileOptions">ArchiveFileOptions</a>? options) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void abort(long operationIdentifier) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    interface ArchiveFile {
+        readonly attribute <a href="filesystem.html#FileMode">FileMode</a> mode;
+
+        readonly attribute unsigned long long? decompressedSize;
+
+        long add(<a href="#FileReference">FileReference</a> sourceFile,
+                 optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                 optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                 optional <a href="#ArchiveFileEntryOptions">ArchiveFileEntryOptions</a>? options) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long extractAll(<a href="#FileReference">FileReference</a> destinationDirectory,
+                        optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                        optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                        optional boolean? overwrite) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long getEntries(<a href="#ArchiveFileEntryArraySuccessCallback">ArchiveFileEntryArraySuccessCallback</a> onsuccess,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long getEntryByName(DOMString name,
+                            <a href="#ArchiveFileEntrySuccessCallback">ArchiveFileEntrySuccessCallback</a> onsuccess,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void close() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    interface ArchiveFileEntry {
+        readonly attribute DOMString name;
+
+        readonly attribute unsigned long long size;
+
+        readonly attribute unsigned long long? compressedSize;
+
+        readonly attribute Date modified;
+
+        long extract(<a href="#FileReference">FileReference</a> destinationDirectory,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                     optional <a href="#ArchiveFileProgressCallback">ArchiveFileProgressCallback</a>? onprogress,
+                     optional boolean? stripName,
+                     optional boolean? overwrite) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileSuccessCallback {
+        void onsuccess(<a href="#ArchiveFile">ArchiveFile</a> archive);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileEntrySuccessCallback {
+        void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a> entry);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileEntryArraySuccessCallback {
+        void onsuccess(<a href="#ArchiveFileEntry">ArchiveFileEntry</a>[] entries);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ArchiveFileProgressCallback {
+        void onprogress(long operationIdentifier, double value, DOMString filename);
+    };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/content.html b/org.tizen.web.apireference/html/device_api/tv/tizen/content.html
new file mode 100644 (file)
index 0000000..c389820
--- /dev/null
@@ -0,0 +1,3556 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Content API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Content">
+<div class="title"><h1>Content API</h1></div>
+<div class="brief">
+ The Content API provides functionality to discover content such as images, videos, music, or others.
+        </div>
+<div class="description">
+        <p>
+It is possible to search for specific content using filters.
+The API also supports setting the attributes of specific content.
+        </p>
+        <p>
+For more information on the Content features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/content_guide/mediacontent.htm">Content Guide</a>.
+        </p>
+        <p>
+For more information about how to use the playlist feature of the Content API, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/content_guide/playlist.htm">Playlist Guide</a>.
+        </p>
+        <p>
+Playlist functionality has been added in Tizen 2.3.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#ContentDirectoryStorageType">ContentDirectoryStorageType</a>
+</li>
+<li>
+                    1.2. <a href="#ContentType">ContentType</a>
+</li>
+<li>
+                    1.3. <a href="#AudioContentLyricsType">AudioContentLyricsType</a>
+</li>
+<li>
+                    1.4. <a href="#ImageContentOrientation">ImageContentOrientation</a>
+</li>
+<li>
+                    1.5. <a href="#ContentId">ContentId</a>
+</li>
+<li>
+                    1.6. <a href="#ContentDirectoryId">ContentDirectoryId</a>
+</li>
+<li>
+                    1.7. <a href="#PlaylistId">PlaylistId</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#ContentManagerObject">ContentManagerObject</a>
+</li>
+<li>2.2. <a href="#ContentManager">ContentManager</a>
+</li>
+<li>2.3. <a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a>
+</li>
+<li>2.4. <a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a>
+</li>
+<li>2.5. <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>
+</li>
+<li>2.6. <a href="#ContentChangeCallback">ContentChangeCallback</a>
+</li>
+<li>2.7. <a href="#ContentDirectory">ContentDirectory</a>
+</li>
+<li>2.8. <a href="#Content">Content</a>
+</li>
+<li>2.9. <a href="#VideoContent">VideoContent</a>
+</li>
+<li>2.10. <a href="#AudioContentLyrics">AudioContentLyrics</a>
+</li>
+<li>2.11. <a href="#AudioContent">AudioContent</a>
+</li>
+<li>2.12. <a href="#ImageContent">ImageContent</a>
+</li>
+<li>2.13. <a href="#PlaylistItem">PlaylistItem</a>
+</li>
+<li>2.14. <a href="#Playlist">Playlist</a>
+</li>
+<li>2.15. <a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a>
+</li>
+<li>2.16. <a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a>
+</li>
+<li>2.17. <a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#ContentManagerObject">ContentManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ContentManager">ContentManager</a></td>
+<td>
+<div>void <a href="#ContentManager::update">update</a> (<a href="#Content">Content</a> content)</div>
+<div>void <a href="#ContentManager::updateBatch">updateBatch</a> (<a href="#Content">Content</a>[] contents, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ContentManager::getDirectories">getDirectories</a> (<a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ContentManager::find">find</a> (<a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#ContentDirectoryId">ContentDirectoryId</a>? directoryId, optional <a href="tizen.html#AbstractFilter">AbstractFilter</a>? filter, optional <a href="tizen.html#SortMode">SortMode</a>? sortMode, optional unsigned long? count, optional unsigned long? offset)</div>
+<div>void <a href="#ContentManager::scanFile">scanFile</a> (DOMString contentURI, optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ContentManager::scanDirectory">scanDirectory</a> (DOMString contentDirURI, boolean recursive, optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ContentManager::cancelScanDirectory">cancelScanDirectory</a> (DOMString contentDirURI)</div>
+<div>void <a href="#ContentManager::setChangeListener">setChangeListener</a> (<a href="#ContentChangeCallback">ContentChangeCallback</a> changeCallback)</div>
+<div>void <a href="#ContentManager::unsetChangeListener">unsetChangeListener</a> ()</div>
+<div>void <a href="#ContentManager::getPlaylists">getPlaylists</a> (<a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ContentManager::createPlaylist">createPlaylist</a> (DOMString name, <a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#Playlist">Playlist</a>? sourcePlaylist)</div>
+<div>void <a href="#ContentManager::removePlaylist">removePlaylist</a> (<a href="#PlaylistId">PlaylistId</a> id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a></td>
+<td><div>void <a href="#ContentArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#Content">Content</a>[] contents)</div></td>
+</tr>
+<tr>
+<td><a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a></td>
+<td><div>void <a href="#ContentDirectoryArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#ContentDirectory">ContentDirectory</a>[] directories)</div></td>
+</tr>
+<tr>
+<td><a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a></td>
+<td><div>void <a href="#ContentScanSuccessCallback::onsuccess">onsuccess</a> (DOMString uri)</div></td>
+</tr>
+<tr>
+<td><a href="#ContentChangeCallback">ContentChangeCallback</a></td>
+<td>
+<div>void <a href="#ContentChangeCallback::oncontentadded">oncontentadded</a> (<a href="#Content">Content</a> content)</div>
+<div>void <a href="#ContentChangeCallback::oncontentupdated">oncontentupdated</a> (<a href="#Content">Content</a> content)</div>
+<div>void <a href="#ContentChangeCallback::oncontentremoved">oncontentremoved</a> (<a href="#ContentId">ContentId</a> id)</div>
+<div>void <a href="#ContentChangeCallback::oncontentdiradded">oncontentdiradded</a> (<a href="#ContentDirectory">ContentDirectory</a> contentDir)</div>
+<div>void <a href="#ContentChangeCallback::oncontentdirupdated">oncontentdirupdated</a> (<a href="#ContentDirectory">ContentDirectory</a> contentDir)</div>
+<div>void <a href="#ContentChangeCallback::oncontentdirremoved">oncontentdirremoved</a> (<a href="#ContentDirectoryId">ContentDirectoryId</a> id)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ContentDirectory">ContentDirectory</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#Content">Content</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#VideoContent">VideoContent</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AudioContentLyrics">AudioContentLyrics</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AudioContent">AudioContent</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ImageContent">ImageContent</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#PlaylistItem">PlaylistItem</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#Playlist">Playlist</a></td>
+<td>
+<div>void <a href="#Playlist::add">add</a> (<a href="#Content">Content</a> item)</div>
+<div>void <a href="#Playlist::addBatch">addBatch</a> (<a href="#Content">Content</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#Playlist::remove">remove</a> (<a href="#PlaylistItem">PlaylistItem</a> item)</div>
+<div>void <a href="#Playlist::removeBatch">removeBatch</a> (<a href="#PlaylistItem">PlaylistItem</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#Playlist::get">get</a> (<a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional long? count, optional long? offset)</div>
+<div>void <a href="#Playlist::setOrder">setOrder</a> (<a href="#PlaylistItem">PlaylistItem</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#Playlist::move">move</a> (<a href="#PlaylistItem">PlaylistItem</a> item, long delta, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a></td>
+<td><div>void <a href="#PlaylistArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#Playlist">Playlist</a>[] playlists)</div></td>
+</tr>
+<tr>
+<td><a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a></td>
+<td><div>void <a href="#PlaylistSuccessCallback::onsuccess">onsuccess</a> (<a href="#Playlist">Playlist</a> playlist)</div></td>
+</tr>
+<tr>
+<td><a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a></td>
+<td><div>void <a href="#PlaylistItemArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#PlaylistItem">PlaylistItem</a>[] items)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="ContentDirectoryStorageType">
+<a class="backward-compatibility-anchor" name="::Content::ContentDirectoryStorageType"></a><h3>1.1. ContentDirectoryStorageType</h3>
+<pre class="webidl prettyprint">  enum ContentDirectoryStorageType { "INTERNAL", "EXTERNAL" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+Defines whether a content directory is stored on internal or external storage (such as a removable memory card).
+          </p>
+         </div>
+</div>
+<div class="enum" id="ContentType">
+<a class="backward-compatibility-anchor" name="::Content::ContentType"></a><h3>1.2. ContentType</h3>
+<pre class="webidl prettyprint">  enum ContentType { "IMAGE", "VIDEO", "AUDIO", "OTHER" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+Defines the type of content such as an image, video, audio, or any other.
+          </p>
+         </div>
+<p><span class="remark"> Remark : </span>
+ "OTHER" type is added since Tizen 2.1.
+          </p>
+</div>
+<div class="enum" id="AudioContentLyricsType">
+<a class="backward-compatibility-anchor" name="::Content::AudioContentLyricsType"></a><h3>1.3. AudioContentLyricsType</h3>
+<pre class="webidl prettyprint">  enum AudioContentLyricsType { "SYNCHRONIZED", "UNSYNCHRONIZED" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+Defines whether the lyrics supplied with an audio file is time-synchronized.
+          </p>
+         </div>
+</div>
+<div class="enum" id="ImageContentOrientation">
+<a class="backward-compatibility-anchor" name="::Content::ImageContentOrientation"></a><h3>1.4. ImageContentOrientation</h3>
+<pre class="webidl prettyprint">  enum ImageContentOrientation { "NORMAL", "FLIP_HORIZONTAL", "ROTATE_180", "FLIP_VERTICAL", "TRANSPOSE", "ROTATE_90", "TRANSVERSE", "ROTATE_270" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+Defines the orientation of an image.
+          </p>
+         </div>
+</div>
+<div class="typedef" id="ContentId">
+<a class="backward-compatibility-anchor" name="::Content::ContentId"></a><h3>1.5. ContentId</h3>
+<div class="brief">
+ Content identifier.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString ContentId;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+</div>
+<div class="typedef" id="ContentDirectoryId">
+<a class="backward-compatibility-anchor" name="::Content::ContentDirectoryId"></a><h3>1.6. ContentDirectoryId</h3>
+<div class="brief">
+ Content directory identifier.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString ContentDirectoryId;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+</div>
+<div class="typedef" id="PlaylistId">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistId"></a><h3>1.7. PlaylistId</h3>
+<div class="brief">
+ Playlist identifier.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString PlaylistId;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="ContentManagerObject">
+<a class="backward-compatibility-anchor" name="::Content::ContentManagerObject"></a><h3>2.1. ContentManagerObject</h3>
+<div class="brief">
+ Defines what is instantiated by the Tizen object.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ContentManagerObject {
+    readonly attribute <a href="#ContentManager">ContentManager</a> content;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ContentManagerObject">ContentManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.content </em>object allows accessing the functionality of the Content module.
+          </p>
+         </div>
+</div>
+<div class="interface" id="ContentManager">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager"></a><h3>2.2. ContentManager</h3>
+<div class="brief">
+ The ContentManager interface provides operations to retrieve and manipulate content.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ContentManager {
+
+    void update(<a href="#Content">Content</a> content) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void updateBatch(<a href="#Content">Content</a>[] contents,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getDirectories(<a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void find(<a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a> successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+              optional <a href="#ContentDirectoryId">ContentDirectoryId</a>? directoryId,
+              optional <a href="tizen.html#AbstractFilter">AbstractFilter</a>? filter,
+              optional <a href="tizen.html#SortMode">SortMode</a>? sortMode,
+              optional unsigned long? count,
+              optional unsigned long? offset) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+
+    void scanFile(DOMString contentURI,
+                  optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void scanDirectory(DOMString contentDirURI,
+                       boolean recursive,
+                       optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void cancelScanDirectory(DOMString contentDirURI) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setChangeListener(<a href="#ContentChangeCallback">ContentChangeCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getPlaylists(<a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a> successCallback,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void createPlaylist(DOMString name,
+                        <a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                        optional <a href="#Playlist">Playlist</a>? sourcePlaylist) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removePlaylist(<a href="#PlaylistId">PlaylistId</a> id,
+                        optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ContentManager::update">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::update"></a><code><b><span class="methodName">update</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Updates attributes of content in the content database synchronously.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void update(<a href="#Content">Content</a> content);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+When an application has changed some attributes of the content, this method allows
+writing it back to the content database.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<p><span class="remark"> Remark : </span>
+ The <em>editableAttributes</em> in the <em>Content</em> interface indicates
+the attributes that can be changed.
+This API does not support updating the metadata of a file.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">content</span>: 
+ The content to update.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters
+contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Assume the content is a Content object as a result of find method.
+ // Check the description is editable, and then set a description.
+ if (content.editableAttributes.indexOf("description") &gt;= 0) {
+     content.description = "Sample content";
+ }
+ tizen.content.update(content);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::updateBatch">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::updateBatch"></a><code><b><span class="methodName">updateBatch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Updates a batch of content attributes in the content database asynchronously.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void updateBatch(<a href="#Content">Content</a>[] contents, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+When an application has changed any attributes in the array of content, this method allows writing them
+back to the content database.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError: In any other error case.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<p><span class="remark"> Remark : </span>
+ The <em>editableAttributes</em> in the <em>Content</em> interface indicates
+the attributes that can be changed.
+This API does not support updating the metadata of a file.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contents</span>: 
+ Array of content to change.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when attributes have been changed.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example increases rating of an content by 1
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function successCB() {
+     console.log('Attributes set successfully');
+ }
+
+ // Assume the content is a Content object as a result of find method.
+ // Check the rating is editable, and then increase by 1.
+ if (content.editableAttributes.indexOf("rating") &gt;= 0) {
+     content.rating++;
+ }
+ tizen.content.updateBatch([content], successCB, errorCB);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::getDirectories">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::getDirectories"></a><code><b><span class="methodName">getDirectories</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a list of content directories.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getDirectories(<a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+This method returns (via callback) a list of content directory objects. To obtain a list of contents
+in a specific directory, use the find() method with the directory ID.
+            </p>
+            <p>
+The errorCallback is launched with this error type:
+            </p>
+            <ul>
+              <li>
+UnknownError: In any other error case.              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked when content directories have been retrieved successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example retrieves content directories in the storage.
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function printDirectory(directory, index, directories) {
+     console.log('directoryURI: ' + directory.directoryURI + ' Title: ' + directory.title);
+ }
+ function getDirectoriesCB(directories) {
+     directories.forEach(printDirectory);
+ }
+
+ tizen.content.getDirectories(getDirectoriesCB, errorCB);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::find">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::find"></a><code><b><span class="methodName">find</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Finds contents that satisfy the conditions set by a filter.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void find(<a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#ContentDirectoryId">ContentDirectoryId</a>? directoryId, optional <a href="tizen.html#AbstractFilter">AbstractFilter</a>? filter, optional <a href="tizen.html#SortMode">SortMode</a>? sortMode, optional unsigned long? count, optional unsigned long? offset);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+This method allows searching based on a supplied filter. For more details on AbstractFilter, see the
+<a href="tizen.html#::Tizen::AbstractFilter">Tizen</a> module. The filter allows precise searching such
+as "return all songs by artist U2, ordered by name".
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError: In any other error case.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked when content has been retrieved.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred.
+                </li>
+          <li class="param">
+<span class="name">directoryId</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Directory ID that is used to select content to retrieve in a specified directory.
+                </li>
+          <li class="param">
+<span class="name">filter</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Filter that is used to select content to retrieve.
+                </li>
+          <li class="param">
+<span class="name">sortMode</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Used to determine the sort order in which the contents are returned.
+                </li>
+          <li class="param">
+<span class="name">count</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Maximum amount of content to return. If <em>count</em> is negative, InvalidValuesError is reported through the errorCallback.
+                </li>
+          <li class="param">
+<span class="name">offset</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Offset of the result set. If <em>offset</em> is a negative number, InvalidValuesError is reported through the errorCallback.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example retrieves all songs from the album "The Joshua Tree", by artist "U2", ordered by the name.
+ var count = 100;
+ var offset = 0;
+ var sortMode = new tizen.SortMode("name", "ASC");
+ var artistFilter = new tizen.AttributeFilter("artists", "EXACTLY", "U2");
+ var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree");
+ var filter = new tizen.CompositeFilter("INTERSECTION", [albumFilter, artistFilter]);
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function printContent(content, index, contents) {
+     console.log('Name: ' + content.name + ' Title: ' + content.title + 'URL: ' + content.contentURI + 'MIME: ' + content.mimeType);
+ }
+
+ function findCB(contents) {
+     console.log('The Joshua Tree by U2:');
+     contents.forEach(printContent);
+     // Increase the offset as much as the count and then find content again.
+     if (contents.length === count) {
+         offset += count;
+         tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
+     }
+ }
+
+ tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::scanFile">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::scanFile"></a><code><b><span class="methodName">scanFile</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Scans a file to create or update content in the content database.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void scanFile(DOMString contentURI, optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+When an application creates or updates content, this method allows to scan it
+and then insert or update the content in the content database.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error detected asynchronously              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contentURI</span>: 
+ URI of content to scan.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when scanning has been completed.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters
+contain an invalid value (e.g. given <em>contentURI</em> is an empty string).
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example scan 'tizen.jpg' in media directory
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function successCB(path) {
+     console.log('scanning is completed');
+ }
+
+ tizen.filesystem.resolve("images/tizen.jpg", function(imageFile) {
+     tizen.content.scanFile(imageFile.toURI(), successCB, errorCB);
+ });
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::scanDirectory">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::scanDirectory"></a><code><b><span class="methodName">scanDirectory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Scans a content directory to create or update content in the content database.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void scanDirectory(DOMString contentDirURI, boolean recursive, optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+When an application creates or updates content in a directory, this method allows
+to scan it and then insert or update the content in the content database.
+If a directory must not be scanned, the file <em>.scan_ignore</em> has to be created in it.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error detected asynchronously              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contentDirURI</span>: 
+ URI of a content directory to scan.
+                </li>
+          <li class="param">
+<span class="name">recursive</span>: 
+ Used to determine whether the function makes recursive scan or not.<br>If set to <var>true</var>, the function makes recursive scan.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when scanning has been completed.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters
+contain an invalid value (e.g. given <em>contentDirURI</em> is an empty string).
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example scans 'images' directory
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function successCB(path) {
+     console.log('scanning is completed');
+ }
+
+ tizen.filesystem.resolve("images", function(directory) {
+     tizen.content.scanDirectory(directory.toURI(), true, successCB, errorCB);
+ });
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::cancelScanDirectory">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::cancelScanDirectory"></a><code><b><span class="methodName">cancelScanDirectory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Cancels a scan process of a content directory.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void cancelScanDirectory(DOMString contentDirURI);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+When a scan of a given directory is running it may be canceled by this function.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contentDirURI</span>: 
+ URI of a content directory with a scan process running which is canceled.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters
+contain an invalid value (e.g. given <em>contentDirURI</em> is an empty string).
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.content.cancelScanDirectory(directory.toURI());
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::setChangeListener">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::setChangeListener"></a><code><b><span class="methodName">setChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets a listener to receive notifications of content changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setChangeListener(<a href="#ContentChangeCallback">ContentChangeCallback</a> changeCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">changeCallback</span>: 
+ A callback to be invoked for receiving a content change notification.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var listener= {
+    oncontentadded: function(content) {
+        console.log(content.contentURI + ' content is added');
+    },
+    oncontentupdated: function(content) {
+        console.log(content.contentURI + ' content is updated');
+    },
+    oncontentremoved: function(id) {
+        console.log(id + ' is removed');
+    },
+    oncontentdiradded: function(contentDir) {
+        console.log(contentDir.directoryURI + ' content directory is added');
+    },
+    oncontentdirupdated: function(contentDir) {
+        console.log(contentDir.directoryURI + ' content directory is updated');
+    },
+    oncontentdirremoved: function(id) {
+        console.log(id + ' directory is removed');
+    }
+ };
+
+ // Registers to be notified when the content changes
+ tizen.content.setChangeListener(listener);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::unsetChangeListener">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::unsetChangeListener"></a><code><b><span class="methodName">unsetChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unsets the listener to unsubscribe from receiving notifications for content changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unsetChangeListener();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.read
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.content.unsetChangeListener();
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::getPlaylists">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::getPlaylists"></a><code><b><span class="methodName">getPlaylists</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets all playlists.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getPlaylists(<a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked when retrieving a list of all playlists completes
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists;
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     var cur, i;
+     gPlaylists = playlists;
+     for(i = 0; i &lt; gPlaylists.length; ++i) {
+         cur = gPlaylists[i];
+         console.log("[" + i + "] name:" + cur.name + " num tracks:" +
+                 cur.numberOfTracks);
+     }
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::createPlaylist">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::createPlaylist"></a><code><b><span class="methodName">createPlaylist</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Creates a new playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void createPlaylist(DOMString name, <a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#Playlist">Playlist</a>? sourcePlaylist);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If <var>name</var> is empty or is same as the name of an existing playlist              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">name</span>: 
+ Name of the new playlist (case sensitive)
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked to provide a created playlist
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">sourcePlaylist</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Optional existing playlist to clone
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists;
+ var gPlaylist;
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err.message);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     var cur, i;
+     gPlaylists = playlists;
+     for(i = 0; i &lt; gPlaylists.length; ++i) {
+         cur = gPlaylists[i];
+         console.log("[" + i + "] name:" + cur.name + " num tracks:" +
+                 cur.numberOfTracks);
+     }
+ }
+
+ function findSuccess(contents) {
+     if (contents.length &gt; 0) {
+         gPlaylist.add(contents[0]);
+     }
+
+     tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+ }
+
+ function findFail(err) {
+     console.log("find FAIL: " + err.message);
+ }
+
+ function createSuccess(playlist) {
+     console.log("create SUCCESS");
+
+     gPlaylist = playlist;
+     tizen.content.find(findSuccess, findFail, null,
+             new tizen.AttributeFilter("type", "EXACTLY", "AUDIO"));
+ }
+
+ function createFail(err) {
+     console.log("create FAIL: " + err.message);
+ }
+
+ tizen.content.createPlaylist("My new playlist", createSuccess, createFail);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ContentManager::removePlaylist">
+<a class="backward-compatibility-anchor" name="::Content::ContentManager::removePlaylist"></a><code><b><span class="methodName">removePlaylist</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes a playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removePlaylist(<a href="#PlaylistId">PlaylistId</a> id, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ Identifier of a playlist to remove
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when removing a playlist completes
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists;
+
+ function removePlaylistSuccess() {
+     console.log("removePlaylist SUCCESS");
+ }
+
+ function removePlaylistFail(err) {
+     console.log("removePlaylist FAIL: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     var cur, i;
+     gPlaylists = playlists;
+     for(i = 0; i &lt; gPlaylists.length; ++i) {
+         cur = gPlaylists[i];
+         console.log("[" + i + "] name:" + cur.name + " num tracks:" +
+                 cur.numberOfTracks);
+     }
+
+     if(gPlaylists.length &lt; 1) {
+         console.log("Please add at least 1 playlist");
+         return;
+     }
+
+     console.log("will remove playlist at index [0] name:"
+             + gPlaylists[0].name);
+
+     tizen.content.removePlaylist(gPlaylists[0].id, removePlaylistSuccess,
+             removePlaylistFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ContentArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::ContentArraySuccessCallback"></a><h3>2.3. ContentArraySuccessCallback</h3>
+<div class="brief">
+ The callback function used to return a list of content objects.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface ContentArraySuccessCallback {
+    void onsuccess(<a href="#Content">Content</a>[] contents);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ContentArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::ContentArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the list of content is retrieved successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Content">Content</a>[] contents);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contents</span>: 
+ The array of <em>Content </em>objects.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ContentDirectoryArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::ContentDirectoryArraySuccessCallback"></a><h3>2.4. ContentDirectoryArraySuccessCallback</h3>
+<div class="brief">
+ The callback function used to return a list of ContentDirectory objects.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface ContentDirectoryArraySuccessCallback {
+    void onsuccess(<a href="#ContentDirectory">ContentDirectory</a>[] directories);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ContentDirectoryArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::ContentDirectoryArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the directory list is retrieved successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ContentDirectory">ContentDirectory</a>[] directories);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">directories</span>: 
+ The array of <em>ContentDirectory </em>objects.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ContentScanSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::ContentScanSuccessCallback"></a><h3>2.5. ContentScanSuccessCallback</h3>
+<div class="brief">
+ The callback function used to return content or content directory to scan.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface ContentScanSuccessCallback {
+    void onsuccess(DOMString uri);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ContentScanSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::ContentScanSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the scanning has been completed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(DOMString uri);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="remark"> Remark : </span>
+ This callback is also invoked upon success of the <a href="content.html#ContentManager::scanDirectory">scanDirectory()</a> method since Tizen 2.4. Therefore, the <em>uri</em> parameter may now also be the URI of a <em>ContentDirectory</em> object.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">uri</span>: 
+ The URI of the <a href="content.html#Content">Content</a> or the <a href="content.html#ContentDirectory">ContentDirectory</a> object.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ContentChangeCallback">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback"></a><h3>2.6. ContentChangeCallback</h3>
+<div class="brief">
+ This interface specifies a set of methods that are invoked every time a content change occurs.
+          </div>
+<pre class="webidl prettyprint">  [Callback, NoInterfaceObject] interface ContentChangeCallback {
+    void oncontentadded(<a href="#Content">Content</a> content);
+
+    void oncontentupdated(<a href="#Content">Content</a> content);
+
+    void oncontentremoved(<a href="#ContentId">ContentId</a> id);
+
+    void oncontentdiradded(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+
+    void oncontentdirupdated(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+
+    void oncontentdirremoved(<a href="#ContentDirectoryId">ContentDirectoryId</a> id);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ContentChangeCallback::oncontentadded">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentadded"></a><code><b><span class="methodName">oncontentadded</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when content is added.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentadded(<a href="#Content">Content</a> content);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">content</span>: 
+ The content to add.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ContentChangeCallback::oncontentupdated">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentupdated"></a><code><b><span class="methodName">oncontentupdated</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when content is updated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentupdated(<a href="#Content">Content</a> content);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">content</span>: 
+ The content to update.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ContentChangeCallback::oncontentremoved">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentremoved"></a><code><b><span class="methodName">oncontentremoved</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when content is removed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentremoved(<a href="#ContentId">ContentId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The ID of removed content.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ContentChangeCallback::oncontentdiradded">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentdiradded"></a><code><b><span class="methodName">oncontentdiradded</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a content directory is added.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentdiradded(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contentDir</span>: 
+ The added content directory.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ContentChangeCallback::oncontentdirupdated">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentdirupdated"></a><code><b><span class="methodName">oncontentdirupdated</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a content directory is updated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentdirupdated(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">contentDir</span>: 
+ The content directory after the update operation.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="ContentChangeCallback::oncontentdirremoved">
+<a class="backward-compatibility-anchor" name="::Content::ContentChangeCallback::oncontentdirremoved"></a><code><b><span class="methodName">oncontentdirremoved</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a content directory is removed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncontentdirremoved(<a href="#ContentDirectoryId">ContentDirectoryId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The ID of removed content directory.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ContentDirectory">
+<a class="backward-compatibility-anchor" name="::Content::ContentDirectory"></a><h3>2.7. ContentDirectory</h3>
+<div class="brief">
+ The ContentDirectory interface provides access to properties of a content directory.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ContentDirectory {
+
+    readonly attribute <a href="#ContentDirectoryId">ContentDirectoryId</a> id;
+
+    readonly attribute DOMString directoryURI;
+
+    readonly attribute DOMString title;
+
+    readonly attribute <a href="#ContentDirectoryStorageType">ContentDirectoryStorageType</a> storageType;
+
+    readonly attribute Date? modifiedDate;
+
+   };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ContentDirectory::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ContentDirectoryId </span><span class="name">id</span></span><div class="brief">
+ The opaque content directory identifier.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ContentDirectory::directoryURI">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">directoryURI</span></span><div class="brief">
+ The directory path on the device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ContentDirectory::title">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">title</span></span><div class="brief">
+ The directory name.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ContentDirectory::storageType">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ContentDirectoryStorageType </span><span class="name">storageType</span></span><div class="brief">
+ The type of device storage.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ContentDirectory::modifiedDate">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">modifiedDate</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The last modified date for a directory.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="Content">
+<a class="backward-compatibility-anchor" name="::Content::Content"></a><h3>2.8. Content</h3>
+<div class="brief">
+ The Content interface provides access to the properties of a content item.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface Content {
+
+    readonly attribute DOMString[] editableAttributes;
+
+    readonly attribute <a href="#ContentId">ContentId</a> id;
+
+    attribute DOMString name;
+
+    readonly attribute <a href="#ContentType">ContentType</a> type;
+
+    readonly attribute DOMString mimeType;
+
+    readonly attribute DOMString title;
+
+    readonly attribute DOMString contentURI;
+
+    readonly attribute DOMString[]? thumbnailURIs;
+
+    readonly attribute Date? releaseDate;
+
+    readonly attribute Date? modifiedDate;
+
+    readonly attribute unsigned long size;
+
+    attribute DOMString? description;
+
+    attribute unsigned long rating;
+
+    attribute boolean isFavorite;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="Content::editableAttributes">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">editableAttributes</span></span><div class="brief">
+ The list of attributes that are editable to the local backend using the update() or updateBatch() method.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ContentId </span><span class="name">id</span></span><div class="brief">
+ The opaque content identifier.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::name">
+<span class="attrName"><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ The content name. The initial value is the file name of the content.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="Content::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ContentType </span><span class="name">type</span></span><div class="brief">
+ The content type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::mimeType">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">mimeType</span></span><div class="brief">
+ The content MIME type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::title">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">title</span></span><div class="brief">
+ The content title.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::contentURI">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">contentURI</span></span><div class="brief">
+ The URI to access the content.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::thumbnailURIs">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">thumbnailURIs</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The array of content thumbnail URIs.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::releaseDate">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">releaseDate</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The date when content has been released publicly. If only the release year is known, then the month and date are set to January and 1st respectively.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::modifiedDate">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">modifiedDate</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The last modified date for a content item.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::size">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">size</span></span><div class="brief">
+ The file size of the content in bytes.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::description">
+<span class="attrName"><span class="type">DOMString </span><span class="name">description</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The content description.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::rating">
+<span class="attrName"><span class="type">unsigned long </span><span class="name">rating</span></span><div class="brief">
+ The content rating. This value can range from <var>0</var> to <var>10</var>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="Content::isFavorite">
+<span class="attrName"><span class="type">boolean </span><span class="name">isFavorite</span></span><div class="brief">
+  Boolean value that indicates whether a content item is marked as a favorite.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="VideoContent">
+<a class="backward-compatibility-anchor" name="::Content::VideoContent"></a><h3>2.9. VideoContent</h3>
+<div class="brief">
+ The VideoContent interface extends a basic <em>Content </em>object with video-specific attributes.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface VideoContent : <a href="#Content">Content</a> {
+
+    attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? geolocation;
+
+    readonly attribute DOMString? album;
+
+    readonly attribute DOMString[]? artists;
+
+    readonly attribute unsigned long duration;
+
+    readonly attribute unsigned long width;
+
+    readonly attribute unsigned long height;
+
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="VideoContent::geolocation">
+<span class="attrName"><span class="type">SimpleCoordinates </span><span class="name">geolocation</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The geographical location where the video has been made.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="VideoContent::album">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">album</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The album name to which the video belongs.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="VideoContent::artists">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">artists</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The list of artists who created the video.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="VideoContent::duration">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">duration</span></span><div class="brief">
+ The video duration in milliseconds.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="VideoContent::width">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">width</span></span><div class="brief">
+ The width of a video in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="VideoContent::height">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">height</span></span><div class="brief">
+ The height of the video in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="AudioContentLyrics">
+<a class="backward-compatibility-anchor" name="::Content::AudioContentLyrics"></a><h3>2.10. AudioContentLyrics</h3>
+<div class="brief">
+ The AudioContentLyrics interface provides lyrics for music.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface AudioContentLyrics {
+
+    readonly attribute <a href="#AudioContentLyricsType">AudioContentLyricsType</a> type;
+
+    readonly attribute unsigned long[] timestamps;
+
+    readonly attribute DOMString[] texts;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AudioContentLyrics::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">AudioContentLyricsType </span><span class="name">type</span></span><div class="brief">
+ The type of lyrics, that is, whether they are synchronized with the music.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContentLyrics::timestamps">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long[]
+                      </span><span class="name">timestamps</span></span><div class="brief">
+ The array of timestamps in milliseconds for lyrics.
+            </div>
+<div class="description">
+            <p>
+If the lyrics are not synchronized (if there is no time information for the lyrics) the array is undefined.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContentLyrics::texts">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">texts</span></span><div class="brief">
+ The array of lyrics snippets.
+            </div>
+<div class="description">
+            <p>
+If the lyrics are not synchronized, the array has only one member with full lyrics.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="AudioContent">
+<a class="backward-compatibility-anchor" name="::Content::AudioContent"></a><h3>2.11. AudioContent</h3>
+<div class="brief">
+ The AudioContent interface extends a basic <em>Content </em>object with audio-specific attributes.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface AudioContent : <a href="#Content">Content</a> {
+
+    readonly attribute DOMString? album;
+
+    readonly attribute DOMString[]? genres;
+
+    readonly attribute DOMString[]? artists;
+
+    readonly attribute DOMString[]? composers;
+
+    readonly attribute <a href="#AudioContentLyrics">AudioContentLyrics</a>? lyrics;
+
+    readonly attribute DOMString? copyright;
+
+    readonly attribute unsigned long bitrate;
+
+    readonly attribute unsigned short? trackNumber;
+
+    readonly attribute unsigned long duration;
+
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AudioContent::album">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">album</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The album name to which the audio belongs.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::genres">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">genres</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The list of genres to which the audio belongs.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::artists">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">artists</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The list of artists who created the audio.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::composers">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString[]
+                      </span><span class="name">composers</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The list of composers for the music.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::lyrics">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">AudioContentLyrics </span><span class="name">lyrics</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The lyrics of a song in an audio file.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::copyright">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">copyright</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The copyright information.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::bitrate">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">bitrate</span></span><div class="brief">
+ The audio bitrate in bits per second. By default, this value is 0.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::trackNumber">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">trackNumber</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The track number if the audio belongs to an album.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="AudioContent::duration">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">duration</span></span><div class="brief">
+ The audio duration in milliseconds.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ImageContent">
+<a class="backward-compatibility-anchor" name="::Content::ImageContent"></a><h3>2.12. ImageContent</h3>
+<div class="brief">
+ The ImageContent interface extends a basic <em>Content </em>object with image-specific attributes.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface ImageContent : <a href="#Content">Content</a> {
+
+    attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? geolocation;
+
+    readonly attribute unsigned long width;
+
+    readonly attribute unsigned long height;
+
+    attribute <a href="#ImageContentOrientation">ImageContentOrientation</a> orientation;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ImageContent::geolocation">
+<span class="attrName"><span class="type">SimpleCoordinates </span><span class="name">geolocation</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The geographical location where the image has been made.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ImageContent::width">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">width</span></span><div class="brief">
+ The width of an image in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ImageContent::height">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">height</span></span><div class="brief">
+ The height of an image in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="ImageContent::orientation">
+<span class="attrName"><span class="type">ImageContentOrientation </span><span class="name">orientation</span></span><div class="brief">
+ The image orientation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="PlaylistItem">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistItem"></a><h3>2.13. PlaylistItem</h3>
+<div class="brief">
+ The PlaylistItem interface represents a playlist item.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject]
+  interface PlaylistItem {
+    readonly attribute <a href="#Content">Content</a> content;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="PlaylistItem::content">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Content </span><span class="name">content</span></span><div class="brief">
+ Content contained in this playlist item.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="Playlist">
+<a class="backward-compatibility-anchor" name="::Content::Playlist"></a><h3>2.14. Playlist</h3>
+<div class="brief">
+ The Playlist interface represents a playlist.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject]
+  interface Playlist {
+    readonly attribute <a href="#PlaylistId">PlaylistId</a> id;
+
+    attribute DOMString name raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute long numberOfTracks;
+
+    attribute DOMString? thumbnailURI raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void add(<a href="#Content">Content</a> item) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void addBatch(<a href="#Content">Content</a>[] items,
+                  optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void remove(<a href="#PlaylistItem">PlaylistItem</a> item) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeBatch(<a href="#PlaylistItem">PlaylistItem</a>[] items,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void get(<a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a> successCallback,
+             optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+             optional long? count,
+             optional long? offset) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setOrder(<a href="#PlaylistItem">PlaylistItem</a>[] items,
+            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void move(<a href="#PlaylistItem">PlaylistItem</a> item,
+              long delta,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="Playlist::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">PlaylistId </span><span class="name">id</span></span><div class="brief">
+ Identifier of a playlist.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="Playlist::name">
+<span class="attrName"><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ Name of a playlist (case sensitive and unique).
+            </div>
+<div class="description">
+            <p>
+When <var>name</var> is set, the change is recorded in the database.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, when assigning an invalid value (e.g. playlist of the same name already exists).
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to change this attribute.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="Playlist::numberOfTracks">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">numberOfTracks</span></span><div class="brief">
+ Number of playlist items in the playlist.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="Playlist::thumbnailURI">
+<span class="attrName"><span class="type">DOMString </span><span class="name">thumbnailURI</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Thumbnail URI of a playlist.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to <var>null</var>. <br>When <var>thumbnailURI</var> is set, the change is recorded in the database.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, when assigning an invalid value (e.g. if the URI does not start with "file:///").
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to change this attribute.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="Playlist::add">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::add"></a><code><b><span class="methodName">add</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a content item to a playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void add(<a href="#Content">Content</a> item);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+See code example for the <em>createPlaylist()</em> method.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">item</span>: 
+ Content to add
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="Playlist::addBatch">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::addBatch"></a><code><b><span class="methodName">addBatch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds tracks to a playlist as a batch, asynchronously.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void addBatch(<a href="#Content">Content</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">items</span>: 
+ List of tracks (Content objects) to add
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when adding a list of content items to a playlist completes successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="Playlist::remove">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::remove"></a><code><b><span class="methodName">remove</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes a track from a playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void remove(<a href="#PlaylistItem">PlaylistItem</a> item);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">item</span>: 
+ Playlist item to remove
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists, gItems, gCurPlaylist;
+
+ function get2Fail(err) {
+     console.log("get items (after remove) failed: " + err);
+ }
+
+ function get2Success(items) {
+    console.log("Playlist items:");
+    for(var i = 0; i &lt; items.length ; ++i) {
+        console.log("[" + i + "]: name:" + items[i].content.name);
+    }
+ }
+
+ function getSuccess(items) {
+    gItems = items;
+
+    if(gItems.length &lt; 1) {
+        console.log("Please add at least 1 tracks to playlist!");
+        return;
+    }
+
+    console.log("Original playlist:");
+    for(var i = 0; i &lt; gItems.length ; ++i) {
+        console.log("[" + i + "]: name:" + gItems[i].content.name);
+    }
+
+    console.log("Will remove item at index [0] name:" + gItems[0].content.name);
+    gCurPlaylist.remove(gItems[0]);
+    gCurPlaylist.get(get2Success, get2Fail);
+ }
+
+ function getFail(err) {
+     console.log("get items failed: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     gPlaylists = playlists;
+     if(gPlaylists.length === 0) {
+         console.log("Please create at least 1 playlist!");
+         return;
+     }
+
+     gCurPlaylist = gPlaylists[0];
+     gCurPlaylist.get(getSuccess, getFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Playlist::removeBatch">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::removeBatch"></a><code><b><span class="methodName">removeBatch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes tracks from a playlist as a batch, asynchronously.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeBatch(<a href="#PlaylistItem">PlaylistItem</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">items</span>: 
+ List of tracks to remove
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when removing a list of content items from a playlist completes successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists, gItems, gCurPlaylist;
+
+ function get2Fail(err) {
+     console.log("get items (after remove batch) failed: " + err);
+ }
+
+ function get2Success(items) {
+    console.log("Playlist after remove batch:");
+    for(var i = 0; i &lt; items.length ; ++i) {
+        console.log("[" + i + "]: name:" + items[i].content.name);
+    }
+ }
+
+ function removeBatchSuccess() {
+     console.log("removeBatch success");
+     gCurPlaylist.get(get2Success, get2Fail);
+ }
+
+ function removeBatchFail(err) {
+     console.log("removeBatch failed: " + err);
+ }
+
+ function getSuccess(items) {
+    gItems = items;
+
+    if(gItems.length &lt; 4) {
+        console.log("Please add at least 4 tracks to playlist!");
+        return;
+    }
+
+    console.log("Original playlist:");
+    for(var i = 0; i &lt; gItems.length ; ++i) {
+        console.log("[" + i + "]: name:" + gItems[i].content.name);
+    }
+
+    console.log("Will remove items at index [0](name:" + gItems[0].content.name
+            + ") and at index [2](name:" + gItems[2].content.name + ")");
+    gCurPlaylist.removeBatch([gItems[2], gItems[0]],
+            removeBatchSuccess, removeBatchFail);
+ }
+
+ function getFail(err) {
+     console.log("get items failed: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     gPlaylists = playlists;
+     if(gPlaylists.length === 0) {
+         console.log("Please create at least 1 playlist!");
+         return;
+     }
+
+     gCurPlaylist = gPlaylists[0];
+     gCurPlaylist.get(getSuccess, getFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Playlist::get">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::get"></a><code><b><span class="methodName">get</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets playlist items from a playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void get(<a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional long? count, optional long? offset);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If any of the input parameters contain an invalid value (e.g <em>count</em> or <em>offset</em> is a negative number)              </li>
+              <li>
+UnknownError: In case of any error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked for a list of tracks in the playlist
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">count</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Number of playlist items to return <br>If the <var>count</var> is not passed, all playlist items are retrieved.
+                </li>
+          <li class="param">
+<span class="name">offset</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Offset of the track from the beginning of the playlist <br>The default value is <em>0</em> <br>It means no offset.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists, gItems, gCurPlaylist;
+
+ function getSuccess(items) {
+     gItems = items;
+     console.log("Playlist items:");
+     for(var i = 0; i &lt; items.length ; ++i) {
+         console.log("[" + i + "]: name:" + items[i].name);
+     }
+ }
+
+ function getFail(err) {
+     console.log("get items failed: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     gPlaylists = playlists;
+     if(gPlaylists.length === 0) {
+         console.log("Please create at least 1 playlist!");
+         return;
+     }
+
+     gCurPlaylist = gPlaylists[0];
+     // To retrieves all playlist items of 'gCurPlaylist' playlist.
+     gCurPlaylist.get(getSuccess, getFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Playlist::setOrder">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::setOrder"></a><code><b><span class="methodName">setOrder</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Changes the play order of all playlist items in the playlist.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setOrder(<a href="#PlaylistItem">PlaylistItem</a>[] items, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: In case the item in the passed <em>items</em> array is not inside this playlist, or the <em>items</em> array does not contain all items from the playlist              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">items</span>: 
+ List of playlist items to set in play order <br>This list must include all playlist items of this playlist <br>If not, InvalidValuesError is thrown.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when changing the positions of items in the playlist is successfully completed
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists, gItems, gCurPlaylist, gExpectedOrder;
+
+ function get2Fail(err) {
+     console.log("get items (after set order) failed: " + err);
+ }
+
+ function get2Success(items) {
+    console.log("Playlist order after setOrder:");
+    for(var i = 0; i &lt; items.length ; ++i) {
+        console.log("[" + i + "]: name:" + items[i].content.name);
+    }
+ }
+
+ function setOrderSuccess() {
+     console.log("set items order SUCCESS");
+     gCurPlaylist.get(get2Success, get2Fail);
+ }
+
+ function setOrderFail(err) {
+     console.log("set items order failed: " + err);
+ }
+
+ function getSuccess(items) {
+    gItems = items;
+
+    if(gItems.length &lt; 2) {
+        console.log("Please add at least 2 tracks to playlist!");
+        return;
+    }
+
+    console.log("Original order:");
+    for(var i = 0; i &lt; gItems.length ; ++i) {
+        console.log("[" + i + "]: name:" + gItems[i].content.name);
+    }
+
+    gExpectedOrder = gItems.slice(0);
+    gExpectedOrder.reverse();
+
+    console.log("New order:");
+    for(var i = 0; i &lt; gExpectedOrder.length ; ++i) {
+        console.log("[" + i + "]: name:" + gExpectedOrder[i].content.name);
+    }
+
+    gCurPlaylist.setOrder(gExpectedOrder, setOrderSuccess, setOrderFail);
+ }
+
+ function getFail(err) {
+     console.log("get items failed: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     gPlaylists = playlists;
+     if(gPlaylists.length === 0) {
+         console.log("Please create at least 1 playlist!");
+         return;
+     }
+
+     gCurPlaylist = gPlaylists[0];
+     gCurPlaylist.get(getSuccess, getFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="Playlist::move">
+<a class="backward-compatibility-anchor" name="::Content::Playlist::move"></a><code><b><span class="methodName">move</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Moves the specified item up or down a specified amount in the play order.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void move(<a href="#PlaylistItem">PlaylistItem</a> item, long delta, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If <var>current index + delta</var> is:
+            </p>
+            <ul>
+              <li>
+<var>&lt; 0</var> then the item is moved to the first position in the playlist              </li>
+              <li>
+<var>≥ number of tracks</var> then the item is moved to the last position in the playlist              </li>
+            </ul>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: In case the item in the passed <em>items</em> array is not inside this playlist or some item of this playlist is not included in <em>items</em>              </li>
+              <li>
+UnknownError: In case of any other error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/content.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">item</span>: 
+ Playlist item to move
+                </li>
+          <li class="param">
+<span class="name">delta</span>: 
+ How many positions to move the item, negative value means move up, positive means move down
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when the playlist item has successfully been moved
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var gPlaylists, gItems, gCurPlaylist;
+
+ function get2Fail(err) {
+     console.log("get items (after move item) failed: " + err);
+ }
+
+ function get2Success(items) {
+    console.log("Playlist order after move:");
+    for(var i = 0; i &lt; items.length ; ++i) {
+        console.log("[" + i + "]: name:" + items[i].content.name);
+    }
+ }
+
+ function moveSuccess() {
+     console.log("move item SUCCESS");
+     gCurPlaylist.get(get2Success, get2Fail);
+ }
+
+ function moveFail(err) {
+     console.log("move item failed: " + err);
+ }
+
+ function getSuccess(items) {
+    gItems = items;
+
+    if(gItems.length &lt; 2) {
+        console.log("Please add at least 2 tracks to playlist!");
+        return;
+    }
+
+    console.log("Original order:");
+    for(var i = 0; i &lt; gItems.length ; ++i) {
+        console.log("[" + i + "]: name:" + gItems[i].content.name);
+    }
+
+    console.log("Will move item at index [1] (name: " +
+            gItems[1].content.name + ") up by one place (to [0])");
+
+    gCurPlaylist.move(gItems[1], -1, moveSuccess, moveFail);
+    gItems.unshift(gItems.splice(1, 1)[0]);
+ }
+
+ function getFail(err) {
+     console.log("get items failed: " + err);
+ }
+
+ function getPlaylistsFail(err) {
+     console.log("getPlaylists failed: " + err);
+ }
+
+ function getPlaylistsSuccess(playlists) {
+     gPlaylists = playlists;
+     if(gPlaylists.length === 0) {
+         console.log("Please create at least 1 playlist!");
+         return;
+     }
+
+     gCurPlaylist = gPlaylists[0];
+     gCurPlaylist.get(getSuccess, getFail);
+ }
+
+ tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PlaylistArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistArraySuccessCallback"></a><h3>2.15. PlaylistArraySuccessCallback</h3>
+<div class="brief">
+ The PlaylistArraySuccessCallback interface specifies a success callback that is invoked when all existing playlists are retrieved successfully.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistArraySuccessCallback {
+    void onsuccess(<a href="#Playlist">Playlist</a>[] playlists);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+It is used in <em>tizen.content.getPlaylists()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PlaylistArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the <em>tizen.content.getPlaylists()</em> method completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Playlist">Playlist</a>[] playlists);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">playlists</span>: 
+ List of all playlists on a device
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PlaylistSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistSuccessCallback"></a><h3>2.16. PlaylistSuccessCallback</h3>
+<div class="brief">
+ The PlaylistSuccessCallback interface specifies a success callback that is invoked when a new playlist is successfully created.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistSuccessCallback {
+    void onsuccess(<a href="#Playlist">Playlist</a> playlist);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+It is used in <em>tizen.content.createPlaylist()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PlaylistSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the <em>tizen.content.createPlaylist()</em> method completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Playlist">Playlist</a> playlist);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">playlist</span>: 
+ Newly created playlist
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PlaylistItemArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistItemArraySuccessCallback"></a><h3>2.17. PlaylistItemArraySuccessCallback</h3>
+<div class="brief">
+ The PlaylistItemArraySuccessCallback interface specifies a success callback that is invoked when a list of playlist items are successfully retrieved.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistItemArraySuccessCallback {
+    void onsuccess(<a href="#PlaylistItem">PlaylistItem</a>[] items);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PlaylistItemArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Content::PlaylistItemArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the <em>playlist.get()</em> method completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#PlaylistItem">PlaylistItem</a>[] items);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">items</span>: 
+ List of playlist items
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Content {
+
+  enum ContentDirectoryStorageType { "INTERNAL", "EXTERNAL" };
+
+  enum ContentType { "IMAGE", "VIDEO", "AUDIO", "OTHER" };
+
+  enum AudioContentLyricsType { "SYNCHRONIZED", "UNSYNCHRONIZED" };
+
+  enum ImageContentOrientation { "NORMAL", "FLIP_HORIZONTAL", "ROTATE_180", "FLIP_VERTICAL", "TRANSPOSE", "ROTATE_90", "TRANSVERSE", "ROTATE_270" };
+
+  typedef DOMString ContentId;
+
+  typedef DOMString ContentDirectoryId;
+
+  typedef DOMString PlaylistId;
+
+  [NoInterfaceObject] interface ContentManagerObject {
+    readonly attribute <a href="#ContentManager">ContentManager</a> content;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ContentManagerObject">ContentManagerObject</a>;
+
+  [NoInterfaceObject] interface ContentManager {
+
+    void update(<a href="#Content">Content</a> content) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void updateBatch(<a href="#Content">Content</a>[] contents,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getDirectories(<a href="#ContentDirectoryArraySuccessCallback">ContentDirectoryArraySuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void find(<a href="#ContentArraySuccessCallback">ContentArraySuccessCallback</a> successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+              optional <a href="#ContentDirectoryId">ContentDirectoryId</a>? directoryId,
+              optional <a href="tizen.html#AbstractFilter">AbstractFilter</a>? filter,
+              optional <a href="tizen.html#SortMode">SortMode</a>? sortMode,
+              optional unsigned long? count,
+              optional unsigned long? offset) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+
+    void scanFile(DOMString contentURI,
+                  optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void scanDirectory(DOMString contentDirURI,
+                       boolean recursive,
+                       optional <a href="#ContentScanSuccessCallback">ContentScanSuccessCallback</a>? successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void cancelScanDirectory(DOMString contentDirURI) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setChangeListener(<a href="#ContentChangeCallback">ContentChangeCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getPlaylists(<a href="#PlaylistArraySuccessCallback">PlaylistArraySuccessCallback</a> successCallback,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void createPlaylist(DOMString name,
+                        <a href="#PlaylistSuccessCallback">PlaylistSuccessCallback</a> successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                        optional <a href="#Playlist">Playlist</a>? sourcePlaylist) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removePlaylist(<a href="#PlaylistId">PlaylistId</a> id,
+                        optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                        optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface ContentArraySuccessCallback {
+    void onsuccess(<a href="#Content">Content</a>[] contents);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface ContentDirectoryArraySuccessCallback {
+    void onsuccess(<a href="#ContentDirectory">ContentDirectory</a>[] directories);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface ContentScanSuccessCallback {
+    void onsuccess(DOMString uri);
+  };
+
+  [Callback, NoInterfaceObject] interface ContentChangeCallback {
+    void oncontentadded(<a href="#Content">Content</a> content);
+
+    void oncontentupdated(<a href="#Content">Content</a> content);
+
+    void oncontentremoved(<a href="#ContentId">ContentId</a> id);
+
+    void oncontentdiradded(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+
+    void oncontentdirupdated(<a href="#ContentDirectory">ContentDirectory</a> contentDir);
+
+    void oncontentdirremoved(<a href="#ContentDirectoryId">ContentDirectoryId</a> id);
+  };
+
+
+  [NoInterfaceObject] interface ContentDirectory {
+
+    readonly attribute <a href="#ContentDirectoryId">ContentDirectoryId</a> id;
+
+    readonly attribute DOMString directoryURI;
+
+    readonly attribute DOMString title;
+
+    readonly attribute <a href="#ContentDirectoryStorageType">ContentDirectoryStorageType</a> storageType;
+
+    readonly attribute Date? modifiedDate;
+
+   };
+
+  [NoInterfaceObject] interface Content {
+
+    readonly attribute DOMString[] editableAttributes;
+
+    readonly attribute <a href="#ContentId">ContentId</a> id;
+
+    attribute DOMString name;
+
+    readonly attribute <a href="#ContentType">ContentType</a> type;
+
+    readonly attribute DOMString mimeType;
+
+    readonly attribute DOMString title;
+
+    readonly attribute DOMString contentURI;
+
+    readonly attribute DOMString[]? thumbnailURIs;
+
+    readonly attribute Date? releaseDate;
+
+    readonly attribute Date? modifiedDate;
+
+    readonly attribute unsigned long size;
+
+    attribute DOMString? description;
+
+    attribute unsigned long rating;
+
+    attribute boolean isFavorite;
+  };
+
+  [NoInterfaceObject] interface VideoContent : <a href="#Content">Content</a> {
+
+    attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? geolocation;
+
+    readonly attribute DOMString? album;
+
+    readonly attribute DOMString[]? artists;
+
+    readonly attribute unsigned long duration;
+
+    readonly attribute unsigned long width;
+
+    readonly attribute unsigned long height;
+
+  };
+
+
+  [NoInterfaceObject] interface AudioContentLyrics {
+
+    readonly attribute <a href="#AudioContentLyricsType">AudioContentLyricsType</a> type;
+
+    readonly attribute unsigned long[] timestamps;
+
+    readonly attribute DOMString[] texts;
+  };
+
+  [NoInterfaceObject] interface AudioContent : <a href="#Content">Content</a> {
+
+    readonly attribute DOMString? album;
+
+    readonly attribute DOMString[]? genres;
+
+    readonly attribute DOMString[]? artists;
+
+    readonly attribute DOMString[]? composers;
+
+    readonly attribute <a href="#AudioContentLyrics">AudioContentLyrics</a>? lyrics;
+
+    readonly attribute DOMString? copyright;
+
+    readonly attribute unsigned long bitrate;
+
+    readonly attribute unsigned short? trackNumber;
+
+    readonly attribute unsigned long duration;
+
+  };
+
+  [NoInterfaceObject] interface ImageContent : <a href="#Content">Content</a> {
+
+    attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? geolocation;
+
+    readonly attribute unsigned long width;
+
+    readonly attribute unsigned long height;
+
+    attribute <a href="#ImageContentOrientation">ImageContentOrientation</a> orientation;
+  };
+
+  [NoInterfaceObject]
+  interface PlaylistItem {
+    readonly attribute <a href="#Content">Content</a> content;
+  };
+
+  [NoInterfaceObject]
+  interface Playlist {
+    readonly attribute <a href="#PlaylistId">PlaylistId</a> id;
+
+    attribute DOMString name raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute long numberOfTracks;
+
+    attribute DOMString? thumbnailURI raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void add(<a href="#Content">Content</a> item) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void addBatch(<a href="#Content">Content</a>[] items,
+                  optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void remove(<a href="#PlaylistItem">PlaylistItem</a> item) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeBatch(<a href="#PlaylistItem">PlaylistItem</a>[] items,
+                     optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void get(<a href="#PlaylistItemArraySuccessCallback">PlaylistItemArraySuccessCallback</a> successCallback,
+             optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+             optional long? count,
+             optional long? offset) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setOrder(<a href="#PlaylistItem">PlaylistItem</a>[] items,
+            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void move(<a href="#PlaylistItem">PlaylistItem</a> item,
+              long delta,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistArraySuccessCallback {
+    void onsuccess(<a href="#Playlist">Playlist</a>[] playlists);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistSuccessCallback {
+    void onsuccess(<a href="#Playlist">Playlist</a> playlist);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface PlaylistItemArraySuccessCallback {
+    void onsuccess(<a href="#PlaylistItem">PlaylistItem</a>[] items);
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/datacontrol.html b/org.tizen.web.apireference/html/device_api/tv/tizen/datacontrol.html
new file mode 100644 (file)
index 0000000..b352277
--- /dev/null
@@ -0,0 +1,1503 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>DataControl API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::DataControl">
+<div class="title"><h1>DataControl API</h1></div>
+<div class="brief">
+ This specification defines a DataControl API for applications.
+        </div>
+<div class="description">
+        <p>
+The DataControl functionality provides a way to access specific data that is exported by other applications.
+        </p>
+        <p>
+Please read the <a href="../../org.tizen.mobile.native.appprogramming/html/guide/app/data_controls.htm">Native DataControl API</a> to know how to share own application data with other applications.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc"><li>
+                    1.1. <a href="#DataType">DataType</a>
+</li></ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#DataControlManagerObject">DataControlManagerObject</a>
+</li>
+<li>2.2. <a href="#DataControlManager">DataControlManager</a>
+</li>
+<li>2.3. <a href="#DataControlConsumerObject">DataControlConsumerObject</a>
+</li>
+<li>2.4. <a href="#SQLDataControlConsumer">SQLDataControlConsumer</a>
+</li>
+<li>2.5. <a href="#MappedDataControlConsumer">MappedDataControlConsumer</a>
+</li>
+<li>2.6. <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>
+</li>
+<li>2.7. <a href="#DataControlErrorCallback">DataControlErrorCallback</a>
+</li>
+<li>2.8. <a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a>
+</li>
+<li>2.9. <a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a>
+</li>
+<li>2.10. <a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a>
+</li>
+<li>2.11. <a href="#RowData">RowData</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#DataControlManagerObject">DataControlManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#DataControlManager">DataControlManager</a></td>
+<td><div>
+<a href="#DataControlConsumerObject">DataControlConsumerObject</a> <a href="#DataControlManager::getDataControlConsumer">getDataControlConsumer</a> (DOMString providerId, DOMString dataId, <a href="#DataType">DataType</a> type)</div></td>
+</tr>
+<tr>
+<td><a href="#DataControlConsumerObject">DataControlConsumerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SQLDataControlConsumer">SQLDataControlConsumer</a></td>
+<td>
+<div>void <a href="#SQLDataControlConsumer::insert">insert</a> (unsigned long reqId, <a href="#RowData">RowData</a> insertionData, optional <a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#SQLDataControlConsumer::update">update</a> (unsigned long reqId, <a href="#RowData">RowData</a> updateData, DOMString where, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#SQLDataControlConsumer::remove">remove</a> (unsigned long reqId, DOMString where, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#SQLDataControlConsumer::select">select</a> (unsigned long reqId, DOMString[] columns, DOMString where, <a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback, optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#MappedDataControlConsumer">MappedDataControlConsumer</a></td>
+<td>
+<div>void <a href="#MappedDataControlConsumer::addValue">addValue</a> (unsigned long reqId, DOMString key, DOMString value, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#MappedDataControlConsumer::removeValue">removeValue</a> (unsigned long reqId, DOMString key, DOMString value, <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#MappedDataControlConsumer::getValue">getValue</a> (unsigned long reqId, DOMString key, <a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#MappedDataControlConsumer::updateValue">updateValue</a> (unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue, <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#DataControlSuccessCallback">DataControlSuccessCallback</a></td>
+<td><div>void <a href="#DataControlSuccessCallback::onsuccess">onsuccess</a> (unsigned long reqId)</div></td>
+</tr>
+<tr>
+<td><a href="#DataControlErrorCallback">DataControlErrorCallback</a></td>
+<td><div>void <a href="#DataControlErrorCallback::onerror">onerror</a> (unsigned long reqId, <a href="tizen.html#WebAPIError">WebAPIError</a> error)</div></td>
+</tr>
+<tr>
+<td><a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a></td>
+<td><div>void <a href="#DataControlInsertSuccessCallback::onsuccess">onsuccess</a> (unsigned long reqId, long insertRowId)</div></td>
+</tr>
+<tr>
+<td><a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a></td>
+<td><div>void <a href="#DataControlSelectSuccessCallback::onsuccess">onsuccess</a> (<a href="#RowData">RowData</a>[] rows, unsigned long reqId)</div></td>
+</tr>
+<tr>
+<td><a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a></td>
+<td><div>void <a href="#DataControlGetValueSuccessCallback::onsuccess">onsuccess</a> (DOMString[] values, unsigned long reqid)</div></td>
+</tr>
+<tr>
+<td><a href="#RowData">RowData</a></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="DataType">
+<a class="backward-compatibility-anchor" name="::DataControl::DataType"></a><h3>1.1. DataType</h3>
+<div class="brief">
+ Data types.
+          </div>
+<pre class="webidl prettyprint">    enum DataType { "MAP", "SQL"};</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="DataControlManagerObject">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlManagerObject"></a><h3>2.1. DataControlManagerObject</h3>
+<div class="brief">
+ Defines what is instantiated in the <em>Tizen</em> object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DataControlManagerObject {
+        readonly attribute <a href="#DataControlManager">DataControlManager</a> datacontrol;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DataControlManagerObject">DataControlManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.datacontrol</em> object allows access to the
+DataControl API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="DataControlManager">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlManager"></a><h3>2.2. DataControlManager</h3>
+<div class="brief">
+ This interface provides access to the <em>DataControlManager </em>object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DataControlManager {
+        <a href="#DataControlConsumerObject">DataControlConsumerObject</a> getDataControlConsumer(DOMString providerId, DOMString dataId, <a href="#DataType">DataType</a> type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlManager::getDataControlConsumer">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlManager::getDataControlConsumer"></a><code><b><span class="methodName">getDataControlConsumer</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets <em>DataControlConsumerObject</em> with a given DataType.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#DataControlConsumerObject">DataControlConsumerObject</a> getDataControlConsumer(DOMString providerId, DOMString dataId, <a href="#DataType">DataType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">providerId</span>: 
+ A provider ID to use, which should be shared between the DataControl provider and DataControl consumer.
+                </li>
+          <li class="param">
+<span class="name">dataId</span>: 
+ A string for identifying specific data.
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The DataType to use.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DataControlConsumerObject The local <em>DataControlConsumerObject</em>.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> //The data provider, a native application, should be pre-installed and launched.
+ //The same provider ID should be defined for the use of this API between a native application(provider) and a web application(consumer).
+ //In this example, the DictionaryDataControlProvider native sample application is used as a data control provider.
+
+ //Gets SQL type DataControlConsumerObject
+ try {
+     var globalSQLConsumer = tizen.datacontrol.getDataControlConsumer(
+     "http://tizen.org/datacontrol/provider/DictionaryDataControlProvider", "Dictionary", "SQL");
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ // Gets MAP type DataControlConsumerObject
+ try {
+      globalMappedConsumer = tizen.datacontrol.getDataControlConsumer(
+      "http://tizen.org/datacontrol/provider/DictionaryDataControlProvider", "Dictionary", "MAP");
+ } catch (err) {
+      console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlConsumerObject">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlConsumerObject"></a><h3>2.3. DataControlConsumerObject</h3>
+<div class="brief">
+ This interface provides common attributes for other derived DataControlConsumerObject.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DataControlConsumerObject {
+        readonly attribute <a href="#DataType">DataType</a> type;
+        readonly attribute DOMString providerId;
+        readonly attribute DOMString dataId;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="DataControlConsumerObject::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DataType </span><span class="name">type</span></span><div class="brief">
+ An attribute to store the DataType.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="DataControlConsumerObject::providerId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">providerId</span></span><div class="brief">
+ An attribute to hold a provider identifier of the application with whom it shares the DataControl.
+This attribute should be known to users who want to interact with the application.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="DataControlConsumerObject::dataId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">dataId</span></span><div class="brief">
+ The dataId identifies specific data, usually a database table to process(insert, delete, update).
+The string consists of one or more components, separated by a slash('/').
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SQLDataControlConsumer">
+<a class="backward-compatibility-anchor" name="::DataControl::SQLDataControlConsumer"></a><h3>2.4. SQLDataControlConsumer</h3>
+<div class="brief">
+ This interface defines SQL data type operators.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface SQLDataControlConsumer : <a href="#DataControlConsumerObject">DataControlConsumerObject</a> {
+        void insert(unsigned long reqId, <a href="#RowData">RowData</a> insertionData,
+                    optional <a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void update(unsigned long reqId, <a href="#RowData">RowData</a> updateData, DOMString where,
+                    optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void remove(unsigned long reqId, DOMString where,
+                    optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void select(unsigned long reqId, DOMString[] columns, DOMString where,
+                    <a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback,
+                    optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+        
+      <div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SQLDataControlConsumer::insert">
+<a class="backward-compatibility-anchor" name="::DataControl::SQLDataControlConsumer::insert"></a><code><b><span class="methodName">insert</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Inserts new rows into a table owned by an SQL-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void insert(unsigned long reqId, <a href="#RowData">RowData</a> insertionData, optional <a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">insertionData</span>: 
+ The data on columns and values to insert.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform or if an SQL query with invalid parameters has been made.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id, insertRowId)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     var rowData = {
+         columns : ["WORD", "WORD_DESC"] ,
+         values  : ["'tizen1'", "'tizen2'"]
+     };
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalSQLConsumer.insert(globalReqId, rowData, successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SQLDataControlConsumer::update">
+<a class="backward-compatibility-anchor" name="::DataControl::SQLDataControlConsumer::update"></a><code><b><span class="methodName">update</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Updates values of a table owned by an SQL-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void update(unsigned long reqId, <a href="#RowData">RowData</a> updateData, DOMString where, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">updateData</span>: 
+ The data on columns and values to update.
+                </li>
+          <li class="param">
+<span class="name">where</span>: 
+ A filter to select desired rows to update. <br>It is an SQL <var>WHERE</var> clause excluding the <var>WHERE</var> itself such as <var>column1 = 'stringValue' AND column2 = numericValue</var>.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform or if an SQL query with invalid parameters has been made.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     var rowData = {
+         columns : ["WORD", "WORD_DESC"] ,
+         values  : ["'tizen1'", "'Web apps platform!'"]
+     };
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalSQLConsumer.update(globalReqId, rowData, "WORD='tizen1'", successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SQLDataControlConsumer::remove">
+<a class="backward-compatibility-anchor" name="::DataControl::SQLDataControlConsumer::remove"></a><code><b><span class="methodName">remove</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Delete rows from a table that is owned by an SQL-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void remove(unsigned long reqId, DOMString where, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">where</span>: 
+ A filter to select desired rows to remove. <br>It is an SQL <var>WHERE</var> clause excluding the <var>WHERE</var> itself such as <var>column1 = 'stringValue' AND column2 = numericValue</var>.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform or if an SQL query with invalid parameters has been made.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalSQLConsumer.remove(globalReqId, "WORD='tizen1'", successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SQLDataControlConsumer::select">
+<a class="backward-compatibility-anchor" name="::DataControl::SQLDataControlConsumer::select"></a><code><b><span class="methodName">select</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Selects the specified columns to be queried. The result set of the specified columns is retrieved from a table owned by an SQL-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void select(unsigned long reqId, DOMString[] columns, DOMString where, <a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback, optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+If either of the <em>page</em> or <em>maxNumberPerPage</em> parameters are set to <var>null</var> or are not set, only the first 20 rows are included in the result set.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<p><span class="remark"> Remark : </span>
+ <em>order</em> is supported since Tizen 3.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">columns</span>: 
+ The columns to select.
+                </li>
+          <li class="param">
+<span class="name">where</span>: 
+ A filter to select desired rows. <br>It is an SQL <var>WHERE</var> clause excluding the <var>WHERE</var> itself such as <var>column1 = 'stringValue' AND column2 = numericValue</var>.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">page</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The page number of the result set. <br>It starts from <var>1</var>. If the number is out of page, DataControlSelectSuccessCallback is invoked with no result data.
+                </li>
+          <li class="param">
+<span class="name">maxNumberPerPage</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The maximum number of rows on a page. The maximum allowed value is equal to 1024.
+                </li>
+          <li class="param">
+<span class="name">order</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The sorting order of the selected rows. <br>It is an SQL <var>ORDER BY</var> clause excluding the <var>ORDER BY</var> itself such as <var>column1, column2 ASC</var>. If it is set to null, the order in which the rows are returned is undefined.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform or if an SQL query with invalid parameters has been made.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function getValueSuccessCB(result, id)
+ {
+     console.log("getValueSuccessCB result.length: " + result.length);
+     var length = result.length;
+     for (var i = 0; i &lt; length; i++)
+     {
+         var rowData = "| ";
+         var j = 0;
+         for (j = 0; j &lt; result[i].columns.length; j++)
+         {
+             rowData += "column: " + result[i].columns[j] + ", value: " + result[i].values[j] + " | ";
+         }
+         console.log(rowData);
+     }
+ }
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // globalSQLConsumer and globalReqId should be defined before.
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     var columns = ["WORD", "WORD_DESC" ];
+     var whereClause = "1";
+     console.log("----- Calling for ascending order -----");
+     globalSQLConsumer.select(globalReqId, columns, whereClause, getValueSuccessCB, errorcb,
+             null, null, "WORD_DESC ASC");
+     setTimeout( function() {
+         console.log("----- Calling descending order -----");
+         globalSQLConsumer.select(globalReqId, columns, whereClause, getValueSuccessCB, errorcb,
+             null, null, "WORD_DESC DESC");
+     }, 1000);
+ }
+ catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="MappedDataControlConsumer">
+<a class="backward-compatibility-anchor" name="::DataControl::MappedDataControlConsumer"></a><h3>2.5. MappedDataControlConsumer</h3>
+<div class="brief">
+ This interface defines MAP data type operators.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface MappedDataControlConsumer : <a href="#DataControlConsumerObject">DataControlConsumerObject</a> {
+        void addValue(unsigned long reqId, DOMString key, DOMString value,
+                     optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                     optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void removeValue(unsigned long reqId, DOMString key, DOMString value,
+                          <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback,
+                          optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void getValue(unsigned long reqId, DOMString key,
+                       <a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a> successCallback,
+                       optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void updateValue(unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue,
+                          <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback,
+                          optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+        
+      <div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="MappedDataControlConsumer::addValue">
+<a class="backward-compatibility-anchor" name="::DataControl::MappedDataControlConsumer::addValue"></a><code><b><span class="methodName">addValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds the value associated with the specified key to a key-values map owned by a MAP-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void addValue(unsigned long reqId, DOMString key, DOMString value, optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">key</span>: 
+ The key to search mapped data.
+                </li>
+          <li class="param">
+<span class="name">value</span>: 
+ The value to add into a values array mapped by the key.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalMappedConsumer.addValue(globalReqId, "tizen", "Foo", successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MappedDataControlConsumer::removeValue">
+<a class="backward-compatibility-anchor" name="::DataControl::MappedDataControlConsumer::removeValue"></a><code><b><span class="methodName">removeValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes the value associated with the specified key from a key-values map owned by a MAP-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeValue(unsigned long reqId, DOMString key, DOMString value, <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation. <br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">key</span>: 
+ The key to search mapped data.
+                </li>
+          <li class="param">
+<span class="name">value</span>: 
+ The value to remove from a values array mapped by the key.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the key cannot be found.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalMappedConsumer.removeValue(globalReqId, "tizen", "Foo", successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MappedDataControlConsumer::getValue">
+<a class="backward-compatibility-anchor" name="::DataControl::MappedDataControlConsumer::getValue"></a><code><b><span class="methodName">getValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the value associated with the specified key, from a key-values map owned by a MAP-type data control provider.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getValue(unsigned long reqId, DOMString key, <a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">key</span>: 
+ The key to search mapped data.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the key cannot be found.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function getValueSuccessCB(result, id)
+ {
+     console.log(result.length + ":" + result[0]);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalMappedConsumer.getValue(globalReqId, "tizen", getValueSuccessCB, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MappedDataControlConsumer::updateValue">
+<a class="backward-compatibility-anchor" name="::DataControl::MappedDataControlConsumer::updateValue"></a><code><b><span class="methodName">updateValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the value associated with the specified key to a new value.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void updateValue(unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue, <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/datacontrol.consumer
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So a developer should increase the <em>reqId </em>value to ensure it is unique for each method.
+                </li>
+          <li class="param">
+<span class="name">key</span>: 
+ The key to search mapped data.
+                </li>
+          <li class="param">
+<span class="name">oldValue</span>: 
+ The value to update in a values array mapped by the key.
+                </li>
+          <li class="param">
+<span class="name">newValue</span>: 
+ The new value to replace in a values array mapped by the key.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the asynchronous call completes successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the parameter type is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the passed parameter is not available on the data provider side or platform.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if a DB operation has failed.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the key cannot be found.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successcb(id)
+ {
+     console.log("ok : reqid " + id);
+ }
+
+ function errorcb(id, error)
+ {
+     console.log("error id : " + id + ", error msg : " + error.message);
+ }
+
+ try {
+     // Defines globalReqId before
+     // Increases globalReqId for uniqueness
+     globalReqId++;
+     globalMappedConsumer.updateValue(globalReqId, "tizen", "Foo", "Bar", successcb, errorcb);
+ } catch (err) {
+     console.log (err.name +": " + err.message);
+ }
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlSuccessCallback">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlSuccessCallback"></a><h3>2.6. DataControlSuccessCallback</h3>
+<div class="brief">
+ This interface provides a SuccessCallback for DataControlConsumerObject.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlSuccessCallback {
+        void onsuccess(unsigned long reqId);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called on success.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(unsigned long reqId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier of the successful operation.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlErrorCallback">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlErrorCallback"></a><h3>2.7. DataControlErrorCallback</h3>
+<div class="brief">
+ This interface provides an ErrorCallback for DataControlConsumerObject.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlErrorCallback {
+        void onerror(unsigned long reqId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlErrorCallback::onerror">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlErrorCallback::onerror"></a><code><b><span class="methodName">onerror</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called on error.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onerror(unsigned long reqId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier of the failed operation.
+                </li>
+          <li class="param">
+<span class="name">error</span>: 
+ An error message.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlInsertSuccessCallback">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlInsertSuccessCallback"></a><h3>2.8. DataControlInsertSuccessCallback</h3>
+<div class="brief">
+ This interface provides a SuccessCallback for SQLDataControlConsumer.insert().
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlInsertSuccessCallback {
+        void onsuccess(unsigned long reqId, long insertRowId);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlInsertSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlInsertSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called on success.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(unsigned long reqId, long insertRowId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So it is recommended to increase the <em>reqId</em> value every time to guarantee uniqueness.
+                </li>
+          <li class="param">
+<span class="name">insertRowId</span>: 
+ The inserted row ID set by the data control provider if the specified providerResult is <var>true</var>, else <var>-1</var>.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlSelectSuccessCallback">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlSelectSuccessCallback"></a><h3>2.9. DataControlSelectSuccessCallback</h3>
+<div class="brief">
+ This interface provides a SuccessCallback for SQLDataControlConsumer.select().
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlSelectSuccessCallback {
+        void onsuccess(<a href="#RowData">RowData</a>[] rows, unsigned long reqId);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlSelectSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlSelectSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called on success.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#RowData">RowData</a>[] rows, unsigned long reqId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">rows</span>: 
+ Rows of SQL selection results from another application.<br>The array operation of rows would be different from general JavaScript array behavior depending on platform implementation. For example, Array.isArray(rows) returns <em>false</em>.
+                </li>
+          <li class="param">
+<span class="name">reqId</span>: 
+ A unique identifier for the current operation.<br>So it is recommended to increase the <em>reqId</em> value every time to guarantee uniqueness.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DataControlGetValueSuccessCallback">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlGetValueSuccessCallback"></a><h3>2.10. DataControlGetValueSuccessCallback</h3>
+<div class="brief">
+ This interface provides a SuccessCallback for MapDataControlConsumer.getValue().
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlGetValueSuccessCallback {
+        void onsuccess(DOMString[] values, unsigned long reqid);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DataControlGetValueSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::DataControl::DataControlGetValueSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called on success.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(DOMString[] values, unsigned long reqid);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">values</span>: 
+ A list of values assigned to the requested key.
+                </li>
+          <li class="param">
+<span class="name">reqid</span>: 
+ A unique identifier of the successful operation.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="RowData">
+<a class="backward-compatibility-anchor" name="::DataControl::RowData"></a><h3>2.11. RowData</h3>
+<div class="brief">
+ The dictionary represents RowData holding 1 row of SQL selection results from another application.
+          </div>
+<pre class="webidl prettyprint">    dictionary RowData {
+        DOMString[] columns;
+        DOMString[] values;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="RowData::columns"><span class="attrName">DOMString[] columns</span></dt>
+<dd>
+<div class="brief">
+ An attribute to hold column names to select, update, and insert.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+<dt class="member" id="RowData::values"><span class="attrName">DOMString[] values</span></dt>
+<dd>
+<div class="brief">
+ An attribute to hold values of columns to select, update, and insert.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module DataControl {
+    enum DataType { "MAP", "SQL"};
+
+    [NoInterfaceObject] interface DataControlManagerObject {
+        readonly attribute <a href="#DataControlManager">DataControlManager</a> datacontrol;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DataControlManagerObject">DataControlManagerObject</a>;
+
+    [NoInterfaceObject] interface DataControlManager {
+        <a href="#DataControlConsumerObject">DataControlConsumerObject</a> getDataControlConsumer(DOMString providerId, DOMString dataId, <a href="#DataType">DataType</a> type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+
+    [NoInterfaceObject] interface DataControlConsumerObject {
+        readonly attribute <a href="#DataType">DataType</a> type;
+        readonly attribute DOMString providerId;
+        readonly attribute DOMString dataId;
+    };
+
+    [NoInterfaceObject] interface SQLDataControlConsumer : <a href="#DataControlConsumerObject">DataControlConsumerObject</a> {
+        void insert(unsigned long reqId, <a href="#RowData">RowData</a> insertionData,
+                    optional <a href="#DataControlInsertSuccessCallback">DataControlInsertSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void update(unsigned long reqId, <a href="#RowData">RowData</a> updateData, DOMString where,
+                    optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void remove(unsigned long reqId, DOMString where,
+                    optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                    optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void select(unsigned long reqId, DOMString[] columns, DOMString where,
+                    <a href="#DataControlSelectSuccessCallback">DataControlSelectSuccessCallback</a> successCallback, optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback,
+                    optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [NoInterfaceObject] interface MappedDataControlConsumer : <a href="#DataControlConsumerObject">DataControlConsumerObject</a> {
+        void addValue(unsigned long reqId, DOMString key, DOMString value,
+                     optional <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a>? successCallback,
+                     optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void removeValue(unsigned long reqId, DOMString key, DOMString value,
+                          <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback,
+                          optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void getValue(unsigned long reqId, DOMString key,
+                       <a href="#DataControlGetValueSuccessCallback">DataControlGetValueSuccessCallback</a> successCallback,
+                       optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+         void updateValue(unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue,
+                          <a href="#DataControlSuccessCallback">DataControlSuccessCallback</a> successCallback,
+                          optional <a href="#DataControlErrorCallback">DataControlErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlSuccessCallback {
+        void onsuccess(unsigned long reqId);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlErrorCallback {
+        void onerror(unsigned long reqId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlInsertSuccessCallback {
+        void onsuccess(unsigned long reqId, long insertRowId);
+    };
+
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlSelectSuccessCallback {
+        void onsuccess(<a href="#RowData">RowData</a>[] rows, unsigned long reqId);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface DataControlGetValueSuccessCallback {
+        void onsuccess(DOMString[] values, unsigned long reqid);
+    };
+
+
+    dictionary RowData {
+        DOMString[] columns;
+        DOMString[] values;
+    };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/download.html b/org.tizen.web.apireference/html/device_api/tv/tizen/download.html
new file mode 100644 (file)
index 0000000..3f18286
--- /dev/null
@@ -0,0 +1,1084 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Download API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Download">
+<div class="title"><h1>Download API</h1></div>
+<div class="brief">
+ This API provides methods to asynchronously download the contents of a URL to a storage.
+        </div>
+<div class="description">
+        <p>
+For more information on the Download features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/content_guide/download.htm">Download Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>
+</li>
+<li>
+                    1.2. <a href="#DownloadState">DownloadState</a>
+</li>
+<li>
+                    1.3. <a href="#DownloadNetworkType">DownloadNetworkType</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#DownloadManagerObject">DownloadManagerObject</a>
+</li>
+<li>2.2. <a href="#DownloadRequest">DownloadRequest</a>
+</li>
+<li>2.3. <a href="#DownloadManager">DownloadManager</a>
+</li>
+<li>2.4. <a href="#DownloadCallback">DownloadCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#DownloadManagerObject">DownloadManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#DownloadRequest">DownloadRequest</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#DownloadManager">DownloadManager</a></td>
+<td>
+<div>long <a href="#DownloadManager::start">start</a> (<a href="#DownloadRequest">DownloadRequest</a> downloadRequest, optional <a href="#DownloadCallback">DownloadCallback</a>? downloadCallback)</div>
+<div>void <a href="#DownloadManager::cancel">cancel</a> (long downloadId)</div>
+<div>void <a href="#DownloadManager::pause">pause</a> (long downloadId)</div>
+<div>void <a href="#DownloadManager::resume">resume</a> (long downloadId)</div>
+<div>
+<a href="#DownloadState">DownloadState</a> <a href="#DownloadManager::getState">getState</a> (long downloadId)</div>
+<div>
+<a href="#DownloadRequest">DownloadRequest</a> <a href="#DownloadManager::getDownloadRequest">getDownloadRequest</a> (long downloadId)</div>
+<div>DOMString <a href="#DownloadManager::getMIMEType">getMIMEType</a> (long downloadId)</div>
+<div>void <a href="#DownloadManager::setListener">setListener</a> (long downloadId, <a href="#DownloadCallback">DownloadCallback</a> downloadCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#DownloadCallback">DownloadCallback</a></td>
+<td>
+<div>void <a href="#DownloadCallback::onprogress">onprogress</a> (long downloadId, unsigned long long receivedSize, unsigned long long totalSize)</div>
+<div>void <a href="#DownloadCallback::onpaused">onpaused</a> (long downloadId)</div>
+<div>void <a href="#DownloadCallback::oncanceled">oncanceled</a> (long downloadId)</div>
+<div>void <a href="#DownloadCallback::oncompleted">oncompleted</a> (long downloadId, DOMString path)</div>
+<div>void <a href="#DownloadCallback::onfailed">onfailed</a> (long downloadId, <a href="tizen.html#WebAPIError">WebAPIError</a> error)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="DownloadHTTPHeaderFields">
+<a class="backward-compatibility-anchor" name="::Download::DownloadHTTPHeaderFields"></a><h3>1.1. DownloadHTTPHeaderFields</h3>
+<div class="brief">
+ A set of HTTP header fields.
+          </div>
+<pre class="webidl prettyprint">    typedef object DownloadHTTPHeaderFields;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="description">
+          <p>
+The key / value type of each HTTP header field should be DOMString.
+          </p>
+         </div>
+</div>
+<div class="enum" id="DownloadState">
+<a class="backward-compatibility-anchor" name="::Download::DownloadState"></a><h3>1.2. DownloadState</h3>
+<div class="brief">
+ An enumerator to indicate the state of a download operation.
+          </div>
+<pre class="webidl prettyprint">    enum DownloadState { "QUEUED", "DOWNLOADING", "PAUSED", "CANCELED", "COMPLETED", "FAILED" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+The following values are supported:
+          </p>
+          <ul>
+            <li>
+QUEUED - Indicates that the download operation is listed in a queue.            </li>
+            <li>
+DOWNLOADING - Indicates that the download operation is in progress.            </li>
+            <li>
+PAUSED - Indicates that the download operation is in a paused state by user request.            </li>
+            <li>
+CANCELED - Indicates that the download operation is canceled by user request.            </li>
+            <li>
+COMPLETED - Indicates that the download operation is in a completed state.            </li>
+            <li>
+FAILED - Indicates that the download operation has failed due to some reasons.            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="DownloadNetworkType">
+<a class="backward-compatibility-anchor" name="::Download::DownloadNetworkType"></a><h3>1.3. DownloadNetworkType</h3>
+<div class="brief">
+ An enumerator to indicate the network type.
+          </div>
+<pre class="webidl prettyprint">    enum DownloadNetworkType { "CELLULAR", "WIFI", "ALL" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="description">
+          <p>
+The following values are supported:
+          </p>
+          <ul>
+            <li>
+CELLULAR - Indicates that the download operation is allowed in the cellular network only.            </li>
+            <li>
+WIFI - Indicates that the download operation is allowed in the Wi-Fi network only.            </li>
+            <li>
+ALL - Indicates that the download operation is allowed in all network types.            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="DownloadManagerObject">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManagerObject"></a><h3>2.1. DownloadManagerObject</h3>
+<div class="brief">
+ This interface defines the default download manager that is instantiated by the <em>Tizen </em>object.
+The <em>tizen.download </em>object allows access to the functionality of the Download API.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DownloadManagerObject {
+        readonly attribute <a href="#DownloadManager">DownloadManager</a> download;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DownloadManagerObject">DownloadManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+</div>
+<div class="interface" id="DownloadRequest">
+<a class="backward-compatibility-anchor" name="::Download::DownloadRequest"></a><h3>2.2. DownloadRequest</h3>
+<div class="brief">
+ The DownloadRequest interface defines the download request object.
+          </div>
+<pre class="webidl prettyprint">    [Constructor(DOMString url, optional DOMString? destination, optional DOMString? fileName, optional <a href="#DownloadNetworkType">DownloadNetworkType</a>? networkType, optional <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>? httpHeader)]
+    interface DownloadRequest {
+        attribute DOMString url;
+
+        attribute DOMString? destination;
+
+        attribute DOMString? fileName;
+
+        attribute <a href="#DownloadNetworkType">DownloadNetworkType</a>? networkType;
+
+        attribute <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>? httpHeader;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="constructors">
+<h4 id="DownloadRequest::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">DownloadRequest(DOMString url, optional DOMString? destination, optional DOMString? fileName, optional <a href="#DownloadNetworkType">DownloadNetworkType</a>? networkType, optional <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>? httpHeader);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="DownloadRequest::url">
+<span class="attrName"><span class="type">DOMString </span><span class="name">url</span></span><div class="brief">
+ An attribute to store the URL of the object to download.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="DownloadRequest::destination">
+<span class="attrName"><span class="type">DOMString </span><span class="name">destination</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the folder path of the destination folder to which a requested file object will be downloaded.
+            </div>
+<div class="description">
+            <p>
+If the destination is not specified or is an empty string, the file will be downloaded to the default storage: "Downloads". For more information, see <a href="filesystem.html">Filesystem API</a>.
+            </p>
+            <p>
+The default value is an empty string.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="DownloadRequest::fileName">
+<span class="attrName"><span class="type">DOMString </span><span class="name">fileName</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the file name for the specified URL.
+            </div>
+<div class="description">
+            <p>
+If the file name is not given or is an empty string, the original file name from the URL is used.
+            </p>
+            <p>
+The default value is an empty string.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="DownloadRequest::networkType">
+<span class="attrName"><span class="type">DownloadNetworkType </span><span class="name">networkType</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store the allowed network type.
+            </div>
+<div class="description">
+            <p>
+If the network type is not given, all network types are allowed.
+            </p>
+            <p>
+The default value is <var>ALL</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="DownloadRequest::httpHeader">
+<span class="attrName"><span class="type">DownloadHTTPHeaderFields </span><span class="name">httpHeader</span><span class="optional"> [nullable]</span></span><div class="brief">
+ An attribute to store extra HTTP header fields.
+            </div>
+<div class="description">
+            <p>
+For more information about HTTP header fields, see <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2">RFC-2616</a>            </p>
+            <p>
+The default value is an empty object.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var req = new tizen.DownloadRequest("http://download.tizen.org/tools/README.txt");
+ req.httpHeader["Pragma"] = "no-cache";
+ req.httpHeader["Cookie"] = "version=1; Skin=new";
+ req.httpHeader["X-Agent"] = "Tizen Sample App";
+ </pre>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="DownloadManager">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager"></a><h3>2.3. DownloadManager</h3>
+<div class="brief">
+ The DownloadManager interface handles requests for downloading. Each step of a download operation is informed through callbacks.
+          </div>
+<pre class="webidl prettyprint">   [NoInterfaceObject] interface DownloadManager {
+       long start(<a href="#DownloadRequest">DownloadRequest</a> downloadRequest,
+                    optional <a href="#DownloadCallback">DownloadCallback</a>? downloadCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void cancel(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void pause(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void resume(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       <a href="#DownloadState">DownloadState</a> getState(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       <a href="#DownloadRequest">DownloadRequest</a> getDownloadRequest(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       DOMString getMIMEType(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void setListener(long downloadId, <a href="#DownloadCallback">DownloadCallback</a> downloadCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+   };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DownloadManager::start">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::start"></a><code><b><span class="methodName">start</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Starts a download operation with the specified URL information.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long start(<a href="#DownloadRequest">DownloadRequest</a> downloadRequest, optional <a href="#DownloadCallback">DownloadCallback</a>? downloadCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/download
+            </p>
+<p><span class="remark"> Remark : </span>
+ To check if <var>CELLULAR</var> type is supported, use <var>tizen.systeminfo.getCapability("http://tizen.org/feature/network.telephony")</var>            </p>
+<p><span class="remark"> Remark : </span>
+ To check if <var>WIFI</var> type is supported, use <var>tizen.systeminfo.getCapability("http://tizen.org/feature/network.wifi")</var>            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadRequest</span>: 
+ The URL and destination information of the object to download.
+                </li>
+          <li class="param">
+<span class="name">downloadCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when the download state changes or an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long An identifier for each download operation.
+If the network is not available for downloading, the return value is -1 since Tizen 2.3.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if the <em>networkType</em> of the given <var>DownloadRequest</var> is not supported on a device.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Check if Download API is supported not on a device.
+ var download_api_capability = tizen.systeminfo.getCapability("http://tizen.org/feature/download");
+ if (download_api_capability === false) {
+     console.log("Download API is not supported on this device.");
+     return;
+ }
+
+ var listener = {
+   onprogress: function(id, receivedSize, totalSize) {
+     console.log('Received with id: ' + id + ', ' + receivedSize + '/' + totalSize);
+   },
+   onpaused: function(id) {
+     console.log('Paused with id: ' + id);
+   },
+   oncanceled: function(id) {
+     console.log('Canceled with id: ' + id);
+   },
+   oncompleted: function(id, fullPath) {
+     console.log('Completed with id: ' + id + ', full path: ' + fullPath);
+   },
+   onfailed: function(id, error) {
+     console.log('Failed with id: ' + id + ', error name: ' + error.name);
+   }
+ };
+
+ // Starts downloading the file from the Web with the corresponding callbacks.
+ var downloadRequest = new tizen.DownloadRequest("http://download.tizen.org/tools/README.txt", "documents");
+ var downloadId = tizen.download.start(downloadRequest, listener);
+
+ // If you want to download a large file through Wi-Fi,
+ var wifi_capability = tizen.systeminfo.getCapability("http://tizen.org/feature/network.wifi");
+ var wifiDownloadRequest = new tizen.DownloadRequest("http://download.tizen.org/tools/archive/14.02.2/Ubuntu_12.04/qemu_1.6.0rc3.orig.tar.gz", "downloads", null, "WIFI");
+
+ if (wifi_capability === true) {
+     var downlodId_wifi = tizen.download.start(wifiDownloadRequest, listener);
+ } else {
+     // If you call tizen.download.start(), NotSupportedError will be thrown.
+     console.log("This device doesn't support Download API through Wi-Fi.");
+ }
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::cancel">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::cancel"></a><code><b><span class="methodName">cancel</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Cancels an ongoing download operation that is specified by the <em>downloadId</em> parameter.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void cancel(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the ongoing download operation to stop.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Cancels the ongoing download operation with the specified ID.
+ tizen.download.cancel(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::pause">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::pause"></a><code><b><span class="methodName">pause</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Pauses an ongoing download operation that is specified by the <em>downloadId</em> parameter.
+The paused download operation can be resumed later by the <em>resume()</em> method.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void pause(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the ongoing download operation to pause.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Pauses the ongoing download operation with the specified ID.
+ tizen.download.pause(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::resume">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::resume"></a><code><b><span class="methodName">resume</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Resumes a paused download operation that is specified by the <em>downloadId</em> parameter.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void resume(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the paused download operation to resume.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Resumes the paused download operation with the specified ID.
+ tizen.download.resume(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::getState">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::getState"></a><code><b><span class="methodName">getState</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the download state of an operation synchronously with the specified ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#DownloadState">DownloadState</a> getState(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID to get the current state of the download operation.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DownloadState The current download state of the specified ID.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the state of the download operation with the given ID.
+ var state = tizen.download.getState(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::getDownloadRequest">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::getDownloadRequest"></a><code><b><span class="methodName">getDownloadRequest</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the DownloadRequest object from a given ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#DownloadRequest">DownloadRequest</a> getDownloadRequest(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID to get the download request information.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DownloadRequest The download request information of the given ID.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match
+any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not
+compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input
+parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Gets the download request information with the given ID.
+ var downloadRequest = tizen.download.getDownloadRequest(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::getMIMEType">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::getMIMEType"></a><code><b><span class="methodName">getMIMEType</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the MIME type of the downloaded file.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getMIMEType(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="remark"> Remark : </span>
+ This function returns a valid MIME type when the download operation has been started
+and successfully retrieves the file header.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID to get the MIME type information.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The MIME type of the downloaded file.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match
+any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not
+compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input
+parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Get the MIME type of the download operation with the given ID.
+ var MIMEtype = tizen.download.getMIMEType(downloadId);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DownloadManager::setListener">
+<a class="backward-compatibility-anchor" name="::Download::DownloadManager::setListener"></a><code><b><span class="methodName">setListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the download callback to the download operation of the given ID.
+It's possible to change or register the listener of the download operation using the saved ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setListener(long downloadId, <a href="#DownloadCallback">DownloadCallback</a> downloadCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID to set the download callback.
+                </li>
+          <li class="param">
+<span class="name">downloadCallback</span>: 
+ The method to invoke when the download state changes or an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the identifier does not match
+any download operation in progress.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not
+compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input
+parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var listener = {
+   onprogress: function(id, receivedSize, totalSize) {
+     console.log('Received with id: ' + id + ', ' + receivedSize + '/' + totalSize);
+   },
+   onpaused: function(id) {
+     console.log('Paused with id: ' + id);
+   },
+   oncanceled: function(id) {
+     console.log('Canceled with id: ' + id);
+   },
+   oncompleted: function(id, fileName) {
+     console.log('Completed with id: ' + id + ', file name: ' + fileName);
+   },
+   onfailed: function(id, error) {
+     console.log('Failed with id: ' + id + ', error name: ' + error.name);
+   }
+ };
+
+ // Start downloading the html file on the web with the corresponding callbacks.
+ var downloadRequest = new tizen.DownloadRequest("http://download.tizen.org/tools/README.txt", "documents");
+ downloadId = tizen.download.start(downloadRequest);
+
+ // Add the listener.
+ tizen.download.setListener(downloadId, listener);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="DownloadCallback">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback"></a><h3>2.4. DownloadCallback</h3>
+<div class="brief">
+ The DownloadCallback defines notification callbacks for a download state change or progress.
+          </div>
+<pre class="webidl prettyprint">   [Callback, NoInterfaceObject] interface DownloadCallback {
+       void onprogress(long downloadId, unsigned long long receivedSize, unsigned long long totalSize);
+
+       void onpaused(long downloadId);
+
+       void oncanceled(long downloadId);
+
+       void oncompleted(long downloadId, DOMString path);
+
+       void onfailed(long downloadId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+   };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DownloadCallback::onprogress">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback::onprogress"></a><code><b><span class="methodName">onprogress</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a download is successful and it is called multiple times as the download progresses.
+The interval between the <em>onprogress()</em> callback is platform-dependent. When the download is started, the <em>receivedSize </em>can be <var>0</var>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onprogress(long downloadId, unsigned long long receivedSize, unsigned long long totalSize);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the corresponding download operation.
+                </li>
+          <li class="param">
+<span class="name">receivedSize</span>: 
+ The size of data received in bytes.
+                </li>
+          <li class="param">
+<span class="name">totalSize</span>: 
+ The total size of data to receive in bytes.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="DownloadCallback::onpaused">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback::onpaused"></a><code><b><span class="methodName">onpaused</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the download operation is paused by the <em>pause() </em>method.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onpaused(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the corresponding download operation.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="DownloadCallback::oncanceled">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback::oncanceled"></a><code><b><span class="methodName">oncanceled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the download operation is canceled by the <em>cancel() </em>method.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncanceled(long downloadId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the corresponding download operation.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="DownloadCallback::oncompleted">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback::oncompleted"></a><code><b><span class="methodName">oncompleted</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the download operation is completed with the final full path or virtual path.
+If the same file name already exists in the destination, it is changed according to the platform policy and delivered in this callback.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncompleted(long downloadId, DOMString path);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the corresponding download operation.
+                </li>
+          <li class="param">
+<span class="name">path</span>: 
+ The final full path or virtual path for the downloaded file.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="DownloadCallback::onfailed">
+<a class="backward-compatibility-anchor" name="::Download::DownloadCallback::onfailed"></a><code><b><span class="methodName">onfailed</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the download operation fails.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onfailed(long downloadId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">downloadId</span>: 
+ The ID of the corresponding download operation.
+                </li>
+          <li class="param">
+<span class="name">error</span>: 
+ The reason for download failure.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+DownloadNetworkType <em>'WIFI'</em> or <em>'ALL'</em> can be available on a Wi-Fi enabled device. To guarantee that the download application runs on a device with the Wi-Fi feature, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.wifi</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+DownloadNetworkType <em>'CELLULAR'</em> or <em>'ALL'</em> can be available on a cellular-enabled device. To guarantee that the download application runs on a device with the cellular feature, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.telephony</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+DownloadNetworkType <em>'ALL'</em> can be available on a ethernet-enabled device. To guarantee that the download application runs on a device with the ethernet network feature, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.ethernet</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Download {
+    typedef object DownloadHTTPHeaderFields;
+
+    enum DownloadState { "QUEUED", "DOWNLOADING", "PAUSED", "CANCELED", "COMPLETED", "FAILED" };
+
+    enum DownloadNetworkType { "CELLULAR", "WIFI", "ALL" };
+
+    [NoInterfaceObject] interface DownloadManagerObject {
+        readonly attribute <a href="#DownloadManager">DownloadManager</a> download;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DownloadManagerObject">DownloadManagerObject</a>;
+
+    [Constructor(DOMString url, optional DOMString? destination, optional DOMString? fileName, optional <a href="#DownloadNetworkType">DownloadNetworkType</a>? networkType, optional <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>? httpHeader)]
+    interface DownloadRequest {
+        attribute DOMString url;
+
+        attribute DOMString? destination;
+
+        attribute DOMString? fileName;
+
+        attribute <a href="#DownloadNetworkType">DownloadNetworkType</a>? networkType;
+
+        attribute <a href="#DownloadHTTPHeaderFields">DownloadHTTPHeaderFields</a>? httpHeader;
+    };
+
+   [NoInterfaceObject] interface DownloadManager {
+       long start(<a href="#DownloadRequest">DownloadRequest</a> downloadRequest,
+                    optional <a href="#DownloadCallback">DownloadCallback</a>? downloadCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void cancel(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void pause(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void resume(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       <a href="#DownloadState">DownloadState</a> getState(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       <a href="#DownloadRequest">DownloadRequest</a> getDownloadRequest(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       DOMString getMIMEType(long downloadId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+       void setListener(long downloadId, <a href="#DownloadCallback">DownloadCallback</a> downloadCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+   };
+
+   [Callback, NoInterfaceObject] interface DownloadCallback {
+       void onprogress(long downloadId, unsigned long long receivedSize, unsigned long long totalSize);
+
+       void onpaused(long downloadId);
+
+       void oncanceled(long downloadId);
+
+       void oncompleted(long downloadId, DOMString path);
+
+       void onfailed(long downloadId, <a href="tizen.html#WebAPIError">WebAPIError</a> error);
+   };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/exif.html b/org.tizen.web.apireference/html/device_api/tv/tizen/exif.html
new file mode 100644 (file)
index 0000000..a3ce8ba
--- /dev/null
@@ -0,0 +1,988 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Exif API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Exif">
+<div class="title"><h1>Exif API</h1></div>
+<div class="brief">
+ The Exif API provides interfaces and methods for manipulating <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format">Exif</a> data from a JPEG file.
+The <em>ExifManager</em> object provides methods to retrieve the <em>ExifInformation</em> object from a JPEG file
+and save the Exif data from the <em>ExifInformation</em> object in the JPEG file.
+The <em>ExifInformation</em> object provides functionality to get and set the Exif attributes corresponding to the Exif tag.
+Changing the value of the attribute in the <em>ExifInformation</em> object stores the Exif data in the <em>ExifInformation</em> object. It does not change data in the JPEG file.
+For applying the modified Exif data to the JPEG file,
+the saveExifInfo() method of the <em>ExifManager</em> object should be called with the <em>ExifInformation</em> object that has the modified Exif data.
+        </div>
+<div class="description">
+        <p>
+For more information about how to use Exif API, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/content_guide/exif.htm">Exif Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#WhiteBalanceMode">WhiteBalanceMode</a>
+</li>
+<li>
+                    1.2. <a href="#ExposureProgram">ExposureProgram</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#ExifManagerObject">ExifManagerObject</a>
+</li>
+<li>2.2. <a href="#ExifManager">ExifManager</a>
+</li>
+<li>2.3. <a href="#ExifInit">ExifInit</a>
+</li>
+<li>2.4. <a href="#ExifInformation">ExifInformation</a>
+</li>
+<li>2.5. <a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a>
+</li>
+<li>2.6. <a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#ExifManagerObject">ExifManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ExifManager">ExifManager</a></td>
+<td>
+<div>void <a href="#ExifManager::getExifInfo">getExifInfo</a> (DOMString uri, <a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ExifManager::saveExifInfo">saveExifInfo</a> (<a href="#ExifInformation">ExifInformation</a> exifInfo, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ExifManager::getThumbnail">getThumbnail</a> (DOMString uri, <a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ExifInit">ExifInit</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ExifInformation">ExifInformation</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a></td>
+<td><div>void <a href="#ExifInformationSuccessCallback::onsuccess">onsuccess</a> (<a href="#ExifInformation">ExifInformation</a> exifInfo)</div></td>
+</tr>
+<tr>
+<td><a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a></td>
+<td><div>void <a href="#ExifThumbnailSuccessCallback::onsuccess">onsuccess</a> (DOMString? uri)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="WhiteBalanceMode">
+<a class="backward-compatibility-anchor" name="::Exif::WhiteBalanceMode"></a><h3>1.1. WhiteBalanceMode</h3>
+<div class="brief">
+ Specifies a white balance mode for an image.
+          </div>
+<pre class="webidl prettyprint">    enum WhiteBalanceMode { "AUTO", "MANUAL" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+AUTO - Automatic White Balance mode            </li>
+            <li>
+MANUAL - Manual White Balance mode            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="ExposureProgram">
+<a class="backward-compatibility-anchor" name="::Exif::ExposureProgram"></a><h3>1.2. ExposureProgram</h3>
+<div class="brief">
+ Specifies an exposure balance program for an image.
+          </div>
+<pre class="webidl prettyprint">    enum ExposureProgram { "NOT_DEFINED", "MANUAL", "NORMAL", "APERTURE_PRIORITY", "SHUTTER_PRIORITY", "CREATIVE_PROGRAM", "ACTION_PROGRAM", "PORTRAIT_MODE", "LANDSCAPE_MODE" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+Some additional information can be found in the <a href="http://en.wikipedia.org/wiki/List_of_digital_camera_modes">List of digital camera modes</a> article.
+          </p>
+          <ul>
+            <li>
+NOT_DEFINED - Exposure program info is not present or is unknown            </li>
+            <li>
+MANUAL - In the manual mode both shutter speed and aperture are independently set manually (with ISO sensitivity also set manually)            </li>
+            <li>
+APERTURE_PRIORITY - aka A, Av(Aperture value) mode enables manual control of the aperture, and shutter speed is calculated by the camera for proper exposure (given an ISO sensitivity)            </li>
+            <li>
+SHUTTER_PRIORITY - aka S, Tv(Time value) mode enables manual control of the shutter speed, and aperture is calculated by the camera for proper exposure (given an ISO sensitivity)            </li>
+            <li>
+CREATIVE_PROGRAM - Program mode makes the camera calculate both shutter speed and aperture (given a manually or automatically selected ISO)            </li>
+            <li>
+ACTION_PROGRAM - Action or sports modes increase ISO and use a faster shutter speed to capture an action            </li>
+            <li>
+PORTRAIT_MODE - Portrait mode widens the aperture to throw the background out of focus. The camera may recognize and focus on a human face            </li>
+            <li>
+LANDSCAPE_MODE - Landscape modes use a small aperture to gain depth of a field            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="ExifManagerObject">
+<a class="backward-compatibility-anchor" name="::Exif::ExifManagerObject"></a><h3>2.1. ExifManagerObject</h3>
+<div class="brief">
+ The ExifManagerObject interface defines what is instantiated by the <em>Tizen</em> object from the Tizen Platform.
+The <em>tizen.exif</em> object allows access to the Exif data of a JPEG file.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ExifManagerObject {
+        readonly attribute <a href="#ExifManager">ExifManager</a> exif;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ExifManagerObject">ExifManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+</div>
+<div class="interface" id="ExifManager">
+<a class="backward-compatibility-anchor" name="::Exif::ExifManager"></a><h3>2.2. ExifManager</h3>
+<div class="brief">
+ The ExifManager interface provides methods to retrieve the <em>ExifInformation</em> object and save the Exif data of the <em>ExifInformation</em> object in a JPEG file.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ExifManager {
+
+        void getExifInfo(DOMString uri,
+                         <a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a> successCallback,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback ) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void saveExifInfo(<a href="#ExifInformation">ExifInformation</a> exifInfo,
+                          optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getThumbnail(DOMString uri,
+                          <a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a> successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+It provides access to the API functionalities through the <em>tizen.exif</em> interface.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ExifManager::getExifInfo">
+<a class="backward-compatibility-anchor" name="::Exif::ExifManager::getExifInfo"></a><code><b><span class="methodName">getExifInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the <em>ExifInformation</em> object to manipulate the Exif data in a JPEG file.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getExifInfo(DOMString uri, <a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+This function returns (via callback) the <em>ExifInformation</em> object that contains the Exif data in the JPEG file.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the file of the input parameters is not found or the file does not contain Exif data              </li>
+              <li>
+IOError: If access to the image file is denied due to insufficient permissions              </li>
+              <li>
+InvalidValuesError: If any input parameter contains invalid values              </li>
+              <li>
+UnknownError: In any other error case              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">uri</span>: 
+ URI of the JPEG file, as available in ImageContent::contentURI or returned by File::toURI()
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked when Exif information has been retrieved successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> //Preconditions: please provide images/tizen.jpg file with present Exif data
+
+ // Defines success callback
+ function onSuccess(exifInfo) {
+     console.log("success to get Exif information object");
+ }
+
+ // Defines error callback
+ function onError(error) {
+     console.log("error occurred: " + error.name);
+ }
+
+ function resolveSuccess(file) {
+     tizen.exif.getExifInfo(file.toURI(), onSuccess, onError);
+ }
+
+ function resolveFail(error) {
+    console.log("error occurred: " + error.name);
+ }
+ tizen.filesystem.resolve("images/tizen.jpg", resolveSuccess, resolveFail);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ExifManager::saveExifInfo">
+<a class="backward-compatibility-anchor" name="::Exif::ExifManager::saveExifInfo"></a><code><b><span class="methodName">saveExifInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Saves the Exif data of the <em>ExifInformation</em> object into the JPEG file.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void saveExifInfo(<a href="#ExifInformation">ExifInformation</a> exifInfo, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the file of the input parameters is not found              </li>
+              <li>
+InvalidValuesError: If any input parameter contains invalid values              </li>
+              <li>
+UnknownError: In any other error case              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">exifInfo</span>: 
+ Exif information object that contains the Exif data in the JPEG file
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when Exif data has been saved successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> //Preconditions: please provide images/tizen.jpg file with present Exif data
+
+ // Defines success callback
+ function onSaveSuccess() {
+     console.log("success to save Exif information");
+ }
+
+ // Defines error callback
+ function onSaveError(error) {
+     console.log("error occur" + error.name);
+ }
+
+ // Defines success callback
+ function onSuccess(exifInfo) {
+     console.log("success to get Exif information object");
+     exifInfo.orientation = "ROTATE_90";
+     tizen.exif.saveExifInfo(exifInfo, onSaveSuccess, onSaveError);
+ }
+
+ // Defines error callback
+ function onError(error) {
+     console.log("error occur" + error.name);
+ }
+
+ function resolveSuccess(file) {
+     tizen.exif.getExifInfo(file.toURI(), onSuccess, onError);
+ }
+
+ function resolveFail(error) {
+    console.log("error occurred: " + error.name);
+ }
+
+ tizen.filesystem.resolve("images/tizen.jpg", resolveSuccess, resolveFail);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ExifManager::getThumbnail">
+<a class="backward-compatibility-anchor" name="::Exif::ExifManager::getThumbnail"></a><code><b><span class="methodName">getThumbnail</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the thumbnail of the specified JPEG file. If there is no thumbnail in the JPEG file, <var>null</var> is returned.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getThumbnail(DOMString uri, <a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+<em>successCallback</em> is invoked with a URI as the first argument.
+This URI is a <a href="http://en.wikipedia.org/wiki/Data_URI_scheme">data URI</a>.
+It can be used as an src attribute value of the img element.
+            </p>
+            <p>
+The errorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError: If the file of the input parameters is not found              </li>
+              <li>
+IOError: If access to the thumbnail file is denied due to insufficient permissions              </li>
+              <li>
+InvalidValuesError: If any of the input parameters contains an invalid value              </li>
+              <li>
+UnknownError: In any other error case              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">uri</span>: 
+ URI of the JPEG file
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method to be invoked when thumbnail data has been retrieved successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> //Preconditions: please provide images/tizen.jpg file with present Exif data
+
+ // Defines success callback
+ function onSuccess(thumbData) {
+     console.log("got thumbnail data of JPEG file");
+     if (thumbData) {
+         var img = new Image();
+         img.src = thumbData;
+         document.body.appendChild(img);
+     }
+ }
+
+ // Defines error callback
+ function onError(error) {
+     console.log("error occur" + error.name);
+ }
+
+ function resolveSuccess(file) {
+     tizen.exif.getThumbnail(file.toURI(), onSuccess, onError);
+ }
+
+ function resolveFail(error) {
+    console.log("error occurred: " + error.name);
+ }
+
+ tizen.filesystem.resolve("images/tizen.jpg", resolveSuccess, resolveFail);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="ExifInit">
+<a class="backward-compatibility-anchor" name="::Exif::ExifInit"></a><h3>2.3. ExifInit</h3>
+<div class="brief">
+ Dictionary for specifying <em>ExifInformation</em> attributes upon <em>ExifInformation</em> creation.
+          </div>
+<pre class="webidl prettyprint">    dictionary ExifInit {
+        DOMString uri;
+        unsigned long width;
+        unsigned long height;
+        DOMString deviceMaker;
+        DOMString deviceModel;
+        Date originalTime;
+        <a href="content.html#ImageContentOrientation">ImageContentOrientation</a> orientation;
+        double fNumber;
+        unsigned short[] isoSpeedRatings;
+        DOMString exposureTime;
+        <a href="#ExposureProgram">ExposureProgram</a> exposureProgram;
+        boolean flash;
+        double focalLength;
+        <a href="#WhiteBalanceMode">WhiteBalanceMode</a> whiteBalance;
+        <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a> gpsLocation;
+        double gpsAltitude;
+        DOMString gpsProcessingMethod;
+        Date gpsTime;
+        DOMString userComment;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+This dictionary is used to input parameters when <em>ExifInformation</em> is created.
+For description of attributes please see the corresponding attributes in the <em>ExifInformation<em> interface.
+</em></em>          </p>
+         </div>
+</div>
+<div class="interface" id="ExifInformation">
+<a class="backward-compatibility-anchor" name="::Exif::ExifInformation"></a><h3>2.4. ExifInformation</h3>
+<div class="brief">
+ The ExifInformation interface implements the <em>ExifInformation</em> object.
+          </div>
+<pre class="webidl prettyprint">    [Constructor(optional <a href="#ExifInit">ExifInit</a>? ExifInitDict)]
+    interface ExifInformation {
+        attribute DOMString uri;
+
+        attribute unsigned long? width;
+
+        attribute unsigned long? height;
+
+        attribute DOMString? deviceMaker;
+
+        attribute DOMString? deviceModel;
+
+        attribute Date? originalTime;
+
+        attribute <a href="content.html#ImageContentOrientation">ImageContentOrientation</a>? orientation;
+
+        attribute double? fNumber;
+
+        attribute unsigned short[]? isoSpeedRatings;
+
+        attribute DOMString? exposureTime;
+
+        attribute <a href="#ExposureProgram">ExposureProgram</a>? exposureProgram;
+
+        attribute boolean? flash;
+
+        attribute double? focalLength;
+
+        attribute <a href="#WhiteBalanceMode">WhiteBalanceMode</a>? whiteBalance;
+
+        attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? gpsLocation;
+
+        attribute double? gpsAltitude;
+
+        attribute DOMString? gpsProcessingMethod;
+
+        attribute <a href="time.html#TZDate">TZDate</a>? gpsTime;
+
+        attribute DOMString? userComment;
+
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+When the format of a value is given in the attribute description then this format should be followed when updating values.
+          </p>
+          <p>
+Every Exif related attribute is nullable - null means that this information is missing in the file.
+By setting an attribute to null and saving <em>ExifInformation</em> one can remove that Exif tag from the file.
+          </p>
+         </div>
+<div class="constructors">
+<h4 id="ExifInformation::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">ExifInformation(optional <a href="#ExifInit">ExifInit</a>? ExifInitDict);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ExifInformation::uri">
+<span class="attrName"><span class="type">DOMString </span><span class="name">uri</span></span><div class="brief">
+ URI of the image.
+            </div>
+<div class="description">
+            <p>
+The path to the file from which <em>ExifInformation</em> data is collected.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::width">
+<span class="attrName"><span class="type">unsigned long </span><span class="name">width</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Width of the image i.e. the number of points (pixels) per image line.
+            </div>
+<div class="description">
+            <p>
+Note if the value of this attribute is changed, the new value is not verified against the actual size of the image.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::height">
+<span class="attrName"><span class="type">unsigned long </span><span class="name">height</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Height of the image i.e. the number of lines in the image.
+            </div>
+<div class="description">
+            <p>
+Note if the value of this attribute is changed, the new value is not verified against the actual size of the image.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::deviceMaker">
+<span class="attrName"><span class="type">DOMString </span><span class="name">deviceMaker</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Name of the camera manufacturer.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::deviceModel">
+<span class="attrName"><span class="type">DOMString </span><span class="name">deviceModel</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Model name or model number of the camera or input device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::originalTime">
+<span class="attrName"><span class="type">Date </span><span class="name">originalTime</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Date and time when the picture was taken.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::orientation">
+<span class="attrName"><span class="type">ImageContentOrientation </span><span class="name">orientation</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Orientation of the image when displayed.
+            </div>
+<div class="description">
+            <p>
+This attribute shows the relation between the stored image data and the visual content orientation.
+In other words - how a stored image should be oriented when presented to the user.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::fNumber">
+<span class="attrName"><span class="type">double </span><span class="name">fNumber</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The f-number when the image was taken.
+            </div>
+<div class="description">
+            <p>
+Exif specification: "Conversion is not made to the focal length of a 35 mm film".
+            </p>
+            <p>
+The <a href="http://en.wikipedia.org/wiki/F-number">f-number</a> is the ratio of the lens' focal length to the diameter of the entrance pupil.
+F-number is also called focal ratio, f-ratio, f-stop, or relative aperture.
+Example values: 1.4, 2, 2.8, 4, 5.6, 8, 11 ...
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::isoSpeedRatings">
+<span class="attrName"><span class="type">unsigned short[]
+                      </span><span class="name">isoSpeedRatings</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Photo sensitivity (also called ISO speed and ISO latitude) of the camera or input device.
+            </div>
+<div class="description">
+            <p>
+Example values: 80, 100, 200, 400, 800, 1600, 3200 ..
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::exposureTime">
+<span class="attrName"><span class="type">DOMString </span><span class="name">exposureTime</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Exposure time, given in seconds.
+            </div>
+<div class="description">
+            <p>
+If exposure time is below one second it is expressed as 1/x.
+For example: 1 second exposure is "1", 0.25s is "1/4".
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::exposureProgram">
+<span class="attrName"><span class="type">ExposureProgram </span><span class="name">exposureProgram</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Exposure balance program used by the camera to set exposure when the picture was taken.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::flash">
+<span class="attrName"><span class="type">boolean </span><span class="name">flash</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Boolean value that indicates whether flash was fired when the picture was taken (true: flash fired).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::focalLength">
+<span class="attrName"><span class="type">double </span><span class="name">focalLength</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Focal length of the lens, given in mm.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::whiteBalance">
+<span class="attrName"><span class="type">WhiteBalanceMode </span><span class="name">whiteBalance</span><span class="optional"> [nullable]</span></span><div class="brief">
+ White balance mode set when the picture was taken.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::gpsLocation">
+<span class="attrName"><span class="type">SimpleCoordinates </span><span class="name">gpsLocation</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Latitude and longitude of the camera (from GPS) when the picture was taken.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::gpsAltitude">
+<span class="attrName"><span class="type">double </span><span class="name">gpsAltitude</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Altitude (from GPS) of the camera when the picture was taken.
+            </div>
+<div class="description">
+            <p>
+This value is expressed in meters above sea level (can be negative).
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::gpsProcessingMethod">
+<span class="attrName"><span class="type">DOMString </span><span class="name">gpsProcessingMethod</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Name of the method used for finding the location.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::gpsTime">
+<span class="attrName"><span class="type">TZDate </span><span class="name">gpsTime</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Date and time information relative to UTC (Universal Time Coordinated) provided by GPS when the photo was taken.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ExifInformation::userComment">
+<span class="attrName"><span class="type">DOMString </span><span class="name">userComment</span><span class="optional"> [nullable]</span></span><div class="brief">
+ User comment.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ExifInformationSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Exif::ExifInformationSuccessCallback"></a><h3>2.5. ExifInformationSuccessCallback</h3>
+<div class="brief">
+ The ExifInformationSuccessCallback interface provides a success callback that is invoked when the Exif information object has been retrieved.
+This callback interface specifies a success method with an <em>ExifInformation</em> object as an input parameter. It is used in exif.getExifInfo().
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ExifInformationSuccessCallback {
+        void onsuccess(<a href="#ExifInformation">ExifInformation</a> exifInfo);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ExifInformationSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Exif::ExifInformationSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the Exif information object has been successfully retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ExifInformation">ExifInformation</a> exifInfo);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">exifInfo</span>: 
+ <em>ExifInformation</em> to be retrieved
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ExifThumbnailSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Exif::ExifThumbnailSuccessCallback"></a><h3>2.6. ExifThumbnailSuccessCallback</h3>
+<div class="brief">
+ The ExifThumbnailSuccessCallback interface provides a success callback that is invoked when the Exif thumbnail has been retrieved.
+This callback interface specifies a success method with the URI for the thumbnail as an input parameter. It is used in exif.getThumbnail().
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ExifThumbnailSuccessCallback {
+        void onsuccess(DOMString? uri);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ExifThumbnailSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Exif::ExifThumbnailSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the thumbnail of the JPEG file has been successfully retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(DOMString? uri);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">uri</span><span class="optional"> [nullable]</span>: 
+ URI for the thumbnail to be retrieved <br>If there is no thumbnail in the JPEG file, <var>null</var> is returned.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Exif {
+
+    enum WhiteBalanceMode { "AUTO", "MANUAL" };
+
+    enum ExposureProgram { "NOT_DEFINED", "MANUAL", "NORMAL", "APERTURE_PRIORITY", "SHUTTER_PRIORITY", "CREATIVE_PROGRAM", "ACTION_PROGRAM", "PORTRAIT_MODE", "LANDSCAPE_MODE" };
+
+    [NoInterfaceObject] interface ExifManagerObject {
+        readonly attribute <a href="#ExifManager">ExifManager</a> exif;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ExifManagerObject">ExifManagerObject</a>;
+
+    [NoInterfaceObject] interface ExifManager {
+
+        void getExifInfo(DOMString uri,
+                         <a href="#ExifInformationSuccessCallback">ExifInformationSuccessCallback</a> successCallback,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback ) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void saveExifInfo(<a href="#ExifInformation">ExifInformation</a> exifInfo,
+                          optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getThumbnail(DOMString uri,
+                          <a href="#ExifThumbnailSuccessCallback">ExifThumbnailSuccessCallback</a> successCallback,
+                          optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    dictionary ExifInit {
+        DOMString uri;
+        unsigned long width;
+        unsigned long height;
+        DOMString deviceMaker;
+        DOMString deviceModel;
+        Date originalTime;
+        <a href="content.html#ImageContentOrientation">ImageContentOrientation</a> orientation;
+        double fNumber;
+        unsigned short[] isoSpeedRatings;
+        DOMString exposureTime;
+        <a href="#ExposureProgram">ExposureProgram</a> exposureProgram;
+        boolean flash;
+        double focalLength;
+        <a href="#WhiteBalanceMode">WhiteBalanceMode</a> whiteBalance;
+        <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a> gpsLocation;
+        double gpsAltitude;
+        DOMString gpsProcessingMethod;
+        Date gpsTime;
+        DOMString userComment;
+    };
+
+    [Constructor(optional <a href="#ExifInit">ExifInit</a>? ExifInitDict)]
+    interface ExifInformation {
+        attribute DOMString uri;
+
+        attribute unsigned long? width;
+
+        attribute unsigned long? height;
+
+        attribute DOMString? deviceMaker;
+
+        attribute DOMString? deviceModel;
+
+        attribute Date? originalTime;
+
+        attribute <a href="content.html#ImageContentOrientation">ImageContentOrientation</a>? orientation;
+
+        attribute double? fNumber;
+
+        attribute unsigned short[]? isoSpeedRatings;
+
+        attribute DOMString? exposureTime;
+
+        attribute <a href="#ExposureProgram">ExposureProgram</a>? exposureProgram;
+
+        attribute boolean? flash;
+
+        attribute double? focalLength;
+
+        attribute <a href="#WhiteBalanceMode">WhiteBalanceMode</a>? whiteBalance;
+
+        attribute <a href="tizen.html#SimpleCoordinates">SimpleCoordinates</a>? gpsLocation;
+
+        attribute double? gpsAltitude;
+
+        attribute DOMString? gpsProcessingMethod;
+
+        attribute <a href="time.html#TZDate">TZDate</a>? gpsTime;
+
+        attribute DOMString? userComment;
+
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ExifInformationSuccessCallback {
+        void onsuccess(<a href="#ExifInformation">ExifInformation</a> exifInfo);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface ExifThumbnailSuccessCallback {
+        void onsuccess(DOMString? uri);
+    };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/filesystem.html b/org.tizen.web.apireference/html/device_api/tv/tizen/filesystem.html
new file mode 100644 (file)
index 0000000..ef65112
--- /dev/null
@@ -0,0 +1,3430 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Filesystem API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Filesystem">
+<div class="title"><h1>Filesystem API</h1></div>
+<div class="brief">
+ The Filesystem API provides access to a device's filesystem.
+        </div>
+<div class="description">
+        <p>
+The filesystem is represented as an abstract collection of disjointed filesystem virtual
+root locations, each corresponding to a specific location in the device
+filesystem. The filesystem API exposes the hierarchies below these root
+locations as a single virtual filesystem, but provides no access to other
+parts of the device filesystem.
+        </p>
+        <p>
+Each virtual root has a string name. Each file or directory within the virtual
+filesystem is addressed using a fully-qualified path of the form:
+<em>&lt;root name&gt;/&lt;path&gt;</em> where <em>&lt;rootname&gt;</em> is
+the name of the virtual root and <em>&lt;path&gt;</em> is the path to the file or
+directory relative to that root.
+        </p>
+        <p>
+The following virtual roots must be supported:
+        </p>
+        <ul>
+          <li>
+images - the location for images          </li>
+          <li>
+videos - the location for videos          </li>
+          <li>
+music - the location for sounds          </li>
+          <li>
+documents - the location for documents          </li>
+          <li>
+downloads - the location for downloaded items           </li>
+          <li>
+ringtones - the location for ringtones (read-only location)           </li>
+          <li>
+camera - the location for the pictures and videos taken by a device (supported since Tizen 2.3)           </li>
+          <li>
+wgt-package - the location for widget package which is read-only          </li>
+          <li>
+wgt-private - the location for a widget's private storage           </li>
+          <li>
+wgt-private-tmp - the location for a widget's private volatile storage          </li>
+        </ul>
+        <p>
+The file URI path is also supported. To access other paths out of virtual root, for example 'file:///tmp' can be used as location parameter.
+        </p>
+        <p>
+To access specific locations apart from those specified above, a file handle must be retrieved using the <em>filesystem.resolve() </em>call.
+        </p>
+        <p>
+A file handle represents either a file or a directory:        </p>
+        <ul>
+          <li>
+For a file, the <em>isFile </em>attribute is set to <var>true</var>.          </li>
+          <li>
+For a directory, the <em>isDirectory </em>attribute is set to <var>true</var>.          </li>
+        </ul>
+        <p>
+A file can be opened for both read and write operations, using a
+FileStream handle. A list of files and sub-directories can be obtained from a
+directory and a resolve method exists to resolve files or sub-directories
+more conveniently than processing directory listings.
+        </p>
+        <p>
+The implementation must support the use of the following characters in file names:
+        </p>
+        <ul>
+          <li>
+Letters (a-z, A-Z)          </li>
+          <li>
+Numbers (0-9)          </li>
+          <li>
+Blank space          </li>
+          <li>
+Underscore ("_")          </li>
+          <li>
+Hyphen ("-")          </li>
+          <li>
+Period (".")          </li>
+        </ul>
+        <p>
+The implementation may support additional characters in file names, depending on platform support.
+        </p>
+        <p>
+The implementation may forbid the use of additional characters in file names, depending on the platform. The use of the path (component) separator "/" should not be allowed in file names.
+        </p>
+        <p>
+Some other file name and path characteristics are platform-dependent,
+for example, maximum path length, file name length, case sensitivity, additional
+character support, etc. Therefore, it is recommended to avoid any dependency
+on aspects that cannot be supported across multiple platforms.
+        </p>
+        <p>
+When a path is used to interact with the underlying filesystem, the encoding used for the file path should be the platform default.
+        </p>
+        <p>
+For more information on the Filesystem features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/io_guide/filesystem.htm">File System Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#FileMode">FileMode</a>
+</li>
+<li>
+                    1.2. <a href="#FileSystemStorageType">FileSystemStorageType</a>
+</li>
+<li>
+                    1.3. <a href="#FileSystemStorageState">FileSystemStorageState</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#FileSystemManagerObject">FileSystemManagerObject</a>
+</li>
+<li>2.2. <a href="#FileSystemManager">FileSystemManager</a>
+</li>
+<li>2.3. <a href="#FileSystemStorage">FileSystemStorage</a>
+</li>
+<li>2.4. <a href="#File">File</a>
+</li>
+<li>2.5. <a href="#FileFilter">FileFilter</a>
+</li>
+<li>2.6. <a href="#FileStream">FileStream</a>
+</li>
+<li>2.7. <a href="#FileSuccessCallback">FileSuccessCallback</a>
+</li>
+<li>2.8. <a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a>
+</li>
+<li>2.9. <a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a>
+</li>
+<li>2.10. <a href="#FileStringSuccessCallback">FileStringSuccessCallback</a>
+</li>
+<li>2.11. <a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a>
+</li>
+<li>2.12. <a href="#FileArraySuccessCallback">FileArraySuccessCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#FileSystemManagerObject">FileSystemManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#FileSystemManager">FileSystemManager</a></td>
+<td>
+<div>void <a href="#FileSystemManager::resolve">resolve</a> (DOMString location, <a href="#FileSuccessCallback">FileSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#FileMode">FileMode</a>? mode)</div>
+<div>void <a href="#FileSystemManager::getStorage">getStorage</a> (DOMString label, <a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>void <a href="#FileSystemManager::listStorages">listStorages</a> (<a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>long <a href="#FileSystemManager::addStorageStateChangeListener">addStorageStateChangeListener</a> (<a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>void <a href="#FileSystemManager::removeStorageStateChangeListener">removeStorageStateChangeListener</a> (long watchId)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#FileSystemStorage">FileSystemStorage</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#File">File</a></td>
+<td>
+<div>DOMString <a href="#File::toURI">toURI</a> ()</div>
+<div>void <a href="#File::listFiles">listFiles</a> (<a href="#FileArraySuccessCallback">FileArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#FileFilter">FileFilter</a>? filter)</div>
+<div>void <a href="#File::openStream">openStream</a> (<a href="#FileMode">FileMode</a> mode, <a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional DOMString? encoding)</div>
+<div>void <a href="#File::readAsText">readAsText</a> (<a href="#FileStringSuccessCallback">FileStringSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional DOMString? encoding)</div>
+<div>void <a href="#File::copyTo">copyTo</a> (DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>void <a href="#File::moveTo">moveTo</a> (DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>
+<a href="#File">File</a> <a href="#File::createDirectory">createDirectory</a> (DOMString dirPath)</div>
+<div>
+<a href="#File">File</a> <a href="#File::createFile">createFile</a> (DOMString relativeFilePath)</div>
+<div>
+<a href="#File">File</a> <a href="#File::resolve">resolve</a> (DOMString filePath)</div>
+<div>void <a href="#File::deleteDirectory">deleteDirectory</a> (DOMString directoryPath, boolean recursive, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+<div>void <a href="#File::deleteFile">deleteFile</a> (DOMString filePath, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#FileFilter">FileFilter</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#FileStream">FileStream</a></td>
+<td>
+<div>void <a href="#FileStream::close">close</a> ()</div>
+<div>DOMString <a href="#FileStream::read">read</a> (long charCount)</div>
+<div>octet[] <a href="#FileStream::readBytes">readBytes</a> (long byteCount)</div>
+<div>DOMString <a href="#FileStream::readBase64">readBase64</a> (long byteCount)</div>
+<div>void <a href="#FileStream::write">write</a> (DOMString stringData)</div>
+<div>void <a href="#FileStream::writeBytes">writeBytes</a> (octet[] byteData)</div>
+<div>void <a href="#FileStream::writeBase64">writeBase64</a> (DOMString base64Data)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#FileSuccessCallback">FileSuccessCallback</a></td>
+<td><div>void <a href="#FileSuccessCallback::onsuccess">onsuccess</a> (<a href="#File">File</a> file)</div></td>
+</tr>
+<tr>
+<td><a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a></td>
+<td><div>void <a href="#FileSystemStorageArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#FileSystemStorage">FileSystemStorage</a>[] storages)</div></td>
+</tr>
+<tr>
+<td><a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a></td>
+<td><div>void <a href="#FileSystemStorageSuccessCallback::onsuccess">onsuccess</a> (<a href="#FileSystemStorage">FileSystemStorage</a> storage)</div></td>
+</tr>
+<tr>
+<td><a href="#FileStringSuccessCallback">FileStringSuccessCallback</a></td>
+<td><div>void <a href="#FileStringSuccessCallback::onsuccess">onsuccess</a> (DOMString fileStr)</div></td>
+</tr>
+<tr>
+<td><a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a></td>
+<td><div>void <a href="#FileStreamSuccessCallback::onsuccess">onsuccess</a> (<a href="#FileStream">FileStream</a> filestream)</div></td>
+</tr>
+<tr>
+<td><a href="#FileArraySuccessCallback">FileArraySuccessCallback</a></td>
+<td><div>void <a href="#FileArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#File">File</a>[] files)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="FileMode">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileMode"></a><h3>1.1. FileMode</h3>
+<div class="brief">
+ Specifies the file modes when it is opened.
+          </div>
+<pre class="webidl prettyprint">  enum FileMode { "r", "rw", "w", "a" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The file modes defined by this enumerator are:
+          </p>
+          <ul>
+            <li>
+r - read-only access            </li>
+            <li>
+rw - read and write access            </li>
+            <li>
+w - write access            </li>
+            <li>
+a - append access            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="FileSystemStorageType">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageType"></a><h3>1.2. FileSystemStorageType</h3>
+<div class="brief">
+ Specifies the type of storage.
+          </div>
+<pre class="webidl prettyprint">  enum FileSystemStorageType { "INTERNAL", "EXTERNAL" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <ul>
+            <li>
+INTERNAL - Internal storage is a storage that cannot be removed, such as a flash memory.            </li>
+            <li>
+EXTERNAL - External storage is removable storage, such as a USB drive or memory cards.            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="FileSystemStorageState">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageState"></a><h3>1.3. FileSystemStorageState</h3>
+<div class="brief">
+ Specifies the state of the storage.
+          </div>
+<pre class="webidl prettyprint">  enum FileSystemStorageState { "MOUNTED", "REMOVED", "UNMOUNTABLE" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <ul>
+            <li>
+MOUNTED - The device is mounted and can be browsed.            </li>
+            <li>
+REMOVED - The device has been removed. This states applies only to external drives.            </li>
+            <li>
+UNMOUNTABLE - The device cannot be mounted due to an error.            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="FileSystemManagerObject">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManagerObject"></a><h3>2.1. FileSystemManagerObject</h3>
+<div class="brief">
+ The FileSystemManagerObject interface defines what is instantiated by the Tizen object.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface FileSystemManagerObject {
+    readonly attribute <a href="#FileSystemManager">FileSystemManager</a> filesystem;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#FileSystemManagerObject">FileSystemManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+There is a <em>tizen.filesystem </em>object that allows accessing the functionality of the Filesystem API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="FileSystemManager">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager"></a><h3>2.2. FileSystemManager</h3>
+<div class="brief">
+ The FileSystemManager interface provides access to the Filesystem API.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface FileSystemManager {
+    readonly attribute long maxPathLength;
+
+    void resolve(DOMString location,
+                 <a href="#FileSuccessCallback">FileSuccessCallback</a> onsuccess,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                 optional <a href="#FileMode">FileMode</a>? mode) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getStorage(DOMString label,
+                    <a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void listStorages(<a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a> onsuccess,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addStorageStateChangeListener(<a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess,
+                                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeStorageStateChangeListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This manager interface exposes the Filesystem base API, and provides functionalities, such
+as determining root and default locations, resolving a given location into a file handle, and registering filesystem listeners for filesystem events.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var documentsDir;
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     console.log("File Name is " + files[i].name); // displays file name
+   }
+
+   var testFile = documentsDir.createFile("test.txt");
+
+   if (testFile != null) {
+     testFile.openStream(
+       "w",
+       function(fs) {
+         fs.write("HelloWorld");
+         fs.close();
+       }, function(e) {
+         console.log("Error " + e.message);
+       }, "UTF-8"
+     );
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+   'documents',
+   function(dir) {
+     documentsDir = dir;
+     dir.listFiles(onsuccess, onerror);
+   }, function(e) {
+     console.log("Error" + e.message);
+   }, "rw"
+ );
+ </pre>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="FileSystemManager::maxPathLength">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">maxPathLength</span></span><div class="brief">
+ The maximum path length limit for the current platform.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log("The maximum path length is " + tizen.filesystem.maxPathLength);
+ </pre>
+</div>
+</li></ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileSystemManager::resolve">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager::resolve"></a><code><b><span class="methodName">resolve</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Resolves a location to a file handle after validating it.<br>            </div>
+<div class="synopsis"><pre class="signature prettyprint">void resolve(DOMString location, <a href="#FileSuccessCallback">FileSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#FileMode">FileMode</a>? mode);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+A <em>location</em> can contain a virtual path like '<var>documents/some_file.txt</var>'
+or a file URI like '<var>file:///my_strange_path/some_file.png</var>'.
+A <em>location</em> is not allowed to contain the "." or ".." substrings in its value.
+            </p>
+            <p>
+The list of root locations that must be supported by a compliant implementation are:
+            </p>
+            <ul>
+              <li>
+documents - The default folder in which text documents (such as pdf, doc...) are stored by default in a device. For example, in some platforms it corresponds to the "My Documents" folder.              </li>
+              <li>
+images - The default folder in which still images, like pictures (in formats including jpg, gif, png, etc.), are stored in the device by default. For example, in some platforms it corresponds to the "My Images" folder.              </li>
+              <li>
+music - The default folder in which sound clips (in formats including mp3, aac, etc.) are stored in the device by default. For example, in some platforms it corresponds to the "My Music" folder.              </li>
+              <li>
+videos - The default folder in which video clips (in formats including avi, mp4, etc.) are stored in the device by default. For example, in some platforms it corresponds to the "My Videos" folder.              </li>
+              <li>
+downloads - The default folder in which downloaded files (from sources including browser, e-mail client, etc.) are stored by default in the device. For example, in some platforms it corresponds to the "Downloads" folder.              </li>
+              <li>
+ringtones: The default folder in which ringtones (such as mp3, etc) are stored in the device.              </li>
+              <li>
+camera : The default folder in which pictures and videos taken by a device are stored.              </li>
+              <li>
+wgt-package - The read-only folder to which the content of a widget file is extracted.              </li>
+              <li>
+wgt-private - The private folder in which a widget stores its information. This folder must be accessible only to the same widget and other widgets or applications must not be able to access the stored information.              </li>
+              <li>
+wgt-private-tmp - Temporary, the private folder in which a widget can store data that is available during a widget execution cycle. Content of this folder can be removed from this directory when the widget is closed or the Web Runtime is restarted. This folder must be accessible only to the same widget and other widgets or applications must not be able to access it.              </li>
+            </ul>
+            <p>
+The <em>mode </em>parameter specifies whether the resulting <em>File </em>object has read-only access ("r" access), read and write access ("rw" access), append access ("a" access), or write access ("w" access) to the root location containing directory tree.
+Permission for the requested access is obtained from the security framework. Once the resulting <em>File </em>object has access, access is inherited by any other <em>File </em>objects that are derived from this instance without any further reference to the security framework, as noted in descriptions of certain methods of <em>File</em>.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.
+For example, the mode is "w" for the read-only virtual roots (wgt-package and ringtones).              </li>
+              <li>
+NotFoundError - If the location input argument does not correspond to a valid location.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<p><span class="remark"> Remark : </span>
+ <var>camera</var> location is supported since Tizen 2.3. If a device does not support camera, NotSupportedError will be thrown.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">location</span>: 
+  Location to resolve that can be a virtual path or file URI
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when the location has been successfully resolved, passing the newly created <em>File </em>object
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error has occurred
+                </li>
+          <li class="param">
+<span class="name">mode</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+      Optional value to indicate the file access mode on all files and directories that can be reached from the <em>File </em>object passed to onsuccess <br>Default value of this parameter is <var>rw</var> if absent or <var>null</var>.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any of the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported (e.g. in the case of 'camera' virtual path if the device does not support camera)
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.filesystem.resolve(
+   'images',
+   function(dir) {
+     console.log("Mount point Name is " +  dir.path);
+   }, function(e) {
+     console.log("Error: " + e.message);
+   }, "r"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileSystemManager::getStorage">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager::getStorage"></a><code><b><span class="methodName">getStorage</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information about a storage based on its label.<br>For example: "MyThumbDrive", "InternalFlash".
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getStorage(DOMString label, <a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The <em>onsuccess </em>method receives the data structure as an input argument containing additional information about the drive.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If no drive was found with the given label.              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError - If any other error occurs.               </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">label</span>: 
+     Storage label
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when the list of storage is available, passing the storage list to the callback
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onStorage(storage) {
+     // Do something
+ }
+
+ function onStorageError(e) {
+ console.log("Storage not found!" + e.message);
+ }
+
+ tizen.filesystem.getStorage("music", onStorage, onStorageError);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileSystemManager::listStorages">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager::listStorages"></a><code><b><span class="methodName">listStorages</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Lists the available storages (both internal and external) on a device.
+The onsuccess method receives a list of the data structures as input argument containing additional information about each drive found.
+It gets storages which are labeled as 'internal0', labeled after virtual roots ('images', 'documents', etc.) and labeled with prefix 'removable_' (for external storages).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void listStorages(<a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Labels can differ depending on platform implementation.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when a list of storage is available, and passing the storage list to the callback
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function alertForCorruptedRemovableDrives(storages) {
+     for (var i = 0; i &lt; storages.length; i++) {
+         if (storages[i].type != "EXTERNAL")
+             continue;
+         if (storages[i].state == "UNMOUNTABLE")
+             console.log("External drive " + storages[i].label + " is corrupted.");
+     }
+ }
+
+ tizen.filesystem.listStorages(alertForCorruptedRemovableDrives);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileSystemManager::addStorageStateChangeListener">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager::addStorageStateChangeListener"></a><code><b><span class="methodName">addStorageStateChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a listener to subscribe to notifications when a change in storage state occurs.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addStorageStateChangeListener(<a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The most common usage for this method is to watch for any additions and removals of external storages.
+            </p>
+            <p>
+When executed, it returns a subscription identifier that identifies the watch operation. After returning the identifier, the watch operation is started asynchronously. The onsuccess method will be invoked every time a storage state changes. If the attempt fails, the onerror if present will be invoked with the relevant error type.
+            </p>
+            <p>
+The watch operation must continue until the removeStorageStateChangeListener() method is called with the corresponding subscription identifier.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when any change is made to storage state
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error occurs during the watch process
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Subscription identifier
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var watchID;
+ function onStorageStateChanged(storage) {
+     if (storage.state == "MOUNTED")
+         console.log("Storage " + storage.label + " was added!");
+ }
+
+ watchID = tizen.filesystem.addStorageStateChangeListener(onStorageStateChanged);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileSystemManager::removeStorageStateChangeListener">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemManager::removeStorageStateChangeListener"></a><code><b><span class="methodName">removeStorageStateChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes a listener to unsubscribe from a storage watch operation.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeStorageStateChangeListener(long watchId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the <em>watchId </em>argument is valid and corresponds to a subscription already in place, the watch process will be stopped and no further callbacks will be invoked.
+Otherwise, the method call has no effect.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">watchId</span>: 
+ Subscription identifier
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var watchID;
+ function onStorageStateChanged(storage) {
+     if (storage.state == "MOUNTED")
+         console.log("Storage " + storage.label + " was added!");
+     tizen.filesystem.removeStorageStateChangeListener(watchID);
+ }
+
+ watchID = tizen.filesystem.addStorageStateChangeListener(onStorageStateChanged);
+
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileSystemStorage">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorage"></a><h3>2.3. FileSystemStorage</h3>
+<div class="brief">
+ The FileSystemStorage interface gives additional information about a storage, such as if the device is mounted, if it is a removable drive or not, or the device's name.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface FileSystemStorage {
+    readonly attribute DOMString label;
+
+    readonly attribute <a href="#FileSystemStorageType">FileSystemStorageType</a> type;
+
+    readonly attribute <a href="#FileSystemStorageState">FileSystemStorageState</a> state;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+To retrieve the mount point, the resolve() method should be used using the label as argument.
+          </p>
+         </div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="FileSystemStorage::label">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">label</span></span><div class="brief">
+ The storage name.
+            </div>
+<div class="description">
+            <p>
+This attribute is used as an input for methods such as getStorage() and also used as <em>location</em> parameter for File.resolve() and FileSystemManager.resolve().
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="FileSystemStorage::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">FileSystemStorageType </span><span class="name">type</span></span><div class="brief">
+ The storage type as internal or external.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="FileSystemStorage::state">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">FileSystemStorageState </span><span class="name">state</span></span><div class="brief">
+ The storage state as mounted or not.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="File">
+<a class="backward-compatibility-anchor" name="::Filesystem::File"></a><h3>2.4. File</h3>
+<div class="brief">
+ The File interface represents the file abstraction in use.
+A file handle represents a file if the <em>isFile </em>property is <var>true</var>,
+and if the <em>isFile </em>property is <var>false</var>, the file handle represents a directory.
+If a file handle represents a directory, it can address files and directories.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface File {
+    readonly attribute <a href="#File">File</a>? parent;
+
+    readonly attribute boolean readOnly;
+
+    readonly attribute boolean isFile;
+
+    readonly attribute boolean isDirectory;
+
+    readonly attribute Date? created;
+
+    readonly attribute Date? modified;
+
+    readonly attribute DOMString path;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString fullPath;
+
+    readonly attribute unsigned long long fileSize;
+
+    readonly attribute long length;
+
+    DOMString toURI() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void listFiles(<a href="#FileArraySuccessCallback">FileArraySuccessCallback</a> onsuccess,
+                   optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                   optional <a href="#FileFilter">FileFilter</a>? filter) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void openStream(<a href="#FileMode">FileMode</a> mode,
+                    <a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                    optional DOMString? encoding) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void readAsText(<a href="#FileStringSuccessCallback">FileStringSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                    optional DOMString? encoding) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void copyTo(DOMString originFilePath,
+                DOMString destinationFilePath,
+                boolean overwrite,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void moveTo(DOMString originFilePath,
+                DOMString destinationFilePath,
+                boolean overwrite,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> createDirectory(DOMString dirPath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> createFile(DOMString relativeFilePath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> resolve(DOMString filePath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void deleteDirectory(DOMString directoryPath,
+                         boolean recursive,
+                         optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void deleteFile(DOMString filePath,
+                    optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The file object permissions for the file object location and tree rooted
+at that location depends upon the mode defined in the resolve method.
+When a File object creates a child File object,
+the new File object inherits its access rights from
+the parent object without any reference to the security framework, as
+noted in certain methods of File.
+          </p>
+          <p>
+A file handle representing a file can be opened for I/O operations,
+such as reading and writing.
+          </p>
+          <p>
+A file handle representing a directory can be used for listing all
+files and directories rooted as the file handle location.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     // alerts each name of dir's contents
+     console.log(files[i].name);
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message +
+               " occurred when listing the files in the selected folder");
+ }
+
+ // list directory contents
+ dir.listFiles(onsuccess, onerror);
+ </pre>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="File::parent">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">File </span><span class="name">parent</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The parent directory handle.
+            </div>
+<div class="description">
+            <p>
+This attribute is set to<var>null</var> if there is no parent directory. This also implies that this directory represents a root location.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // list directory contents
+ dir.listFiles(onsuccess, onerror);
+
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     // prints the file parent, should contain the
+     // same value for all the files in the loop
+     console.log("All the files should have the same parent " +
+                 files[i].parent);
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message +
+               " occurred when listing the files in the selected folder");
+ }
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::readOnly">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">readOnly</span></span><div class="brief">
+ The file/directory access state in the filesystem.
+            </div>
+<div class="description">
+            <p>
+This attribute is set to:
+            </p>
+            <ul>
+              <li>
+<var>true</var> - if object has read-only access at its location.              </li>
+              <li>
+<var>false</var> - if object has write access at its location.              </li>
+            </ul>
+            <p>
+This attribute represents the actual state of a file or directory in the filesystem. Its value is not affected by the mode used in FileSystemManager.resolve() that was used to create the <em>File </em>object from which this <em>File </em>object was obtained.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // lists directory contents
+ dir.listFiles(onsuccess, onerror);
+
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     if (files[i].readOnly)
+       console.log("Cannot write to file " + files[i].name);
+     else
+       console.log("Can write to file " + files[i].name);
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::isFile">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isFile</span></span><div class="brief">
+ The flag indicating whether it is a file.
+            </div>
+<div class="description">
+            <p>
+This attribute can have the following values:
+            </p>
+            <ul>
+              <li>
+<var>true</var> if this handle is a file              </li>
+              <li>
+<var>false</var> if this handle is a directory              </li>
+            </ul>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="File::isDirectory">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isDirectory</span></span><div class="brief">
+ The flag indicating whether it is a directory.
+            </div>
+<div class="description">
+            <p>
+This attribute can have the following values:
+            </p>
+            <ul>
+              <li>
+<var>true</var> if this handle is a directory              </li>
+              <li>
+<var>false</var> if this handle is a file              </li>
+            </ul>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="File::created">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">created</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The timestamp when a file is first created in the filesystem.
+            </div>
+<div class="description">
+            <p>
+This timestamp is equivalent to the timestamp when a call to createFile() succeeds.
+            </p>
+            <p>
+If the platform does not support this attribute, it will
+be <var>null</var>.
+            </p>
+            <p>
+It is unspecified and platform-dependent if the creation
+timestamp changes when a file is moved.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="File::modified">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">modified</span><span class="optional"> [nullable]</span></span><div class="brief">
+ The timestamp when the most recent modification is made to a file, usually when the last write operation succeeds.
+            </div>
+<div class="description">
+            <p>
+Opening a file for reading does not change the modification timestamp.
+            </p>
+            <p>
+If the platform does not support this attribute, it will be <em>null</em>.
+            </p>
+            <p>
+It is unspecified and platform-dependent if the modified
+timestamp changes when a file is moved.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log(file.modified); // displays the modification timestamp
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::path">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">path</span></span><div class="brief">
+ The path of a file after excluding its file name.
+            </div>
+<div class="description">
+            <p>
+It begins with the name of the root containing the file, followed by the path, including the directory containing the file, but excluding the file name.
+            </p>
+            <p>
+Except in some special cases of the File representing the root itself, the last
+character is always '/'.
+            </p>
+            <p>
+For example, if a file is located at music/ramones/volume1/RockawayBeach.mp3,
+the path is music/ramones/volume1/.
+            </p>
+            <p>
+For example, if a directory is located at music/ramones/volume1, the path is
+music/ramones/.
+            </p>
+            <p>
+For the virtual roots, the path is same as the name of the virtual root.
+For example, if the root is music, then the path is music. If the root is documents, then the path is documents.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log(file.path); // should be 'music/' if the file is music/foo.mp3
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ The file name after excluding the root name and any path components.
+            </div>
+<div class="description">
+            <p>
+This is the name of this file, excluding the root name and any other path components.
+            </p>
+            <p>
+For example, if a file is located at
+music/ramones/volume1/RockawayBeach.mp3, the <em>name </em> is 'RockawayBeach.mp3'.
+            </p>
+            <p>
+For example, if a directory is located at music/ramones/volume1, the
+<em>name </em> is be 'volume1'.
+            </p>
+            <p>
+For the special case of the root itself, the <em>name </em> is an empty string.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // should be foo.mp3 if the file path is music/foo.mp3
+ console.log(file.name);
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::fullPath">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">fullPath</span></span><div class="brief">
+ The full path of a file.
+            </div>
+<div class="description">
+            <p>
+It begins with the name of the root containing the file,
+and including the name of the file or directory itself.
+            </p>
+            <p>
+For instance, if the RockawayBeach.mp3 file is located at music/ramones/volume1/, then the <em>fullPath </em>is music/ramones/volume1/RockawayBeach.mp3.
+            </p>
+            <p>
+For a directory, if the volume1 directory is located at music/ramones/, then the <em>fullPath </em>is music/ramones/volume1.
+            </p>
+            <p>
+For the special case of the root itself, if the root is music, then the <em>fullPath </em>is music.
+            </p>
+            <p>
+The <em>fullPath </em>is always equal to path + name.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">  // should be music/track1.mp3 if the file is music/track1.mp3
+ console.log(file.fullPath);
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::fileSize">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">fileSize</span></span><div class="brief">
+ The size of this file, in bytes.
+            </div>
+<div class="description">
+            <p>
+If an attempt to read this attribute for a directory is made, <var>undefined</var> is returned. To retrieve the number of files and directories contained in the directory, use the <em>length </em>attribute.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // displays the file size
+ console.log(file.fileSize);
+ </pre>
+</div>
+</li>
+<li class="attribute" id="File::length">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">length</span></span><div class="brief">
+ The number of files and directories contained in a file handle.
+            </div>
+<div class="description">
+            <p>
+If an attempt to read this attribute for a file is made, <var>undefined</var> is returned. To retrieve the size of a file, use the <em>fileSize </em>attribute.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // '3' if the directory contains two files and one sub-directory
+ console.log(file.length);
+ </pre>
+</div>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="File::toURI">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::toURI"></a><code><b><span class="methodName">toURI</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Returns a URI for a file to identify an entry (such as using it as the src attribute on an HTML img element).
+The URI has no specific expiration, it should be valid at least as long as the file exists.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toURI();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If that URI corresponds to any of the public virtual roots (that is
+images, videos, music, documents, and downloads) the URI
+must be globally unique and could be used by any widget.
+            </p>
+            <p>
+If that URI corresponds to a file located in any a widget's private areas (such as wgt-package, wgt-private, wgt-private-tmp),
+the generated URI must be unique for that file and for the widget making the request (such as including some derived from the widget ID in the URI).
+These URIs must not be accessible to other widgets, apart from the one invoking this method.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString URI that identifies the file or <var>null </var>if an error occurs
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurred.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.filesystem.resolve('music/ramones/RockawayBeach.mp3', function(file) {
+   var audio = new Audio(file.toURI());
+   audio.play();
+   console.log(file.toURI());
+ });
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::listFiles">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::listFiles"></a><code><b><span class="methodName">listFiles</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Lists all files in a directory.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void listFiles(<a href="#FileArraySuccessCallback">FileArraySuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional <a href="#FileFilter">FileFilter</a>? filter);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The list of files is passed as a File[] in onsuccess() and contains directories and files. However, the directories "." and ".." must not be returned. Each <em>File </em>object that is part of the array must inherit all the access rights (that is, one of the values in FileMode) from the <em>File </em>object in which this method is invoked.
+            </p>
+            <p>
+If the filter is passed and contains valid values, only those directories and files in the directory that match the filter criteria specified in the <em>FileFilter </em>interface must be returned in the onsuccess() method. If no filter is passed, the filter is <var>null </var>or <var>undefined</var>, or the filter contains invalid values, the implementation must return the full list of files in the directory.
+            </p>
+            <p>
+If the directory does not contain any files or directories, or the filter criteria does not matched with any files or directories, the onsuccess() is invoked with an empty array.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+IOError - If the operation is launched on a file (not a directory).              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when the list operation has been successfully completed
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error has occurred
+                </li>
+          <li class="param">
+<span class="name">filter</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+    Criteria to restrict the listed files
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onsuccess(files) {
+   console.log("There are " + files.length  + " in the selected folder");
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+     "documents",
+     function(dir) {
+       dir.listFiles(onsuccess, onerror);
+     }, function(e) {
+       console.log("Error " + e.message);
+     }, "r"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::openStream">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::openStream"></a><code><b><span class="methodName">openStream</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Opens the file in the given mode supporting a specified encoding.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void openStream(<a href="#FileMode">FileMode</a> mode, <a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional DOMString? encoding);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This operation is performed asynchronously. If the file is opened successfully, the onsuccess() method is invoked with a <em>FileStream</em> that can be used for reading and writing the file, depending on the mode. The returned <em>FileStream </em>instance includes a file pointer, which represents the current position in the file. The file pointer, by default, is at the start of the file, except in the case of opening a file in append ("a") mode, in which case the file pointer points to the end of the file.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contains an invalid value.              </li>
+              <li>
+IOError - The operation is launched on a directory (not a file), the file is not valid or it does not exist.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">mode</span>: 
+      Mode in which the file is opened<br><b>"r"</b> for reading<br><b>"a"</b> for appending<br><b>"w"</b> for [over]writing<br><b>"rw"</b> for reading and writing<br>                </li>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when a file has been opened
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error has occurred
+                </li>
+          <li class="param">
+<span class="name">encoding</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+  Encoding to use for read/write operations on the file, at least the following encodings must be supported:<br>"<a href="http://www.ietf.org/rfc/rfc2279.txt">UTF-8</a>" default encoding<br>"<a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO-8859-1</a>" latin1 encoding<br>If no encoding is passed by the developer, then the default platform encoding must be used.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var documentsDir;
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     console.log("File Name is " + files[i].name); // displays file name
+   }
+
+   var testFile = documentsDir.createFile("test.txt");
+   if (testFile != null) {
+     testFile.openStream(
+         "w",
+         function(fs) {
+           fs.write("HelloWorld");
+           fs.close();
+         }, function(e) {
+           console.log("Error " + e.message);
+         }, "UTF-8"
+     );
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+     'documents',
+     function(dir) {
+       documentsDir = dir; dir.listFiles(onsuccess,onerror);
+     }, function(e) {
+       console.log("Error" + e.message);
+     }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::readAsText">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::readAsText"></a><code><b><span class="methodName">readAsText</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Reads the content of a file as a DOMString.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void readAsText(<a href="#FileStringSuccessCallback">FileStringSuccessCallback</a> onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror, optional DOMString? encoding);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the operation is successfully executed, the onsuccess() method is invoked and a DOMString is passed as input parameter that represents the file content in the format determined by the <em>encoding </em>parameter.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+IOError - If the operation is launched on a directory (not a file), the file is not valid, or the file does not exist.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">onsuccess</span>: 
+ Callback method to be invoked when a file has been successfully read
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error occurs while reading a file
+                </li>
+          <li class="param">
+<span class="name">encoding</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+  Encoding for read/write operations on a file, at least the following encodings must be supported:<br>"<a href="http://www.ietf.org/rfc/rfc2279.txt">UTF-8</a>" default encoding<br>"<a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO-8859-1</a>" latin1 encoding<br>If no encoding is passed by the developer, then the default platform encoding must be used.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     console.log("File Name is " + files[i].name); // displays file name
+     if (files[i].isDirectory == false)
+       files[i].readAsText(
+           function(str) {
+             console.log("The file content " + str);
+           }, function(e) {
+             console.log("Error " + e.message);
+           }, "UTF-8"
+       );
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ var documentsDir;
+ tizen.filesystem.resolve(
+     'documents',
+     function(dir) {
+       documentsDir = dir;
+       dir.listFiles(onsuccess,onerror);
+     }, function(e) {
+       console.log("Error" + e.message);
+     }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::copyTo">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::copyTo"></a><code><b><span class="methodName">copyTo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Copies (and overwrites if possible and specified) a file or a
+directory from a specified location to another specified location.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void copyTo(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The copy of the file or directory identified by the <em>originFilePath </em>parameter must be created in the path passed in the <em>destinationFilePath </em>parameter.
+            </p>
+            <p>
+The file or directory to copy must be under the Directory from which the method is invoked, otherwise the operation must not be performed.
+            </p>
+            <p>
+If the copy is performed successfully, the onsuccess() method is invoked.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+NotFoundError - If the <em>originFilePath </em>does not correspond to a valid file or <em>destinationPath </em>is not a valid path.              </li>
+              <li>
+IOError - If the file in which the copyTo() method is invoked is a file (and not a directory), <em>originFilePath </em>corresponds to a file or directory in use by another process, <em>overwrite </em>parameter is <var>false</var> and <em>destinationFilePath </em>corresponds to an existing file or directory.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">originFilePath</span>: 
+      Origin full virtual file or directory path and it must be under the current directory
+                </li>
+          <li class="param">
+<span class="name">destinationFilePath</span>: 
+ New full virtual file path or directory path
+                </li>
+          <li class="param">
+<span class="name">overwrite</span>: 
+           Attribute to determine whether overwriting is allowed or not <br>If set to <var>true</var>, it enforces overwriting an existing file.
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+           Callback method to be invoked when the file has been copied
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+             Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var documentsDir;
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     if (files[i].isDirectory == false) {
+       documentsDir.copyTo(files[i].fullPath,
+                           "images/backup/" + files[i].name,
+                           false,
+                           function() {console.log("file copied");});
+     }
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message +
+               " occurred when listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+     'documents',
+     function(dir) {
+       documentsDir = dir;
+       dir.listFiles(onsuccess, onerror);
+     }, function(e) {
+       console.log("Error" + e.message);
+     }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::moveTo">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::moveTo"></a><code><b><span class="methodName">moveTo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Moves (and overwrites if possible and specified) a file or a directory from a specified location to another.
+This operation is different from instantiating copyTo() and then deleting the original file, as on certain platforms, this operation does not require extra disk space.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void moveTo(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The file or directory identified by the <em>originFilePath </em>parameter is moved to the path passed in the <em>destinationFilePath </em>parameter.
+            </p>
+            <p>
+The file to move must be under the directory from which the method is invoked, else the operation can not be performed.
+            </p>
+            <p>
+If the file or directory is moved successfully, the onsuccess() method is invoked.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+NotFoundError - If <em>originFilePath </em>does not correspond to a valid file or <em>destinationPath </em>is not a valid path.              </li>
+              <li>
+IOError - If the <em>File </em>in which the moveTo() method is invoked is a file (not a directory), <em>originFilePath </em>corresponds to a file or directory in use by another process, overwrite parameter is <var>false</var> and <em>destinationFilePath </em>corresponds to an existing file or directory.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">originFilePath</span>: 
+      Origin full virtual file or directory path, and it must be under the current directory
+                </li>
+          <li class="param">
+<span class="name">destinationFilePath</span>: 
+ New full virtual file path or directory path
+                </li>
+          <li class="param">
+<span class="name">overwrite</span>: 
+           Flag indicating whether to overwrite an existing file.<br>When set to <var>true</var>, the files can be overwritten.
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+           Callback method to be invoked when the file has been moved
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+             Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var documentsDir;
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     if (files[i].isDirectory == false) {
+       documentsDir.moveTo(files[i].fullPath,
+                           "images/newFolder/" + files[i].name,
+                           false,
+                           function() {console.log("file moved");});
+     }
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message +
+               " occurred during listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+     'documents',
+     function(dir) {
+       documentsDir = dir;
+       dir.listFiles(onsuccess, onerror);
+     }, function(e) {
+       console.log("Error" + e.message);
+     }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::createDirectory">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::createDirectory"></a><code><b><span class="methodName">createDirectory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Creates a new directory.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#File">File</a> createDirectory(DOMString dirPath);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+A new directory will be created relative to the current
+directory that this operation is performed on. The implementation will attempt to
+create all necessary sub-directories specified in the dirPath, as well. The use of "."
+or ".." in path components is not supported.
+            </p>
+            <p>
+This operation can only be performed on file handlers that represent a directory (that is, <em>isDirectory</em> == <var>true</var>).
+            </p>
+            <p>
+If the directory is successfully created, it will be returned.
+            </p>
+            <p>
+In case the directory cannot be created, an error must be thrown with the appropriate error type.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">dirPath</span>: 
+ Relative directory path, and it only contains characters supported by the underlying filesystem
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ File File handle of the new directory.
+The new <em>File </em>object has "rw" access rights, as it inherits this from the <em>File </em>object on which the createDirectory() method is called.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if the dirPath already exists,  if the file in which the createDirectory() method is invoked is a file (and not a directory).
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the dirPath does not contain a valid path.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var dir; //Directory object obtained from filesystem API
+ var newDir = dir.createDirectory("newDir");
+ var anotherNewDir = dir.createDirectory("newDir1/subNewDir1");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::createFile">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::createFile"></a><code><b><span class="methodName">createFile</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Creates a empty new file in a specified location that is relative to the directory indicated by current <em>File</em> object's <em>path</em> attribute.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#File">File</a> createFile(DOMString relativeFilePath);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The use of "." or ".." in path components is not supported. This operation can only be performed on file handlers that represent a directory (that is, <em>isDirectory </em>== <var>true</var>).
+            </p>
+            <p>
+If the file is successfully created, a file handler must be returned by this method.
+            </p>
+            <p>
+In case the file cannot be created, an error must be thrown with the appropriate error type.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">relativeFilePath</span>: 
+ New file path and it should only contain characters supported by the underlying Filesystem
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ File File handle for the new empty file.
+The new <em>File </em>object has "rw" access rights, as it inherits this from the <em>File <em>object on which the createFile() method is
+called.
+</em></em>              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if the filePath already exists, if the <em>File </em>in which the createFile() method is invoked is a file (not a directory).
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the filePath contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var newFile = dir.createFile("newFilePath");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::resolve">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::resolve"></a><code><b><span class="methodName">resolve</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Resolves an existing file or directory relative to the current directory this operation is performed on, and returns a file handle for it.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#File">File</a> resolve(DOMString filePath);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The <em>filePath</em> is not allowed to contain the "." or ".." substrings in its value.
+            </p>
+            <p>
+The encoding of file paths is <a href="http://www.ietf.org/rfc/rfc2279.txt">UTF-8</a>.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">filePath</span>: 
+ Relative file path or file URI to resolve
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ File File handle of the file.
+The new <em>File </em>object inherits its access rights from the <em>File </em>object on which this resolve() method is called.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the file path contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type IOError, if the method is executed in a <em>File </em>object that does not represent a directory (that is, <em>isDirectory </em>attribute is <var>false</var>).
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if a file does not exist for the passed file path.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var file;
+ // Resolves helloWorld.doc file that is located in the
+ // documents root location
+ tizen.filesystem.resolve(
+   'documents',
+   function(dir) { file = dir.resolve("helloWorld.doc");},
+   function(e) { console.log("Error" + e.message);},
+   "rw");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::deleteDirectory">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::deleteDirectory"></a><code><b><span class="methodName">deleteDirectory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Deletes a specified directory and directory tree if specified.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void deleteDirectory(DOMString directoryPath, boolean recursive, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method attempts to asynchronously delete a directory or directory tree under the current directory.
+            </p>
+            <p>
+If the <em>recursive </em>parameter is set to <var>true</var>, all the directories and files under the specified directory must be deleted. If the <em>recursive </em>parameter is set to <var>false</var>, the directory is only deleted if it is empty, otherwise an IOError error type will be passed in onerror().
+            </p>
+            <p>
+If the deletion is performed successfully, the onsuccess() is invoked.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+NotFoundError -If the passed directory does not correspond to a valid directory.              </li>
+              <li>
+IOError - If the <em>File </em>in which the delete method is invoked is a file (and not a directory), the directory is in use by another process or the directory is not empty and <em>recursive </em>argument is <var>false</var>.<br>This code is also used if a recursive deletion partially fails and any data deleted so far cannot be recovered. This may occur due to the lack of filesystem permissions or if any directories or files are already opened by other processes.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">directoryPath</span>: 
+ Full virtual path to the directory to delete (must be under the current one)
+                </li>
+          <li class="param">
+<span class="name">recursive</span>: 
+     Flag indicating whether the deletion is recursive or not <br>When set to <var>true</var> recursive deletion is allowed. Also, this function deletes
+all data in all subdirectories and so needs to be used with caution.
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+     Callback method to be invoked when a directory is successfully deleted
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+       Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var documentsDir;
+ function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     if (files[i].isDirectory) {
+       documentsDir.deleteDirectory(
+           files[i].fullPath,
+           false,
+           function() {
+             console.log("Directory Deleted");
+           }, function(e) {
+             console.log("Error" + e.message);
+           });
+     }
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ tizen.filesystem.resolve(
+     'documents',
+     function(dir) {
+       documentsDir = dir;
+       dir.listFiles(onsuccess,onerror);
+     }, function(e) {
+       console.log("Error" + e.message);
+     }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+<dt class="method" id="File::deleteFile">
+<a class="backward-compatibility-anchor" name="::Filesystem::File::deleteFile"></a><code><b><span class="methodName">deleteFile</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Deletes a specified file.<br>This function attempts to asynchronously delete a file under the current directory.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void deleteFile(DOMString filePath, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the deletion is performed successfully, the onsuccess() is invoked.
+            </p>
+            <p>
+The ErrorCallback is launched with these error types:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+              <li>
+NotFoundError - If the file does not correspond to a valid file.              </li>
+              <li>
+IOError - If the file in which the delete() method is invoked is a file (not a directory), the file is in use by another process, or there is no permission in the file system.              </li>
+              <li>
+UnknownError - If any other error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">filePath</span>: 
+  Full virtual path to the file to delete (must be under the current directory)
+                </li>
+          <li class="param">
+<span class="name">onsuccess</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when the file is successfully deleted
+                </li>
+          <li class="param">
+<span class="name">onerror</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+   Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onsuccess(files) {
+   for (var i = 0; i &lt; files.length; i++) {
+     if (!files[i].isDirectory) {
+       documentsDir.deleteFile(
+           files[i].fullPath,
+           function() {
+             console.log("File Deleted");
+           }, function(e) {
+             console.log("Error" + e.message);
+           });
+     }
+   }
+ }
+
+ function onerror(error) {
+   console.log("The error " + error.message + " occurred when listing the files in the selected folder");
+ }
+
+ var documentsDir;
+ tizen.filesystem.resolve(
+   'documents',
+   function(dir) {
+     documentsDir = dir;
+     dir.listFiles(onsuccess,onerror);
+   }, function(e) {
+     console.log("Error" + e.message);
+   }, "rw"
+ );
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="FileFilter">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileFilter"></a><h3>2.5. FileFilter</h3>
+<div class="brief">
+ The dictionary that defines attributes to filter the items returned by the listFiles() method.
+          </div>
+<pre class="webidl prettyprint">  dictionary FileFilter {
+    DOMString name;
+
+    Date startModified;
+
+    Date endModified;
+
+    Date startCreated;
+
+    Date endCreated;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+When this dictionary is passed in the listFiles() method, the result-set of the listFiles() method must only contain the file items entries that match the attribute values of the filter.
+          </p>
+          <p>
+A file item only matches the <em>FileFilter </em>object if all the attributes of the file item match all the attribute values of the filter which are defined (that is, only matching values other than <var>undefined </var>or <var>null</var>). This is similar to an SQL "AND" operation.
+          </p>
+          <p>
+An attribute of the file entry matches the <em>FileFilter </em>attribute value in accordance with the
+following rules:
+          </p>
+          <ul>
+            <li>
+For <em>FileFilter </em>attributes of type DOMString, an entry matches this value only if its corresponding attribute is an exact match. If the filter contains U+0025 'PERCENT SIGN' it is interpreted as a wildcard character and '%' matches any string of any length, including no length. If wildcards are used, the behavior is similar to the LIKE condition in SQL. To specify that a 'PERCENT SIGN' character is to be considered literally instead of interpreting it as a wildcard, developers can escape it with the backslash character (\).
+The matching is not case sensitive, such as "FOO" matches a "foo" or an "f%" filter.
+            </li>
+            <li>
+For File entry attributes of type Date, attributes start and end are included to allow filtering of File entries between two supplied dates. If either or both of these attributes are specified, the following rules apply:<br>A) If both start and end dates are specified (that is, other than <var>null</var>), a File entry matches the filter if its corresponding attribute is the same as either start or end or between the two supplied dates (that is, after start and before end).<br>B) If only the start attribute contains a value (other than <var>null</var>), a File entry matches the filter if its corresponding attribute is later than or equal to the start one.<br>C) If only the end date contains a value (other than <var>null</var>), a file matches the filter if its corresponding attribute is earlier than or equal to the end date.
+            </li>
+          </ul>
+         </div>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="FileFilter::name"><span class="attrName">DOMString name</span></dt>
+<dd>
+<div class="brief">
+ The File name attribute filter.
+            </div>
+<div class="description">
+            <p>
+Files that have a name that corresponds with this attribute (either exactly or with the specified wildcards) match this filtering criteria.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="FileFilter::startModified"><span class="attrName">Date startModified</span></dt>
+<dd>
+<div class="brief">
+ The File modified attribute filter.
+            </div>
+<div class="description">
+            <p>
+Files with modified date later than this attribute or equal to it match the filtering criteria.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="FileFilter::endModified"><span class="attrName">Date endModified</span></dt>
+<dd>
+<div class="brief">
+ The File modified attribute filter.
+            </div>
+<div class="description">
+            <p>
+Files with modified date earlier than this attribute or equal to it match the filtering criteria.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="FileFilter::startCreated"><span class="attrName">Date startCreated</span></dt>
+<dd>
+<div class="brief">
+ The File created attribute filter.
+            </div>
+<div class="description">
+            <p>
+Files with created date later than this attribute or equal to it match the filtering criteria.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="FileFilter::endCreated"><span class="attrName">Date endCreated</span></dt>
+<dd>
+<div class="brief">
+ The File created attribute filter.
+            </div>
+<div class="description">
+            <p>
+Files with created date earlier than this attribute or equal to it match the filtering criteria.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileStream">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream"></a><h3>2.6. FileStream</h3>
+<div class="brief">
+ The FileStream interface represents a handle to a File opened for read and/or write operations.
+Read and write operations are performed relative to a position attribute, which is a pointer that represents the current position in the file.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface FileStream {
+    readonly attribute boolean eof;
+
+    attribute long position setraises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute long bytesAvailable;
+
+    void close();
+
+    DOMString read(long charCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    octet[] readBytes(long byteCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString readBase64(long byteCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void write(DOMString stringData) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void writeBytes(octet[] byteData) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void writeBase64(DOMString base64Data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+A series of read/write methods are available that permit both binary and text to be processed.
+          </p>
+          <p>
+Once a file stream is closed, any operation attempt made on this stream results in a standard JavaScript error.
+          </p>
+          <p>
+The read/write operations in this interface do not throw any security exceptions as the access rights are expected to be granted through the initial resolve() method or through the openStream() method of the <em>File </em>interface. Therefore, all actions performed on a successfully resolved File and FileStream are expected to succeed. This avoids successive asynchronous calls and may potentially increase application for a user.
+          </p>
+         </div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="FileStream::eof">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">eof</span></span><div class="brief">
+ The flag indicating whether the current file pointer is at the end of the file.
+            </div>
+<div class="description">
+            <p>
+If set to <var>true</var>, this attribute indicates that the file pointer is at the end of the file.
+            </p>
+            <p>
+If set to <var>false</var>, this attribute indicates that the file pointer is not at the end of the file and so it is anywhere within the file.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> if (stream.eof) {
+   // file has been read completely
+ }
+ </pre>
+</div>
+</li>
+<li class="attribute" id="FileStream::position">
+<span class="attrName"><span class="type">long </span><span class="name">position</span></span><div class="brief">
+ The flag indicating the stream position for reads/writes.
+            </div>
+<div class="description">
+            <p>
+The stream position is an offset of bytes from the start of the file stream. When invoking an operation that reads or writes from the stream, the operation will take place from the byte defined by this <em>position </em>attribute. If the read or write operation is successful, the position of the stream is advanced by the number of bytes read or written. If the read/write operation is not successful, the position of the stream is unchanged.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log(stream.position); // displays current stream position
+ // alters current stream position to the begin of the file,
+ // like seek() in C
+ stream.position = 0;
+ </pre>
+</div>
+</li>
+<li class="attribute" id="FileStream::bytesAvailable">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">bytesAvailable</span></span><div class="brief">
+ The number of bytes that are available for reading from the stream.
+            </div>
+<div class="description">
+            <p>
+The number of bytes available for reading is the maximum amount of bytes that can be read in the next read operation.
+It corresponds to the number of bytes available after the file pointer denoted by the <em>position </em>attribute.
+            </p>
+            <p>
+<var>-1 </var>if EOF is <var>true</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log(stream.bytesAvailable); // displays the available bytes to be read
+ </pre>
+</div>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileStream::close">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::close"></a><code><b><span class="methodName">close</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Closes this FileStream.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void close();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Flushes any pending buffered writes and closes the File. Always succeeds.
+Note that pending writes might not succeed.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> stream.close(); // closes this stream, no subsequent access to stream allowed
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::read">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::read"></a><code><b><span class="methodName">read</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Reads the specified number of characters from the position of the file pointer in a FileStream and returns the characters as a string.
+The resulting string length might be shorter than <em>charCount </em>if EOF is <var>true</var>.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString read(long charCount);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">charCount</span>: 
+ Number of characters being read
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString Array of read characters as a string
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if a read error occurs, such as the bytes in the stream cannot be decoded with the encoding in use.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError,  if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var text = stream.read(file.fileSize);
+ stream.close();
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::readBytes">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::readBytes"></a><code><b><span class="methodName">readBytes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Reads the specified number of bytes from a FileStream.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">octet[] readBytes(long byteCount);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">byteCount</span>: 
+ Number of bytes to read
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ octet[] Result of read bytes as a byte (or number) array
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if a read error occurs.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if this functionality is not allowed.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // reads up to 256 bytes from the stream
+ var raw = stream.readBytes(256);
+ for (var i = 0; i &lt; raw.length; i++) {
+   // raw[i] contains the i-th byte of the current data chunk
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::readBase64">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::readBase64"></a><code><b><span class="methodName">readBase64</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Reads the specified number of bytes from this FileStream, encoding the result in base64.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString readBase64(long byteCount);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.read
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">byteCount</span>: 
+ Number of bytes to read
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString Array of read characters as base64 encoding string.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if a read error occurs.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if this functionality is not allowed.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // reads up to 256 bytes from the stream
+ var base64 = stream.readBase64(256);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::write">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::write"></a><code><b><span class="methodName">write</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Writes the specified DOMString to a FileStream.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void write(DOMString stringData);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">stringData</span>: 
+ Actual string to write
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if a write error occurs.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var text = "Hello world";
+ stream.write(text);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::writeBytes">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::writeBytes"></a><code><b><span class="methodName">writeBytes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Writes the specified bytes to this FileStream.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void writeBytes(octet[] byteData);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">byteData</span>: 
+ Byte data array being written
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if a write error occurs.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var bytes = in.readBytes(256);
+ // writes the bytes read from in to out
+ out.writeBytes(bytes);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FileStream::writeBase64">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStream::writeBase64"></a><code><b><span class="methodName">writeBase64</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Writes the result to this FileStream after converting the specified base64 DOMString to bytes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void writeBase64(DOMString base64Data);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+      http://tizen.org/privilege/filesystem.write
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">base64Data</span>: 
+ The base64 data to written
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type IOError, if an error occurs during writeBase64.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the input parameter contains an invalid value
+(e.g. the base64Data input parameter is not a valid Base64 sequence).
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var base64 = in.readBase64(256);
+ // writes the base64 data read from in to out
+ out.writeBase64(base64);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSuccessCallback"></a><h3>2.7. FileSuccessCallback</h3>
+<div class="brief">
+ The FileSuccessCallback interface defines file system success callback with a <em>File</em> object as input argument.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileSuccessCallback {
+    void onsuccess(<a href="#File">File</a> file);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It is used in asynchronous operations, such as FileSystemManager.resolve(), copying, moving, and deleting files.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#File">File</a> file);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">file</span>: 
+ File resulting from the asynchronous call
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileSystemStorageArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageArraySuccessCallback"></a><h3>2.8. FileSystemStorageArraySuccessCallback</h3>
+<div class="brief">
+ The FileSystemStorageArraySuccessCallback callback interface specifies a success callback with an array of FileSystemStorage objects as input argument.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileSystemStorageArraySuccessCallback {
+    void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a>[] storages);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It is used in asynchronous operations, such as FileSystemManager.listStorages().
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileSystemStorageArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a>[] storages);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">storages</span>: 
+ List of available storage devices
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileSystemStorageSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageSuccessCallback"></a><h3>2.9. FileSystemStorageSuccessCallback</h3>
+<div class="brief">
+ The FileSystemStorageSuccessCallback callback interface specifies a success callback with a <em>FileSystmeStorage </em>object as input argument.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileSystemStorageSuccessCallback {
+    void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a> storage);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It is used in asynchronous operations, such as FileSystemManager.getStorage() and FileSystemManager.addStorageStateChangeListener().
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileSystemStorageSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileSystemStorageSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a> storage);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">storage</span>: 
+ Storage device structure
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileStringSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStringSuccessCallback"></a><h3>2.10. FileStringSuccessCallback</h3>
+<div class="brief">
+ The FileStringSuccessCallback callback interface specifies a success callback with a DOMString object as input argument.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileStringSuccessCallback {
+    void onsuccess(DOMString fileStr);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It is used in asynchronous operations, such as File.readAsText().
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileStringSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStringSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(DOMString fileStr);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">fileStr</span>: 
+ File represented as a DOMString resulting from the asynchronous call
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileStreamSuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStreamSuccessCallback"></a><h3>2.11. FileStreamSuccessCallback</h3>
+<div class="brief">
+ The FileStreamSuccessCallback interface specifies a success callback with a <em>FileStream </em>object as input argument.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileStreamSuccessCallback {
+    void onsuccess(<a href="#FileStream">FileStream</a> filestream);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It is used by asynchronous methods, such as File.openStream().
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileStreamSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileStreamSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the File.openStream asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#FileStream">FileStream</a> filestream);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">filestream</span>: 
+ Filestream to access file content
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FileArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileArraySuccessCallback"></a><h3>2.12. FileArraySuccessCallback</h3>
+<div class="brief">
+ The FileArraySuccessCallback interface defines file system specific success callback for listing methods.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface FileArraySuccessCallback {
+    void onsuccess(<a href="#File">File</a>[] files);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success callback with a function taking an array of <em>File </em>objects as input argument. It is used in asynchronous methods, such as File.listFiles().
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FileArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Filesystem::FileArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#File">File</a>[] files);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">files</span>: 
+ Files resulting from the asynchronous call
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Filesystem {
+  enum FileMode { "r", "rw", "w", "a" };
+
+  enum FileSystemStorageType { "INTERNAL", "EXTERNAL" };
+
+  enum FileSystemStorageState { "MOUNTED", "REMOVED", "UNMOUNTABLE" };
+
+  [NoInterfaceObject] interface FileSystemManagerObject {
+    readonly attribute <a href="#FileSystemManager">FileSystemManager</a> filesystem;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#FileSystemManagerObject">FileSystemManagerObject</a>;
+
+  [NoInterfaceObject] interface FileSystemManager {
+    readonly attribute long maxPathLength;
+
+    void resolve(DOMString location,
+                 <a href="#FileSuccessCallback">FileSuccessCallback</a> onsuccess,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                 optional <a href="#FileMode">FileMode</a>? mode) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getStorage(DOMString label,
+                    <a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void listStorages(<a href="#FileSystemStorageArraySuccessCallback">FileSystemStorageArraySuccessCallback</a> onsuccess,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long addStorageStateChangeListener(<a href="#FileSystemStorageSuccessCallback">FileSystemStorageSuccessCallback</a> onsuccess,
+                                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeStorageStateChangeListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface FileSystemStorage {
+    readonly attribute DOMString label;
+
+    readonly attribute <a href="#FileSystemStorageType">FileSystemStorageType</a> type;
+
+    readonly attribute <a href="#FileSystemStorageState">FileSystemStorageState</a> state;
+  };
+
+  [NoInterfaceObject] interface File {
+    readonly attribute <a href="#File">File</a>? parent;
+
+    readonly attribute boolean readOnly;
+
+    readonly attribute boolean isFile;
+
+    readonly attribute boolean isDirectory;
+
+    readonly attribute Date? created;
+
+    readonly attribute Date? modified;
+
+    readonly attribute DOMString path;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString fullPath;
+
+    readonly attribute unsigned long long fileSize;
+
+    readonly attribute long length;
+
+    DOMString toURI() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void listFiles(<a href="#FileArraySuccessCallback">FileArraySuccessCallback</a> onsuccess,
+                   optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                   optional <a href="#FileFilter">FileFilter</a>? filter) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void openStream(<a href="#FileMode">FileMode</a> mode,
+                    <a href="#FileStreamSuccessCallback">FileStreamSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                    optional DOMString? encoding) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void readAsText(<a href="#FileStringSuccessCallback">FileStringSuccessCallback</a> onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror,
+                    optional DOMString? encoding) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void copyTo(DOMString originFilePath,
+                DOMString destinationFilePath,
+                boolean overwrite,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void moveTo(DOMString originFilePath,
+                DOMString destinationFilePath,
+                boolean overwrite,
+                optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> createDirectory(DOMString dirPath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> createFile(DOMString relativeFilePath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#File">File</a> resolve(DOMString filePath) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void deleteDirectory(DOMString directoryPath,
+                         boolean recursive,
+                         optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void deleteFile(DOMString filePath,
+                    optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? onsuccess,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? onerror) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+
+  dictionary FileFilter {
+    DOMString name;
+
+    Date startModified;
+
+    Date endModified;
+
+    Date startCreated;
+
+    Date endCreated;
+  };
+
+  [NoInterfaceObject] interface FileStream {
+    readonly attribute boolean eof;
+
+    attribute long position setraises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute long bytesAvailable;
+
+    void close();
+
+    DOMString read(long charCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    octet[] readBytes(long byteCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString readBase64(long byteCount) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void write(DOMString stringData) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void writeBytes(octet[] byteData) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void writeBase64(DOMString base64Data) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileSuccessCallback {
+    void onsuccess(<a href="#File">File</a> file);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileSystemStorageArraySuccessCallback {
+    void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a>[] storages);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileSystemStorageSuccessCallback {
+    void onsuccess(<a href="#FileSystemStorage">FileSystemStorage</a> storage);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileStringSuccessCallback {
+    void onsuccess(DOMString fileStr);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileStreamSuccessCallback {
+    void onsuccess(<a href="#FileStream">FileStream</a> filestream);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface FileArraySuccessCallback {
+    void onsuccess(<a href="#File">File</a>[] files);
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/fmradio-state.png b/org.tizen.web.apireference/html/device_api/tv/tizen/fmradio-state.png
new file mode 100755 (executable)
index 0000000..71ad363
Binary files /dev/null and b/org.tizen.web.apireference/html/device_api/tv/tizen/fmradio-state.png differ
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/keymanager.html b/org.tizen.web.apireference/html/device_api/tv/tizen/keymanager.html
new file mode 100644 (file)
index 0000000..ed19888
--- /dev/null
@@ -0,0 +1,653 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>KeyManager API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::KeyManager">
+<div class="title"><h1>KeyManager API</h1></div>
+<div class="brief">
+ The KeyManager API provides a secure repository for storing, retrieving and removing the sensitive data of users and their applications. Users can protect the data with passwords.
+        </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#RawData">RawData</a>
+</li>
+<li>
+                    1.2. <a href="#PermissionType">PermissionType</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#KeyManagerObject">KeyManagerObject</a>
+</li>
+<li>2.2. <a href="#KeyManager">KeyManager</a>
+</li>
+<li>2.3. <a href="#KeyManagerAlias">KeyManagerAlias</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#KeyManagerObject">KeyManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#KeyManager">KeyManager</a></td>
+<td>
+<div>void <a href="#KeyManager::saveData">saveData</a> (DOMString name, <a href="#RawData">RawData</a> rawData, optional DOMString? password, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#KeyManager::removeData">removeData</a> (<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias)</div>
+<div>
+<a href="#RawData">RawData</a> <a href="#KeyManager::getData">getData</a> (<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, optional DOMString? password)</div>
+<div>
+<a href="#KeyManagerAlias">KeyManagerAlias</a>[] <a href="#KeyManager::getDataAliasList">getDataAliasList</a> ()</div>
+<div>void <a href="#KeyManager::setPermission">setPermission</a> (<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, <a href="package.html#PackageId">PackageId</a> packageId, <a href="#PermissionType">PermissionType</a> permissionType, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#KeyManagerAlias">KeyManagerAlias</a></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="RawData">
+<a class="backward-compatibility-anchor" name="::KeyManager::RawData"></a><h3>1.1. RawData</h3>
+<div class="brief">
+ Data to be stored or retrieved.
+          </div>
+<pre class="webidl prettyprint">  typedef DOMString RawData;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+</div>
+<div class="enum" id="PermissionType">
+<a class="backward-compatibility-anchor" name="::KeyManager::PermissionType"></a><h3>1.2. PermissionType</h3>
+<div class="brief">
+ An enumerator to indicate permissions.
+          </div>
+<pre class="webidl prettyprint">  enum PermissionType{
+      "NONE",
+      "READ",
+      "REMOVE",
+      "READ_REMOVE"
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ NONE - Clears or removes permissions             </li>
+            <li>
+ READ - Permission to read data             </li>
+            <li>
+ REMOVE - Permission to remove data             </li>
+            <li>
+ READ_REMOVE - Permission to read and remove data             </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="KeyManagerObject">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManagerObject"></a><h3>2.1. KeyManagerObject</h3>
+<div class="brief">
+ The KeyManagerObject interface defines what is instantiated by the <em>Tizen </em>object from the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface KeyManagerObject {
+      readonly attribute <a href="#KeyManager">KeyManager</a> keymanager;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#KeyManagerObject">KeyManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.keymanager </em>object allows access to the functionality of the KeyManager API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="KeyManager">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager"></a><h3>2.2. KeyManager</h3>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface KeyManager {
+
+    void saveData(DOMString name,
+                  <a href="#RawData">RawData</a> rawData,
+                  optional DOMString? password,
+                  optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RawData">RawData</a> getData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, optional DOMString? password) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#KeyManagerAlias">KeyManagerAlias</a>[] getDataAliasList() raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setPermission(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias,
+                       <a href="package.html#PackageId">PackageId</a> packageId,
+                       <a href="#PermissionType">PermissionType</a> permissionType,
+                       optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="KeyManager::saveData">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager::saveData"></a><code><b><span class="methodName">saveData</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Saves and stores data as a <a href="#KeyManagerAlias">KeyManagerAlias</a> inside the KeyManager.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void saveData(DOMString name, <a href="#RawData">RawData</a> rawData, optional DOMString? password, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+On success, this method will add a <a href="#KeyManagerAlias">KeyManagerAlias</a> into the KeyManager. The <em>name</em> attribute of that KeyManagerAlias will be set to be the value of the <em>name</em> parameter which is used in this method call. The <em>packageId</em> attribute of that KeyManagerAlias will automatically be set to be the package ID of the application which calls this method.
+            </p>
+            <p>
+The <em>ErrorCallback</em> is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError - If the method cannot be completed because of an unknown error.              </li>
+            </ul>
+           </div>
+<div class="description">
+            <p>
+Warning: http://tizen.org/privilege/keymanager (public level privilege) MUST NOT be declared to use this API since 3.0.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">name</span>: 
+ Name to identify the data - this will be the <em>name</em> attribute of the <a href="#KeyManagerAlias">KeyManagerAlias</a> which this method adds, on success, into the KeyManager
+                </li>
+          <li class="param">
+<span class="name">rawData</span>: 
+ Raw data to be stored
+                </li>
+          <li class="param">
+<span class="name">password</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Password to use for encrypting the data
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback function that is called when data is successfully saved
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback function that is called when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var data_name = "data1", raw_data = "my data";
+
+ function onSave() {
+     console.log("Successfully saved data");
+ }
+
+ tizen.keymanager.saveData(data_name, raw_data, null, onSave);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="KeyManager::removeData">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager::removeData"></a><code><b><span class="methodName">removeData</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes data from the KeyManager.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+To remove data, an application must have permission to remove that data. By default, an application which saved data into the KeyManager has permission to remove the data. An application can also use the <a href="#KeyManager::setPermission">setPermission</a> method to allow another application to remove its data.
+            </p>
+            <p>
+If an application calls this method to remove data which it saved into the KeyManager, the <em>dataAlias</em> parameter does not require the <em>packageId</em> attribute.
+            </p>
+           </div>
+<div class="description">
+            <p>
+Warning: http://tizen.org/privilege/keymanager (public level privilege) MUST NOT be declared to use this API since 3.0.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">dataAlias</span>: 
+ Alias of the data to remove
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the dataAlias cannot be found.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var data_name = "data1", raw_data = "my data";
+
+ function onSave() {
+
+     // do something
+
+     // Dictionary does not require package ID because the
+     // application which is calling removeData() saved "data1"
+     tizen.keymanager.removeData({
+         "name": data_name
+     });
+ }
+
+ tizen.keymanager.saveData(data_name, raw_data, null, onSave);
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var aliases = tizen.keymanager.getDataAliasList();
+
+ if (aliases.length != 0) {
+     // Assuming the application calling removeData() has permission
+     // to remove aliases[0]
+     var app_data = tizen.keymanager.removeData(aliases[0]);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="KeyManager::getData">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager::getData"></a><code><b><span class="methodName">getData</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets raw data from the KeyManager.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#RawData">RawData</a> getData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, optional DOMString? password);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+To get raw data, an application must have permission to get that raw data. By default, an application which saved raw data into the KeyManager has permission to get that raw data. An application can also use the <a href="#KeyManager::setPermission">setPermission</a> method to allow another application to get and read its raw data.
+            </p>
+            <p>
+If an application calls this method to retrieve raw data which it saved into the KeyManager, the <em>dataAlias</em> parameter does not require the <em>packageId</em> attribute.
+            </p>
+           </div>
+<div class="description">
+            <p>
+Warning: http://tizen.org/privilege/keymanager (public level privilege) MUST NOT be declared to use this API since 3.0.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">dataAlias</span>: 
+ Alias of the data to get
+                </li>
+          <li class="param">
+<span class="name">password</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Password which was used to encrypt the data
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ RawData Data.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the dataAlias cannot be found.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type VerificationError, if the method cannot be completed because an incorrect password is used.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of a database access failure or any other unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var data_name = "data1", raw_data = "my data";
+
+ function onSave() {
+     // Dictionary does not require package ID because the
+     // application which is calling getData() saved "data1"
+     var app_data = tizen.keymanager.getData({
+         "name": data_name
+     });
+     console.log("App data: " + app_data + " was retrieved");
+ }
+
+ tizen.keymanager.saveData(data_name, raw_data, null, onSave);
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var aliases = tizen.keymanager.getDataAliasList();
+
+ if (aliases.length != 0) {
+     // Assuming the application calling getData() has permission to read
+     // aliases[0]
+     var app_data = tizen.keymanager.getData(aliases[0]);
+     console.log("App data: " + app_data + " was retrieved");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="KeyManager::getDataAliasList">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager::getDataAliasList"></a><code><b><span class="methodName">getDataAliasList</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets all the aliases which an application can access.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#KeyManagerAlias">KeyManagerAlias</a>[] getDataAliasList();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+Warning: http://tizen.org/privilege/keymanager (public level privilege) MUST NOT be declared to use this API since 3.0.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ KeyManagerAlias[] Array of aliases.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var aliases = tizen.keymanager.getDataAliasList();
+
+ console.log("aliases: ");
+ for (var i = 0; i &lt; aliases.length; i++) {
+     console.log("Package ID: " + aliases[i].packageId + ", Name: "
+             + aliases[i].name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="KeyManager::setPermission">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManager::setPermission"></a><code><b><span class="methodName">setPermission</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets permissions that another application has for accessing an application's data.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setPermission(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, <a href="package.html#PackageId">PackageId</a> packageId, <a href="#PermissionType">PermissionType</a> permissionType, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+An application can only set permissions for data which it saved into the KeyManager. Therefore, the <em>dataAlias</em> parameter does not require the <em>packageId</em> attribute.
+            </p>
+            <p>
+The <em>ErrorCallback</em> is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the dataAlias cannot be found.              </li>
+              <li>
+UnknownError - If the method cannot be completed because of an unknown error.              </li>
+            </ul>
+           </div>
+<div class="description">
+            <p>
+Warning: http://tizen.org/privilege/keymanager (public level privilege) MUST NOT be declared to use this API since 3.0.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">dataAlias</span>: 
+ Alias the data for which permission will be set
+                </li>
+          <li class="param">
+<span class="name">packageId</span>: 
+ Package ID of the accessor application
+                </li>
+          <li class="param">
+<span class="name">permissionType</span>: 
+ Permission to grant to the accessor application
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback function that is called when permission is successfully set
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback function that is called when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var data_name = "data1", raw_data = "my data";
+
+ function onPermissionSet() {
+     console.log("Successfully set permssion");
+ }
+
+ function onSave() {
+     // Dictionary does not require package ID because an
+     // application can only set permission for data which it saved
+     tizen.keymanager.setPermission({
+         "name": data_name
+     }, "9PdoiICQ4c", "READ_REMOVE", onPermissionSet);
+ }
+
+ tizen.keymanager.saveData(data_name, raw_data, null, onSave);
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var aliases = tizen.keymanager.getDataAliasList();
+
+ function onPermissionSet() {
+     console.log("Successfully set permssion");
+ }
+
+ if (aliases.length != 0) {
+     // Check that the application calling setPermission() saved aliases[0] into
+     // the KeyManager
+     if (aliases[0].packageId === tizen.package.getPackageInfo().id) {
+         tizen.keymanager.setPermission(aliases[0], "9PdoiICQ4c", "READ_REMOVE",
+                 onPermissionSet);
+     } else {
+         console.log("This application did not save aliases[0] into the KeyManager");
+     }
+ }
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="KeyManagerAlias">
+<a class="backward-compatibility-anchor" name="::KeyManager::KeyManagerAlias"></a><h3>2.3. KeyManagerAlias</h3>
+<div class="brief">
+ The KeyManagerAlias dictionary identifies items in the KeyManager.
+          </div>
+<pre class="webidl prettyprint">  dictionary KeyManagerAlias {
+    <a href="package.html#PackageId">PackageId</a> packageId;
+
+    DOMString name;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="KeyManagerAlias::packageId"><span class="attrName"><a href="package.html#PackageId">PackageId</a> packageId</span></dt>
+<dd>
+<div class="brief">
+ Package ID of the application which saved the item into the KeyManager.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+<dt class="member" id="KeyManagerAlias::name"><span class="attrName">DOMString name</span></dt>
+<dd>
+<div class="brief">
+ Name which describes the item.
+            </div>
+<div class="description">
+            <p>
+If this attribute contains any spaces, the spaces will be removed. Characters which are separated by spaces will be concatenated.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module KeyManager {
+  typedef DOMString RawData;
+
+  enum PermissionType{
+      "NONE",
+      "READ",
+      "REMOVE",
+      "READ_REMOVE"
+  };
+
+  [NoInterfaceObject] interface KeyManagerObject {
+      readonly attribute <a href="#KeyManager">KeyManager</a> keymanager;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#KeyManagerObject">KeyManagerObject</a>;
+
+  [NoInterfaceObject] interface KeyManager {
+
+    void saveData(DOMString name,
+                  <a href="#RawData">RawData</a> rawData,
+                  optional DOMString? password,
+                  optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RawData">RawData</a> getData(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias, optional DOMString? password) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#KeyManagerAlias">KeyManagerAlias</a>[] getDataAliasList() raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setPermission(<a href="#KeyManagerAlias">KeyManagerAlias</a> dataAlias,
+                       <a href="package.html#PackageId">PackageId</a> packageId,
+                       <a href="#PermissionType">PermissionType</a> permissionType,
+                       optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  dictionary KeyManagerAlias {
+    <a href="package.html#PackageId">PackageId</a> packageId;
+
+    DOMString name;
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/linux-foundation-color.png b/org.tizen.web.apireference/html/device_api/tv/tizen/linux-foundation-color.png
new file mode 100755 (executable)
index 0000000..344010d
Binary files /dev/null and b/org.tizen.web.apireference/html/device_api/tv/tizen/linux-foundation-color.png differ
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/logo-tizen.png b/org.tizen.web.apireference/html/device_api/tv/tizen/logo-tizen.png
new file mode 100644 (file)
index 0000000..afa6006
Binary files /dev/null and b/org.tizen.web.apireference/html/device_api/tv/tizen/logo-tizen.png differ
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/messageport.html b/org.tizen.web.apireference/html/device_api/tv/tizen/messageport.html
new file mode 100644 (file)
index 0000000..794587f
--- /dev/null
@@ -0,0 +1,862 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>MessagePort API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::MessagePort">
+<div class="title"><h1>MessagePort API</h1></div>
+<div class="brief">
+ The MessagePort API provides the functionality for communicating with other applications.
+        </div>
+<div class="description">
+        <p>
+For more information on the MessagePort features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/io_guide/messageport.htm">MessagePort Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#ByteStream">ByteStream</a>
+</li>
+<li>
+                    1.2. <a href="#StringDataItemValue">StringDataItemValue</a>
+</li>
+<li>
+                    1.3. <a href="#ByteStreamDataItemValue">ByteStreamDataItemValue</a>
+</li>
+<li>
+                    1.4. <a href="#MessagePortDataItem">MessagePortDataItem</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#MessagePortManagerObject">MessagePortManagerObject</a>
+</li>
+<li>2.2. <a href="#MessagePortManager">MessagePortManager</a>
+</li>
+<li>2.3. <a href="#LocalMessagePort">LocalMessagePort</a>
+</li>
+<li>2.4. <a href="#RemoteMessagePort">RemoteMessagePort</a>
+</li>
+<li>2.5. <a href="#MessagePortStringDataItem">MessagePortStringDataItem</a>
+</li>
+<li>2.6. <a href="#MessagePortByteStreamDataItem">MessagePortByteStreamDataItem</a>
+</li>
+<li>2.7. <a href="#MessagePortCallback">MessagePortCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#MessagePortManagerObject">MessagePortManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#MessagePortManager">MessagePortManager</a></td>
+<td>
+<div>
+<a href="#LocalMessagePort">LocalMessagePort</a> <a href="#MessagePortManager::requestLocalMessagePort">requestLocalMessagePort</a> (DOMString localMessagePortName)</div>
+<div>
+<a href="#LocalMessagePort">LocalMessagePort</a> <a href="#MessagePortManager::requestTrustedLocalMessagePort">requestTrustedLocalMessagePort</a> (DOMString localMessagePortName)</div>
+<div>
+<a href="#RemoteMessagePort">RemoteMessagePort</a> <a href="#MessagePortManager::requestRemoteMessagePort">requestRemoteMessagePort</a> (<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName)</div>
+<div>
+<a href="#RemoteMessagePort">RemoteMessagePort</a> <a href="#MessagePortManager::requestTrustedRemoteMessagePort">requestTrustedRemoteMessagePort</a> (<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#LocalMessagePort">LocalMessagePort</a></td>
+<td>
+<div>long <a href="#LocalMessagePort::addMessagePortListener">addMessagePortListener</a> (<a href="#MessagePortCallback">MessagePortCallback</a> listener)</div>
+<div>void <a href="#LocalMessagePort::removeMessagePortListener">removeMessagePortListener</a> (long watchId)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#RemoteMessagePort">RemoteMessagePort</a></td>
+<td><div>void <a href="#RemoteMessagePort::sendMessage">sendMessage</a> (<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, optional <a href="#LocalMessagePort">LocalMessagePort</a>? localMessagePort)</div></td>
+</tr>
+<tr>
+<td><a href="#MessagePortStringDataItem">MessagePortStringDataItem</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#MessagePortByteStreamDataItem">MessagePortByteStreamDataItem</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#MessagePortCallback">MessagePortCallback</a></td>
+<td><div>void <a href="#MessagePortCallback::onreceived">onreceived</a> (<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, <a href="#RemoteMessagePort">RemoteMessagePort</a>? remoteMessagePort)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="ByteStream">
+<a class="backward-compatibility-anchor" name="::MessagePort::ByteStream"></a><h3>1.1. ByteStream</h3>
+<div class="brief">
+ The byte stream.
+          </div>
+<pre class="webidl prettyprint">  typedef octet[] ByteStream;</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+<div class="typedef" id="StringDataItemValue">
+<a class="backward-compatibility-anchor" name="::MessagePort::StringDataItemValue"></a><h3>1.2. StringDataItemValue</h3>
+<div class="brief">
+ The string data item value, which can either be a DOMString or a DOMString array.
+          </div>
+<pre class="webidl prettyprint">  typedef (DOMString or DOMString[]) StringDataItemValue;</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+<div class="typedef" id="ByteStreamDataItemValue">
+<a class="backward-compatibility-anchor" name="::MessagePort::ByteStreamDataItemValue"></a><h3>1.3. ByteStreamDataItemValue</h3>
+<div class="brief">
+ The byte stream data item value, which can either be a ByteStream or a ByteStream array.
+          </div>
+<pre class="webidl prettyprint">  typedef (<a href="#ByteStream">ByteStream</a> or <a href="#ByteStream">ByteStream</a>[]) ByteStreamDataItemValue;</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+<div class="typedef" id="MessagePortDataItem">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortDataItem"></a><h3>1.4. MessagePortDataItem</h3>
+<div class="brief">
+ The data item value identifier, which can either be a MessagePortStringDataItem or a MessagePortByteStreamDataItem.
+          </div>
+<pre class="webidl prettyprint">  typedef (<a href="#MessagePortStringDataItem">MessagePortStringDataItem</a> or <a href="#MessagePortByteStreamDataItem">MessagePortByteStreamDataItem</a>) MessagePortDataItem;</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="MessagePortManagerObject">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManagerObject"></a><h3>2.1. MessagePortManagerObject</h3>
+<div class="brief">
+ The <em>MessagePortManagerObject</em> interface defines what is instantiated by the Tizen object from the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface MessagePortManagerObject {
+    readonly attribute <a href="#MessagePortManager">MessagePortManager</a> messageport;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#MessagePortManagerObject">MessagePortManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.messageport</em> object allows access to the functionality of the Message Port API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="MessagePortManager">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManager"></a><h3>2.2. MessagePortManager</h3>
+<div class="brief">
+ The <em>MessagePortManager</em> interface provides methods to request message port to communicate.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface MessagePortManager {
+
+    <a href="#LocalMessagePort">LocalMessagePort</a> requestLocalMessagePort(DOMString localMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#LocalMessagePort">LocalMessagePort</a> requestTrustedLocalMessagePort(DOMString localMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RemoteMessagePort">RemoteMessagePort</a> requestRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RemoteMessagePort">RemoteMessagePort</a> requestTrustedRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="MessagePortManager::requestLocalMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManager::requestLocalMessagePort"></a><code><b><span class="methodName">requestLocalMessagePort</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Requests a LocalMessage Port instance to start receiving message from another application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#LocalMessagePort">LocalMessagePort</a> requestLocalMessagePort(DOMString localMessagePortName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">localMessagePortName</span>: 
+ Name of the local message port to retrieve <br>The LocalMessagePort instances are identical for the same message port name.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ LocalMessagePort LocalMessagePort instance
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the input parameter contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Requests the LocalMessagePort instance with the specified message port name
+ var localMsgPort = tizen.messageport.requestLocalMessagePort('MessagePortA');
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MessagePortManager::requestTrustedLocalMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManager::requestTrustedLocalMessagePort"></a><code><b><span class="methodName">requestTrustedLocalMessagePort</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Requests a trusted LocalMessagePort instance to receive message from another application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#LocalMessagePort">LocalMessagePort</a> requestTrustedLocalMessagePort(DOMString localMessagePortName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+Trusted local message port can communicate with applications that are signed with same certificate.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">localMessagePortName</span>: 
+ Name of local message port <br>The LocalMessagePort instances are identical for the same message port name.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ LocalMessagePort Trusted LocalMessagePort instance
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the input parameter contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Requests the LocalMessagePort instance with the specified message port name
+ var localMsgPort = tizen.messageport.requestTrustedLocalMessagePort('MessagePortB');
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MessagePortManager::requestRemoteMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManager::requestRemoteMessagePort"></a><code><b><span class="methodName">requestRemoteMessagePort</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Requests a RemoteMessagePort instance to send message to another application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#RemoteMessagePort">RemoteMessagePort</a> requestRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+If the message port name and application ID are the same, the platform returns the same RemoteMessagePort instance.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">appId</span>: 
+                 ID of the application to send messages
+                </li>
+          <li class="param">
+<span class="name">remoteMessagePortName</span>: 
+ Name of remote message port
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ RemoteMessagePort RemoteMessagePort instance
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the port of the target application is not found.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Requests the RemoteMessagePort instance with the specified message port name
+ var remoteMsgPort = tizen.messageport.requestRemoteMessagePort('6xaeuflskd.App1', 'MessagePortA');
+ </pre>
+</div>
+</dd>
+<dt class="method" id="MessagePortManager::requestTrustedRemoteMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortManager::requestTrustedRemoteMessagePort"></a><code><b><span class="methodName">requestTrustedRemoteMessagePort</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Requests a trusted RemoteMessagePort instance to receive message from another application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#RemoteMessagePort">RemoteMessagePort</a> requestTrustedRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+If the message port name and application ID are the same, the platform returns the same RemoteMessagePort instance.
+Trusted remote message port can communicate with applications that are signed with same certificate.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">appId</span>: 
+                 ID of the application to send messages
+                </li>
+          <li class="param">
+<span class="name">remoteMessagePortName</span>: 
+ Name of remote message port
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ RemoteMessagePort Trusted RemoteMessagePort instance
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type NotFoundError, if the port of the target application is not found.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidAccessError, if the target application is not signed with the same certification.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Requests the RemoteMessagePort instance with the specified message port name.
+ var remoteMsgPort = tizen.messageport.requestTrustedRemoteMessagePort('6xauflskd.App1', 'MessagePortB');
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="LocalMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::LocalMessagePort"></a><h3>2.3. LocalMessagePort</h3>
+<div class="brief">
+ The <em>LocalMessagePort</em> interface provides methods to receive data.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface LocalMessagePort {
+
+    readonly attribute DOMString messagePortName;
+
+    readonly attribute boolean isTrusted;
+
+    long addMessagePortListener(<a href="#MessagePortCallback">MessagePortCallback</a> listener) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeMessagePortListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="LocalMessagePort::messagePortName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">messagePortName</span></span><div class="brief">
+ The name of the message port name.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="LocalMessagePort::isTrusted">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isTrusted</span></span><div class="brief">
+ The flag indicating whether the message port is trusted.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="LocalMessagePort::addMessagePortListener">
+<a class="backward-compatibility-anchor" name="::MessagePort::LocalMessagePort::addMessagePortListener"></a><code><b><span class="methodName">addMessagePortListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a message port listener to receive messages from other applications.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addMessagePortListener(<a href="#MessagePortCallback">MessagePortCallback</a> listener);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">listener</span>: 
+ Callback function that is called when a message is received
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long ID of the listener that is later used to remove the listener
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the input parameter contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onreceived(data, remoteMsgPort) {
+   console.log('Received data to \'' + remoteMsgPort.messagePortName + '\'');
+ }
+
+ var localMsgPort = tizen.messageport.requestLocalMessagePort('MessagePortA');
+ var watchId = localMsgPort.addMessagePortListener(onreceived);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="LocalMessagePort::removeMessagePortListener">
+<a class="backward-compatibility-anchor" name="::MessagePort::LocalMessagePort::removeMessagePortListener"></a><code><b><span class="methodName">removeMessagePortListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes the message port listener.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeMessagePortListener(long watchId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">watchId</span>: 
+ ID to identify the listener
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the input parameter contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the watch ID has not been found.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var localMsgPort = tizen.messageport.requestLocalMessagePort('MessagePortA');
+ var watchId = localMsgPort.addMessagePortListener(onreceived);
+ // Communication routines of your app...
+ localMsgPort.removeMessagePortListener(watchId);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="RemoteMessagePort">
+<a class="backward-compatibility-anchor" name="::MessagePort::RemoteMessagePort"></a><h3>2.4. RemoteMessagePort</h3>
+<div class="brief">
+ The <em>RemoteMessagePort</em> interface provides methods to send messages.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface RemoteMessagePort {
+
+    readonly attribute DOMString messagePortName;
+
+    readonly attribute <a href="application.html#ApplicationId">ApplicationId</a> appId;
+
+    readonly attribute boolean isTrusted;
+
+    void sendMessage(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, optional <a href="#LocalMessagePort">LocalMessagePort</a>? localMessagePort) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="RemoteMessagePort::messagePortName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">messagePortName</span></span><div class="brief">
+ The message port name.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="RemoteMessagePort::appId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationId </span><span class="name">appId</span></span><div class="brief">
+ The application ID to connect with.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="RemoteMessagePort::isTrusted">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isTrusted</span></span><div class="brief">
+ The flag indicating whether the message port is trusted.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="RemoteMessagePort::sendMessage">
+<a class="backward-compatibility-anchor" name="::MessagePort::RemoteMessagePort::sendMessage"></a><code><b><span class="methodName">sendMessage</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sends messages to the specified application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void sendMessage(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, optional <a href="#LocalMessagePort">LocalMessagePort</a>? localMessagePort);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+The sent messages will be ignored without any notice, unless the target application added one or more listeners to the target local message port.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">data</span>: 
+             Array of data to send
+                </li>
+          <li class="param">
+<span class="name">localMessagePort</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ <em>LocalMessagePort</em> object that gives local message port of the current application<br>It can be used to receive reply messages from the other end of the message port.<br>The order of items in this array is not guaranteed to be preserved during data transfer, and values of <em>key</em> within this
+array must not be duplicated or empty.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if an input parameter contains an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type QuotaExceededError, if the size of message has exceeded the maximum limit.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Sends string message
+ var localMsgPort = tizen.messageport.requestLocalMessagePort('MessagePortA');
+ var remoteMsgPort = tizen.messageport.requestRemoteMessagePort('6xaeuflskd.App1', 'MessagePortB');
+ localMsgPort.addMessagePortListener(function(items, remoteport) {
+   // ...
+   if(remoteport !== null) {
+     remoteport.sendMessage([{key:'RESULT', value:'OK'}]);
+   }
+ });
+ // stream - FileStream object
+ var bytePockets = [], byteCount = 0, i = 0;
+ while(byteCount  stream.bytesAvailable - 256) {
+   bytePockets[i] = stream.readBytes(256);
+   byteCount+=256;
+   i++;
+ }
+ bytePockets[i] = stream.readBytes(stream.bytesAvailable - byteCount);
+
+ var messagePortPockets = [{key: "key1", value: "val1"},
+                        {key: "key2", value: ["val2", "val3", "val4"]},
+                        {key: "key3", value: bytePockets[0]},
+                        {key: "key4", value: bytePockets}];
+ remoteMsgPort.sendMessage(messagePortPockets, localMsgPort);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="MessagePortStringDataItem">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortStringDataItem"></a><h3>2.5. MessagePortStringDataItem</h3>
+<div class="brief">
+ The dictionary that specifies the string data item that is transferred.
+          </div>
+<pre class="webidl prettyprint">  dictionary MessagePortStringDataItem {
+    DOMString key;
+    <a href="#StringDataItemValue">StringDataItemValue</a> value;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+<div class="dictionary" id="MessagePortByteStreamDataItem">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortByteStreamDataItem"></a><h3>2.6. MessagePortByteStreamDataItem</h3>
+<div class="brief">
+ The dictionary that specifies the byte stream data item that is transferred.
+          </div>
+<pre class="webidl prettyprint">  dictionary MessagePortByteStreamDataItem {
+    DOMString key;
+    <a href="#ByteStreamDataItemValue">ByteStreamDataItemValue</a> value;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+</div>
+<div class="interface" id="MessagePortCallback">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortCallback"></a><h3>2.7. MessagePortCallback</h3>
+<div class="brief">
+ The MessagePortCallback interface defines notification callbacks for receiving data from other applications.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface MessagePortCallback {
+    void onreceived(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, <a href="#RemoteMessagePort">RemoteMessagePort</a>? remoteMessagePort);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="MessagePortCallback::onreceived">
+<a class="backward-compatibility-anchor" name="::MessagePort::MessagePortCallback::onreceived"></a><code><b><span class="methodName">onreceived</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when data is received from other applications via the specified message port name.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onreceived(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, <a href="#RemoteMessagePort">RemoteMessagePort</a>? remoteMessagePort);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">data</span>: 
+              Array of data received from another application
+                </li>
+          <li class="param">
+<span class="name">remoteMessagePort</span><span class="optional"> [nullable]</span>: 
+ RemoteMessagePort port that can be used to reply for the received message
+                </li>
+        </ul>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // MessagePortCallback instance
+ function onreceived(data, remoteMsgPort) {
+   console.log('Received data to \'' + remoteMsgPort.messagePortName + '\'');
+ }
+
+ var localMsgPort = tizen.messageport.requestLocalMessagePort('MessagePortA');
+ var watchId = localMsgPort.addMessagePortListener(onreceived);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module MessagePort {
+
+  typedef octet[] ByteStream;
+  typedef (DOMString or DOMString[]) StringDataItemValue;
+  typedef (<a href="#ByteStream">ByteStream</a> or <a href="#ByteStream">ByteStream</a>[]) ByteStreamDataItemValue;
+  typedef (<a href="#MessagePortStringDataItem">MessagePortStringDataItem</a> or <a href="#MessagePortByteStreamDataItem">MessagePortByteStreamDataItem</a>) MessagePortDataItem;
+
+  [NoInterfaceObject] interface MessagePortManagerObject {
+    readonly attribute <a href="#MessagePortManager">MessagePortManager</a> messageport;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#MessagePortManagerObject">MessagePortManagerObject</a>;
+
+  [NoInterfaceObject] interface MessagePortManager {
+
+    <a href="#LocalMessagePort">LocalMessagePort</a> requestLocalMessagePort(DOMString localMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#LocalMessagePort">LocalMessagePort</a> requestTrustedLocalMessagePort(DOMString localMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RemoteMessagePort">RemoteMessagePort</a> requestRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#RemoteMessagePort">RemoteMessagePort</a> requestTrustedRemoteMessagePort(<a href="application.html#ApplicationId">ApplicationId</a> appId, DOMString remoteMessagePortName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface LocalMessagePort {
+
+    readonly attribute DOMString messagePortName;
+
+    readonly attribute boolean isTrusted;
+
+    long addMessagePortListener(<a href="#MessagePortCallback">MessagePortCallback</a> listener) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void removeMessagePortListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject] interface RemoteMessagePort {
+
+    readonly attribute DOMString messagePortName;
+
+    readonly attribute <a href="application.html#ApplicationId">ApplicationId</a> appId;
+
+    readonly attribute boolean isTrusted;
+
+    void sendMessage(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, optional <a href="#LocalMessagePort">LocalMessagePort</a>? localMessagePort) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  dictionary MessagePortStringDataItem {
+    DOMString key;
+    <a href="#StringDataItemValue">StringDataItemValue</a> value;
+  };
+  dictionary MessagePortByteStreamDataItem {
+    DOMString key;
+    <a href="#ByteStreamDataItemValue">ByteStreamDataItemValue</a> value;
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface MessagePortCallback {
+    void onreceived(<a href="#MessagePortDataItem">MessagePortDataItem</a>[] data, <a href="#RemoteMessagePort">RemoteMessagePort</a>? remoteMessagePort);
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/package.html b/org.tizen.web.apireference/html/device_api/tv/tizen/package.html
new file mode 100644 (file)
index 0000000..17b4866
--- /dev/null
@@ -0,0 +1,1100 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Package API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Package">
+<div class="title"><h1>Package API</h1></div>
+<div class="brief">
+ This API provides functionalities to install or uninstall packages, and retrieve information about installed packages.<br>It also provides a listener method so that an application can be notified when there is a change on the installed packages.
+For more information on the Package features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/app_guide/package.htm">Package Guide</a>.
+        </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc"><li>
+                    1.1. <a href="#PackageId">PackageId</a>
+</li></ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#PackageManagerObject">PackageManagerObject</a>
+</li>
+<li>2.2. <a href="#PackageManager">PackageManager</a>
+</li>
+<li>2.3. <a href="#PackageInformation">PackageInformation</a>
+</li>
+<li>2.4. <a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a>
+</li>
+<li>2.5. <a href="#PackageProgressCallback">PackageProgressCallback</a>
+</li>
+<li>2.6. <a href="#PackageInformationEventCallback">PackageInformationEventCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#PackageManagerObject">PackageManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#PackageManager">PackageManager</a></td>
+<td>
+<div>void <a href="#PackageManager::install">install</a> (DOMString packageFileURI, <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#PackageManager::uninstall">uninstall</a> (<a href="#PackageId">PackageId</a> id, <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#PackageManager::getPackagesInfo">getPackagesInfo</a> (<a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>
+<a href="#PackageInformation">PackageInformation</a> <a href="#PackageManager::getPackageInfo">getPackageInfo</a> (optional <a href="#PackageId">PackageId</a>? id)</div>
+<div>void <a href="#PackageManager::setPackageInfoEventListener">setPackageInfoEventListener</a> (<a href="#PackageInformationEventCallback">PackageInformationEventCallback</a> eventCallback)</div>
+<div>void <a href="#PackageManager::unsetPackageInfoEventListener">unsetPackageInfoEventListener</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#PackageInformation">PackageInformation</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a></td>
+<td><div>void <a href="#PackageInformationArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#PackageInformation">PackageInformation</a>[] informationArray)</div></td>
+</tr>
+<tr>
+<td><a href="#PackageProgressCallback">PackageProgressCallback</a></td>
+<td>
+<div>void <a href="#PackageProgressCallback::onprogress">onprogress</a> (<a href="#PackageId">PackageId</a> id, short progress)</div>
+<div>void <a href="#PackageProgressCallback::oncomplete">oncomplete</a> (<a href="#PackageId">PackageId</a> id)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#PackageInformationEventCallback">PackageInformationEventCallback</a></td>
+<td>
+<div>void <a href="#PackageInformationEventCallback::oninstalled">oninstalled</a> (<a href="#PackageInformation">PackageInformation</a> info)</div>
+<div>void <a href="#PackageInformationEventCallback::onupdated">onupdated</a> (<a href="#PackageInformation">PackageInformation</a> info)</div>
+<div>void <a href="#PackageInformationEventCallback::onuninstalled">onuninstalled</a> (<a href="#PackageId">PackageId</a> id)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="PackageId">
+<a class="backward-compatibility-anchor" name="::Package::PackageId"></a><h3>1.1. PackageId</h3>
+<div class="brief">
+ A unique ID for an installed package.
+          </div>
+<pre class="webidl prettyprint">    typedef DOMString PackageId;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="PackageManagerObject">
+<a class="backward-compatibility-anchor" name="::Package::PackageManagerObject"></a><h3>2.1. PackageManagerObject</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>Tizen </em>object from the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface PackageManagerObject {\r
+        readonly attribute <a href="#PackageManager">PackageManager</a> package;\r
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#PackageManagerObject">PackageManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="description">
+          <p>
+The <em>tizen.package </em>object allows access to Package API functionality.
+          </p>
+         </div>
+</div>
+<div class="interface" id="PackageManager">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager"></a><h3>2.2. PackageManager</h3>
+<div class="brief">
+ This interface defines the package manager.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface PackageManager {\r
+\r
+\r
+        void install(DOMString packageFileURI,\r
+                     <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback,\r
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        void uninstall(<a href="#PackageId">PackageId</a> id, \r
+                       <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback,\r
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+\r
+\r
+        void getPackagesInfo(<a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a> successCallback,\r
+                             optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        <a href="#PackageInformation">PackageInformation</a> getPackageInfo(optional <a href="#PackageId">PackageId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        void setPackageInfoEventListener(<a href="#PackageInformationEventCallback">PackageInformationEventCallback</a> eventCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+        \r
+\r
+        void unsetPackageInfoEventListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+    \r
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PackageManager::install">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::install"></a><code><b><span class="methodName">install</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Installs a package with a specified file on a device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void install(DOMString packageFileURI, <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+This API provides a way to notify the progress and completion of an installation request through PackageProgressCallback.
+            </p>
+            <p>
+The <em>ErrorCallback() </em>is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the package is not found at the specified location.              </li>
+              <li>
+UnknownError - If it is not allowed to install the package by the platform or any other platform error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ platform
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/packagemanager.install
+            </p>
+<p><span class="remark"> Remark : </span>
+ Virtual path cannot be used for the parameter. First, you need to convert any virtual path to a file URI path using the resolve function in the Filesystem API before passing it to the function.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">packageFileURI</span>: 
+ The location of the package to install
+                </li>
+          <li class="param">
+<span class="name">progressCallback</span>: 
+ The method to invoke when the installation is in progress or has been completed
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var onInstallation = {
+      onprogress: function(packageId, percentage) {
+         console.log("On installation(" + packageId + ") : progress(" + percentage + ")");
+      },
+      oncomplete: function(packageId) {
+         console.log("Installation(" + packageId + ") Complete");
+      }
+ }
+
+ var onError = function (err) {
+      console.log("Error occurred on installation : " + err.name);
+ }
+
+ // Let's assume that the "test.wgt" file exists in the downloads directory
+ tizen.filesystem.resolve("downloads/test.wgt",
+     function (file) {
+         console.log("file URI : " + file.toURI());
+         tizen.package.install(file.toURI(), onInstallation, onError);
+     },
+     function (err) {
+         console.log("Error occurred on resolve : " + err.name);
+     },
+     "r");
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="PackageManager::uninstall">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::uninstall"></a><code><b><span class="methodName">uninstall</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Uninstalls the package with a specified package ID.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void uninstall(<a href="#PackageId">PackageId</a> id, <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+This API provides a way to notify about the progress and completion of an uninstallation request through PackageProgressCallback.
+            </p>
+            <p>
+The <em>ErrorCallback() </em>is launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotFoundError - If the package is not found with the specified ID.              </li>
+              <li>
+UnknownError - If it is not allowed to uninstall the package from the platform or any other platform error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ platform
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/packagemanager.install
+            </p>
+<p><span class="remark"> Remark : </span>
+ Some preloaded packages cannot be uninstalled. In this case, ErrorCallback with the UnKnownError type is launched.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The package ID to uninstall
+                </li>
+          <li class="param">
+<span class="name">progressCallback</span>: 
+ The method to invoke when uninstallation is in progress or has been completed
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if an input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var onUninstallation = {
+      onprogress: function(packageId, percentage) {
+         console.log("On Uninstallation(" + packageId + ") : progress(" + percentage + ")");
+      },
+      oncomplete: function(packageId) {
+         console.log("Uninstallation(" + packageId + ") Complete");
+      }
+ };
+
+ var onError = function (err) {
+      console.log("Error occurred on installation : " + err.name);
+ };
+
+ // Let's assume that the package ID to uninstall is "testapp001"
+ tizen.package.uninstall("testapp001", onUninstallation, onError);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="PackageManager::getPackagesInfo">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::getPackagesInfo"></a><code><b><span class="methodName">getPackagesInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information of the installed packages.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getPackagesInfo(<a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+The result contains the snapshots of the installed packages information.
+            </p>
+            <p>
+The <em>errorCallback()</em> is launched with this error type:
+            </p>
+            <ul>
+              <li>
+UnknownError - If any other platform error occurs.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/package.info
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to call when an invocation ends successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to call when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if an input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onListInstalledPackages(packages) {
+     for (var i = 0; i &lt; packages.length; i++) {
+         console.log("Package id["+i+"] : " +packages[i].id);
+     }
+ }
+
+ tizen.package.getPackagesInfo(
+     onListInstalledPackages,
+     function (err) {console.log("Can't obtain packages list" + err.name);});
+ </pre>
+</div>
+</dd>
+<dt class="method" id="PackageManager::getPackageInfo">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::getPackageInfo"></a><code><b><span class="methodName">getPackageInfo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information of an installed package.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#PackageInformation">PackageInformation</a> getPackageInfo(optional <a href="#PackageId">PackageId</a>? id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+If the ID is set to <var>null</var> or not set at all, it returns the package information of the current application.
+The list of installed packages and their package IDs is obtained using <em>getPackagesInfo()</em>.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/package.info
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ A string representing the package ID. If the ID is not provided, the package information of the calling application is returned.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ PackageInformation The information of a package
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if an input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotFoundError, if the package with the specified ID is not found.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the package information cannot be retrieved because of a platform error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var packageInfo = tizen.package.getPackageInfo(null);
+
+ console.log("Current Package ID : " + packageInfo.id);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="PackageManager::setPackageInfoEventListener">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::setPackageInfoEventListener"></a><code><b><span class="methodName">setPackageInfoEventListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets a listener to receive notifications for any changes made to the list of installed packages.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setPackageInfoEventListener(<a href="#PackageInformationEventCallback">PackageInformationEventCallback</a> eventCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="description">
+            <p>
+This method sets a <em>PackageInformationEventCallback</em> type callback that is triggered when a package is installed, removed, or updated.
+            </p>
+            <p>
+The callback lasts until the <em>unsetPackageInfoEventListener()</em> method is called.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/package.info
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">eventCallback</span>: 
+ The method to be called when any change is made to the list of installed packages.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if an input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the package list change event cannot be generated because of a platform error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var packageEventCallback = {
+    oninstalled: function(packageInfo) {
+       console.log('The package ' + packageInfo.name + ' is installed');
+    },
+    onupdated: function(packageInfo) {
+       console.log('The package ' + packageInfo.name + ' is updated');
+    },
+    onuninstalled: function(packageId) {
+       console.log('The package ' + packageId + ' is uninstalled');
+    }
+ };
+
+ tizen.package.setPackageInfoEventListener(packageEventCallback);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="PackageManager::unsetPackageInfoEventListener">
+<a class="backward-compatibility-anchor" name="::Package::PackageManager::unsetPackageInfoEventListener"></a><code><b><span class="methodName">unsetPackageInfoEventListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unsets the listener to stop receiving package notifications.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unsetPackageInfoEventListener();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/package.info
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the listener removal request fails because of a platform error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.package.unsetPackageInfoEventListener();
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PackageInformation">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformation"></a><h3>2.3. PackageInformation</h3>
+<div class="brief">
+ This interface defines the general information available to an installed package.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface PackageInformation {\r
+\r
+        readonly attribute <a href="#PackageId">PackageId</a> id;\r
+\r
+\r
+        readonly attribute DOMString name;\r
+\r
+\r
+        readonly attribute DOMString iconPath;\r
+\r
+\r
+        readonly attribute DOMString version;\r
+\r
+\r
+        readonly attribute long totalSize;\r
+\r
+\r
+        readonly attribute long dataSize;\r
+\r
+\r
+        readonly attribute Date lastModified;\r
+\r
+\r
+        readonly attribute DOMString author;\r
+\r
+\r
+        readonly attribute DOMString description;\r
+\r
+\r
+        readonly attribute <a href="application.html#ApplicationId">ApplicationId</a>[] appIds;\r
+\r
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="PackageInformation::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">PackageId </span><span class="name">id</span></span><div class="brief">
+ An attribute to store the identifier of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ An attribute to store the package name.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::iconPath">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">iconPath</span></span><div class="brief">
+ An attribute to store the icon path of a package.
+            </div>
+<div class="description">
+            <p>
+The icon path of the package is the same as the icon path of the relevant application
+(see the <a href="application.html#ApplicationInformation::iconPath">iconPath</a> attribute of
+the <a href="application.html#ApplicationInformation">ApplicationInformation</a> interface).
+            </p>
+            <p>
+The relevant application is the one with the same
+<a href="application.html#ApplicationInformation::packageId">packageId</a> as the
+<a href="#PackageInformation::id">id</a> of this package.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::version">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">version</span></span><div class="brief">
+ An attribute to store the package version.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::totalSize">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">totalSize</span></span><div class="brief">
+ An attribute to store the total installed size(package + data) of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::dataSize">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">dataSize</span></span><div class="brief">
+ An attribute to store the current data size of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::lastModified">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">Date </span><span class="name">lastModified</span></span><div class="brief">
+ An attribute to store the latest installed or updated time of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::author">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">author</span></span><div class="brief">
+ An attribute to store the author of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::description">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">description</span></span><div class="brief">
+ An attribute to store the package description.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="PackageInformation::appIds">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">ApplicationId[]
+                      </span><span class="name">appIds</span></span><div class="brief">
+ An attribute to store the application ID list of a package.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="PackageInformationArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationArraySuccessCallback"></a><h3>2.4. PackageInformationArraySuccessCallback</h3>
+<div class="brief">
+ This interface invokes the success callback with an array of <em>PackageInformation </em>objects as an input parameter when the installed package list is retrieved.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface PackageInformationArraySuccessCallback {\r
+\r
+\r
+        void onsuccess(<a href="#PackageInformation">PackageInformation</a>[] informationArray);\r
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="description">
+          <p>
+It is used in <em>tizen.package.getPackagesInfo()</em>.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PackageInformationArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#PackageInformation">PackageInformation</a>[] informationArray);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">informationArray</span>: 
+ A list of installed packages' information.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PackageProgressCallback">
+<a class="backward-compatibility-anchor" name="::Package::PackageProgressCallback"></a><h3>2.5. PackageProgressCallback</h3>
+<div class="brief">
+ This callback interface specifies subscriptions for any notification on the progress or completion of requests.
+          </div>
+<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface PackageProgressCallback {\r
+\r
+\r
+        void onprogress(<a href="#PackageId">PackageId</a> id, short progress);\r
+\r
+\r
+        void oncomplete(<a href="#PackageId">PackageId</a> id);\r
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PackageProgressCallback::onprogress">
+<a class="backward-compatibility-anchor" name="::Package::PackageProgressCallback::onprogress"></a><code><b><span class="methodName">onprogress</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called while the request is in progress.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onprogress(<a href="#PackageId">PackageId</a> id, short progress);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The package ID
+                </li>
+          <li class="param">
+<span class="name">progress</span>: 
+ The progress in percentage.
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="PackageProgressCallback::oncomplete">
+<a class="backward-compatibility-anchor" name="::Package::PackageProgressCallback::oncomplete"></a><code><b><span class="methodName">oncomplete</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the request is completed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oncomplete(<a href="#PackageId">PackageId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The package ID
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="PackageInformationEventCallback">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationEventCallback"></a><h3>2.6. PackageInformationEventCallback</h3>
+<div class="brief">
+ This callback interface specifies methods that are invoked when a package is installed, updated, or uninstalled.
+          </div>
+<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface PackageInformationEventCallback {\r
+\r
+\r
+        void oninstalled(<a href="#PackageInformation">PackageInformation</a> info);\r
+\r
+\r
+        void onupdated(<a href="#PackageInformation">PackageInformation</a> info);\r
+\r
+\r
+        void onuninstalled(<a href="#PackageId">PackageId</a> id);\r
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="PackageInformationEventCallback::oninstalled">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationEventCallback::oninstalled"></a><code><b><span class="methodName">oninstalled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a package is installed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void oninstalled(<a href="#PackageInformation">PackageInformation</a> info);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">info</span>: 
+ The information of the installed package
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="PackageInformationEventCallback::onupdated">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationEventCallback::onupdated"></a><code><b><span class="methodName">onupdated</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a package is updated.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onupdated(<a href="#PackageInformation">PackageInformation</a> info);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">info</span>: 
+ The information of the updated package
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="PackageInformationEventCallback::onuninstalled">
+<a class="backward-compatibility-anchor" name="::Package::PackageInformationEventCallback::onuninstalled"></a><code><b><span class="methodName">onuninstalled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when a package is uninstalled.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onuninstalled(<a href="#PackageId">PackageId</a> id);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">id</span>: 
+ The ID of the uninstalled package
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Package {\r
+\r
+\r
+    typedef DOMString PackageId;\r
+\r
+\r
+    [NoInterfaceObject] interface PackageManagerObject {\r
+        readonly attribute <a href="#PackageManager">PackageManager</a> package;\r
+    };\r
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#PackageManagerObject">PackageManagerObject</a>;\r
+\r
+\r
+    [NoInterfaceObject] interface PackageManager {\r
+\r
+\r
+        void install(DOMString packageFileURI,\r
+                     <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback,\r
+                     optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        void uninstall(<a href="#PackageId">PackageId</a> id, \r
+                       <a href="#PackageProgressCallback">PackageProgressCallback</a> progressCallback,\r
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+\r
+\r
+        void getPackagesInfo(<a href="#PackageInformationArraySuccessCallback">PackageInformationArraySuccessCallback</a> successCallback,\r
+                             optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        <a href="#PackageInformation">PackageInformation</a> getPackageInfo(optional <a href="#PackageId">PackageId</a>? id) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+\r
+\r
+        void setPackageInfoEventListener(<a href="#PackageInformationEventCallback">PackageInformationEventCallback</a> eventCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+        \r
+\r
+        void unsetPackageInfoEventListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);\r
+    \r
+    };\r
+\r
+\r
+    [NoInterfaceObject] interface PackageInformation {\r
+\r
+        readonly attribute <a href="#PackageId">PackageId</a> id;\r
+\r
+\r
+        readonly attribute DOMString name;\r
+\r
+\r
+        readonly attribute DOMString iconPath;\r
+\r
+\r
+        readonly attribute DOMString version;\r
+\r
+\r
+        readonly attribute long totalSize;\r
+\r
+\r
+        readonly attribute long dataSize;\r
+\r
+\r
+        readonly attribute Date lastModified;\r
+\r
+\r
+        readonly attribute DOMString author;\r
+\r
+\r
+        readonly attribute DOMString description;\r
+\r
+\r
+        readonly attribute <a href="application.html#ApplicationId">ApplicationId</a>[] appIds;\r
+\r
+    };\r
+\r
+\r
+    [Callback=FunctionOnly, NoInterfaceObject] interface PackageInformationArraySuccessCallback {\r
+\r
+\r
+        void onsuccess(<a href="#PackageInformation">PackageInformation</a>[] informationArray);\r
+    };\r
+\r
+\r
+    [Callback, NoInterfaceObject] interface PackageProgressCallback {\r
+\r
+\r
+        void onprogress(<a href="#PackageId">PackageId</a> id, short progress);\r
+\r
+\r
+        void oncomplete(<a href="#PackageId">PackageId</a> id);\r
+    };\r
+\r
+\r
+    [Callback, NoInterfaceObject] interface PackageInformationEventCallback {\r
+\r
+\r
+        void oninstalled(<a href="#PackageInformation">PackageInformation</a> info);\r
+\r
+\r
+        void onupdated(<a href="#PackageInformation">PackageInformation</a> info);\r
+\r
+\r
+        void onuninstalled(<a href="#PackageId">PackageId</a> id);\r
+    };\r
+\r
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/privilege.html b/org.tizen.web.apireference/html/device_api/tv/tizen/privilege.html
new file mode 100644 (file)
index 0000000..dd6af4b
--- /dev/null
@@ -0,0 +1,1252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Privilege for Tizen Web Device APIs</title>
+ <style type="text/css">
+ <!--
+body, table, div, p, dl {
+       font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+       font-size: 12px;
+}
+a {
+       color: #3D578C;
+       font-weight: normal;
+       text-decoration: none;
+}
+.contents a:visited {
+       color: #4665A2;
+}
+a:hover {
+       text-decoration: underline;
+}
+a.el {
+       font-weight: bold;
+}
+.title {
+       font-size: 150%;
+       font-weight: bold;
+       margin: 10px 2px;
+}
+h2 {
+       font-size: 120%;
+}
+h3 {
+       font-size: 100%;
+}
+.memitem {
+       padding: 0;
+       margin-bottom: 10px;
+       margin-right: 5px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 8px;
+        border-top-left-radius: 8px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc {
+        border-bottom: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* opera specific markup */
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+//-->
+ </style>
+
+</head>
+<body>
+<div class="header">
+  <div class="headertitle">
+<div class="title">Privilege for Tizen Web Device APIs </div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><p><a class="anchor" id="_privilege000002"></a> </p>
+<script type="text/javascript">
+//<![CDATA[
+   function divshow(id) {
+       var eicon = document.getElementById("icon_" + id);
+       var ediv = document.getElementById("div_" + id);
+       if(eicon.innerHTML == "-") {
+           ediv.style.display = "none";
+           eicon.innerHTML = "+";
+       } else {
+           ediv.style.display = "";
+           eicon.innerHTML = "-";
+       }
+   }
+   function divallshow(istrue) {
+       var ediv = document.getElementsByTagName("div");
+       if(istrue == true) {
+           for(var cnt = 0; cnt < ediv.length; cnt++) {
+               if(ediv[cnt].id.substr(0,4) == "div_") {
+                   var eicon = document.getElementById("icon_" + ediv[cnt].id.substr(4));
+                   eicon.innerHTML = "-";
+                   ediv[cnt].style.display = "";
+               }
+           }
+       } else {
+           for(var cnt = 0; cnt < ediv.length; cnt++) {
+               if(ediv[cnt].id.substr(0,4) == "div_") {
+                   var eicon = document.getElementById("icon_" + ediv[cnt].id.substr(4));
+                   eicon.innerHTML = "+";
+                   ediv[cnt].style.display = "none";
+               }
+           }
+       }
+   }
+//]]>
+</script>
+<div class="memitem">
+<div class="memproto" style="border-bottom: 1px solid #A8B8D9; height: 15px;">
+<div class="memname" style="float: right;">
+<a href="javascript:divallshow(true)" class="el">All Expand</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="javascript:divallshow(false)" class="el">All Collapse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000001')" id="icon_0000000001" class="el">+</a>
+<span>http://tizen.org/privilege/alarm</span></h2>
+<div style="display: none;" id="div_0000000001">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to reserve an alarm and wake up the device at the reserved time.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Alarm</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="alarm.html#AlarmManager">AlarmManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::add">add</a>(Alarm alarm, ApplicationId applicationId, optional ApplicationControl? appControl);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::remove">remove</a>(AlarmId id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::removeAll">removeAll</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000003')" id="icon_0000000003" class="el">+</a>
+<span>http://tizen.org/privilege/application.info</span></h2>
+<div style="display: none;" id="div_0000000003">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to get the application size.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Application</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationInformation">ApplicationInformation</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute long <a href="application.html#ApplicationInformation::size">size</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>ApplicationMetaData[] <a href="application.html#ApplicationManager::getAppMetaData">getAppMetaData</a>(optional ApplicationId? id);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000005')" id="icon_0000000005" class="el">+</a>
+<span>http://tizen.org/privilege/application.launch</span></h2>
+<div style="display: none;" id="div_0000000005">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to be opened conditionally or to open another application.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Application</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::launch">launch</a>(ApplicationId id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::launchAppControl">launchAppControl</a>(ApplicationControl appControl, optional ApplicationId? id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback, optional ApplicationControlDataArrayReplyCallback? replyCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000007')" id="icon_0000000007" class="el">+</a>
+<span>http://tizen.org/privilege/appmanager.certificate</span></h2>
+<div style="display: none;" id="div_0000000007">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to get specified application certificates.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Application</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>ApplicationCertificate[] <a href="application.html#ApplicationManager::getAppCerts">getAppCerts</a>(optional ApplicationId? id);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000009')" id="icon_0000000009" class="el">+</a>
+<span>http://tizen.org/privilege/appmanager.kill</span></h2>
+<div style="display: none;" id="div_0000000009">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to close another application.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Application</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::kill">kill</a>(ApplicationContextId contextId, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000011')" id="icon_0000000011" class="el">+</a>
+<span>http://tizen.org/privilege/content.read</span></h2>
+<div style="display: none;" id="div_0000000011">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to read content.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Content</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#ContentManager">ContentManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#ContentManager::find">find</a>(ContentArraySuccessCallback successCallback, optional ErrorCallback? errorCallback, optional ContentDirectoryId? directoryId, optional AbstractFilter? filter, optional SortMode? sortMode, optional unsigned long? count, optional unsigned long? offset);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::getPlaylists">getPlaylists</a>(PlaylistArraySuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::setChangeListener">setChangeListener</a>(ContentChangeCallback changeCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::unsetChangeListener">unsetChangeListener</a>();</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#Playlist">Playlist</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#Playlist::get">get</a>(PlaylistItemArraySuccessCallback successCallback, optional ErrorCallback? errorCallback, optional long? count, optional long? offset);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000013')" id="icon_0000000013" class="el">+</a>
+<span>http://tizen.org/privilege/content.write</span></h2>
+<div style="display: none;" id="div_0000000013">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to create, update and delete content.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Content</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#ContentManager">ContentManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#ContentManager::cancelScanDirectory">cancelScanDirectory</a>(DOMString contentDirURI);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::createPlaylist">createPlaylist</a>(DOMString name, PlaylistSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional Playlist? sourcePlaylist);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::removePlaylist">removePlaylist</a>(PlaylistId id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::scanDirectory">scanDirectory</a>(DOMString contentDirURI, boolean recursive, optional ContentScanSuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::scanFile">scanFile</a>(DOMString contentURI, optional ContentScanSuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::update">update</a>(Content content);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::updateBatch">updateBatch</a>(Content[] contents, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#Playlist">Playlist</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#Playlist::add">add</a>(Content item);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::addBatch">addBatch</a>(Content[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::move">move</a>(PlaylistItem item, long delta, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>attribute DOMString <a href="content.html#Playlist::name">name</a>;</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::remove">remove</a>(PlaylistItem item);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::removeBatch">removeBatch</a>(PlaylistItem[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::setOrder">setOrder</a>(PlaylistItem[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>attribute DOMString? <a href="content.html#Playlist::thumbnailURI">thumbnailURI</a>;</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000015')" id="icon_0000000015" class="el">+</a>
+<span>http://tizen.org/privilege/datacontrol.consumer</span></h2>
+<div style="display: none;" id="div_0000000015">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to add, update, and delete data that is exported by other applications.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">DataControl</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#DataControlManager">DataControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>DataControlConsumerObject <a href="datacontrol.html#DataControlManager::getDataControlConsumer">getDataControlConsumer</a>(DOMString providerId, DOMString dataId, DataType type);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#MappedDataControlConsumer">MappedDataControlConsumer</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::addValue">addValue</a>(unsigned long reqId, DOMString key, DOMString value, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::getValue">getValue</a>(unsigned long reqId, DOMString key, DataControlGetValueSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::removeValue">removeValue</a>(unsigned long reqId, DOMString key, DOMString value, DataControlSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::updateValue">updateValue</a>(unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue, DataControlSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#SQLDataControlConsumer">SQLDataControlConsumer</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::insert">insert</a>(unsigned long reqId, RowData insertionData, optional DataControlInsertSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::remove">remove</a>(unsigned long reqId, DOMString where, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::select">select</a>(unsigned long reqId, DOMString[] columns, DOMString where, DataControlSelectSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback, optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::update">update</a>(unsigned long reqId, RowData updateData, DOMString where, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000017')" id="icon_0000000017" class="el">+</a>
+<span>http://tizen.org/privilege/download</span></h2>
+<div style="display: none;" id="div_0000000017">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to manage HTTP downloads.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Download</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="download.html#DownloadManager">DownloadManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="download.html#DownloadManager::start">start</a>(DownloadRequest downloadRequest, optional DownloadCallback? downloadCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000019')" id="icon_0000000019" class="el">+</a>
+<span>http://tizen.org/privilege/filesystem.read</span></h2>
+<div style="display: none;" id="div_0000000019">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to read filesystem.</dl>
+<h2><a href="javascript:divshow('0000000020')" id="icon_0000000020" class="el">+</a>
+<span>Archive</span></h2>
+<div style="display: none;" id="div_0000000020">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Archive</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveFile">ArchiveFile</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::getEntries">getEntries</a>(ArchiveFileEntryArraySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::getEntryByName">getEntryByName</a>(DOMString name, ArchiveFileEntrySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000021')" id="icon_0000000021" class="el">+</a>
+<span>Filesystem</span></h2>
+<div style="display: none;" id="div_0000000021">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Filesystem</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#File">File</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#File::listFiles">listFiles</a>(FileArraySuccessCallback onsuccess, optional ErrorCallback? onerror, optional FileFilter? filter);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::openStream">openStream</a>(FileMode mode, FileStreamSuccessCallback onsuccess, optional ErrorCallback? onerror, optional DOMString? encoding);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::readAsText">readAsText</a>(FileStringSuccessCallback onsuccess, optional ErrorCallback? onerror, optional DOMString? encoding);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::resolve">resolve</a>(DOMString filePath);</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#File::toURI">toURI</a>();</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileStream">FileStream</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::close">close</a>();</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#FileStream::read">read</a>(long charCount);</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#FileStream::readBase64">readBase64</a>(long byteCount);</dt>
+       </dl>
+       <dl>
+               <dt>octet[] <a href="filesystem.html#FileStream::readBytes">readBytes</a>(long byteCount);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileSystemManager">FileSystemManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::getStorage">getStorage</a>(DOMString label, FileSystemStorageSuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::listStorages">listStorages</a>(FileSystemStorageArraySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::resolve">resolve</a>(DOMString location, FileSuccessCallback onsuccess, optional ErrorCallback? onerror, optional FileMode? mode);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000022')" id="icon_0000000022" class="el">+</a>
+<span>http://tizen.org/privilege/filesystem.write</span></h2>
+<div style="display: none;" id="div_0000000022">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to write to file systems.</dl>
+<h2><a href="javascript:divshow('0000000023')" id="icon_0000000023" class="el">+</a>
+<span>Archive</span></h2>
+<div style="display: none;" id="div_0000000023">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Archive</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveFile">ArchiveFile</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::add">add</a>(FileReference sourceFile, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional ArchiveFileEntryOptions? options);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::extractAll">extractAll</a>(FileReference destinationDirectory, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional boolean? overwrite);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveFileEntry">ArchiveFileEntry</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFileEntry::extract">extract</a>(FileReference destinationDirectory, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional boolean? stripName, optional boolean? overwrite);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveManager">ArchiveManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveManager::open">open</a>(FileReference file, FileMode mode, ArchiveFileSuccessCallback onsuccess, optional ErrorCallback? onerror, optional ArchiveFileOptions? options);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000024')" id="icon_0000000024" class="el">+</a>
+<span>Filesystem</span></h2>
+<div style="display: none;" id="div_0000000024">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Filesystem</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#File">File</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#File::copyTo">copyTo</a>(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::createDirectory">createDirectory</a>(DOMString dirPath);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::createFile">createFile</a>(DOMString relativeFilePath);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::deleteDirectory">deleteDirectory</a>(DOMString directoryPath, boolean recursive, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::deleteFile">deleteFile</a>(DOMString filePath, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::moveTo">moveTo</a>(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileStream">FileStream</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::write">write</a>(DOMString stringData);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::writeBase64">writeBase64</a>(DOMString base64Data);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::writeBytes">writeBytes</a>(octet[] byteData);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileSystemManager">FileSystemManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="filesystem.html#FileSystemManager::addStorageStateChangeListener">addStorageStateChangeListener</a>(FileSystemStorageSuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::removeStorageStateChangeListener">removeStorageStateChangeListener</a>(long watchId);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000025')" id="icon_0000000025" class="el">+</a>
+<span>http://tizen.org/privilege/led</span></h2>
+<div style="display: none;" id="div_0000000025">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">SystemInfo</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoCameraFlash">SystemInfoCameraFlash</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute double <a href="systeminfo.html#SystemInfoCameraFlash::brightness">brightness</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute long <a href="systeminfo.html#SystemInfoCameraFlash::levels">levels</a>;</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="systeminfo.html#SystemInfoCameraFlash::setBrightness">setBrightness</a>(double brightness);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000027')" id="icon_0000000027" class="el">+</a>
+<span>http://tizen.org/privilege/package.info</span></h2>
+<div style="display: none;" id="div_0000000027">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to receive package information.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Package</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="package.html#PackageManager">PackageManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>PackageInformation <a href="package.html#PackageManager::getPackageInfo">getPackageInfo</a>(optional PackageId? id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::getPackagesInfo">getPackagesInfo</a>(PackageInformationArraySuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::setPackageInfoEventListener">setPackageInfoEventListener</a>(PackageInformationEventCallback eventCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::unsetPackageInfoEventListener">unsetPackageInfoEventListener</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000029')" id="icon_0000000029" class="el">+</a>
+<span>http://tizen.org/privilege/packagemanager.install</span></h2>
+<div style="display: none;" id="div_0000000029">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to install or uninstall application packages.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">Package</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="package.html#PackageManager">PackageManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="package.html#PackageManager::install">install</a>(DOMString packageFileURI, PackageProgressCallback progressCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::uninstall">uninstall</a>(PackageId id, PackageProgressCallback progressCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000031')" id="icon_0000000031" class="el">+</a>
+<span>http://tizen.org/privilege/system</span></h2>
+<div style="display: none;" id="div_0000000031">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<dl style="margin-top:-5px;_margin-top:-10px;">Allows the application to retrieve system information, such as platform version and MCC and ICCID of SIM card.</dl>
+<div class="memitem">
+<div class="memproto">
+<span class="memname">SystemInfo</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::nativeApiVersion">nativeApiVersion</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::platformVersion">platformVersion</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::webApiVersion">webApiVersion</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoSIM">SystemInfoSIM</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::iccid">iccid</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute unsigned short <a href="systeminfo.html#SystemInfoSIM::mcc">mcc</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute unsigned short <a href="systeminfo.html#SystemInfoSIM::mnc">mnc</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::operatorName">operatorName</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::spn">spn</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute SystemInfoSimState <a href="systeminfo.html#SystemInfoSIM::state">state</a>;</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000033')" id="icon_0000000033" class="el">+</a>
+<span>http://tizen.org/privilege/telephony</span></h2>
+<div style="display: none;" id="div_0000000033">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">SystemInfo</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoCellularNetwork">SystemInfoCellularNetwork</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoCellularNetwork::imei">imei</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoSIM">SystemInfoSIM</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::msin">msin</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::msisdn">msisdn</a>;</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000035')" id="icon_0000000035" class="el">+</a>
+<span>http://tizen.org/privilege/tv.audio</span></h2>
+<div style="display: none;" id="div_0000000035">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">TVAudioControl</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvaudiocontrol.html#AudioControlManager">AudioControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>AudioOutputMode <a href="tvaudiocontrol.html#AudioControlManager::getOutputMode">getOutputMode</a>();</dt>
+       </dl>
+       <dl>
+               <dt>unsigned short <a href="tvaudiocontrol.html#AudioControlManager::getVolume">getVolume</a>();</dt>
+       </dl>
+       <dl>
+               <dt>boolean <a href="tvaudiocontrol.html#AudioControlManager::isMute">isMute</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::playSound">playSound</a>(AudioBeepType type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setMute">setMute</a>(boolean mute);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolume">setVolume</a>(unsigned short volume);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeChangeListener">setVolumeChangeListener</a>(VolumeChangeCallback callback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeDown">setVolumeDown</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeUp">setVolumeUp</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::unsetVolumeChangeListener">unsetVolumeChangeListener</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000037')" id="icon_0000000037" class="el">+</a>
+<span>http://tizen.org/privilege/tv.channel</span></h2>
+<div style="display: none;" id="div_0000000037">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">TVChannel</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvchannel.html#ChannelManager">ChannelManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="tvchannel.html#ChannelManager::addChannelChangeListener">addChannelChangeListener</a>(ChannelChangeCallback callback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="tvchannel.html#ChannelManager::addSignalStateChangeListener">addSignalStateChangeListener</a>(SignalStateChangeCallback callback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::findChannel">findChannel</a>(long major, long minor, FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>BroadcastStandard <a href="tvchannel.html#ChannelManager::getBroadcastStandard">getBroadcastStandard</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::getChannelList">getChannelList</a>(FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? mode, optional long? nStart, optional long? number);</dt>
+       </dl>
+       <dl>
+               <dt>ChannelInfo <a href="tvchannel.html#ChannelManager::getCurrentChannel">getCurrentChannel</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>ProgramInfo? <a href="tvchannel.html#ChannelManager::getCurrentProgram">getCurrentProgram</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>FavoriteList[] <a href="tvchannel.html#ChannelManager::getFavorites">getFavorites</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::getProgramList">getProgramList</a>(ChannelInfo channelInfo, TZDate startTime, ProgramListSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional unsigned long? duration);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::removeChannelChangeListener">removeChannelChangeListener</a>(long channelListenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::removeSignalStateChangeListener">removeSignalStateChangeListener</a>(long signalListenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tune">tune</a>(TuneOption tuneOption, TuneCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tuneDown">tuneDown</a>(TuneCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? tuneMode, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tuneUp">tuneUp</a>(TuneCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? tuneMode, optional WindowType? type);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvchannel.html#FavoriteList">FavoriteList</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::addChannel">addChannel</a>(ChannelInfo channel, SuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::getChannels">getChannels</a>(FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional long? nStart, optional long? number);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::removeChannel">removeChannel</a>(ChannelInfo channel, SuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000039')" id="icon_0000000039" class="el">+</a>
+<span>http://tizen.org/privilege/tv.display</span></h2>
+<div style="display: none;" id="div_0000000039">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">TVDisplayControl</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvdisplaycontrol.html#DisplayControlManager">DisplayControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>Display3DEffectMode <a href="tvdisplaycontrol.html#DisplayControlManager::get3DEffectMode">get3DEffectMode</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvdisplaycontrol.html#DisplayControlManager::getSupported3DEffectModeList">getSupported3DEffectModeList</a>(Mode3DEffectListSupportCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>Display3DModeState <a href="tvdisplaycontrol.html#DisplayControlManager::is3DModeEnabled">is3DModeEnabled</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000041')" id="icon_0000000041" class="el">+</a>
+<span>http://tizen.org/privilege/tv.inputdevice</span></h2>
+<div style="display: none;" id="div_0000000041">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">TVInputDevice</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvinputdevice.html#TVInputDeviceManager">TVInputDeviceManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>InputDeviceKey? <a href="tvinputdevice.html#TVInputDeviceManager::getKey">getKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>InputDeviceKey[] <a href="tvinputdevice.html#TVInputDeviceManager::getSupportedKeys">getSupportedKeys</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::registerKey">registerKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::registerKeyBatch">registerKeyBatch</a>(InputDeviceKeyName[] keyNames, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::unregisterKey">unregisterKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::unregisterKeyBatch">unregisterKeyBatch</a>(InputDeviceKeyName[] keyNames, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000043')" id="icon_0000000043" class="el">+</a>
+<span>http://tizen.org/privilege/tv.window</span></h2>
+<div style="display: none;" id="div_0000000043">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname">TVWindow</span>
+</div>
+<div class="memdoc">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvwindow.html#TVWindowManager">TVWindowManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="tvwindow.html#TVWindowManager::addVideoResolutionChangeListener">addVideoResolutionChangeListener</a>(VideoResolutionChangeCallback callback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::getAvailableWindows">getAvailableWindows</a>(AvailableWindowListCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::getRect">getRect</a>(WindowRectangleSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional MeasurementUnit? unit, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>SystemInfoVideoSourceInfo <a href="tvwindow.html#TVWindowManager::getSource">getSource</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>VideoResolution <a href="tvwindow.html#TVWindowManager::getVideoResolution">getVideoResolution</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::hide">hide</a>(SuccessCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::removeVideoResolutionChangeListener">removeVideoResolutionChangeListener</a>(long listenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::setSource">setSource</a>(SystemInfoVideoSourceInfo videoSource, SourceChangedSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::show">show</a>(WindowRectangleSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional DOMString[]? rectangle, optional WindowType? type, optional ZPosition? zPosition);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<hr size="1">
+<center>
+<small>Except as noted, this content - excluding the Code Examples - is licensed under <a
+    href="http://creativecommons.org/licenses/by/3.0/legalcode">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a
+    href="https://www.tizen.org/bsd-3-clause-license">BSD-3-Clause</a>. For details, see the <a href="https://www.tizen.org/content-license">Content License</a>.&nbsp;</small>
+</center>
+
+<script type="text/javascript">
+var _gaq = _gaq || [];
+_gaq.push(['_setAccount', 'UA-25976949-3']);
+_gaq.push(['_trackPageview']);
+(function() {
+var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+})();
+</script>
+
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/privlevel.html b/org.tizen.web.apireference/html/device_api/tv/tizen/privlevel.html
new file mode 100644 (file)
index 0000000..653721a
--- /dev/null
@@ -0,0 +1,976 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Privilege Level for Tizen Web Device APIs</title>
+ <style type="text/css">
+ <!--
+body, table, div, p, dl {
+       font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+       font-size: 12px;
+}
+a {
+       color: #3D578C;
+       font-weight: normal;
+       text-decoration: none;
+}
+.contents a:visited {
+       color: #4665A2;
+}
+a:hover {
+       text-decoration: underline;
+}
+a.el {
+       font-weight: bold;
+}
+.title {
+       font-size: 150%;
+       font-weight: bold;
+       margin: 10px 2px;
+}
+h2 {
+       font-size: 120%;
+}
+h3 {
+       font-size: 100%;
+}
+.memitem {
+       padding: 0;
+       margin-bottom: 10px;
+       margin-right: 5px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 8px;
+        border-top-left-radius: 8px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+
+}
+
+.memdoc {
+        border-bottom: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 2px 5px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /* opera specific markup */
+        border-bottom-left-radius: 8px;
+        border-bottom-right-radius: 8px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
+}
+//-->
+ </style>
+
+</head>
+<body>
+<div class="header">
+  <div class="headertitle">
+<div class="title">Privilege Level for Tizen Web Device APIs </div>  </div>
+</div>
+<div class="contents">
+<div class="textblock"><p><a class="anchor" id="_privilege000002"></a> </p>
+<script type="text/javascript">
+//<![CDATA[
+   function divshow(id) {
+       var eicon = document.getElementById("icon_" + id);
+       var ediv = document.getElementById("div_" + id);
+       if(eicon.innerHTML == "-") {
+           ediv.style.display = "none";
+           eicon.innerHTML = "+";
+       } else {
+           ediv.style.display = "";
+           eicon.innerHTML = "-";
+       }
+   }
+   function divallshow(istrue) {
+       var ediv = document.getElementsByTagName("div");
+       if(istrue == true) {
+           for(var cnt = 0; cnt < ediv.length; cnt++) {
+               if(ediv[cnt].id.substr(0,4) == "div_") {
+                   var eicon = document.getElementById("icon_" + ediv[cnt].id.substr(4));
+                   eicon.innerHTML = "-";
+                   ediv[cnt].style.display = "";
+               }
+           }
+       } else {
+           for(var cnt = 0; cnt < ediv.length; cnt++) {
+               if(ediv[cnt].id.substr(0,4) == "div_") {
+                   var eicon = document.getElementById("icon_" + ediv[cnt].id.substr(4));
+                   eicon.innerHTML = "+";
+                   ediv[cnt].style.display = "none";
+               }
+           }
+       }
+   }
+//]]>
+</script>
+<div class="memitem">
+<div class="memproto" style="border-bottom: 1px solid #A8B8D9; height: 15px;">
+<div class="memname" style="float: right;">
+<a href="javascript:divallshow(true)" class="el">All Expand</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a href="javascript:divallshow(false)" class="el">All Collapse</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000001')" id="icon_0000000001" class="el">+</a>
+<span>public</span></h2>
+<div style="display: none;" id="div_0000000001">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<h2 style="margin-top:-5px;_margin-top:-10px;"><a href="javascript:divshow('0000000045')" id="icon_0000000045" class="el">+</a>
+<span>Alarm</span></h2>
+<div style="display: none;" id="div_0000000045">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="alarm.html#AlarmManager">AlarmManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::add">add</a>(Alarm alarm, ApplicationId applicationId, optional ApplicationControl? appControl);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::remove">remove</a>(AlarmId id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="alarm.html#AlarmManager::removeAll">removeAll</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000046')" id="icon_0000000046" class="el">+</a>
+<span>Application</span></h2>
+<div style="display: none;" id="div_0000000046">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationInformation">ApplicationInformation</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute long <a href="application.html#ApplicationInformation::size">size</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>ApplicationMetaData[] <a href="application.html#ApplicationManager::getAppMetaData">getAppMetaData</a>(optional ApplicationId? id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::launch">launch</a>(ApplicationId id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::launchAppControl">launchAppControl</a>(ApplicationControl appControl, optional ApplicationId? id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback, optional ApplicationControlDataArrayReplyCallback? replyCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000047')" id="icon_0000000047" class="el">+</a>
+<span>Archive</span></h2>
+<div style="display: none;" id="div_0000000047">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveFile">ArchiveFile</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::add">add</a>(FileReference sourceFile, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional ArchiveFileEntryOptions? options);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::extractAll">extractAll</a>(FileReference destinationDirectory, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional boolean? overwrite);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::getEntries">getEntries</a>(ArchiveFileEntryArraySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFile::getEntryByName">getEntryByName</a>(DOMString name, ArchiveFileEntrySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveFileEntry">ArchiveFileEntry</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveFileEntry::extract">extract</a>(FileReference destinationDirectory, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror, optional ArchiveFileProgressCallback? onprogress, optional boolean? stripName, optional boolean? overwrite);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="archive.html#ArchiveManager">ArchiveManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="archive.html#ArchiveManager::open">open</a>(FileReference file, FileMode mode, ArchiveFileSuccessCallback onsuccess, optional ErrorCallback? onerror, optional ArchiveFileOptions? options);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000048')" id="icon_0000000048" class="el">+</a>
+<span>Content</span></h2>
+<div style="display: none;" id="div_0000000048">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#ContentManager">ContentManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#ContentManager::cancelScanDirectory">cancelScanDirectory</a>(DOMString contentDirURI);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::createPlaylist">createPlaylist</a>(DOMString name, PlaylistSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional Playlist? sourcePlaylist);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::find">find</a>(ContentArraySuccessCallback successCallback, optional ErrorCallback? errorCallback, optional ContentDirectoryId? directoryId, optional AbstractFilter? filter, optional SortMode? sortMode, optional unsigned long? count, optional unsigned long? offset);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::getPlaylists">getPlaylists</a>(PlaylistArraySuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::removePlaylist">removePlaylist</a>(PlaylistId id, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::scanDirectory">scanDirectory</a>(DOMString contentDirURI, boolean recursive, optional ContentScanSuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::scanFile">scanFile</a>(DOMString contentURI, optional ContentScanSuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::setChangeListener">setChangeListener</a>(ContentChangeCallback changeCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::unsetChangeListener">unsetChangeListener</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::update">update</a>(Content content);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#ContentManager::updateBatch">updateBatch</a>(Content[] contents, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="content.html#Playlist">Playlist</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="content.html#Playlist::add">add</a>(Content item);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::addBatch">addBatch</a>(Content[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::get">get</a>(PlaylistItemArraySuccessCallback successCallback, optional ErrorCallback? errorCallback, optional long? count, optional long? offset);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::move">move</a>(PlaylistItem item, long delta, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>attribute DOMString <a href="content.html#Playlist::name">name</a>;</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::remove">remove</a>(PlaylistItem item);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::removeBatch">removeBatch</a>(PlaylistItem[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="content.html#Playlist::setOrder">setOrder</a>(PlaylistItem[] items, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>attribute DOMString? <a href="content.html#Playlist::thumbnailURI">thumbnailURI</a>;</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000049')" id="icon_0000000049" class="el">+</a>
+<span>DataControl</span></h2>
+<div style="display: none;" id="div_0000000049">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#DataControlManager">DataControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>DataControlConsumerObject <a href="datacontrol.html#DataControlManager::getDataControlConsumer">getDataControlConsumer</a>(DOMString providerId, DOMString dataId, DataType type);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#MappedDataControlConsumer">MappedDataControlConsumer</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::addValue">addValue</a>(unsigned long reqId, DOMString key, DOMString value, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::getValue">getValue</a>(unsigned long reqId, DOMString key, DataControlGetValueSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::removeValue">removeValue</a>(unsigned long reqId, DOMString key, DOMString value, DataControlSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#MappedDataControlConsumer::updateValue">updateValue</a>(unsigned long reqId, DOMString key, DOMString oldValue, DOMString newValue, DataControlSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="datacontrol.html#SQLDataControlConsumer">SQLDataControlConsumer</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::insert">insert</a>(unsigned long reqId, RowData insertionData, optional DataControlInsertSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::remove">remove</a>(unsigned long reqId, DOMString where, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::select">select</a>(unsigned long reqId, DOMString[] columns, DOMString where, DataControlSelectSuccessCallback successCallback, optional DataControlErrorCallback? errorCallback, optional unsigned long? page, optional unsigned long? maxNumberPerPage, optional DOMString? order);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="datacontrol.html#SQLDataControlConsumer::update">update</a>(unsigned long reqId, RowData updateData, DOMString where, optional DataControlSuccessCallback? successCallback, optional DataControlErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000050')" id="icon_0000000050" class="el">+</a>
+<span>Download</span></h2>
+<div style="display: none;" id="div_0000000050">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="download.html#DownloadManager">DownloadManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="download.html#DownloadManager::start">start</a>(DownloadRequest downloadRequest, optional DownloadCallback? downloadCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000051')" id="icon_0000000051" class="el">+</a>
+<span>Filesystem</span></h2>
+<div style="display: none;" id="div_0000000051">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#File">File</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#File::copyTo">copyTo</a>(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::createDirectory">createDirectory</a>(DOMString dirPath);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::createFile">createFile</a>(DOMString relativeFilePath);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::deleteDirectory">deleteDirectory</a>(DOMString directoryPath, boolean recursive, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::deleteFile">deleteFile</a>(DOMString filePath, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::listFiles">listFiles</a>(FileArraySuccessCallback onsuccess, optional ErrorCallback? onerror, optional FileFilter? filter);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::moveTo">moveTo</a>(DOMString originFilePath, DOMString destinationFilePath, boolean overwrite, optional SuccessCallback? onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::openStream">openStream</a>(FileMode mode, FileStreamSuccessCallback onsuccess, optional ErrorCallback? onerror, optional DOMString? encoding);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#File::readAsText">readAsText</a>(FileStringSuccessCallback onsuccess, optional ErrorCallback? onerror, optional DOMString? encoding);</dt>
+       </dl>
+       <dl>
+               <dt>File <a href="filesystem.html#File::resolve">resolve</a>(DOMString filePath);</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#File::toURI">toURI</a>();</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileStream">FileStream</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::close">close</a>();</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#FileStream::read">read</a>(long charCount);</dt>
+       </dl>
+       <dl>
+               <dt>DOMString <a href="filesystem.html#FileStream::readBase64">readBase64</a>(long byteCount);</dt>
+       </dl>
+       <dl>
+               <dt>octet[] <a href="filesystem.html#FileStream::readBytes">readBytes</a>(long byteCount);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::write">write</a>(DOMString stringData);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::writeBase64">writeBase64</a>(DOMString base64Data);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileStream::writeBytes">writeBytes</a>(octet[] byteData);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="filesystem.html#FileSystemManager">FileSystemManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="filesystem.html#FileSystemManager::addStorageStateChangeListener">addStorageStateChangeListener</a>(FileSystemStorageSuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::getStorage">getStorage</a>(DOMString label, FileSystemStorageSuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::listStorages">listStorages</a>(FileSystemStorageArraySuccessCallback onsuccess, optional ErrorCallback? onerror);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::removeStorageStateChangeListener">removeStorageStateChangeListener</a>(long watchId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="filesystem.html#FileSystemManager::resolve">resolve</a>(DOMString location, FileSuccessCallback onsuccess, optional ErrorCallback? onerror, optional FileMode? mode);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000052')" id="icon_0000000052" class="el">+</a>
+<span>Package</span></h2>
+<div style="display: none;" id="div_0000000052">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="package.html#PackageManager">PackageManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>PackageInformation <a href="package.html#PackageManager::getPackageInfo">getPackageInfo</a>(optional PackageId? id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::getPackagesInfo">getPackagesInfo</a>(PackageInformationArraySuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::setPackageInfoEventListener">setPackageInfoEventListener</a>(PackageInformationEventCallback eventCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::unsetPackageInfoEventListener">unsetPackageInfoEventListener</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000053')" id="icon_0000000053" class="el">+</a>
+<span>SystemInfo</span></h2>
+<div style="display: none;" id="div_0000000053">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoCameraFlash">SystemInfoCameraFlash</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute double <a href="systeminfo.html#SystemInfoCameraFlash::brightness">brightness</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute long <a href="systeminfo.html#SystemInfoCameraFlash::levels">levels</a>;</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="systeminfo.html#SystemInfoCameraFlash::setBrightness">setBrightness</a>(double brightness);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoCellularNetwork">SystemInfoCellularNetwork</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoCellularNetwork::imei">imei</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::nativeApiVersion">nativeApiVersion</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::platformVersion">platformVersion</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoDeviceCapability::webApiVersion">webApiVersion</a>;</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="systeminfo.html#SystemInfoSIM">SystemInfoSIM</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::iccid">iccid</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute unsigned short <a href="systeminfo.html#SystemInfoSIM::mcc">mcc</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute unsigned short <a href="systeminfo.html#SystemInfoSIM::mnc">mnc</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::msin">msin</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::msisdn">msisdn</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::operatorName">operatorName</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute DOMString <a href="systeminfo.html#SystemInfoSIM::spn">spn</a>;</dt>
+       </dl>
+       <dl>
+               <dt>readonly attribute SystemInfoSimState <a href="systeminfo.html#SystemInfoSIM::state">state</a>;</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000054')" id="icon_0000000054" class="el">+</a>
+<span>TVAudioControl</span></h2>
+<div style="display: none;" id="div_0000000054">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvaudiocontrol.html#AudioControlManager">AudioControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>AudioOutputMode <a href="tvaudiocontrol.html#AudioControlManager::getOutputMode">getOutputMode</a>();</dt>
+       </dl>
+       <dl>
+               <dt>unsigned short <a href="tvaudiocontrol.html#AudioControlManager::getVolume">getVolume</a>();</dt>
+       </dl>
+       <dl>
+               <dt>boolean <a href="tvaudiocontrol.html#AudioControlManager::isMute">isMute</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::playSound">playSound</a>(AudioBeepType type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setMute">setMute</a>(boolean mute);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolume">setVolume</a>(unsigned short volume);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeChangeListener">setVolumeChangeListener</a>(VolumeChangeCallback callback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeDown">setVolumeDown</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::setVolumeUp">setVolumeUp</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvaudiocontrol.html#AudioControlManager::unsetVolumeChangeListener">unsetVolumeChangeListener</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000055')" id="icon_0000000055" class="el">+</a>
+<span>TVChannel</span></h2>
+<div style="display: none;" id="div_0000000055">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvchannel.html#ChannelManager">ChannelManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="tvchannel.html#ChannelManager::addChannelChangeListener">addChannelChangeListener</a>(ChannelChangeCallback callback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>long <a href="tvchannel.html#ChannelManager::addSignalStateChangeListener">addSignalStateChangeListener</a>(SignalStateChangeCallback callback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::findChannel">findChannel</a>(long major, long minor, FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>BroadcastStandard <a href="tvchannel.html#ChannelManager::getBroadcastStandard">getBroadcastStandard</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::getChannelList">getChannelList</a>(FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? mode, optional long? nStart, optional long? number);</dt>
+       </dl>
+       <dl>
+               <dt>ChannelInfo <a href="tvchannel.html#ChannelManager::getCurrentChannel">getCurrentChannel</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>ProgramInfo? <a href="tvchannel.html#ChannelManager::getCurrentProgram">getCurrentProgram</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>FavoriteList[] <a href="tvchannel.html#ChannelManager::getFavorites">getFavorites</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::getProgramList">getProgramList</a>(ChannelInfo channelInfo, TZDate startTime, ProgramListSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional unsigned long? duration);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::removeChannelChangeListener">removeChannelChangeListener</a>(long channelListenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::removeSignalStateChangeListener">removeSignalStateChangeListener</a>(long signalListenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tune">tune</a>(TuneOption tuneOption, TuneCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tuneDown">tuneDown</a>(TuneCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? tuneMode, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#ChannelManager::tuneUp">tuneUp</a>(TuneCallback successCallback, optional ErrorCallback? errorCallback, optional TuneMode? tuneMode, optional WindowType? type);</dt>
+       </dl>
+</div>
+</div>
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvchannel.html#FavoriteList">FavoriteList</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::addChannel">addChannel</a>(ChannelInfo channel, SuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::getChannels">getChannels</a>(FindChannelSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional long? nStart, optional long? number);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvchannel.html#FavoriteList::removeChannel">removeChannel</a>(ChannelInfo channel, SuccessCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000056')" id="icon_0000000056" class="el">+</a>
+<span>TVDisplayControl</span></h2>
+<div style="display: none;" id="div_0000000056">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvdisplaycontrol.html#DisplayControlManager">DisplayControlManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>Display3DEffectMode <a href="tvdisplaycontrol.html#DisplayControlManager::get3DEffectMode">get3DEffectMode</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvdisplaycontrol.html#DisplayControlManager::getSupported3DEffectModeList">getSupported3DEffectModeList</a>(Mode3DEffectListSupportCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>Display3DModeState <a href="tvdisplaycontrol.html#DisplayControlManager::is3DModeEnabled">is3DModeEnabled</a>();</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000057')" id="icon_0000000057" class="el">+</a>
+<span>TVInputDevice</span></h2>
+<div style="display: none;" id="div_0000000057">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvinputdevice.html#TVInputDeviceManager">TVInputDeviceManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>InputDeviceKey? <a href="tvinputdevice.html#TVInputDeviceManager::getKey">getKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>InputDeviceKey[] <a href="tvinputdevice.html#TVInputDeviceManager::getSupportedKeys">getSupportedKeys</a>();</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::registerKey">registerKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::registerKeyBatch">registerKeyBatch</a>(InputDeviceKeyName[] keyNames, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::unregisterKey">unregisterKey</a>(InputDeviceKeyName keyName);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvinputdevice.html#TVInputDeviceManager::unregisterKeyBatch">unregisterKeyBatch</a>(InputDeviceKeyName[] keyNames, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000058')" id="icon_0000000058" class="el">+</a>
+<span>TVWindow</span></h2>
+<div style="display: none;" id="div_0000000058">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="tvwindow.html#TVWindowManager">TVWindowManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>long <a href="tvwindow.html#TVWindowManager::addVideoResolutionChangeListener">addVideoResolutionChangeListener</a>(VideoResolutionChangeCallback callback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::getAvailableWindows">getAvailableWindows</a>(AvailableWindowListCallback successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::getRect">getRect</a>(WindowRectangleSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional MeasurementUnit? unit, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>SystemInfoVideoSourceInfo <a href="tvwindow.html#TVWindowManager::getSource">getSource</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>VideoResolution <a href="tvwindow.html#TVWindowManager::getVideoResolution">getVideoResolution</a>(optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::hide">hide</a>(SuccessCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::removeVideoResolutionChangeListener">removeVideoResolutionChangeListener</a>(long listenerId);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::setSource">setSource</a>(SystemInfoVideoSourceInfo videoSource, SourceChangedSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional WindowType? type);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="tvwindow.html#TVWindowManager::show">show</a>(WindowRectangleSuccessCallback successCallback, optional ErrorCallback? errorCallback, optional DOMString[]? rectangle, optional WindowType? type, optional ZPosition? zPosition);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000002')" id="icon_0000000002" class="el">+</a>
+<span>partner</span></h2>
+<div style="display: none;" id="div_0000000002">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<h2 style="margin-top:-5px;_margin-top:-10px;"><a href="javascript:divshow('0000000059')" id="icon_0000000059" class="el">+</a>
+<span>Application</span></h2>
+<div style="display: none;" id="div_0000000059">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="application.html#ApplicationManager">ApplicationManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>ApplicationCertificate[] <a href="application.html#ApplicationManager::getAppCerts">getAppCerts</a>(optional ApplicationId? id);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="application.html#ApplicationManager::kill">kill</a>(ApplicationContextId contextId, optional SuccessCallback? successCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<h2><a href="javascript:divshow('0000000003')" id="icon_0000000003" class="el">+</a>
+<span>platform</span></h2>
+<div style="display: none;" id="div_0000000003">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc">
+<h2 style="margin-top:-5px;_margin-top:-10px;"><a href="javascript:divshow('0000000060')" id="icon_0000000060" class="el">+</a>
+<span>Package</span></h2>
+<div style="display: none;" id="div_0000000060">
+<div class="memitem">
+<div class="memproto" style="background-color: #FFFFFF; background-image: none;">
+<span class="memname"></span>
+</div>
+<div class="memdoc" style="margin-top:-5px;_margin-top:-10px;">
+<div class="memitem">
+<div class="memproto">
+<span class="memname"><a href="package.html#PackageManager">PackageManager</a></span>
+</div>
+<div class="memdoc">
+       <dl>
+               <dt>void <a href="package.html#PackageManager::install">install</a>(DOMString packageFileURI, PackageProgressCallback progressCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+       <dl>
+               <dt>void <a href="package.html#PackageManager::uninstall">uninstall</a>(PackageId id, PackageProgressCallback progressCallback, optional ErrorCallback? errorCallback);</dt>
+       </dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<hr size="1">
+<center>
+<small>Except as noted, this content - excluding the Code Examples - is licensed under <a
+    href="http://creativecommons.org/licenses/by/3.0/legalcode">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a
+    href="https://www.tizen.org/bsd-3-clause-license">BSD-3-Clause</a>. For details, see the <a href="https://www.tizen.org/content-license">Content License</a>.&nbsp;</small>
+</center>
+
+<script type="text/javascript">
+var _gaq = _gaq || [];
+_gaq.push(['_setAccount', 'UA-25976949-3']);
+_gaq.push(['_trackPageview']);
+(function() {
+var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+})();
+</script>
+
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/snippet.js b/org.tizen.web.apireference/html/device_api/tv/tizen/snippet.js
new file mode 100644 (file)
index 0000000..ed1ac43
--- /dev/null
@@ -0,0 +1,1478 @@
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ *
+ * <p>
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source.  At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules.  See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ *    {@code class=prettyprint.}
+ *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ *    printer needs to do more substantial DOM manipulations to support that, so
+ *    some css styles may not be preserved.
+ * </ol>
+ * That's it.  I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ *   Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+(function () {
+  // Keyword lists for various languages.
+  // We use things that coerce to strings to make them compact when minified
+  // and to defeat aggressive optimizers that fold large string constants.
+  var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
+  var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," + 
+      "double,enum,extern,float,goto,int,long,register,short,signed,sizeof," +
+      "static,struct,switch,typedef,union,unsigned,void,volatile"];
+  var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
+      "new,operator,private,protected,public,this,throw,true,try,typeof"];
+  var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool," +
+      "concept,concept_map,const_cast,constexpr,decltype," +
+      "dynamic_cast,explicit,export,friend,inline,late_check," +
+      "mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast," +
+      "template,typeid,typename,using,virtual,where"];
+  var JAVA_KEYWORDS = [COMMON_KEYWORDS,
+      "abstract,boolean,extends,final,finally,implements,import," +
+      "instanceof,null,native,package,strictfp,super,synchronized,throws," +
+      "transient"];
+  var CSHARP_KEYWORDS = [JAVA_KEYWORDS,
+      "as,base,by,checked,decimal,delegate,descending,dynamic,event," +
+      "fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock," +
+      "object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed," +
+      "stackalloc,string,uint,ulong,unchecked,unsafe,ushort,var,byte,"];
+  var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
+      "for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
+      "true,try,unless,until,when,while,yes";
+  var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
+      "debugger,eval,export,function,null,undefined,var," +
+      "Infinity,NaN"];
+  var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,foreach,for," +
+      "goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
+      "sub,undef,unless,until,use,wantarray,while,BEGIN,END";
+  var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
+      "elif,except,exec,finally,from,global,import,in,is,lambda," +
+      "nonlocal,not,or,pass,print,raise,try,with,yield," +
+      "False,True,None"];
+  var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
+      "def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
+      "rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
+      "BEGIN,END"];
+  var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
+      "function,in,local,set,then,until"];
+  var ALL_KEYWORDS = [
+      CPP_KEYWORDS, CSHARP_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS +
+      PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
+  var C_TYPES = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;
+
+  // token style names.  correspond to css classes
+  /**
+   * token style for a string literal
+   * @const
+   */
+  var PR_STRING = 'str';
+  /**
+   * token style for a keyword
+   * @const
+   */
+  var PR_KEYWORD = 'kwd';
+  /**
+   * token style for a comment
+   * @const
+   */
+  var PR_COMMENT = 'com';
+  /**
+   * token style for a type
+   * @const
+   */
+  var PR_TYPE = 'typ';
+  /**
+   * token style for a literal value.  e.g. 1, null, true.
+   * @const
+   */
+  var PR_LITERAL = 'lit';
+  /**
+   * token style for a punctuation string.
+   * @const
+   */
+  var PR_PUNCTUATION = 'pun';
+  /**
+   * token style for a punctuation string.
+   * @const
+   */
+  var PR_PLAIN = 'pln';
+
+  /**
+   * token style for an sgml tag.
+   * @const
+   */
+  var PR_TAG = 'tag';
+  /**
+   * token style for a markup declaration such as a DOCTYPE.
+   * @const
+   */
+  var PR_DECLARATION = 'dec';
+  /**
+   * token style for embedded source.
+   * @const
+   */
+  var PR_SOURCE = 'src';
+  /**
+   * token style for an sgml attribute name.
+   * @const
+   */
+  var PR_ATTRIB_NAME = 'atn';
+  /**
+   * token style for an sgml attribute value.
+   * @const
+   */
+  var PR_ATTRIB_VALUE = 'atv';
+
+  /**
+   * A class that indicates a section of markup that is not code, e.g. to allow
+   * embedding of line numbers within code listings.
+   * @const
+   */
+  var PR_NOCODE = 'nocode';
+
+
+
+/**
+ * A set of tokens that can precede a regular expression literal in
+ * javascript
+ * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
+ * has the full list, but I've removed ones that might be problematic when
+ * seen in languages that don't support regular expression literals.
+ *
+ * <p>Specifically, I've removed any keywords that can't precede a regexp
+ * literal in a syntactically legal javascript program, and I've removed the
+ * "in" keyword since it's not a keyword in many languages, and might be used
+ * as a count of inches.
+ *
+ * <p>The link a above does not accurately describe EcmaScript rules since
+ * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+ * very well in practice.
+ *
+ * @private
+ * @const
+ */
+var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
+
+// CAVEAT: this does not properly handle the case where a regular
+// expression immediately follows another since a regular expression may
+// have flags for case-sensitivity and the like.  Having regexp tokens
+// adjacent is not valid in any language I'm aware of, so I'm punting.
+// TODO: maybe style special characters inside a regexp as punctuation.
+
+
+  /**
+   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+   * matches the union of the sets of strings matched by the input RegExp.
+   * Since it matches globally, if the input strings have a start-of-input
+   * anchor (/^.../), it is ignored for the purposes of unioning.
+   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+   * @return {RegExp} a global regex.
+   */
+  function combinePrefixPatterns(regexs) {
+    var capturedGroupIndex = 0;
+  
+    var needToFoldCase = false;
+    var ignoreCase = false;
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.ignoreCase) {
+        ignoreCase = true;
+      } else if (/[a-z]/i.test(regex.source.replace(
+                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+        needToFoldCase = true;
+        ignoreCase = false;
+        break;
+      }
+    }
+  
+    var escapeCharToCodeUnit = {
+      'b': 8,
+      't': 9,
+      'n': 0xa,
+      'v': 0xb,
+      'f': 0xc,
+      'r': 0xd
+    };
+  
+    function decodeEscape(charsetPart) {
+      var cc0 = charsetPart.charCodeAt(0);
+      if (cc0 !== 92 /* \\ */) {
+        return cc0;
+      }
+      var c1 = charsetPart.charAt(1);
+      cc0 = escapeCharToCodeUnit[c1];
+      if (cc0) {
+        return cc0;
+      } else if ('0' <= c1 && c1 <= '7') {
+        return parseInt(charsetPart.substring(1), 8);
+      } else if (c1 === 'u' || c1 === 'x') {
+        return parseInt(charsetPart.substring(2), 16);
+      } else {
+        return charsetPart.charCodeAt(1);
+      }
+    }
+  
+    function encodeEscape(charCode) {
+      if (charCode < 0x20) {
+        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+      }
+      var ch = String.fromCharCode(charCode);
+      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+        ch = '\\' + ch;
+      }
+      return ch;
+    }
+  
+    function caseFoldCharset(charSet) {
+      var charsetParts = charSet.substring(1, charSet.length - 1).match(
+          new RegExp(
+              '\\\\u[0-9A-Fa-f]{4}'
+              + '|\\\\x[0-9A-Fa-f]{2}'
+              + '|\\\\[0-3][0-7]{0,2}'
+              + '|\\\\[0-7]{1,2}'
+              + '|\\\\[\\s\\S]'
+              + '|-'
+              + '|[^-\\\\]',
+              'g'));
+      var groups = [];
+      var ranges = [];
+      var inverse = charsetParts[0] === '^';
+      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+        var p = charsetParts[i];
+        if (/\\[bdsw]/i.test(p)) {  // Don't muck with named groups.
+          groups.push(p);
+        } else {
+          var start = decodeEscape(p);
+          var end;
+          if (i + 2 < n && '-' === charsetParts[i + 1]) {
+            end = decodeEscape(charsetParts[i + 2]);
+            i += 2;
+          } else {
+            end = start;
+          }
+          ranges.push([start, end]);
+          // If the range might intersect letters, then expand it.
+          // This case handling is too simplistic.
+          // It does not deal with non-latin case folding.
+          // It works for latin source code identifiers though.
+          if (!(end < 65 || start > 122)) {
+            if (!(end < 65 || start > 90)) {
+              ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+            }
+            if (!(end < 97 || start > 122)) {
+              ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+            }
+          }
+        }
+      }
+  
+      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+      // -> [[1, 12], [14, 14], [16, 17]]
+      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
+      var consolidatedRanges = [];
+      var lastRange = [NaN, NaN];
+      for (var i = 0; i < ranges.length; ++i) {
+        var range = ranges[i];
+        if (range[0] <= lastRange[1] + 1) {
+          lastRange[1] = Math.max(lastRange[1], range[1]);
+        } else {
+          consolidatedRanges.push(lastRange = range);
+        }
+      }
+  
+      var out = ['['];
+      if (inverse) { out.push('^'); }
+      out.push.apply(out, groups);
+      for (var i = 0; i < consolidatedRanges.length; ++i) {
+        var range = consolidatedRanges[i];
+        out.push(encodeEscape(range[0]));
+        if (range[1] > range[0]) {
+          if (range[1] + 1 > range[0]) { out.push('-'); }
+          out.push(encodeEscape(range[1]));
+        }
+      }
+      out.push(']');
+      return out.join('');
+    }
+  
+    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+      // Split into character sets, escape sequences, punctuation strings
+      // like ('(', '(?:', ')', '^'), and runs of characters that do not
+      // include any of the above.
+      var parts = regex.source.match(
+          new RegExp(
+              '(?:'
+              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
+              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
+              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
+              + '|\\\\[0-9]+'  // a back-reference or octal escape
+              + '|\\\\[^ux0-9]'  // other escape sequence
+              + '|\\(\\?[:!=]'  // start of a non-capturing group
+              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
+              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
+              + ')',
+              'g'));
+      var n = parts.length;
+  
+      // Maps captured group numbers to the number they will occupy in
+      // the output or to -1 if that has not been determined, or to
+      // undefined if they need not be capturing in the output.
+      var capturedGroups = [];
+  
+      // Walk over and identify back references to build the capturedGroups
+      // mapping.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          // groups are 1-indexed, so max group index is count of '('
+          ++groupIndex;
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            capturedGroups[decimalValue] = -1;
+          }
+        }
+      }
+  
+      // Renumber groups and reduce capturing groups to non-capturing groups
+      // where possible.
+      for (var i = 1; i < capturedGroups.length; ++i) {
+        if (-1 === capturedGroups[i]) {
+          capturedGroups[i] = ++capturedGroupIndex;
+        }
+      }
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          ++groupIndex;
+          if (capturedGroups[groupIndex] === undefined) {
+            parts[i] = '(?:';
+          }
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            parts[i] = '\\' + capturedGroups[groupIndex];
+          }
+        }
+      }
+  
+      // Remove any prefix anchors so that the output will match anywhere.
+      // ^^ really does mean an anchored match though.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+      }
+  
+      // Expand letters to groups to handle mixing of case-sensitive and
+      // case-insensitive patterns if necessary.
+      if (regex.ignoreCase && needToFoldCase) {
+        for (var i = 0; i < n; ++i) {
+          var p = parts[i];
+          var ch0 = p.charAt(0);
+          if (p.length >= 2 && ch0 === '[') {
+            parts[i] = caseFoldCharset(p);
+          } else if (ch0 !== '\\') {
+            // TODO: handle letters in numeric escapes.
+            parts[i] = p.replace(
+                /[a-zA-Z]/g,
+                function (ch) {
+                  var cc = ch.charCodeAt(0);
+                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+                });
+          }
+        }
+      }
+  
+      return parts.join('');
+    }
+  
+    var rewritten = [];
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.global || regex.multiline) { throw new Error('' + regex); }
+      rewritten.push(
+          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+    }
+  
+    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+  }
+
+
+  /**
+   * Split markup into a string of source code and an array mapping ranges in
+   * that string to the text nodes in which they appear.
+   *
+   * <p>
+   * The HTML DOM structure:</p>
+   * <pre>
+   * (Element   "p"
+   *   (Element "b"
+   *     (Text  "print "))       ; #1
+   *   (Text    "'Hello '")      ; #2
+   *   (Element "br")            ; #3
+   *   (Text    "  + 'World';")) ; #4
+   * </pre>
+   * <p>
+   * corresponds to the HTML
+   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>
+   *
+   * <p>
+   * It will produce the output:</p>
+   * <pre>
+   * {
+   *   sourceCode: "print 'Hello '\n  + 'World';",
+   *   //                 1         2
+   *   //       012345678901234 5678901234567
+   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]
+   * }
+   * </pre>
+   * <p>
+   * where #1 is a reference to the {@code "print "} text node above, and so
+   * on for the other text nodes.
+   * </p>
+   *
+   * <p>
+   * The {@code} spans array is an array of pairs.  Even elements are the start
+   * indices of substrings, and odd elements are the text nodes (or BR elements)
+   * that contain the text for those substrings.
+   * Substrings continue until the next index or the end of the source.
+   * </p>
+   *
+   * @param {Node} node an HTML DOM subtree containing source-code.
+   * @return {Object} source code and the text nodes in which they occur.
+   */
+  function extractSourceSpans(node) {
+    var nocode = /(?:^|\s)nocode(?:\s|$)/;
+  
+    var chunks = [];
+    var length = 0;
+    var spans = [];
+    var k = 0;
+  
+    var whitespace;
+    if (node.currentStyle) {
+      whitespace = node.currentStyle.whiteSpace;
+    } else if (window.getComputedStyle) {
+      whitespace = document.defaultView.getComputedStyle(node, null)
+          .getPropertyValue('white-space');
+    }
+    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
+  
+    function walk(node) {
+      switch (node.nodeType) {
+        case 1:  // Element
+          if (nocode.test(node.className)) { return; }
+          for (var child = node.firstChild; child; child = child.nextSibling) {
+            walk(child);
+          }
+          var nodeName = node.nodeName;
+          if ('BR' === nodeName || 'LI' === nodeName) {
+            chunks[k] = '\n';
+            spans[k << 1] = length++;
+            spans[(k++ << 1) | 1] = node;
+          }
+          break;
+        case 3: case 4:  // Text
+          var text = node.nodeValue;
+          if (text.length) {
+            if (!isPreformatted) {
+              text = text.replace(/[ \t\r\n]+/g, ' ');
+            } else {
+              text = text.replace(/\r\n?/g, '\n');  // Normalize newlines.
+            }
+            // TODO: handle tabs here?
+            chunks[k] = text;
+            spans[k << 1] = length;
+            length += text.length;
+            spans[(k++ << 1) | 1] = node;
+          }
+          break;
+      }
+    }
+  
+    walk(node);
+  
+    return {
+      sourceCode: chunks.join('').replace(/\n$/, ''),
+      spans: spans
+    };
+  }
+
+
+  /**
+   * Apply the given language handler to sourceCode and add the resulting
+   * decorations to out.
+   * @param {number} basePos the index of sourceCode within the chunk of source
+   *    whose decorations are already present on out.
+   */
+  function appendDecorations(basePos, sourceCode, langHandler, out) {
+    if (!sourceCode) { return; }
+    var job = {
+      sourceCode: sourceCode,
+      basePos: basePos
+    };
+    langHandler(job);
+    out.push.apply(out, job.decorations);
+  }
+
+  var notWs = /\S/;
+
+  /**
+   * Given an element, if it contains only one child element and any text nodes
+   * it contains contain only space characters, return the sole child element.
+   * Otherwise returns undefined.
+   * <p>
+   * This is meant to return the CODE element in {@code <pre><code ...>} when
+   * there is a single child element that contains all the non-space textual
+   * content, but not to return anything where there are multiple child elements
+   * as in {@code <pre><code>...</code><code>...</code></pre>} or when there
+   * is textual content.
+   */
+  function childContentWrapper(element) {
+    var wrapper = undefined;
+    for (var c = element.firstChild; c; c = c.nextSibling) {
+      var type = c.nodeType;
+      wrapper = (type === 1)  // Element Node
+          ? (wrapper ? element : c)
+          : (type === 3)  // Text Node
+          ? (notWs.test(c.nodeValue) ? element : wrapper)
+          : wrapper;
+    }
+    return wrapper === element ? undefined : wrapper;
+  }
+
+  /** Given triples of [style, pattern, context] returns a lexing function,
+    * The lexing function interprets the patterns to find token boundaries and
+    * returns a decoration list of the form
+    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+    * where index_n is an index into the sourceCode, and style_n is a style
+    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
+    * all characters in sourceCode[index_n-1:index_n].
+    *
+    * The stylePatterns is a list whose elements have the form
+    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+    *
+    * Style is a style constant like PR_PLAIN, or can be a string of the
+    * form 'lang-FOO', where FOO is a language extension describing the
+    * language of the portion of the token in $1 after pattern executes.
+    * E.g., if style is 'lang-lisp', and group 1 contains the text
+    * '(hello (world))', then that portion of the token will be passed to the
+    * registered lisp handler for formatting.
+    * The text before and after group 1 will be restyled using this decorator
+    * so decorators should take care that this doesn't result in infinite
+    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
+    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
+    * '<script>foo()<\/script>', which would cause the current decorator to
+    * be called with '<script>' which would not match the same rule since
+    * group 1 must not be empty, so it would be instead styled as PR_TAG by
+    * the generic tag rule.  The handler registered for the 'js' extension would
+    * then be called with 'foo()', and finally, the current decorator would
+    * be called with '<\/script>' which would not match the original rule and
+    * so the generic tag rule would identify it as a tag.
+    *
+    * Pattern must only match prefixes, and if it matches a prefix, then that
+    * match is considered a token with the same style.
+    *
+    * Context is applied to the last non-whitespace, non-comment token
+    * recognized.
+    *
+    * Shortcut is an optional string of characters, any of which, if the first
+    * character, gurantee that this pattern and only this pattern matches.
+    *
+    * @param {Array} shortcutStylePatterns patterns that always start with
+    *   a known character.  Must have a shortcut string.
+    * @param {Array} fallthroughStylePatterns patterns that will be tried in
+    *   order if the shortcut ones fail.  May have shortcuts.
+    *
+    * @return {function (Object)} a
+    *   function that takes source code and returns a list of decorations.
+    */
+  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+    var shortcuts = {};
+    var tokenizer;
+    (function () {
+      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+      var allRegexs = [];
+      var regexKeys = {};
+      for (var i = 0, n = allPatterns.length; i < n; ++i) {
+        var patternParts = allPatterns[i];
+        var shortcutChars = patternParts[3];
+        if (shortcutChars) {
+          for (var c = shortcutChars.length; --c >= 0;) {
+            shortcuts[shortcutChars.charAt(c)] = patternParts;
+          }
+        }
+        var regex = patternParts[1];
+        var k = '' + regex;
+        if (!regexKeys.hasOwnProperty(k)) {
+          allRegexs.push(regex);
+          regexKeys[k] = null;
+        }
+      }
+      allRegexs.push(/[\0-\uffff]/);
+      tokenizer = combinePrefixPatterns(allRegexs);
+    })();
+
+    var nPatterns = fallthroughStylePatterns.length;
+
+    /**
+     * Lexes job.sourceCode and produces an output array job.decorations of
+     * style classes preceded by the position at which they start in
+     * job.sourceCode in order.
+     *
+     * @param {Object} job an object like <pre>{
+     *    sourceCode: {string} sourceText plain text,
+     *    basePos: {int} position of job.sourceCode in the larger chunk of
+     *        sourceCode.
+     * }</pre>
+     */
+    var decorate = function (job) {
+      var sourceCode = job.sourceCode, basePos = job.basePos;
+      /** Even entries are positions in source in ascending order.  Odd enties
+        * are style markers (e.g., PR_COMMENT) that run from that position until
+        * the end.
+        * @type {Array.<number|string>}
+        */
+      var decorations = [basePos, PR_PLAIN];
+      var pos = 0;  // index into sourceCode
+      var tokens = sourceCode.match(tokenizer) || [];
+      var styleCache = {};
+
+      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+        var token = tokens[ti];
+        var style = styleCache[token];
+        var match = void 0;
+
+        var isEmbedded;
+        if (typeof style === 'string') {
+          isEmbedded = false;
+        } else {
+          var patternParts = shortcuts[token.charAt(0)];
+          if (patternParts) {
+            match = token.match(patternParts[1]);
+            style = patternParts[0];
+          } else {
+            for (var i = 0; i < nPatterns; ++i) {
+              patternParts = fallthroughStylePatterns[i];
+              match = token.match(patternParts[1]);
+              if (match) {
+                style = patternParts[0];
+                break;
+              }
+            }
+
+            if (!match) {  // make sure that we make progress
+              style = PR_PLAIN;
+            }
+          }
+
+          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+          if (isEmbedded && !(match && typeof match[1] === 'string')) {
+            isEmbedded = false;
+            style = PR_SOURCE;
+          }
+
+          if (!isEmbedded) { styleCache[token] = style; }
+        }
+
+        var tokenStart = pos;
+        pos += token.length;
+
+        if (!isEmbedded) {
+          decorations.push(basePos + tokenStart, style);
+        } else {  // Treat group 1 as an embedded block of source code.
+          var embeddedSource = match[1];
+          var embeddedSourceStart = token.indexOf(embeddedSource);
+          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+          if (match[2]) {
+            // If embeddedSource can be blank, then it would match at the
+            // beginning which would cause us to infinitely recurse on the
+            // entire token, so we catch the right context in match[2].
+            embeddedSourceEnd = token.length - match[2].length;
+            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+          }
+          var lang = style.substring(5);
+          // Decorate the left of the embedded source
+          appendDecorations(
+              basePos + tokenStart,
+              token.substring(0, embeddedSourceStart),
+              decorate, decorations);
+          // Decorate the embedded source
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceStart,
+              embeddedSource,
+              langHandlerForExtension(lang, embeddedSource),
+              decorations);
+          // Decorate the right of the embedded section
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceEnd,
+              token.substring(embeddedSourceEnd),
+              decorate, decorations);
+        }
+      }
+      job.decorations = decorations;
+    };
+    return decorate;
+  }
+
+  /** returns a function that produces a list of decorations from source text.
+    *
+    * This code treats ", ', and ` as string delimiters, and \ as a string
+    * escape.  It does not recognize perl's qq() style strings.
+    * It has no special handling for double delimiter escapes as in basic, or
+    * the tripled delimiters used in python, but should work on those regardless
+    * although in those cases a single string literal may be broken up into
+    * multiple adjacent string literals.
+    *
+    * It recognizes C, C++, and shell style comments.
+    *
+    * @param {Object} options a set of optional parameters.
+    * @return {function (Object)} a function that examines the source code
+    *     in the input job and builds the decoration list.
+    */
+  function sourceDecorator(options) {
+    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+    if (options['tripleQuotedStrings']) {
+      // '''multi-line-string''', 'single-line-string', and double-quoted
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+           null, '\'"']);
+    } else if (options['multiLineStrings']) {
+      // 'multi-line-string', "multi-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+           null, '\'"`']);
+    } else {
+      // 'single-line-string', "single-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,
+           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+           null, '"\'']);
+    }
+    if (options['verbatimStrings']) {
+      // verbatim-string-literal production from the C# grammar.  See issue 93.
+      fallthroughStylePatterns.push(
+          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+    }
+    var hc = options['hashComments'];
+    if (hc) {
+      if (options['cStyleComments']) {
+        if (hc > 1) {  // multiline hash comments
+          shortcutStylePatterns.push(
+              [PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);
+              
+        } else {
+          // Stop C preprocessor declarations at an unclosed open comment
+//          shortcutStylePatterns.push(
+//              [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+//               null, '#']);
+        }
+        fallthroughStylePatterns.push(
+            [PR_STRING,
+             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+             null]);
+      } else {
+        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+      }
+    }
+    if (options['cStyleComments']) {
+      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+      fallthroughStylePatterns.push(
+          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+    }
+    if (options['regexLiterals']) {
+      /**
+       * @const
+       */
+      var REGEX_LITERAL = (
+          // A regular expression literal starts with a slash that is
+          // not followed by * or / so that it is not confused with
+          // comments.
+          '/(?=[^/*])'
+          // and then contains any number of raw characters,
+          + '(?:[^/\\x5B\\x5C]'
+          // escape sequences (\x5C),
+          +    '|\\x5C[\\s\\S]'
+          // or non-nesting character sets (\x5B\x5D);
+          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+          // finally closed by a /.
+          + '/');
+      fallthroughStylePatterns.push(
+          ['lang-regex',
+           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+           ]);
+    }
+
+    var types = options['types'];
+    if (types) {
+      fallthroughStylePatterns.push([PR_TYPE, types]);
+    }
+
+    var keywords = ("" + options['keywords']).replace(/^ | $/g, '');
+    if (keywords.length) {
+      fallthroughStylePatterns.push(
+          [PR_KEYWORD,
+           new RegExp('^(?:' + keywords.replace(/[\s,]+/g, '|') + ')\\b'),
+           null]);
+    }
+
+    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
+    fallthroughStylePatterns.push(
+        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_TYPE,        /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null],
+        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_LITERAL,
+         new RegExp(
+             '^(?:'
+             // A hex number
+             + '0x[a-f0-9]+'
+             // or an octal or decimal number,
+             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+             // possibly in scientific notation
+             + '(?:e[+\\-]?\\d+)?'
+             + ')'
+             // with an optional modifier like UL for unsigned long
+             + '[a-z]*', 'i'),
+         null, '0123456789'],
+        // Don't treat escaped quotes in bash as starting strings.  See issue 144.
+        [PR_PLAIN,       /^\\[\s\S]?/, null],
+        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null]);
+
+    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+  }
+
+  var decorateSource = sourceDecorator({
+        'keywords': ALL_KEYWORDS,
+        'hashComments': true,
+        'cStyleComments': true,
+        'multiLineStrings': true,
+        'regexLiterals': true
+      });
+
+  /**
+   * Given a DOM subtree, wraps it in a list, and puts each line into its own
+   * list item.
+   *
+   * @param {Node} node modified in place.  Its content is pulled into an
+   *     HTMLOListElement, and each line is moved into a separate list item.
+   *     This requires cloning elements, so the input might not have unique
+   *     IDs after numbering.
+   */
+  function numberLines(node, opt_startLineNum) {
+    var nocode = /(?:^|\s)nocode(?:\s|$)/;
+    var lineBreak = /\r\n?|\n/;
+  
+    var document = node.ownerDocument;
+  
+    var whitespace;
+    if (node.currentStyle) {
+      whitespace = node.currentStyle.whiteSpace;
+    } else if (window.getComputedStyle) {
+      whitespace = document.defaultView.getComputedStyle(node, null)
+          .getPropertyValue('white-space');
+    }
+    // If it's preformatted, then we need to split lines on line breaks
+    // in addition to <BR>s.
+    var isPreformatted = whitespace && 'pre' === whitespace.substring(0, 3);
+  
+    var li = document.createElement('LI');
+    while (node.firstChild) {
+      li.appendChild(node.firstChild);
+    }
+    // An array of lines.  We split below, so this is initialized to one
+    // un-split line.
+    var listItems = [li];
+  
+    function walk(node) {
+      switch (node.nodeType) {
+        case 1:  // Element
+          if (nocode.test(node.className)) { break; }
+          if ('BR' === node.nodeName) {
+            breakAfter(node);
+            // Discard the <BR> since it is now flush against a </LI>.
+            if (node.parentNode) {
+              node.parentNode.removeChild(node);
+            }
+          } else {
+            for (var child = node.firstChild; child; child = child.nextSibling) {
+              walk(child);
+            }
+          }
+          break;
+        case 3: case 4:  // Text
+          if (isPreformatted) {
+            var text = node.nodeValue;
+            var match = text.match(lineBreak);
+            if (match) {
+              var firstLine = text.substring(0, match.index);
+              node.nodeValue = firstLine;
+              var tail = text.substring(match.index + match[0].length);
+              if (tail) {
+                var parent = node.parentNode;
+                parent.insertBefore(
+                    document.createTextNode(tail), node.nextSibling);
+              }
+              breakAfter(node);
+              if (!firstLine) {
+                // Don't leave blank text nodes in the DOM.
+                node.parentNode.removeChild(node);
+              }
+            }
+          }
+          break;
+      }
+    }
+  
+    // Split a line after the given node.
+    function breakAfter(lineEndNode) {
+      // If there's nothing to the right, then we can skip ending the line
+      // here, and move root-wards since splitting just before an end-tag
+      // would require us to create a bunch of empty copies.
+      while (!lineEndNode.nextSibling) {
+        lineEndNode = lineEndNode.parentNode;
+        if (!lineEndNode) { return; }
+      }
+  
+      function breakLeftOf(limit, copy) {
+        // Clone shallowly if this node needs to be on both sides of the break.
+        var rightSide = copy ? limit.cloneNode(false) : limit;
+        var parent = limit.parentNode;
+        if (parent) {
+          // We clone the parent chain.
+          // This helps us resurrect important styling elements that cross lines.
+          // E.g. in <i>Foo<br>Bar</i>
+          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.
+          var parentClone = breakLeftOf(parent, 1);
+          // Move the clone and everything to the right of the original
+          // onto the cloned parent.
+          var next = limit.nextSibling;
+          parentClone.appendChild(rightSide);
+          for (var sibling = next; sibling; sibling = next) {
+            next = sibling.nextSibling;
+            parentClone.appendChild(sibling);
+          }
+        }
+        return rightSide;
+      }
+  
+      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0);
+  
+      // Walk the parent chain until we reach an unattached LI.
+      for (var parent;
+           // Check nodeType since IE invents document fragments.
+           (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {
+        copiedListItem = parent;
+      }
+      // Put it on the list of lines for later processing.
+      listItems.push(copiedListItem);
+    }
+  
+    // Split lines while there are lines left to split.
+    for (var i = 0;  // Number of lines that have been split so far.
+         i < listItems.length;  // length updated by breakAfter calls.
+         ++i) {
+      walk(listItems[i]);
+    }
+  
+    // Make sure numeric indices show correctly.
+    if (opt_startLineNum === (opt_startLineNum|0)) {
+      listItems[0].setAttribute('value', opt_startLineNum);
+    }
+  
+    var ol = document.createElement('OL');
+    ol.className = 'linenums';
+    var offset = Math.max(0, ((opt_startLineNum - 1 /* zero index */)) | 0) || 0;
+    for (var i = 0, n = listItems.length; i < n; ++i) {
+      li = listItems[i];
+      // Stick a class on the LIs so that stylesheets can
+      // color odd/even rows, or any other row pattern that
+      // is co-prime with 10.
+      li.className = 'L' + ((i + offset) % 10);
+      if (!li.firstChild) {
+        li.appendChild(document.createTextNode('\xA0'));
+      }
+      ol.appendChild(li);
+    }
+  
+    node.appendChild(ol);
+  }
+
+  /**
+   * Breaks {@code job.sourceCode} around style boundaries in
+   * {@code job.decorations} and modifies {@code job.sourceNode} in place.
+   * @param {Object} job like <pre>{
+   *    sourceCode: {string} source as plain text,
+   *    spans: {Array.<number|Node>} alternating span start indices into source
+   *       and the text node or element (e.g. {@code <BR>}) corresponding to that
+   *       span.
+   *    decorations: {Array.<number|string} an array of style classes preceded
+   *       by the position at which they start in job.sourceCode in order
+   * }</pre>
+   * @private
+   */
+  function recombineTagsAndDecorations(job) {
+    var isIE = /\bMSIE\b/.test(navigator.userAgent);
+    var newlineRe = /\n/g;
+  
+    var source = job.sourceCode;
+    var sourceLength = source.length;
+    // Index into source after the last code-unit recombined.
+    var sourceIndex = 0;
+  
+    var spans = job.spans;
+    var nSpans = spans.length;
+    // Index into spans after the last span which ends at or before sourceIndex.
+    var spanIndex = 0;
+  
+    var decorations = job.decorations;
+    var nDecorations = decorations.length;
+    // Index into decorations after the last decoration which ends at or before
+    // sourceIndex.
+    var decorationIndex = 0;
+  
+    // Remove all zero-length decorations.
+    decorations[nDecorations] = sourceLength;
+    var decPos, i;
+    for (i = decPos = 0; i < nDecorations;) {
+      if (decorations[i] !== decorations[i + 2]) {
+        decorations[decPos++] = decorations[i++];
+        decorations[decPos++] = decorations[i++];
+      } else {
+        i += 2;
+      }
+    }
+    nDecorations = decPos;
+  
+    // Simplify decorations.
+    for (i = decPos = 0; i < nDecorations;) {
+      var startPos = decorations[i];
+      // Conflate all adjacent decorations that use the same style.
+      var startDec = decorations[i + 1];
+      var end = i + 2;
+      while (end + 2 <= nDecorations && decorations[end + 1] === startDec) {
+        end += 2;
+      }
+      decorations[decPos++] = startPos;
+      decorations[decPos++] = startDec;
+      i = end;
+    }
+  
+    nDecorations = decorations.length = decPos;
+  
+    var decoration = null;
+    while (spanIndex < nSpans) {
+      var spanStart = spans[spanIndex];
+      var spanEnd = spans[spanIndex + 2] || sourceLength;
+  
+      var decStart = decorations[decorationIndex];
+      var decEnd = decorations[decorationIndex + 2] || sourceLength;
+  
+      var end = Math.min(spanEnd, decEnd);
+  
+      var textNode = spans[spanIndex + 1];
+      var styledText;
+      if (textNode.nodeType !== 1  // Don't muck with <BR>s or <LI>s
+          // Don't introduce spans around empty text nodes.
+          && (styledText = source.substring(sourceIndex, end))) {
+        // This may seem bizarre, and it is.  Emitting LF on IE causes the
+        // code to display with spaces instead of line breaks.
+        // Emitting Windows standard issue linebreaks (CRLF) causes a blank
+        // space to appear at the beginning of every line but the first.
+        // Emitting an old Mac OS 9 line separator makes everything spiffy.
+        if (isIE) { styledText = styledText.replace(newlineRe, '\r'); }
+        textNode.nodeValue = styledText;
+        var document = textNode.ownerDocument;
+        var span = document.createElement('SPAN');
+        span.className = decorations[decorationIndex + 1];
+        var parentNode = textNode.parentNode;
+        parentNode.replaceChild(span, textNode);
+        span.appendChild(textNode);
+        if (sourceIndex < spanEnd) {  // Split off a text node.
+          spans[spanIndex + 1] = textNode
+              // TODO: Possibly optimize by using '' if there's no flicker.
+              = document.createTextNode(source.substring(end, spanEnd));
+          parentNode.insertBefore(textNode, span.nextSibling);
+        }
+      }
+  
+      sourceIndex = end;
+  
+      if (sourceIndex >= spanEnd) {
+        spanIndex += 2;
+      }
+      if (sourceIndex >= decEnd) {
+        decorationIndex += 2;
+      }
+    }
+  }
+
+
+  /** Maps language-specific file extensions to handlers. */
+  var langHandlerRegistry = {};
+  /** Register a language handler for the given file extensions.
+    * @param {function (Object)} handler a function from source code to a list
+    *      of decorations.  Takes a single argument job which describes the
+    *      state of the computation.   The single parameter has the form
+    *      {@code {
+    *        sourceCode: {string} as plain text.
+    *        decorations: {Array.<number|string>} an array of style classes
+    *                     preceded by the position at which they start in
+    *                     job.sourceCode in order.
+    *                     The language handler should assigned this field.
+    *        basePos: {int} the position of source in the larger source chunk.
+    *                 All positions in the output decorations array are relative
+    *                 to the larger source chunk.
+    *      } }
+    * @param {Array.<string>} fileExtensions
+    */
+  function registerLangHandler(handler, fileExtensions) {
+    for (var i = fileExtensions.length; --i >= 0;) {
+      var ext = fileExtensions[i];
+      if (!langHandlerRegistry.hasOwnProperty(ext)) {
+        langHandlerRegistry[ext] = handler;
+      } else if (window['console']) {
+        console['warn']('cannot override language handler %s', ext);
+      }
+    }
+  }
+  function langHandlerForExtension(extension, source) {
+    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+      // Treat it as markup if the first non whitespace character is a < and
+      // the last non-whitespace character is a >.
+      extension = /^\s*</.test(source)
+          ? 'default-markup'
+          : 'default-code';
+    }
+    return langHandlerRegistry[extension];
+  }
+  registerLangHandler(decorateSource, ['default-code']);
+  registerLangHandler(
+      createSimpleLexer(
+          [],
+          [
+           [PR_PLAIN,       /^[^<?]+/],
+           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
+           // Unescaped content in an unknown language
+           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
+           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
+           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+           // Unescaped content in javascript.  (Or possibly vbscript).
+           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+           // Contains unescaped stylesheet content
+           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
+          ]),
+      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+  registerLangHandler(
+      createSimpleLexer(
+          [
+           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
+           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+           ],
+          [
+           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+           [PR_PUNCTUATION,  /^[=<>\/]+/],
+           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
+           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
+           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
+           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
+           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
+           ]),
+      ['in.tag']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CPP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true,
+          'types': C_TYPES
+        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': 'null,true,false'
+        }), ['json']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CSHARP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true,
+          'verbatimStrings': true,
+          'types': C_TYPES
+        }), ['cs']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JAVA_KEYWORDS,
+          'cStyleComments': true
+        }), ['java']);
+  registerLangHandler(sourceDecorator({
+          'keywords': SH_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true
+        }), ['bsh', 'csh', 'sh']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PYTHON_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'tripleQuotedStrings': true
+        }), ['cv', 'py']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PERL_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['perl', 'pl', 'pm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': RUBY_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['rb']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JSCRIPT_KEYWORDS,
+          'cStyleComments': true,
+          'regexLiterals': true
+        }), ['js']);
+  registerLangHandler(sourceDecorator({
+          'keywords': COFFEE_KEYWORDS,
+          'hashComments': 3,  // ### style block comments
+          'cStyleComments': true,
+          'multilineStrings': true,
+          'tripleQuotedStrings': true,
+          'regexLiterals': true
+        }), ['coffee']);
+  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+  function applyDecorator(job) {
+    var opt_langExtension = job.langExtension;
+
+    try {
+      // Extract tags, and convert the source code to plain text.
+      var sourceAndSpans = extractSourceSpans(job.sourceNode);
+      /** Plain text. @type {string} */
+      var source = sourceAndSpans.sourceCode;
+      job.sourceCode = source;
+      job.spans = sourceAndSpans.spans;
+      job.basePos = 0;
+
+      // Apply the appropriate language handler
+      langHandlerForExtension(opt_langExtension, source)(job);
+
+      // Integrate the decorations and tags back into the source code,
+      // modifying the sourceNode in place.
+      recombineTagsAndDecorations(job);
+    } catch (e) {
+      if ('console' in window) {
+        console['log'](e && e['stack'] ? e['stack'] : e);
+      }
+    }
+  }
+
+  /**
+   * @param sourceCodeHtml {string} The HTML to pretty print.
+   * @param opt_langExtension {string} The language name to use.
+   *     Typically, a filename extension like 'cpp' or 'java'.
+   * @param opt_numberLines {number|boolean} True to number lines,
+   *     or the 1-indexed number of the first line in sourceCodeHtml.
+   */
+  function prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {
+    var container = document.createElement('PRE');
+    // This could cause images to load and onload listeners to fire.
+    // E.g. <img onerror="alert(1337)" src="nosuchimage.png">.
+    // We assume that the inner HTML is from a trusted source.
+    container.innerHTML = sourceCodeHtml;
+    if (opt_numberLines) {
+      numberLines(container, opt_numberLines);
+    }
+
+    var job = {
+      langExtension: opt_langExtension,
+      numberLines: opt_numberLines,
+      sourceNode: container
+    };
+    applyDecorator(job);
+    return container.innerHTML;
+  }
+
+  function prettyPrint(opt_whenDone) {
+    function byTagName(tn) { return document.getElementsByTagName(tn); }
+    // fetch a list of nodes to rewrite
+    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
+    var elements = [];
+    for (var i = 0; i < codeSegments.length; ++i) {
+      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+        elements.push(codeSegments[i][j]);
+      }
+    }
+    codeSegments = null;
+
+    var clock = Date;
+    if (!clock['now']) {
+      clock = { 'now': function () { return +(new Date); } };
+    }
+
+    // The loop is broken into a series of continuations to make sure that we
+    // don't make the browser unresponsive when rewriting a large page.
+    var k = 0;
+    var prettyPrintingJob;
+
+    var langExtensionRe = /\blang(?:uage)?-([\w.]+)(?!\S)/;
+    var prettyPrintRe = /\bprettyprint\b/;
+
+    function doWork() {
+      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+                     clock['now']() + 250 /* ms */ :
+                     Infinity);
+      for (; k < elements.length && clock['now']() < endTime; k++) {
+        var cs = elements[k];
+        var className = cs.className;
+        if (className.indexOf('prettyprint') >= 0) {
+          // If the classes includes a language extensions, use it.
+          // Language extensions can be specified like
+          //     <pre class="prettyprint lang-cpp">
+          // the language extension "cpp" is used to find a language handler as
+          // passed to PR.registerLangHandler.
+          // HTML5 recommends that a language be specified using "language-"
+          // as the prefix instead.  Google Code Prettify supports both.
+          // http://dev.w3.org/html5/spec-author-view/the-code-element.html
+          var langExtension = className.match(langExtensionRe);
+          // Support <pre class="prettyprint"><code class="language-c">
+          var wrapper;
+          if (!langExtension && (wrapper = childContentWrapper(cs))
+              && "CODE" === wrapper.tagName) {
+            langExtension = wrapper.className.match(langExtensionRe);
+          }
+
+          if (langExtension) {
+            langExtension = langExtension[1];
+          }
+
+          // make sure this is not nested in an already prettified element
+          var nested = false;
+          for (var p = cs.parentNode; p; p = p.parentNode) {
+            if ((p.tagName === 'pre' || p.tagName === 'code' ||
+                 p.tagName === 'xmp') &&
+                p.className && p.className.indexOf('prettyprint') >= 0) {
+              nested = true;
+              break;
+            }
+          }
+          if (!nested) {
+            // Look for a class like linenums or linenums:<n> where <n> is the
+            // 1-indexed number of the first line.
+            var lineNums = cs.className.match(/\blinenums\b(?::(\d+))?/);
+            lineNums = lineNums
+                  ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true
+                  : false;
+            if (lineNums) { numberLines(cs, lineNums); }
+
+            // do the pretty printing
+            prettyPrintingJob = {
+              langExtension: langExtension,
+              sourceNode: cs,
+              numberLines: lineNums
+            };
+            applyDecorator(prettyPrintingJob);
+          }
+        }
+      }
+      if (k < elements.length) {
+        // finish up in a continuation
+        setTimeout(doWork, 250);
+      } else if (opt_whenDone) {
+        opt_whenDone();
+      }
+    }
+
+    doWork();
+  }
+
+   /**
+    * Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+    * {@code class=prettyprint} and prettify them.
+    *
+    * @param {Function?} opt_whenDone if specified, called when the last entry
+    *     has been finished.
+    */
+  window['prettyPrintOne'] = prettyPrintOne;
+   /**
+    * Pretty print a chunk of code.
+    *
+    * @param {string} sourceCodeHtml code as html
+    * @return {string} code as html, but prettier
+    */
+  window['prettyPrint'] = prettyPrint;
+   /**
+    * Contains functions for creating and registering new language handlers.
+    * @type {Object}
+    */
+  window['PR'] = {
+        'createSimpleLexer': createSimpleLexer,
+        'registerLangHandler': registerLangHandler,
+        'sourceDecorator': sourceDecorator,
+        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+        'PR_COMMENT': PR_COMMENT,
+        'PR_DECLARATION': PR_DECLARATION,
+        'PR_KEYWORD': PR_KEYWORD,
+        'PR_LITERAL': PR_LITERAL,
+        'PR_NOCODE': PR_NOCODE,
+        'PR_PLAIN': PR_PLAIN,
+        'PR_PUNCTUATION': PR_PUNCTUATION,
+        'PR_SOURCE': PR_SOURCE,
+        'PR_STRING': PR_STRING,
+        'PR_TAG': PR_TAG,
+        'PR_TYPE': PR_TYPE
+      };
+})();
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/styles-systeminfo.css b/org.tizen.web.apireference/html/device_api/tv/tizen/styles-systeminfo.css
new file mode 100755 (executable)
index 0000000..839dd6a
--- /dev/null
@@ -0,0 +1,637 @@
+body {\r
+       background: white;\r
+       color: #1C1C1C;\r
+       margin-right: 20px;\r
+       margin-left: 20px;\r
+       font-size: 9pt;\r
+       font-weight: normal;\r
+       font-family: Arial, Helvetica, sans-serif;\r
+}\r
+\r
+h1, h2, h3, h4, h5, h6, p, table, td, caption, th,  ol, dl,  dd, dt, footer {\r
+       font-family: Arial, Verdana, Helvetica, sans-serif\r
+       }\r
+\r
+/*     Set default font to 9 pt        */\r
+table, div, p, dl, td, caption, th, ul, ol, li, dd, dt, pre, code {\r
+       font-size: 9pt;\r
+}\r
+\r
+pre, code { \r
+       font-family: "Courier New", Courier, monospace;\r
+       border: 1px solid #719cc7;\r
+       margin: 6px 1.5px;\r
+       padding: 1px 1px 1px 1px;\r
+       font-weight: normal;\r
+       font-style: normal;\r
+}\r
+\r
+h1 {font-size: 24pt; color: #0E437D;}\r
+h2 {font-size: 18pt; color: #0E437D;}\r
+h3 {font-size: 14pt; color: #1C1C1C;}\r
+h4 {font-size: 12pt; color: #1C1C1C;}\r
+h5 {font-size: 10pt; color: #1C1C1C;}\r
+\r
+h1, h2, h3, h4, h5 {\r
+       font-weight: bold;\r
+       font-style: normal; \r
+       line-height: normal; \r
+       margin-top: 16pt;\r
+}\r
+\r
+caption, p.caption { \r
+       font-size: 9pt;\r
+       color: #1C1C1C;\r
+       font-weight: bold;\r
+       text-align: left;\r
+       margin-top: 20px;\r
+       margin-bottom: 0px;\r
+}\r
+\r
+ol  {\r
+       margin-bottom: 20px;\r
+}\r
+\r
+ul ul , ol ul, ul ol, ol ol{\r
+       margin-top: 10px;\r
+}\r
+\r
+ul li, ol li {\r
+       margin-bottom: 10px;\r
+}\r
+\r
+ol.tutorstep li {\r
+       border-top: 2px solid #719cc7;\r
+       list-style-position: inside;\r
+       font-weight: bold;\r
+       margin-top: 30px;\r
+       margin-left: -20px;\r
+       padding-top: 3px;\r
+       font-size: 12pt;\r
+}\r
+\r
+ol.tutorstep li p{\r
+       font-size: 9pt;\r
+       font-weight: normal;\r
+       margin-top: 10px;\r
+}\r
+\r
+ol.tutorstep ol li, ol.tutorstep li ol li, ol.tutorstep li ul li {\r
+       font-size: 9pt;\r
+       list-style-position: outside; \r
+       margin-left: 0px;\r
+       font-weight: normal;\r
+}\r
+\r
+ol.tutorstep ol li p, ol.tutorstep ul li p {\r
+       font-size: 9pt;\r
+       font-weight: normal; \r
+       margin-top: 5px;\r
+}\r
+\r
+ol li p, ul li p {\r
+       font-size: 9pt;\r
+       font-weight: normal;\r
+       margin-bottom: 2px;\r
+       margin-top: 2px;\r
+}\r
+\r
+ol ol , ol.tutorstep ol{\r
+       font-size: 9pt;\r
+       font-weight: normal;\r
+       list-style-type: lower-alpha;\r
+       color: #1C1C1C; \r
+       border-style: none;\r
+       margin-top: 10px; \r
+}\r
+\r
+ol.tutorstep ul {\r
+       margin-top: 10px;\r
+       font-size: 9pt;\r
+}\r
+\r
+ol ol li, ol ul li, ol.tutorstep ol li, ol.tutorstep ul li {\r
+       border-style: none;\r
+       margin-top: 5px;\r
+       font-size: 9pt;\r
+}\r
+\r
+ul {\r
+       font-size: 9pt;\r
+       font-weight: normal;\r
+       color: #1C1C1C;\r
+}\r
+\r
+\r
+/*     End of font face declarations   */\r
+\r
+/*     Set table borders and heading row background    */\r
+table  {\r
+       border: 0px;\r
+       border-collapse: collapse;\r
+       width: 100%;\r
+       margin-top: 20px;\r
+       margin-bottom: 20px;\r
+\r
+}\r
+\r
+th {\r
+       border-top: 2px solid #719cc7;\r
+       border-right: 1px solid #c6d9f1;\r
+       border-left: 1px solid #c6d9f1;\r
+       background-color: #f3f7fb;\r
+       padding: 4px;\r
+       color: #719cc7;\r
+       font-size: 9pt;\r
+       font-weight: bold;\r
+}\r
+\r
+td {\r
+       border: 1px solid #c6d9f1;\r
+       vertical-align:top;\r
+       padding: 3px 20px 5px 20px;\r
+       }\r
+\r
+td.middle {\r
+       border: 1px solid #c6d9f1;\r
+       vertical-align:middle;\r
+       padding: 3px 20px 5px 20px;\r
+       }\r
+\r
+\r
+/*     Notes stand out using a light top & bottom borders with yellow background       */\r
+table.note {\r
+       border-top: 2px solid #719cc7;\r
+       border-left: 0px;\r
+       border-right: 0px;\r
+       width: 100%;\r
+}\r
+\r
+tr.note {\r
+       text-align: left;\r
+}\r
+\r
+th.note {\r
+       text-align: left;\r
+       background-color: #ddd9c3;\r
+       background-image: note.gif;\r
+       border-top: 2px solid #719cc7;\r
+       border-bottom:1px solid #719cc7;\r
+       border-right: none;\r
+\r
+}\r
+\r
+td.note, p.note {\r
+       background-color: #eeece1;\r
+       color: #1C1C1C;\r
+       padding: 5px;\r
+       margin-top:12px;\r
+       margin-bottom:12px;\r
+       border: none;\r
+}\r
+\r
+\r
+/*     Figure titles are centered and bolded   */\r
+p.figure , ol.tutorstep li p.figure, ol.tutorstep ol li p.figure, ol.tutorstep ul li p.figure {\r
+       text-align: center;\r
+       font-weight: bold;\r
+}\r
+\r
+/*     Red background and white text for things that need fixing before release        */\r
+.fix   {\r
+       background-color: red;\r
+       font-weight: bold;\r
+       color: white;\r
+       }\r
+\r
+/*     Footer includes space and a gray line above             */\r
+#footer {\r
+       font-size: 9pt;\r
+       padding-top:10px;\r
+       margin-top:20px;\r
+       text-align: center;\r
+/*     border-top:1px solid #EEEEEE; */\r
+       }\r
+       \r
+#banner {\r
+       padding: 8px 4px 8px 4px;\r
+       /* top right bottom left */\r
+       border: 1px solid #7f7f7f;\r
+       width: 100%;\r
+       background-image: url("banner.png");\r
+       text-align: left;\r
+       font-weight: bold;\r
+       font-size: 9pt;\r
+       color: #ffffff;\r
+}\r
+       \r
+caption { \r
+       font-size: 9pt;\r
+       color: #1C1C1C;\r
+       font-weight: bold;\r
+       text-align: center;\r
+       margin-top: 20px;\r
+       margin-bottom: 0px;\r
+}\r
+\r
+div.qindex, div.navpath, div.navtab{\r
+       background-color: #e8eef2;\r
+       border: 1px solid #84b0c7;\r
+       text-align: center;\r
+       margin: 2px;\r
+       padding: 2px;\r
+}\r
+\r
+div.qindex, div.navpath {\r
+       width: 100%;\r
+       line-height: 140%;\r
+}\r
+\r
+div.navtab {\r
+       margin-right: 15px;\r
+}\r
+\r
+/* @group Link Styling */\r
+\r
+a:link {\r
+       color: #719cc7;\r
+       text-decoration: underline;\r
+       font-weight: bold;\r
+}\r
+\r
+a:hover { \r
+       color: #0e437d;\r
+}\r
+\r
+a:visited {\r
+       text-decoration: underline;\r
+       color: #719cc7;\r
+       font-weight: bold;\r
+}\r
+\r
+a.qindex {\r
+       font-weight: bold;\r
+       padding: 2px;\r
+}\r
+\r
+a.qindex:hover {\r
+       text-decoration: underline;\r
+       color: #0e437d;\r
+       padding: 2px;\r
+}\r
+\r
+a.qindex:visited {\r
+       text-decoration: underline;\r
+       font-weight: bold;\r
+       color: #719cc7;\r
+       padding: 2px;\r
+}\r
+\r
+a.qindexHL {\r
+       text-decoration: underline;\r
+       font-weight: bold;\r
+       background-color: #6666cc;\r
+       color: #ffffff;\r
+       padding: 2px 6px;\r
+       border: 1px double #9295C2;\r
+}\r
+\r
+a.qindexHL:hover {\r
+       text-decoration: none;\r
+       background-color: #6666cc;\r
+       color: #ffffff;\r
+       padding: 2px 6px;\r
+}\r
+\r
+div.banner {\r
+       padding: 8px 4px 0px 4px;\r
+       /* top right bottom left */\r
+       border: 1px solid #7f7f7f;\r
+       width: 100%;\r
+       background-image: url("banner.png");\r
+       text-align: left;\r
+       font-weight: bold;\r
+       font-size: 9pt;\r
+       color: #ffffff;\r
+}\r
+\r
+div.footer {\r
+       font-size: 9pt;\r
+       padding-top:10px;\r
+       margin-top:20px;\r
+       text-align: center;\r
+}\r
+\r
+dl.el { \r
+       margin-left: -1cm \r
+}\r
+\r
+.fragment {\r
+       font-family: monospace, fixed;\r
+       font-size: 105%;\r
+}\r
+\r
+pre.fragment {\r
+       border: 1px solid #CCCCCC;\r
+       background-color: #f5f5f5;\r
+       padding: 4px 6px;\r
+       margin: 4px 8px 4px 2px;\r
+}\r
+\r
+div.fragment {\r
+       border: 1px solid #CCCCCC;\r
+       background-color: #f5f5f5;\r
+       padding: 6px;\r
+}\r
+\r
+div.ah { \r
+       background-color: black; \r
+       font-weight: bold; \r
+       color: #ffffff; \r
+       margin-bottom: 3px; \r
+       margin-top: 3px \r
+}\r
+\r
+td.md { \r
+       background-color: #f5f5f5; \r
+       font-weight: bold; \r
+}\r
+\r
+td.mdname1 { \r
+       background-color: #f5f5f5; \r
+       font-weight: bold; \r
+       color: #602020; \r
+}\r
+\r
+td.mdname { \r
+       background-color: #f5f5f5; \r
+       font-weight: bold; \r
+       color: #602020; \r
+       width: 600px; \r
+}\r
+\r
+div.groupHeader {\r
+       margin-left: 16px;\r
+       margin-top: 12px;\r
+       margin-bottom: 6px;\r
+       font-weight: bold;\r
+}\r
+\r
+div.groupText { \r
+       margin-left: 16px; \r
+       font-style: italic; \r
+}\r
+\r
+td.indexkey {\r
+       background-color: #eeeeff;\r
+       font-weight: bold;\r
+       border: 1px solid #CCCCCC;\r
+       margin: 2px 0px 2px 0;\r
+       padding: 2px 10px;\r
+}\r
+\r
+td.indexvalue {\r
+       background-color: #eeeeff;\r
+       border: 1px solid #CCCCCC;\r
+       padding: 2px 10px;\r
+       margin: 2px 0px;\r
+}\r
+\r
+tr.memlist {\r
+   background-color: #f0f0f0; \r
+}\r
+\r
+p.formulaDsp { \r
+       text-align: center; \r
+}\r
+\r
+img.formulaDsp { \r
+}\r
+\r
+img.formulaInl { \r
+       vertical-align: middle; \r
+}\r
+\r
+/* @group Code Colorization */\r
+\r
+span.keyword       { color: #008000 }\r
+span.keywordtype   { color: #604020 }\r
+span.keywordflow   { color: #e08000 }\r
+span.comment       { color: #800000 }\r
+span.preprocessor  { color: #806020 }\r
+span.stringliteral { color: #002080 }\r
+span.charliteral   { color: #008080 }\r
+span.vhdldigit     { color: #ff00ff }\r
+span.vhdlchar      { color: #000000 }\r
+span.vhdlkeyword   { color: #700070 }\r
+span.vhdllogic     { color: #ff0000 }\r
+\r
+.mdTable {\r
+       border: 1px solid #868686;\r
+       background-color: #F4F4FB;\r
+}\r
+\r
+.mdRow {\r
+       padding: 8px 10px;\r
+}\r
+\r
+/* @group Member Descriptions */\r
+\r
+.mdescLeft, .mdescRight,\r
+.memItemLeft, .memItemRight,\r
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {\r
+       background-color: #F4F4F4A;\r
+       border: none;\r
+       margin: 4px;\r
+       padding: 3px 8px 4px 8px;\r
+}\r
+\r
+.mdescLeft, .mdescRight {\r
+       padding: 0px 8px 4px 8px;\r
+       color: #555;\r
+}\r
+\r
+.memItemLeft, .memItemRight, .memTemplParams {\r
+       border-top: 1px solid #DBDBDB;\r
+}\r
+\r
+.memTemplParams {\r
+       color: #606060;\r
+}\r
+\r
+/* @end */\r
+\r
+/* @group Member Details */\r
+\r
+/* Styles for detailed member documentation */\r
+\r
+.memtemplate {\r
+       font-size: 80%;\r
+       color: #606060;\r
+       font-weight: normal;\r
+       margin-left: 3px;\r
+}\r
+\r
+.memnav {\r
+       background-color: #eeeeff;\r
+       border: 1px solid #84b0c7;\r
+       text-align: center;\r
+       margin: 2px;\r
+       margin-right: 15px;\r
+       padding: 2px;\r
+}\r
+\r
+.memitem {\r
+       padding: 0;\r
+}\r
+\r
+.memname {\r
+       white-space: nowrap;\r
+       font-weight: bold;\r
+}\r
+\r
+.memproto, .memdoc {\r
+       border: 1px solid #9BBCDD;      \r
+}\r
+\r
+.memproto {\r
+       padding: 0;\r
+       background-color: #D5E2EF;\r
+       font-weight: bold;\r
+       -webkit-border-top-left-radius: 8px;\r
+       -webkit-border-top-right-radius: 8px;\r
+       -moz-border-radius-topleft: 8px;\r
+       -moz-border-radius-topright: 8px;\r
+}\r
+\r
+.memdoc {\r
+       padding: 2px 5px;\r
+       background-color: #eef3f5;\r
+       border-top-width: 0;\r
+       -webkit-border-bottom-left-radius: 8px;\r
+       -webkit-border-bottom-right-radius: 8px;\r
+       -moz-border-radius-bottomleft: 8px;\r
+       -moz-border-radius-bottomright: 8px;\r
+}\r
+\r
+.memdoc p, .memdoc dl, .memdoc ul {\r
+       margin: 6px 0;\r
+}\r
+\r
+.paramkey {\r
+       text-align: right;\r
+}\r
+\r
+.paramtype {\r
+       white-space: nowrap;\r
+}\r
+\r
+.paramname {\r
+       color: #853E0E;\r
+       white-space: nowrap;\r
+}\r
+.paramname em {\r
+       font-style: normal;\r
+}\r
+\r
+/* @end */\r
+\r
+.search     { color: #003399;\r
+              font-weight: bold;\r
+}\r
+\r
+form.search {\r
+              margin-bottom: 0px;\r
+              margin-top: 0px;\r
+}\r
+\r
+input.search { font-size: 75%;\r
+               color: #000080;\r
+               font-weight: normal;\r
+               background-color: #eeeeff;\r
+}\r
+\r
+td.tiny { \r
+       font-size: 75%;\r
+}\r
+\r
+.highlight {\r
+        background-color:#E2E2FF;\r
+}\r
+\r
+/*---------- ide-eclipse Styles ---------*/\r
+.sh_ide-eclipse{font-family: "Courier New", Courier, monospace;\r
+       margin: 0px 0px;\r
+       padding: -30px -30px -30px -30px;\r
+       font-weight: normal;\r
+       font-style: normal;}\r
+.sh_ide-eclipse .sh_sourceCode{background-color:#fff;color:#000;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_keyword{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_type{color:#7f0055;font-weight:bold;font-style:normal;}\r
+/*.sh_ide-eclipse .sh_sourceCode .sh_string{color:#00f;font-weight:normal;font-style:normal;}*/\r
+.sh_ide-eclipse .sh_sourceCode .sh_string{color:#2A00FF;font-weight:normal;font-style:normal;}\r
+\r
+.sh_ide-eclipse .sh_sourceCode .sh_regexp{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_specialchar{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_comment{color:#238E23;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_number{color:#000;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_preproc{color:#3f5fbf;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_function{color:#000;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_url{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_date{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_time{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_file{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_ip{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_name{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_variable{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_oldfile{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_newfile{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_difflines{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_selector{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_property{color:#7f0055;font-weight:bold;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_value{color:#00f;font-weight:normal;font-style:normal;}\r
+.sh_ide-eclipse .sh_sourceCode .sh_unknown{font-family: "Courier New", Courier, monospace;}\r
+\r
+/*------------- STYLE FOR NAMES FROM XML FILE -------------*/\r
+.sh_styleFromXML{color:#800000;font-weight:bold;}\r
+/*-------------------------------------------------------*/\r
+\r
+/*-------- Snippet Base Styles ----------*/\r
+.snippet-wrap {position:relative;}\r
+*:first-child+html .snippet-wrap {display:inline-block;}\r
+* html .snippet-wrap {display:inline-block;}\r
+.snippet-reveal{text-decoration:underline;}\r
+.snippet-wrap .snippet-menu, .snippet-wrap .snippet-hide {position:absolute; top:-99999px; right:15px; font-size:.9em;z-index:1;background-color:transparent;}\r
+.snippet-wrap .snippet-hide {top:auto; bottom:1px;}\r
+*:first-child+html .snippet-wrap .snippet-hide {bottom:1px;}\r
+* html .snippet-wrap .snippet-hide {bottom:1px;}\r
+.snippet-wrap .snippet-menu pre, .snippet-wrap .snippet-hide pre {background-color:transparent; margin:1; padding:0;}\r
+.snippet-wrap .snippet-menu a, .snippet-wrap .snippet-hide a {padding:1px; text-decoration:underline;}\r
+.snippet-wrap pre.sh_sourceCode{padding:1px;line-height:120%;overflow:auto;position:relative;\r
+-moz-border-radius:0px;\r
+-webkit-border-radius:0px;\r
+border-radius:0px;\r
+box-shadow: 1px 1px px #000;\r
+-moz-box-shadow: 2px 2px 1px #000;\r
+-webkit-box-shadow: 1px 1px 1px #000;}\r
+.snippet-wrap pre.snippet-textonly {padding:1em;}\r
+*:first-child+html .snippet-wrap pre.snippet-formatted {padding:0.5em 0.5em;}\r
+* html .snippet-wrap pre.snippet-formatted {padding:0em 0.3em;}\r
+.snippet-reveal pre.sh_sourceCode {padding:0em 0em; text-align:right;}\r
+.snippet-wrap .snippet-num li{padding-left:2px;}\r
+.snippet-wrap .snippet-no-num{list-style:none; padding:0em 0em; margin:0;}\r
+.snippet-wrap .snippet-no-num li {list-style:none; padding-left:0;}\r
+.snippet-wrap .snippet-num {margin:1em 0 1em 1em; padding-left:2px;}\r
+.snippet-wrap .snippet-num li {list-style:decimal-leading-zero outside none;}\r
+.snippet-wrap .snippet-no-num li.box {padding:0 6px; margin-left:-6px;}\r
+.snippet-wrap .snippet-num li.box {border:1px solid; list-style-position:inside; margin-left:0px; padding-left:2px;}\r
+*:first-child+html .snippet-wrap .snippet-num li.box {margin-left:-2px;}\r
+* html .snippet-wrap .snippet-num li.box {margin-left:-2px;}\r
+.snippet-wrap li.box-top {border-width:0px 0px 0 !important;}\r
+.snippet-wrap li.box-bot {border-width:0 0px 0px !important;}\r
+.snippet-wrap li.box-mid {border-width:0 0px !important;}\r
+.snippet-wrap .snippet-num li .box-sp {width:10px; display:inline-block;}\r
+*:first-child+html .snippet-wrap .snippet-num li .box-sp {width:20px;}\r
+* html .snippet-wrap .snippet-num li .box-sp {width:2px;}\r
+.snippet-wrap .snippet-no-num li.box {border:1px solid;}\r
+.snippet-wrap .snippet-no-num li .box-sp {display:none;}\r
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/systeminfo.html b/org.tizen.web.apireference/html/device_api/tv/tizen/systeminfo.html
new file mode 100644 (file)
index 0000000..c051247
--- /dev/null
@@ -0,0 +1,4483 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>SystemInfo API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::SystemInfo">
+<div class="title"><h1>SystemInfo API</h1></div>
+<div class="brief">
+ This specification defines interfaces and methods that provide web applications with access to various properties of a system.
+        </div>
+<div class="description">
+        <p>
+This API also provides interfaces and methods that can retrieve statuses of hardware devices, get the value of selected properties, and subscribe to asynchronous notifications of changes for selected values.
+        </p>
+        <p>
+Web applications can use this API to access the following system properties:
+        </p>
+        <ul>
+          <li>
+BATTERY          </li>
+          <li>
+BUILD          </li>
+          <li>
+CAMERA_FLASH (<b>Since</b>: 2.4)          </li>
+          <li>
+CELLULAR_NETWORK          </li>
+          <li>
+CPU          </li>
+          <li>
+DEVICE_ORIENTATION          </li>
+          <li>
+DISPLAY          </li>
+          <li>
+ETHERNET_NETWORK (<b>Since</b>: 2.4)          </li>
+          <li>
+LOCALE (<b>Since</b>: 2.1)          </li>
+          <li>
+MEMORY (<b>Since</b>: 2.3)          </li>
+          <li>
+NETWORK          </li>
+          <li>
+NET_PROXY_NETWORK (<b>Since</b>: 3.0)          </li>
+          <li>
+PERIPHERAL (<b>Since</b>: 2.1)          </li>
+          <li>
+SIM          </li>
+          <li>
+STORAGE          </li>
+          <li>
+VIDEOSOURCE (<b>Since</b>: 2.3)          </li>
+          <li>
+WIFI_NETWORK          </li>
+        </ul>
+        <p>
+Not all above properties may be available on every Tizen device. For instance, a device may not support the telephony feature. In that case, <var>CELLULAR_NETWORK</var> and <var>SIM</var> are not available.<br><br>To check the available <var>SystemInfoPropertyId</var>, <em>tizen.systeminfo.getCapability()</em> can be used.
+        </p>
+        <ul>
+          <li>
+ BATTERY          - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/battery"</em>)          </li>
+          <li>
+ CAMERA_FLASH     - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/camera.back.flash"</em>)          </li>
+          <li>
+ CELLULAR_NETWORK - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/network.telephony"</em>)          </li>
+          <li>
+ DISPLAY          - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/screen"</em>)          </li>
+          <li>
+ ETHERNET_NETWORK - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/network.ethernet"</em>)          </li>
+          <li>
+ NET_PROXY_NETWORK - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/network.net_proxy"</em>)          </li>
+          <li>
+ SIM              - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/network.telephony"</em>)          </li>
+          <li>
+ WIFI_NETWORK     - tizen.systeminfo.getCapability(<em>"http://tizen.org/feature/network.wifi"</em>)          </li>
+        </ul>
+        <p>
+For more information on the SystemInfo features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/sys_guide/systeminfo.htm">System Information Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#SystemInfoPropertyId">SystemInfoPropertyId</a>
+</li>
+<li>
+                    1.2. <a href="#SystemInfoNetworkType">SystemInfoNetworkType</a>
+</li>
+<li>
+                    1.3. <a href="#SystemInfoWifiSecurityMode">SystemInfoWifiSecurityMode</a>
+</li>
+<li>
+                    1.4. <a href="#SystemInfoWifiEncryptionType">SystemInfoWifiEncryptionType</a>
+</li>
+<li>
+                    1.5. <a href="#SystemInfoNetworkIpMode">SystemInfoNetworkIpMode</a>
+</li>
+<li>
+                    1.6. <a href="#SystemInfoDeviceOrientationStatus">SystemInfoDeviceOrientationStatus</a>
+</li>
+<li>
+                    1.7. <a href="#SystemInfoSimState">SystemInfoSimState</a>
+</li>
+<li class="deprecated">
+                    1.8. <a href="#SystemInfoProfile">SystemInfoProfile</a>
+</li>
+<li>
+                    1.9. <a href="#SystemInfoLowMemoryStatus">SystemInfoLowMemoryStatus</a>
+</li>
+<li>
+                    1.10. <a href="#SystemInfoVideoSourceType">SystemInfoVideoSourceType</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#SystemInfoObject">SystemInfoObject</a>
+</li>
+<li>2.2. <a href="#SystemInfo">SystemInfo</a>
+</li>
+<li class="deprecated">2.3. <a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a>
+</li>
+<li>2.4. <a href="#SystemInfoOptions">SystemInfoOptions</a>
+</li>
+<li>2.5. <a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a>
+</li>
+<li>2.6. <a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a>
+</li>
+<li>2.7. <a href="#SystemInfoProperty">SystemInfoProperty</a>
+</li>
+<li>2.8. <a href="#SystemInfoBattery">SystemInfoBattery</a>
+</li>
+<li>2.9. <a href="#SystemInfoCpu">SystemInfoCpu</a>
+</li>
+<li>2.10. <a href="#SystemInfoStorage">SystemInfoStorage</a>
+</li>
+<li>2.11. <a href="#SystemInfoStorageUnit">SystemInfoStorageUnit</a>
+</li>
+<li>2.12. <a href="#SystemInfoDisplay">SystemInfoDisplay</a>
+</li>
+<li>2.13. <a href="#SystemInfoDeviceOrientation">SystemInfoDeviceOrientation</a>
+</li>
+<li>2.14. <a href="#SystemInfoBuild">SystemInfoBuild</a>
+</li>
+<li>2.15. <a href="#SystemInfoLocale">SystemInfoLocale</a>
+</li>
+<li>2.16. <a href="#SystemInfoNetwork">SystemInfoNetwork</a>
+</li>
+<li>2.17. <a href="#SystemInfoWifiNetwork">SystemInfoWifiNetwork</a>
+</li>
+<li>2.18. <a href="#SystemInfoEthernetNetwork">SystemInfoEthernetNetwork</a>
+</li>
+<li>2.19. <a href="#SystemInfoCellularNetwork">SystemInfoCellularNetwork</a>
+</li>
+<li>2.20. <a href="#SystemInfoNetProxyNetwork">SystemInfoNetProxyNetwork</a>
+</li>
+<li>2.21. <a href="#SystemInfoSIM">SystemInfoSIM</a>
+</li>
+<li>2.22. <a href="#SystemInfoPeripheral">SystemInfoPeripheral</a>
+</li>
+<li>2.23. <a href="#SystemInfoMemory">SystemInfoMemory</a>
+</li>
+<li>2.24. <a href="#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a>
+</li>
+<li>2.25. <a href="#SystemInfoVideoSource">SystemInfoVideoSource</a>
+</li>
+<li>2.26. <a href="#SystemInfoCameraFlash">SystemInfoCameraFlash</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#SystemInfoObject">SystemInfoObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfo">SystemInfo</a></td>
+<td>
+<div>long long <a href="#SystemInfo::getTotalMemory">getTotalMemory</a> ()</div>
+<div>long long <a href="#SystemInfo::getAvailableMemory">getAvailableMemory</a> ()</div>
+<div class="deprecated">
+<a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a> <a href="#SystemInfo::getCapabilities">getCapabilities</a> ()</div>
+<div>any <a href="#SystemInfo::getCapability">getCapability</a> (DOMString key)</div>
+<div>long <a href="#SystemInfo::getCount">getCount</a> (<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property)</div>
+<div>void <a href="#SystemInfo::getPropertyValue">getPropertyValue</a> (<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#SystemInfo::getPropertyValueArray">getPropertyValueArray</a> (<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>unsigned long <a href="#SystemInfo::addPropertyValueChangeListener">addPropertyValueChangeListener</a> (<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a> successCallback, optional <a href="#SystemInfoOptions">SystemInfoOptions</a>? options, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>unsigned long <a href="#SystemInfo::addPropertyValueArrayChangeListener">addPropertyValueArrayChangeListener</a> (<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a> successCallback, optional <a href="#SystemInfoOptions">SystemInfoOptions</a>? options, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#SystemInfo::removePropertyValueChangeListener">removePropertyValueChangeListener</a> (unsigned long listenerId)</div>
+</td>
+</tr>
+<tr>
+<td class="deprecated"><a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoOptions">SystemInfoOptions</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a></td>
+<td><div>void <a href="#SystemInfoPropertySuccessCallback::onsuccess">onsuccess</a> (<a href="#SystemInfoProperty">SystemInfoProperty</a> property)</div></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a></td>
+<td><div>void <a href="#SystemInfoPropertyArraySuccessCallback::onsuccess">onsuccess</a> (<a href="#SystemInfoProperty">SystemInfoProperty</a>[] properties)</div></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoProperty">SystemInfoProperty</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoBattery">SystemInfoBattery</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoCpu">SystemInfoCpu</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoStorage">SystemInfoStorage</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoStorageUnit">SystemInfoStorageUnit</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoDisplay">SystemInfoDisplay</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoDeviceOrientation">SystemInfoDeviceOrientation</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoBuild">SystemInfoBuild</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoLocale">SystemInfoLocale</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoNetwork">SystemInfoNetwork</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoWifiNetwork">SystemInfoWifiNetwork</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoEthernetNetwork">SystemInfoEthernetNetwork</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoCellularNetwork">SystemInfoCellularNetwork</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoNetProxyNetwork">SystemInfoNetProxyNetwork</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoSIM">SystemInfoSIM</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoPeripheral">SystemInfoPeripheral</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoMemory">SystemInfoMemory</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoVideoSource">SystemInfoVideoSource</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SystemInfoCameraFlash">SystemInfoCameraFlash</a></td>
+<td><div>void <a href="#SystemInfoCameraFlash::setBrightness">setBrightness</a> (double brightness)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="SystemInfoPropertyId">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPropertyId"></a><h3>1.1. SystemInfoPropertyId</h3>
+<div class="brief">
+ The device property identifier.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoPropertyId { "BATTERY", "CPU", "STORAGE", "DISPLAY", "DEVICE_ORIENTATION", "BUILD", "LOCALE", "NETWORK", "WIFI_NETWORK", "ETHERNET_NETWORK", "CELLULAR_NETWORK", "NET_PROXY_NETWORK", "SIM", "PERIPHERAL", "MEMORY", "VIDEOSOURCE", "CAMERA_FLASH" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>CAMERA_FLASH</em> is supported since Tizen 2.4
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>ETHERNET_NETWORK</em> is supported since Tizen 2.4
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>LOCALE</em> and <em>PERIPHERAL</em> are supported since Tizen 2.1
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>MEMORY</em> is supported since Tizen 2.3
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>NET_PROXY_NETWORK</em> is supported since Tizen 3.0
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>VIDEOSOURCE</em> is supported since Tizen 2.3
+          </p>
+</div>
+<div class="enum" id="SystemInfoNetworkType">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoNetworkType"></a><h3>1.2. SystemInfoNetworkType</h3>
+<div class="brief">
+ Data Network Type.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoNetworkType { "NONE", "2G", "2.5G", "3G", "4G", "WIFI", "ETHERNET", "NET_PROXY", "UNKNOWN" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>NET_PROXY</em> is supported since Tizen 3.0
+          </p>
+</div>
+<div class="enum" id="SystemInfoWifiSecurityMode">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoWifiSecurityMode"></a><h3>1.3. SystemInfoWifiSecurityMode</h3>
+<div class="brief">
+ Wifi Security Mode.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoWifiSecurityMode { "NONE", "WEP", "WPA_PSK", "WPA2_PSK", "EAP" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+NONE - Open security type            </li>
+            <li>
+WEP - Wired Equivalent Privacy            </li>
+            <li>
+WPA_PSK - Wi-Fi Protected Access with Pre-Shared Key (PSK)            </li>
+            <li>
+WPA2_PSK - Wi-Fi Protected Access version 2 with Pre-Shared Key (PSK)            </li>
+            <li>
+EAP - Extensible Authentication Protocol            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SystemInfoWifiEncryptionType">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoWifiEncryptionType"></a><h3>1.4. SystemInfoWifiEncryptionType</h3>
+<div class="brief">
+ Wifi Encryption Type.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoWifiEncryptionType { "NONE", "WEP", "TKIP", "AES", "TKIP_AES_MIXED" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+NONE - No encryption            </li>
+            <li>
+WEP - Wired Equivalent Privacy encryption            </li>
+            <li>
+TKIP - Temporal Key Integrity Protocol encryption            </li>
+            <li>
+AES - Advanced Encryption Standard            </li>
+            <li>
+TKIP_AES_MIXED - TKIP and AES are both supported            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SystemInfoNetworkIpMode">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoNetworkIpMode"></a><h3>1.5. SystemInfoNetworkIpMode</h3>
+<div class="brief">
+ IP configuration types.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoNetworkIpMode { "NONE", "STATIC", "DYNAMIC", "AUTO", "FIXED" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+NONE - Default value when network connection is not available            </li>
+            <li>
+STATIC - Manual IP configuration            </li>
+            <li>
+DYNAMIC - Configured IP using DHCP client            </li>
+            <li>
+AUTO - Configured IP from Auto IP pool (169.254/16). Later with DHCP client, if available            </li>
+            <li>
+FIXED - IP cannot be modified            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SystemInfoDeviceOrientationStatus">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoDeviceOrientationStatus"></a><h3>1.6. SystemInfoDeviceOrientationStatus</h3>
+<div class="brief">
+ Device Orientation Status.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoDeviceOrientationStatus { "PORTRAIT_PRIMARY", "PORTRAIT_SECONDARY", "LANDSCAPE_PRIMARY", "LANDSCAPE_SECONDARY" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+SystemInfo reports the orientation of the device depending on the type of the device and physical position of the device relative to vertical direction.
+A "phone type device" is a device for which the portrait position is the natural orientation.
+A "tab type device" is a device for which the landscape position is basic working orientation.
+          </p>
+          <table>
+            <tr>
+              <th>
+SystemInfoDeviceOrientationStatus              </th>
+              <th>
+phone type device              </th>
+              <th>
+tablet type device              </th>
+            </tr>
+            <tr>
+              <td>
+PORTRAIT_PRIMARY              </td>
+              <td>
+natural position              </td>
+              <td>
+rotated 90 degrees right (clockwise)              </td>
+            </tr>
+            <tr>
+              <td>
+PORTRAIT_SECONDARY              </td>
+              <td>
+upside down, in other words rotated 180 degrees              </td>
+              <td>
+rotated 90 degrees left (anticlockwise)              </td>
+            </tr>
+            <tr>
+              <td>
+LANDSCAPE_PRIMARY              </td>
+              <td>
+rotated 90 degrees left (anticlockwise)              </td>
+              <td>
+natural position              </td>
+            </tr>
+            <tr>
+              <td>
+LANDSCAPE_SECONDARY              </td>
+              <td>
+rotated 90 degrees right (clockwise)              </td>
+              <td>
+upside down, in other words rotated 180 degrees              </td>
+            </tr>
+          </table>
+         </div>
+</div>
+<div class="enum" id="SystemInfoSimState">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoSimState"></a><h3>1.7. SystemInfoSimState</h3>
+<div class="brief">
+ Sim State.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoSimState { "ABSENT", "INITIALIZING", "READY", "PIN_REQUIRED", "PUK_REQUIRED", "NETWORK_LOCKED", "SIM_LOCKED", "UNKNOWN" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+</div>
+<div class="enum deprecated" id="SystemInfoProfile">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoProfile"></a><h3>1.8. SystemInfoProfile</h3>
+<div class="brief">
+ Device Profile.
+          </div>
+<p class="deprecated"><b>Deprecated.</b>
+ <em>"MOBILE_FULL"</em> and <em>"MOBILE_WEB"</em> are deprecated since Tizen 2.3 and will be removed in Tizen 3.0. <br>Beginning with Tizen 2.3, <em>"MOBILE"</em> is returned instead of <em>"MOBILE_FULL"</em>.
+          </p>
+<pre class="webidl prettyprint">  enum SystemInfoProfile { "MOBILE_FULL", "MOBILE_WEB", "MOBILE", "WEARABLE", "TV" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.2
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>"MOBILE"</em> and <em>"WEARABLE"</em> are supported since Tizen 2.3
+          </p>
+<p><span class="remark"> Remark : </span>
+ <em>TV</em> is supported since Tizen 2.3.
+          </p>
+</div>
+<div class="enum" id="SystemInfoLowMemoryStatus">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoLowMemoryStatus"></a><h3>1.9. SystemInfoLowMemoryStatus</h3>
+<div class="brief">
+ The low memory state of a device.
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoLowMemoryStatus { "NORMAL", "WARNING" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+NORMAL - indicating the remaining memory is sufficient for an application to run             </li>
+            <li>
+WARNING - indicating the remaining memory is insufficient. Low memory warnings may happen differently according to the system.             </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SystemInfoVideoSourceType">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoVideoSourceType"></a><h3>1.10. SystemInfoVideoSourceType</h3>
+<div class="brief">
+ An enumerator to indicate the type of video source
+          </div>
+<pre class="webidl prettyprint">  enum SystemInfoVideoSourceType {
+      "TV",
+      "AV",
+      "SVIDEO",
+      "COMP",
+      "PC",
+      "HDMI",
+      "SCART",
+      "DVI",
+      "MEDIA"
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ TV - The input source from TV             </li>
+            <li>
+ AV - The input source from Component video, three cables, each with RCA plugs (3 or more channels)            </li>
+            <li>
+ SVIDEO - S-Video(Super-Video) and Y/C (2 channels)             </li>
+            <li>
+ COMP - The input source from Composite video (1 channel)             </li>
+            <li>
+ PC - The input source from personal computer (15-pin VGA connector)             </li>
+            <li>
+ HDMI - The input source from HDMI(High-Definition Multimedia Interface)             </li>
+            <li>
+ SCART - The input source from SCART(21-pin connector)             </li>
+            <li>
+ DVI - The input source from DVI(Digital Visual Interface)             </li>
+            <li>
+ MEDIA - The input source from media             </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="SystemInfoObject">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoObject"></a><h3>2.1. SystemInfoObject</h3>
+<div class="brief">
+ Defines what is instantiated by the <em>Tizen </em>object from the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoObject {
+    readonly attribute <a href="#SystemInfo">SystemInfo</a> systeminfo;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#SystemInfoObject">SystemInfoObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+There will be a tizen.systeminfo object that allows accessing the
+functionality of the SystemInfo API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="SystemInfo">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo"></a><h3>2.2. SystemInfo</h3>
+<div class="brief">
+ This entry interface queries the information of a system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfo {
+    long long getTotalMemory() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long long getAvailableMemory() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a> getCapabilities() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    any getCapability(DOMString key) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long getCount(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getPropertyValue(SystemInfoPropertyId property,
+                          SystemInfoPropertySuccessCallback successCallback,
+                          optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    void getPropertyValueArray(SystemInfoPropertyId property,
+                          SystemInfoPropertyArraySuccessCallback successCallback,
+                          optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    unsigned long addPropertyValueChangeListener(SystemInfoPropertyId property,
+                                        SystemInfoPropertySuccessCallback successCallback,
+                                        optional SystemInfoOptions? options,
+                                        optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    unsigned long addPropertyValueArrayChangeListener(SystemInfoPropertyId property,
+                                        SystemInfoPropertyArraySuccessCallback successCallback,
+                                        optional SystemInfoOptions? options,
+                                        optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    void removePropertyValueChangeListener(unsigned long listenerId) raises(WebAPIException);
+  };</pre>
+<div class="description">
+          <p>
+This API offers methods for retrieving system information
+and for subscribing notifications of system information changes.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SystemInfo::getTotalMemory">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getTotalMemory"></a><code><b><span class="methodName">getTotalMemory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the total amount of system memory (in bytes).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long long getTotalMemory();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError in any error case.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // To get total amount of system memory
+ console.log("The total memory size is " + tizen.systeminfo.getTotalMemory() + " bytes.");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::getAvailableMemory">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getAvailableMemory"></a><code><b><span class="methodName">getAvailableMemory</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the amount of memory that is not in use (in bytes).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long long getAvailableMemory();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError in any error case
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // To get total amount of system memory
+ console.log("The available memory size is " + tizen.systeminfo.getAvailableMemory() + " bytes.");
+ </pre>
+</div>
+</dd>
+<dt class="deprecated method" id="SystemInfo::getCapabilities">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getCapabilities"></a><code><b><span class="methodName">getCapabilities</span></b></code>
+</dt>
+<dd class="deprecated">
+<div class="brief">
+ Gets the capabilities of the device.
+            </div>
+<p class="deprecated"><b>Deprecated.</b>
+ Deprecated since 2.3. Instead, use getCapability().
+            </p>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a> getCapabilities();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<div class="description">
+            <p>
+The function must synchronously acquire the capabilities of the device.
+            </p>
+           </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError in any error case.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var deviceCapabilities;
+ deviceCapabilities = tizen.systeminfo.getCapabilities();
+ if (deviceCapabilities.bluetooth) {
+     console.log("Bluetooth is supported");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::getCapability">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getCapability"></a><code><b><span class="methodName">getCapability</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a device capability related to a given key.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">any getCapability(DOMString key);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+See the available <a href="./systeminfo_capability_keys.html">device capability keys</a>.
+The additional keys for the custom device capability are specified by OEM's and vendors.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">key</span>: 
+ The device capability key for the device or additional custom device capability key specifies by OEM's
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ any The value of the specified device capability
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     // Checks if a device supports bluetooth API or not
+     var bluetooth = tizen.systeminfo.getCapability("http://tizen.org/feature/network.bluetooth");
+     console.log(" Bluetooth = " + bluetooth);
+ } catch (error) {
+     console.log("Error name: " + error.name + ", message: " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::getCount">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getCount"></a><code><b><span class="methodName">getCount</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the number of system property information provided for a particular system property.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getCount(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+That is the length of array retrieved by the getPropertyValueArray() method for the given property.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The name of the system property
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The number of property values for the given property. If the property is not supported, 0 is returned.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var count = tizen.systeminfo.getCount("SIM");
+ if (count === 0) {
+     console.log("There is no available SIM card.");
+ } else {
+     console.log("There is(are) " + count + " SIM card(s) available.");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::getPropertyValue">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getPropertyValue"></a><code><b><span class="methodName">getPropertyValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current value of a specified system property.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getPropertyValue(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+The function must asynchronously acquire the current value of the requested property. If it is successful,
+the successCallback must be invoked with an object containing the information provided by the property.
+            </p>
+            <p>
+The <em>ErrorCallback</em> method can be launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotSupportedError - If the given <var>property</var> is not supported. (since Tizen 2.3)              </li>
+            </ul>
+           </div>
+<div class="description">
+           </div>
+<p><span class="remark"> Remark : </span>
+ If the given <var>property</var> is not supported, <em>NotSupportedError</em> would be passed through a <em>ErrorCallback()</em> since Tizen 2.3.
+            </p>
+<p><span class="remark"> Remark : </span>
+ If system provides more than one value for the system property, the primary(first) system property is returned through SystemInfoSuccessCallback.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The name of the property to retrieve.
+                <ul>
+<b>Conditional privilege: </b>For using <a href="#SystemInfoPropertyId">CELLULAR_NETWORK</a> value, privilege <b>
+              http://tizen.org/privilege/telephony
+             (public level)</b> is needed since Tizen 2.4.</ul>
+</li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Function called when the properties have been successfully retrieved.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Function called when an error occurred while retrieving the properties.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, this error is only thrown for <em>CELLULAR_NETWORK</em> property when an application does not declare http://tizen.org/privilege/telephony privilege in config.xml.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onSuccessCallback(cpu) {
+     console.log("The cpu load is " + cpu.load);
+ }
+
+ function onErrorCallback(error) {
+     console.log("An error occurred " + error.message);
+ }
+
+ tizen.systeminfo.getPropertyValue("CPU", onSuccessCallback, onErrorCallback);
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onSuccessCallback(cellular) {
+     console.log("The status of the cellular network is " + cellular.status);
+ }
+
+ function onErrorCallback(error) {
+     console.log("An error occurred " + error.message);
+     // if telephony_capability is false but getPropertyValue("CELLULAR_NETWORK, ..) is called, NotSupportedError would be passed.
+ }
+
+ var telephony_capability = tizen.systeminfo.getCapability("http://tizen.org/feature/network.telephony");
+
+ if (telephony_capability === true) {
+     // onSuccessCallback will be invoked.
+     tizen.systeminfo.getPropertyValue("CELLULAR_NETWORK", onSuccessCallback, onErrorCallback);
+ } else {
+     console.log("Telephony feature is not supported. Cellular network related information cannot be retrieved.");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::getPropertyValueArray">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::getPropertyValueArray"></a><code><b><span class="methodName">getPropertyValueArray</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current values of a specified system property.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getPropertyValueArray(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+It is recommended that you check if a device provides one or more than one value for a particular system property via getCount().
+            </p>
+            <p>
+If one particular system property is provided on a device, it returns an array containing one SystemInfoProperty object through <em>SystemInfoPropertyArraySuccessCallback</em> method.<br>If more than one particular system property is provided, multiple SystemInfoProperty objects are returned.
+            </p>
+            <p>
+The <em>ErrorCallback</em> method can be launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotSupportedError - If the given <var>property</var> is not supported.              </li>
+            </ul>
+           </div>
+<div class="description">
+           </div>
+<p><span class="remark"> Remark : </span>
+ see getCount().
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The name of the property to retrieve.
+                <ul>
+<b>Conditional privilege: </b>For using <a href="#SystemInfoPropertyId">CELLULAR_NETWORK</a> value, privilege <b>
+              http://tizen.org/privilege/telephony
+             (public level)</b> is needed since Tizen 2.4.</ul>
+</li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Callback method that is invoked when the properties have been successfully retrieved.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method that is invoked when an error occurs while retrieving the properties.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, this error is only thrown for <em>CELLULAR_NETWORK</em> property when an application does not declare http://tizen.org/privilege/telephony privilege in config.xml.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(property) {
+     console.log("The SIM's current state is " + property.state);
+ }
+
+ function successArrayCB(properties) {
+     console.log("The number of the returned system properties is " + properties.length);
+     for (var i = 0; i &lt; properties.length; i++) {
+         console.log("[" + i + "] SIM's state is " + properties[i].state);
+     }
+ }
+
+ var count = tizen.systeminfo.getCount("SIM");
+ if (count === 0) {
+     console.log("This device does not provide SIM card.");
+ } else if (count &gt; 1) {
+     tizen.systeminfo.getPropertyValueArray("SIM", successArrayCB);
+ } else {
+     tizen.systeminfo.getPropertyValue("SIM", successCB);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::addPropertyValueChangeListener">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::addPropertyValueChangeListener"></a><code><b><span class="methodName">addPropertyValueChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a listener to allow tracking of changes in one or more system properties.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">unsigned long addPropertyValueChangeListener(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertySuccessCallback">SystemInfoPropertySuccessCallback</a> successCallback, optional <a href="#SystemInfoOptions">SystemInfoOptions</a>? options, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+When called, it immediately returns and then asynchronously starts a watch process defined by the following steps:
+            </p>
+            <p>
+1. Register the successCallback to receive system events that the status of the requested properties may have changed.
+            </p>
+            <p>
+2. When a system event is successfully received invoke the associated successCallback with an object containing the property
+values.
+            </p>
+            <p>
+3. Repeat step 2 until removePropertyValueChangeListener function is called.
+            </p>
+            <p>
+There are device properties which are never changed (e.g. "BUILD") and properties which are not changed on some devices
+(e.g. "DEVICE_ORIENTATION" in Tizen TV device). The <em>addPropertyValueChangeListener()</em> method accepts
+any identifier of these properties, but the listener added for them will not be invoked.
+            </p>
+           </div>
+<div class="description">
+            <p>
+The <em>errorCallback</em> can be launched with any of these error types:
+            </p>
+            <ul>
+              <li>
+NotSupportedError - If the given <var>property</var> is not supported. (since Tizen 2.3)<br>For example, monitoring <var>CELLULAR_NETWORK</var> changes is not supported on a device which does not support the telephony feature.
+              </li>
+            </ul>
+           </div>
+<div class="description">
+           </div>
+<p><span class="remark"> Remark : </span>
+ The <em>errorCallback()</em> is newly added as an optional parameter since Tizen 2.3.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The name of the property to retrieve.
+                <ul>
+<b>Conditional privilege: </b>For using <a href="#SystemInfoPropertyId">CELLULAR_NETWORK</a> value, privilege <b>
+              http://tizen.org/privilege/telephony
+             (public level)</b> is needed since Tizen 2.4.</ul>
+</li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Function called when the properties have been successfully retrieved.
+                </li>
+          <li class="param">
+<span class="name">options</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An object containing the various options for fetching the properties requested. See <a href="./systeminfo.html#::SystemInfo::SystemInfoOptions">details</a>.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Function called when an error occurred.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ unsigned long An identifier used to clear the watch subscription.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value (e.g. the invalid value for <em>options</em>).
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, this error is only thrown for <em>CELLULAR_NETWORK</em> property when an application does not declare http://tizen.org/privilege/telephony privilege in config.xml.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function onSuccessCallback(cpu) {
+     console.log("The cpu load : " + cpu.load);
+ }
+
+ tizen.systeminfo.addPropertyValueChangeListener("CPU", onSuccessCallback, {lowThreshold : 0.2});
+ </pre>
+</div>
+</dd>
+<dt class="method" id="SystemInfo::addPropertyValueArrayChangeListener">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::addPropertyValueArrayChangeListener"></a><code><b><span class="methodName">addPropertyValueArrayChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a listener to allow tracking of changes in one or more values of a system property.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">unsigned long addPropertyValueArrayChangeListener(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property, <a href="#SystemInfoPropertyArraySuccessCallback">SystemInfoPropertyArraySuccessCallback</a> successCallback, optional <a href="#SystemInfoOptions">SystemInfoOptions</a>? options, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> method can be launched with these error types:
+            </p>
+            <ul>
+              <li>
+NotSupportedError - If the given <var>property</var> is not supported. (since Tizen 2.3)<br>For example, monitoring <var>CELLULAR_NETWORK</var> changes is not supported on a device which does not support the telephony feature.
+              </li>
+            </ul>
+            <p>
+There are device properties which never change (for example "BUILD") and properties which do not change on the current platform
+(for example "DEVICE_ORIENTATION" for some platforms). The <em>addPropertyValueChangeListener()</em> method accepts
+any identifier of these properties, but the listener added for them will not be invoked.
+            </p>
+           </div>
+<div class="description">
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The name of the property to retrieve.
+                <ul>
+<b>Conditional privilege: </b>For using <a href="#SystemInfoPropertyId">CELLULAR_NETWORK</a> value, privilege <b>
+              http://tizen.org/privilege/telephony
+             (public level)</b> is needed since Tizen 2.4.</ul>
+</li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ Function called when the properties have been successfully retrieved.
+                </li>
+          <li class="param">
+<span class="name">options</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An object containing the various options for fetching the properties requested.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Function called when an error occurred.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ unsigned long An identifier used to clear the watch subscription.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value (e.g. the invalid value for <em>options</em>).
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, this error is only thrown for <em>CELLULAR_NETWORK</em> property when an application does not declare http://tizen.org/privilege/telephony privilege in config.xml.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="SystemInfo::removePropertyValueChangeListener">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfo::removePropertyValueChangeListener"></a><code><b><span class="methodName">removePropertyValueChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unsubscribes notifications for property changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removePropertyValueChangeListener(unsigned long listenerId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If a valid listenerId argument is passed that corresponds to a subscription
+already place, then the watch process MUST immediately terminate and no further
+callback is invoked. If the listenerId argument does not correspond to a valid subscription,
+the method should return without any further action.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">listenerId</span>: 
+ An identifier of the subscription returned by the addPropertyValueChangeListener()/addPropertyValueArrayChangeListener() method.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input
+parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var id = null;
+ function onSuccessCallback(cpu) {
+    console.log("New value for CPU load is " + cpu.load);
+    if (id != null) { // After receiving the first notification, we clear it
+        tizen.systeminfo.removePropertyValueChangeListener(id);
+    }
+ }
+
+ id = tizen.systeminfo.addPropertyValueChangeListener("CPU", onSuccessCallback);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface deprecated" id="SystemInfoDeviceCapability">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoDeviceCapability"></a><h3>2.3. SystemInfoDeviceCapability</h3>
+<div class="brief">
+ SystemInfoDeviceCapability object.
+          </div>
+<p class="deprecated"><b>Deprecated.</b>
+ SystemInfoDeviceCapability is deprecated since Tizen 2.3 and will be removed in Tizen 3.0.
+It is recommended to use the getCapability() method (since Tizen 2.3) instead to query device capabilities.
+          </p>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoDeviceCapability {
+    readonly attribute boolean bluetooth;
+
+    readonly attribute boolean nfc;
+
+    readonly attribute boolean nfcReservedPush ;
+
+    readonly attribute unsigned short multiTouchCount;
+
+    readonly attribute boolean inputKeyboard;
+
+    readonly attribute boolean inputKeyboardLayout;
+
+    readonly attribute boolean wifi;
+
+    readonly attribute boolean wifiDirect;
+
+    readonly attribute boolean opengles;
+
+    readonly attribute DOMString openglestextureFormat;
+
+    readonly attribute boolean openglesVersion1_1;
+
+    readonly attribute boolean openglesVersion2_0;
+
+    readonly attribute boolean fmRadio;
+
+    readonly attribute DOMString platformVersion raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString webApiVersion raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString nativeApiVersion raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString platformName;
+
+    readonly attribute boolean camera;
+
+    readonly attribute boolean cameraFront;
+
+    readonly attribute boolean cameraFrontFlash;
+
+    readonly attribute boolean cameraBack;
+
+    readonly attribute boolean cameraBackFlash;
+
+    readonly attribute boolean location;
+
+    readonly attribute boolean locationGps;
+
+    readonly attribute boolean locationWps;
+
+    readonly attribute boolean microphone;
+
+    readonly attribute boolean usbHost;
+
+    readonly attribute boolean usbAccessory;
+
+    readonly attribute boolean screenOutputRca;
+
+    readonly attribute boolean screenOutputHdmi;
+
+    readonly attribute DOMString platformCoreCpuArch;
+
+    readonly attribute DOMString platformCoreFpuArch;
+
+    readonly attribute boolean sipVoip;
+
+    readonly attribute DOMString duid;
+
+    readonly attribute boolean speechRecognition;
+
+    readonly attribute boolean speechSynthesis;
+
+    readonly attribute boolean accelerometer;
+
+    readonly attribute boolean accelerometerWakeup;
+
+    readonly attribute boolean barometer;
+
+    readonly attribute boolean barometerWakeup;
+
+    readonly attribute boolean gyroscope;
+
+    readonly attribute boolean gyroscopeWakeup;
+
+    readonly attribute boolean magnetometer;
+
+    readonly attribute boolean magnetometerWakeup;
+
+    readonly attribute boolean photometer;
+
+    readonly attribute boolean photometerWakeup;
+
+    readonly attribute boolean proximity;
+
+    readonly attribute boolean proximityWakeup;
+
+    readonly attribute boolean tiltmeter;
+
+    readonly attribute boolean tiltmeterWakeup;
+
+    readonly attribute boolean dataEncryption;
+
+    readonly attribute boolean graphicsAcceleration;
+
+    readonly attribute boolean push;
+
+    readonly attribute boolean telephony;
+
+    readonly attribute boolean telephonyMms;
+
+    readonly attribute boolean telephonySms;
+
+    readonly attribute boolean screenSizeNormal;
+
+    readonly attribute boolean screenSize480_800;
+
+    readonly attribute boolean screenSize720_1280;
+
+    readonly attribute boolean autoRotation;
+
+    readonly attribute boolean shellAppWidget;
+
+    readonly attribute boolean visionImageRecognition;
+
+    readonly attribute boolean visionQrcodeGeneration;
+
+    readonly attribute boolean visionQrcodeRecognition;
+
+    readonly attribute boolean visionFaceRecognition;
+
+    readonly attribute boolean secureElement;
+
+    readonly attribute boolean nativeOspCompatible;
+
+    readonly attribute <a href="#SystemInfoProfile">SystemInfoProfile</a> profile;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoDeviceCapability::bluetooth">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">bluetooth</span></span><div class="brief">
+ Indicates whether the device supports Bluetooth.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::nfc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">nfc</span></span><div class="brief">
+ Indicates whether the device supports NFC.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::nfcReservedPush">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">nfcReservedPush</span></span><div class="brief">
+ Indicates whether the device supports NFC reserved push.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::multiTouchCount">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">multiTouchCount</span></span><div class="brief">
+ The number of point in Multi-point touch.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::inputKeyboard">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">inputKeyboard</span></span><div class="brief">
+ Indicates whether the device supports the built-in Keyboard.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::inputKeyboardLayout">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">inputKeyboardLayout</span></span><div class="brief">
+ Indicates whether the device supports the built-in keyboard layout.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::wifi">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">wifi</span></span><div class="brief">
+ Indicates whether the device supports Wi-Fi.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::wifiDirect">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">wifiDirect</span></span><div class="brief">
+ Indicates whether the device supports Wi-Fi direct.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::opengles">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">opengles</span></span><div class="brief">
+ Indicates whether the device supports OpenGL-ES.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::openglestextureFormat">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">openglestextureFormat</span></span><div class="brief">
+ The device 3DC texture format for OpenGL-ES.
+One example of possible output is as follows: "3dc/atc/etc/ptc/pvrtc/utc"
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::openglesVersion1_1">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">openglesVersion1_1</span></span><div class="brief">
+ Indicates whether the device supports OpenGL-ES version 1.1.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::openglesVersion2_0">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">openglesVersion2_0</span></span><div class="brief">
+ Indicates whether the device supports OpenGL-ES version 2.0.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::fmRadio">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">fmRadio</span></span><div class="brief">
+ Indicates whether the device supports FM radio.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::platformVersion">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">platformVersion</span></span><div class="brief">
+ The version of the platform in the <em>[Major].[Minor].[Patch Version] </em> format. <br>For example, <var>1.0.0 </var> represents a platform version where the major version is <var>1 </var>and the minor and build versions are <var>0</var>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::webApiVersion">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">webApiVersion</span></span><div class="brief">
+ The version of the Web API in the <em>[Major].[Minor] </em> format. <br>For example, <var>1.0 </var>represents a web api version where the major version is <var>1 </var> and the minor version is <var>0</var>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::nativeApiVersion">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">nativeApiVersion</span></span><div class="brief">
+ The version of the native API in the <em>[Major].[Minor] </em>format.<br>            </div>
+<div class="description">
+            <p>
+For example, <var>1.0</var> represents a native api version where the major version is <var>1 </var>and the minor version is <var>0</var>.
+If a device doesn't provide Tizen native API, nativeApiVersion will be a empty string.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::platformName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">platformName</span></span><div class="brief">
+ The name of the platform.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::camera">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">camera</span></span><div class="brief">
+ Indicates whether the device supports camera.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::cameraFront">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">cameraFront</span></span><div class="brief">
+ Indicates whether the device supports front camera.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::cameraFrontFlash">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">cameraFrontFlash</span></span><div class="brief">
+ Indicates whether the device supports flash on the front camera.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::cameraBack">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">cameraBack</span></span><div class="brief">
+ Indicates whether the device supports back-side camera.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::cameraBackFlash">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">cameraBackFlash</span></span><div class="brief">
+ Indicates whether the device supports flash on the back-side camera.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::location">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">location</span></span><div class="brief">
+ Indicates whether the device supports GPS or not.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::locationGps">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">locationGps</span></span><div class="brief">
+ Indicates whether the device supports GPS based location feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::locationWps">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">locationWps</span></span><div class="brief">
+ Indicates whether the device supports WPS based location feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::microphone">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">microphone</span></span><div class="brief">
+ Indicates whether the device supports microphone.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::usbHost">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">usbHost</span></span><div class="brief">
+ Indicates whether the device supports USB host.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::usbAccessory">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">usbAccessory</span></span><div class="brief">
+ Indicates whether the device supports USB accessory.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::screenOutputRca">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">screenOutputRca</span></span><div class="brief">
+ Indicates whether the device supports RCA output.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::screenOutputHdmi">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">screenOutputHdmi</span></span><div class="brief">
+ Indicates whether the device supports HDMI output.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::platformCoreCpuArch">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">platformCoreCpuArch</span></span><div class="brief">
+ The device CPU architecture.
+The possible values for this attribute are: armv6, armv7, x86.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::platformCoreFpuArch">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">platformCoreFpuArch</span></span><div class="brief">
+ The device FPU architecture.
+The possible values for this attribute are: vfpv3 / sse2 / sse3 / ssse3.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::sipVoip">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">sipVoip</span></span><div class="brief">
+ Indicates whether the device supports VOIP.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::duid">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">duid</span></span><div class="brief">
+ Indicates the Tizen ID, not device's unique ID since Tizen 2.3.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="remark"> Remark : </span>
+ Tizen ID is a randomly generated value based on the model name. <br>It is recommended to use tizen.systeminfo.getCapability("http://tizen.org/system/tizenid") since Tizen 2.3 instead.
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::speechRecognition">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">speechRecognition</span></span><div class="brief">
+ Indicates whether the device supports speech recognition.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::speechSynthesis">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">speechSynthesis</span></span><div class="brief">
+ Indicates whether the device supports speech synthesis.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::accelerometer">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">accelerometer</span></span><div class="brief">
+ Indicates whether the device supports Accelerometer sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::accelerometerWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">accelerometerWakeup</span></span><div class="brief">
+ Indicates whether the device supports Accelerometer sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::barometer">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">barometer</span></span><div class="brief">
+ Indicates whether the device supports Barometer sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::barometerWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">barometerWakeup</span></span><div class="brief">
+ Indicates whether the device supports Barometer sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::gyroscope">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">gyroscope</span></span><div class="brief">
+ Indicates whether the device supports Gyroscope sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::gyroscopeWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">gyroscopeWakeup</span></span><div class="brief">
+ Indicates whether the device supports Gyroscope sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::magnetometer">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">magnetometer</span></span><div class="brief">
+ Indicates whether the device supports Magnetometer sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::magnetometerWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">magnetometerWakeup</span></span><div class="brief">
+ Indicates whether the device supports Magnetometer sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::photometer">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">photometer</span></span><div class="brief">
+ Indicates whether the device supports Photometer sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::photometerWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">photometerWakeup</span></span><div class="brief">
+ Indicates whether the device supports Photometer sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::proximity">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">proximity</span></span><div class="brief">
+ Indicates whether the device supports Proximity sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::proximityWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">proximityWakeup</span></span><div class="brief">
+ Indicates whether the device supports Proximity sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::tiltmeter">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">tiltmeter</span></span><div class="brief">
+ Indicates whether the device supports Tiltmeter sensor.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::tiltmeterWakeup">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">tiltmeterWakeup</span></span><div class="brief">
+ Indicates whether the device supports Tiltmeter sensor wake-up feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::dataEncryption">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">dataEncryption</span></span><div class="brief">
+ Indicates whether the device supports data encryption.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::graphicsAcceleration">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">graphicsAcceleration</span></span><div class="brief">
+ Indicates whether the device supports hardware acceleration for 2D/3D graphics.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::push">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">push</span></span><div class="brief">
+ Indicates whether the device supports push service.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::telephony">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">telephony</span></span><div class="brief">
+ Indicates whether the device supports the telephony feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::telephonyMms">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">telephonyMms</span></span><div class="brief">
+ Indicates whether the device supports the mms feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::telephonySms">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">telephonySms</span></span><div class="brief">
+ Indicates whether the device supports the sms feature.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::screenSizeNormal">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">screenSizeNormal</span></span><div class="brief">
+ Indicates whether the device supports the screen normal size.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::screenSize480_800">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">screenSize480_800</span></span><div class="brief">
+ Indicates whether the device supports the 480 * 800 screen size.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::screenSize720_1280">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">screenSize720_1280</span></span><div class="brief">
+ Indicates whether the device supports the 720 * 1280 screen size.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::autoRotation">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">autoRotation</span></span><div class="brief">
+ Indicates whether the device supports auto rotation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::shellAppWidget">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">shellAppWidget</span></span><div class="brief">
+ Indicates whether the device supports shell app widget(dynamic box).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::visionImageRecognition">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">visionImageRecognition</span></span><div class="brief">
+ Indicates whether the device supports vision image recognition.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::visionQrcodeGeneration">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">visionQrcodeGeneration</span></span><div class="brief">
+ Indicates whether the device supports vision qrcode generation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::visionQrcodeRecognition">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">visionQrcodeRecognition</span></span><div class="brief">
+ Indicates whether the device supports vision qrcode recognition.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::visionFaceRecognition">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">visionFaceRecognition</span></span><div class="brief">
+ Indicates whether the device supports vision face recognition.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::secureElement">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">secureElement</span></span><div class="brief">
+ Indicates whether the device supports secure element.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::nativeOspCompatible">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">nativeOspCompatible</span></span><div class="brief">
+ Indicates whether the device supports native osp API.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceCapability::profile">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoProfile </span><span class="name">profile</span></span><div class="brief">
+ Represents the profile of the current device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="dictionary" id="SystemInfoOptions">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoOptions"></a><h3>2.4. SystemInfoOptions</h3>
+<div class="brief">
+ An object containing the various options for fetching the properties requested.
+          </div>
+<pre class="webidl prettyprint">  dictionary SystemInfoOptions {
+    unsigned long timeout;
+
+    double highThreshold;
+
+    double lowThreshold;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The <var>highThreshold</var> and <var>lowThreshold</var> values are only applicable to the following <em>SystemInfoPropertyId</em>.
+          </p>
+          <ul>
+            <li>
+ SystemInfoBattery - level : <em>from 0 to 1</em>             </li>
+            <li>
+ SystemInfoCpu - load : <em>from 0 to 1</em>             </li>
+            <li>
+ SystemInfoDisplay - brightness : <em>from 0 to 1</em>             </li>
+          </ul>
+          <p>
+For other cases, it is ignored.
+          </p>
+         </div>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="SystemInfoOptions::timeout"><span class="attrName">unsigned long timeout</span></dt>
+<dd>
+<div class="brief">
+ The number of milliseconds beyond which the operation must be interrupted.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="SystemInfoOptions::highThreshold"><span class="attrName">double highThreshold</span></dt>
+<dd>
+<div class="brief">
+ An attribute to indicate that the <em>successCallback()</em> method in the watch
+operation will be triggered only if the device property is a number and its value is greater than or equal to this number.
+This attribute has no effect on the <em>get()</em> method.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+<dt class="member" id="SystemInfoOptions::lowThreshold"><span class="attrName">double lowThreshold</span></dt>
+<dd>
+<div class="brief">
+ An attribute to indicate that the <em>successCallback()</em> method in the watch operation must be triggered only if the property is a number and its value is lower than or equal to this number.
+If both <em>highThreshold </em>and <em>lowThreshold </em>parameters are specified, the <em>successCallback()</em> is triggered if and only if the property value is either lower than the value of <em>lowThreshold</em> or higher than the value of <em>highThreshold</em>.
+This attribute has no effect on the get method.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SystemInfoPropertySuccessCallback">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPropertySuccessCallback"></a><h3>2.5. SystemInfoPropertySuccessCallback</h3>
+<div class="brief">
+ Systeminfo specific success callback.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface SystemInfoPropertySuccessCallback {
+    void onsuccess(<a href="#SystemInfoProperty">SystemInfoProperty</a> property);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success callback with SystemInfoProperty as input argument.
+It is used in asynchronous
+operations, such as getPropertyValue() or addPropertyValueChangeListener()
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SystemInfoPropertySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPropertySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#SystemInfoProperty">SystemInfoProperty</a> property);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">property</span>: 
+ The property returned from a successful asynchronous operation.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SystemInfoPropertyArraySuccessCallback">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPropertyArraySuccessCallback"></a><h3>2.6. SystemInfoPropertyArraySuccessCallback</h3>
+<div class="brief">
+ Systeminfo specific success callback.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject] interface SystemInfoPropertyArraySuccessCallback {
+    void onsuccess(<a href="#SystemInfoProperty">SystemInfoProperty</a>[] properties);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies a success callback with SystemInfoProperty as input argument.
+It is used in asynchronous operations, such as getPropertyValueArray() or addPropertyValueArrayChangeListener()
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SystemInfoPropertyArraySuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPropertyArraySuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#SystemInfoProperty">SystemInfoProperty</a>[] properties);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">properties</span>: 
+ The array of SystemInfoProperty objects returned from a successful asynchronous operation.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SystemInfoProperty">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoProperty"></a><h3>2.7. SystemInfoProperty</h3>
+<div class="brief">
+ This is a common abstract interface used by different types of system information objects.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoProperty {
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+</div>
+<div class="interface" id="SystemInfoBattery">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoBattery"></a><h3>2.8. SystemInfoBattery</h3>
+<div class="brief">
+ This property reflects the general state of the system's battery
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoBattery : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute double level;
+
+    readonly attribute boolean isCharging;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoBattery::level">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">level</span></span><div class="brief">
+ An attribute to specify the remaining level of an internal battery, scaled from <var>0 </var>to <var>1</var>:
+            </div>
+<div class="description">
+            <ul>
+              <li>
+<var>0 </var>indicates that the battery level is the lowest and the system is about to enter shutdown mode.              </li>
+              <li>
+<var>1 </var>indicates that the system's charge is maximum.              </li>
+            </ul>
+            <p>
+Any threshold parameter used in a watch operation to monitor this property applies to this attribute.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoBattery::isCharging">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isCharging</span></span><div class="brief">
+ Indicates whether the battery source is currently charging.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoCpu">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoCpu"></a><h3>2.9. SystemInfoCpu</h3>
+<div class="brief">
+ This property reflects the state of the CPUs available to this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoCpu : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute double load;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoCpu::load">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">load</span></span><div class="brief">
+  An attribute to indicate the current CPU load, as a number between <var>0.0 </var>and <var>1.0</var>, representing the minimum and maximum values allowed on this system.
+Any threshold parameter used in a watch function to monitor this property applies to this attribute.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoStorage">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoStorage"></a><h3>2.10. SystemInfoStorage</h3>
+<div class="brief">
+ This property exposes the data storage devices connected to this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoStorage : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute <a href="#SystemInfoStorageUnit">SystemInfoStorageUnit</a>[] units;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoStorage::units">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoStorageUnit[]
+                      </span><span class="name">units</span></span><div class="brief">
+ The array of storage units connected to this device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoStorageUnit">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoStorageUnit"></a><h3>2.11. SystemInfoStorageUnit</h3>
+<div class="brief">
+ This property exposes a single storage device connected to this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoStorageUnit : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString type;
+
+    readonly attribute unsigned long long capacity;
+
+    readonly attribute unsigned long long availableCapacity;
+
+    readonly attribute boolean isRemovable;
+
+    readonly attribute boolean isRemoveable;
+  };</pre>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoStorageUnit::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">type</span></span><div class="brief">
+ The type of a storage device. The value is one of the constants defined for this type.
+            </div>
+<div class="description">
+            <p>
+The supported storage unit types are:
+            </p>
+            <ul>
+              <li>
+UNKNOWN              </li>
+              <li>
+INTERNAL               </li>
+              <li>
+USB_DEVICE              </li>
+              <li>
+USB_HOST              </li>
+              <li>
+MMC              </li>
+            </ul>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoStorageUnit::capacity">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">capacity</span></span><div class="brief">
+ The amount of data that this device can hold, in bytes.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoStorageUnit::availableCapacity">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long long </span><span class="name">availableCapacity</span></span><div class="brief">
+ The amount of available data that this device can hold, in bytes.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoStorageUnit::isRemovable">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isRemovable</span></span><div class="brief">
+ An attribute to indicate whether a device can be removed or not.
+            </div>
+<div class="description">
+            <p>
+The following values are supported:
+            </p>
+            <ul>
+              <li>
+<var>true </var> - If this storage unit can be removed from the system (such as an sdcard unplugged)              </li>
+              <li>
+<var>false</var> - If this storage unit cannot be removed from the system              </li>
+            </ul>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute deprecated" id="SystemInfoStorageUnit::isRemoveable">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isRemoveable</span></span><div class="brief">
+ true if this unit can be removed from the system (such as an sdcard unplugged), false otherwise.
+            </div>
+<p class="deprecated"><b>Deprecated.</b>
+ A typographic error.
+            </p>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoDisplay">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoDisplay"></a><h3>2.12. SystemInfoDisplay</h3>
+<div class="brief">
+ This property reflects the information of the Display.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoDisplay : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute unsigned long resolutionWidth;
+
+    readonly attribute unsigned long resolutionHeight;
+
+    readonly attribute unsigned long dotsPerInchWidth;
+
+    readonly attribute unsigned long dotsPerInchHeight;
+
+    readonly attribute double physicalWidth;
+
+    readonly attribute double physicalHeight;
+
+    readonly attribute double brightness;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoDisplay::resolutionWidth">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">resolutionWidth</span></span><div class="brief">
+ The total number of addressable pixels in the horizontal direction of a rectangular entity
+(such as Camera, Display, Image, Video, ...) when held in its default orientation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::resolutionHeight">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">resolutionHeight</span></span><div class="brief">
+ The total number of addressable pixels in the vertical direction of a rectangular element
+(such as Camera, Display, Image, Video, ...) when held in its default orientation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::dotsPerInchWidth">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">dotsPerInchWidth</span></span><div class="brief">
+ Resolution of this device, along its width, in dots per inch.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::dotsPerInchHeight">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned long </span><span class="name">dotsPerInchHeight</span></span><div class="brief">
+ Resolution of this device, along its height, in dots per inch.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::physicalWidth">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">physicalWidth</span></span><div class="brief">
+ The display's physical width in millimeters.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::physicalHeight">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">physicalHeight</span></span><div class="brief">
+ The display's physical height in millimeters.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDisplay::brightness">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">brightness</span></span><div class="brief">
+ The current brightness of a display ranging between <var>0 </var>to <var>1</var>.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoDeviceOrientation">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoDeviceOrientation"></a><h3>2.13. SystemInfoDeviceOrientation</h3>
+<div class="brief">
+ This property reflects the information of the device orientation in this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoDeviceOrientation : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute <a href="#SystemInfoDeviceOrientationStatus">SystemInfoDeviceOrientationStatus</a> status;
+
+    readonly attribute boolean isAutoRotation;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoDeviceOrientation::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoDeviceOrientationStatus </span><span class="name">status</span></span><div class="brief">
+ Represents the status of the current device orientation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoDeviceOrientation::isAutoRotation">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isAutoRotation</span></span><div class="brief">
+ whether the device is in autorotation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoBuild">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoBuild"></a><h3>2.14. SystemInfoBuild</h3>
+<div class="brief">
+ This property reflects the information of the current device.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoBuild : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString model;
+
+    readonly attribute DOMString manufacturer;
+
+    readonly attribute DOMString buildVersion;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoBuild::model">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">model</span></span><div class="brief">
+ Represents the model name of the current device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoBuild::manufacturer">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">manufacturer</span></span><div class="brief">
+ Represents the manufacturer of the device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoBuild::buildVersion">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">buildVersion</span></span><div class="brief">
+ Represents the build version information of the device.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoLocale">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoLocale"></a><h3>2.15. SystemInfoLocale</h3>
+<div class="brief">
+ This property reflects the locale information of the current device.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoLocale : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString language;
+
+    readonly attribute DOMString country;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoLocale::language">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">language</span></span><div class="brief">
+ Indicates the current language setting in the (LANGUAGE)_(REGION) syntax.
+The language setting is in the ISO 630-2 format and the region setting is in the ISO 3166-1 format.
+The language setting is case-sensitive.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoLocale::country">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">country</span></span><div class="brief">
+ Indicates the current country setting in the (LANGUAGE)_(REGION) syntax.
+The language setting is in the ISO 630-2 format and the region setting is in the ISO 3166-1 format.
+The country setting is case-sensitive.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoNetwork">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoNetwork"></a><h3>2.16. SystemInfoNetwork</h3>
+<div class="brief">
+ This property reflects the information of the data network in this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoNetwork : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute <a href="#SystemInfoNetworkType">SystemInfoNetworkType</a> networkType;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoNetwork::networkType">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoNetworkType </span><span class="name">networkType</span></span><div class="brief">
+ Represents the network type of the current data network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoWifiNetwork">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoWifiNetwork"></a><h3>2.17. SystemInfoWifiNetwork</h3>
+<div class="brief">
+ This property reflects the information of the Wi-Fi network in this system.
+          </div>
+<pre class="webidl prettyprint">   [NoInterfaceObject] interface SystemInfoWifiNetwork : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString ssid;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute DOMString macAddress;
+
+    readonly attribute double signalStrength;
+
+    readonly attribute <a href="#SystemInfoWifiSecurityMode">SystemInfoWifiSecurityMode</a> securityMode;
+
+    readonly attribute <a href="#SystemInfoWifiEncryptionType">SystemInfoWifiEncryptionType</a> encryptionType;
+
+    readonly attribute <a href="#SystemInfoNetworkIpMode">SystemInfoNetworkIpMode</a> ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoWifiNetwork::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">status</span></span><div class="brief">
+ Represents the status (ON or OFF) of the Wi-Fi interface.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::ssid">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ssid</span></span><div class="brief">
+ Represents the SSID of the Wi-Fi network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::ipAddress">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipAddress</span></span><div class="brief">
+ Represents the IPv4 address of the Wi-Fi network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::ipv6Address">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipv6Address</span></span><div class="brief">
+ Represents the IPv6 address of the Wi-Fi network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::macAddress">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">macAddress</span></span><div class="brief">
+ Represents the MAC address of the Wi-Fi interface.
+            </div>
+<div class="description">
+            <p>
+It is written in MM:MM:MM:SS:SS:SS format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::signalStrength">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">signalStrength</span></span><div class="brief">
+ This connection's signal strength, as a normalized value between 0 (no signal detected) and 1 (the level is at its maximum value).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::securityMode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoWifiSecurityMode </span><span class="name">securityMode</span></span><div class="brief">
+ Represents this connection's security mode.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::encryptionType">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoWifiEncryptionType </span><span class="name">encryptionType</span></span><div class="brief">
+ Represents this connection's encryption type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::ipMode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoNetworkIpMode </span><span class="name">ipMode</span></span><div class="brief">
+ Represents this connection's IP configuration type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::subnetMask">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">subnetMask</span></span><div class="brief">
+ Represents the subnet mask of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::gateway">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">gateway</span></span><div class="brief">
+ Represents the gateway of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoWifiNetwork::dns">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">dns</span></span><div class="brief">
+ Represents the DNS address of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoEthernetNetwork">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoEthernetNetwork"></a><h3>2.18. SystemInfoEthernetNetwork</h3>
+<div class="brief">
+ This property reflects the information of the Ethernet network in this system.
+          </div>
+<pre class="webidl prettyprint">   [NoInterfaceObject] interface SystemInfoEthernetNetwork : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString cable;
+
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute DOMString macAddress;
+
+    readonly attribute <a href="#SystemInfoNetworkIpMode">SystemInfoNetworkIpMode</a> ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoEthernetNetwork::cable">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">cable</span></span><div class="brief">
+ Represents the cable status (ATTACHED or DETACHED) of the ethernet interface.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">status</span></span><div class="brief">
+ Represents the status (DEACTIVATED, DISCONNECTED or CONNECTED) of the ethernet interface.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::ipAddress">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipAddress</span></span><div class="brief">
+ Represents the IPv4 address of the ethernet network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::ipv6Address">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipv6Address</span></span><div class="brief">
+ Represents the IPv6 address of the ethernet network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::macAddress">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">macAddress</span></span><div class="brief">
+ Represents the MAC address of the ethernet interface.
+            </div>
+<div class="description">
+            <p>
+It is written in MM:MM:MM:SS:SS:SS format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::ipMode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoNetworkIpMode </span><span class="name">ipMode</span></span><div class="brief">
+ Represents this connection's IP configuration type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::subnetMask">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">subnetMask</span></span><div class="brief">
+ Represents the subnet mask of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::gateway">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">gateway</span></span><div class="brief">
+ Represents the gateway of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoEthernetNetwork::dns">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">dns</span></span><div class="brief">
+ Represents the DNS address of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoCellularNetwork">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoCellularNetwork"></a><h3>2.19. SystemInfoCellularNetwork</h3>
+<div class="brief">
+ This property reflects the information of the Cellular network in this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoCellularNetwork : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString apn;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute unsigned short mcc;
+
+    readonly attribute unsigned short mnc;
+
+    readonly attribute unsigned short cellId;
+
+    readonly attribute unsigned short lac;
+
+    readonly attribute boolean isRoaming;
+
+    readonly attribute boolean isFlightMode;
+
+    readonly attribute DOMString imei raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute <a href="#SystemInfoNetworkIpMode">SystemInfoNetworkIpMode</a> ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoCellularNetwork::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">status</span></span><div class="brief">
+ Represents the status (ON or OFF) of the cellular network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::apn">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">apn</span></span><div class="brief">
+ Represents an Access Point Name of the cellular network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::ipAddress">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipAddress</span></span><div class="brief">
+ Represents the IPv4 address of the cellular network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::ipv6Address">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">ipv6Address</span></span><div class="brief">
+ Represents the IPv6 address of the cellular network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::mcc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">mcc</span></span><div class="brief">
+ Represents Mobile Country Code (MCC) of the cellular network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::mnc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">mnc</span></span><div class="brief">
+ Represents Mobile Network Code (MNC) of the cellular network. MNC is used in combination with MCC (also known as a "MCC / MNC tuple") to uniquely
+identify a mobile phone operator/carrier using the GSM, CDMA, iDEN, TETRA and UMTS public land mobile networks and some satellite mobile networks.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::cellId">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">cellId</span></span><div class="brief">
+ Represents Cell Id.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::lac">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">lac</span></span><div class="brief">
+ Represents Location Area Code.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::isRoaming">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isRoaming</span></span><div class="brief">
+ Whether the connection is set up while the device is roaming.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::isFlightMode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isFlightMode</span></span><div class="brief">
+ Indicates whether the device is in flight mode.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::imei">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">imei</span></span><div class="brief">
+ Represents the International Mobile Equipment Identity (IMEI).
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/telephony
+            </p>
+<p class="warning"><b>Warning:</b>
+ <em>http://tizen.org/privilege/systemmanager</em> <em>(partner level privilege)</em> has been deprecated since 2.3.1. Instead, use <em>http://tizen.org/privilege/telephony</em>.
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::ipMode">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoNetworkIpMode </span><span class="name">ipMode</span></span><div class="brief">
+ Represents this connection's IP configuration type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::subnetMask">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">subnetMask</span></span><div class="brief">
+ Represents the subnet mask of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::gateway">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">gateway</span></span><div class="brief">
+ Represents the gateway of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCellularNetwork::dns">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">dns</span></span><div class="brief">
+ Represents the DNS address of this connection.
+            </div>
+<div class="description">
+            <p>
+It is written in 255.255.255.255 format.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoNetProxyNetwork">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoNetProxyNetwork"></a><h3>2.20. SystemInfoNetProxyNetwork</h3>
+<div class="brief">
+ This property reflects the information of the net_proxy network in this system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoNetProxyNetwork : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute DOMString status;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 3.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoNetProxyNetwork::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">status</span></span><div class="brief">
+ Represents the status (ON or OFF) of the net_proxy network.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 3.0
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoSIM">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoSIM"></a><h3>2.21. SystemInfoSIM</h3>
+<div class="brief">
+ This property reflects the information of the SIM card information.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoSIM : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute <a href="#SystemInfoSimState">SystemInfoSimState</a> state raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString operatorName raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString msisdn raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString iccid raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute unsigned short mcc raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute unsigned short mnc raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString msin raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString spn raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoSIM::state">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoSimState </span><span class="name">state</span></span><div class="brief">
+ Represents the SIM card state.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::operatorName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">operatorName</span></span><div class="brief">
+ Represents the Operator Name String (ONS) of Common PCN Handset Specification (CPHS) in SIM card.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::msisdn">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">msisdn</span></span><div class="brief">
+ Represents the SIM card subscriber number.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/telephony
+            </p>
+<p class="warning"><b>Warning:</b>
+ The partner level privilege, <em>http://tizen.org/privilege/systemmanager</em>, has been deprecated.
+From Tizen 2.4, the public level privilege, <em>http://tizen.org/privilege/telephony</em>, is required.
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::iccid">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">iccid</span></span><div class="brief">
+ Represents the Integrated Circuit Card ID.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::mcc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">mcc</span></span><div class="brief">
+ Represents the Mobile Country Code (MCC) of SIM provider.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::mnc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">mnc</span></span><div class="brief">
+ Represents the Mobile Network Code (MNC) of SIM provider.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::msin">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">msin</span></span><div class="brief">
+ Represents the Mobile Subscription Identification Number (MSIN) of SIM provider.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/telephony
+            </p>
+<p class="warning"><b>Warning:</b>
+ The partner level privilege, <em>http://tizen.org/privilege/systemmanager</em>, has been deprecated.
+From Tizen 2.4, the public level privilege, <em>http://tizen.org/privilege/telephony</em>, is required.
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+<li class="attribute" id="SystemInfoSIM::spn">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">spn</span></span><div class="brief">
+ Represents the Service Provider Name (SPN) of SIM card.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/system
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoPeripheral">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoPeripheral"></a><h3>2.22. SystemInfoPeripheral</h3>
+<div class="brief">
+ This property reflects the peripheral information of the current device.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoPeripheral : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute boolean isVideoOutputOn;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.1
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoPeripheral::isVideoOutputOn">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">boolean </span><span class="name">isVideoOutputOn</span></span><div class="brief">
+ Represents the video out status.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.1
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoMemory">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoMemory"></a><h3>2.23. SystemInfoMemory</h3>
+<div class="brief">
+ This property represents information about the memory state on the device system.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoMemory : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute <a href="#SystemInfoLowMemoryStatus">SystemInfoLowMemoryStatus</a> status;
+
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="SystemInfoMemory::status">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoLowMemoryStatus </span><span class="name">status</span></span><div class="brief">
+ Represents the low memory state.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li></ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoVideoSourceInfo">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoVideoSourceInfo"></a><h3>2.24. SystemInfoVideoSourceInfo</h3>
+<div class="brief">
+ This property reflects each input source the current device has.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoVideoSourceInfo {
+
+    readonly attribute <a href="#SystemInfoVideoSourceType">SystemInfoVideoSourceType</a> type;
+
+     readonly attribute long number;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+If there are 2 HDMI inputs on a device, Two <em>SystemInfoVideoSourceInfo</em> objects must be retreived through <em>SystemInfoVideoSource</em><br>{type=HDMI, number=1}, {type=HDMI, number=2}
+          </p>
+         </div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoVideoSourceInfo::type">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoVideoSourceType </span><span class="name">type</span></span><div class="brief">
+ Represents the type of the video input source.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="SystemInfoVideoSourceInfo::number">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">number</span></span><div class="brief">
+ Represents the input number of the input source.
+            </div>
+<div class="description">
+            <p>
+If the source is "HDMI 2", the <em>number</em> is 2.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoVideoSource">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoVideoSource"></a><h3>2.25. SystemInfoVideoSource</h3>
+<div class="brief">
+ This property reflects the video sources the device has.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoVideoSource : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+
+    readonly attribute <a href="#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a>[] connected;
+
+    readonly attribute <a href="#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a>[] disconnected;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoVideoSource::connected">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoVideoSourceInfo[]
+                      </span><span class="name">connected</span></span><div class="brief">
+ Represents a list of video sources that a device is connected with.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="SystemInfoVideoSource::disconnected">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">SystemInfoVideoSourceInfo[]
+                      </span><span class="name">disconnected</span></span><div class="brief">
+ Represents a list of video sources that a device is not connected with.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SystemInfoCameraFlash">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoCameraFlash"></a><h3>2.26. SystemInfoCameraFlash</h3>
+<div class="brief">
+ The SystemInfoCameraFlash provides the way to control the attached the camera flash.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface SystemInfoCameraFlash : <a href="#SystemInfoProperty">SystemInfoProperty</a> {
+    readonly attribute double brightness raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    readonly attribute DOMString camera;
+
+    readonly attribute long levels raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setBrightness(double brightness) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+        
+      <div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SystemInfoCameraFlash::brightness">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">double </span><span class="name">brightness</span></span><div class="brief">
+ Brightness level of the camera flash (0~1)
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/led
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.systeminfo.getPropertyValue("CAMERA_FLASH",
+    function (flash) {
+        console.log("Flash brightness is set to: " + (flash.brightness * 100).toFixed(0) + "%");
+    },
+    function (error) {
+        console.log("Error, name: " + error.name + ", message: " + error.message);
+    }
+ );
+ </pre>
+</div>
+</li>
+<li class="attribute" id="SystemInfoCameraFlash::camera">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">camera</span></span><div class="brief">
+ Specifies camera to which this flash belongs
+            </div>
+<div class="description">
+            <ul>
+              <li>
+BACK - back camera flash              </li>
+              <li>
+FRONT - front camera flash              </li>
+              <li>
+EXTERNAL - external camera flash              </li>
+              <li>
+OTHER - a flash attached to any other camera              </li>
+            </ul>
+           </div>
+<div class="description">
+            <p>
+The <em>getPropertyValue()</em> method retrieves the <var>SystemInfoCameraFlash</var> for <var>BACK</var> camera.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="SystemInfoCameraFlash::levels">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">levels</span></span><div class="brief">
+ Number of brightness levels supported by the flash (other than 0 brightness)
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/led
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type SecurityError, if this attribute is not allowed.
+                </p></li></ul>
+</li></ul>
+        </div>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SystemInfoCameraFlash::setBrightness">
+<a class="backward-compatibility-anchor" name="::SystemInfo::SystemInfoCameraFlash::setBrightness"></a><code><b><span class="methodName">setBrightness</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the brightness value of the flash that is located next to the camera.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setBrightness(double brightness);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+If the specified brightness value is not supported by the device, the brightness is rounded down to the nearest supported brightness value.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/led
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">brightness</span>: 
+ The brightness value of LED (0~1)
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method or if the author signature does not match that of the designated application.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the method cannot be completed because of an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.systeminfo.getPropertyValue("CAMERA_FLASH",
+    function (flash) {
+        try {
+            flash.setBrightness(1);
+        } catch (error) {
+            console.log("Setting flash brightness failed: " + error.message);
+        }
+    },
+    function (error) {
+        console.log("Error, name: " + error.name + ", message: " + error.message);
+    }
+ );
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application on a device which has camera back flash and control it, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/camera.back.flash</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application(e.g. track the battery usage) on a device which has a battery, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/battery</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application on a device which supports ethernet network feature, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.ethernet</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application on a device which supports telephony feature, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.telephony</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application on a device which supports Wi-Fi, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.wifi</li>
+</div>
+<div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of the application on a device which supports network proxy for internet connection, declare the following feature requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/network.net_proxy</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module SystemInfo {
+
+  enum SystemInfoPropertyId { "BATTERY", "CPU", "STORAGE", "DISPLAY", "DEVICE_ORIENTATION", "BUILD", "LOCALE", "NETWORK", "WIFI_NETWORK", "ETHERNET_NETWORK", "CELLULAR_NETWORK", "NET_PROXY_NETWORK", "SIM", "PERIPHERAL", "MEMORY", "VIDEOSOURCE", "CAMERA_FLASH" };
+
+  enum SystemInfoNetworkType { "NONE", "2G", "2.5G", "3G", "4G", "WIFI", "ETHERNET", "NET_PROXY", "UNKNOWN" };
+
+  enum SystemInfoWifiSecurityMode { "NONE", "WEP", "WPA_PSK", "WPA2_PSK", "EAP" };
+
+  enum SystemInfoWifiEncryptionType { "NONE", "WEP", "TKIP", "AES", "TKIP_AES_MIXED" };
+
+  enum SystemInfoNetworkIpMode { "NONE", "STATIC", "DYNAMIC", "AUTO", "FIXED" };
+
+  enum SystemInfoDeviceOrientationStatus { "PORTRAIT_PRIMARY", "PORTRAIT_SECONDARY", "LANDSCAPE_PRIMARY", "LANDSCAPE_SECONDARY" };
+
+  enum SystemInfoSimState { "ABSENT", "INITIALIZING", "READY", "PIN_REQUIRED", "PUK_REQUIRED", "NETWORK_LOCKED", "SIM_LOCKED", "UNKNOWN" };
+
+  enum SystemInfoProfile { "MOBILE_FULL", "MOBILE_WEB", "MOBILE", "WEARABLE", "TV" };
+
+  enum SystemInfoLowMemoryStatus { "NORMAL", "WARNING" };
+
+  enum SystemInfoVideoSourceType {
+      "TV",
+      "AV",
+      "SVIDEO",
+      "COMP",
+      "PC",
+      "HDMI",
+      "SCART",
+      "DVI",
+      "MEDIA"
+  };
+
+  [NoInterfaceObject] interface SystemInfoObject {
+    readonly attribute <a href="#SystemInfo">SystemInfo</a> systeminfo;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#SystemInfoObject">SystemInfoObject</a>;
+
+  [NoInterfaceObject] interface SystemInfo {
+    long long getTotalMemory() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long long getAvailableMemory() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#SystemInfoDeviceCapability">SystemInfoDeviceCapability</a> getCapabilities() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    any getCapability(DOMString key) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long getCount(<a href="#SystemInfoPropertyId">SystemInfoPropertyId</a> property) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void getPropertyValue(SystemInfoPropertyId property,
+                          SystemInfoPropertySuccessCallback successCallback,
+                          optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    void getPropertyValueArray(SystemInfoPropertyId property,
+                          SystemInfoPropertyArraySuccessCallback successCallback,
+                          optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    unsigned long addPropertyValueChangeListener(SystemInfoPropertyId property,
+                                        SystemInfoPropertySuccessCallback successCallback,
+                                        optional SystemInfoOptions? options,
+                                        optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    unsigned long addPropertyValueArrayChangeListener(SystemInfoPropertyId property,
+                                        SystemInfoPropertyArraySuccessCallback successCallback,
+                                        optional SystemInfoOptions? options,
+                                        optional ErrorCallback? errorCallback) raises(WebAPIException);
+
+    void removePropertyValueChangeListener(unsigned long listenerId) raises(WebAPIException);
+  };
+
+  [NoInterfaceObject] interface SystemInfoDeviceCapability {
+    readonly attribute boolean bluetooth;
+
+    readonly attribute boolean nfc;
+
+    readonly attribute boolean nfcReservedPush ;
+
+    readonly attribute unsigned short multiTouchCount;
+
+    readonly attribute boolean inputKeyboard;
+
+    readonly attribute boolean inputKeyboardLayout;
+
+    readonly attribute boolean wifi;
+
+    readonly attribute boolean wifiDirect;
+
+    readonly attribute boolean opengles;
+
+    readonly attribute DOMString openglestextureFormat;
+
+    readonly attribute boolean openglesVersion1_1;
+
+    readonly attribute boolean openglesVersion2_0;
+
+    readonly attribute boolean fmRadio;
+
+    readonly attribute DOMString platformVersion raises(WebAPIException);
+
+    readonly attribute DOMString webApiVersion raises(WebAPIException);
+
+    readonly attribute DOMString nativeApiVersion raises(WebAPIException);
+
+    readonly attribute DOMString platformName;
+
+    readonly attribute boolean camera;
+
+    readonly attribute boolean cameraFront;
+
+    readonly attribute boolean cameraFrontFlash;
+
+    readonly attribute boolean cameraBack;
+
+    readonly attribute boolean cameraBackFlash;
+
+    readonly attribute boolean location;
+
+    readonly attribute boolean locationGps;
+
+    readonly attribute boolean locationWps;
+
+    readonly attribute boolean microphone;
+
+    readonly attribute boolean usbHost;
+
+    readonly attribute boolean usbAccessory;
+
+    readonly attribute boolean screenOutputRca;
+
+    readonly attribute boolean screenOutputHdmi;
+
+    readonly attribute DOMString platformCoreCpuArch;
+
+    readonly attribute DOMString platformCoreFpuArch;
+
+    readonly attribute boolean sipVoip;
+
+    readonly attribute DOMString duid;
+
+    readonly attribute boolean speechRecognition;
+
+    readonly attribute boolean speechSynthesis;
+
+    readonly attribute boolean accelerometer;
+
+    readonly attribute boolean accelerometerWakeup;
+
+    readonly attribute boolean barometer;
+
+    readonly attribute boolean barometerWakeup;
+
+    readonly attribute boolean gyroscope;
+
+    readonly attribute boolean gyroscopeWakeup;
+
+    readonly attribute boolean magnetometer;
+
+    readonly attribute boolean magnetometerWakeup;
+
+    readonly attribute boolean photometer;
+
+    readonly attribute boolean photometerWakeup;
+
+    readonly attribute boolean proximity;
+
+    readonly attribute boolean proximityWakeup;
+
+    readonly attribute boolean tiltmeter;
+
+    readonly attribute boolean tiltmeterWakeup;
+
+    readonly attribute boolean dataEncryption;
+
+    readonly attribute boolean graphicsAcceleration;
+
+    readonly attribute boolean push;
+
+    readonly attribute boolean telephony;
+
+    readonly attribute boolean telephonyMms;
+
+    readonly attribute boolean telephonySms;
+
+    readonly attribute boolean screenSizeNormal;
+
+    readonly attribute boolean screenSize480_800;
+
+    readonly attribute boolean screenSize720_1280;
+
+    readonly attribute boolean autoRotation;
+
+    readonly attribute boolean shellAppWidget;
+
+    readonly attribute boolean visionImageRecognition;
+
+    readonly attribute boolean visionQrcodeGeneration;
+
+    readonly attribute boolean visionQrcodeRecognition;
+
+    readonly attribute boolean visionFaceRecognition;
+
+    readonly attribute boolean secureElement;
+
+    readonly attribute boolean nativeOspCompatible;
+
+    readonly attribute SystemInfoProfile profile;
+  };
+
+  dictionary SystemInfoOptions {
+    unsigned long timeout;
+
+    double highThreshold;
+
+    double lowThreshold;
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface SystemInfoPropertySuccessCallback {
+    void onsuccess(SystemInfoProperty property);
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject] interface SystemInfoPropertyArraySuccessCallback {
+    void onsuccess(SystemInfoProperty[] properties);
+  };
+
+  [NoInterfaceObject] interface SystemInfoProperty {
+  };
+
+  [NoInterfaceObject] interface SystemInfoBattery : SystemInfoProperty {
+    readonly attribute double level;
+
+    readonly attribute boolean isCharging;
+  };
+
+  [NoInterfaceObject] interface SystemInfoCpu : SystemInfoProperty {
+    readonly attribute double load;
+  };
+
+  [NoInterfaceObject] interface SystemInfoStorage : SystemInfoProperty {
+    readonly attribute SystemInfoStorageUnit[] units;
+  };
+
+  [NoInterfaceObject] interface SystemInfoStorageUnit : SystemInfoProperty {
+    readonly attribute DOMString type;
+
+    readonly attribute unsigned long long capacity;
+
+    readonly attribute unsigned long long availableCapacity;
+
+    readonly attribute boolean isRemovable;
+
+    readonly attribute boolean isRemoveable;
+  };
+
+  [NoInterfaceObject] interface SystemInfoDisplay : SystemInfoProperty {
+    readonly attribute unsigned long resolutionWidth;
+
+    readonly attribute unsigned long resolutionHeight;
+
+    readonly attribute unsigned long dotsPerInchWidth;
+
+    readonly attribute unsigned long dotsPerInchHeight;
+
+    readonly attribute double physicalWidth;
+
+    readonly attribute double physicalHeight;
+
+    readonly attribute double brightness;
+  };
+
+  [NoInterfaceObject] interface SystemInfoDeviceOrientation : SystemInfoProperty {
+    readonly attribute SystemInfoDeviceOrientationStatus status;
+
+    readonly attribute boolean isAutoRotation;
+  };
+
+  [NoInterfaceObject] interface SystemInfoBuild : SystemInfoProperty {
+    readonly attribute DOMString model;
+
+    readonly attribute DOMString manufacturer;
+
+    readonly attribute DOMString buildVersion;
+  };
+
+  [NoInterfaceObject] interface SystemInfoLocale : SystemInfoProperty {
+    readonly attribute DOMString language;
+
+    readonly attribute DOMString country;
+  };
+
+  [NoInterfaceObject] interface SystemInfoNetwork : SystemInfoProperty {
+    readonly attribute SystemInfoNetworkType networkType;
+  };
+
+   [NoInterfaceObject] interface SystemInfoWifiNetwork : SystemInfoProperty {
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString ssid;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute DOMString macAddress;
+
+    readonly attribute double signalStrength;
+
+    readonly attribute SystemInfoWifiSecurityMode securityMode;
+
+    readonly attribute SystemInfoWifiEncryptionType encryptionType;
+
+    readonly attribute SystemInfoNetworkIpMode ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };
+
+   [NoInterfaceObject] interface SystemInfoEthernetNetwork : SystemInfoProperty {
+    readonly attribute DOMString cable;
+
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute DOMString macAddress;
+
+    readonly attribute SystemInfoNetworkIpMode ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };
+
+  [NoInterfaceObject] interface SystemInfoCellularNetwork : SystemInfoProperty {
+
+    readonly attribute DOMString status;
+
+    readonly attribute DOMString apn;
+
+    readonly attribute DOMString ipAddress;
+
+    readonly attribute DOMString ipv6Address;
+
+    readonly attribute unsigned short mcc;
+
+    readonly attribute unsigned short mnc;
+
+    readonly attribute unsigned short cellId;
+
+    readonly attribute unsigned short lac;
+
+    readonly attribute boolean isRoaming;
+
+    readonly attribute boolean isFlightMode;
+
+    readonly attribute DOMString imei raises(WebAPIException);
+
+    readonly attribute SystemInfoNetworkIpMode ipMode;
+
+    readonly attribute DOMString subnetMask;
+
+    readonly attribute DOMString gateway;
+
+    readonly attribute DOMString dns;
+  };
+
+  [NoInterfaceObject] interface SystemInfoNetProxyNetwork : SystemInfoProperty {
+    readonly attribute DOMString status;
+  };
+
+  [NoInterfaceObject] interface SystemInfoSIM : SystemInfoProperty {
+    readonly attribute SystemInfoSimState state raises(WebAPIException);
+
+    readonly attribute DOMString operatorName raises(WebAPIException);
+
+    readonly attribute DOMString msisdn raises(WebAPIException);
+
+    readonly attribute DOMString iccid raises(WebAPIException);
+
+    readonly attribute unsigned short mcc raises(WebAPIException);
+
+    readonly attribute unsigned short mnc raises(WebAPIException);
+
+    readonly attribute DOMString msin raises(WebAPIException);
+
+    readonly attribute DOMString spn raises(WebAPIException);
+  };
+
+  [NoInterfaceObject] interface SystemInfoPeripheral : SystemInfoProperty {
+    readonly attribute boolean isVideoOutputOn;
+  };
+
+  [NoInterfaceObject] interface SystemInfoMemory : SystemInfoProperty {
+    readonly attribute SystemInfoLowMemoryStatus status;
+
+  };
+
+  [NoInterfaceObject] interface SystemInfoVideoSourceInfo {
+
+    readonly attribute SystemInfoVideoSourceType type;
+
+     readonly attribute long number;
+  };
+
+  [NoInterfaceObject] interface SystemInfoVideoSource : SystemInfoProperty {
+
+    readonly attribute SystemInfoVideoSourceInfo[] connected;
+
+    readonly attribute SystemInfoVideoSourceInfo[] disconnected;
+  };
+
+  [NoInterfaceObject] interface SystemInfoCameraFlash : SystemInfoProperty {
+    readonly attribute double brightness raises(WebAPIException);
+
+    readonly attribute DOMString camera;
+
+    readonly attribute long levels raises(WebAPIException);
+
+    void setBrightness(double brightness) raises(WebAPIException);
+  };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/time.html b/org.tizen.web.apireference/html/device_api/tv/tizen/time.html
new file mode 100644 (file)
index 0000000..e1b30cc
--- /dev/null
@@ -0,0 +1,2615 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Time API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Time">
+<div class="title"><h1>Time API</h1></div>
+<div class="brief">
+  The Time API provides information regarding date/time and time zones.
+        </div>
+<div class="description">
+        <p>
+The JavaScript Date object does not have full timezone support.
+Date objects allow only simple representations to denote a particular location's
+offset from Universal Coordinated Time (UTC). This is typically provided as a +/-
+offset from UTC-0 (also known as Greenwich Mean Time, or GMT) for example, +05:30 denotes
+that a location is 5 hours and 30 minutes ahead of UTC +00:00.
+The issue with this method is not getting the correct
+local time for a given date. The existing methods are sufficient for this purpose.
+The issue is correctly converting to and from local time and UTC for all points in
+time - in any of the past, present, and future - based on an initial time provided.
+This is important for defining relative dates, where a time in a given location may
+observe different UTC offsets, according to any Daylight Savings Rules (DST) in effect
+or any other changes that may occur to a location's time zone over time.
+Without the communication of the explicit time zone rules governing a given date and
+time, the ability to effectively calculate the offset of the local time to UTC or to
+any other time zone at any point in the past or future is lost.
+        </p>
+        <p>
+This API can be used to get TZDate objects with full time zone support, convert them
+between timezones, retrieve available timezones.
+        </p>
+        <p>
+For more information on the Time features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/sys_guide/time.htm">Time Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc"><li>
+                    1.1. <a href="#TimeDurationUnit">TimeDurationUnit</a>
+</li></ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TimeManagerObject">TimeManagerObject</a>
+</li>
+<li>2.2. <a href="#TimeUtil">TimeUtil</a>
+</li>
+<li>2.3. <a href="#TZDate">TZDate</a>
+</li>
+<li>2.4. <a href="#TimeDuration">TimeDuration</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TimeManagerObject">TimeManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#TimeUtil">TimeUtil</a></td>
+<td>
+<div>
+<a href="#TZDate">TZDate</a> <a href="#TimeUtil::getCurrentDateTime">getCurrentDateTime</a> ()</div>
+<div>DOMString <a href="#TimeUtil::getLocalTimezone">getLocalTimezone</a> ()</div>
+<div>DOMString[] <a href="#TimeUtil::getAvailableTimezones">getAvailableTimezones</a> ()</div>
+<div>DOMString <a href="#TimeUtil::getDateFormat">getDateFormat</a> (optional boolean? shortformat)</div>
+<div>DOMString <a href="#TimeUtil::getTimeFormat">getTimeFormat</a> ()</div>
+<div>boolean <a href="#TimeUtil::isLeapYear">isLeapYear</a> (long year)</div>
+<div>void <a href="#TimeUtil::setDateTimeChangeListener">setDateTimeChangeListener</a> (<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback)</div>
+<div>void <a href="#TimeUtil::unsetDateTimeChangeListener">unsetDateTimeChangeListener</a> ()</div>
+<div>void <a href="#TimeUtil::setTimezoneChangeListener">setTimezoneChangeListener</a> (<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback)</div>
+<div>void <a href="#TimeUtil::unsetTimezoneChangeListener">unsetTimezoneChangeListener</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#TZDate">TZDate</a></td>
+<td>
+<div>long <a href="#TZDate::getDate">getDate</a> ()</div>
+<div>void <a href="#TZDate::setDate">setDate</a> (long date)</div>
+<div>long <a href="#TZDate::getDay">getDay</a> ()</div>
+<div>long <a href="#TZDate::getFullYear">getFullYear</a> ()</div>
+<div>void <a href="#TZDate::setFullYear">setFullYear</a> (long year)</div>
+<div>long <a href="#TZDate::getHours">getHours</a> ()</div>
+<div>void <a href="#TZDate::setHours">setHours</a> (long hours)</div>
+<div>long <a href="#TZDate::getMilliseconds">getMilliseconds</a> ()</div>
+<div>void <a href="#TZDate::setMilliseconds">setMilliseconds</a> (long ms)</div>
+<div>long <a href="#TZDate::getMinutes">getMinutes</a> ()</div>
+<div>void <a href="#TZDate::setMinutes">setMinutes</a> (long minutes)</div>
+<div>long <a href="#TZDate::getMonth">getMonth</a> ()</div>
+<div>void <a href="#TZDate::setMonth">setMonth</a> (long month)</div>
+<div>long <a href="#TZDate::getSeconds">getSeconds</a> ()</div>
+<div>void <a href="#TZDate::setSeconds">setSeconds</a> (long seconds)</div>
+<div>long <a href="#TZDate::getUTCDate">getUTCDate</a> ()</div>
+<div>void <a href="#TZDate::setUTCDate">setUTCDate</a> (long date)</div>
+<div>long <a href="#TZDate::getUTCDay">getUTCDay</a> ()</div>
+<div>long <a href="#TZDate::getUTCFullYear">getUTCFullYear</a> ()</div>
+<div>void <a href="#TZDate::setUTCFullYear">setUTCFullYear</a> (long year)</div>
+<div>long <a href="#TZDate::getUTCHours">getUTCHours</a> ()</div>
+<div>void <a href="#TZDate::setUTCHours">setUTCHours</a> (long hours)</div>
+<div>long <a href="#TZDate::getUTCMilliseconds">getUTCMilliseconds</a> ()</div>
+<div>void <a href="#TZDate::setUTCMilliseconds">setUTCMilliseconds</a> (long ms)</div>
+<div>long <a href="#TZDate::getUTCMinutes">getUTCMinutes</a> ()</div>
+<div>void <a href="#TZDate::setUTCMinutes">setUTCMinutes</a> (long minutes)</div>
+<div>long <a href="#TZDate::getUTCMonth">getUTCMonth</a> ()</div>
+<div>void <a href="#TZDate::setUTCMonth">setUTCMonth</a> (long month)</div>
+<div>long <a href="#TZDate::getUTCSeconds">getUTCSeconds</a> ()</div>
+<div>void <a href="#TZDate::setUTCSeconds">setUTCSeconds</a> (long seconds)</div>
+<div>DOMString <a href="#TZDate::getTimezone">getTimezone</a> ()</div>
+<div>
+<a href="#TZDate">TZDate</a> <a href="#TZDate::toTimezone">toTimezone</a> (DOMString tzid)</div>
+<div>
+<a href="#TZDate">TZDate</a> <a href="#TZDate::toLocalTimezone">toLocalTimezone</a> ()</div>
+<div>
+<a href="#TZDate">TZDate</a> <a href="#TZDate::toUTC">toUTC</a> ()</div>
+<div>
+<a href="#TimeDuration">TimeDuration</a> <a href="#TZDate::difference">difference</a> (<a href="#TZDate">TZDate</a> other)</div>
+<div>boolean <a href="#TZDate::equalsTo">equalsTo</a> (<a href="#TZDate">TZDate</a> other)</div>
+<div>boolean <a href="#TZDate::earlierThan">earlierThan</a> (<a href="#TZDate">TZDate</a> other)</div>
+<div>boolean <a href="#TZDate::laterThan">laterThan</a> (<a href="#TZDate">TZDate</a> other)</div>
+<div>
+<a href="#TZDate">TZDate</a> <a href="#TZDate::addDuration">addDuration</a> (<a href="#TimeDuration">TimeDuration</a> duration)</div>
+<div>DOMString <a href="#TZDate::toLocaleDateString">toLocaleDateString</a> ()</div>
+<div>DOMString <a href="#TZDate::toLocaleTimeString">toLocaleTimeString</a> ()</div>
+<div>DOMString <a href="#TZDate::toLocaleString">toLocaleString</a> ()</div>
+<div>DOMString <a href="#TZDate::toDateString">toDateString</a> ()</div>
+<div>DOMString <a href="#TZDate::toTimeString">toTimeString</a> ()</div>
+<div>DOMString <a href="#TZDate::toString">toString</a> ()</div>
+<div class="deprecated">DOMString <a href="#TZDate::getTimezoneAbbreviation">getTimezoneAbbreviation</a> ()</div>
+<div>long <a href="#TZDate::secondsFromUTC">secondsFromUTC</a> ()</div>
+<div>boolean <a href="#TZDate::isDST">isDST</a> ()</div>
+<div>
+<a href="#TZDate">TZDate</a>? <a href="#TZDate::getPreviousDSTTransition">getPreviousDSTTransition</a> ()</div>
+<div>
+<a href="#TZDate">TZDate</a>? <a href="#TZDate::getNextDSTTransition">getNextDSTTransition</a> ()</div>
+</td>
+</tr>
+<tr>
+<td><a href="#TimeDuration">TimeDuration</a></td>
+<td>
+<div>
+<a href="#TimeDuration">TimeDuration</a> <a href="#TimeDuration::difference">difference</a> (<a href="#TimeDuration">TimeDuration</a> other)</div>
+<div>boolean <a href="#TimeDuration::equalsTo">equalsTo</a> (<a href="#TimeDuration">TimeDuration</a> other)</div>
+<div>boolean <a href="#TimeDuration::lessThan">lessThan</a> (<a href="#TimeDuration">TimeDuration</a> other)</div>
+<div>boolean <a href="#TimeDuration::greaterThan">greaterThan</a> (<a href="#TimeDuration">TimeDuration</a> other)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="TimeDurationUnit">
+<a class="backward-compatibility-anchor" name="::Time::TimeDurationUnit"></a><h3>1.1. TimeDurationUnit</h3>
+<div class="brief">
+ Specifies the TimeDuration unit (milliseconds, seconds, minutes, hours or days).
+          </div>
+<pre class="webidl prettyprint">  enum TimeDurationUnit { "MSECS", "SECS", "MINS", "HOURS", "DAYS" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+At least the following values must be supported:
+          </p>
+          <ul>
+            <li>
+MSECS - Indicates a duration in milliseconds            </li>
+            <li>
+SECS - Indicates a duration in seconds             </li>
+            <li>
+MINS - Indicates a duration in minutes             </li>
+            <li>
+HOURS - Indicates a duration in hours             </li>
+            <li>
+DAYS - Indicates a duration in days            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TimeManagerObject">
+<a class="backward-compatibility-anchor" name="::Time::TimeManagerObject"></a><h3>2.1. TimeManagerObject</h3>
+<div class="brief">
+ The TimeManagerObject interface defines what is instantiated in the tizen object by the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface TimeManagerObject {
+    readonly attribute <a href="#TimeUtil">TimeUtil</a> time;
+  };</pre>
+<pre class="webidl prettyprint">  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TimeManagerObject">TimeManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+There will be a <em>tizen.time</em> object that allows accessing the
+functionality of the Time API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="TimeUtil">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil"></a><h3>2.2. TimeUtil</h3>
+<div class="brief">
+ The TimeUtil interface that provides access to the time API.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface TimeUtil {
+    <a href="#TZDate">TZDate</a> getCurrentDateTime() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getLocalTimezone() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString[] getAvailableTimezones() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getDateFormat(optional boolean? shortformat) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getTimeFormat() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean isLeapYear(long year) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setDateTimeChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetDateTimeChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setTimezoneChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetTimezoneChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This interface offers methods to manage date/time as well as timezones such as:
+          </p>
+          <ul>
+            <li>
+Get the current date/time using getCurrentDateTime().            </li>
+            <li>
+Get timezones using getLocalTimezone() and getAvailableTimezones().            </li>
+          </ul>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TimeUtil::getCurrentDateTime">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::getCurrentDateTime"></a><code><b><span class="methodName">getCurrentDateTime</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current date/time.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a> getCurrentDateTime();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The current TZDate object
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var current_dt = tizen.time.getCurrentDateTime();
+ console.log("current date/time is " + current_dt.toLocaleString());
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::getLocalTimezone">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::getLocalTimezone"></a><code><b><span class="methodName">getLocalTimezone</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the identifier of the local system timezone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getLocalTimezone();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Timezone The local timezone
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log("The local time zone is " + tizen.time.getLocalTimezone());
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::getAvailableTimezones">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::getAvailableTimezones"></a><code><b><span class="methodName">getAvailableTimezones</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets synchronously the identifiers of the timezones supported by the device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString[] getAvailableTimezones();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Zero or more slashes separate different components of a timezone identifier,
+with the most general descriptor first and the most specific one last. For example,
+'Europe/Berlin', 'America/Argentina/Buenos_Aires'.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ The array of time zone identifiers
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var tzids = tizen.time.getAvailableTimezones();
+ console.log("The device supports " + tzids.length + " time zones.");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::getDateFormat">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::getDateFormat"></a><code><b><span class="methodName">getDateFormat</span></b></code>
+</dt>
+<dd>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getDateFormat(optional boolean? shortformat);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Gets the date format according to the system's locale settings.
+            </p>
+            <p>
+These expressions may be used in the returned string:
+            </p>
+            <ul>
+              <li>
+"d" = day number (1 to 31)              </li>
+              <li>
+"D" = day name              </li>
+              <li>
+"m" = month number (1 to 12)              </li>
+              <li>
+"M" = month name              </li>
+              <li>
+"y" = year              </li>
+            </ul>
+            <p>
+Examples of string formats include: "d/m/y", "y-d-m", "D, M d y".
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">shortformat</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The flag indicating whether the user is interested in the short
+date format (23/10/2011) instead of a long date format ("Monday, October 23 2011") <br>By default, this attribute is set to false.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The date format according to the system's locale settings
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TimeUtil::getTimeFormat">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::getTimeFormat"></a><code><b><span class="methodName">getTimeFormat</span></b></code>
+</dt>
+<dd>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getTimeFormat();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Gets the time format according to the system's locale settings.
+            </p>
+            <p>
+These expressions may be used in the returned string:
+            </p>
+            <ul>
+              <li>
+"h" = hours (0 to 23 or 1 to 12 if AM/PM display)              </li>
+              <li>
+"m" = minutes (0 to 59)              </li>
+              <li>
+"s" = seconds (0 to 59)              </li>
+              <li>
+"ap" = AM/PM display              </li>
+            </ul>
+            <p>
+Examples of string formats include: "h:m:s ap", "h:m:s".
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The time format according to the system's locale settings
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TimeUtil::isLeapYear">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::isLeapYear"></a><code><b><span class="methodName">isLeapYear</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the given year is a leap year.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean isLeapYear(long year);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">year</span>: 
+ The year to check
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em>, if the year is a leap year
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input
+parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var current_dt = tizen.time.getCurrentDateTime();
+ var is_leap = tizen.time.isLeapYear(current_dt.getFullYear());
+ if (is_leap) {
+   console.log("This year is a leap year.");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::setDateTimeChangeListener">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::setDateTimeChangeListener"></a><code><b><span class="methodName">setDateTimeChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets a listener to receive notification of changes to the time/date on a device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setDateTimeChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Listener set with <em>setTimezoneChangeListener()</em> method is called when device time was set by the user. <br>            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">changeCallback</span>: 
+ Callback method to be invoked when device time was set <br>It is not invoked when time passes naturally.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var changedCallback = function() {
+     try {
+         var current_dt = tizen.time.getCurrentDateTime();
+         console.log("current date/time is " + current_dt.toLocaleString());
+
+     } catch (err) {
+         console.log (err.name + ": " + err.message);
+     }
+ };
+
+ tizen.time.setDateTimeChangeListener(changedCallback);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::unsetDateTimeChangeListener">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::unsetDateTimeChangeListener"></a><code><b><span class="methodName">unsetDateTimeChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unsets the listener to stop receiving notification of changes to the time/date on a device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unsetDateTimeChangeListener();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var changedCallback = function() {
+     try {
+         var current_dt = tizen.time.getCurrentDateTime();
+         console.log("current date/time is " + current_dt.toLocaleString());
+         tizen.time.unsetDateTimeChangeListener();
+     } catch (err) {
+         console.log (err.name + ": " + err.message);
+     }
+ };
+
+ tizen.time.setDateTimeChangeListener(changedCallback);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::setTimezoneChangeListener">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::setTimezoneChangeListener"></a><code><b><span class="methodName">setTimezoneChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets a listener to receive notification of changes to the time zone on a device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setTimezoneChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Listener set with <em>setTimezoneChangeListener()</em> method is called when device time zone has changed.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">changeCallback</span>: 
+ Callback method that is invoked when the time zone has changed
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var changedCallback = function() {
+     try {
+         // The new time zone can be retrieved through tizen.time.getLocalTimezone()
+         var zone = tizen.time.getLocalTimezone();
+         console.log("current time zone is " + zone);
+     } catch (err) {
+         console.log (err.name + ": " + err.message);
+     }
+ };
+
+ tizen.time.setTimezoneChangeListener(changedCallback);
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeUtil::unsetTimezoneChangeListener">
+<a class="backward-compatibility-anchor" name="::Time::TimeUtil::unsetTimezoneChangeListener"></a><code><b><span class="methodName">unsetTimezoneChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unsets the listener to stop receiving notification of changes to the time zone on a device.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unsetTimezoneChangeListener();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var changedCallback = function() {
+     try {
+         var zone = tizen.time.getLocalTimezone();
+         console.log("current time zone is " + zone);
+         tizen.time.unsetTimezoneChangeListener();
+     } catch (err) {
+         console.log (err.name + ": " + err.message);
+     }
+ };
+
+ tizen.time.setTimezoneChangeListener(changedCallback);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="TZDate">
+<a class="backward-compatibility-anchor" name="::Time::TZDate"></a><h3>2.3. TZDate</h3>
+<div class="brief">
+ The TZDate interface represents information regarding a given
+date/time in a predefined timezone.
+If its date/time exceeds the platform limit, TZDate will be invalid.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(optional Date? datetime, optional DOMString? timezone),
+   Constructor(long year, long month, long day, optional long? hours, optional long? minutes, optional long? seconds, optional long? milliseconds, optional DOMString? timezone)]
+
+  interface TZDate {
+    long getDate();
+
+    void setDate(long date);
+
+    long getDay();
+
+    long getFullYear();
+
+    void setFullYear(long year);
+
+    long getHours();
+
+    void setHours(long hours);
+
+    long getMilliseconds();
+
+    void setMilliseconds(long ms);
+
+    long getMinutes();
+
+    void setMinutes(long minutes);
+
+    long getMonth();
+
+    void setMonth(long month);
+
+    long getSeconds();
+
+    void setSeconds(long seconds);
+
+    long getUTCDate();
+
+    void setUTCDate(long date);
+
+    long getUTCDay();
+
+    long getUTCFullYear();
+
+    void setUTCFullYear(long year);
+
+    long getUTCHours();
+
+    void setUTCHours(long hours);
+
+    long getUTCMilliseconds();
+
+    void setUTCMilliseconds(long ms);
+
+    long getUTCMinutes();
+
+    void setUTCMinutes(long minutes);
+
+    long getUTCMonth();
+
+    void setUTCMonth(long month);
+
+    long getUTCSeconds();
+
+    void setUTCSeconds(long seconds);
+
+    DOMString getTimezone();
+
+    <a href="#TZDate">TZDate</a> toTimezone(DOMString tzid) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> toLocalTimezone() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> toUTC() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TimeDuration">TimeDuration</a> difference(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean equalsTo(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean earlierThan(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean laterThan(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> addDuration(<a href="#TimeDuration">TimeDuration</a> duration) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString toLocaleDateString();
+
+    DOMString toLocaleTimeString();
+
+    DOMString toLocaleString();
+
+    DOMString toDateString();
+
+    DOMString toTimeString();
+
+    DOMString toString();
+
+    DOMString getTimezoneAbbreviation() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long secondsFromUTC() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean isDST() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a>? getPreviousDSTTransition() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a>? getNextDSTTransition() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="constructors">
+<h4 id="TZDate::constructor">Constructors</h4>
+<dl>
+<pre class="webidl prettyprint">TZDate(optional Date? datetime, optional DOMString? timezone);</pre>
+<pre class="webidl prettyprint">TZDate(long year, long month, long day, optional long? hours, optional long? minutes, optional long? seconds, optional long? milliseconds, optional DOMString? timezone);</pre>
+<div class="description">
+              <ul>
+                <li>
+<b>year</b> : The year of TZDate. If it is between 0 and 99, 1900 will be added to it like Javascript Date object.                </li>
+              </ul>
+             </div>
+</dl>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TZDate::getDate">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getDate"></a><code><b><span class="methodName">getDate</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the day of the month (from 1-31).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getDate();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The day of the month.
+              </div>
+</dd>
+<dt class="method" id="TZDate::setDate">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setDate"></a><code><b><span class="methodName">setDate</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the day of the month (from 1-31).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setDate(long date);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the day bigger than the last day of the month or smaller than 1, it will be calculated automatically.
+For example, if TZDate's month is May and parameter is 32, it will be June 1.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">date</span>: 
+ Date to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getDay">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getDay"></a><code><b><span class="methodName">getDay</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the day of the week (from 0-6).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getDay();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The day of the week
+              </div>
+</dd>
+<dt class="method" id="TZDate::getFullYear">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getFullYear"></a><code><b><span class="methodName">getFullYear</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the year.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getFullYear();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Positive values indicate AD(Anno Domini) years. 0 and negative values indicate BC(Before Christ) years.
+For example, 1 = AD 1, 0 = BC 1, -1 = BC 2.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The year
+              </div>
+</dd>
+<dt class="method" id="TZDate::setFullYear">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setFullYear"></a><code><b><span class="methodName">setFullYear</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the year.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setFullYear(long year);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">year</span>: 
+ Year to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getHours">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getHours"></a><code><b><span class="methodName">getHours</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the hour (0-23).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getHours();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The hour
+              </div>
+</dd>
+<dt class="method" id="TZDate::setHours">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setHours"></a><code><b><span class="methodName">setHours</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the hour (0-23).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setHours(long hours);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the hour bigger than 23 or smaller than 0, it will be calculated automatically.
+For example, if <em>hours</em> is 24, it will set the hour to 0 and increment the date by one.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">hours</span>: 
+ Hours to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getMilliseconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getMilliseconds"></a><code><b><span class="methodName">getMilliseconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the milliseconds (from 0-999).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getMilliseconds();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The milliseconds
+              </div>
+</dd>
+<dt class="method" id="TZDate::setMilliseconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setMilliseconds"></a><code><b><span class="methodName">setMilliseconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the milliseconds (from 0-999).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setMilliseconds(long ms);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the millisecond bigger than 999 or smaller than 0, it will be calculated automatically.
+For example, if <em>ms</em> is 1000, it will set the milliseconds to 0 and add a second.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">ms</span>: 
+ Milliseconds to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getMinutes">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getMinutes"></a><code><b><span class="methodName">getMinutes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the minutes (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getMinutes();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The minutes
+              </div>
+</dd>
+<dt class="method" id="TZDate::setMinutes">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setMinutes"></a><code><b><span class="methodName">setMinutes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the minutes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setMinutes(long minutes);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the minute bigger than 59 or smaller than 0, it will be calculated automatically.
+For example, if <em>minutes</em> is 60, it will set the minutes to 0 and add an hour.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">minutes</span>: 
+ Minutes to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getMonth">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getMonth"></a><code><b><span class="methodName">getMonth</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the month (from 0-11).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getMonth();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The month
+              </div>
+</dd>
+<dt class="method" id="TZDate::setMonth">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setMonth"></a><code><b><span class="methodName">setMonth</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the month (from 0-11).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setMonth(long month);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the month bigger than 11 or smaller than 0, it will be calculated automatically.
+For example, if <em>month</em> is 12, it will set the month to 0 and add a year.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">month</span>: 
+ Month to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getSeconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getSeconds"></a><code><b><span class="methodName">getSeconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the seconds (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getSeconds();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The seconds
+              </div>
+</dd>
+<dt class="method" id="TZDate::setSeconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setSeconds"></a><code><b><span class="methodName">setSeconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the seconds (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setSeconds(long seconds);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the second bigger than 59 or smaller than 0, it will be calculated automatically.
+For example, if <em>seconds</em> is 60, it will set the seconds to 0 and add a minute.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">seconds</span>: 
+ Seconds to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCDate">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCDate"></a><code><b><span class="methodName">getUTCDate</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the day of the month, according to universal time (from 1-31).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCDate();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The day of the month, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCDate">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCDate"></a><code><b><span class="methodName">setUTCDate</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the day of the month, according to universal time (from 1-31).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCDate(long date);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the day bigger than the last day of the month or smaller than 1, it will be calculated automatically.
+For example, if TZDate's month is May and date is 32, it will be June 1.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">date</span>: 
+ Date to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCDay">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCDay"></a><code><b><span class="methodName">getUTCDay</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the day of the week, according to universal time (from 0-6).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCDay();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The day of the week, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::getUTCFullYear">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCFullYear"></a><code><b><span class="methodName">getUTCFullYear</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the year, according to universal time.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCFullYear();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Positive values indicate AD(Anno Domini) years. 0 and negative values indicate BC(Before Christ) years.
+For example, 1 = AD 1, 0 = BC 1, -1 = BC 2.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The year, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCFullYear">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCFullYear"></a><code><b><span class="methodName">setUTCFullYear</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the year, according to universal time.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCFullYear(long year);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">year</span>: 
+ Year to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCHours">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCHours"></a><code><b><span class="methodName">getUTCHours</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the hour, according to universal time (0-23).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCHours();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The hour, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCHours">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCHours"></a><code><b><span class="methodName">setUTCHours</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the hour, according to universal time (0-23).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCHours(long hours);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the hour bigger than 23 or smaller than 0, it will be calculated automatically.
+For example, if <em>hours</em> is 24, it will set the hour to 0 and increment the date by one.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">hours</span>: 
+ Hours to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCMilliseconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCMilliseconds"></a><code><b><span class="methodName">getUTCMilliseconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the milliseconds, according to universal time (from 0-999).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCMilliseconds();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The milliseconds, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCMilliseconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCMilliseconds"></a><code><b><span class="methodName">setUTCMilliseconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the milliseconds, according to universal time (from 0-999).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCMilliseconds(long ms);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the millisecond bigger than 999 or smaller than 0, it will be calculated automatically.
+For example, if <em>ms</em> is 1000, it will set the milliseconds to 0 and add a second.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">ms</span>: 
+ Milliseconds to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCMinutes">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCMinutes"></a><code><b><span class="methodName">getUTCMinutes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the minutes, according to universal time (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCMinutes();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The minutes, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCMinutes">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCMinutes"></a><code><b><span class="methodName">setUTCMinutes</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the minutes, according to universal time (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCMinutes(long minutes);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the minute bigger than 59 or smaller than 0, it will be calculated automatically.
+For example, if <em>minutes</em> is 60, it will set the minutes to 0 and add an hour.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">minutes</span>: 
+ Minutes to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCMonth">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCMonth"></a><code><b><span class="methodName">getUTCMonth</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the month, according to universal time (from 0-11).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCMonth();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The month, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCMonth">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCMonth"></a><code><b><span class="methodName">setUTCMonth</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the month, according to universal time (from 0-11).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCMonth(long month);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the month bigger than 11 or smaller than 0, it will be calculated automatically.
+For example, if <em>month</em> is 12, it will set the month to 0 and add a year.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">month</span>: 
+ Month to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getUTCSeconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getUTCSeconds"></a><code><b><span class="methodName">getUTCSeconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the seconds, according to universal time (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long getUTCSeconds();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The seconds, according to universal time
+              </div>
+</dd>
+<dt class="method" id="TZDate::setUTCSeconds">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::setUTCSeconds"></a><code><b><span class="methodName">setUTCSeconds</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the seconds, according to universal time (from 0-59).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUTCSeconds(long seconds);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If it tries to set the second bigger than 59 or smaller than 0, it will be calculated automatically.
+For example, if <em>seconds</em> is 60, it will set the seconds to 0 and add a minute.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">seconds</span>: 
+ Seconds to set
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TZDate::getTimezone">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getTimezone"></a><code><b><span class="methodName">getTimezone</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the timezone identifier.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getTimezone();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Zero or more slashes separate different components, with the most general
+descriptor first and the most specific one last. For example,
+'Europe/Berlin', 'America/Argentina/Buenos_Aires'.
+            </p>
+            <p>
+This attribute uniquely identifies the timezone.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The string timezone identifier <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toTimezone">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toTimezone"></a><code><b><span class="methodName">toTimezone</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a copy of the TZDate converted to a given time zone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a> toTimezone(DOMString tzid);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">tzid</span>: 
+ Timezone identifier to set
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The new TZDate in given Timezone
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the provided TZID
+is not recognized as a valid timezone identifier.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::toLocalTimezone">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toLocalTimezone"></a><code><b><span class="methodName">toLocalTimezone</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a copy of the TZDate converted to the local time zone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a> toLocalTimezone();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The new TZDate in local Timezone
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::toUTC">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toUTC"></a><code><b><span class="methodName">toUTC</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a copy of the TZDate converted to Coordinated Universal Time (UTC).
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a> toUTC();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The Date/Time in UTC
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::difference">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::difference"></a><code><b><span class="methodName">difference</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Calculates the difference with another TZDate object.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TimeDuration">TimeDuration</a> difference(<a href="#TZDate">TZDate</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Calculates the difference in time between <em>this</em> and the other object.
+This comparison method takes timezones into consideration for the comparison.
+            </p>
+            <p>
+The TimeDuration that is returned is effectively <em>this</em> - other.
+The return value is a duration in milliseconds both TZDate objects have a time component, in days, otherwise.
+The result value will be:
+            </p>
+            <ul>
+              <li>
+Negative, if other is in the future              </li>
+              <li>
+0 if the two date/times are equal              </li>
+              <li>
+Positive, if other is in the past              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ The other Date/Time to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TimeDuration The duration in milliseconds between the two date/time objects
+(or in days for comparison between dates with no time component)
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::equalsTo">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::equalsTo"></a><code><b><span class="methodName">equalsTo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TZDate is equal to another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean equalsTo(<a href="#TZDate">TZDate</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the timezones into consideration and will return <em>true</em>if the two TZDate objects represent the same instant in different timezones.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ Other Date/Time to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em> if the 2 date/times are the same
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::earlierThan">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::earlierThan"></a><code><b><span class="methodName">earlierThan</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TZDate is earlier than another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean earlierThan(<a href="#TZDate">TZDate</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the timezones into consideration.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ The other Date/Time to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em>, if the Date/Time is earlier than the one passed in argument
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::laterThan">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::laterThan"></a><code><b><span class="methodName">laterThan</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TZDate is later than another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean laterThan(<a href="#TZDate">TZDate</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the timezones into consideration.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ The other Date/Time to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em>, if the Date/Time is later than the one passed in argument
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::addDuration">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::addDuration"></a><code><b><span class="methodName">addDuration</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a new date by adding a duration to the current TZDate object.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a> addDuration(<a href="#TimeDuration">TimeDuration</a> duration);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+If the length of duration is negative, the new date/time will be
+earlier than it used to.
+            </p>
+            <p>
+Note that calling this method does not alter the current object.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">duration</span>: 
+ TimeDuration to add
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The new TZDate by adding a duration
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var now = tizen.time.getCurrentDateTime();
+ var in_one_week = now.addDuration(new tizen.TimeDuration(7, "DAYS"));
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TZDate::toLocaleDateString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toLocaleDateString"></a><code><b><span class="methodName">toLocaleDateString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the date portion of a TZDate object as a string, using locale conventions.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toLocaleDateString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The date portion of the TZDate object as a string, using locale conventions <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toLocaleTimeString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toLocaleTimeString"></a><code><b><span class="methodName">toLocaleTimeString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the time portion of a TZDate object as a string, using locale conventions.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toLocaleTimeString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The time portion of the TZDate object as a string, using locale conventions <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toLocaleString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toLocaleString"></a><code><b><span class="methodName">toLocaleString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Converts a TZDate object to a string, using locale conventions.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toLocaleString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The string representation of the TZDate object, using locale conventions <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toDateString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toDateString"></a><code><b><span class="methodName">toDateString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the date portion of a TZDate object as a string.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toDateString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The date portion of the TZDate object as a string <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toTimeString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toTimeString"></a><code><b><span class="methodName">toTimeString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the time portion of a TZDate object as a string.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toTimeString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The time portion of the TZDate object as a string <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="method" id="TZDate::toString">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::toString"></a><code><b><span class="methodName">toString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Converts a TZDate object to a string.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">DOMString toString();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The string representation of the TZDate object <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+</dd>
+<dt class="deprecated method" id="TZDate::getTimezoneAbbreviation">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getTimezoneAbbreviation"></a><code><b><span class="methodName">getTimezoneAbbreviation</span></b></code>
+</dt>
+<dd class="deprecated">
+<div class="brief">
+ Determines the time zone abbreviation to be used at a particular date in the time zone.
+            </div>
+<p class="deprecated"><b>Deprecated.</b>
+ Deprecated since 2.1.
+            </p>
+<div class="synopsis"><pre class="signature prettyprint">DOMString getTimezoneAbbreviation();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+For example, in Toronto this is currently "EST" during the winter months and "EDT" during the
+summer months when daylight savings time is in effect.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ DOMString The abbreviation of the time zone (such as "EST") <br>If TZDate is invalid, it will return 'Invalid Date'.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::secondsFromUTC">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::secondsFromUTC"></a><code><b><span class="methodName">secondsFromUTC</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the number of seconds from Coordinated Universal Time (UTC) offset for the timezone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long secondsFromUTC();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Returns the offset (in seconds) from UTC of the timezone, accounting for daylight
+savings if it is in the timezone. For example, if time zone is GMT+8, it will return -32,400.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The offset from UTC in seconds
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var offset = tizen.time.getCurrentDateTime().secondsFromUTC();
+ var myDate = new Date();
+ var exp_offset = myDate.getTimezoneOffset()*60;
+ //offset is equals to exp_offset.
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TZDate::isDST">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::isDST"></a><code><b><span class="methodName">isDST</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether Daylight Saving Time(DST) is active for this TZDate.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean isDST();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Indicates if daylight savings are in effect for the time zone and instant
+identified by the TZDate object.
+            </p>
+           </div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean The flag indicating whether the daylight saving are in effect
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::getPreviousDSTTransition">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getPreviousDSTTransition"></a><code><b><span class="methodName">getPreviousDSTTransition</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the date of the previous daylight saving time transition for the timezone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a>? getPreviousDSTTransition();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The date of the previous daylight saving transition (before the instant identified by the TZDate)
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TZDate::getNextDSTTransition">
+<a class="backward-compatibility-anchor" name="::Time::TZDate::getNextDSTTransition"></a><code><b><span class="methodName">getNextDSTTransition</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the date of the next daylight saving time transition for the timezone.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TZDate">TZDate</a>? getNextDSTTransition();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ TZDate The date of the next daylight saving transition (after the instant identified by the TZDate)
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li></ul>
+</li></ul>
+        </div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="TimeDuration">
+<a class="backward-compatibility-anchor" name="::Time::TimeDuration"></a><h3>2.4. TimeDuration</h3>
+<div class="brief">
+ The TimeDuration interface that contains the length and its associated time unit.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(long long length, optional <a href="#TimeDurationUnit">TimeDurationUnit</a>? unit)]
+  interface TimeDuration
+  {
+    attribute long long length;
+
+    attribute <a href="#TimeDurationUnit">TimeDurationUnit</a> unit;
+
+    <a href="#TimeDuration">TimeDuration</a> difference(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean equalsTo(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean lessThan(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean greaterThan(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var now = tizen.time.getCurrentDateTime();
+ var tomorrow = now.addDuration(new tizen.TimeDuration(1, "DAYS")); // Becomes tomorrow, same time.
+ </pre>
+</div>
+<div class="constructors">
+<h4 id="TimeDuration::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">TimeDuration(long long length, optional <a href="#TimeDurationUnit">TimeDurationUnit</a>? unit);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="TimeDuration::length">
+<span class="attrName"><span class="type">long long </span><span class="name">length</span></span><div class="brief">
+ The duration length.
+            </div>
+<div class="description">
+            <p>
+The unit of the duration length (milliseconds, seconds, minutes, hours, or days)
+is determined by the duration unit attribute.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="TimeDuration::unit">
+<span class="attrName"><span class="type">TimeDurationUnit </span><span class="name">unit</span></span><div class="brief">
+ The duration unit (milliseconds, seconds, minutes, hours, or days).
+            </div>
+<div class="description">
+            <p>
+The default value is "MSECS" (milliseconds unit).
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TimeDuration::difference">
+<a class="backward-compatibility-anchor" name="::Time::TimeDuration::difference"></a><code><b><span class="methodName">difference</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Calculates the difference between two TimeDuration objects.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#TimeDuration">TimeDuration</a> difference(<a href="#TimeDuration">TimeDuration</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+Calculates the difference in time between <em>this</em> and <em>other</em>.
+The TimeDuration that is returned is effectively <em>first</em> - <em>other</em> (that is: positive if the first parameter is larger).
+            </p>
+            <p>
+The returned TimeDuration is the biggest possible unit without losing the precision.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ Other TimeDuration object to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ The new TimeDuration object corresponding to the result of <em>this</em> - <em>other</em>.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Assume that event1 and event2 are tizen.CalendarEvent objects.
+ // Computes event1.duration - event2.duration
+ var diff = event1.duration.difference(event2.duration);
+ if (diff.length &gt; 0)
+   console.log("The event1 is longer than event2.");
+ else if (diff.length == 0)
+   console.log("The duration of two events is same.");
+ else
+   console.log("The event1 is shorter than the event2.");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeDuration::equalsTo">
+<a class="backward-compatibility-anchor" name="::Time::TimeDuration::equalsTo"></a><code><b><span class="methodName">equalsTo</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TimeDuration is equal to another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean equalsTo(<a href="#TimeDuration">TimeDuration</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the units into consideration and will return true
+if the two TimeDuration objects represent the same duration in different units.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ Other TimeDuration object to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em> if the two TimeDuration object represent the same duration
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var d1 = new tizen.TimeDuration(60, "MINS"); // 60 minutes
+ var d2 = new tizen.TimeDuration(1, "HOURS"); // 1 hour
+ var ret = d1.equalsTo(d2); // Returns true
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeDuration::lessThan">
+<a class="backward-compatibility-anchor" name="::Time::TimeDuration::lessThan"></a><code><b><span class="methodName">lessThan</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TimeDuration is lower than another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean lessThan(<a href="#TimeDuration">TimeDuration</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the units into consideration when doing the comparison.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ Other TimeDuration object to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em> if the TimeDuration is less than <em>other</em>              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var d1 = new tizen.TimeDuration(1, "HOURS"); // 1 hour
+ var d2 = new tizen.TimeDuration(120, "MINS"); // 120 minutes
+ var ret = d1.lessThan(d2); // Returns true
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TimeDuration::greaterThan">
+<a class="backward-compatibility-anchor" name="::Time::TimeDuration::greaterThan"></a><code><b><span class="methodName">greaterThan</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether the TimeDuration is greater than another.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean greaterThan(<a href="#TimeDuration">TimeDuration</a> other);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="description">
+            <p>
+This method takes the units into consideration when doing the comparison.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">other</span>: 
+ Other TimeDuration object to compare to
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean <em>true</em> if the TimeDuration is greater than <em>other</em>              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter
+is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if the call failed due to an unknown error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var d1 = new tizen.TimeDuration(120, "MINS"); // 120 minutes
+ var d2 = new tizen.TimeDuration(1, "HOURS"); // 1 hour
+ var ret = d1.greaterThan(d2); // Returns true
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Time {
+
+  enum TimeDurationUnit { "MSECS", "SECS", "MINS", "HOURS", "DAYS" };
+
+  [NoInterfaceObject] interface TimeManagerObject {
+    readonly attribute <a href="#TimeUtil">TimeUtil</a> time;
+  };
+  <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TimeManagerObject">TimeManagerObject</a>;
+
+  [NoInterfaceObject] interface TimeUtil {
+    <a href="#TZDate">TZDate</a> getCurrentDateTime() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getLocalTimezone() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString[] getAvailableTimezones() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getDateFormat(optional boolean? shortformat) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString getTimeFormat() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean isLeapYear(long year) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setDateTimeChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetDateTimeChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void setTimezoneChangeListener(<a href="tizen.html#SuccessCallback">SuccessCallback</a> changeCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    void unsetTimezoneChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+  };
+
+  [Constructor(optional Date? datetime, optional DOMString? timezone),
+   Constructor(long year, long month, long day, optional long? hours, optional long? minutes, optional long? seconds, optional long? milliseconds, optional DOMString? timezone)]
+
+  interface TZDate {
+    long getDate();
+
+    void setDate(long date);
+
+    long getDay();
+
+    long getFullYear();
+
+    void setFullYear(long year);
+
+    long getHours();
+
+    void setHours(long hours);
+
+    long getMilliseconds();
+
+    void setMilliseconds(long ms);
+
+    long getMinutes();
+
+    void setMinutes(long minutes);
+
+    long getMonth();
+
+    void setMonth(long month);
+
+    long getSeconds();
+
+    void setSeconds(long seconds);
+
+    long getUTCDate();
+
+    void setUTCDate(long date);
+
+    long getUTCDay();
+
+    long getUTCFullYear();
+
+    void setUTCFullYear(long year);
+
+    long getUTCHours();
+
+    void setUTCHours(long hours);
+
+    long getUTCMilliseconds();
+
+    void setUTCMilliseconds(long ms);
+
+    long getUTCMinutes();
+
+    void setUTCMinutes(long minutes);
+
+    long getUTCMonth();
+
+    void setUTCMonth(long month);
+
+    long getUTCSeconds();
+
+    void setUTCSeconds(long seconds);
+
+    DOMString getTimezone();
+
+    <a href="#TZDate">TZDate</a> toTimezone(DOMString tzid) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> toLocalTimezone() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> toUTC() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TimeDuration">TimeDuration</a> difference(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean equalsTo(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean earlierThan(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean laterThan(<a href="#TZDate">TZDate</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a> addDuration(<a href="#TimeDuration">TimeDuration</a> duration) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    DOMString toLocaleDateString();
+
+    DOMString toLocaleTimeString();
+
+    DOMString toLocaleString();
+
+    DOMString toDateString();
+
+    DOMString toTimeString();
+
+    DOMString toString();
+
+    DOMString getTimezoneAbbreviation() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    long secondsFromUTC() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean isDST() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a>? getPreviousDSTTransition() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    <a href="#TZDate">TZDate</a>? getNextDSTTransition() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+
+  [Constructor(long long length, optional <a href="#TimeDurationUnit">TimeDurationUnit</a>? unit)]
+  interface TimeDuration
+  {
+    attribute long long length;
+
+    attribute <a href="#TimeDurationUnit">TimeDurationUnit</a> unit;
+
+    <a href="#TimeDuration">TimeDuration</a> difference(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean equalsTo(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean lessThan(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    boolean greaterThan(<a href="#TimeDuration">TimeDuration</a> other) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.css b/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.css
new file mode 100644 (file)
index 0000000..f5187b3
--- /dev/null
@@ -0,0 +1,946 @@
+.attribute
+{
+    padding-bottom:15px;
+}
+pre
+{
+    /*text-align: left;            -webkit-border-radius: 8px;     -khtml-border-radius: 8px;     -moz-border-radius: 8px;     border-radius: 8px;     border: 1px solid rgba(255, 255, 255, 0.2);     display:block;     color:#2c3123;     margin:15px 0px 15px -8px;     padding:12px 20px 12px 35px;     font-size: 14px;     /*overflow:hidden;*/ /*word-wrap:break-word;*/ /*white-space: normal;*/
+    background: white;
+    color: #1C1C1C;
+    margin-right: 20px;
+    margin-left: 20px;
+    font-size: 10pt;
+    font-weight: normal;
+    font-family: Arial, Helvetica, sans-serif;
+}
+pre code
+{
+    font-size: 1em;
+    margin: 0px;
+    padding: 2px;
+    border: 1px solid #888;
+}
+
+pre webidl
+{
+    font-size: 1em;
+    margin: 0px;
+    padding: 2px;
+    border: 1px solid #888;
+}
+
+.prettyprint
+{
+}
+
+
+.signature
+{
+    background-color: #FCE6B9;
+    word-wrap:break-word;
+}
+
+.examplecode
+{
+    background-color: #D5F1FD;
+    word-wrap:break-word;
+}
+
+.webidl
+{
+    background-color: #D9F0C4;
+    word-wrap:break-word;
+}
+
+.prettyprint b
+{
+    font-weight: normal;
+    color: #c61800; /*letter-spacing: -1px;*/
+}
+
+
+pre select
+{
+    border: 1px solid #c61800;
+}
+
+input
+{
+    font-size: 16px;
+    margin-right: 10px;
+    font-family: Helvetica;
+    padding: 3px;
+}
+input[type="range"]
+{
+    width: 100%;
+}
+
+button
+{
+    margin: 20px 10px 0 0;
+    font-family: Verdana;
+}
+
+button.large
+{
+    font-size: 32px;
+}
+
+pre b
+{
+    font-weight: normal;
+    color: #c61800; /*letter-spacing: -1px;*/
+}
+pre em
+{
+    font-weight: normal;
+    font-style: normal;
+    color: #18a600;
+}
+pre input[type="range"]
+{
+    height: 6px;
+    cursor: pointer;
+    width: auto;
+}
+
+
+
+
+.product, .product-ua, .product-cc
+{
+}
+
+dfn.external
+{
+    font-weight: normal;
+    font-style: italic;
+}
+
+pre.idl
+{
+    border: solid thin;
+    background: #eee;
+    color: #000;
+    padding: 0.5em;
+}
+
+pre.idl :link, pre.idl :visited
+{
+    color: inherit;
+    background: transparent;
+}
+
+dfn
+{
+    font-style: normal;
+    font-weight: bolder;
+}
+em.ct, em.ct-samp
+{
+    text-transform: uppercase;
+    font-style: normal;
+    font-weight: normal;
+}
+
+.issue
+{
+    padding: 1em;
+    border: 1px solid #f00;
+    background: #ffc;
+}
+
+.issue::before
+{
+    content: "Issue";
+    display: block;
+    width: 150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight: bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding: 3px 1em;
+}
+
+.comment
+{
+    padding: 1em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.comment::before
+{
+    content: "Comment";
+    display: block;
+    width: 150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight: bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding: 3px 1em;
+}
+
+.ws3
+{
+    padding: 1em;
+    border: 1px solid #f00;
+    background: lightblue;
+}
+
+.ws3::before
+{
+    content: "For WS3 Review";
+    display: block;
+    width: 150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight: bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding: 3px 1em;
+}
+
+.ws4
+{
+    padding: 1em;
+    border: 1px solid #f00;
+    background: lightblue;
+}
+
+.ws4::before
+{
+    content: "Under discussion";
+    display: block;
+    width: 150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight: bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding: 3px 1em;
+}
+
+.note
+{
+    margin-left: 2em;
+    border: 2px solid #CFF6D9;
+    padding: .5em;
+    padding-top: 0px;
+    padding-bottom: 1em;
+    color: #444;
+    background-color: #E2FFF0;
+    font-size: 0.8em;
+}
+
+dd > dl
+{
+    margin: 0px;
+    padding: 0px;
+    margin-bottom: 15px;
+}
+
+code
+{
+    font-size: 1.1em;
+    text-decoration: none;
+    color: #002108;
+}
+
+
+.dir_listing li
+{
+    list-style-type: none;
+    font-family: Tahoma, Arial, Helvetica, sans-serif;
+}
+
+span span
+{
+    /*background-color: yellow;*/
+}
+
+li.folder
+{
+    list-style-image: url(images/expanded_folder.png);
+}
+
+.authorguide
+{
+    border: 1px solid #67BBB5;
+    background: #E8EBFC;
+    padding: 1em;
+    font-size: .9em;
+    color: #003;
+}
+
+.authorguide strong
+{
+    padding: .2em;
+    color: #003;
+    border: none;
+    position: relative;
+    display: block;
+    width: 200px;
+    left: -1.5em;
+    top: -1.5em;
+    background: #C6D8E6;
+    text-align: center;
+}
+
+span.notetitle
+{
+    padding: .2em;
+    color: #066;
+    border: none;
+    position: relative;
+    display: block;
+    width: 40px;
+    left: -1.5em;
+    top: -.7em;
+    background: #F2FFF1;
+    padding-left: .2em;
+    text-align: center;
+}
+
+var
+{
+    font-family: "Lucida Console" , Monaco, monospace;
+}
+
+li.folder li
+{
+    list-style-image: none;
+}
+
+.dir_listing .comment
+{
+    border: none;
+    font-family: "Courier New" , Courier, monospace;
+    color: #669933;
+}
+
+.dir_listing img
+{
+    vertical-align: middle;
+}
+
+.redNote
+{
+    color: red;
+}
+
+dl.procedure dt
+{
+    font-weight: normal;
+}
+
+.editorialNote
+{
+    padding: 5px;
+    background-color: #F3B9B7;
+    border: 3px dashed #FFEEB8;
+    color: #444;
+    font-size: 0.8em;
+}
+
+li > ol
+{
+    list-style-type: upper-alpha;
+}
+
+p[id]:after
+{
+    font-size: .8em;
+}
+
+table.wac
+{
+    border-width: 1px;
+    border-spacing: 2px;
+    border-style: outset;
+    border-color: #808080;
+    border-collapse: collapse;
+    background-color: #ffffff;
+}
+
+table.wac th
+{
+    border-width: 1px;
+    padding: 1px;
+    border-style: inset;
+    border-color: #808080;
+    background-color: #ffffff;
+}
+
+table.wac td
+{
+    vertical-align: top;
+    border-width: 1px;
+    padding: 1px;
+    border-style: inset;
+    border-color: #808080;
+    background-color: #ffffff;
+}
+
+.wacreqid
+{
+    font-weight: bold;
+}
+
+.wacreqid_ext
+{
+    font-weight: bold;
+}
+
+wacreqtext
+{
+    font-style: normal;
+}
+
+/* Table styles */
+table
+{
+    border-spacing: 0;
+    border-collapse: collapse;
+    border-bottom: 3px solid #005a9c;
+    margin-bottom: 1em;
+}
+
+th
+{
+    border-top: 2px solid #719cc7;
+    border-right: 1px solid #c6d9f1;
+    border-left: 1px solid #c6d9f1;
+    background-color: #3D9EC9;
+    padding: 4px;
+    color: White;
+    font-size: 9pt;
+    font-weight: bold;
+}
+
+th[scope="row"]
+{
+    background: inherit;
+    color: inherit;
+    border-top: 1px solid #ddd;
+}
+
+td
+{
+    padding: 3px 10px;
+    border-top: 1px solid #ddd;
+    border-right: 1px solid #ddd;
+}
+/*
+th:last-of-type, td:last-of-type
+{
+    border-right: none;
+}
+
+tr:nth-child(even)
+{
+    background: #f0f6ff;
+}
+*/
+.attrName
+{
+    font-size: 10pt;
+    font-weight: bold;
+}
+
+.methodName
+{
+    font-size: 13pt;
+    font-weight: bold;
+}
+
+body
+{
+    background: white;
+    color: #1C1C1C;
+    margin-right: 20px;
+    margin-left: 20px;
+    font-size: 10pt;
+    font-weight: normal;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+:link
+{
+    text-decoration: underline;
+    color: #719CC7;
+    font-weight: bold;
+}
+:visited
+{
+    text-decoration: underline;
+    color: #719CC7;
+    font-weight: bold;
+}
+a:active
+{
+    color: #C00;
+    background: transparent;
+}
+
+a:link img, a:visited img
+{
+    border-style: none;
+}
+/* no border on img links */
+
+a img
+{
+    color: white;
+}
+/* trick to hide the border in Netscape 4 */
+@media all
+{
+    /* hide the next rule from Netscape 4 */
+    a img
+    {
+        color: inherit;
+    }
+    /* undo the color change above */
+}
+
+th, td
+{
+    /* ns 4 */ /*font-family: sans-serif;*/
+    font-size: 10pt;
+}
+
+h1, h2, h3, h4, h5, h6
+{
+    text-align: left;
+    font-family: Arial, Verdana, Helvetica, sans-serif;
+}
+/* background should be transparent, but WebTV has a bug */
+h1, h2, h3, h4
+{
+    color: #005A9C;
+    background: white;
+    padding-top: 0.2em;
+}
+h1
+{
+    font-size: 24pt;
+    color: #0E437D;
+}
+h2
+{
+    font-size: 18pt;
+    color: #0E437D;
+}
+h3
+{
+    font-size: 14pt;
+    color: #1C1C1C;
+}
+h4
+{
+    font-size: 12pt;
+    color: #1C1C1C;
+    font-weight: bold;
+}
+h5
+{
+    font-size: 10pt;
+    color: #1C1C1C;
+    font-style: italic;
+    font-weight: bold;
+}
+h6
+{
+    font-size: 10pt;
+    color: #1C1C1C;
+    font-weight: bold;
+    font-variant: small-caps;
+}
+
+
+.hide
+{
+    display: none;
+}
+
+div.head
+{
+    margin-bottom: 1em;
+}
+div.head h1
+{
+    margin-top: 2em;
+    clear: both;
+}
+div.head table
+{
+    margin-left: 2em;
+    margin-top: 2em;
+}
+
+p.copyright
+{
+    font-size: small;
+}
+p.copyright small
+{
+    font-size: small;
+}
+
+
+a[href] img:hover
+{
+    background: white;
+}
+
+@media screen
+{
+    /* hide from IE3 */
+    a[href]:hover
+    {
+        background: #ffa;
+    }
+}
+
+pre
+{
+    margin-left: 2em;
+}
+/*
+    p {
+      margin-top: 0.6em;
+      margin-bottom: 0.6em;
+    }
+    */
+
+/* opera 3.50 */
+dt, dd
+{
+    margin-top: 0;
+    margin-bottom: 15px;
+}
+pre, code
+{
+    font-family: monospace;
+}
+/* navigator 4 requires this */
+
+ul.toc, ol.toc
+{
+    list-style: disc; /* Mac NS has problem with 'none' */
+    list-style: none;
+}
+
+ul.xmlconfig
+{
+    display: inline-block;
+    padding-right: 3%;
+    border-style: dotted;
+    border-width: 1px;
+}
+
+@media aural
+{
+    h1, h2, h3
+    {
+        stress: 20;
+        richness: 90;
+    }
+    .hide
+    {
+        speak: none;
+    }
+    p.copyright
+    {
+        volume: x-soft;
+        speech-rate: x-fast;
+    }
+    dt
+    {
+        pause-before: 20%;
+    }
+    pre
+    {
+        speak-punctuation: code;
+    }
+}
+
+.toc
+{
+    list-style-type: none;
+}
+
+div.exampleInner pre
+{
+    margin-left: 1em;
+    margin-top: 0em;
+    margin-bottom: 0em;
+}
+div.exampleOuter
+{
+    border: 4px double gray;
+    margin: 0em;
+    padding: 0em;
+}
+div.exampleInner
+{
+    background-color: #d5dee3;
+    border-top-width: 4px;
+    border-top-style: double;
+    border-top-color: #d3d3d3;
+    border-bottom-width: 4px;
+    border-bottom-style: double;
+    border-bottom-color: #d3d3d3;
+    padding: 4px;
+    margin: 0em;
+}
+div.exampleWrapper
+{
+    margin: 4px;
+}
+div.exampleHeader
+{
+    font-weight: bold;
+    margin: 4px;
+}
+
+
+
+.def-api-feature dt, dt .def-device-cap, dt.const code
+{
+    font: bold 100% sans-serif;
+}
+dt.attribute code, dt.method code
+{
+    font: italic 100% sans-serif;
+}
+
+.def-device-caps dd
+{
+    margin-bottom: 2em;
+}
+
+dt.method
+{
+    margin-top: 2em;
+}
+
+.summary td
+{
+    text-align: left;
+    background-color: white;
+    color: inherit;
+    font-family: monospace;
+    white-space: pre;
+    padding: .3em 1em .3em 1em;
+}
+/* Pretty printing styles. Used with prettify.js. */
+
+.str
+{
+    color: #080;
+}
+.kwd
+{
+    color: #008;
+}
+.com
+{
+    color: #800;
+}
+.typ
+{
+    color: #606;
+}
+.lit
+{
+    color: #066;
+}
+.pun
+{
+    color: #660;
+}
+.pln
+{
+    color: #000;
+}
+.tag
+{
+    color: #008;
+}
+.atn
+{
+    color: #606;
+}
+.atv
+{
+    color: #080;
+}
+.dec
+{
+    color: #606;
+}
+.readonly
+{
+    color: red;
+}
+.type
+{
+    color: #F0ACF0;
+}
+.optional
+{
+    font-style: italic;
+}
+
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums
+{
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+/* IE indents via margin-left */
+li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8
+{
+    list-style-type: none;
+}
+/* Alternate shading for lines */
+li.L1, li.L3, li.L5, li.L7, li.L9
+{
+    background: #eee;
+}
+/*@media print {*/
+.str
+{
+    color: #060;
+}
+.kwd
+{
+    color: #006;
+    font-weight: bold;
+}
+.com
+{
+    color: #600;
+    font-style: italic;
+}
+.typ
+{
+    color: #404;
+    font-weight: bold;
+}
+.lit
+{
+    color: #044;
+}
+.pun
+{
+    color: #440;
+}
+.pln
+{
+    color: #000;
+}
+.tag
+{
+    color: #006;
+    font-weight: bold;
+}
+.atn
+{
+    color: #404;
+}
+.atv
+{
+    color: #060;
+}
+/*}*/
+
+/* div.status Styles */
+a[href].status:link{
+    color: #ffffff;
+    text-decoration: none;
+}
+
+a[href].status:visited{
+    color: #ffffff;
+}
+
+a[href].status:hover{
+    color: #3D9EC9;
+}
+
+/* Footer Styles */
+#footer
+{
+    background-color: #DDDDDD;
+    margin-top: 20px;
+    font-size: .8em;
+    padding: 20px;
+    color: #666;
+}
+
+#footer .sponsor
+{
+    padding: 0 10px 10px 10px;
+    margin-top: 10px;
+    text-align: right;
+    float: right;
+}
+
+#footer .trademark
+{
+    padding: 0 10px 10px 10px;
+    margin-top: 10px;
+    text-align: right;
+    clear: both;
+}
+
+
+#footer ul
+{
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+#footer li
+{
+    margin-bottom: 2px;
+}
+.version, span.param, .except, .example, .return, .privilege, .remark, .privilegelevel
+{
+    font-weight: bold;
+}
+span.name
+{
+    font-weight: bold;
+}
+
+li.feature
+{
+    margin-left:30px;
+    font-weight: bold;
+}
+p.deprecated {
+    color: red;
+    font-style: italic;
+}
+.warning {
+    color: red;
+}
+div.deprecated h3,
+li.deprecated > span.name,
+dt.deprecated > code > b > span.methodName,
+li.deprecated > span.attrName {
+    color: #aaa;
+}
+table.informaltable .deprecated,
+table.informaltable .deprecated a {
+    color: #aaa;
+}
+ul.toc li.deprecated,
+ul.toc li.deprecated a {
+    color: #aaa;
+}
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.html
new file mode 100644 (file)
index 0000000..ce0facc
--- /dev/null
@@ -0,0 +1,1389 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>Tizen API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::Tizen">
+<div class="title"><h1>Tizen API</h1></div>
+<div class="brief">
+ This API provides common Tizen functionality.
+        </div>
+<div class="description">
+        <p>
+The API provides the basic definitions that are used in the Tizen Web Device API.
+These include generic callbacks that are invoked when the operations succeed or fail,
+WebAPIError and WebAPIException that give information of the platform's error and
+filter interfaces that are used to make query statements for searching.
+        </p>
+        <p>
+Additionally, this API specifies the location in the ECMAScript hierarchy in which
+the Tizen Web Device API is instantiated (<em>window.tizen</em>).
+        </p>
+        <p>
+For more information on the Tizen features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/tizen_guide/tizen.htm">Tizen Guide</a>.  
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#FilterMatchFlag">FilterMatchFlag</a>
+</li>
+<li>
+                    1.2. <a href="#SortModeOrder">SortModeOrder</a>
+</li>
+<li>
+                    1.3. <a href="#CompositeFilterType">CompositeFilterType</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TizenObject">TizenObject</a>
+</li>
+<li>2.2. <a href="#Tizen">Tizen</a>
+</li>
+<li>2.3. <a href="#AbstractFilter">AbstractFilter</a>
+</li>
+<li>2.4. <a href="#AttributeFilter">AttributeFilter</a>
+</li>
+<li>2.5. <a href="#AttributeRangeFilter">AttributeRangeFilter</a>
+</li>
+<li>2.6. <a href="#CompositeFilter">CompositeFilter</a>
+</li>
+<li>2.7. <a href="#SortMode">SortMode</a>
+</li>
+<li>2.8. <a href="#SimpleCoordinates">SimpleCoordinates</a>
+</li>
+<li>2.9. <a href="#WebAPIException">WebAPIException</a>
+</li>
+<li>2.10. <a href="#WebAPIError">WebAPIError</a>
+</li>
+<li>2.11. <a href="#SuccessCallback">SuccessCallback</a>
+</li>
+<li>2.12. <a href="#ErrorCallback">ErrorCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TizenObject">TizenObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#Tizen">Tizen</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AbstractFilter">AbstractFilter</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AttributeFilter">AttributeFilter</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AttributeRangeFilter">AttributeRangeFilter</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#CompositeFilter">CompositeFilter</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SortMode">SortMode</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SimpleCoordinates">SimpleCoordinates</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#WebAPIException">WebAPIException</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#WebAPIError">WebAPIError</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#SuccessCallback">SuccessCallback</a></td>
+<td><div>void <a href="#SuccessCallback::onsuccess">onsuccess</a> ()</div></td>
+</tr>
+<tr>
+<td><a href="#ErrorCallback">ErrorCallback</a></td>
+<td><div>void <a href="#ErrorCallback::onerror">onerror</a> (<a href="#WebAPIError">WebAPIError</a> error)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="FilterMatchFlag">
+<a class="backward-compatibility-anchor" name="::Tizen::FilterMatchFlag"></a><h3>1.1. FilterMatchFlag</h3>
+<div class="brief">
+ Filter match flags.
+          </div>
+<pre class="webidl prettyprint">  enum FilterMatchFlag { "EXACTLY", "FULLSTRING", "CONTAINS", "STARTSWITH", "ENDSWITH", "EXISTS" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+These values are supported:
+          </p>
+          <ul>
+            <li>
+EXACTLY - Indicates that an attribute value should match exactly with the specified default value.
+For strings, this type of comparison is case-sensitive.            </li>
+            <li>
+FULLSTRING - Indicates String-based comparison and that the attribute value should match the whole string (case insensitive).            </li>
+            <li>
+CONTAINS - Indicates that an attribute value should contain the specified string. This type of comparison works only on strings and is case insensitive.            </li>
+            <li>
+STARTSWITH - Indicates that an attribute value should start with the specified string.
+This type of comparison works only on strings and is case insensitive.            </li>
+            <li>
+ENDSWITH - Indicates that an attribute value should end with the specified string. This type of comparison works only on strings and is case insensitive.            </li>
+            <li>
+EXISTS - Indicates that a filter comparison should match if the specified attribute exists.            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SortModeOrder">
+<a class="backward-compatibility-anchor" name="::Tizen::SortModeOrder"></a><h3>1.2. SortModeOrder</h3>
+<div class="brief">
+ An enumerator that indicates the sorting order.
+          </div>
+<pre class="webidl prettyprint">  enum SortModeOrder { "ASC", "DESC" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The following values are supported:
+          </p>
+          <ul>
+            <li>
+ASC - Indicates that the sorting order is ascending            </li>
+            <li>
+DESC - Indicates that the sorting order is descending            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CompositeFilterType">
+<a class="backward-compatibility-anchor" name="::Tizen::CompositeFilterType"></a><h3>1.3. CompositeFilterType</h3>
+<div class="brief">
+ An enumerator that indicates the type of composite filter.
+          </div>
+<pre class="webidl prettyprint">  enum CompositeFilterType { "UNION", "INTERSECTION" };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The following values are supported:
+          </p>
+          <ul>
+            <li>
+UNION - Indicates that the composite is a union of filters ("OR" operator)            </li>
+            <li>
+INTERSECTION - Indicates that the composite is an intersection of filters ("AND" operator)            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TizenObject">
+<a class="backward-compatibility-anchor" name="::Tizen::TizenObject"></a><h3>2.1. TizenObject</h3>
+<div class="brief">
+ Defines the tizen interface as a part of the window global object.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface TizenObject {
+    readonly attribute <a href="#Tizen">Tizen</a> tizen;
+  };</pre>
+<pre class="webidl prettyprint">  Window implements <a href="#TizenObject">TizenObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The <em>Tizen</em> interface is always available within the <em>Window </em>object in the ECMAScript hierarchy.
+          </p>
+         </div>
+</div>
+<div class="interface" id="Tizen">
+<a class="backward-compatibility-anchor" name="::Tizen::Tizen"></a><h3>2.2. Tizen</h3>
+<div class="brief">
+ The root of the Tizen Web Device API.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface Tizen {
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+This is the Tizen root interface.
+It is a property of the ECMAScript global object, as specified by the <em>TizenObject</em> interface.
+          </p>
+         </div>
+</div>
+<div class="interface" id="AbstractFilter">
+<a class="backward-compatibility-anchor" name="::Tizen::AbstractFilter"></a><h3>2.3. AbstractFilter</h3>
+<div class="brief">
+ This is a common interface used by different types of
+object filters.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface AbstractFilter {
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+Never use this base interface directly, instead use <em>AbstractFilter</em> subtypes,
+such as <em>AttributeFilter</em>, <em>AttributeRangeFilter</em>, and <em>CompositeFilter</em>.
+          </p>
+         </div>
+</div>
+<div class="interface" id="AttributeFilter">
+<a class="backward-compatibility-anchor" name="::Tizen::AttributeFilter"></a><h3>2.4. AttributeFilter</h3>
+<div class="brief">
+ This interface represents a set of filters.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(DOMString attributeName, optional <a href="#FilterMatchFlag">FilterMatchFlag</a>? matchFlag, optional any matchValue)]
+  interface AttributeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+    attribute DOMString attributeName;
+
+    attribute <a href="#FilterMatchFlag">FilterMatchFlag</a> matchFlag setraises(<a href="#WebAPIException">WebAPIException</a>);
+
+    attribute any matchValue;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+It represents the query statement for the specified value of <em>matchValue</em> by the rule of <em>matchFlag</em>.
+          </p>
+          <p>
+If no <em>matchValue</em> is defined, the filter matches all objects that have the attribute
+defined (same as the "EXISTS" filter works), otherwise, it only matches objects which have an attribute that match
+the specified value.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example retrieves all songs from the album "The Joshua Tree".
+ var count = 100;
+ var offset = 0;
+ var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree");
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function findCB(contents) {
+     console.log('The Joshua Tree :' + contents.length);
+ }
+
+ tizen.content.find(findCB, errorCB, null, albumFilter, null, count, offset);
+ </pre>
+</div>
+        
+      <div class="constructors">
+<h4 id="AttributeFilter::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">AttributeFilter(DOMString attributeName, optional <a href="#FilterMatchFlag">FilterMatchFlag</a>? matchFlag, optional any matchValue);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AttributeFilter::attributeName">
+<span class="attrName"><span class="type">DOMString </span><span class="name">attributeName</span></span><div class="brief">
+ The name of the object attribute used for filtering.
+            </div>
+<div class="description">
+            <p>
+This is the name of the object attribute exactly as it is defined in
+the object's interface. For attributes of complex type, use fully-qualified names
+(such as 'geolocation.latitude' to filter a video or image content's latitude in a geolocation).
+            </p>
+            <p>
+For attributes of an array type, the filter will match if any value in the array
+matches.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AttributeFilter::matchFlag">
+<span class="attrName"><span class="type">FilterMatchFlag </span><span class="name">matchFlag</span></span><div class="brief">
+ The match flag used for attribute-based filtering.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to "EXACTLY".
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AttributeFilter::matchValue">
+<span class="attrName"><span class="type">any </span><span class="name">matchValue</span></span><div class="brief">
+ The value used for matching.
+            </div>
+<div class="description">
+            <p>
+The filter will match if the attribute value matches the given matchValue.
+            </p>
+            <p>
+This value is not used if the <em>matchFlag</em> is set to "EXISTS".
+By default, this attribute is set to <var>null</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="AttributeRangeFilter">
+<a class="backward-compatibility-anchor" name="::Tizen::AttributeRangeFilter"></a><h3>2.5. AttributeRangeFilter</h3>
+<div class="brief">
+ <em>AttributeRangeFilter</em> represents a filter based on an object attribute
+which has values that are within a particular range.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(DOMString attributeName, optional any initialValue, optional any endValue)]
+  interface AttributeRangeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+    attribute DOMString attributeName;
+
+    attribute any initialValue;
+
+    attribute any endValue;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+Range filters, where only one boundary is set, are available.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var count = 100;
+ var offset = 0;
+ // Use the modifiedDate attribute with a range that starts today and ends in 1 day
+ // (meaning that you search for all contents modified today)
+ var today = new Date();
+ var today_begin = new Date(today.getFullYear(), today.getMonth(),today.getDate());
+ var today_end = new Date(today.getFullYear(), today.getMonth(),today.getDate()+1);
+ var dateRangeFilter = new tizen.AttributeRangeFilter("modifiedDate", today_begin, today_end);
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function findCB(contents) {
+     console.log('The contents modified today :' + contents.length);
+ }
+
+ tizen.content.find(findCB, errorCB, null, dateRangeFilter, null, count, offset);
+ </pre>
+</div>
+        
+      <div class="constructors">
+<h4 id="AttributeRangeFilter::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">AttributeRangeFilter(DOMString attributeName, optional any initialValue, optional any endValue);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="AttributeRangeFilter::attributeName">
+<span class="attrName"><span class="type">DOMString </span><span class="name">attributeName</span></span><div class="brief">
+ The name of the object attribute used for filtering.
+            </div>
+<div class="description">
+            <p>
+The value of this attribute is exactly as it is defined in the object's interface. For attributes of complex type, use fully-qualified names
+(such as 'geolocation.latitude' to filter a video or image content's latitude in a geolocation).
+            </p>
+            <p>
+For attributes of array type, the filter will match if any value in the array
+matches.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AttributeRangeFilter::initialValue">
+<span class="attrName"><span class="type">any </span><span class="name">initialValue</span></span><div class="brief">
+ Objects with an attribute that is greater than or equal to <em>initialValue</em> will match.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to <var>null</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="AttributeRangeFilter::endValue">
+<span class="attrName"><span class="type">any </span><span class="name">endValue</span></span><div class="brief">
+ Objects with an attribute that is strictly lower than or equal to <em>endValue</em> will match.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to <var>null</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="CompositeFilter">
+<a class="backward-compatibility-anchor" name="::Tizen::CompositeFilter"></a><h3>2.6. CompositeFilter</h3>
+<div class="brief">
+ <em>CompositeFilter</em> represents a set of filters.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(<a href="#CompositeFilterType">CompositeFilterType</a> type, optional <a href="#AbstractFilter">AbstractFilter</a>[]? filters)]
+  interface CompositeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+
+    attribute <a href="#CompositeFilterType">CompositeFilterType</a> type;
+
+    attribute <a href="#AbstractFilter">AbstractFilter</a>[] filters;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+The composite filters can be one of the following 2 types:
+          </p>
+          <ul>
+            <li>
+The union - used to filter objects that match any of the filters it includes.            </li>
+            <li>
+The intersection - used to filter objects that match all the filters it includes.            </li>
+          </ul>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example retrieves all songs from the album "The Joshua Tree", by artist "U2".
+ var count = 100;
+ var offset = 0;
+ var artistFilter = new tizen.AttributeFilter("artists", "EXACTLY", "U2");
+ var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree");
+ var filter = new tizen.CompositeFilter("INTERSECTION", [albumFilter, artistFilter]);
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function findCB(contents) {
+     console.log('The Joshua Tree by U2:' + contents.length);
+ }
+
+ tizen.content.find(findCB, errorCB, null, filter, null, count, offset);
+ </pre>
+</div>
+        
+      <div class="constructors">
+<h4 id="CompositeFilter::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">CompositeFilter(<a href="#CompositeFilterType">CompositeFilterType</a> type, optional <a href="#AbstractFilter">AbstractFilter</a>[]? filters);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="CompositeFilter::type">
+<span class="attrName"><span class="type">CompositeFilterType </span><span class="name">type</span></span><div class="brief">
+ The composite filter type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="CompositeFilter::filters">
+<span class="attrName"><span class="type">AbstractFilter[]
+                      </span><span class="name">filters</span></span><div class="brief">
+ The list of filters in the composite filter.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SortMode">
+<a class="backward-compatibility-anchor" name="::Tizen::SortMode"></a><h3>2.7. SortMode</h3>
+<div class="brief">
+ <em>SortMode</em> is a common interface used for sorting of queried data.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(DOMString attributeName, optional <a href="#SortModeOrder">SortModeOrder</a>? order)]
+  interface SortMode {
+    attribute DOMString attributeName;
+
+    attribute <a href="#SortModeOrder">SortModeOrder</a> order setraises(<a href="#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+Note that the sorting result of list type attributes is not determined.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // The following example retrieves all songs from the album "The Joshua Tree", by artist "U2", ordered by the track number.
+ var count = 100;
+ var offset = 0;
+ var sortMode = new tizen.SortMode("trackNumber", "ASC");
+ var artistFilter = new tizen.AttributeFilter("artists", "EXACTLY", "U2");
+ var albumFilter = new tizen.AttributeFilter("album", "EXACTLY", "The Joshua Tree");
+ var filter = new tizen.CompositeFilter("INTERSECTION", [albumFilter, artistFilter]);
+
+ function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function printContent(content, index, contents) {
+     console.log('Track: ' + content.trackNumber + ' Title: ' + content.title + 'Duration: ' + content.duration + 'URL: ' + content.contentURI + 'MIME: ' + content.mimeType);
+ }
+
+ function findCB(contents) {
+     console.log('The Joshua Tree by U2:');
+     contents.forEach(printContent);
+     // Increase the offset as much as the count and then find content again.
+     if (contents.length == count) {
+         offset += count;
+         tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
+     }
+ }
+
+ tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
+ </pre>
+</div>
+<div class="constructors">
+<h4 id="SortMode::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">SortMode(DOMString attributeName, optional <a href="#SortModeOrder">SortModeOrder</a>? order);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SortMode::attributeName">
+<span class="attrName"><span class="type">DOMString </span><span class="name">attributeName</span></span><div class="brief">
+ The name of the object attribute used for sorting.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SortMode::order">
+<span class="attrName"><span class="type">SortModeOrder </span><span class="name">order</span></span><div class="brief">
+ The type of the sorting.
+            </div>
+<div class="description">
+            <p>
+By default, this attribute is set to <var>ASC</var>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SimpleCoordinates">
+<a class="backward-compatibility-anchor" name="::Tizen::SimpleCoordinates"></a><h3>2.8. SimpleCoordinates</h3>
+<div class="brief">
+ <em>SimpleCoordinates</em> represents a point (latitude and longitude) in the map coordinate system.
+          </div>
+<pre class="webidl prettyprint">  [Constructor(double latitude, double longitude)]
+  interface SimpleCoordinates {
+    attribute double latitude setraises(<a href="#WebAPIException">WebAPIException</a>);
+
+    attribute double longitude setraises(<a href="#WebAPIException">WebAPIException</a>);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+Latitude and longitude are of the WGS84 datum.
+          </p>
+         </div>
+<div class="constructors">
+<h4 id="SimpleCoordinates::constructor">Constructors</h4>
+<dl><pre class="webidl prettyprint">SimpleCoordinates(double latitude, double longitude);</pre></dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="SimpleCoordinates::latitude">
+<span class="attrName"><span class="type">double </span><span class="name">latitude</span></span><div class="brief">
+ Latitude.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+<li class="attribute" id="SimpleCoordinates::longitude">
+<span class="attrName"><span class="type">double </span><span class="name">longitude</span></span><div class="brief">
+ Longitude.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="WebAPIException">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException"></a><h3>2.9. WebAPIException</h3>
+<div class="brief">
+ Generic exception interface.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject]
+  interface WebAPIException {
+    readonly attribute unsigned short code;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString message;
+
+    const unsigned short INDEX_SIZE_ERR = 1;
+    const unsigned short DOMSTRING_SIZE_ERR = 2; 
+    const unsigned short HIERARCHY_REQUEST_ERR = 3;
+    const unsigned short WRONG_DOCUMENT_ERR = 4;
+    const unsigned short INVALID_CHARACTER_ERR = 5;
+    const unsigned short NO_DATA_ALLOWED_ERR = 6; 
+    const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
+    const unsigned short NOT_FOUND_ERR = 8;
+    const unsigned short NOT_SUPPORTED_ERR = 9;
+    const unsigned short INUSE_ATTRIBUTE_ERR = 10; 
+    const unsigned short INVALID_STATE_ERR = 11;
+    const unsigned short SYNTAX_ERR = 12;
+    const unsigned short INVALID_MODIFICATION_ERR = 13;
+    const unsigned short NAMESPACE_ERR = 14;
+    const unsigned short INVALID_ACCESS_ERR = 15;
+    const unsigned short VALIDATION_ERR = 16; 
+    const unsigned short TYPE_MISMATCH_ERR = 17;
+    const unsigned short SECURITY_ERR = 18;
+    const unsigned short NETWORK_ERR = 19;
+    const unsigned short ABORT_ERR = 20;
+    const unsigned short URL_MISMATCH_ERR = 21;
+    const unsigned short QUOTA_EXCEEDED_ERR = 22;
+    const unsigned short TIMEOUT_ERR = 23;
+    const unsigned short INVALID_NODE_TYPE_ERR = 24;
+    const unsigned short DATA_CLONE_ERR = 25;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+This interface will be used by the APIs to throw errors synchronously.
+          </p>
+          <p>
+The attempt to set an attribute value may or may not raise WebAPIException synchronously with error type TypeMismatchError or InvalidValuesError.
+          </p>
+         </div>
+<div class="consts">
+<h4>Constants</h4>
+<dl>
+<li class="const" id="WebAPIException::INDEX_SIZE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INDEX_SIZE_ERR"></a><span class="name">INDEX_SIZE_ERR</span><div class="brief">
+ The index is not in the allowed range.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::DOMSTRING_SIZE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::DOMSTRING_SIZE_ERR"></a><span class="name">DOMSTRING_SIZE_ERR</span><div class="brief">
+ The specified range of text is too large.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::HIERARCHY_REQUEST_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::HIERARCHY_REQUEST_ERR"></a><span class="name">HIERARCHY_REQUEST_ERR</span><div class="brief">
+ The operation would yield an incorrect node tree.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::WRONG_DOCUMENT_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::WRONG_DOCUMENT_ERR"></a><span class="name">WRONG_DOCUMENT_ERR</span><div class="brief">
+ The object is in the wrong document.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INVALID_CHARACTER_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INVALID_CHARACTER_ERR"></a><span class="name">INVALID_CHARACTER_ERR</span><div class="brief">
+ The string contains invalid characters.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NO_DATA_ALLOWED_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NO_DATA_ALLOWED_ERR"></a><span class="name">NO_DATA_ALLOWED_ERR</span><div class="brief">
+ Data is specified for a node that does not support data.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NO_MODIFICATION_ALLOWED_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NO_MODIFICATION_ALLOWED_ERR"></a><span class="name">NO_MODIFICATION_ALLOWED_ERR</span><div class="brief">
+ The object cannot be modified.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NOT_FOUND_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NOT_FOUND_ERR"></a><span class="name">NOT_FOUND_ERR</span><div class="brief">
+ The object cannot be found here.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NOT_SUPPORTED_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NOT_SUPPORTED_ERR"></a><span class="name">NOT_SUPPORTED_ERR</span><div class="brief">
+ The operation is not supported.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INUSE_ATTRIBUTE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INUSE_ATTRIBUTE_ERR"></a><span class="name">INUSE_ATTRIBUTE_ERR</span><div class="brief">
+ The specified attribute is already in use elsewhere.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INVALID_STATE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INVALID_STATE_ERR"></a><span class="name">INVALID_STATE_ERR</span><div class="brief">
+ The object is in an invalid state.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::SYNTAX_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::SYNTAX_ERR"></a><span class="name">SYNTAX_ERR</span><div class="brief">
+ The string did not match the expected pattern.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INVALID_MODIFICATION_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INVALID_MODIFICATION_ERR"></a><span class="name">INVALID_MODIFICATION_ERR</span><div class="brief">
+ The object cannot be modified in this way.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NAMESPACE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NAMESPACE_ERR"></a><span class="name">NAMESPACE_ERR</span><div class="brief">
+ The operation is not allowed by Namespaces in XML.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INVALID_ACCESS_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INVALID_ACCESS_ERR"></a><span class="name">INVALID_ACCESS_ERR</span><div class="brief">
+ The object does not support the operation or argument.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::VALIDATION_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::VALIDATION_ERR"></a><span class="name">VALIDATION_ERR</span><div class="brief">
+ The operation would cause the node to fail validation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::TYPE_MISMATCH_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::TYPE_MISMATCH_ERR"></a><span class="name">TYPE_MISMATCH_ERR</span><div class="brief">
+ The type of the object does not match the expected type.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::SECURITY_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::SECURITY_ERR"></a><span class="name">SECURITY_ERR</span><div class="brief">
+ The operation is insecure.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::NETWORK_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::NETWORK_ERR"></a><span class="name">NETWORK_ERR</span><div class="brief">
+ A network error occurred.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::ABORT_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::ABORT_ERR"></a><span class="name">ABORT_ERR</span><div class="brief">
+ The operation has been aborted.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::URL_MISMATCH_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::URL_MISMATCH_ERR"></a><span class="name">URL_MISMATCH_ERR</span><div class="brief">
+ The given URL does not match another URL.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::QUOTA_EXCEEDED_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::QUOTA_EXCEEDED_ERR"></a><span class="name">QUOTA_EXCEEDED_ERR</span><div class="brief">
+ The quota has been exceeded.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::TIMEOUT_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::TIMEOUT_ERR"></a><span class="name">TIMEOUT_ERR</span><div class="brief">
+ The operation has timed out.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::INVALID_NODE_TYPE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::INVALID_NODE_TYPE_ERR"></a><span class="name">INVALID_NODE_TYPE_ERR</span><div class="brief">
+ The supplied node is incorrect or has an incorrect ancestor for this operation.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+<li class="const" id="WebAPIException::DATA_CLONE_ERR">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIException::DATA_CLONE_ERR"></a><span class="name">DATA_CLONE_ERR</span><div class="brief">
+ The object cannot be cloned.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+<br><br>
+</li>
+</dl>
+</div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="WebAPIException::code">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">code</span></span><div class="brief">
+ 16-bit error code.
+            </div>
+<div class="description">
+            <p>
+For the possible values of this attribute, see <a href="http://www.w3.org/TR/dom/#domexception">DOMException</a>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="WebAPIException::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ An error type. The name attribute must return the value it had been initialized with.
+            </div>
+<div class="description">
+            <p>
+This attribute can have one of the following values:
+            </p>
+            <ul>
+              <li>
+UnknownError - An unknown error has occurred.              </li>
+              <li>
+InvalidValuesError - The content of an object does not contain valid values.              </li>
+              <li>
+IOError - An error occurred in communication with the underlying implementation and so the requested method cannot be completed.              </li>
+              <li>
+ServiceNotAvailableError - The requested service is not available.              </li>
+              <li>
+VerificationError - An error occurred in authentication and so the requested method cannot be completed.              </li>
+            </ul>
+            <p>
+For other possible values of this attribute, see the values defined in <a href="http://www.w3.org/TR/dom/#error-names-0">DOM error names</a>            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="WebAPIException::message">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">message</span></span><div class="brief">
+ An error message that describes the details of an encountered error.
+            </div>
+<div class="description">
+            <p>
+This attribute is mainly intended to be used for developers rather than end users, so it should not be used directly in the user interfaces as it is.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="WebAPIError">
+<a class="backward-compatibility-anchor" name="::Tizen::WebAPIError"></a><h3>2.10. WebAPIError</h3>
+<div class="brief">
+ Generic error interface.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject]
+  interface WebAPIError {
+    readonly attribute unsigned short code;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString message;
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.0
+          </p>
+<div class="description">
+          <p>
+This interface will be used by the APIs in order to return them in the error callback of asynchronous methods.
+          </p>
+         </div>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="WebAPIError::code">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">unsigned short </span><span class="name">code</span></span><div class="brief">
+ 16-bit error code.
+            </div>
+<div class="description">
+            <p>
+Possible values are defined in <a href="http://www.w3.org/TR/dom/#domexception">DOMException</a>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="WebAPIError::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
+ An error type. The name attribute must return the value it had been initialized with.
+            </div>
+<div class="description">
+            <p>
+This attribute can have one of the following values:
+            </p>
+            <ul>
+              <li>
+UnknownError - An unknown error has occurred.              </li>
+              <li>
+InvalidValuesError - The content of an object does not contain valid values.              </li>
+              <li>
+IOError - An error occurred in communication with the underlying implementation and so the requested method cannot be completed.              </li>
+              <li>
+ServiceNotAvailableError - The requested service is not available.              </li>
+              <li>
+VerificationError - An error occurred in authentication and so the requested method cannot be completed.              </li>
+            </ul>
+            <p>
+For other possible values of this attribute, see the values defined in <a href="http://www.w3.org/TR/dom/#error-names-0">DOM error names</a>            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+<li class="attribute" id="WebAPIError::message">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">message</span></span><div class="brief">
+ An error message that describes the details of the error encountered.
+            </div>
+<div class="description">
+            <p>
+This attribute is not intended to be used directly in the user interfaces
+as it is mainly intended to be useful for developers rather than end users.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.0
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="SuccessCallback">
+<a class="backward-compatibility-anchor" name="::Tizen::SuccessCallback"></a><h3>2.11. SuccessCallback</h3>
+<div class="brief">
+ This interface is used in methods that do not require any return value in the success callback.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject]
+  interface SuccessCallback {
+    void onsuccess ();
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+In case of successful execution of an asynchronous call, <em>SuccessCallback</em> or an API defined callback must be called immediately to notify the user.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">     function onSuccess() {
+         console.log("Application launched successfully");
+     }
+     tizen.application.launch('0pnxz8hbsr.MyFiles', onSuccess);
+ </pre>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::Tizen::SuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the asynchronous call completes successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ErrorCallback">
+<a class="backward-compatibility-anchor" name="::Tizen::ErrorCallback"></a><h3>2.12. ErrorCallback</h3>
+<div class="brief">
+ This interface is used in methods that require only an error as an input parameter in the error callback.
+          </div>
+<pre class="webidl prettyprint">  [Callback=FunctionOnly, NoInterfaceObject]
+  interface ErrorCallback {
+
+    void onerror (<a href="#WebAPIError">WebAPIError</a> error);
+  };</pre>
+<p><span class="version">
+            Since: </span>
+ 1.0
+          </p>
+<div class="description">
+          <p>
+If an invalid function (such as null) is passed to the API that accepts ErrorCallback,
+it silently fails and there is no further action.
+          </p>
+         </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">  // Define the error callback.
+  function onerror(error) {
+    console.log(error.message);
+  }
+  function onsuccess() {
+      console.log("The application has launched successfully");
+  }
+
+  tizen.application.launch("targetApp0.main", onsuccess, onerror);
+ </pre>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ErrorCallback::onerror">
+<a class="backward-compatibility-anchor" name="::Tizen::ErrorCallback::onerror"></a><code><b><span class="methodName">onerror</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method that is invoked when an error occurs.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onerror(<a href="#WebAPIError">WebAPIError</a> error);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 1.0
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">error</span>: 
+ Generic error.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module Tizen {
+  enum FilterMatchFlag { "EXACTLY", "FULLSTRING", "CONTAINS", "STARTSWITH", "ENDSWITH", "EXISTS" };
+
+  enum SortModeOrder { "ASC", "DESC" };
+
+  enum CompositeFilterType { "UNION", "INTERSECTION" };
+
+  [NoInterfaceObject] interface TizenObject {
+    readonly attribute <a href="#Tizen">Tizen</a> tizen;
+  };
+  Window implements <a href="#TizenObject">TizenObject</a>;
+
+  [NoInterfaceObject] interface Tizen {
+  };
+
+  [NoInterfaceObject] interface AbstractFilter {
+  };
+
+  [Constructor(DOMString attributeName, optional <a href="#FilterMatchFlag">FilterMatchFlag</a>? matchFlag, optional any matchValue)]
+  interface AttributeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+    attribute DOMString attributeName;
+
+    attribute <a href="#FilterMatchFlag">FilterMatchFlag</a> matchFlag setraises(<a href="#WebAPIException">WebAPIException</a>);
+
+    attribute any matchValue;
+  };
+
+  [Constructor(DOMString attributeName, optional any initialValue, optional any endValue)]
+  interface AttributeRangeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+    attribute DOMString attributeName;
+
+    attribute any initialValue;
+
+    attribute any endValue;
+  };
+
+  [Constructor(<a href="#CompositeFilterType">CompositeFilterType</a> type, optional <a href="#AbstractFilter">AbstractFilter</a>[]? filters)]
+  interface CompositeFilter : <a href="#AbstractFilter">AbstractFilter</a> {
+
+    attribute <a href="#CompositeFilterType">CompositeFilterType</a> type;
+
+    attribute <a href="#AbstractFilter">AbstractFilter</a>[] filters;
+  };
+
+  [Constructor(DOMString attributeName, optional <a href="#SortModeOrder">SortModeOrder</a>? order)]
+  interface SortMode {
+    attribute DOMString attributeName;
+
+    attribute <a href="#SortModeOrder">SortModeOrder</a> order setraises(<a href="#WebAPIException">WebAPIException</a>);
+  };
+
+  [Constructor(double latitude, double longitude)]
+  interface SimpleCoordinates {
+    attribute double latitude setraises(<a href="#WebAPIException">WebAPIException</a>);
+
+    attribute double longitude setraises(<a href="#WebAPIException">WebAPIException</a>);
+  };
+
+  [NoInterfaceObject]
+  interface WebAPIException {
+    readonly attribute unsigned short code;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString message;
+
+    const unsigned short INDEX_SIZE_ERR = 1;
+    const unsigned short DOMSTRING_SIZE_ERR = 2; 
+    const unsigned short HIERARCHY_REQUEST_ERR = 3;
+    const unsigned short WRONG_DOCUMENT_ERR = 4;
+    const unsigned short INVALID_CHARACTER_ERR = 5;
+    const unsigned short NO_DATA_ALLOWED_ERR = 6; 
+    const unsigned short NO_MODIFICATION_ALLOWED_ERR = 7;
+    const unsigned short NOT_FOUND_ERR = 8;
+    const unsigned short NOT_SUPPORTED_ERR = 9;
+    const unsigned short INUSE_ATTRIBUTE_ERR = 10; 
+    const unsigned short INVALID_STATE_ERR = 11;
+    const unsigned short SYNTAX_ERR = 12;
+    const unsigned short INVALID_MODIFICATION_ERR = 13;
+    const unsigned short NAMESPACE_ERR = 14;
+    const unsigned short INVALID_ACCESS_ERR = 15;
+    const unsigned short VALIDATION_ERR = 16; 
+    const unsigned short TYPE_MISMATCH_ERR = 17;
+    const unsigned short SECURITY_ERR = 18;
+    const unsigned short NETWORK_ERR = 19;
+    const unsigned short ABORT_ERR = 20;
+    const unsigned short URL_MISMATCH_ERR = 21;
+    const unsigned short QUOTA_EXCEEDED_ERR = 22;
+    const unsigned short TIMEOUT_ERR = 23;
+    const unsigned short INVALID_NODE_TYPE_ERR = 24;
+    const unsigned short DATA_CLONE_ERR = 25;
+  };
+
+  [NoInterfaceObject]
+  interface WebAPIError {
+    readonly attribute unsigned short code;
+
+    readonly attribute DOMString name;
+
+    readonly attribute DOMString message;
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject]
+  interface SuccessCallback {
+    void onsuccess ();
+  };
+
+  [Callback=FunctionOnly, NoInterfaceObject]
+  interface ErrorCallback {
+
+    void onerror (<a href="#WebAPIError">WebAPIError</a> error);
+  };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.js b/org.tizen.web.apireference/html/device_api/tv/tizen/tizen.js
new file mode 100644 (file)
index 0000000..5d036c4
--- /dev/null
@@ -0,0 +1,1529 @@
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ * <p>
+ *
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source.  At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules.  See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ *    {@code class=prettyprint.}
+ *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ *    printer needs to do more substantial DOM manipulations to support that, so
+ *    some css styles may not be preserved.
+ * </ol>
+ * That's it.  I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ *   Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/** the number of characters between tab columns */
+window['PR_TAB_WIDTH'] = 8;
+
+/** Walks the DOM returning a properly escaped version of innerHTML.
+  * @param {Node} node
+  * @param {Array.<string>} out output buffer that receives chunks of HTML.
+  */
+window['PR_normalizedHtml']
+
+/** Contains functions for creating and registering new language handlers.
+  * @type {Object}
+  */
+  = window['PR']
+
+/** Pretty print a chunk of code.
+  *
+  * @param {string} sourceCodeHtml code as html
+  * @return {string} code as html, but prettier
+  */
+  = window['prettyPrintOne']
+/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+  * {@code class=prettyprint} and prettify them.
+  * @param {Function?} opt_whenDone if specified, called when the last entry
+  *     has been finished.
+  */
+  = window['prettyPrint'] = void 0;
+
+/** browser detection. @extern @returns false if not IE, otherwise the major version. */
+window['_pr_isIE6'] = function () {
+  var ieVersion = navigator && navigator.userAgent &&
+      navigator.userAgent.match(/\bMSIE ([678])\./);
+  ieVersion = ieVersion ? +ieVersion[1] : false;
+  window['_pr_isIE6'] = function () { return ieVersion; };
+  return ieVersion;
+};
+
+
+(function () {
+  // Keyword lists for various languages.
+  var FLOW_CONTROL_KEYWORDS =
+      "break continue do else for if return while ";
+  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
+      "double enum extern float goto int long register short signed sizeof " +
+      "static struct switch typedef union unsigned void volatile ";
+  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
+      "new operator private protected public this throw true try typeof ";
+  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
+      "concept concept_map const_cast constexpr decltype " +
+      "dynamic_cast explicit export friend inline late_check " +
+      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
+      "template typeid typename using virtual wchar_t where ";
+  var JAVA_KEYWORDS = COMMON_KEYWORDS +
+      "abstract boolean byte extends final finally implements import " +
+      "instanceof null native package strictfp super synchronized throws " +
+      "transient ";
+  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
+      "as base by checked decimal delegate descending event " +
+      "fixed foreach from group implicit in interface internal into is lock " +
+      "object out override orderby params partial readonly ref sbyte sealed " +
+      "stackalloc string select uint ulong unchecked unsafe ushort var ";
+  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
+      "debugger eval export function get null set undefined var with " +
+      "Infinity NaN ";
+  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
+      "goto if import last local my next no our print package redo require " +
+      "sub undef unless until use wantarray while BEGIN END ";
+  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
+      "elif except exec finally from global import in is lambda " +
+      "nonlocal not or pass print raise try with yield " +
+      "False True None ";
+  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
+      " defined elsif end ensure false in module next nil not or redo rescue " +
+      "retry self super then true undef unless until when yield BEGIN END ";
+  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
+      "function in local set then until ";
+  var ALL_KEYWORDS = (
+      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
+      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
+
+  // token style names.  correspond to css classes
+  /** token style for a string literal */
+  var PR_STRING = 'str';
+  /** token style for a keyword */
+  var PR_KEYWORD = 'kwd';
+  /** token style for a comment */
+  var PR_COMMENT = 'com';
+  /** token style for a type */
+  var PR_TYPE = 'typ';
+  /** token style for a literal value.  e.g. 1, null, true. */
+  var PR_LITERAL = 'lit';
+  /** token style for a punctuation string. */
+  var PR_PUNCTUATION = 'pun';
+  /** token style for a punctuation string. */
+  var PR_PLAIN = 'pln';
+
+  /** token style for an sgml tag. */
+  var PR_TAG = 'tag';
+  /** token style for a markup declaration such as a DOCTYPE. */
+  var PR_DECLARATION = 'dec';
+  /** token style for embedded source. */
+  var PR_SOURCE = 'src';
+  /** token style for an sgml attribute name. */
+  var PR_ATTRIB_NAME = 'atn';
+  /** token style for an sgml attribute value. */
+  var PR_ATTRIB_VALUE = 'atv';
+
+  /**
+   * A class that indicates a section of markup that is not code, e.g. to allow
+   * embedding of line numbers within code listings.
+   */
+  var PR_NOCODE = 'nocode';
+
+  /** A set of tokens that can precede a regular expression literal in
+    * javascript.
+    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
+    * list, but I've removed ones that might be problematic when seen in
+    * languages that don't support regular expression literals.
+    *
+    * <p>Specifically, I've removed any keywords that can't precede a regexp
+    * literal in a syntactically legal javascript program, and I've removed the
+    * "in" keyword since it's not a keyword in many languages, and might be used
+    * as a count of inches.
+    *
+    * <p>The link a above does not accurately describe EcmaScript rules since
+    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+    * very well in practice.
+    *
+    * @private
+    */
+  var REGEXP_PRECEDER_PATTERN = function () {
+      var preceders = [
+          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
+          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
+          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
+          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
+          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
+          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
+          "||=", "~" /* handles =~ and !~ */,
+          "break", "case", "continue", "delete",
+          "do", "else", "finally", "instanceof",
+          "return", "throw", "try", "typeof"
+          ];
+      var pattern = '(?:^^|[+-]';
+      for (var i = 0; i < preceders.length; ++i) {
+        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
+      }
+      pattern += ')\\s*';  // matches at end, and matches empty string
+      return pattern;
+      // CAVEAT: this does not properly handle the case where a regular
+      // expression immediately follows another since a regular expression may
+      // have flags for case-sensitivity and the like.  Having regexp tokens
+      // adjacent is not valid in any language I'm aware of, so I'm punting.
+      // TODO: maybe style special characters inside a regexp as punctuation.
+    }();
+
+  // Define regexps here so that the interpreter doesn't have to create an
+  // object each time the function containing them is called.
+  // The language spec requires a new object created even if you don't access
+  // the $1 members.
+  var pr_amp = /&/g;
+  var pr_lt = /</g;
+  var pr_gt = />/g;
+  var pr_quot = /\"/g;
+  /** like textToHtml but escapes double quotes to be attribute safe. */
+  function attribToHtml(str) {
+    return str.replace(pr_amp, '&amp;')
+        .replace(pr_lt, '&lt;')
+        .replace(pr_gt, '&gt;')
+        .replace(pr_quot, '&quot;');
+  }
+
+  /** escapest html special characters to html. */
+  function textToHtml(str) {
+    return str.replace(pr_amp, '&amp;')
+        .replace(pr_lt, '&lt;')
+        .replace(pr_gt, '&gt;');
+  }
+
+
+  var pr_ltEnt = /&lt;/g;
+  var pr_gtEnt = /&gt;/g;
+  var pr_aposEnt = /&apos;/g;
+  var pr_quotEnt = /&quot;/g;
+  var pr_ampEnt = /&amp;/g;
+  var pr_nbspEnt = /&nbsp;/g;
+  /** unescapes html to plain text. */
+  function htmlToText(html) {
+    var pos = html.indexOf('&');
+    if (pos < 0) { return html; }
+    // Handle numeric entities specially.  We can't use functional substitution
+    // since that doesn't work in older versions of Safari.
+    // These should be rare since most browsers convert them to normal chars.
+    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
+      var end = html.indexOf(';', pos);
+      if (end >= 0) {
+        var num = html.substring(pos + 3, end);
+        var radix = 10;
+        if (num && num.charAt(0) === 'x') {
+          num = num.substring(1);
+          radix = 16;
+        }
+        var codePoint = parseInt(num, radix);
+        if (!isNaN(codePoint)) {
+          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
+                  html.substring(end + 1));
+        }
+      }
+    }
+
+    return html.replace(pr_ltEnt, '<')
+        .replace(pr_gtEnt, '>')
+        .replace(pr_aposEnt, "'")
+        .replace(pr_quotEnt, '"')
+        .replace(pr_nbspEnt, ' ')
+        .replace(pr_ampEnt, '&');
+  }
+
+  /** is the given node's innerHTML normally unescaped? */
+  function isRawContent(node) {
+    return 'XMP' === node.tagName;
+  }
+
+  var newlineRe = /[\r\n]/g;
+  /**
+   * Are newlines and adjacent spaces significant in the given node's innerHTML?
+   */
+  function isPreformatted(node, content) {
+    // PRE means preformatted, and is a very common case, so don't create
+    // unnecessary computed style objects.
+    if ('PRE' === node.tagName) { return true; }
+    if (!newlineRe.test(content)) { return true; }  // Don't care
+    var whitespace = '';
+    // For disconnected nodes, IE has no currentStyle.
+    if (node.currentStyle) {
+      whitespace = node.currentStyle.whiteSpace;
+    } else if (window.getComputedStyle) {
+      // Firefox makes a best guess if node is disconnected whereas Safari
+      // returns the empty string.
+      whitespace = window.getComputedStyle(node, null).whiteSpace;
+    }
+    return !whitespace || whitespace === 'pre';
+  }
+
+  function normalizedHtml(node, out, opt_sortAttrs) {
+    switch (node.nodeType) {
+      case 1:  // an element
+        var name = node.tagName.toLowerCase();
+
+        out.push('<', name);
+        var attrs = node.attributes;
+        var n = attrs.length;
+        if (n) {
+          if (opt_sortAttrs) {
+            var sortedAttrs = [];
+            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
+            sortedAttrs.sort(function (a, b) {
+                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
+              });
+            attrs = sortedAttrs;
+          }
+          for (var i = 0; i < n; ++i) {
+            var attr = attrs[i];
+            if (!attr.specified) { continue; }
+            out.push(' ', attr.name.toLowerCase(),
+                     '="', attribToHtml(attr.value), '"');
+          }
+        }
+        out.push('>');
+        for (var child = node.firstChild; child; child = child.nextSibling) {
+          normalizedHtml(child, out, opt_sortAttrs);
+        }
+        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
+          out.push('<\/', name, '>');
+        }
+        break;
+      case 3: case 4: // text
+        out.push(textToHtml(node.nodeValue));
+        break;
+    }
+  }
+
+  /**
+   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+   * matches the union o the sets o strings matched d by the input RegExp.
+   * Since it matches globally, if the input strings have a start-of-input
+   * anchor (/^.../), it is ignored for the purposes of unioning.
+   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+   * @return {RegExp} a global regex.
+   */
+  function combinePrefixPatterns(regexs) {
+    var capturedGroupIndex = 0;
+
+    var needToFoldCase = false;
+    var ignoreCase = false;
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.ignoreCase) {
+        ignoreCase = true;
+      } else if (/[a-z]/i.test(regex.source.replace(
+                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+        needToFoldCase = true;
+        ignoreCase = false;
+        break;
+      }
+    }
+
+    function decodeEscape(charsetPart) {
+      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
+      switch (charsetPart.charAt(1)) {
+        case 'b': return 8;
+        case 't': return 9;
+        case 'n': return 0xa;
+        case 'v': return 0xb;
+        case 'f': return 0xc;
+        case 'r': return 0xd;
+        case 'u': case 'x':
+          return parseInt(charsetPart.substring(2), 16)
+              || charsetPart.charCodeAt(1);
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7':
+          return parseInt(charsetPart.substring(1), 8);
+        default: return charsetPart.charCodeAt(1);
+      }
+    }
+
+    function encodeEscape(charCode) {
+      if (charCode < 0x20) {
+        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+      }
+      var ch = String.fromCharCode(charCode);
+      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+        ch = '\\' + ch;
+      }
+      return ch;
+    }
+
+    function caseFoldCharset(charSet) {
+      var charsetParts = charSet.substring(1, charSet.length - 1).match(
+          new RegExp(
+              '\\\\u[0-9A-Fa-f]{4}'
+              + '|\\\\x[0-9A-Fa-f]{2}'
+              + '|\\\\[0-3][0-7]{0,2}'
+              + '|\\\\[0-7]{1,2}'
+              + '|\\\\[\\s\\S]'
+              + '|-'
+              + '|[^-\\\\]',
+              'g'));
+      var groups = [];
+      var ranges = [];
+      var inverse = charsetParts[0] === '^';
+      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+        var p = charsetParts[i];
+        switch (p) {
+          case '\\B': case '\\b':
+          case '\\D': case '\\d':
+          case '\\S': case '\\s':
+          case '\\W': case '\\w':
+            groups.push(p);
+            continue;
+        }
+        var start = decodeEscape(p);
+        var end;
+        if (i + 2 < n && '-' === charsetParts[i + 1]) {
+          end = decodeEscape(charsetParts[i + 2]);
+          i += 2;
+        } else {
+          end = start;
+        }
+        ranges.push([start, end]);
+        // If the range might intersect letters, then expand it.
+        if (!(end < 65 || start > 122)) {
+          if (!(end < 65 || start > 90)) {
+            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+          }
+          if (!(end < 97 || start > 122)) {
+            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+          }
+        }
+      }
+
+      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+      // -> [[1, 12], [14, 14], [16, 17]]
+      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
+      var consolidatedRanges = [];
+      var lastRange = [NaN, NaN];
+      for (var i = 0; i < ranges.length; ++i) {
+        var range = ranges[i];
+        if (range[0] <= lastRange[1] + 1) {
+          lastRange[1] = Math.max(lastRange[1], range[1]);
+        } else {
+          consolidatedRanges.push(lastRange = range);
+        }
+      }
+
+      var out = ['['];
+      if (inverse) { out.push('^'); }
+      out.push.apply(out, groups);
+      for (var i = 0; i < consolidatedRanges.length; ++i) {
+        var range = consolidatedRanges[i];
+        out.push(encodeEscape(range[0]));
+        if (range[1] > range[0]) {
+          if (range[1] + 1 > range[0]) { out.push('-'); }
+          out.push(encodeEscape(range[1]));
+        }
+      }
+      out.push(']');
+      return out.join('');
+    }
+
+    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+      // Split into character sets, escape sequences, punctuation strings
+      // like ('(', '(?:', ')', '^'), and runs of characters that do not
+      // include any of the above.
+      var parts = regex.source.match(
+          new RegExp(
+              '(?:'
+              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
+              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
+              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
+              + '|\\\\[0-9]+'  // a back-reference or octal escape
+              + '|\\\\[^ux0-9]'  // other escape sequence
+              + '|\\(\\?[:!=]'  // start of a non-capturing group
+              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
+              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
+              + ')',
+              'g'));
+      var n = parts.length;
+
+      // Maps captured group numbers to the number they will occupy in
+      // the output or to -1 if that has not been determined, or to
+      // undefined if they need not be capturing in the output.
+      var capturedGroups = [];
+
+      // Walk over and identify back references to build the capturedGroups
+      // mapping.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          // groups are 1-indexed, so max group index is count of '('
+          ++groupIndex;
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            capturedGroups[decimalValue] = -1;
+          }
+        }
+      }
+
+      // Renumber groups and reduce capturing groups to non-capturing groups
+      // where possible.
+      for (var i = 1; i < capturedGroups.length; ++i) {
+        if (-1 === capturedGroups[i]) {
+          capturedGroups[i] = ++capturedGroupIndex;
+        }
+      }
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        var p = parts[i];
+        if (p === '(') {
+          ++groupIndex;
+          if (capturedGroups[groupIndex] === undefined) {
+            parts[i] = '(?:';
+          }
+        } else if ('\\' === p.charAt(0)) {
+          var decimalValue = +p.substring(1);
+          if (decimalValue && decimalValue <= groupIndex) {
+            parts[i] = '\\' + capturedGroups[groupIndex];
+          }
+        }
+      }
+
+      // Remove any prefix anchors so that the output will match anywhere.
+      // ^^ really does mean an anchored match though.
+      for (var i = 0, groupIndex = 0; i < n; ++i) {
+        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+      }
+
+      // Expand letters to groupts to handle mixing of case-sensitive and
+      // case-insensitive patterns if necessary.
+      if (regex.ignoreCase && needToFoldCase) {
+        for (var i = 0; i < n; ++i) {
+          var p = parts[i];
+          var ch0 = p.charAt(0);
+          if (p.length >= 2 && ch0 === '[') {
+            parts[i] = caseFoldCharset(p);
+          } else if (ch0 !== '\\') {
+            // TODO: handle letters in numeric escapes.
+            parts[i] = p.replace(
+                /[a-zA-Z]/g,
+                function (ch) {
+                  var cc = ch.charCodeAt(0);
+                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+                });
+          }
+        }
+      }
+
+      return parts.join('');
+    }
+
+    var rewritten = [];
+    for (var i = 0, n = regexs.length; i < n; ++i) {
+      var regex = regexs[i];
+      if (regex.global || regex.multiline) { throw new Error('' + regex); }
+      rewritten.push(
+          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+    }
+
+    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+  }
+
+  var PR_innerHtmlWorks = null;
+  function getInnerHtml(node) {
+    // inner html is hopelessly broken in Safari 2.0.4 when the content is
+    // an html description of well formed XML and the containing tag is a PRE
+    // tag, so we detect that case and emulate innerHTML.
+    if (null === PR_innerHtmlWorks) {
+      var testNode = document.createElement('PRE');
+      testNode.appendChild(
+          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
+      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
+    }
+
+    if (PR_innerHtmlWorks) {
+      var content = node.innerHTML;
+      // XMP tags contain unescaped entities so require special handling.
+      if (isRawContent(node)) {
+        content = textToHtml(content);
+      } else if (!isPreformatted(node, content)) {
+        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
+            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
+      }
+      return content;
+    }
+
+    var out = [];
+    for (var child = node.firstChild; child; child = child.nextSibling) {
+      normalizedHtml(child, out);
+    }
+    return out.join('');
+  }
+
+  /** returns a function that expand tabs to spaces.  This function can be fed
+    * successive chunks of text, and will maintain its own internal state to
+    * keep track of how tabs are expanded.
+    * @return {function (string) : string} a function that takes
+    *   plain text and return the text with tabs expanded.
+    * @private
+    */
+  function makeTabExpander(tabWidth) {
+    var SPACES = '                ';
+    var charInLine = 0;
+
+    return function (plainText) {
+      // walk over each character looking for tabs and newlines.
+      // On tabs, expand them.  On newlines, reset charInLine.
+      // Otherwise increment charInLine
+      var out = null;
+      var pos = 0;
+      for (var i = 0, n = plainText.length; i < n; ++i) {
+        var ch = plainText.charAt(i);
+
+        switch (ch) {
+          case '\t':
+            if (!out) { out = []; }
+            out.push(plainText.substring(pos, i));
+            // calculate how much space we need in front of this part
+            // nSpaces is the amount of padding -- the number of spaces needed
+            // to move us to the next column, where columns occur at factors of
+            // tabWidth.
+            var nSpaces = tabWidth - (charInLine % tabWidth);
+            charInLine += nSpaces;
+            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
+              out.push(SPACES.substring(0, nSpaces));
+            }
+            pos = i + 1;
+            break;
+          case '\n':
+            charInLine = 0;
+            break;
+          default:
+            ++charInLine;
+        }
+      }
+      if (!out) { return plainText; }
+      out.push(plainText.substring(pos));
+      return out.join('');
+    };
+  }
+
+  var pr_chunkPattern = new RegExp(
+      '[^<]+'  // A run of characters other than '<'
+      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
+      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
+      // a probable tag that should not be highlighted
+      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
+      + '|<',  // A '<' that does not begin a larger chunk
+      'g');
+  var pr_commentPrefix = /^<\!--/;
+  var pr_cdataPrefix = /^<!\[CDATA\[/;
+  var pr_brPrefix = /^<br\b/i;
+  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
+
+  /** split markup into chunks of html tags (style null) and
+    * plain text (style {@link #PR_PLAIN}), converting tags which are
+    * significant for tokenization (<br>) into their textual equivalent.
+    *
+    * @param {string} s html where whitespace is considered significant.
+    * @return {Object} source code and extracted tags.
+    * @private
+    */
+  function extractTags(s) {
+    // since the pattern has the 'g' modifier and defines no capturing groups,
+    // this will return a list of all chunks which we then classify and wrap as
+    // PR_Tokens
+    var matches = s.match(pr_chunkPattern);
+    var sourceBuf = [];
+    var sourceBufLen = 0;
+    var extractedTags = [];
+    if (matches) {
+      for (var i = 0, n = matches.length; i < n; ++i) {
+        var match = matches[i];
+        if (match.length > 1 && match.charAt(0) === '<') {
+          if (pr_commentPrefix.test(match)) { continue; }
+          if (pr_cdataPrefix.test(match)) {
+            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
+            sourceBuf.push(match.substring(9, match.length - 3));
+            sourceBufLen += match.length - 12;
+          } else if (pr_brPrefix.test(match)) {
+            // <br> tags are lexically significant so convert them to text.
+            // This is undone later.
+            sourceBuf.push('\n');
+            ++sourceBufLen;
+          } else {
+            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
+              // A <span class="nocode"> will start a section that should be
+              // ignored.  Continue walking the list until we see a matching end
+              // tag.
+              var name = match.match(pr_tagNameRe)[2];
+              var depth = 1;
+              var j;
+              end_tag_loop:
+              for (j = i + 1; j < n; ++j) {
+                var name2 = matches[j].match(pr_tagNameRe);
+                if (name2 && name2[2] === name) {
+                  if (name2[1] === '/') {
+                    if (--depth === 0) { break end_tag_loop; }
+                  } else {
+                    ++depth;
+                  }
+                }
+              }
+              if (j < n) {
+                extractedTags.push(
+                    sourceBufLen, matches.slice(i, j + 1).join(''));
+                i = j;
+              } else {  // Ignore unclosed sections.
+                extractedTags.push(sourceBufLen, match);
+              }
+            } else {
+              extractedTags.push(sourceBufLen, match);
+            }
+          }
+        } else {
+          var literalText = htmlToText(match);
+          sourceBuf.push(literalText);
+          sourceBufLen += literalText.length;
+        }
+      }
+    }
+    return { source: sourceBuf.join(''), tags: extractedTags };
+  }
+
+  /** True if the given tag contains a class attribute with the nocode class. */
+  function isNoCodeTag(tag) {
+    return !!tag
+        // First canonicalize the representation of attributes
+        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
+                 ' $1="$2$3$4"')
+        // Then look for the attribute we want.
+        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
+  }
+
+  /**
+   * Apply the given language handler to sourceCode and add the resulting
+   * decorations to out.
+   * @param {number} basePos the index of sourceCode within the chunk of source
+   *    whose decorations are already present on out.
+   */
+  function appendDecorations(basePos, sourceCode, langHandler, out) {
+    if (!sourceCode) { return; }
+    var job = {
+      source: sourceCode,
+      basePos: basePos
+    };
+    langHandler(job);
+    out.push.apply(out, job.decorations);
+  }
+
+  /** Given triples of [style, pattern, context] returns a lexing function,
+    * The lexing function interprets the patterns to find token boundaries and
+    * returns a decoration list of the form
+    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+    * where index_n is an index into the sourceCode, and style_n is a style
+    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
+    * all characters in sourceCode[index_n-1:index_n].
+    *
+    * The stylePatterns is a list whose elements have the form
+    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+    *
+    * Style is a style constant like PR_PLAIN, or can be a string of the
+    * form 'lang-FOO', where FOO is a language extension describing the
+    * language of the portion of the token in $1 after pattern executes.
+    * E.g., if style is 'lang-lisp', and group 1 contains the text
+    * '(hello (world))', then that portion of the token will be passed to the
+    * registered lisp handler for formatting.
+    * The text before and after group 1 will be restyled using this decorator
+    * so decorators should take care that this doesn't result in infinite
+    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
+    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
+    * '<script>foo()<\/script>', which would cause the current decorator to
+    * be called with '<script>' which would not match the same rule since
+    * group 1 must not be empty, so it would be instead styled as PR_TAG by
+    * the generic tag rule.  The handler registered for the 'js' extension would
+    * then be called with 'foo()', and finally, the current decorator would
+    * be called with '<\/script>' which would not match the original rule and
+    * so the generic tag rule would identify it as a tag.
+    *
+    * Pattern must only match prefixes, and if it matches a prefix, then that
+    * match is considered a token with the same style.
+    *
+    * Context is applied to the last non-whitespace, non-comment token
+    * recognized.
+    *
+    * Shortcut is an optional string of characters, any of which, if the first
+    * character, gurantee that this pattern and only this pattern matches.
+    *
+    * @param {Array} shortcutStylePatterns patterns that always start with
+    *   a known character.  Must have a shortcut string.
+    * @param {Array} fallthroughStylePatterns patterns that will be tried in
+    *   order if the shortcut ones fail.  May have shortcuts.
+    *
+    * @return {function (Object)} a
+    *   function that takes source code and returns a list of decorations.
+    */
+  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+    var shortcuts = {};
+    var tokenizer;
+    (function () {
+      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+      var allRegexs = [];
+      var regexKeys = {};
+      for (var i = 0, n = allPatterns.length; i < n; ++i) {
+        var patternParts = allPatterns[i];
+        var shortcutChars = patternParts[3];
+        if (shortcutChars) {
+          for (var c = shortcutChars.length; --c >= 0;) {
+            shortcuts[shortcutChars.charAt(c)] = patternParts;
+          }
+        }
+        var regex = patternParts[1];
+        var k = '' + regex;
+        if (!regexKeys.hasOwnProperty(k)) {
+          allRegexs.push(regex);
+          regexKeys[k] = null;
+        }
+      }
+      allRegexs.push(/[\0-\uffff]/);
+      tokenizer = combinePrefixPatterns(allRegexs);
+    })();
+
+    var nPatterns = fallthroughStylePatterns.length;
+    var notWs = /\S/;
+
+    /**
+     * Lexes job.source and produces an output array job.decorations of style
+     * classes preceded by the position at which they start in job.source in
+     * order.
+     *
+     * @param {Object} job an object like {@code
+     *    source: {string} sourceText plain text,
+     *    basePos: {int} position of job.source in the larger chunk of
+     *        sourceCode.
+     * }
+     */
+    var decorate = function (job) {
+      var sourceCode = job.source, basePos = job.basePos;
+      /** Even entries are positions in source in ascending order.  Odd enties
+        * are style markers (e.g., PR_COMMENT) that run from that position until
+        * the end.
+        * @type {Array.<number|string>}
+        */
+      var decorations = [basePos, PR_PLAIN];
+      var pos = 0;  // index into sourceCode
+      var tokens = sourceCode.match(tokenizer) || [];
+      var styleCache = {};
+
+      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+        var token = tokens[ti];
+        var style = styleCache[token];
+        var match = void 0;
+
+        var isEmbedded;
+        if (typeof style === 'string') {
+          isEmbedded = false;
+        } else {
+          var patternParts = shortcuts[token.charAt(0)];
+          if (patternParts) {
+            match = token.match(patternParts[1]);
+            style = patternParts[0];
+          } else {
+            for (var i = 0; i < nPatterns; ++i) {
+              patternParts = fallthroughStylePatterns[i];
+              match = token.match(patternParts[1]);
+              if (match) {
+                style = patternParts[0];
+                break;
+              }
+            }
+
+            if (!match) {  // make sure that we make progress
+              style = PR_PLAIN;
+            }
+          }
+
+          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+          if (isEmbedded && !(match && typeof match[1] === 'string')) {
+            isEmbedded = false;
+            style = PR_SOURCE;
+          }
+
+          if (!isEmbedded) { styleCache[token] = style; }
+        }
+
+        var tokenStart = pos;
+        pos += token.length;
+
+        if (!isEmbedded) {
+          decorations.push(basePos + tokenStart, style);
+        } else {  // Treat group 1 as an embedded block of source code.
+          var embeddedSource = match[1];
+          var embeddedSourceStart = token.indexOf(embeddedSource);
+          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+          if (match[2]) {
+            // If embeddedSource can be blank, then it would match at the
+            // beginning which would cause us to infinitely recurse on the
+            // entire token, so we catch the right context in match[2].
+            embeddedSourceEnd = token.length - match[2].length;
+            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+          }
+          var lang = style.substring(5);
+          // Decorate the left of the embedded source
+          appendDecorations(
+              basePos + tokenStart,
+              token.substring(0, embeddedSourceStart),
+              decorate, decorations);
+          // Decorate the embedded source
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceStart,
+              embeddedSource,
+              langHandlerForExtension(lang, embeddedSource),
+              decorations);
+          // Decorate the right of the embedded section
+          appendDecorations(
+              basePos + tokenStart + embeddedSourceEnd,
+              token.substring(embeddedSourceEnd),
+              decorate, decorations);
+        }
+      }
+      job.decorations = decorations;
+    };
+    return decorate;
+  }
+
+  /** returns a function that produces a list of decorations from source text.
+    *
+    * This code treats ", ', and ` as string delimiters, and \ as a string
+    * escape.  It does not recognize perl's qq() style strings.
+    * It has no special handling for double delimiter escapes as in basic, or
+    * the tripled delimiters used in python, but should work on those regardless
+    * although in those cases a single string literal may be broken up into
+    * multiple adjacent string literals.
+    *
+    * It recognizes C, C++, and shell style comments.
+    *
+    * @param {Object} options a set of optional parameters.
+    * @return {function (Object)} a function that examines the source code
+    *     in the input job and builds the decoration list.
+    */
+  function sourceDecorator(options) {
+    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+    if (options['tripleQuotedStrings']) {
+      // '''multi-line-string''', 'single-line-string', and double-quoted
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+           null, '\'"']);
+    } else if (options['multiLineStrings']) {
+      // 'multi-line-string', "multi-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+           null, '\'"`']);
+    } else {
+      // 'single-line-string', "single-line-string"
+      shortcutStylePatterns.push(
+          [PR_STRING,
+           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+           null, '"\'']);
+    }
+    if (options['verbatimStrings']) {
+      // verbatim-string-literal production from the C# grammar.  See issue 93.
+      fallthroughStylePatterns.push(
+          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+    }
+    if (options['hashComments']) {
+      if (options['cStyleComments']) {
+        // Stop C preprocessor declarations at an unclosed open comment
+        shortcutStylePatterns.push(
+            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+             null, '#']);
+        fallthroughStylePatterns.push(
+            [PR_STRING,
+             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+             null]);
+      } else {
+        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+      }
+    }
+    if (options['cStyleComments']) {
+      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+      fallthroughStylePatterns.push(
+          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+    }
+    if (options['regexLiterals']) {
+      var REGEX_LITERAL = (
+          // A regular expression literal starts with a slash that is
+          // not followed by * or / so that it is not confused with
+          // comments.
+          '/(?=[^/*])'
+          // and then contains any number of raw characters,
+          + '(?:[^/\\x5B\\x5C]'
+          // escape sequences (\x5C),
+          +    '|\\x5C[\\s\\S]'
+          // or non-nesting character sets (\x5B\x5D);
+          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+          // finally closed by a /.
+          + '/');
+      fallthroughStylePatterns.push(
+          ['lang-regex',
+           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+           ]);
+    }
+
+    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
+    if (keywords.length) {
+      fallthroughStylePatterns.push(
+          [PR_KEYWORD,
+           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
+    }
+
+    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
+    fallthroughStylePatterns.push(
+        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
+        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
+        [PR_LITERAL,
+         new RegExp(
+             '^(?:'
+             // A hex number
+             + '0x[a-f0-9]+'
+             // or an octal or decimal number,
+             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+             // possibly in scientific notation
+             + '(?:e[+\\-]?\\d+)?'
+             + ')'
+             // with an optional modifier like UL for unsigned long
+             + '[a-z]*', 'i'),
+         null, '0123456789'],
+        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
+
+    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+  }
+
+  var decorateSource = sourceDecorator({
+        'keywords': ALL_KEYWORDS,
+        'hashComments': true,
+        'cStyleComments': true,
+        'multiLineStrings': true,
+        'regexLiterals': true
+      });
+
+  /** Breaks {@code job.source} around style boundaries in
+    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
+    * and leaves the result in {@code job.prettyPrintedHtml}.
+    * @param {Object} job like {
+    *    source: {string} source as plain text,
+    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
+    *                   html preceded by their position in {@code job.source}
+    *                   in order
+    *    decorations: {Array.<number|string} an array of style classes preceded
+    *                 by the position at which they start in job.source in order
+    * }
+    * @private
+    */
+  function recombineTagsAndDecorations(job) {
+    var sourceText = job.source;
+    var extractedTags = job.extractedTags;
+    var decorations = job.decorations;
+
+    var html = [];
+    // index past the last char in sourceText written to html
+    var outputIdx = 0;
+
+    var openDecoration = null;
+    var currentDecoration = null;
+    var tagPos = 0;  // index into extractedTags
+    var decPos = 0;  // index into decorations
+    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
+
+    var adjacentSpaceRe = /([\r\n ]) /g;
+    var startOrSpaceRe = /(^| ) /gm;
+    var newlineRe = /\r\n?|\n/g;
+    var trailingSpaceRe = /[ \r\n]$/;
+    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
+
+    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
+    var isIE678 = window['_pr_isIE6']();
+    var lineBreakHtml = (
+        isIE678
+        ? (job.sourceNode.tagName === 'PRE'
+           // Use line feeds instead of <br>s so that copying and pasting works
+           // on IE.
+           // Doing this on other browsers breaks lots of stuff since \r\n is
+           // treated as two newlines on Firefox.
+           ? (isIE678 === 6 ? '&#160;\r\n' :
+              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
+           // IE collapses multiple adjacent <br>s into 1 line break.
+           // Prefix every newline with '&#160;' to prevent such behavior.
+           // &nbsp; is the same as &#160; but works in XML as well as HTML.
+           : '&#160;<br />')
+        : '<br />');
+
+    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
+    // number of the first line.
+    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
+    var lineBreaker;
+    if (numberLines) {
+      var lineBreaks = [];
+      for (var i = 0; i < 10; ++i) {
+        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
+      }
+      var lineNum = numberLines[1] && numberLines[1].length 
+          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
+      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
+      if (lineNum) {
+        html.push(' value="', lineNum + 1, '"');
+      }
+      html.push('>');
+      lineBreaker = function () {
+        var lb = lineBreaks[++lineNum % 10];
+        // If a decoration is open, we need to close it before closing a list-item
+        // and reopen it on the other side of the list item.
+        return openDecoration
+            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
+      };
+    } else {
+      lineBreaker = lineBreakHtml;
+    }
+
+    // A helper function that is responsible for opening sections of decoration
+    // and outputing properly escaped chunks of source
+    function emitTextUpTo(sourceIdx) {
+      if (sourceIdx > outputIdx) {
+        if (openDecoration && openDecoration !== currentDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        if (!openDecoration && currentDecoration) {
+          openDecoration = currentDecoration;
+          html.push('<span class="', openDecoration, '">');
+        }
+        // This interacts badly with some wikis which introduces paragraph tags
+        // into pre blocks for some strange reason.
+        // It's necessary for IE though which seems to lose the preformattedness
+        // of <pre> tags when their innerHTML is assigned.
+        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
+        // and it serves to undo the conversion of <br>s to newlines done in
+        // chunkify.
+        var htmlChunk = textToHtml(
+            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
+            .replace(lastWasSpace
+                     ? startOrSpaceRe
+                     : adjacentSpaceRe, '$1&#160;');
+        // Keep track of whether we need to escape space at the beginning of the
+        // next chunk.
+        lastWasSpace = trailingSpaceRe.test(htmlChunk);
+        html.push(htmlChunk.replace(newlineRe, lineBreaker));
+        outputIdx = sourceIdx;
+      }
+    }
+
+    while (true) {
+      // Determine if we're going to consume a tag this time around.  Otherwise
+      // we consume a decoration or exit.
+      var outputTag;
+      if (tagPos < extractedTags.length) {
+        if (decPos < decorations.length) {
+          // Pick one giving preference to extractedTags since we shouldn't open
+          // a new style that we're going to have to immediately close in order
+          // to output a tag.
+          outputTag = extractedTags[tagPos] <= decorations[decPos];
+        } else {
+          outputTag = true;
+        }
+      } else {
+        outputTag = false;
+      }
+      // Consume either a decoration or a tag or exit.
+      if (outputTag) {
+        emitTextUpTo(extractedTags[tagPos]);
+        if (openDecoration) {
+          // Close the current decoration
+          html.push('</span>');
+          openDecoration = null;
+        }
+        html.push(extractedTags[tagPos + 1]);
+        tagPos += 2;
+      } else if (decPos < decorations.length) {
+        emitTextUpTo(decorations[decPos]);
+        currentDecoration = decorations[decPos + 1];
+        decPos += 2;
+      } else {
+        break;
+      }
+    }
+    emitTextUpTo(sourceText.length);
+    if (openDecoration) {
+      html.push('</span>');
+    }
+    if (numberLines) { html.push('</li></ol>'); }
+    job.prettyPrintedHtml = html.join('');
+  }
+
+  /** Maps language-specific file extensions to handlers. */
+  var langHandlerRegistry = {};
+  /** Register a language handler for the given file extensions.
+    * @param {function (Object)} handler a function from source code to a list
+    *      of decorations.  Takes a single argument job which describes the
+    *      state of the computation.   The single parameter has the form
+    *      {@code {
+    *        source: {string} as plain text.
+    *        decorations: {Array.<number|string>} an array of style classes
+    *                     preceded by the position at which they start in
+    *                     job.source in order.
+    *                     The language handler should assigned this field.
+    *        basePos: {int} the position of source in the larger source chunk.
+    *                 All positions in the output decorations array are relative
+    *                 to the larger source chunk.
+    *      } }
+    * @param {Array.<string>} fileExtensions
+    */
+  function registerLangHandler(handler, fileExtensions) {
+    for (var i = fileExtensions.length; --i >= 0;) {
+      var ext = fileExtensions[i];
+      if (!langHandlerRegistry.hasOwnProperty(ext)) {
+        langHandlerRegistry[ext] = handler;
+      } else if ('console' in window) {
+        console['warn']('cannot override language handler %s', ext);
+      }
+    }
+  }
+  function langHandlerForExtension(extension, source) {
+    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+      // Treat it as markup if the first non whitespace character is a < and
+      // the last non-whitespace character is a >.
+      extension = /^\s*</.test(source)
+          ? 'default-markup'
+          : 'default-code';
+    }
+    return langHandlerRegistry[extension];
+  }
+  registerLangHandler(decorateSource, ['default-code']);
+  registerLangHandler(
+      createSimpleLexer(
+          [],
+          [
+           [PR_PLAIN,       /^[^<?]+/],
+           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
+           // Unescaped content in an unknown language
+           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
+           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
+           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+           // Unescaped content in javascript.  (Or possibly vbscript).
+           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+           // Contains unescaped stylesheet content
+           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
+          ]),
+      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+  registerLangHandler(
+      createSimpleLexer(
+          [
+           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
+           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+           ],
+          [
+           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+           [PR_PUNCTUATION,  /^[=<>\/]+/],
+           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
+           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
+           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
+           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
+           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
+           ]),
+      ['in.tag']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CPP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true
+        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': 'null true false'
+        }), ['json']);
+  registerLangHandler(sourceDecorator({
+          'keywords': CSHARP_KEYWORDS,
+          'hashComments': true,
+          'cStyleComments': true,
+          'verbatimStrings': true
+        }), ['cs']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JAVA_KEYWORDS,
+          'cStyleComments': true
+        }), ['java']);
+  registerLangHandler(sourceDecorator({
+          'keywords': SH_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true
+        }), ['bsh', 'csh', 'sh']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PYTHON_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'tripleQuotedStrings': true
+        }), ['cv', 'py']);
+  registerLangHandler(sourceDecorator({
+          'keywords': PERL_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['perl', 'pl', 'pm']);
+  registerLangHandler(sourceDecorator({
+          'keywords': RUBY_KEYWORDS,
+          'hashComments': true,
+          'multiLineStrings': true,
+          'regexLiterals': true
+        }), ['rb']);
+  registerLangHandler(sourceDecorator({
+          'keywords': JSCRIPT_KEYWORDS,
+          'cStyleComments': true,
+          'regexLiterals': true
+        }), ['js']);
+  registerLangHandler(
+      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+  function applyDecorator(job) {
+    var sourceCodeHtml = job.sourceCodeHtml;
+    var opt_langExtension = job.langExtension;
+
+    // Prepopulate output in case processing fails with an exception.
+    job.prettyPrintedHtml = sourceCodeHtml;
+
+    try {
+      // Extract tags, and convert the source code to plain text.
+      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
+      /** Plain text. @type {string} */
+      var source = sourceAndExtractedTags.source;
+      job.source = source;
+      job.basePos = 0;
+
+      /** Even entries are positions in source in ascending order.  Odd entries
+        * are tags that were extracted at that position.
+        * @type {Array.<number|string>}
+        */
+      job.extractedTags = sourceAndExtractedTags.tags;
+
+      // Apply the appropriate language handler
+      langHandlerForExtension(opt_langExtension, source)(job);
+      // Integrate the decorations and tags back into the source code to produce
+      // a decorated html string which is left in job.prettyPrintedHtml.
+      recombineTagsAndDecorations(job);
+    } catch (e) {
+      if ('console' in window) {
+        console['log'](e && e['stack'] ? e['stack'] : e);
+      }
+    }
+  }
+
+  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
+    var job = {
+      sourceCodeHtml: sourceCodeHtml,
+      langExtension: opt_langExtension
+    };
+    applyDecorator(job);
+    return job.prettyPrintedHtml;
+  }
+
+  function prettyPrint(opt_whenDone) {
+    function byTagName(tn) { return document.getElementsByTagName(tn); }
+    // fetch a list of nodes to rewrite
+    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
+    var elements = [];
+    for (var i = 0; i < codeSegments.length; ++i) {
+      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+        elements.push(codeSegments[i][j]);
+      }
+    }
+    codeSegments = null;
+
+    var clock = Date;
+    if (!clock['now']) {
+      clock = { 'now': function () { return (new Date).getTime(); } };
+    }
+
+    // The loop is broken into a series of continuations to make sure that we
+    // don't make the browser unresponsive when rewriting a large page.
+    var k = 0;
+    var prettyPrintingJob;
+
+    function doWork() {
+      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+                     clock.now() + 250 /* ms */ :
+                     Infinity);
+      for (; k < elements.length && clock.now() < endTime; k++) {
+        var cs = elements[k];
+        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
+          // If the classes includes a language extensions, use it.
+          // Language extensions can be specified like
+          //     <pre class="prettyprint lang-cpp">
+          // the language extension "cpp" is used to find a language handler as
+          // passed to PR_registerLangHandler.
+          var langExtension = cs.className.match(/\blang-(\w+)\b/);
+          if (langExtension) { langExtension = langExtension[1]; }
+
+          // make sure this is not nested in an already prettified element
+          var nested = false;
+          for (var p = cs.parentNode; p; p = p.parentNode) {
+            if ((p.tagName === 'pre' || p.tagName === 'code' ||
+                 p.tagName === 'xmp') &&
+                p.className && p.className.indexOf('prettyprint') >= 0) {
+              nested = true;
+              break;
+            }
+          }
+          if (!nested) {
+            // fetch the content as a snippet of properly escaped HTML.
+            // Firefox adds newlines at the end.
+            var content = getInnerHtml(cs);
+            content = content.replace(/(?:\r\n?|\n)$/, '');
+
+            // do the pretty printing
+            prettyPrintingJob = {
+              sourceCodeHtml: content,
+              langExtension: langExtension,
+              sourceNode: cs
+            };
+            applyDecorator(prettyPrintingJob);
+            replaceWithPrettyPrintedHtml();
+          }
+        }
+      }
+      if (k < elements.length) {
+        // finish up in a continuation
+        setTimeout(doWork, 250);
+      } else if (opt_whenDone) {
+        opt_whenDone();
+      }
+    }
+
+    function replaceWithPrettyPrintedHtml() {
+      var newContent = prettyPrintingJob.prettyPrintedHtml;
+      if (!newContent) { return; }
+      var cs = prettyPrintingJob.sourceNode;
+
+      // push the prettified html back into the tag.
+      if (!isRawContent(cs)) {
+        // just replace the old html with the new
+        cs.innerHTML = newContent;
+      } else {
+        // we need to change the tag to a <pre> since <xmp>s do not allow
+        // embedded tags such as the span tags used to attach styles to
+        // sections of source code.
+        var pre = document.createElement('PRE');
+        for (var i = 0; i < cs.attributes.length; ++i) {
+          var a = cs.attributes[i];
+          if (a.specified) {
+            var aname = a.name.toLowerCase();
+            if (aname === 'class') {
+              pre.className = a.value;  // For IE 6
+            } else {
+              pre.setAttribute(a.name, a.value);
+            }
+          }
+        }
+        pre.innerHTML = newContent;
+
+        // remove the old
+        cs.parentNode.replaceChild(pre, cs);
+        cs = pre;
+      }
+    }
+
+    doWork();
+    content = document.getElementById('content');
+    highlight(content, 'MUST NOT');
+    highlight(content, 'SHALL NOT');
+    highlight(content, 'MAY NOT');
+    highlight(content, 'SHOULD NOT');
+    highlight(content, 'MUST');
+    highlight(content, 'SHALL');
+    highlight(content, 'MAY');
+    highlight(content, 'SHOULD');
+
+  }
+
+function highlight(container,what) {
+    var content = container.innerHTML;
+    pattern = new RegExp(what,'g');
+    replaceWith = '<b>'+what+'</b>',
+    container.innerHTML = content.replace(pattern,replaceWith);
+}
+
+  window['PR_normalizedHtml'] = normalizedHtml;
+  window['prettyPrintOne'] = prettyPrintOne;
+  window['prettyPrint'] = prettyPrint;
+  window['PR'] = {
+        'combinePrefixPatterns': combinePrefixPatterns,
+        'createSimpleLexer': createSimpleLexer,
+        'registerLangHandler': registerLangHandler,
+        'sourceDecorator': sourceDecorator,
+        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+        'PR_COMMENT': PR_COMMENT,
+        'PR_DECLARATION': PR_DECLARATION,
+        'PR_KEYWORD': PR_KEYWORD,
+        'PR_LITERAL': PR_LITERAL,
+        'PR_NOCODE': PR_NOCODE,
+        'PR_PLAIN': PR_PLAIN,
+        'PR_PUNCTUATION': PR_PUNCTUATION,
+        'PR_SOURCE': PR_SOURCE,
+        'PR_STRING': PR_STRING,
+        'PR_TAG': PR_TAG,
+        'PR_TYPE': PR_TYPE
+      };
+})();
+
+window.onload= function() { 
+       prettyPrint();
+};
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvaudiocontrol.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvaudiocontrol.html
new file mode 100644 (file)
index 0000000..92573f4
--- /dev/null
@@ -0,0 +1,916 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVAudioControl API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVAudioControl">
+<div class="title"><h1>TVAudioControl API</h1></div>
+<div class="brief">
+        </div>
+<div class="description">
+        <p>
+This API provides the audio control features (such as volume and mute) on the TV associated device.
+There will be a <em>tizen.tvaudiocontrol</em> object that allows access to the functionality of the TV Audio Control API.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#AudioOutputMode">AudioOutputMode</a>
+</li>
+<li>
+                    1.2. <a href="#AudioBeepType">AudioBeepType</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#AudioControlManagerObject">AudioControlManagerObject</a>
+</li>
+<li>2.2. <a href="#AudioControlManager">AudioControlManager</a>
+</li>
+<li>2.3. <a href="#VolumeChangeCallback">VolumeChangeCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#AudioControlManagerObject">AudioControlManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#AudioControlManager">AudioControlManager</a></td>
+<td>
+<div>void <a href="#AudioControlManager::setMute">setMute</a> (boolean mute)</div>
+<div>boolean <a href="#AudioControlManager::isMute">isMute</a> ()</div>
+<div>void <a href="#AudioControlManager::setVolume">setVolume</a> (unsigned short volume)</div>
+<div>void <a href="#AudioControlManager::setVolumeUp">setVolumeUp</a> ()</div>
+<div>void <a href="#AudioControlManager::setVolumeDown">setVolumeDown</a> ()</div>
+<div>unsigned short <a href="#AudioControlManager::getVolume">getVolume</a> ()</div>
+<div>void <a href="#AudioControlManager::setVolumeChangeListener">setVolumeChangeListener</a> (<a href="#VolumeChangeCallback">VolumeChangeCallback</a> callback)</div>
+<div>void <a href="#AudioControlManager::unsetVolumeChangeListener">unsetVolumeChangeListener</a> ()</div>
+<div>
+<a href="#AudioOutputMode">AudioOutputMode</a> <a href="#AudioControlManager::getOutputMode">getOutputMode</a> ()</div>
+<div>void <a href="#AudioControlManager::playSound">playSound</a> (<a href="#AudioBeepType">AudioBeepType</a> type)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#VolumeChangeCallback">VolumeChangeCallback</a></td>
+<td><div>void <a href="#VolumeChangeCallback::onchanged">onchanged</a> (unsigned short volume)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="AudioOutputMode">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioOutputMode"></a><h3>1.1. AudioOutputMode</h3>
+<div class="brief">
+  An enumerator to indicate the audio output mode.
+          </div>
+<pre class="webidl prettyprint">    enum AudioOutputMode {
+        "PCM",
+        "DOLBY",
+        "DTS",
+        "AAC"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ PCM - PCM(Pulse-code modulation) audio output mode            </li>
+            <li>
+ DOLBY - Dolby audio output mode            </li>
+            <li>
+ DTS - DTS(Digital Theater System) audio output mode            </li>
+            <li>
+ AAC - AAC(Advanced Audio Coding) audio output mode            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="AudioBeepType">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioBeepType"></a><h3>1.2. AudioBeepType</h3>
+<div class="brief">
+  An enumerator to indicate the beep type.
+          </div>
+<pre class="webidl prettyprint">    enum AudioBeepType {
+        "UP",
+        "DOWN",
+        "LEFT",
+        "RIGHT",
+        "PAGE_LEFT",
+        "PAGE_RIGHT",
+        "BACK",
+        "SELECT",
+        "CANCEL",
+        "WARNING",
+        "KEYPAD",
+        "KEYPAD_ENTER",
+        "KEYPAD_DEL",
+        "MOVE",
+        "PREPARING"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ UP - The UP sound            </li>
+            <li>
+ DOWN - The DOWN sound            </li>
+            <li>
+ LEFT - The LEFT sound            </li>
+            <li>
+ RIGHT - The RIGHT sound            </li>
+            <li>
+ PAGE_LEFT - The PAGE LEFT sound            </li>
+            <li>
+ PAGE_RIGHT - The PAGE RIGHT sound            </li>
+            <li>
+ BACK - The BACK sound            </li>
+            <li>
+ SELECT - The SELECT sound            </li>
+            <li>
+ CANCEL - The CANCEL sound            </li>
+            <li>
+ WARNING - The WARNING sound            </li>
+            <li>
+ KEYPAD - The KEYPAD sound            </li>
+            <li>
+ KEYPAD_ENTER - The KEYPAD ENTER sound            </li>
+            <li>
+ KEYPAD_DEL - The KEYPAD DEL sound            </li>
+            <li>
+ MOVE - The MOVE sound            </li>
+            <li>
+ PREPARING - The PREPARING sound            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="AudioControlManagerObject">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManagerObject"></a><h3>2.1. AudioControlManagerObject</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>Tizen</em> object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface AudioControlManagerObject {
+        readonly attribute <a href="#AudioControlManager">AudioControlManager</a> tvaudiocontrol;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#AudioControlManagerObject">AudioControlManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+There will be a <em>tizen.tvaudiocontrol </em>object that allows the access to the
+Audio Control API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="AudioControlManager">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager"></a><h3>2.2. AudioControlManager</h3>
+<div class="brief">
+ This interface provides access to the API funtionalities through the <em>tizen.tvaudiocontrol</em> interface.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface AudioControlManager {
+
+        void setMute(boolean mute) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        boolean isMute() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolume(unsigned short volume) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeUp() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeDown() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        unsigned short getVolume() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeChangeListener(<a href="#VolumeChangeCallback">VolumeChangeCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unsetVolumeChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#AudioOutputMode">AudioOutputMode</a> getOutputMode() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void playSound(<a href="#AudioBeepType">AudioBeepType</a> type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="AudioControlManager::setMute">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::setMute"></a><code><b><span class="methodName">setMute</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Turns on or off the silent mode
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setMute(boolean mute);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Note that turning on mute mode does not change volume level but
+it simply disables any sound. Turning off the mute will enable sound
+with the volume level. If setVolumeUp or setVolumeDown functions
+are used, then mute is disabled.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">mute</span>: 
+ The mute state (true = turn on the silent mode, false = turn off the silent mode)
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Turn on the silent mode
+ tizen.tvaudiocontrol.setMute(true);
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Turn off the silent mode
+ tizen.tvaudiocontrol.setMute(false);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::isMute">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::isMute"></a><code><b><span class="methodName">isMute</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the mute state.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">boolean isMute();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ boolean The current mute state
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Mute to turn off the sound
+ tizen.tvaudiocontrol.setMute(true);
+
+ // Check if it is mute or not
+ if (tizen.tvaudiocontrol.isMute()) {
+     console.log("At this moment, the sound output of this device is turned off.");
+ } else {
+     alert("It's not possible!");
+ }
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Checks if increasing the volume makes the silent mode turned off.
+
+ // Mute to turn off the sound
+ tizen.tvaudiocontrol.setMute(true);
+
+ // By increasing the volume level, the mute state is changed to be off.
+ tizen.tvaudiocontrol.setVolumeUp();
+
+ // Check if it is mute or not
+ if (tizen.tvaudiocontrol.isMute()) {
+     alert("It's not possible! (API bug)");
+ } else {
+     console.log("setVolumeUp() turns off the silent mode.");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::setVolume">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::setVolume"></a><code><b><span class="methodName">setVolume</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Changes the volume level.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setVolume(unsigned short volume);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The value of <em>volume</em> is allowed from 0 to 100. If an invalid value is passed, <em>InvalidValuesError</em> will occur.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">volume</span>: 
+ The volume (the available volume range is 0 ~100)
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Sets the volume
+ tizen.tvaudiocontrol.setVolume(10);
+
+ try {
+     tizen.tvaudiocontrol.setVolume(-1);
+ } catch (e) {
+     if (e.name === "InvalidValuesError") {
+         alert("The passed value value should be in the range of 0 to 100.");
+     }
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::setVolumeUp">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::setVolumeUp"></a><code><b><span class="methodName">setVolumeUp</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Increases the volume by 1 level.
+If it is called when the volume level is 100, it will be ignored
+because the maximum volume level is 100. If mute is enabled,
+then execution of this functions will disable it.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setVolumeUp();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Sets the volume
+ tizen.tvaudiocontrol.setVolume(99);
+
+ tizen.tvaudiocontrol.setVolumeUp();
+ // Check if the current volume is 100 or not.
+ if (tizen.tvaudiocontrol.getVolume() === 100) {
+     alert("setVolumeUp() is successfully called.");
+  }
+
+ tizen.tvaudiocontrol.setVolumeUp();
+ // Check if the volume level has been changed or not at the maximum volume level.
+ if (tizen.tvaudiocontrol.getVolume() === 100) {
+     alert("setVolumeUp() is successfully called.");
+  }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::setVolumeDown">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::setVolumeDown"></a><code><b><span class="methodName">setVolumeDown</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Decreases the volume by 1 level.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setVolumeDown();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If it is called when the volume level is 0, it will be
+ignored because the minimum volume level is 0. If mute is enabled,
+then execution of this functions will disable it.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> // Sets the volume
+ tizen.tvaudiocontrol.setVolume(1);
+
+ tizen.tvaudiocontrol.setVolumeDown();
+ // Check if the current volume is 0 or not.
+ if (tizen.tvaudiocontrol.getVolume() === 0) {
+     alert("setVolumeDown() is successfully called.");
+  }
+
+ tizen.tvaudiocontrol.setVolumeDown();
+ // Check if the volume level has been changed or not at the minimum volume level.
+ if (tizen.tvaudiocontrol.getVolume() === 0) {
+     alert("setVolumeDown() is successfully called.");
+  }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::getVolume">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::getVolume"></a><code><b><span class="methodName">getVolume</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current volume level.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">unsigned short getVolume();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ unsigned short The current volume (the volume range is 0 ~ 100)
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="AudioControlManager::setVolumeChangeListener">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::setVolumeChangeListener"></a><code><b><span class="methodName">setVolumeChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Registers a volume change callback for getting notified when TV volume has been changed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setVolumeChangeListener(<a href="#VolumeChangeCallback">VolumeChangeCallback</a> callback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Note that this method overwrites the previously registered listener.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">callback</span>: 
+ The method to invoke when the volume has been changed. It will not be triggered when the silent mode is changed.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var expectedVolumeLevel = 50;
+
+ function onVolumeChanged(volume) {
+     if (volume === expectedVolumeLevel) {
+          console.log("Succeeded! The volume level has been changed to "+ volume+". ");
+     } else {
+          alert("Failed. The volume level has been changed to "+ volume+" . We expect 50.");
+     }
+ }
+
+ tizen.tvaudiocontrol.setVolume(0);
+
+ tizen.tvaudiocontrol.setVolumeChangeListener(onVolumeChanged);
+
+ tizen.tvaudiocontrol.setVolume(expectedVolumeLevel);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::unsetVolumeChangeListener">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::unsetVolumeChangeListener"></a><code><b><span class="methodName">unsetVolumeChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unregisters the volume change callback for detecting the volume changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unsetVolumeChangeListener();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var expectedVolumeLevel = 50;
+
+ function onVolumeChanged(volume) {
+     alert("This function must not be called.");
+ }
+
+ tizen.tvaudiocontrol.setVolume(0);
+
+ tizen.tvaudiocontrol.setVolumeChangeListener(onVolumeChanged);
+ tizen.tvaudiocontrol.unsetVolumeChangeListener();
+
+ tizen.tvaudiocontrol.setVolume(expectedVolumeLevel);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="AudioControlManager::getOutputMode">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::getOutputMode"></a><code><b><span class="methodName">getOutputMode</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current audio output mode.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#AudioOutputMode">AudioOutputMode</a> getOutputMode();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ AudioOutputMode The current audio output mode
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="AudioControlManager::playSound">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::AudioControlManager::playSound"></a><code><b><span class="methodName">playSound</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Plays the sound of a specific beep.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void playSound(<a href="#AudioBeepType">AudioBeepType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.audio
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span>: 
+ The beep type to play
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="VolumeChangeCallback">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::VolumeChangeCallback"></a><h3>2.3. VolumeChangeCallback</h3>
+<div class="brief">
+ This interface defines a volume change callback for getting notified information about the volume changes.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface VolumeChangeCallback {
+        void onchanged(unsigned short volume);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="VolumeChangeCallback::onchanged">
+<a class="backward-compatibility-anchor" name="::TVAudioControl::VolumeChangeCallback::onchanged"></a><code><b><span class="methodName">onchanged</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ The method invoked when the volume has been changed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onchanged(unsigned short volume);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">volume</span>: 
+ The changed volume
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of this application on a device with a TV audio control support, define the following requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/tv.audio</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVAudioControl {
+    enum AudioOutputMode {
+        "PCM",
+        "DOLBY",
+        "DTS",
+        "AAC"
+    };
+
+    enum AudioBeepType {
+        "UP",
+        "DOWN",
+        "LEFT",
+        "RIGHT",
+        "PAGE_LEFT",
+        "PAGE_RIGHT",
+        "BACK",
+        "SELECT",
+        "CANCEL",
+        "WARNING",
+        "KEYPAD",
+        "KEYPAD_ENTER",
+        "KEYPAD_DEL",
+        "MOVE",
+        "PREPARING"
+    };
+
+    [NoInterfaceObject] interface AudioControlManagerObject {
+        readonly attribute <a href="#AudioControlManager">AudioControlManager</a> tvaudiocontrol;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#AudioControlManagerObject">AudioControlManagerObject</a>;
+
+    [NoInterfaceObject] interface AudioControlManager {
+
+        void setMute(boolean mute) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        boolean isMute() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolume(unsigned short volume) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeUp() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeDown() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        unsigned short getVolume() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setVolumeChangeListener(<a href="#VolumeChangeCallback">VolumeChangeCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unsetVolumeChangeListener() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#AudioOutputMode">AudioOutputMode</a> getOutputMode() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void playSound(<a href="#AudioBeepType">AudioBeepType</a> type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface VolumeChangeCallback {
+        void onchanged(unsigned short volume);
+    };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvchannel.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvchannel.html
new file mode 100644 (file)
index 0000000..a2afd66
--- /dev/null
@@ -0,0 +1,2513 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVChannel API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVChannel">
+<div class="title"><h1>TVChannel API</h1></div>
+<div class="brief">
+        </div>
+<div class="description">
+        <p>
+The TV Channel API provides the control of channel change and
+a way to get information about the television program for supporting an Electronic Program Guide(EPG) or Interactive Program Guide(IPG).
+Using this API, TV watchers can get continuously updated EPG information about the current and upcoming TV programs on all available channels.
+        </p>
+        <p>
+Regarding tuning operation, there are some common behaviors.
+        </p>
+        <ul>
+          <li>
+<var>errorCallback</var> will be invoked if there is no channel corresponding to the request          </li>
+        </ul>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#TuneMode">TuneMode</a>
+</li>
+<li>
+                    1.2. <a href="#SignalState">SignalState</a>
+</li>
+<li>
+                    1.3. <a href="#BroadcastStandard">BroadcastStandard</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TVChannelManager">TVChannelManager</a>
+</li>
+<li>2.2. <a href="#ChannelManager">ChannelManager</a>
+</li>
+<li>2.3. <a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a>
+</li>
+<li>2.4. <a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a>
+</li>
+<li>2.5. <a href="#ChannelChangeCallback">ChannelChangeCallback</a>
+</li>
+<li>2.6. <a href="#SignalStateChangeCallback">SignalStateChangeCallback</a>
+</li>
+<li>2.7. <a href="#TuneCallback">TuneCallback</a>
+</li>
+<li>2.8. <a href="#TuneOption">TuneOption</a>
+</li>
+<li>2.9. <a href="#ChannelInfo">ChannelInfo</a>
+</li>
+<li>2.10. <a href="#ProgramInfo">ProgramInfo</a>
+</li>
+<li>2.11. <a href="#FavoriteList">FavoriteList</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TVChannelManager">TVChannelManager</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ChannelManager">ChannelManager</a></td>
+<td>
+<div>void <a href="#ChannelManager::tune">tune</a> (<a href="#TuneOption">TuneOption</a> tuneOption, <a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#ChannelManager::tuneUp">tuneUp</a> (<a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? tuneMode, optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#ChannelManager::tuneDown">tuneDown</a> (<a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? tuneMode, optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#ChannelManager::findChannel">findChannel</a> (long major, long minor, <a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#ChannelManager::getChannelList">getChannelList</a> (<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? mode, optional long? nStart, optional long? number)</div>
+<div>
+<a href="#ChannelInfo">ChannelInfo</a> <a href="#ChannelManager::getCurrentChannel">getCurrentChannel</a> (optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#ChannelManager::getProgramList">getProgramList</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="time.html#TZDate">TZDate</a> startTime, <a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? duration)</div>
+<div>
+<a href="#ProgramInfo">ProgramInfo</a>? <a href="#ChannelManager::getCurrentProgram">getCurrentProgram</a> (optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>long <a href="#ChannelManager::addChannelChangeListener">addChannelChangeListener</a> (<a href="#ChannelChangeCallback">ChannelChangeCallback</a> callback, optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#ChannelManager::removeChannelChangeListener">removeChannelChangeListener</a> (long channelListenerId)</div>
+<div>long <a href="#ChannelManager::addSignalStateChangeListener">addSignalStateChangeListener</a> (<a href="#SignalStateChangeCallback">SignalStateChangeCallback</a> callback)</div>
+<div>void <a href="#ChannelManager::removeSignalStateChangeListener">removeSignalStateChangeListener</a> (long signalListenerId)</div>
+<div>
+<a href="#FavoriteList">FavoriteList</a>[] <a href="#ChannelManager::getFavorites">getFavorites</a> ()</div>
+<div>
+<a href="#BroadcastStandard">BroadcastStandard</a> <a href="#ChannelManager::getBroadcastStandard">getBroadcastStandard</a> (optional <a href="tvwindow.html#WindowType">WindowType</a>? type)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a></td>
+<td><div>void <a href="#ProgramListSuccessCallback::onsuccess">onsuccess</a> (<a href="#ProgramInfo">ProgramInfo</a>[] programInfos)</div></td>
+</tr>
+<tr>
+<td><a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a></td>
+<td><div>void <a href="#FindChannelSuccessCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a>[] channelInfos)</div></td>
+</tr>
+<tr>
+<td><a href="#ChannelChangeCallback">ChannelChangeCallback</a></td>
+<td><div>void <a href="#ChannelChangeCallback::onchanged">onchanged</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="tvwindow.html#WindowType">WindowType</a> type)</div></td>
+</tr>
+<tr>
+<td><a href="#SignalStateChangeCallback">SignalStateChangeCallback</a></td>
+<td><div>void <a href="#SignalStateChangeCallback::onchanged">onchanged</a> (<a href="#SignalState">SignalState</a> state)</div></td>
+</tr>
+<tr>
+<td><a href="#TuneCallback">TuneCallback</a></td>
+<td>
+<div>void <a href="#TuneCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tvwindow.html#WindowType">WindowType</a> type)</div>
+<div>void <a href="#TuneCallback::onnosignal">onnosignal</a> ()</div>
+<div>void <a href="#TuneCallback::onprograminforeceived">onprograminforeceived</a> (<a href="#ProgramInfo">ProgramInfo</a> program, <a href="tvwindow.html#WindowType">WindowType</a> type)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#TuneOption">TuneOption</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ChannelInfo">ChannelInfo</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#ProgramInfo">ProgramInfo</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#FavoriteList">FavoriteList</a></td>
+<td>
+<div>void <a href="#FavoriteList::addChannel">addChannel</a> (<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#FavoriteList::removeChannel">removeChannel</a> (<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#FavoriteList::getChannels">getChannels</a> (<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional long? nStart, optional long? number)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="TuneMode">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneMode"></a><h3>1.1. TuneMode</h3>
+<div class="brief">
+ An enumerator to indicate the tune mode.
+          </div>
+<pre class="webidl prettyprint">    enum TuneMode {
+        "ALL",
+        "DIGITAL",
+        "ANALOG",
+        "FAVORITE"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+It determines the scope of channel navigation.
+          </p>
+          <ul>
+            <li>
+ ALL - The whole channels             </li>
+            <li>
+ DIGITAL - Only digital channels            </li>
+            <li>
+ ANALOG - Only analog channels            </li>
+            <li>
+ FAVORITE - Channels set as preferred by TV watchers            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="SignalState">
+<a class="backward-compatibility-anchor" name="::TVChannel::SignalState"></a><h3>1.2. SignalState</h3>
+<div class="brief">
+ An enumerator to indicate the signal state.
+          </div>
+<pre class="webidl prettyprint">    enum SignalState {
+        "SIGNAL_STATE_OK",
+        "SIGNAL_STATE_NO_SIGNAL"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ SIGNAL_STATE_OK - Signal is OK             </li>
+            <li>
+ SIGNAL_STATE_NO_SIGNAL - No signal            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="BroadcastStandard">
+<a class="backward-compatibility-anchor" name="::TVChannel::BroadcastStandard"></a><h3>1.3. BroadcastStandard</h3>
+<div class="brief">
+ An enumerator to indicate the broadcast standard.
+          </div>
+<pre class="webidl prettyprint">    enum BroadcastStandard {
+        "ATSC",
+        "DVB",
+        "ISDB",
+        "SATELLITE"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ATSC - <a href="https://en.wikipedia.org/wiki/Advanced_Television_Systems_Committee_standards">ATSC</a> standards            </li>
+            <li>
+DVB - <a href="https://en.wikipedia.org/wiki/Digital_Video_Broadcasting">DVB</a> standards            </li>
+            <li>
+ISDB - <a href="https://en.wikipedia.org/wiki/ISDB">ISDB</a> standards            </li>
+            <li>
+SATELLITE - satellite standards            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TVChannelManager">
+<a class="backward-compatibility-anchor" name="::TVChannel::TVChannelManager"></a><h3>2.1. TVChannelManager</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>tizen</em> object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVChannelManager {
+        readonly attribute <a href="#ChannelManager">ChannelManager</a> tvchannel;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVChannelManager">TVChannelManager</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+There will be a <em>tizen.tvchannel</em> object that allows access to the
+functionality of the channel module.
+          </p>
+         </div>
+</div>
+<div class="interface" id="ChannelManager">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager"></a><h3>2.2. ChannelManager</h3>
+<div class="brief">
+ This interface provides access to the API functionalities through the <em>tizen.tvchannel</em> interface.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ChannelManager {
+
+        void tune(<a href="#TuneOption">TuneOption</a> tuneOption,
+                  <a href="#TuneCallback">TuneCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                  optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void tuneUp(<a href="#TuneCallback">TuneCallback</a> successCallback,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                    optional <a href="#TuneMode">TuneMode</a>? tuneMode,
+                    optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void tuneDown(<a href="#TuneCallback">TuneCallback</a> successCallback,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                      optional <a href="#TuneMode">TuneMode</a>? tuneMode,
+                      optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void findChannel(long major,
+                         long minor,
+                         <a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getChannelList(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional <a href="#TuneMode">TuneMode</a>? mode,
+                            optional long? nStart,
+                            optional long? number) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#ChannelInfo">ChannelInfo</a> getCurrentChannel(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getProgramList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
+                            <a href="time.html#TZDate">TZDate</a> startTime,
+                            <a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional unsigned long? duration) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#ProgramInfo">ProgramInfo</a>? getCurrentProgram(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addChannelChangeListener(<a href="#ChannelChangeCallback">ChannelChangeCallback</a> callback,
+                                       optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeChannelChangeListener(long channelListenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addSignalStateChangeListener(<a href="#SignalStateChangeCallback">SignalStateChangeCallback</a> callback
+                                       ) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeSignalStateChangeListener(long signalListenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#FavoriteList">FavoriteList</a>[] getFavorites() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        
+        <a href="#BroadcastStandard">BroadcastStandard</a> getBroadcastStandard(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ChannelManager::tune">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::tune"></a><code><b><span class="methodName">tune</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Tunes the specified channel.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void tune(<a href="#TuneOption">TuneOption</a> tuneOption, <a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If there are more than one channel with the major and minor, the lowest channel in all possible channels will be switched to.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to find a requested channel              </li>
+              <li>
+ UnknownError - Failed to set the selected channel or <em>onprograminforeceived</em> for another tune was invoked              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">tuneOption</span>: 
+ The tuning option. By default, this attribute is set to <b>null</b>.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the tunning operation is completed successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+  The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var tuneCB = {
+    onsuccess: function() {
+        console.log("Tune() is successfully done. And there is a signal.");
+    }
+    onnosignal: function() {
+        console.log("Tune() is successfully done. But there is no signal.");
+    }
+ };
+
+ function channelCB(channels) {
+     console.log("getting channels is successful. " + channels.length + " channels are retreived.");
+     if (channels.length === 0 ) {
+         console.log("There is no found channel.");
+         return;
+     }
+     try {
+         tizen.tvchannel.tune({major: channels[0].major}, tuneCB);
+     } catch(error) {
+         console.log("Error name = "+ error.name + ", Error message = " + error.message);
+     }
+ }
+
+ function errorCB(error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+
+ try {
+     // requests to get information about 10 channels.
+     tizen.tvchannel.getChannelList(channelCB, errorCB, "ALL", 0, 10);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::tuneUp">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::tuneUp"></a><code><b><span class="methodName">tuneUp</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Changes channel up.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void tuneUp(<a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? tuneMode, optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+When you call this api on the highest channel, the lowest channel would be tuned.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to find the next higher channel (e.g. When there is no channels in <var>favorites</var> list, you call <var>tuneUp()</var> with <var>'FAVORITE'</var> tune mode.)               </li>
+              <li>
+ UnknownError - Failed to change to the next higher channel or <em>onprograminforeceived</em> for another tune was invoked              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the tunning operation is completed successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">tuneMode</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The tuning navigation mode. By default, this attribute is set to <var>ALL</var>.
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var tuneCB = {
+    onsuccess: function() {
+        console.log("tuneUp() is successfully done. And there is a signal.");
+    }
+    onnosignal: function() {
+        console.log("tuneUp() is successfully done. But there is no signal.");
+    }
+ };
+
+ try {
+     tizen.tvchannel.tuneUp(tuneCB, null, "ALL");
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::tuneDown">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::tuneDown"></a><code><b><span class="methodName">tuneDown</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Changes channel down.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void tuneDown(<a href="#TuneCallback">TuneCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? tuneMode, optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+When you call this api on the lowest channel, the highest channel would be tuned.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to find the next lower channel (e.g. When there is no channels in <var>favorites</var> list, you call <var>tuneDown()</var> with <var>'FAVORITE'</var> tune mode.)               </li>
+              <li>
+ UnknownError - Failed to change to the next lower channel or <em>onprograminforeceived</em> for another tune was invoked              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the tunning operation is completed successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+  The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">tuneMode</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The tuning navigation mode. By default, this attribute is set to <var>ALL</var>.
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var tuneCB = {
+    onsuccess: function() {
+        console.log("tuneDown() is successfully done. And there is a signal.");
+    }
+    onnosignal: function() {
+        console.log("tuneDown() is successfully done. But there is no signal.");
+    }
+ };
+
+ try {
+     // change the channel down according to 'ALL' navigation mode.
+     tizen.tvchannel.tuneDown(tuneCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::findChannel">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::findChannel"></a><code><b><span class="methodName">findChannel</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Retrieves information about all available channels.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void findChannel(long major, long minor, <a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to find the channel (e.g. call <var>findChannel()</var> with invalid major and minor values(e.g. non-existing channel information))              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">major</span>: 
+ The major channel number
+                </li>
+          <li class="param">
+<span class="name">minor</span>: 
+ The minor channel number
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the channel searching is done successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(channels) {
+     console.log("findChannel() is successfully done. Totally " + channels.length + " channels are found.");
+     for (var i = 0; i &lt; channels.length; i++) {
+         console.log("----- Channel [" + i + "] -----");
+         console.log("Major channel = " + channels[i].major);
+         console.log("Minor channel = " + channels[i].minor);
+         console.log("Channel Name = " + channels[i].channelName);
+         console.log("Program Number = " + channels[i].programNumber);
+         // you can get other attributes provided in ChannelInfo
+     }
+ }
+
+ try {
+     tizen.tvchannel.findChannel(9, 0, successCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::getChannelList">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getChannelList"></a><code><b><span class="methodName">getChannelList</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the TV channel list.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getChannelList(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#TuneMode">TuneMode</a>? mode, optional long? nStart, optional long? number);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If this method is invoked without <var>number</var> parameter, all available channel informations will be retrieved.
+            </p>
+            <p>
+If you call <em>getChannelList()</em> with <var>'FAVORITE'</var> tune navigation mode,
+            </p>
+            <ul>
+              <li>
+ All favorites channels will be retreived only if you have added <var>favorites</var> using your remote control.              </li>
+              <li>
+ Empty array will be returned if there is no <var>favorites</var> channel on a Tizen device.              </li>
+            </ul>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to find the channels              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when a list of tv channels is retrieved successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">mode</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The channel navigation mode. By default, this attribute is set to <var>ALL</var>.
+                </li>
+          <li class="param">
+<span class="name">nStart</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The starting index. By default, this attribute is set to <var>0</var>.
+<br> If <var>nStart</var> is a negative number, InvalidValuesError will occur.
+                </li>
+          <li class="param">
+<span class="name">number</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The number of the channel informations to retrieve. Without <var>number</var>, all vailable channel informations will be retrieved.
+<br> If <var>number</var> is a negative number, InvalidValuesError will occur.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(channels) {
+     console.log("getChannelList() is successfully done. Totally " + channels.length + " channels are retrieved.");
+     for (var i = 0; i &lt; channels.length; i++) {
+         console.log("----- Channel [" + i + "] -----");
+         console.log("Major channel = " + channels[i].major);
+         console.log("Minor channel = " + channels[i].minor);
+         console.log("Channel Name = " + channels[i].channelName);
+         console.log("Program Number = " + channels[i].programNumber);
+         // you can get other attributes provided in ChannelInfo
+     }
+ }
+
+ try {
+     // gets 10 channel information among all channels
+     tizen.tvchannel.getChannelList(successCB, null, "ALL", 0, 10);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(channels) {
+     console.log("getChannelList() is successfully done. Totally " + channels.length + " channels are retrieved.");
+     for (var i = 0; i &lt; channels.length; i++) {
+         console.log("----- Channel [" + i + "] -----");
+         console.log("Major channel = " + channels[i].major);
+         console.log("Minor channel = " + channels[i].minor);
+         console.log("Channel Name = " + channels[i].channelName);
+         console.log("Program Number = " + channels[i].programNumber);
+         // you can get other attributes provided in ChannelInfo
+     }
+ }
+
+ try {
+     // gets one digital channel.
+     tizen.tvchannel.getChannelList(successCB, null, "DIGITAL", 0, 1);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::getCurrentChannel">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getCurrentChannel"></a><code><b><span class="methodName">getCurrentChannel</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information about the current channel.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ChannelInfo">ChannelInfo</a> getCurrentChannel(optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ChannelInfo the current channel information
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var channel = tizen.tvchannel.getCurrentChannel();
+     console.log("The current channel name is "  + channel.channelName);
+     console.log("The current channel's major number is "  + channel.major);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::getProgramList">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getProgramList"></a><code><b><span class="methodName">getProgramList</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a list of programs for a specific channel within a specified time duration.
+If this method is invoked without the <var>duration</var> parameter, all available program informations are retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getProgramList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="time.html#TZDate">TZDate</a> startTime, <a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? duration);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ NotFoundError - Failed to retrieve any information about the TV program              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<p><span class="remark"> Remark : </span>
+ If a specified channel has never been tuned before, you cannot get a information about the programs. It will retrieve be empty array through ProgramListSuccessCallback.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channelInfo</span>: 
+ The channel
+                </li>
+          <li class="param">
+<span class="name">startTime</span>: 
+ The starting time to search programs.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when a list of programs is retrieved successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+  The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">duration</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The duration to search programs.(unit: hour) Without <var>duration</var> value, all available program informations are retrieved.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function programListCB(programInfos) {
+     console.log("getting all available programs is successfully retrieved.");
+     for (var i = 0; i &lt; programInfos.length; i++) {
+         console.log("--------------- Program " + i + " ---------------");
+         console.log("title = " + programInfos[i].title);
+         console.log("duration = " + programInfos[i].duration);
+         // you can get other attributes in the retrieved ProgramInfo objects.
+     }
+ }
+
+ try {
+     var channel = tizen.tvchannel.getCurrentChannel();
+     // Get all available program information
+     tizen.tvchannel.getProgramList(channel, tizen.time.getCurrentDateTime(), programListCB);
+ } catch (error) {
+     console.log(error.name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::getCurrentProgram">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getCurrentProgram"></a><code><b><span class="methodName">getCurrentProgram</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information about the current television program.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#ProgramInfo">ProgramInfo</a>? getCurrentProgram(optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If there is no TV program data grabbed from broadcaster, it will return <var>null</var>.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ ProgramInfo the information of television program
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var program = tizen.tvchannel.getCurrentProgram();
+     console.log("The current program is titled "  + program.title);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::addChannelChangeListener">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::addChannelChangeListener"></a><code><b><span class="methodName">addChannelChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a channel change listener for getting notified about the channel changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addChannelChangeListener(<a href="#ChannelChangeCallback">ChannelChangeCallback</a> callback, optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">callback</span>: 
+ The method to invoke when the channel has been changed
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The identifier to clear the watch subscription for channel changes.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if it fails to create a listener or subscribe to a signal when channel changes.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function channelChangeCB(channelInfo, type) {
+     console.log("Switched to the new channel (major = " + channelInfo.major + ", minor = " + channelInfo.minor + ", channel name = " + channelInfo.channelName);
+ }
+
+ try {
+     var channelListenerID = tizen.tvchannel.addChannelChangeListener(channelChangeCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::removeChannelChangeListener">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::removeChannelChangeListener"></a><code><b><span class="methodName">removeChannelChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes the listener to stop receiving notifications for the channel changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeChannelChangeListener(long channelListenerId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channelListenerId</span>: 
+ The identifier of the listener for channel changes
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="ChannelManager::addSignalStateChangeListener">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::addSignalStateChangeListener"></a><code><b><span class="methodName">addSignalStateChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a signal state change listener for getting notified about signal state changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addSignalStateChangeListener(<a href="#SignalStateChangeCallback">SignalStateChangeCallback</a> callback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">callback</span>: 
+ The method to invoke when the signal state has been changed
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The identifier to clear the watch subscription for signal state changes.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if it fails to create a listener or subscribe to a signal when channel changes.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function signalStateChangeCB(state) {
+     console.log("Signal state changed to: " + state);
+ }
+
+ try {
+     var signalStateChangeListenerID = tizen.tvchannel.addSignalStateChangeListener(signalStateChangeCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::removeSignalStateChangeListener">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::removeSignalStateChangeListener"></a><code><b><span class="methodName">removeSignalStateChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes the listener to stop receiving notifications about signal state changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeSignalStateChangeListener(long signalListenerId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">signalListenerId</span>: 
+ The identifier of the listener for signal state changes
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="ChannelManager::getFavorites">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getFavorites"></a><code><b><span class="methodName">getFavorites</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets a list of available favorite lists.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#FavoriteList">FavoriteList</a>[] getFavorites();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+The returned array will contain at least one <a href="#FavoriteList">FavoriteList</a>. It will also contain any empty favorite lists.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ FavoriteList[] The array of favorite lists.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var favorites = tizen.tvchannel.getFavorites();
+     for (var i = 0; i &lt; favorites.length; ++i) {
+         console.log("Favorite id: " + favorites[i].id);
+     }
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="ChannelManager::getBroadcastStandard">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelManager::getBroadcastStandard"></a><code><b><span class="methodName">getBroadcastStandard</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the video broadcast standard.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#BroadcastStandard">BroadcastStandard</a> getBroadcastStandard(optional <a href="tvwindow.html#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this attribute is set to <var>MAIN</var>.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var res = tizen.tvchannel.getBroadcastStandard();
+ console.log("Video standard: " + res);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ProgramListSuccessCallback">
+<a class="backward-compatibility-anchor" name="::TVChannel::ProgramListSuccessCallback"></a><h3>2.3. ProgramListSuccessCallback</h3>
+<div class="brief">
+ This interface invokes the success callback that is invoked when the list of TV program informations is successfully retrieved.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface ProgramListSuccessCallback {
+        void onsuccess(<a href="#ProgramInfo">ProgramInfo</a>[] programInfos);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ProgramListSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVChannel::ProgramListSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ The method invoked when the list of TV program informations is retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ProgramInfo">ProgramInfo</a>[] programInfos);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">programInfos</span>: 
+ A list of TV program informations of a channel
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="FindChannelSuccessCallback">
+<a class="backward-compatibility-anchor" name="::TVChannel::FindChannelSuccessCallback"></a><h3>2.4. FindChannelSuccessCallback</h3>
+<div class="brief">
+ The interface invokes the success callback that is invoked when all available channels are searched.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface FindChannelSuccessCallback {
+        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a>[] channelInfos);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FindChannelSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVChannel::FindChannelSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when all channels are found.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a>[] channelInfos);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channelInfos</span>: 
+ A list of channel Informations
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ChannelChangeCallback">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelChangeCallback"></a><h3>2.5. ChannelChangeCallback</h3>
+<div class="brief">
+ The interface defines a channel change callback for getting notified information about the channel changes.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface ChannelChangeCallback {
+        void onchanged(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="tvwindow.html#WindowType">WindowType</a> type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="ChannelChangeCallback::onchanged">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelChangeCallback::onchanged"></a><code><b><span class="methodName">onchanged</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the channel has been changed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onchanged(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="tvwindow.html#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channelInfo</span>: 
+ The switched channel information
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SignalStateChangeCallback">
+<a class="backward-compatibility-anchor" name="::TVChannel::SignalStateChangeCallback"></a><h3>2.6. SignalStateChangeCallback</h3>
+<div class="brief">
+ The interface defines a signal state change callback for getting notified information about signal state changes.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface SignalStateChangeCallback {
+        void onchanged(<a href="#SignalState">SignalState</a> state);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SignalStateChangeCallback::onchanged">
+<a class="backward-compatibility-anchor" name="::TVChannel::SignalStateChangeCallback::onchanged"></a><code><b><span class="methodName">onchanged</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the signal state has been changed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onchanged(<a href="#SignalState">SignalState</a> state);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">state</span>: 
+ The changed signal state.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="TuneCallback">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneCallback"></a><h3>2.7. TuneCallback</h3>
+<div class="brief">
+ This interface invokes the callback that is invoked when the tuning has been completed.
+          </div>
+<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface TuneCallback {
+        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tvwindow.html#WindowType">WindowType</a> type);
+
+        void onnosignal();
+
+        void onprograminforeceived(<a href="#ProgramInfo">ProgramInfo</a> program, <a href="tvwindow.html#WindowType">WindowType</a> type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+This callback interface specifies two methods:
+          </p>
+          <ul>
+            <li>
+ <em>onsuccess()</em> - Invoked when the tuning operation has been successfully done and there is a TV signal.            </li>
+            <li>
+ <em>onnosignal()</em> - Invoked when the tuning operation has been successfully done but there is no signal on the switched channel.            </li>
+            <li>
+ <em>onprograminforeceived()</em> - Invoked when information about the current program is available after the tune operation.            </li>
+          </ul>
+          <p>
+All these callback methods can be invoked by <b>tizen.tvchannel.tune(), tuneUp() or tuneDown()</b>.
+          </p>
+          <p>
+If there is a TV signal, <b>onsuccess()</b> will be invoked first, and then <b>onprograminforeceived()</b> will be invoked
+if information about TV program exists.
+But on the other hand, if there is no TV signal, <b>onnosignal()</b> will be invoked.
+          </p>
+         </div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TuneCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the tuning is successfully done.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tvwindow.html#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channel</span>: 
+ The tuned channel information
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+<dt class="method" id="TuneCallback::onnosignal">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneCallback::onnosignal"></a><code><b><span class="methodName">onnosignal</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the tuning is successfully done but there is no signal on the switched channel.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onnosignal();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="method" id="TuneCallback::onprograminforeceived">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneCallback::onprograminforeceived"></a><code><b><span class="methodName">onprograminforeceived</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when information about the current program is available after the tune operation
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onprograminforeceived(<a href="#ProgramInfo">ProgramInfo</a> program, <a href="tvwindow.html#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+If there is no TV program data grabbed from broadcaster, <var>onprograminreceived</var> won't be invoked.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">program</span>: 
+ the information about program on offer from The tuned channel
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="dictionary" id="TuneOption">
+<a class="backward-compatibility-anchor" name="::TVChannel::TuneOption"></a><h3>2.8. TuneOption</h3>
+<div class="brief">
+ This dictionary specifies the tunning option.
+          </div>
+<pre class="webidl prettyprint">    dictionary TuneOption {
+        long? major;
+
+        long? minor;
+
+        long? sourceID;
+
+        long? programNumber;
+
+        long? transportStreamID;
+
+        long? ptc;
+
+        long? originalNetworkID;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Dictionary members</h4>
+<dl>
+<dt class="member" id="TuneOption::major"><span class="attrName">long? major</span></dt>
+<dd>
+<div class="brief">
+ The major channel number
+<br>The first number in a two-part number used to identify a virtual channel.
+Each virtual channel carries one service, such as a television program.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::minor"><span class="attrName">long? minor</span></dt>
+<dd>
+<div class="brief">
+ The minor channel number
+<br>The second number in a two-part number used to identify a virtual channel.
+The minor number changes for each different service that is or will be present in a DTV transport stream.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::sourceID"><span class="attrName">long? sourceID</span></dt>
+<dd>
+<div class="brief">
+ Source ID
+            </div>
+<div class="description">
+            <p>
+It is a number that uniquely identifies a source of scheduled programming.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::programNumber"><span class="attrName">long? programNumber</span></dt>
+<dd>
+<div class="brief">
+ Program number
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::transportStreamID"><span class="attrName">long? transportStreamID</span></dt>
+<dd>
+<div class="brief">
+ TSID (Transport Stream ID or transmission signal ID)
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::ptc"><span class="attrName">long? ptc</span></dt>
+<dd>
+<div class="brief">
+ PTC(Physical Transmission Channel) number
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+<dt class="member" id="TuneOption::originalNetworkID"><span class="attrName">long? originalNetworkID</span></dt>
+<dd>
+<div class="brief">
+ Original network ID
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="ChannelInfo">
+<a class="backward-compatibility-anchor" name="::TVChannel::ChannelInfo"></a><h3>2.9. ChannelInfo</h3>
+<div class="brief">
+ This interface represents the object for identifying a TV channel.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ChannelInfo {
+        readonly attribute long major;
+
+        readonly attribute long minor;
+
+        readonly attribute DOMString channelName;
+
+        readonly attribute long programNumber;
+
+        readonly attribute long ptc;
+
+        readonly attribute long lcn;
+
+        readonly attribute long sourceID;
+
+        readonly attribute long transportStreamID;
+
+        readonly attribute long originalNetworkID;
+
+        readonly attribute DOMString serviceName;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ChannelInfo::major">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">major</span></span><div class="brief">
+ The major channel number
+<br>The first number in a two-part number used to identify a virtual channel.
+Each virtual channel carries one service, such as a television program.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::minor">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">minor</span></span><div class="brief">
+ The minor channel number
+<br>The second number in a two-part number used to identify a virtual channel.
+The minor number changes for each different service that is or will be present in a DTV transport stream.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::channelName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">channelName</span></span><div class="brief">
+ Channel Name to represent the station's indentity
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::programNumber">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">programNumber</span></span><div class="brief">
+ Program number
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::ptc">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">ptc</span></span><div class="brief">
+ PTC(Physical Transmission Channel) number
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::lcn">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">lcn</span></span><div class="brief">
+ The logical channel number
+<br>It is used in DVB(Digital Video Broadcasting) standards for digital television.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::sourceID">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">sourceID</span></span><div class="brief">
+ source ID
+            </div>
+<div class="description">
+            <p>
+It is a number that uniquely identifies a source of scheduled programming.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::transportStreamID">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">transportStreamID</span></span><div class="brief">
+ TSID (Transport Stream ID or transmission signal ID)
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::originalNetworkID">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">originalNetworkID</span></span><div class="brief">
+ Original Network ID
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ChannelInfo::serviceName">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">serviceName</span></span><div class="brief">
+ Service Name
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="ProgramInfo">
+<a class="backward-compatibility-anchor" name="::TVChannel::ProgramInfo"></a><h3>2.10. ProgramInfo</h3>
+<div class="brief">
+ This interface represents information about the television program.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface ProgramInfo {
+        readonly attribute DOMString title;
+
+        readonly attribute <a href="time.html#TZDate">TZDate</a> startTime;
+
+        readonly attribute long duration;
+
+        readonly attribute DOMString? detailedDescription;
+
+        readonly attribute DOMString? language;
+
+        readonly attribute DOMString? rating;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="ProgramInfo::title">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">title</span></span><div class="brief">
+ The program title
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ProgramInfo::startTime">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">TZDate </span><span class="name">startTime</span></span><div class="brief">
+ The program start time
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ProgramInfo::duration">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">duration</span></span><div class="brief">
+ The duration of the program
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ProgramInfo::detailedDescription">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">detailedDescription</span><span class="optional"> [nullable]</span></span><div class="brief">
+ A detailed description of the program's content.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ProgramInfo::language">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">language</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Language information
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="ProgramInfo::rating">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">DOMString </span><span class="name">rating</span><span class="optional"> [nullable]</span></span><div class="brief">
+ Rating information
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="FavoriteList">
+<a class="backward-compatibility-anchor" name="::TVChannel::FavoriteList"></a><h3>2.11. FavoriteList</h3>
+<div class="brief">
+ This interface represents a favorite list.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface FavoriteList {
+        readonly attribute long id;
+
+        void addChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+
+        void removeChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getChannels(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional long? nStart,
+                            optional long? number) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul><li class="attribute" id="FavoriteList::id">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">id</span></span><div class="brief">
+ The ID of favorite list.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li></ul>
+</div>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="FavoriteList::addChannel">
+<a class="backward-compatibility-anchor" name="::TVChannel::FavoriteList::addChannel"></a><code><b><span class="methodName">addChannel</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a channel to a specific favorite list.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void addChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+If the channel already exists in a list, this operation has no effect. A channel can be added to multiple favorite lists.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ UnknownError - In case of unknown error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channel</span>: 
+ The channel to add.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the channel is added successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in case of unknown error
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var favorites = tizen.tvchannel.getFavorites();
+     var channel = tizen.tvchannel.getCurrentChannel();
+     favorites[0].addChannel(channel, function() {
+         console.log("Channel added");
+     }, function(error) {
+         console.log("Error callback: name = "+ error.name + ", Error message = " + error.message);
+     });
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FavoriteList::removeChannel">
+<a class="backward-compatibility-anchor" name="::TVChannel::FavoriteList::removeChannel"></a><code><b><span class="methodName">removeChannel</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes a channel from a specific favorite list.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+If the channel is not in a favorite list, the operation completes without any error.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ UnknownError - In case of unknown error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">channel</span>: 
+ The channel to remove.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the channel is removed successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in case of unknown error
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var favorites = tizen.tvchannel.getFavorites();
+     var channel = tizen.tvchannel.getCurrentChannel();
+     favorites[0].removeChannel(channel, function() {
+         console.log("Channel removed");
+     }, function(error) {
+         console.log("Error callback: name = "+ error.name + ", Error message = " + error.message);
+     });
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="FavoriteList::getChannels">
+<a class="backward-compatibility-anchor" name="::TVChannel::FavoriteList::getChannels"></a><code><b><span class="methodName">getChannels</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the list of TV channels in a specific favorite list.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getChannels(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional long? nStart, optional long? number);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+If this method is called without specifying the <var>number</var> parameter, all channels from the given favorite list will be retrieved.
+            </p>
+            <p>
+The <em>ErrorCallback</em> will be launched in the following situations:
+            </p>
+            <ul>
+              <li>
+ UnknownError - In case of unknown error              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.channel
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when a list of TV channels is retrieved successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+          <li class="param">
+<span class="name">nStart</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The starting index. By default, this attribute is set to <var>0</var>.
+<br> If <var>nStart</var> is a negative number, the InvalidValuesError exception will occur
+                </li>
+          <li class="param">
+<span class="name">number</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The number of channels to retrieve. Without <var>number</var>, all channels in the favorite list will be retrieved..
+<br> A negative nStart will cause InvalidValuesError.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(channels) {
+     console.log("Totally " + channels.length + " channels are retrieved.");
+     for (var i = 0; i &lt; channels.length; i++) {
+         console.log("----- Channel [" + i + "] -----");
+         console.log("Major channel = " + channels[i].major);
+         console.log("Minor channel = " + channels[i].minor);
+         console.log("Channel Name = " + channels[i].channelName);
+         console.log("Program Number = " + channels[i].programNumber);
+         // you can get other attributes provided in ChannelInfo
+     }
+ }
+
+ try {
+     var favorites = tizen.tvchannel.getFavorites();
+     // gets channel information for 10 channels
+     favorites[0].getChannels(successCB, null, 0, 10);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of this application on a device with a tuner, define the following requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/tv.tuner</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVChannel {
+
+    enum TuneMode {
+        "ALL",
+        "DIGITAL",
+        "ANALOG",
+        "FAVORITE"
+    };
+
+    enum SignalState {
+        "SIGNAL_STATE_OK",
+        "SIGNAL_STATE_NO_SIGNAL"
+    };
+
+    enum BroadcastStandard {
+        "ATSC",
+        "DVB",
+        "ISDB",
+        "SATELLITE"
+    };
+
+    [NoInterfaceObject] interface TVChannelManager {
+        readonly attribute <a href="#ChannelManager">ChannelManager</a> tvchannel;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVChannelManager">TVChannelManager</a>;
+
+    [NoInterfaceObject] interface ChannelManager {
+
+        void tune(<a href="#TuneOption">TuneOption</a> tuneOption,
+                  <a href="#TuneCallback">TuneCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                  optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void tuneUp(<a href="#TuneCallback">TuneCallback</a> successCallback,
+                    optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                    optional <a href="#TuneMode">TuneMode</a>? tuneMode,
+                    optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void tuneDown(<a href="#TuneCallback">TuneCallback</a> successCallback,
+                      optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                      optional <a href="#TuneMode">TuneMode</a>? tuneMode,
+                      optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void findChannel(long major,
+                         long minor,
+                         <a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                         optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getChannelList(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional <a href="#TuneMode">TuneMode</a>? mode,
+                            optional long? nStart,
+                            optional long? number) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#ChannelInfo">ChannelInfo</a> getCurrentChannel(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getProgramList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
+                            <a href="time.html#TZDate">TZDate</a> startTime,
+                            <a href="#ProgramListSuccessCallback">ProgramListSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional unsigned long? duration) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#ProgramInfo">ProgramInfo</a>? getCurrentProgram(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addChannelChangeListener(<a href="#ChannelChangeCallback">ChannelChangeCallback</a> callback,
+                                       optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeChannelChangeListener(long channelListenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addSignalStateChangeListener(<a href="#SignalStateChangeCallback">SignalStateChangeCallback</a> callback
+                                       ) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeSignalStateChangeListener(long signalListenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#FavoriteList">FavoriteList</a>[] getFavorites() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        
+        <a href="#BroadcastStandard">BroadcastStandard</a> getBroadcastStandard(optional <a href="tvwindow.html#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface ProgramListSuccessCallback {
+        void onsuccess(<a href="#ProgramInfo">ProgramInfo</a>[] programInfos);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface FindChannelSuccessCallback {
+        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a>[] channelInfos);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface ChannelChangeCallback {
+        void onchanged(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="tvwindow.html#WindowType">WindowType</a> type);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface SignalStateChangeCallback {
+        void onchanged(<a href="#SignalState">SignalState</a> state);
+    };
+
+    [Callback, NoInterfaceObject] interface TuneCallback {
+        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tvwindow.html#WindowType">WindowType</a> type);
+
+        void onnosignal();
+
+        void onprograminforeceived(<a href="#ProgramInfo">ProgramInfo</a> program, <a href="tvwindow.html#WindowType">WindowType</a> type);
+    };
+
+    dictionary TuneOption {
+        long? major;
+
+        long? minor;
+
+        long? sourceID;
+
+        long? programNumber;
+
+        long? transportStreamID;
+
+        long? ptc;
+
+        long? originalNetworkID;
+    };
+
+    [NoInterfaceObject] interface ChannelInfo {
+        readonly attribute long major;
+
+        readonly attribute long minor;
+
+        readonly attribute DOMString channelName;
+
+        readonly attribute long programNumber;
+
+        readonly attribute long ptc;
+
+        readonly attribute long lcn;
+
+        readonly attribute long sourceID;
+
+        readonly attribute long transportStreamID;
+
+        readonly attribute long originalNetworkID;
+
+        readonly attribute DOMString serviceName;
+    };
+
+    [NoInterfaceObject] interface ProgramInfo {
+        readonly attribute DOMString title;
+
+        readonly attribute <a href="time.html#TZDate">TZDate</a> startTime;
+
+        readonly attribute long duration;
+
+        readonly attribute DOMString? detailedDescription;
+
+        readonly attribute DOMString? language;
+
+        readonly attribute DOMString? rating;
+    };
+
+    [NoInterfaceObject] interface FavoriteList {
+        readonly attribute long id;
+
+        void addChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+
+        void removeChannel(<a href="#ChannelInfo">ChannelInfo</a> channel, <a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getChannels(<a href="#FindChannelSuccessCallback">FindChannelSuccessCallback</a> successCallback,
+                            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                            optional long? nStart,
+                            optional long? number) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvdisplaycontrol.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvdisplaycontrol.html
new file mode 100644 (file)
index 0000000..2871a07
--- /dev/null
@@ -0,0 +1,530 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVDisplayControl API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVDisplayControl">
+<div class="title"><h1>TVDisplayControl API</h1></div>
+<div class="brief">
+        </div>
+<div class="description">
+        <p>
+This API provides interfaces for managing stereoscopic 3D effects
+for television signals.
+        </p>
+        <p>
+Modern TVs and projectors can display two images, a left image and a right image,
+which are displayed to the left and right eyes respectively. This technique creates
+an illusion of depth, which is perceived by users as a 3D image.
+        </p>
+        <p>
+For more information about stereoscopy, see this
+<a href="http://en.wikipedia.org/wiki/Stereoscopy">Wikipedia article</a>.
+        </p>
+        <p>
+There are several formats of input images supported by the stereoscopy
+plugin:
+        </p>
+        <ul>
+          <li>
+Side-by-side: Left and right images are merged into one
+picture. The left image is at the left side and the right image is at the right
+side. Both images are scaled to fit in the original
+image ratio.          </li>
+          <li>
+Top-bottom: Left and right images are merged into one
+picture. The left image is at the top and the right image is at the bottom.
+Both images are scaled to fit in the original image ratio.          </li>
+          <li>
+Line-by-line: Left and right images are interlaced by row.
+The first row belongs to the left image and the second row
+belongs to the right image, and so on.          </li>
+          <li>
+Vertical-strip: Left and right images are interlaced by column.
+The first column belongs to the left image and the second column
+belongs to the right image, and so on.          </li>
+          <li>
+Frame-sequence: Left and right images are interlaced by frames.          </li>
+        </ul>
+        <p>
+Advanced devices are able to computationally generate depth
+data by processing non-stereoscopic images. Depth data is used
+to render left and right stereoscopic images from a source image which lacks
+this information. The quality of such stereoscopic images depends
+on the computational power used for processing, the algorithms used and the properties
+of the source data. For more information see this
+<a href="http://en.wikipedia.org/wiki/2D_to_3D_conversion">Wikipedia article.</a>        </p>
+        <p>
+There will be a <em>tizen.tvdisplaycontrol</em> object that allows accessing the
+functionality of the display control API.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#Display3DEffectMode">Display3DEffectMode</a>
+</li>
+<li>
+                    1.2. <a href="#Display3DModeState">Display3DModeState</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#DisplayControlManagerObject">DisplayControlManagerObject</a>
+</li>
+<li>2.2. <a href="#DisplayControlManager">DisplayControlManager</a>
+</li>
+<li>2.3. <a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#DisplayControlManagerObject">DisplayControlManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#DisplayControlManager">DisplayControlManager</a></td>
+<td>
+<div>
+<a href="#Display3DEffectMode">Display3DEffectMode</a> <a href="#DisplayControlManager::get3DEffectMode">get3DEffectMode</a> ()</div>
+<div>
+<a href="#Display3DModeState">Display3DModeState</a> <a href="#DisplayControlManager::is3DModeEnabled">is3DModeEnabled</a> ()</div>
+<div>void <a href="#DisplayControlManager::getSupported3DEffectModeList">getSupported3DEffectModeList</a> (<a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a></td>
+<td><div>void <a href="#Mode3DEffectListSupportCallback::onsuccess">onsuccess</a> (<a href="#Display3DEffectMode">Display3DEffectMode</a>[] mode3DEffects)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="Display3DEffectMode">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::Display3DEffectMode"></a><h3>1.1. Display3DEffectMode</h3>
+<div class="brief">
+ An enumerator to indicate 3D effect mode.
+          </div>
+<pre class="webidl prettyprint">    enum Display3DEffectMode {
+        "OFF",
+        "TOP_BOTTOM",
+        "SIDE_BY_SIDE",
+        "LINE_BY_LINE",
+        "VERTICAL_STRIPE",
+        "FRAME_SEQUENCE",
+        "CHECKER_BD",
+        "FROM_2D_TO_3D"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+OFF - identifier for 3DEffect mode off             </li>
+            <li>
+TOP_BOTTOM - Left image at the top, right image at the bottom             </li>
+            <li>
+SIDE_BY_SIDE - Left image at the left side, right image at the right
+side             </li>
+            <li>
+LINE_BY_LINE - Left and right image interlaced
+by row             </li>
+            <li>
+VERTICAL_STRIP - Left and right image interlaced
+by column             </li>
+            <li>
+FRAME_SEQUENCE -  Left and right image interlaced by frame             </li>
+            <li>
+CHECKER_BD - Checkerboard (only for PC or game console sources)             </li>
+            <li>
+FROM_2D_TO_3D - Left and right image computed from
+non-stereoscopic image             </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="Display3DModeState">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::Display3DModeState"></a><h3>1.2. Display3DModeState</h3>
+<div class="brief">
+ An enumerator to indicate 3D mode state.
+          </div>
+<pre class="webidl prettyprint">    enum Display3DModeState {
+        "NOT_CONNECTED",
+        "NOT_SUPPORTED",
+        "READY"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ NOT_CONNECTED - The device (e.g. Blu-ray player) supports 3D mode but a 3D display is not connected.            </li>
+            <li>
+ NOT_SUPPORTED - The device does not support 3D mode.            </li>
+            <li>
+ READY - The device supports 3D mode and it can display 3D mode.            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="DisplayControlManagerObject">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::DisplayControlManagerObject"></a><h3>2.1. DisplayControlManagerObject</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>tizen</em> object.
+There will be a <em>tizen.tvdisplaycontrol </em>object that allows the access to the Display Control API.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DisplayControlManagerObject {
+        readonly attribute <a href="#DisplayControlManager">DisplayControlManager</a> tvdisplaycontrol;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DisplayControlManagerObject">DisplayControlManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+For example, Display Control API provides whether your device supports 3D.
+          </p>
+         </div>
+</div>
+<div class="interface" id="DisplayControlManager">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::DisplayControlManager"></a><h3>2.2. DisplayControlManager</h3>
+<div class="brief">
+ This interface provides access to the Display Control API functionalities through the <em>tizen.tvdisplaycontrol</em> interface.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface DisplayControlManager {
+
+        <a href="#Display3DEffectMode">Display3DEffectMode</a> get3DEffectMode() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Display3DModeState">Display3DModeState</a> is3DModeEnabled() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getSupported3DEffectModeList(<a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a> successCallback,
+                                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="DisplayControlManager::get3DEffectMode">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::DisplayControlManager::get3DEffectMode"></a><code><b><span class="methodName">get3DEffectMode</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the current 3D effect mode.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#Display3DEffectMode">Display3DEffectMode</a> get3DEffectMode();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.display
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Display3DEffectMode The current mode of 3D effect
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+      var current3Dmode = tizen.tvdisplaycontrol.get3DEffectMode()
+      console.log("The current 3D mode is " + current3Dmode + ".");
+ } catch (error) {
+     console.log(error.name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DisplayControlManager::is3DModeEnabled">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::DisplayControlManager::is3DModeEnabled"></a><code><b><span class="methodName">is3DModeEnabled</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Checks whether playing 3D mode is available or not.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#Display3DModeState">Display3DModeState</a> is3DModeEnabled();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.display
+            </p>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ Display3DModeState The current state to display 3D contents
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     if (tizen.tvdisplaycontrol.is3DModeEnabled() === "NOT_SUPPORTED") {
+         console.log("The current device does not support 3D mode.");
+     } else if (tizen.tvdisplaycontrol.is3DModeEnabled() === "READY") {
+         console.log("The current device supports 3D mode and can display 3D contents. Maybe it is a 3D TV device or is connected with 3D display device.");
+     } else {
+         console.log("The current device supports 3D mode but cannot display 3D contents. It may be a 3D Blu-ray player device which is not connected with 3D display device.");
+     }
+ } catch (error) {
+     console.log(error.name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="DisplayControlManager::getSupported3DEffectModeList">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::DisplayControlManager::getSupported3DEffectModeList"></a><code><b><span class="methodName">getSupported3DEffectModeList</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the supported 3D effects.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getSupported3DEffectModeList(<a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.display
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when a list of supported 3D modes is retrieved successfully.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type NotSupportedError, if this feature is not supported.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(effects) {
+     for( var i = 0; i &lt; effects.length; ++i ) {
+         console.log(effects[i] +" : this mode is supported on a device.");
+     }
+ }
+
+ function errorCB(error) {
+     console.log("An error occurs when getSupported3DEffectModeList() is invoked. Error(name: " + error.name +" , message: "+ error.message +")");
+ }
+
+ try {
+     tizen.tvdisplaycontrol.getSupported3DEffectModeList(successCB, errorCB);
+ } catch (error) {
+     console.log(error.name);
+ }
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="Mode3DEffectListSupportCallback">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::Mode3DEffectListSupportCallback"></a><h3>2.3. Mode3DEffectListSupportCallback</h3>
+<div class="brief">
+ This interface defines a callback when a list of supported 3D modes is retrieved successfully.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface Mode3DEffectListSupportCallback {
+        void onsuccess(<a href="#Display3DEffectMode">Display3DEffectMode</a>[] mode3DEffects);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="Mode3DEffectListSupportCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVDisplayControl::Mode3DEffectListSupportCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the list of 3D modes is retrieved successfully.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Display3DEffectMode">Display3DEffectMode</a>[] mode3DEffects);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">mode3DEffects</span>: 
+ A list of supported 3D effect modes
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of this application on a device with a TV display control support, define the following requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/tv.display</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVDisplayControl {
+
+    enum Display3DEffectMode {
+        "OFF",
+        "TOP_BOTTOM",
+        "SIDE_BY_SIDE",
+        "LINE_BY_LINE",
+        "VERTICAL_STRIPE",
+        "FRAME_SEQUENCE",
+        "CHECKER_BD",
+        "FROM_2D_TO_3D"
+    };
+
+    enum Display3DModeState {
+        "NOT_CONNECTED",
+        "NOT_SUPPORTED",
+        "READY"
+    };
+
+    [NoInterfaceObject] interface DisplayControlManagerObject {
+        readonly attribute <a href="#DisplayControlManager">DisplayControlManager</a> tvdisplaycontrol;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#DisplayControlManagerObject">DisplayControlManagerObject</a>;
+
+    [NoInterfaceObject] interface DisplayControlManager {
+
+        <a href="#Display3DEffectMode">Display3DEffectMode</a> get3DEffectMode() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#Display3DModeState">Display3DModeState</a> is3DModeEnabled() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getSupported3DEffectModeList(<a href="#Mode3DEffectListSupportCallback">Mode3DEffectListSupportCallback</a> successCallback,
+                                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface Mode3DEffectListSupportCallback {
+        void onsuccess(<a href="#Display3DEffectMode">Display3DEffectMode</a>[] mode3DEffects);
+    };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvinfo.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvinfo.html
new file mode 100644 (file)
index 0000000..167f1c0
--- /dev/null
@@ -0,0 +1,633 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVInfo API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVInfo">
+<div class="title"><h1>TVInfo API</h1></div>
+<div class="brief">
+ The TVInfo API provides functions to get settings values that are provided by the Tizen TV.
+        </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#CaptionInfoKey">CaptionInfoKey</a>
+</li>
+<li>
+                    1.2. <a href="#CaptionState">CaptionState</a>
+</li>
+<li>
+                    1.3. <a href="#CaptionMode">CaptionMode</a>
+</li>
+<li>
+                    1.4. <a href="#CaptionFontSize">CaptionFontSize</a>
+</li>
+<li>
+                    1.5. <a href="#CaptionFontStyle">CaptionFontStyle</a>
+</li>
+<li>
+                    1.6. <a href="#CaptionColor">CaptionColor</a>
+</li>
+<li>
+                    1.7. <a href="#CaptionOpacity">CaptionOpacity</a>
+</li>
+<li>
+                    1.8. <a href="#CaptionEdge">CaptionEdge</a>
+</li>
+<li>
+                    1.9. <a href="#CaptionValue">CaptionValue</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TVInfoManagerObject">TVInfoManagerObject</a>
+</li>
+<li>2.2. <a href="#TVInfoManager">TVInfoManager</a>
+</li>
+<li>2.3. <a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TVInfoManagerObject">TVInfoManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#TVInfoManager">TVInfoManager</a></td>
+<td>
+<div>
+<a href="#CaptionValue">CaptionValue</a> <a href="#TVInfoManager::getCaptionValue">getCaptionValue</a> (<a href="#CaptionInfoKey">CaptionInfoKey</a> key)</div>
+<div>long <a href="#TVInfoManager::addCaptionValueChangeListener">addCaptionValueChangeListener</a> (<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a> callback)</div>
+<div>void <a href="#TVInfoManager::removeCaptionValueChangeListener">removeCaptionValueChangeListener</a> (long watchId)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a></td>
+<td><div>void <a href="#CaptionValueChangeCallback::onchanged">onchanged</a> (<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValue">CaptionValue</a> value)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="CaptionInfoKey">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionInfoKey"></a><h3>1.1. CaptionInfoKey</h3>
+<div class="brief">
+ Available keys for the caption menu.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionInfoKey { "CAPTION_ONOFF_KEY", "CAPTION_MODE_KEY", "CAPTION_FONT_SIZE_KEY", "CAPTION_FONT_STYLE_KEY",
+        "CAPTION_FONT_COLOR_KEY", "CAPTION_FONT_OPACITY_KEY", "CAPTION_BG_COLOR_KEY", "CAPTION_BG_OPACITY_KEY",
+        "CAPTION_EDGE_TYPE_KEY", "CAPTION_EDGE_COLOR_KEY", "CAPTION_WINDOW_COLOR_KEY", "CAPTION_WINDOW_OPACITY_KEY" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+CAPTION_ONOFF_KEY - caption state            </li>
+            <li>
+CAPTION_MODE_KEY - caption mode            </li>
+            <li>
+CAPTION_FONT_SIZE_KEY - caption font size            </li>
+            <li>
+CAPTION_FONT_STYLE_KEY - caption font style            </li>
+            <li>
+CAPTION_FONT_COLOR_KEY - caption font color            </li>
+            <li>
+CAPTION_FONT_OPACITY_KEY - caption font opacity mode            </li>
+            <li>
+CAPTION_BG_COLOR_KEY - caption background color            </li>
+            <li>
+CAPTION_BG_OPACITY_KEY - caption background opacity mode            </li>
+            <li>
+CAPTION_EDGE_TYPE_KEY - caption text edge type            </li>
+            <li>
+CAPTION_EDGE_COLOR_KEY - caption edge color            </li>
+            <li>
+CAPTION_WINDOW_COLOR_KEY - caption window color (only US)            </li>
+            <li>
+CAPTION_WINDOW_OPACITY_KEY - caption window opacity mode (only US)            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CaptionState">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionState"></a><h3>1.2. CaptionState</h3>
+<div class="brief">
+ Available values for the caption state.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionState { "CAPTION_OFF", "CAPTION_ON" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for key CAPTION_ONOFF_KEY.
+          </p>
+          <ul>
+            <li>
+CAPTION_OFF - caption menu is turned off            </li>
+            <li>
+CAPTION_ON - caption menu is turned on            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CaptionMode">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionMode"></a><h3>1.3. CaptionMode</h3>
+<div class="brief">
+ Available values for the caption menu mode.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionMode { "CAPTION_MODE_DEFAULT", "CAPTION_MODE_SERVICE1", "CAPTION_MODE_SERVICE2", "CAPTION_MODE_SERVICE3",
+        "CAPTION_MODE_SERVICE4", "CAPTION_MODE_SERVICE5", "CAPTION_MODE_SERVICE6", "CAPTION_MODE_CC1", "CAPTION_MODE_CC2",
+        "CAPTION_MODE_CC3", "CAPTION_MODE_CC4", "CAPTION_MODE_TEXT1", "CAPTION_MODE_TEXT2", "CAPTION_MODE_TEXT3",
+        "CAPTION_MODE_TEXT4" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for key CAPTION_MODE_KEY.
+          </p>
+          <ul>
+            <li>
+CAPTION_MODE_DEFAULT - default mode            </li>
+            <li>
+CAPTION_MODE_SERVICE1 - standard service 1 (Primary Caption Service)            </li>
+            <li>
+CAPTION_MODE_SERVICE2 - standard service 2 (Secondary Language Service)            </li>
+            <li>
+CAPTION_MODE_SERVICE3 - standard service 3            </li>
+            <li>
+CAPTION_MODE_SERVICE4 - standard service 4            </li>
+            <li>
+CAPTION_MODE_SERVICE5 - standard service 5            </li>
+            <li>
+CAPTION_MODE_SERVICE6 - standard service 6            </li>
+            <li>
+CAPTION_MODE_CC1 - Primary Synchronous Caption Service            </li>
+            <li>
+CAPTION_MODE_CC2 - Special Non-Synchronous Service            </li>
+            <li>
+CAPTION_MODE_CC3 - Secondary Synchronous Caption Service            </li>
+            <li>
+CAPTION_MODE_CC4 - Special Non-Synchronous Service            </li>
+            <li>
+CAPTION_MODE_TEXT1 - Text Service 1            </li>
+            <li>
+CAPTION_MODE_TEXT2 - Text Service 2            </li>
+            <li>
+CAPTION_MODE_TEXT3 - Text Service 3            </li>
+            <li>
+CAPTION_MODE_TEXT4 - Text Service 4            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CaptionFontSize">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionFontSize"></a><h3>1.4. CaptionFontSize</h3>
+<div class="brief">
+ Available values for the caption menu font size.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionFontSize { "CAPTION_SIZE_DEFAULT", "CAPTION_SIZE_SMALL", "CAPTION_SIZE_STANDARD", "CAPTION_SIZE_LARGE",
+        "CAPTION_SIZE_EXTRA_LARGE" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for key CAPTION_FONT_SIZE_KEY.
+          </p>
+          <ul>
+            <li>
+CAPTION_SIZE_DEFAULT - default font size            </li>
+            <li>
+CAPTION_SIZE_SMALL - small font size            </li>
+            <li>
+CAPTION_SIZE_STANDARD - standard font size            </li>
+            <li>
+CAPTION_SIZE_LARGE - large font size            </li>
+            <li>
+CAPTION_SIZE_EXTRA_LARGE - extra large font size            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CaptionFontStyle">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionFontStyle"></a><h3>1.5. CaptionFontStyle</h3>
+<div class="brief">
+ Available values for the caption menu font style.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionFontStyle { "CAPTION_FONT_DEFAULT", "CAPTION_FONT_STYLE0", "CAPTION_FONT_STYLE1", "CAPTION_FONT_STYLE2",
+        "CAPTION_FONT_STYLE3", "CAPTION_FONT_STYLE4", "CAPTION_FONT_STYLE5", "CAPTION_FONT_STYLE6", "CAPTION_FONT_STYLE7" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for key CAPTION_FONT_STYLE_KEY.
+          </p>
+          <ul>
+            <li>
+CAPTION_FONT_DEFAULT - default font style            </li>
+            <li>
+CAPTION_FONT_STYLE1 - Monospaced with serifs (similar to Courier)            </li>
+            <li>
+CAPTION_FONT_STYLE2 - Proportionally spaced with serifs (similar to Times New Roman)            </li>
+            <li>
+CAPTION_FONT_STYLE3 - Monospaced without serifs (similar to Helvetica Monospaced)            </li>
+            <li>
+CAPTION_FONT_STYLE4 - Proportionally spaced without serifs (similar to Arial and Swiss)            </li>
+            <li>
+CAPTION_FONT_STYLE5 - Casual font type (similar to Dom and Impress)            </li>
+            <li>
+CAPTION_FONT_STYLE6 - Cursive font type (similar to Coronet and Marigold)            </li>
+            <li>
+CAPTION_FONT_STYLE7 - Small capitals (similar to Engravers Gothic)            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="CaptionColor">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionColor"></a><h3>1.6. CaptionColor</h3>
+<div class="brief">
+ Available values for the caption menu color.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionColor { "CAPTION_COLOR_DEFAULT", "CAPTION_COLOR_WHITE", "CAPTION_COLOR_BLACK", "CAPTION_COLOR_RED",
+        "CAPTION_COLOR_GREEN", "CAPTION_COLOR_BLUE", "CAPTION_COLOR_YELLOW", "CAPTION_COLOR_MAGENTA", "CAPTION_COLOR_CYAN" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for keys CAPTION_FONT_COLOR_KEY, CAPTION_BG_COLOR_KEY, CAPTION_EDGE_COLOR_KEY and CAPTION_WINDOW_COLOR_KEY.
+          </p>
+         </div>
+</div>
+<div class="enum" id="CaptionOpacity">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionOpacity"></a><h3>1.7. CaptionOpacity</h3>
+<div class="brief">
+ Available values for the caption menu opacity.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionOpacity { "CAPTION_OPACITY_SOLID", "CAPTION_OPACITY_FLASHING", "CAPTION_OPACITY_TRANSLUCENT",
+        "CAPTION_OPACITY_TRANSPARENT", "CAPTION_OPACITY_DEFAULT" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for keys CAPTION_FONT_OPACITY_KEY, CAPTION_BG_OPACITY_KEY and CAPTION_WINDOW_OPACITY_KEY.
+          </p>
+         </div>
+</div>
+<div class="enum" id="CaptionEdge">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionEdge"></a><h3>1.8. CaptionEdge</h3>
+<div class="brief">
+ Available values for the caption menu edge type.
+          </div>
+<pre class="webidl prettyprint">    enum CaptionEdge { "CAPTION_EDGE_NONE", "CAPTION_EDGE_RAISED", "CAPTION_EDGE_DEPRESSED", "CAPTION_EDGE_UNIFORM",
+        "CAPTION_EDGE_DROP_SHADOWED" };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+These values may be returned for key CAPTION_EDGE_TYPE_KEY.
+          </p>
+          <ul>
+            <li>
+CAPTION_EDGE_NONE - no edge            </li>
+            <li>
+CAPTION_EDGE_RAISED - raised edge            </li>
+            <li>
+CAPTION_EDGE_DEPRESSED - depressed edge            </li>
+            <li>
+CAPTION_EDGE_UNIFORM - uniform edge            </li>
+            <li>
+CAPTION_EDGE_DROP_SHADOWED - drop shadowed edge            </li>
+          </ul>
+         </div>
+</div>
+<div class="typedef" id="CaptionValue">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionValue"></a><h3>1.9. CaptionValue</h3>
+<div class="brief">
+ All available values for the caption menu.
+          </div>
+<pre class="webidl prettyprint">    typedef (<a href="#CaptionState">CaptionState</a> or <a href="#CaptionMode">CaptionMode</a> or <a href="#CaptionFontSize">CaptionFontSize</a> or <a href="#CaptionFontStyle">CaptionFontStyle</a> or <a href="#CaptionColor">CaptionColor</a> or
+        <a href="#CaptionOpacity">CaptionOpacity</a> or <a href="#CaptionEdge">CaptionEdge</a>) CaptionValue;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TVInfoManagerObject">
+<a class="backward-compatibility-anchor" name="::TVInfo::TVInfoManagerObject"></a><h3>2.1. TVInfoManagerObject</h3>
+<div class="brief">
+ The TVInfoManagerObject interface defines what is instantiated in the tizen object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVInfoManagerObject {
+         readonly attribute <a href="#TVInfoManager">TVInfoManager</a> tvinfo;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVInfoManagerObject">TVInfoManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <p>
+There is a tizen.tvinfo object that allows accessing the functionality of the TVInfo API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="TVInfoManager">
+<a class="backward-compatibility-anchor" name="::TVInfo::TVInfoManager"></a><h3>2.2. TVInfoManager</h3>
+<div class="brief">
+ The TVInfoManager interface provides the functionalities to get setting values provided by Tizen TV.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVInfoManager {
+
+        <a href="#CaptionValue">CaptionValue</a> getCaptionValue(<a href="#CaptionInfoKey">CaptionInfoKey</a> key) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addCaptionValueChangeListener(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeCaptionValueChangeListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TVInfoManager::getCaptionValue">
+<a class="backward-compatibility-anchor" name="::TVInfo::TVInfoManager::getCaptionValue"></a><code><b><span class="methodName">getCaptionValue</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method returns the value for corresponding caption menu key.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#CaptionValue">CaptionValue</a> getCaptionValue(<a href="#CaptionInfoKey">CaptionInfoKey</a> key);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param"><span class="name">key</span></li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ CaptionValue value for given caption menu key
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> console.log("Caption menu turned on: " + (tizen.tvinfo.getCaptionValue("CAPTION_ONOFF_KEY") === "CAPTION_ON"));
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInfoManager::addCaptionValueChangeListener">
+<a class="backward-compatibility-anchor" name="::TVInfo::TVInfoManager::addCaptionValueChangeListener"></a><code><b><span class="methodName">addCaptionValueChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a listener to be called when given caption menu key value changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addCaptionValueChangeListener(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a> callback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">key</span>: 
+ Caption menu key which changes will be observed by this listener
+                </li>
+          <li class="param">
+<span class="name">callback</span>: 
+ Callback method to be invoked when the value changes
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long Subscription identifier
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if the input parameter is not compatible with the expected type.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var id = tizen.tvinfo.addCaptionValueChangeListener("CAPTION_ONOFF_KEY", function(value) {
+     console.log("Caption menu state changed: " + value);
+ });
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInfoManager::removeCaptionValueChangeListener">
+<a class="backward-compatibility-anchor" name="::TVInfo::TVInfoManager::removeCaptionValueChangeListener"></a><code><b><span class="methodName">removeCaptionValueChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes a listener.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeCaptionValueChangeListener(long watchId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">watchId</span>: 
+ Identifier of the subscription returned by addCaptionValueChangeListener()
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type UnknownError, in any other error case.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var id = tizen.tvinfo.addCaptionValueChangeListener("CAPTION_ONOFF_KEY", function() {});
+ tizen.tvinfo.removeCaptionValueChangeListener(id);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="CaptionValueChangeCallback">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionValueChangeCallback"></a><h3>2.3. CaptionValueChangeCallback</h3>
+<div class="brief">
+ The CaptionValueChangeCallback interface specifies event callback for getting notified when event occurs.
+          </div>
+<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface CaptionValueChangeCallback {
+        void onchanged(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValue">CaptionValue</a> value);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="CaptionValueChangeCallback::onchanged">
+<a class="backward-compatibility-anchor" name="::TVInfo::CaptionValueChangeCallback::onchanged"></a><code><b><span class="methodName">onchanged</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Called when the caption menu value changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onchanged(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValue">CaptionValue</a> value);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">key</span>: 
+ Watched key.
+                </li>
+          <li class="param">
+<span class="name">value</span>: 
+ New value of watched key.
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">3. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVInfo {
+
+    enum CaptionInfoKey { "CAPTION_ONOFF_KEY", "CAPTION_MODE_KEY", "CAPTION_FONT_SIZE_KEY", "CAPTION_FONT_STYLE_KEY",
+        "CAPTION_FONT_COLOR_KEY", "CAPTION_FONT_OPACITY_KEY", "CAPTION_BG_COLOR_KEY", "CAPTION_BG_OPACITY_KEY",
+        "CAPTION_EDGE_TYPE_KEY", "CAPTION_EDGE_COLOR_KEY", "CAPTION_WINDOW_COLOR_KEY", "CAPTION_WINDOW_OPACITY_KEY" };
+
+    enum CaptionState { "CAPTION_OFF", "CAPTION_ON" };
+
+    enum CaptionMode { "CAPTION_MODE_DEFAULT", "CAPTION_MODE_SERVICE1", "CAPTION_MODE_SERVICE2", "CAPTION_MODE_SERVICE3",
+        "CAPTION_MODE_SERVICE4", "CAPTION_MODE_SERVICE5", "CAPTION_MODE_SERVICE6", "CAPTION_MODE_CC1", "CAPTION_MODE_CC2",
+        "CAPTION_MODE_CC3", "CAPTION_MODE_CC4", "CAPTION_MODE_TEXT1", "CAPTION_MODE_TEXT2", "CAPTION_MODE_TEXT3",
+        "CAPTION_MODE_TEXT4" };
+
+    enum CaptionFontSize { "CAPTION_SIZE_DEFAULT", "CAPTION_SIZE_SMALL", "CAPTION_SIZE_STANDARD", "CAPTION_SIZE_LARGE",
+        "CAPTION_SIZE_EXTRA_LARGE" };
+
+    enum CaptionFontStyle { "CAPTION_FONT_DEFAULT", "CAPTION_FONT_STYLE0", "CAPTION_FONT_STYLE1", "CAPTION_FONT_STYLE2",
+        "CAPTION_FONT_STYLE3", "CAPTION_FONT_STYLE4", "CAPTION_FONT_STYLE5", "CAPTION_FONT_STYLE6", "CAPTION_FONT_STYLE7" };
+
+    enum CaptionColor { "CAPTION_COLOR_DEFAULT", "CAPTION_COLOR_WHITE", "CAPTION_COLOR_BLACK", "CAPTION_COLOR_RED",
+        "CAPTION_COLOR_GREEN", "CAPTION_COLOR_BLUE", "CAPTION_COLOR_YELLOW", "CAPTION_COLOR_MAGENTA", "CAPTION_COLOR_CYAN" };
+
+    enum CaptionOpacity { "CAPTION_OPACITY_SOLID", "CAPTION_OPACITY_FLASHING", "CAPTION_OPACITY_TRANSLUCENT",
+        "CAPTION_OPACITY_TRANSPARENT", "CAPTION_OPACITY_DEFAULT" };
+
+    enum CaptionEdge { "CAPTION_EDGE_NONE", "CAPTION_EDGE_RAISED", "CAPTION_EDGE_DEPRESSED", "CAPTION_EDGE_UNIFORM",
+        "CAPTION_EDGE_DROP_SHADOWED" };
+
+    typedef (<a href="#CaptionState">CaptionState</a> or <a href="#CaptionMode">CaptionMode</a> or <a href="#CaptionFontSize">CaptionFontSize</a> or <a href="#CaptionFontStyle">CaptionFontStyle</a> or <a href="#CaptionColor">CaptionColor</a> or
+        <a href="#CaptionOpacity">CaptionOpacity</a> or <a href="#CaptionEdge">CaptionEdge</a>) CaptionValue;
+
+    [NoInterfaceObject] interface TVInfoManagerObject {
+         readonly attribute <a href="#TVInfoManager">TVInfoManager</a> tvinfo;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVInfoManagerObject">TVInfoManagerObject</a>;
+
+    [NoInterfaceObject] interface TVInfoManager {
+
+        <a href="#CaptionValue">CaptionValue</a> getCaptionValue(<a href="#CaptionInfoKey">CaptionInfoKey</a> key) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addCaptionValueChangeListener(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValueChangeCallback">CaptionValueChangeCallback</a> callback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeCaptionValueChangeListener(long watchId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [Callback=FunctionOnly, NoInterfaceObject] interface CaptionValueChangeCallback {
+        void onchanged(<a href="#CaptionInfoKey">CaptionInfoKey</a> key, <a href="#CaptionValue">CaptionValue</a> value);
+    };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvinputdevice.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvinputdevice.html
new file mode 100644 (file)
index 0000000..70e464b
--- /dev/null
@@ -0,0 +1,671 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVInputDevice API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVInputDevice">
+<div class="title"><h1>TVInputDevice API</h1></div>
+<div class="brief">
+ The TV Input Device API provides functions to subscribe key events of the input device.
+        </div>
+<div class="description">
+        <p>
+The following remote control keys are mandatory input device keys. They are available to an application on any Tizen TV.
+        </p>
+        <ul>
+          <li>
+ArrowLeft, ArrowUp, ArrowRight, ArrowDown          </li>
+          <li>
+Enter          </li>
+          <li>
+Back          </li>
+        </ul>
+        <p>
+The Tizen TV may provide additional keys depending on a particular input device.
+An application can handle device dependent key events after registration.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc"><li>
+                    1.1. <a href="#InputDeviceKeyName">InputDeviceKeyName</a>
+</li></ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TVInputDeviceManagerObject">TVInputDeviceManagerObject</a>
+</li>
+<li>2.2. <a href="#InputDeviceKey">InputDeviceKey</a>
+</li>
+<li>2.3. <a href="#TVInputDeviceManager">TVInputDeviceManager</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TVInputDeviceManagerObject">TVInputDeviceManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#InputDeviceKey">InputDeviceKey</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#TVInputDeviceManager">TVInputDeviceManager</a></td>
+<td>
+<div>
+<a href="#InputDeviceKey">InputDeviceKey</a>[] <a href="#TVInputDeviceManager::getSupportedKeys">getSupportedKeys</a> ()</div>
+<div>
+<a href="#InputDeviceKey">InputDeviceKey</a>? <a href="#TVInputDeviceManager::getKey">getKey</a> (<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName)</div>
+<div>void <a href="#TVInputDeviceManager::registerKey">registerKey</a> (<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName)</div>
+<div>void <a href="#TVInputDeviceManager::unregisterKey">unregisterKey</a> (<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName)</div>
+<div>void <a href="#TVInputDeviceManager::registerKeyBatch">registerKeyBatch</a> (<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#TVInputDeviceManager::unregisterKeyBatch">unregisterKeyBatch</a> (<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="typedef" id="InputDeviceKeyName">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::InputDeviceKeyName"></a><h3>1.1. InputDeviceKeyName</h3>
+<div class="brief">
+ Name which identifies the key
+          </div>
+<pre class="webidl prettyprint">    typedef DOMString InputDeviceKeyName;</pre>
+<div class="description">
+          <p>
+Name of the key may be, for example:
+          </p>
+          <ul>
+            <li>
+VolumeUp            </li>
+            <li>
+VolumeDown            </li>
+            <li>
+ChannelUp            </li>
+            <li>
+ChannelDown            </li>
+          </ul>
+          <p>
+The actual list of supported keys depends on the platform.
+          </p>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TVInputDeviceManagerObject">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManagerObject"></a><h3>2.1. TVInputDeviceManagerObject</h3>
+<div class="brief">
+ The TVInputDeviceManager interface defines what is instantiated in the tizen object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVInputDeviceManagerObject {
+        readonly attribute <a href="#TVInputDeviceManager">TVInputDeviceManager</a> tvinputdevice;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVInputDeviceManagerObject">TVInputDeviceManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+There is a tizen.tvinputdevice object that allows accessing the functionality of the TV Input Device API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="InputDeviceKey">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::InputDeviceKey"></a><h3>2.2. InputDeviceKey</h3>
+<div class="brief">
+ The InputDeviceKey interface stores information about the key.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface InputDeviceKey {
+        readonly attribute <a href="#InputDeviceKeyName">InputDeviceKeyName</a> name;
+
+        readonly attribute long code;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="InputDeviceKey::name">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">InputDeviceKeyName </span><span class="name">name</span></span><div class="brief">
+ The name of the key, for example <var>"VolumeUp"</var> or <var>"ChannelDown"</var>.
+            </div>
+<div class="description">
+            <p>
+If the key is listed in the <a href="http://www.w3.org/TR/2014/WD-DOM-Level-3-Events-key-20140612">DOM Level 3 KeyboardEvent key Values</a> specification, the <em>name</em> attribute is equal to the <em>key value</em> specified there. (The <a href="http://www.w3.org/TR/2014/WD-DOM-Level-3-Events-key-20140612/#keys-media-controller">Media Controller Keys</a> section is the most relevant to the Input Device API)
+            </p>
+            <p>
+If the "DOM Level 3 KeyboardEvent key Value" does not contain appropriate entry for the key, then the Input Device provides a device specific <em>name</em>.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+<li class="attribute" id="InputDeviceKey::code">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">code</span></span><div class="brief">
+ The numeric code of the key, like <var>37</var> or <var>13</var>.
+            </div>
+<div class="description">
+            <p>
+This is the <em>keyCode</em> attribute value of the Key Event generated by the key.
+            </p>
+           </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="TVInputDeviceManager">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager"></a><h3>2.3. TVInputDeviceManager</h3>
+<div class="brief">
+ The TVInputDeviceManager interface provides the features to check for availability and register for input device events.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVInputDeviceManager {
+        <a href="#InputDeviceKey">InputDeviceKey</a>[] getSupportedKeys() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#InputDeviceKey">InputDeviceKey</a>? getKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void registerKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unregisterKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void registerKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unregisterKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TVInputDeviceManager::getSupportedKeys">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::getSupportedKeys"></a><code><b><span class="methodName">getSupportedKeys</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Retrieves the list of keys can be registered with the <em>registerKey()</em> method.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#InputDeviceKey">InputDeviceKey</a>[] getSupportedKeys();
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+Mandatory keys will not be retrieved by this method.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in case of any error.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var i, keyCode = {}, supportedKeys;
+ supportedKeys = tizen.tvinputdevice.getSupportedKeys();
+ for (i = 0; i &lt; supportedKeys.length; i++) {
+     keyCode[supportedKeys[i].name] = supportedKeys[i].code;
+ }
+ if(keyCode.hasOwnProperty("ChannelUp")) {
+     tizen.tvinputdevice.registerKey("ChannelUp");
+ }
+ window.addEventListener("keydown", function(keyEvent) {
+     // identify the key by the numeric code from the keyEvent
+     if(keyEvent.keyCode === keyCode.ChannelUp) {
+         console.log("The CHANNEL UP was pressed");
+     }
+ });
+
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInputDeviceManager::getKey">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::getKey"></a><code><b><span class="methodName">getKey</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Returns information about the key which has the given name.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#InputDeviceKey">InputDeviceKey</a>? getKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">keyName</span>: 
+ The name of the key to retrieve
+                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ InputDeviceKey InputDeviceKey object for the given key name, or null if the key is not supported
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError if the given keyName is invalid (e.g. name is empty string)
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TVInputDeviceManager::registerKey">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::registerKey"></a><code><b><span class="methodName">registerKey</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Registers an input device key to receive DOM keyboard event when it is pressed or released.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void registerKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+When an application wants to react to the Input Device keys being pressed, it should register this key.
+            </p>
+            <p>
+An application cannot register the mandatory keys (ArrowLeft, ArrowRight, ArrowUp, ArrowDown, Enter, Back).
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">keyName</span>: 
+ The name of the key which should generate DOM key events when pressed
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the given keyName is invalid or not supported (e.g. name is empty string).
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var keys = ["VolumeUp", "VolumeDown"], i;
+ for (i = 0; i &lt; keys.length; i++) {
+     try {
+         tizen.tvinputdevice.registerKey(keys[i]);
+     } catch(error) {
+         console.log("failed to register " + keys[i] + ": " + error);
+     }
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInputDeviceManager::unregisterKey">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::unregisterKey"></a><code><b><span class="methodName">unregisterKey</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unregisters an input device key.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unregisterKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">keyName</span>: 
+ The name of the key which should not be monitored any longer
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if the given keyName is invalid or not supported (e.g. name is empty string).
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> tizen.tvinputdevice.unregisterKey("VolumeDown");
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInputDeviceManager::registerKeyBatch">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::registerKeyBatch"></a><code><b><span class="methodName">registerKeyBatch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Registers a batch of input device keys to receive DOM keyboard events when any of them is pressed or released.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void registerKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+When an application wants to react to the input device key presses, it should register those keys.
+            </p>
+            <p>
+An application cannot register the mandatory keys (ArrowLeft, ArrowRight, ArrowUp, ArrowDown, Enter, Back).
+            </p>
+            <p>
+The errorCallback is launched with this error type:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If any of the given keyNames is invalid or not supported.              </li>
+              <li>
+UnknownError: In case of any other error.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">keyNames</span>: 
+ The array with the names of the keys which will generate DOM key events when they are pressed
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when keys are registered
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the given keyNames is invalid or not supported (e.g. name is empty string).
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function successCB() {
+     console.log('Registered successfully');
+ }
+
+ var keys = ["VolumeUp", "VolumeDown"];
+ tizen.tvinputdevice.registerKeyBatch(keys, successCB, errorCB);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVInputDeviceManager::unregisterKeyBatch">
+<a class="backward-compatibility-anchor" name="::TVInputDevice::TVInputDeviceManager::unregisterKeyBatch"></a><code><b><span class="methodName">unregisterKeyBatch</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Unregisters a batch of input device keys.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void unregisterKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="description">
+            <p>
+The errorCallback is launched with this error type:
+            </p>
+            <ul>
+              <li>
+InvalidValuesError: If any of the given keyNames is invalid or not supported.              </li>
+              <li>
+UnknownError: In case of any other error.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.inputdevice
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">keyNames</span>: 
+ The array with the names of the keys to unregister
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when keys are unregistered
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Callback method to be invoked when an error has occurred
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the given keyNames is invalid or not supported (e.g. name is empty string).
+                </p></li>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function errorCB(err) {
+     console.log( 'The following error occurred: ' +  err.name);
+ }
+
+ function successCB() {
+     console.log('Unregistered successfully');
+ }
+ var keys = ["VolumeUp", "VolumeDown"];
+ tizen.tvinputdevice.unregisterKeyBatch(keys, successCB, errorCB);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of this application on a device with a TV input device support, define the following requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/tv.inputdevice</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVInputDevice {
+    typedef DOMString InputDeviceKeyName;
+
+    [NoInterfaceObject] interface TVInputDeviceManagerObject {
+        readonly attribute <a href="#TVInputDeviceManager">TVInputDeviceManager</a> tvinputdevice;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVInputDeviceManagerObject">TVInputDeviceManagerObject</a>;
+
+    [NoInterfaceObject] interface InputDeviceKey {
+        readonly attribute <a href="#InputDeviceKeyName">InputDeviceKeyName</a> name;
+
+        readonly attribute long code;
+    };
+
+    [NoInterfaceObject] interface TVInputDeviceManager {
+        <a href="#InputDeviceKey">InputDeviceKey</a>[] getSupportedKeys() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#InputDeviceKey">InputDeviceKey</a>? getKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void registerKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unregisterKey(<a href="#InputDeviceKeyName">InputDeviceKeyName</a> keyName) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void registerKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void unregisterKeyBatch(<a href="#InputDeviceKeyName">InputDeviceKeyName</a>[] keyNames, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/tvwindow.html b/org.tizen.web.apireference/html/device_api/tv/tizen/tvwindow.html
new file mode 100644 (file)
index 0000000..f71a9e8
--- /dev/null
@@ -0,0 +1,1337 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>TVWindow API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::TVWindow">
+<div class="title"><h1>TVWindow API</h1></div>
+<div class="brief">
+        </div>
+<div class="description">
+        <p>
+This API provides a way to embed a video source in a Tizen Web Application running on a device associated with the TV.
+It allows an available video source to be selected and shown on or hidden from the display in a Tizen Web Application.
+There will be a <em>tizen.tvwindow</em> object that allows access to the functionality of the TV Window API.
+To show a TV signal, execute the
+<em>show</em> function.
+A TV source is controlled by the user or
+by you with the Tizen Web Device APIs. You do not have to implement any routines if you
+do not want to interact with the TV image.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
+<li>
+                    1.1. <a href="#WindowType">WindowType</a>
+</li>
+<li>
+                    1.2. <a href="#MeasurementUnit">MeasurementUnit</a>
+</li>
+<li>
+                    1.3. <a href="#AspectRatio">AspectRatio</a>
+</li>
+<li>
+                    1.4. <a href="#ZPosition">ZPosition</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>2.1. <a href="#TVWindowManagerObject">TVWindowManagerObject</a>
+</li>
+<li>2.2. <a href="#TVWindowManager">TVWindowManager</a>
+</li>
+<li>2.3. <a href="#VideoResolution">VideoResolution</a>
+</li>
+<li>2.4. <a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a>
+</li>
+<li>2.5. <a href="#AvailableWindowListCallback">AvailableWindowListCallback</a>
+</li>
+<li>2.6. <a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a>
+</li>
+<li>2.7. <a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a>
+</li>
+</ul>
+</li>
+<li>3. <a href="#api-features">Related Feature</a>
+</li>
+<li>4. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#TVWindowManagerObject">TVWindowManagerObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#TVWindowManager">TVWindowManager</a></td>
+<td>
+<div>void <a href="#TVWindowManager::getAvailableWindows">getAvailableWindows</a> (<a href="#AvailableWindowListCallback">AvailableWindowListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#TVWindowManager::setSource">setSource</a> (<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> videoSource, <a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>
+<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> <a href="#TVWindowManager::getSource">getSource</a> (optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#TVWindowManager::show">show</a> (<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional DOMString[]? rectangle, optional <a href="#WindowType">WindowType</a>? type, optional <a href="#ZPosition">ZPosition</a>? zPosition)</div>
+<div>void <a href="#TVWindowManager::hide">hide</a> (<a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#TVWindowManager::getRect">getRect</a> (<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#MeasurementUnit">MeasurementUnit</a>? unit, optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>
+<a href="#VideoResolution">VideoResolution</a> <a href="#TVWindowManager::getVideoResolution">getVideoResolution</a> (optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>long <a href="#TVWindowManager::addVideoResolutionChangeListener">addVideoResolutionChangeListener</a> (<a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a> callback, optional <a href="#WindowType">WindowType</a>? type)</div>
+<div>void <a href="#TVWindowManager::removeVideoResolutionChangeListener">removeVideoResolutionChangeListener</a> (long listenerId)</div>
+</td>
+</tr>
+<tr>
+<td><a href="#VideoResolution">VideoResolution</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a></td>
+<td><div>void <a href="#VideoResolutionChangeCallback::onchanged">onchanged</a> (<a href="#VideoResolution">VideoResolution</a> resolution, <a href="#WindowType">WindowType</a> type)</div></td>
+</tr>
+<tr>
+<td><a href="#AvailableWindowListCallback">AvailableWindowListCallback</a></td>
+<td><div>void <a href="#AvailableWindowListCallback::onsuccess">onsuccess</a> (<a href="#WindowType">WindowType</a>[] type)</div></td>
+</tr>
+<tr>
+<td><a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a></td>
+<td><div>void <a href="#WindowRectangleSuccessCallback::onsuccess">onsuccess</a> (DOMString[] windowRect, <a href="#WindowType">WindowType</a> type)</div></td>
+</tr>
+<tr>
+<td><a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a></td>
+<td><div>void <a href="#SourceChangedSuccessCallback::onsuccess">onsuccess</a> (<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> source, <a href="#WindowType">WindowType</a> type)</div></td>
+</tr>
+</tbody>
+</table>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">          -         -
+             -    -
+               -
+    ------------------------
+    |                      |
+    |         +---------+  |
+    |         |TV window|  |
+    |         +---------+  |
+    |                      |
+    |   YOUR APPLICATION   |
+    |                      |
+    |                      |
+    ------------------------
+ </pre>
+</div>
+<div class="typedefs" id="typedefs-section">
+<h2>1. Type Definitions</h2>
+<div class="enum" id="WindowType">
+<a class="backward-compatibility-anchor" name="::TVWindow::WindowType"></a><h3>1.1. WindowType</h3>
+<div class="brief">
+ An enumerator to indicate the window type.
+          </div>
+<pre class="webidl prettyprint">    enum WindowType {
+        "MAIN",
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ MAIN - The main video window, which can be show anywhere            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="MeasurementUnit">
+<a class="backward-compatibility-anchor" name="::TVWindow::MeasurementUnit"></a><h3>1.2. MeasurementUnit</h3>
+<div class="brief">
+ An enumerator to indicate the units of measurement for specifying the measurement unit when calling <b>getRect()</b>.
+          </div>
+<pre class="webidl prettyprint">    enum MeasurementUnit {
+        "px",
+        "%"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ px - pixel unit            </li>
+            <li>
+ % - percentage unit for specifying relative size            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="AspectRatio">
+<a class="backward-compatibility-anchor" name="::TVWindow::AspectRatio"></a><h3>1.3. AspectRatio</h3>
+<div class="brief">
+ An enumerator to indicate the aspect ratio of video source.
+          </div>
+<pre class="webidl prettyprint">    enum AspectRatio{
+        "ASPECT_RATIO_1x1",
+        "ASPECT_RATIO_4x3",
+        "ASPECT_RATIO_16x9",
+        "ASPECT_RATIO_221x100"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ ASPECT_RATIO_1x1 - 1:1            </li>
+            <li>
+ ASPECT_RATIO_4x3 - 4:3            </li>
+            <li>
+ ASPECT_RATIO_16x9 - 16:9            </li>
+            <li>
+ ASPECT_RATIO_221x100 - 2.21:1            </li>
+          </ul>
+         </div>
+</div>
+<div class="enum" id="ZPosition">
+<a class="backward-compatibility-anchor" name="::TVWindow::ZPosition"></a><h3>1.4. ZPosition</h3>
+<div class="brief">
+ An enumerator to indicate the z position of the TV window or the relative position of the TV window and the Web Application.
+          </div>
+<pre class="webidl prettyprint">    enum ZPosition{
+        "FRONT",
+        "BEHIND"
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="description">
+          <ul>
+            <li>
+ FRONT - Displays the TV window in front of the Web Application            </li>
+            <li>
+ BEHIND - Displays the TV window behind the Web Application            </li>
+          </ul>
+         </div>
+</div>
+</div>
+<div class="interfaces" id="interfaces-section">
+<h2>2. Interfaces</h2>
+<div class="interface" id="TVWindowManagerObject">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManagerObject"></a><h3>2.1. TVWindowManagerObject</h3>
+<div class="brief">
+ This interface defines what is instantiated by the <em>tizen</em> object.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVWindowManagerObject {
+        readonly attribute <a href="#TVWindowManager">TVWindowManager</a> tvwindow;
+    };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVWindowManagerObject">TVWindowManagerObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="description">
+          <p>
+There will be a <em>tizen.tvwindow</em> object that allows access to the
+functionality of the TV Window API.
+          </p>
+         </div>
+</div>
+<div class="interface" id="TVWindowManager">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager"></a><h3>2.2. TVWindowManager</h3>
+<div class="brief">
+ This interface provides access to the API funtionalities through the <em>tizen.tvwindow</em> interface.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface TVWindowManager {
+        void getAvailableWindows(<a href="#AvailableWindowListCallback">AvailableWindowListCallback</a> successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setSource(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> videoSource,
+                       <a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a> successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                       optional <a href="#WindowType">WindowType</a>? type) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> getSource(optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void show(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                 optional DOMString[]? rectangle,
+                 optional <a href="#WindowType">WindowType</a>? type,
+                 optional <a href="#ZPosition">ZPosition</a>? zPosition) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void hide(<a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                  optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getRect(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                 optional <a href="#MeasurementUnit">MeasurementUnit</a>? unit,
+                 optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#VideoResolution">VideoResolution</a> getVideoResolution(optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addVideoResolutionChangeListener(<a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a> callback,
+                                       optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeVideoResolutionChangeListener(long listenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="TVWindowManager::getAvailableWindows">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::getAvailableWindows"></a><code><b><span class="methodName">getAvailableWindows</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the list of available windows.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getAvailableWindows(<a href="#AvailableWindowListCallback">AvailableWindowListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when a list of the available windows is retrieved successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(availableWindows) {
+    for (var i = 0; i &lt; availableWindows.length; i++) {
+        console.log("Window ["+ i + "] = " + availableWindows[i]);
+    }
+ }
+
+ try {
+     tizen.tvwindow.getAvailableWindows(successCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::setSource">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::setSource"></a><code><b><span class="methodName">setSource</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Changes the source of a TV window.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setSource(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> videoSource, <a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">videoSource</span>: 
+ The video source to set <br>The possible video sources can be obtained through <b>tizen.systeminfo.getPropertyValue("VIDEOSOURCE")</b>.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the intput source has been changed successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var connectedVideoSources;
+ function successCB(source, type) {
+     console.log("setSource() is successfully done. source name = " + source.name + ", source port number = " + source.number);
+ }
+
+ function errorCB(error) {
+     console.log("setSource() is failed. Error name = "+ error.name + ", Error message = " + error.message);
+ }
+
+ function systemInfoSuccessCB(videoSource) {
+     connectedVideoSources = videoSource.connected;
+     for (var i = 0; i &lt; connectedVideoSources.length; i++) {
+         console.log("--------------- Source " + i + " ---------------");
+         console.log("type = " + connectedVideoSources[i].type);
+         console.log("number = " + connectedVideoSources[i].number);
+         if (connectedVideoSources[i].type === "HDMI") {
+             // set HDMI as input source of the TV window
+             tizen.tvwindow.setSource(connectedVideoSources[i], successCB, errorCB);
+             break;
+         }
+     }
+ }
+
+ function systemInfoErrorCB(error) {
+     console.log("getPropertyValue(VIDEOSOURCE) is failed. Error name = "+ error.name + ", Error message = " + error.message);
+ }
+
+ try {
+     tizen.systeminfo.getPropertyValue("VIDEOSOURCE", systemInfoSuccessCB, systemInfoErrorCB);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::getSource">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::getSource"></a><code><b><span class="methodName">getSource</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets information about the current source of a specified TV window.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> getSource(optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ SystemInfoVideoSourceInfo The information about the current video source
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> try {
+     var source = tizen.tvwindow.getSource();
+     console.log("type = " + source.type);
+     console.log("number = " + source.number);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::show">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::show"></a><code><b><span class="methodName">show</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the display area of a TV window and shows it on the display.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void show(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional DOMString[]? rectangle, optional <a href="#WindowType">WindowType</a>? type, optional <a href="#ZPosition">ZPosition</a>? zPosition);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+The <em>rectangle</em> array requires exactly four elements which are described below:
+            </p>
+            <ul>
+              <li>
+The first element indicates the x coordinate of the top left corner of the TV window (distance from the left edge of the screen).              </li>
+              <li>
+The second element indicates the y coordinate of the top left corner of the TV window (distance from the top edge of the screen).              </li>
+              <li>
+The third element indicates the width of the TV window.              </li>
+              <li>
+The fourth element indicates the height of the TV window.              </li>
+            </ul>
+            <p>
+Each element of <em>rectangle</em> can be described in either absolute value by using pixel units "px"
+or relative value by using percentage units "%". If you do not specify any unit after a value then it will be taken as an absolute value.
+            </p>
+            <p>
+The <em>errorCallback</em> is invoked with these error types:
+            </p>
+            <ul>
+              <li>
+<em>InvalidValuesError</em> will be thrown if <em>rectangle</em> has any element with invalid format (e.g. "10p") or it does not have 4 elements.              </li>
+              <li>
+<em>NotSupportedError</em> will be thrown if you set <em>rectangle</em> which is not within the boundary of the display area or when the TV window is not supported in the current screen orientation.               </li>
+              <li>
+<em>TypeMismatchError</em> will be thrown if <em>rectangle</em> is not an array.              </li>
+            </ul>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method which will be invoked when the position and size of the TV window has been changed successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method which will be invoked when an error occurs
+                </li>
+          <li class="param">
+<span class="name">rectangle</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ An array that contains information about the position and size of a specified TV window as a string with units <br>Without this parameter, the TV window will have the same size and location as when this method last suceeded.<br>But, if a rectangle has never been specified, the TV window will be shown in full screen mode.
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+          <li class="param">
+<span class="name">zPosition</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ Specifies whether the TV window should be in front of or behind the Web Application since Tizen 2.4<br> By default, this parameter is set to <var>FRONT</var>.<br>If this parameter is set to null or <var>FRONT</var>, this method behaves in the same way as it did before Tizen 2.4.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type InvalidValuesError, if any of the input parameters contain an invalid value.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(windowRect, type) {
+     // You will get exactly what you put as rectangle argument of show() through windowRect.
+     // expected result : ["0", "0px", "50%", "540px"]
+     console.log("Rectangle : [" + windowRect[0] + ", " + windowRect[1] + ", " + windowRect[2] + ", " + windowRect[3] + "]");
+ }
+
+ try {
+     tizen.tvwindow.show(successCB, null, ["0", "0px", "50%", "540px"], "MAIN");
+ } catch(error) {
+     console.log("error: " + error.name);
+ }
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(windowRect, type) {
+     // expected result : ["0", "0", "50%", "50%"]
+     console.log("Rectangle : [" + windowRect[0] + ", " + windowRect[1] + ", " + windowRect[2] + ", " + windowRect[3] + "]");
+ }
+
+ try {
+     tizen.tvwindow.show(successCB, null, ["0", "0", "50%", "50%"], "MAIN");
+ } catch(error) {
+     console.log("error: " + error.name);
+ }
+ </pre>
+</div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCB(windowRect, type) {
+     // expected result : ["10.5%", "10%", "900", "500px"]
+     console.log("Rectangle : [" + windowRect[0] + ", " + windowRect[1] + ", " + windowRect[2] + ", " + windowRect[3] + "]");
+ }
+
+ try {
+     tizen.tvwindow.show(successCB, null, ["10.5%", "10%", "900", "500px"]);
+ } catch(error) {
+     console.log("error: " + error.name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::hide">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::hide"></a><code><b><span class="methodName">hide</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Hides a TV window which is shown.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void hide(<a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the window is hidden successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+<dt class="method" id="TVWindowManager::getRect">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::getRect"></a><code><b><span class="methodName">getRect</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets the area information of a TV window which is shown.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void getRect(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#MeasurementUnit">MeasurementUnit</a>? unit, optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+According to the specified <b>unit</b>, information about the area will be passed to an array that contains 4 strings through <em>WindowRectangleSuccessCallback</em> as follows :
+            </p>
+            <ul>
+              <li>
+If you set <em>"px"</em> as <em>unit</em>, ["0px", "0px", "1920px", "1080px"]               </li>
+              <li>
+If you set <em>"%"</em> as <em>unit</em>, ["0%", "0%", "100%", "100%"]               </li>
+            </ul>
+            <p>
+If you omit <b>unit</b>, the pixel(<var>"px"</var>) unit will be used as a default unit.
+            </p>
+           </div>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span>: 
+ The method to invoke when the position and size of the TV window has been obtained successfully
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The method to invoke when an error occurs
+                </li>
+          <li class="param">
+<span class="name">unit</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The measurement unit for specifying the display area - by default, this attribute is set to <em>"px"</em>                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function rectangleCB(windowRect, type) {
+     // You call getRect() without specifying a unit, it expresses the area information with pixel unit.
+     // expected result : ["0px", "0px", "960px", "540px"] if the screen resolution of a device is 1920 x 1080.
+     console.log("Rectangle : [" + windowRect[0] + ", " + windowRect[1] + ", " + windowRect[2] + ", " + windowRect[3] + "]");
+ }
+
+ function successCB(windowRect, type) {
+     // You will get exactly what you put as rectangle argument through windowRect.
+     // expected result : ["0", "0", "50%", "50%"]
+     console.log("Rectangle : [" + windowRect[0] + ", " + windowRect[1] + ", " + windowRect[2] + ", " + windowRect[3] + "]");
+     tizen.tvwindow.getRect(rectangleCB);
+ }
+
+ try {
+     tizen.tvwindow.show(successCB, null, ["0", "0", "50%", "50%"]);
+ } catch(error) {
+     console.log("error: " + error.name);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::getVideoResolution">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::getVideoResolution"></a><code><b><span class="methodName">getVideoResolution</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Gets video resolution information.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint"><a href="#VideoResolution">VideoResolution</a> getVideoResolution(optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type - by default, this attribute is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ VideoResolution current video resolution information
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError if any other error occurs.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> var res = tizen.tvwindow.getVideoResolution();
+ console.log("Video resolution: " + res.width + "x" + res.height + " pixels");
+ console.log("Frequency: " + res.frequency +"Hz");
+ if (res.aspectRatio === "ASPECT_RATIO_16x9") {
+     console.log("Widescreen on");
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::addVideoResolutionChangeListener">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::addVideoResolutionChangeListener"></a><code><b><span class="methodName">addVideoResolutionChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Adds a video resolution listener for getting notified about resolution changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">long addVideoResolutionChangeListener(<a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a> callback, optional <a href="#WindowType">WindowType</a>? type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">callback</span>: 
+ The method to invoke when the resolution has been changed
+                </li>
+          <li class="param">
+<span class="name">type</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ The window type. By default, this parameter is set to <var>MAIN</var>                </li>
+        </ul>
+</div>
+<div class="returntype">
+<p><span class="return">Return value:</span></p>
+ long The identifier of the resolution change listener.
+              </div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type TypeMismatchError, if any input attribute is not compatible with the expected type for this attribute.
+                </p></li>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError, if it fails to register a listener.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function change(res, type) {
+     console.log("Switched to new resolution: " + res.width + "x" + res.height);
+     console.log("New frequency: " + res.frequency);
+     if (res.aspectRatio === "ASPECT_RATIO_16x9") {
+         console.log("Widescreen is now turned on");
+     }
+ }
+
+ try {
+     var watch = tizen.tvwindow.addVideoResolutionChangeListener(change);
+ } catch (error) {
+     console.log("Error name = "+ error.name + ", Error message = " + error.message);
+ }
+ </pre>
+</div>
+</dd>
+<dt class="method" id="TVWindowManager::removeVideoResolutionChangeListener">
+<a class="backward-compatibility-anchor" name="::TVWindow::TVWindowManager::removeVideoResolutionChangeListener"></a><code><b><span class="methodName">removeVideoResolutionChangeListener</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes the listener to stop receiving notifications for the video resolution changes.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeVideoResolutionChangeListener(long listenerId);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<p><span class="privilegelevel">
+            Privilege level: </span>
+ public
+            </p>
+<p><span class="privilege">
+            Privilege: </span>
+ http://tizen.org/privilege/tv.window
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">listenerId</span>: 
+ The identifier of the listener for resolution changes
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul>
+<li class="list"><p>
+ with error type SecurityError, if the application does not have the privilege to call this method.
+                </p></li>
+<li class="list"><p>
+ with error type UnknownError in any other error case.
+                </p></li>
+</ul>
+</li></ul>
+        </div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="VideoResolution">
+<a class="backward-compatibility-anchor" name="::TVWindow::VideoResolution"></a><h3>2.3. VideoResolution</h3>
+<div class="brief">
+ The VideoResolution interface contains information about current video resolution.
+          </div>
+<pre class="webidl prettyprint">    [NoInterfaceObject] interface VideoResolution {
+
+        readonly attribute long width;
+
+        readonly attribute long height;
+
+        readonly attribute long frequency;
+
+        readonly attribute <a href="#AspectRatio">AspectRatio</a> aspectRatio;
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="attributes">
+<h4>Attributes</h4>
+<ul>
+<li class="attribute" id="VideoResolution::width">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">width</span></span><div class="brief">
+ Video width in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="VideoResolution::height">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">height</span></span><div class="brief">
+ Video height in pixels.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="VideoResolution::frequency">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">long </span><span class="name">frequency</span></span><div class="brief">
+ Vertical frequency rate in Hz.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+<li class="attribute" id="VideoResolution::aspectRatio">
+<span class="attrName"><span class="readonly">                readonly
+</span><span class="type">AspectRatio </span><span class="name">aspectRatio</span></span><div class="brief">
+ Video aspect ratio.
+            </div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+</li>
+</ul>
+</div>
+</div>
+<div class="interface" id="VideoResolutionChangeCallback">
+<a class="backward-compatibility-anchor" name="::TVWindow::VideoResolutionChangeCallback"></a><h3>2.4. VideoResolutionChangeCallback</h3>
+<div class="brief">
+ This interface defines a video resolution change callback for getting notified about video resolution changes.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface VideoResolutionChangeCallback {
+        void onchanged(<a href="#VideoResolution">VideoResolution</a> resolution, <a href="#WindowType">WindowType</a> type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.4
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="VideoResolutionChangeCallback::onchanged">
+<a class="backward-compatibility-anchor" name="::TVWindow::VideoResolutionChangeCallback::onchanged"></a><code><b><span class="methodName">onchanged</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the video resolution has been changed.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onchanged(<a href="#VideoResolution">VideoResolution</a> resolution, <a href="#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.4
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">resolution</span>: 
+ The resolution that the video has changed to
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="AvailableWindowListCallback">
+<a class="backward-compatibility-anchor" name="::TVWindow::AvailableWindowListCallback"></a><h3>2.5. AvailableWindowListCallback</h3>
+<div class="brief">
+ This interface defines a callback that is invoked when a list of available windows is retrieved successfully.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface AvailableWindowListCallback {
+        void onsuccess(<a href="#WindowType">WindowType</a>[] type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="AvailableWindowListCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVWindow::AvailableWindowListCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when a list of available windows is retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#WindowType">WindowType</a>[] type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">type</span>: 
+ The available window types
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="WindowRectangleSuccessCallback">
+<a class="backward-compatibility-anchor" name="::TVWindow::WindowRectangleSuccessCallback"></a><h3>2.6. WindowRectangleSuccessCallback</h3>
+<div class="brief">
+ This interface includes the success callback that is invoked when the position and size of a TV window has been changed or retrieved.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface WindowRectangleSuccessCallback {
+        void onsuccess(DOMString[] windowRect, <a href="#WindowType">WindowType</a> type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="WindowRectangleSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVWindow::WindowRectangleSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the position and size of the TV window has been changed or retrieved.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(DOMString[] windowRect, <a href="#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+This method returns information <b>windowRect</b> and <b>type</b>.
+For more detailed information about <em>windowRect</em>, see the description of <em>show()</em>.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">windowRect</span>: 
+ An array that contains information about the position and size of a specified TV  window as a string with units
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="interface" id="SourceChangedSuccessCallback">
+<a class="backward-compatibility-anchor" name="::TVWindow::SourceChangedSuccessCallback"></a><h3>2.7. SourceChangedSuccessCallback</h3>
+<div class="brief">
+ This interface includes the success callback that is invoked when the source has been set.
+          </div>
+<pre class="webidl prettyprint">    [Callback = FunctionOnly, NoInterfaceObject] interface SourceChangedSuccessCallback {
+        void onsuccess(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> source, <a href="#WindowType">WindowType</a> type);
+    };</pre>
+<p><span class="version">
+            Since: </span>
+ 2.3
+          </p>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="SourceChangedSuccessCallback::onsuccess">
+<a class="backward-compatibility-anchor" name="::TVWindow::SourceChangedSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Method invoked when the new source has been set.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> source, <a href="#WindowType">WindowType</a> type);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.3
+            </p>
+<div class="description">
+            <p>
+This method returns information <b>source</b> and <b>type</b>.
+            </p>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">source</span>: 
+ A descriptor object <em>SystemInfoVideoSourceInfo</em> that contains information about the source used by TV
+                </li>
+          <li class="param">
+<span class="name">type</span>: 
+ The window type
+                </li>
+        </ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="api-features">3. Related Feature</h2>
+<div id="def-api-features" class="def-api-features">
+        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
+                    <div class="def-api-feature">
+<p><div class="description">
+            <p>
+To guarantee the running of this application on a device with a TV picture-in-picture support, define the following requirements in the config file:
+            </p>
+           </div></p>
+<li class="feature">http://tizen.org/feature/tv.pip</li>
+</div>
+<p></p>
+                    For more information, see <a href="../../org.tizen.gettingstarted/html/tizen_overview/application_filtering.htm">Application Filtering.</a>
+</div>
+<h2 id="full-webidl">4. Full WebIDL</h2>
+<pre class="webidl prettyprint">module TVWindow {
+
+    enum WindowType {
+        "MAIN",
+    };
+
+    enum MeasurementUnit {
+        "px",
+        "%"
+    };
+
+    enum AspectRatio{
+        "ASPECT_RATIO_1x1",
+        "ASPECT_RATIO_4x3",
+        "ASPECT_RATIO_16x9",
+        "ASPECT_RATIO_221x100"
+    };
+
+    enum ZPosition{
+        "FRONT",
+        "BEHIND"
+    };
+
+    [NoInterfaceObject] interface TVWindowManagerObject {
+        readonly attribute <a href="#TVWindowManager">TVWindowManager</a> tvwindow;
+    };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#TVWindowManagerObject">TVWindowManagerObject</a>;
+
+    [NoInterfaceObject] interface TVWindowManager {
+        void getAvailableWindows(<a href="#AvailableWindowListCallback">AvailableWindowListCallback</a> successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void setSource(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> videoSource,
+                       <a href="#SourceChangedSuccessCallback">SourceChangedSuccessCallback</a> successCallback,
+                       optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                       optional <a href="#WindowType">WindowType</a>? type) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> getSource(optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void show(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                 optional DOMString[]? rectangle,
+                 optional <a href="#WindowType">WindowType</a>? type,
+                 optional <a href="#ZPosition">ZPosition</a>? zPosition) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void hide(<a href="tizen.html#SuccessCallback">SuccessCallback</a> successCallback,
+                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                  optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void getRect(<a href="#WindowRectangleSuccessCallback">WindowRectangleSuccessCallback</a> successCallback,
+                 optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
+                 optional <a href="#MeasurementUnit">MeasurementUnit</a>? unit,
+                 optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        <a href="#VideoResolution">VideoResolution</a> getVideoResolution(optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        long addVideoResolutionChangeListener(<a href="#VideoResolutionChangeCallback">VideoResolutionChangeCallback</a> callback,
+                                       optional <a href="#WindowType">WindowType</a>? type) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+        void removeVideoResolutionChangeListener(long listenerId) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
+    };
+
+    [NoInterfaceObject] interface VideoResolution {
+
+        readonly attribute long width;
+
+        readonly attribute long height;
+
+        readonly attribute long frequency;
+
+        readonly attribute <a href="#AspectRatio">AspectRatio</a> aspectRatio;
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface VideoResolutionChangeCallback {
+        void onchanged(<a href="#VideoResolution">VideoResolution</a> resolution, <a href="#WindowType">WindowType</a> type);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface AvailableWindowListCallback {
+        void onsuccess(<a href="#WindowType">WindowType</a>[] type);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface WindowRectangleSuccessCallback {
+        void onsuccess(DOMString[] windowRect, <a href="#WindowType">WindowType</a> type);
+    };
+
+    [Callback = FunctionOnly, NoInterfaceObject] interface SourceChangedSuccessCallback {
+        void onsuccess(<a href="systeminfo.html#SystemInfoVideoSourceInfo">SystemInfoVideoSourceInfo</a> source, <a href="#WindowType">WindowType</a> type);
+    };
+
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/websetting.html b/org.tizen.web.apireference/html/device_api/tv/tizen/websetting.html
new file mode 100644 (file)
index 0000000..ea47d19
--- /dev/null
@@ -0,0 +1,269 @@
+<!DOCTYPE html PUBLIC "html">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
+<script type="text/javascript" src="snippet.js"></script><title>WebSetting API</title>
+</head>
+<body id="page-content" onload="prettyPrint()">
+<div class="api" id="::WebSetting">
+<div class="title"><h1>WebSetting API</h1></div>
+<div class="brief">
+ This Web setting API defines a set of APIs that manages the setting states of the Web view in your Web application.
+        </div>
+<div class="description">
+        <p>
+A Tizen Web application includes a web view and the properties below of the web view can be managed via the Web setting API:
+        </p>
+        <ul>
+          <li>
+ Delete all the cookies saved for the web view in the Web application.           </li>
+          <li>
+ Set a custom user agent string of the web view in the Web application.          </li>
+        </ul>
+        <p>
+Note that all the settings using the Web setting API is bound to your application; thus, no other applications are affected via the Web setting API calls within your application.
+        </p>
+        <p>
+For more information on the Web setting features, see <a href="../../org.tizen.mobile.web.appprogramming/html/guide/sys_guide/websetting.htm">Web Setting Guide</a>.
+        </p>
+       </div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+        </p>
+<h2>Table of Contents</h2>
+<ul class="toc">
+<li>1. <a href="#interfaces-section">Interfaces</a><ul class="toc">
+<li>1.1. <a href="#WebSettingObject">WebSettingObject</a>
+</li>
+<li>1.2. <a href="#WebSettingManager">WebSettingManager</a>
+</li>
+</ul>
+</li>
+<li>2. <a href="#full-webidl">Full WebIDL</a>
+</li>
+</ul>
+<hr>
+<h2 id="method-summary">Summary of Interfaces and Methods</h2>
+<table class="informaltable">
+<thead><tr>
+<th>Interface</th>
+<th>Method</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><a href="#WebSettingObject">WebSettingObject</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="#WebSettingManager">WebSettingManager</a></td>
+<td>
+<div>void <a href="#WebSettingManager::setUserAgentString">setUserAgentString</a> (DOMString userAgent, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+<div>void <a href="#WebSettingManager::removeAllCookies">removeAllCookies</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="interfaces" id="interfaces-section">
+<h2>1. Interfaces</h2>
+<div class="interface" id="WebSettingObject">
+<a class="backward-compatibility-anchor" name="::WebSetting::WebSettingObject"></a><h3>1.1. WebSettingObject</h3>
+<div class="brief">
+ This interface defines what is instantiated for the Web setting API by the <em>Tizen</em> object from the Tizen Platform.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface WebSettingObject {
+    readonly attribute <a href="#WebSettingManager">WebSettingManager</a> websetting;
+  };</pre>
+<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#WebSettingObject">WebSettingObject</a>;</pre>
+<p><span class="version">
+            Since: </span>
+ 2.2
+          </p>
+<div class="description">
+          <p>
+<em>tizen.websetting</em> object is available to manage the settings of the Web view in your Web application.
+          </p>
+         </div>
+</div>
+<div class="interface" id="WebSettingManager">
+<a class="backward-compatibility-anchor" name="::WebSetting::WebSettingManager"></a><h3>1.2. WebSettingManager</h3>
+<div class="brief">
+ This is the top-level interface for the WebSetting API that managed the settings of the Web view in your Web application.
+          </div>
+<pre class="webidl prettyprint">  [NoInterfaceObject] interface WebSettingManager {
+
+   void setUserAgentString(DOMString userAgent,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+   void removeAllCookies(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+   };</pre>
+<div class="methods">
+<h4>Methods</h4>
+<dl>
+<dt class="method" id="WebSettingManager::setUserAgentString">
+<a class="backward-compatibility-anchor" name="::WebSetting::WebSettingManager::setUserAgentString"></a><code><b><span class="methodName">setUserAgentString</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Sets the custom user agent string for your Web application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void setUserAgentString(DOMString userAgent, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+<div class="description">
+            <p>
+This method allows the user to set the user agent string of the Web view in the Web application.  By default, the Web view in your application
+has the same user agent string as the Tizen browser on the device.
+            </p>
+            <p>
+The <em>ErrorCallback</em> is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError - If any error occurs while setting the user agent string.              </li>
+              <li>
+InvalidValuesError - If any of the input parameters contain an invalid value.              </li>
+            </ul>
+           </div>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">userAgent</span>: 
+ User agent to set for the Web view in your Web application.
+                </li>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ To be invoked if the requested setting operation succeeds.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ To be invoked if the requested setting operation fails.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCallback() {
+     console.log("The requested user agent string has just been set successfully.");
+ }
+
+ tizen.websetting.setUserAgentString("the new user agent string to set", successCallback);
+ </pre>
+</div>
+</dd>
+<dt class="method" id="WebSettingManager::removeAllCookies">
+<a class="backward-compatibility-anchor" name="::WebSetting::WebSettingManager::removeAllCookies"></a><code><b><span class="methodName">removeAllCookies</span></b></code>
+</dt>
+<dd>
+<div class="brief">
+ Removes all the cookies saved for the Web view in your Web application.
+            </div>
+<div class="synopsis"><pre class="signature prettyprint">void removeAllCookies(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
+             </pre></div>
+<p><span class="version">
+            Since: </span>
+ 2.2
+            </p>
+<div class="description">
+            <p>
+The Web view in your Web application can store cookies like a browser. This method allows the user to remove all the cookies saved for the Web application.
+            </p>
+            <p>
+The <em>ErrorCallback</em> is launched with these error types:
+            </p>
+            <ul>
+              <li>
+UnknownError - If any error occurs while deleting the cookies.              </li>
+            </ul>
+           </div>
+<p class="warning"><b>Warning:</b>
+ http://tizen.org/privilege/websetting(public level privilege) <b>MUST NOT</b> be declared to use this API since 2.4.
+            </p>
+<div class="parameters">
+<p><span class="param">Parameters:</span></p>
+<ul>
+          <li class="param">
+<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ To be invoked if the requested delete operation succeeds.
+                </li>
+          <li class="param">
+<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>: 
+ To be invoked if the requested delete operation fails.
+                </li>
+        </ul>
+</div>
+<div class="exceptionlist">
+<p><span class="except">Exceptions:</span></p>
+          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
+ with error type TypeMismatchError, if any input parameter is not compatible with the expected type for that parameter.
+                </p></li></ul>
+</li></ul>
+        </div>
+<div class="example">
+<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint"> function successCallback() {
+     console.log("The cookies saved for your application have just been removed.");
+ }
+
+ tizen.websetting.removeAllCookies(successCallback);
+ </pre>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<h2 id="full-webidl">2. Full WebIDL</h2>
+<pre class="webidl prettyprint">module WebSetting {
+
+  [NoInterfaceObject] interface WebSettingObject {
+    readonly attribute <a href="#WebSettingManager">WebSettingManager</a> websetting;
+  };
+    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#WebSettingObject">WebSettingObject</a>;
+
+  [NoInterfaceObject] interface WebSettingManager {
+
+   void setUserAgentString(DOMString userAgent,
+              optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+   void removeAllCookies(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
+              optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises (<a href="tizen.html#WebAPIException">WebAPIException</a>);
+
+   };
+};</pre>
+</div>
+<div id="page-footer">
+<div class="copyright" align="center">
+         Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
+            </div>
+<script type="text/javascript">
+
+              var _gaq = _gaq || [];
+              _gaq.push(['_setAccount', 'UA-25976949-1']);
+              _gaq.push(['_setDomainName', 'tizen.org']);
+              _gaq.push(['_trackPageview']);
+
+              (function() {
+                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+              })();
+
+            </script>
+</div>
+</body>
+</html>
index 9760207..e2c76d6 100644 (file)
                                                </li>
                                        </ul>
                                </li>
+                               <li><a href="device_api/tv/index.html">TV Web</a>
+                                       <ul>
+                                               <li><a href="device_api/tv/index.html#Base">Base</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/archive.html">Archive</a></li>
+                                                               <li><a href="device_api/tv/tizen/filesystem.html">Filesystem</a></li>
+                                                               <li><a href="device_api/tv/tizen/tizen.html">Tizen</a></li>
+                                                       </ul>
+                                               </li>
+                                               <li><a href="device_api/tv/index.html#Application">Application Framework</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/alarm.html">Alarm</a></li>
+                                                               <li><a href="device_api/tv/tizen/application.html">Application</a></li>
+                                                               <li><a href="device_api/tv/tizen/datacontrol.html">Data Control</a></li>
+                                                               <li><a href="device_api/tv/tizen/messageport.html">Message Port</a></li>
+                                                               <li><a href="device_api/tv/tizen/package.html">Package</a></li>
+                                                       </ul>
+                                               </li>
+                                               <li><a href="device_api/tv/index.html#Contents">Content</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/content.html">Content</a></li>
+                                                               <li><a href="device_api/tv/tizen/download.html">Download</a></li>
+                                                               <li><a href="device_api/tv/tizen/exif.html">Exif</a></li>
+                                                       </ul>
+                                               </li>
+                                               <li><a href="device_api/tv/index.html#Security">Security</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/keymanager.html">Key Manager</a>
+                                                       </ul>
+                                               </li>
+                                               <li><a href="device_api/tv/index.html#System">System</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/systeminfo.html">System Information</a></li>
+                                                               <li><a href="device_api/tv/tizen/time.html">Time</a></li>
+                                                               <li><a href="device_api/tv/tizen/websetting.html">Web Setting</a></li>
+                                                       </ul>
+                                               </li>
+                                               <li><a href="device_api/tv/index.html#TV Control">TV Control</a>
+                                                       <ul>
+                                                               <li><a href="device_api/tv/tizen/tvaudiocontrol.html">TV Audio Control</a></li>
+                                                               <li><a href="device_api/tv/tizen/tvchannel.html">TV Channel</a></li>
+                                                               <li><a href="device_api/tv/tizen/tvdisplaycontrol.html">TV Display Control</a></li>
+                                                               <li><a href="device_api/tv/tizen/tvinputdevice.html">TV Input Device</a></li>
+                                                               <li><a href="device_api/tv/tizen/tvwindow.html">TV Window</a></li>
+                                                               <li><a href="device_api/tv/tizen/tvinfo.html">TV Information</a></li>
+                                                       </ul>
+                                               </li>
+                                       </ul>
+                               </li>
                        </ul>
 
                <h3><a href="ui_fw_api/ui_fw_api_cover.htm">Tizen Advanced UI framework (TAU)</a></h3>
index ed20056..00c7a8c 100644 (file)
 
 
                        </topic>
+                       <topic label="TV Web" href="html/device_api/tv/index.html">
+                               <topic href="html/device_api/tv/index.html#Base" label="Base">
+                                       <topic href="html/device_api/tv/tizen/archive.html" label="Archive"></topic>
+                                       <topic href="html/device_api/tv/tizen/filesystem.html" label="Filesystem"></topic>
+                                       <topic href="html/device_api/tv/tizen/tizen.html" label="Tizen"></topic>
+                               </topic>
+                               <topic href="html/device_api/tv/index.html#Application" label="Application Framework">
+                                       <topic href="html/device_api/tv/tizen/alarm.html" label="Alarm"></topic>
+                                       <topic href="html/device_api/tv/tizen/application.html" label="Application"></topic>
+                                       <topic href="html/device_api/tv/tizen/datacontrol.html" label="Data Control" ></topic>
+                                       <topic href="html/device_api/tv/tizen/messageport.html" label="Message Port" ></topic>
+                                       <topic href="html/device_api/tv/tizen/package.html" label="Package" ></topic>
+                               </topic>
+                               <topic href="html/device_api/tv/index.html#Contents" label="Content">
+                                       <topic href="html/device_api/tv/tizen/content.html" label="Content" ></topic>
+                                       <topic href="html/device_api/tv/tizen/download.html" label="Download" ></topic>
+                                       <topic href="html/device_api/tv/tizen/exif.html" label="Exif" ></topic>
+                               </topic>
+                               <topic href="html/device_api/tv/index.html#Security" label="Security">
+                                       <topic href="html/device_api/tv/tizen/keymanager.html" label="Keymanager" ></topic>
+                               </topic>
+                               <topic href="html/device_api/tv/index.html#System" label="System">
+                                       <topic href="html/device_api/tv/tizen/systeminfo.html" label="System Information" ></topic>
+                                       <topic href="html/device_api/tv/tizen/time.html" label="Time" ></topic>
+                                       <topic href="html/device_api/tv/tizen/websetting.html" label="Web Setting" ></topic>
+                               </topic>
+                               <topic href="html/device_api/tv/index.html#TV Control" label="TV Control">
+                                       <topic href="html/device_api/tv/tizen/tvaudiocontrol.html" label="TV Audio Control" ></topic>
+                                       <topic href="html/device_api/tv/tizen/tvchannel.html" label="TV Channel" ></topic>
+                                       <topic href="html/device_api/tv/tizen/tvdisplaycontrol.html" label="TV Display Control" ></topic>
+                                       <topic href="html/device_api/tv/tizen/tvinputdevice.html" label="TV Input Device" ></topic>
+                                       <topic href="html/device_api/tv/tizen/tvwindow.html" label="TV Window" ></topic>
+                                       <topic href="html/device_api/tv/tizen/tvinfo.html" label="TV Information" ></topic>
+                               </topic>
+                       </topic>
                </topic>
                <topic label="Tizen Advanced UI framework (TAU)" href="html/ui_fw_api/ui_fw_api_cover.htm">
                        <topic href="html/ui_fw_api/Base/base.htm" label="Base">