<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>11769</bug_id>
          
          <creation_ts>2011-01-15 07:54:55 +0000</creation_ts>
          <short_desc>I have just implemented a &apos;javascript sandbox&apos; using iframes and postMessage, exactly as intended by the specification. Thank you! It works beautifully! Safe XSS at last! Of course, now the next problem comes into view: I have all these IFrames/Objects wi</short_desc>
          <delta_ts>2011-02-15 00:34:55 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebAppsWG</product>
          <component>Web Messaging (editor: Ian Hickson)</component>
          <version>unspecified</version>
          <rep_platform>Other</rep_platform>
          <op_sys>other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/#top</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>contributor</reporter>
          <assigned_to name="Ian &apos;Hixie&apos; Hickson">ian</assigned_to>
          <cc>ian</cc>
    
    <cc>mike</cc>
    
    <cc>public-webapps</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>44369</commentid>
    <comment_count>0</comment_count>
    <who name="">contributor</who>
    <bug_when>2011-01-15 07:54:55 +0000</bug_when>
    <thetext>Specification: http://dev.w3.org/html5/postmsg/
Section: http://www.whatwg.org/specs/web-apps/current-work/complete.html#top

Comment:
I have just implemented a &apos;javascript sandbox&apos; using iframes and postMessage,
exactly as intended by the specification. Thank you! It works beautifully!
Safe XSS at last!

Of course, now the next problem comes into view: I have all these
IFrames/Objects with their sandboxed javascript coming from remote servers
that I can talk to... but no idea how much CPU they are consuming, or when
they crash.

What&apos;s needed is something like &quot;window.getCpuUsage()&quot;. Most of the rest of a
reasonable scheduling system can then be built entirely within javascript. 

The next obvious step would be to generalize that to all important resources 
consumed by the embedded object; memory, bandwidth, and open connections.
Views of these statistics are available within many browser debuggers, but not
on reflection to the javascript itself. This information should probably be
available to both the containing page, and the contained object.

With this one simple problem solved (detecting abusive/broken &apos;sub-process&apos;
javascript by it&apos;s behavior) javascript is free to become, in many ways, a
fully-fledged operating system.

Or at the very least, slow down it&apos;s animations or entropy generator to not
totally consume all my CPU.

Jeremy Lee  BCompSci(Hons)
jeremy@unorthodox.com.au

Posted from: 58.106.139.138</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45517</commentid>
    <comment_count>1</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-02-15 00:34:55 +0000</bug_when>
    <thetext>EDITOR&apos;S RESPONSE: This is an Editor&apos;s Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Partially Accepted
Change Description: none yet
Rationale: This might make sense and should be considered, but before we add it we should wait for the sandboxing features we&apos;ve already specified to be move widely implemented, so as to not get away from the implementations.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>