2009/dap/api-perms Overview.html,NONE,1.1

Update of /sources/public/2009/dap/api-perms
In directory hutz:/tmp/cvs-serv6401

Added Files:
	Overview.html 
Log Message:
capitalize Access in title, new directory location

--- NEW FILE: Overview.html ---
<!DOCTYPE html> 
<html>
  <head>
    <title>Permissions for Device API Access</title> <meta
                                                           http-equiv='Content-Type' 
                                                           content='text/html;charset=utf-8'/> <script src='../ReSpec.js/js/respec.js'
                                                                                                       class='remove'></script> <script class='remove'>
      var respecConfig = { specStatus: "ED", 
      shortName: "api-perms",
      editors: [    {   name:       "Paddy Byers",
      company:    "Aplix",
      companyURL: "http://www.aplix.com/" },
      {   name:       "Frederick Hirsch",
      company:    "Nokia",
      companyURL: "http://www.nokia.com/" },
      {name: "Dominique Hazaël-Massieux", company: "W3C"}],
      // publishDate: "2009-10-23", 
      // previousPublishDate: "1977-03-15",
      edDraftURI: "http://dev.w3.org/2009/dap/features/Overview.html",
      // lcEnd: "2009-08-05",
      };
    </script> <script src='../common/configPolicy.js' class='remove'></script>
  </head>
  <body>
    <section id='abstract'>
      This document identifies the permissions that are needed to use specific client-side APIs which grant access to sensitive data and operations.
    </section> <!-- abstract -->

    <section id='introduction'>
      <h2>Introduction</h2>
      <p>A number of Web APIs, in particular those used to access private or
        sensitive data from the hosting device, are meant to be discoverable,
        as well as disabled or enabled on a site-by-site or
        application-by-application basis, depending on the security
        context.</p> 
      <p>For instance, the <a
                              href="http://www.w3.org/TR/2009/CR-widgets-20091201/#the-feature-element">feature
          element</a> as defined in the Widget Packaging and 
        Configuration specification [[WIDGETS]] allows a widget runtime
        engine to grant access only to the specific APIs that the
        configuration file of the widget listed.</p> 
      <p>This document  identifies and names the various permissions that are attached to existing Web APIs.</p>

    </section> <!-- introduction -->
    <section id="permissions">
      <h2>Permissions</h2>
      <p>Each permission described in this document is identified using a string  specified in this document.      </p> 
      <p>Where these permissions needed to be identified as a URI (e.g. in a widget configuration file [[WIDGETS]]), a URI can be built from these strings by 
        appending that string to the base
        <code>http://www.w3.org/ns/api-perms/</code>.</p> 
      <p class="note">The DAP base URI is entirely tentative at this stage.</p>

      <section id="geolocation">
        <h3>Geolocation API</h3> 

        <p>The <code>geolocation</code> identifier corresponds to the
          access to both or either of the <code><a
                                 href="http://www.w3.org/TR/geolocation-API/#get-current-position">Geolocation::getCurrentPosition</a></code>
          and <code><a
                       href="http://www.w3.org/TR/geolocation-API/#watch-position">Geolocation::watchPosition</a></code>
          methods defined in the Geolocation API [[!GEOLOCATION-API]].</p>  

	<p>In the Web browser environment, this permission is usually granted through explicit user’s consent, and is retained for later access in the same session.</p>

      </section> 
      <section id="contact">
	    <h3>Contact API</h3>
	<p>The <code>contacts.read</code> identifier corresponds to the access to the <code><a href="http://www.w3.org/TR/contacts-api/#widl-Contacts-find">Contacts::find</a></code> method defined in the Contacts API [[!CONTACTS-API]].</p>
	<p>In the Web browser environment, this permission is usually granted implicitly by asking the user to select what data of which contacts should be shared, for each call to the said method.</p>

      </section>
      <section id="capture">
	    <h3>Capture API</h3>
        <p>The <code>mediacapture</code> identifier corresponds to the access to the <code><a href="http://dev.w3.org/2009/dap/camera/Overview-API.html#widl-Capture-captureImage">Capture::captureImage</a></code>, <code><a href="http://dev.w3.org/2009/dap/camera/Overview-API.html#widl-Capture-captureVideo">Capture::captureVideo</a></code> and <code><a href="http://dev.w3.org/2009/dap/camera/Overview-API.html#widl-Capture-captureAudio">Capture::captureAudio</a></code> methods defined in Media Capture API [[!MEDIACAPTURE-API]]. </p>
	<p>In the Web browser environment, this permission is usually granted implicitly by asking the user to activate a button to start and stop the recording operations, for each call to the said methods.</p>

      </section>
      <section id="capture">
	    <h3>File API</h3>
            <p>The <code>file.read</code> identifier corresponds to
            the access to the <code><a
            href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-readAsArrayBuffer">FileReader::readAsArrayBuffer</a></code>,
            <code><a
                      href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-readAsArrayBuffer">FileReader::readAsBinaryString</a></code>,
            <code><a
                      href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-readAsText">FileReader::readAsText</a></code> and <code><a href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-readAsArrayBuffer">FileReader::readAsDataURL</a></code> methods defined in the File API [[!FILE-API]]. </p> 
	<p>In the Web browser environment, this permission is usually granted implicitly once the <code>File</code> object has been created, after the user has selected a file from a file picker.</p>

            <p>The <code>file.write</code> identifier corresponds to
            the access to
            the <code><a href="http://dev.w3.org/2009/dap/file-system/file-writer.html#widl-FileWriter-write">FileWriter::write</a></code>, <code><a href="http://dev.w3.org/2009/dap/file-system/file-writer.html#widl-FileWriter-truncate">FileWriter::truncate</a></code>, <code><a href="http://dev.w3.org/2009/dap/file-system/file-writer.html#widl-FileWriterSync-write">FileWriterSync::write</a></code>
            and <code><a href="http://dev.w3.org/2009/dap/file-system/file-writer.html#widl-FileWriterSync-truncate">FileWriterSync::truncate</a></code>
            methods defined in the File Writer API [[!FILE-WRITER]]. </p>

	<p>In the Web browser environment, this permission is usually granted implicitly once the <code>FileSaver</code> object has been created, after the user has selected a path to which the data can be saved (e.g. through a “Save As” dialog).</p>

      </section>


      <!--
      <section id="messaging">
	    <h3>Messaging API</h3>
	    <p>The <code>messaging.sms.send</code> identifier corresponds to the access to the <code><a href="http://dev.w3.org/2009/dap/messaging/#widl-SMSMessage-send">SMSMessage::send</a></code> method defined in [[!MESSAGING-API]].</p>
	    <p>The <code>messaging.mms.send</code> identifier corresponds to the access to the <code><a href="http://dev.w3.org/2009/dap/messaging/#widl-MMSMessage-send">MMSMessage::send</a></code> and <code><a href="http://dev.w3.org/2009/dap/messaging/#widl-SMSMessage-send">SMSMessage::send</a></code> methods defined in [[!MESSAGING-API]].</p>
	    <p>The <code>messaging.email.send</code> identifier corresponds to the access to the <code><a href="http://dev.w3.org/2009/dap/messaging/#widl-EmailMessage-send">EmailMessage::send</a></code> method defined in [[!MESSAGING-API]].</p>
	    Commenting out — the model for granting permissions in that spec is not very clear yet.
      </section>

      -->
      <section id="sysinfo">
	    <h3>System Information API</h3>
	    <p>The <code>deviceinfo</code> identifier corresponds to the access to the data of the <code>Power</code>, <code>CPU</code>, <code>Thermal</code>, <code>AVCodecs</code>, <code>Storage</code>, <code>OutputDevices</code>, <code>InputDevices</code> properties available through the <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-get">SystemInfo::get</a></code> and <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-watch">SystemInfo::watch</a></code> methods  defined in the System Information API [[!SYSINFOAPI]].</p>

	    <p>The <code>networkinfo</code> identifier corresponds to the access to the data of the <code>Network</code> property available through the <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-get">SystemInfo::get</a></code> and <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-watch">SystemInfo::watch</a></code> methods  defined in the System Information API [[!SYSINFOAPI]].</p>

	    <p>The <code>sensorinfo</code> identifier corresponds to the access to the data of the <code>AmbientLight</code>, <code>AmbientNoise</code>, <code>AmbientTemperature</code>, <code>AmbientAtmosphericPressure</code> and <code>Proximity</code> properties available through the <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-get">SystemInfo::get</a></code> and <code><a href="http://www.w3.org/TR/system-info-api/#widl-SystemInfo-watch">SystemInfo::watch</a></code> methods  defined in the System Information API [[!SYSINFOAPI]].</p>

	<p>In the Web browser environment, these permissions are usually granted through explicit user’s consent, and are retained for later access in the same session.</p>
      </section>
    </section>


    <section class="appendix">
      <h2>Mapping to BONDI features and Android permissions</h2>
            <p>This section maps the permissions defined in this document to  BONDI 1.11 feature strings
        [[BONDI-FEATURES1-11]] and corresponding  
        <a href="http://developer.android.com/reference/android/Manifest.permission.html">
          Android permissions</a>.</p> 
      <p>BONDI 1.11 feature URIs are formed by appending the BONDI
        string to the base URI:  <code>http://bondi.omtp.org/api/1.1/</code>.
      </p>
<p>BONDI and Android values are only given as
  examples.</p> 
      <p class="note">
 Note also that this section might contain errors.  BONDI
        and Android meanings may not correspond as shown and even if
        the names are similar they may  not be equivalent.</p> 
      <section>
	<h3>Geolocation</h3>
        <table
           class="simple"
           summary="Geolocation Permissions">
          <thead>
            <tr>
	      <th rowspan="2">W3C API permissions</th>
              <th colspan="2">
                <a>BONDI 1.11 Feature</a> 
              </th>
              <th colspan="2">
                <a>Android Permissions</a> 
              </th>
            </tr>
	    <tr><th>Identifier</th><th>Scope</th><th>Identifier</th><th>Scope</th>
	    </tr>
          </thead>
          <tbody>
            <tr>
	      <td rowspan="2"><code>geolocation</code></td>
              <td rowspan="2">
                <code>geolocation.position</code>
              </td>
              <td rowspan="2">
                Detection of the user’s position
              </td>
              <td>
                <code>android.permission.ACCESS_COARSE_LOCATION</code> 
              </td>
              <td>
                access coarse (e.g., Cell-ID, WiFi) location
              </td>
	    </tr>
	    <tr>
              <td>
                <code>android.permission.ACCESS_FINE_LOCATION</code> 
              </td>

              <td>
                access fine (e.g., GPS) location
              </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
	<h3>Contacts</h3>
        <table
           class="simple"
           summary="Contact Permissions">
          <thead>
            <tr>
	      <th rowspan="2">W3C API permissions</th>
              <th colspan="2">
                <a>BONDI 1.11 Feature</a> 
              </th>
              <th colspan="2">
                <a>Android Permissions</a> 
              </th>
            </tr>
	    <tr><th>Identifier</th><th>Scope</th><th>Identifier</th><th>Scope</th>
	    </tr>          </thead>
          <tbody>
	    <tr>
	      <td><code>contacts.read</code></td>
              <td>
                <code>pim.contacts.read</code>
              </td>
              <td>
                Read the contacts stored in the terminal
              </td>
              <td>
                <code>android.permission.READ_CONTACTS</code> 
              </td>
              <td>
                read the user's contacts data.
              </td>
            </tr>
          </tbody>
        </table>

      </section>
      <section>
	<h3>Media Capture</h3>
	        <table
           class="simple"
           summary="Capture Permissions">
          <thead>
            <tr>
	      <th rowspan="2">W3C API permissions</th>
              <th colspan="2">
                <a>BONDI 1.11 Feature</a> 
              </th>
              <th colspan="2">
                <a>Android Permissions</a> 
              </th>
            </tr>
	    <tr><th>Identifier</th><th>Scope</th><th>Identifier</th><th>Scope</th>
	    </tr>          </thead>
          <tbody>
            <tr>
	      <td rowspan="3"><code>mediacapture</code></td>
              <td>
                <code>camera.capture</code>
              </td>
              <td>
                capturing a picture from a selected camera
              </td>
              <td rowspan="2">
                <code>android.permission.CAMERA</code> 
              </td>
              <td rowspan="2">
                access the camera device
              </td>

            </tr>
            <tr>
              <td>
                <code>camera.record</code>
              </td>
              <td>
                capturing a video from a selected camera
              </td>
	    </tr>
	    <tr>
	      <td></td><td></td>
	      <td><code>android.permission.RECORD_AUDIO</code></td>
	      <td>Allows an application to record audio</td>
            </tr>
          </tbody>
        </table>
	<p class="note">BONDI 1.1 has a separate permission for detecting available cameras, <code>camera.access</code>.</p>

	</section>
      <section>
	<h3>File</h3>
	        <table
           class="simple"
           summary="System Information Permissions">
          <thead>
            <tr>
	      <th rowspan="2">W3C API permissions</th>
              <th colspan="2">
                <a>BONDI 1.11 Feature</a> 
              </th>
              <th colspan="2">
                <a>Android Permissions</a> 
              </th>
            </tr>
	    <tr><th>Identifier</th><th>Scope</th><th>Identifier</th><th>Scope</th>
	    </tr>          </thead>
          <tbody>
	    <tr>
	      <td><code>file.read</code></td>
	      <td><code>filesystem.read</code></td>
	      <td>Read access to a filesystem</td>
	      <td><code>android.permission.READ_OWNER_DATA</code></td>
	      <td>Allows an application to read the owner's data.</td>
	    </tr>
	    <tr>
	      <td><code>file.write</code></td>
	      <td><code>filesystem.write</code></td>
	      <td>Write access to a filesystem</td>
	      <td><code>android.permission.WRITE_OWNER_DATA</code></td>
	      <td>Allows an application to write (but not read) the owner's data.g</td>
	    </tr>
	  </tbody>
	  </table>
      </section>
      <section>
	<h3>System Information</h3>
	        <table
           class="simple"
           summary="System Information Permissions">
          <thead>
            <tr>
	      <th rowspan="2">W3C API permissions</th>
              <th colspan="2">
                <a>BONDI 1.11 Feature</a> 
              </th>
              <th colspan="2">
                <a>Android Permissions</a> 
              </th>
            </tr>
	    <tr><th>Identifier</th><th>Scope</th><th>Identifier</th><th>Scope</th>
	    </tr>          </thead>
          <tbody>
	    <tr>
	      <td><code>deviceinfo</code></td>
	      <td><code>pim.devicestatus</code></td>
              <td>
                Access to the device status module
              </td>
              <td>
                <code>android.permission.BATTERY_STATS</code> 
              </td>
              <td>
                collect battery statistics
              </td>
	      
	    </tr>
	    <tr>
	      <td><code>networkinfo</code></td>
	      <td colspan="2">N/A</td>
              <td>
                <code>android.permission.NETWORK_STATE</code> 
              </td>
              <td>Allows applications to access information about networks 
              </td>

	    </tr>
	    <tr>
	      <td><code>sensorinfo</code></td>
	      <td colspan="2">N/A</td>
	      <td colspan="2">N/A</td>
	    </tr>
          </tbody>
        </table>

      </section>
    </section>
    
  </body>
</html>

Received on Wednesday, 22 September 2010 14:34:23 UTC