<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[45695] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/45695">45695</a></dd>
<dt>Author</dt> <dd>dimich@chromium.org</dd>
<dt>Date</dt> <dd>2009-07-09 20:20:07 -0700 (Thu, 09 Jul 2009)</dd>
</dl>

<h3>Log Message</h3>
<pre>2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

        * configure.ac: enable CHANNEL_MESSAGING.

JavaScriptCore:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

        * Configurations/FeatureDefines.xcconfig:

WebCore:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        is now implemented for Web Workers and is reasonably stable.

        Tests: fast/events/message-channel-gc-2.html
               fast/events/message-channel-gc-3.html
               fast/events/message-channel-gc-4.html
               fast/events/message-channel-gc.html
               fast/events/message-channel-listener-circular-ownership.html
               fast/events/message-port-clone.html
               fast/events/message-port-constructor-for-deleted-document.html
               fast/events/message-port-deleted-document.html
               fast/events/message-port-deleted-frame.html
               fast/events/message-port-inactive-document.html
               fast/events/message-port-no-wrapper.html
               fast/events/message-port.html
               fast/workers/worker-cloneport.html
               fast/workers/worker-messageport-gc.html
               fast/workers/worker-messageport.html

        * Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING.
        * WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto.
        * WebCore/WebCore.vcproj/build-generated-files.sh: ditto.
        * WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers.
        * WebCore/workers/WorkerContext.idl: ditto.

WebKit/mac:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

        * Configurations/FeatureDefines.xcconfig:

WebKit/win:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

       * WebKit.vcproj/WebKit.vcproj:

WebKitTools:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
        can now be implemented for Web Workers and is reasonably stable.

        * Scripts/build-webkit:

LayoutTests:

2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default, re-enabled the various tests, and updated expected results.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/constructors-cached-navigate-expected.txt:
        * fast/events/message-channel-gc-2.html: Renamed from LayoutTests/fast/events/message-channel-gc-2.html-disabled.
        * fast/events/message-channel-gc-3.html: Renamed from LayoutTests/fast/events/message-channel-gc-3.html-disabled.
        * fast/events/message-channel-gc-4.html: Renamed from LayoutTests/fast/events/message-channel-gc-4.html-disabled.
        * fast/events/message-channel-gc.html: Renamed from LayoutTests/fast/events/message-channel-gc.html-disabled.
        * fast/events/message-channel-listener-circular-ownership.html: Renamed from LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled.
        * fast/events/message-port-clone.html: Renamed from LayoutTests/fast/events/message-port-clone.html-disabled.
        * fast/events/message-port-constructor-for-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled.
        * fast/events/message-port-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-deleted-document.html-disabled.
        * fast/events/message-port-deleted-frame.html: Renamed from LayoutTests/fast/events/message-port-deleted-frame.html-disabled.
        * fast/events/message-port-inactive-document.html: Renamed from LayoutTests/fast/events/message-port-inactive-document.html-disabled.
        * fast/events/message-port-no-wrapper.html: Renamed from LayoutTests/fast/events/message-port-no-wrapper.html-disabled.
        * fast/events/message-port.html: Renamed from LayoutTests/fast/events/message-port.html-disabled.
        * fast/js/global-constructors-expected.txt:
        * fast/workers/worker-cloneport.html: Renamed from LayoutTests/fast/workers/worker-cloneport.html-disabled.
        * fast/workers/worker-messageport-gc.html: Renamed from LayoutTests/fast/workers/worker-messageport-gc.html-disabled.
        * fast/workers/worker-messageport.html: Renamed from LayoutTests/fast/workers/worker-messageport.html-disabled.
        * http/tests/security/MessagePort/event-listener-context.html: Renamed from LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkChangeLog">trunk/ChangeLog</a></li>
<li><a href="#trunkJavaScriptCoreChangeLog">trunk/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkJavaScriptCoreConfigurationsFeatureDefinesxcconfig">trunk/JavaScriptCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowpropertiesexpectedtxt">trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomconstructorscachednavigateexpectedtxt">trunk/LayoutTests/fast/dom/constructors-cached-navigate-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastjsglobalconstructorsexpectedtxt">trunk/LayoutTests/fast/js/global-constructors-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestssecurityMessagePorteventlistenercontextexpectedtxt">trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestssecurityMessagePortresourcesattackerframehtml">trunk/LayoutTests/http/tests/security/MessagePort/resources/attacker-frame.html</a></li>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCoreConfigurationsFeatureDefinesxcconfig">trunk/WebCore/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkWebCoreWebCorevcprojWebCoreCommonvsprops">trunk/WebCore/WebCore.vcproj/WebCoreCommon.vsprops</a></li>
<li><a href="#trunkWebCoreWebCorevcprojbuildgeneratedfilessh">trunk/WebCore/WebCore.vcproj/build-generated-files.sh</a></li>
<li><a href="#trunkWebCorepageDOMWindowidl">trunk/WebCore/page/DOMWindow.idl</a></li>
<li><a href="#trunkWebCoreworkersWorkerContextidl">trunk/WebCore/workers/WorkerContext.idl</a></li>
<li><a href="#trunkWebKitmacChangeLog">trunk/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkWebKitmacConfigurationsFeatureDefinesxcconfig">trunk/WebKit/mac/Configurations/FeatureDefines.xcconfig</a></li>
<li><a href="#trunkWebKitwinChangeLog">trunk/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkWebKitwinWebKitvcprojWebKitvcproj">trunk/WebKit/win/WebKit.vcproj/WebKit.vcproj</a></li>
<li><a href="#trunkWebKitToolsChangeLog">trunk/WebKitTools/ChangeLog</a></li>
<li><a href="#trunkWebKitToolsScriptsbuildwebkit">trunk/WebKitTools/Scripts/build-webkit</a></li>
<li><a href="#trunkconfigureac">trunk/configure.ac</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc2html">trunk/LayoutTests/fast/events/message-channel-gc-2.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc3html">trunk/LayoutTests/fast/events/message-channel-gc-3.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc4html">trunk/LayoutTests/fast/events/message-channel-gc-4.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgchtml">trunk/LayoutTests/fast/events/message-channel-gc.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannellistenercircularownershiphtml">trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportclonehtml">trunk/LayoutTests/fast/events/message-port-clone.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportconstructorfordeleteddocumenthtml">trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportdeleteddocumenthtml">trunk/LayoutTests/fast/events/message-port-deleted-document.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportdeletedframehtml">trunk/LayoutTests/fast/events/message-port-deleted-frame.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportinactivedocumenthtml">trunk/LayoutTests/fast/events/message-port-inactive-document.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportnowrapperhtml">trunk/LayoutTests/fast/events/message-port-no-wrapper.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageporthtml">trunk/LayoutTests/fast/events/message-port.html</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkercloneporthtml">trunk/LayoutTests/fast/workers/worker-cloneport.html</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkermessageportgchtml">trunk/LayoutTests/fast/workers/worker-messageport-gc.html</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkermessageporthtml">trunk/LayoutTests/fast/workers/worker-messageport.html</a></li>
<li><a href="#trunkLayoutTestshttptestssecurityMessagePorteventlistenercontexthtml">trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc2htmldisabled">trunk/LayoutTests/fast/events/message-channel-gc-2.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc3htmldisabled">trunk/LayoutTests/fast/events/message-channel-gc-3.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgc4htmldisabled">trunk/LayoutTests/fast/events/message-channel-gc-4.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannelgchtmldisabled">trunk/LayoutTests/fast/events/message-channel-gc.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessagechannellistenercircularownershiphtmldisabled">trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportclonehtmldisabled">trunk/LayoutTests/fast/events/message-port-clone.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportconstructorfordeleteddocumenthtmldisabled">trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportdeleteddocumenthtmldisabled">trunk/LayoutTests/fast/events/message-port-deleted-document.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportdeletedframehtmldisabled">trunk/LayoutTests/fast/events/message-port-deleted-frame.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportinactivedocumenthtmldisabled">trunk/LayoutTests/fast/events/message-port-inactive-document.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageportnowrapperhtmldisabled">trunk/LayoutTests/fast/events/message-port-no-wrapper.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsmessageporthtmldisabled">trunk/LayoutTests/fast/events/message-port.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkercloneporthtmldisabled">trunk/LayoutTests/fast/workers/worker-cloneport.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkermessageportgchtmldisabled">trunk/LayoutTests/fast/workers/worker-messageport-gc.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastworkersworkermessageporthtmldisabled">trunk/LayoutTests/fast/workers/worker-messageport.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestssecurityMessagePorteventlistenercontexthtmldisabled">trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        can now be implemented for Web Workers and is reasonably stable.
+
+        * configure.ac: enable CHANNEL_MESSAGING.
+
</ins><span class="cx"> 2009-07-03  Jan Michael Alonzo  &lt;jmalonzo@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Xan Lopez and Gustavo Noronha.
</span></span></pre></div>
<a id="trunkJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/JavaScriptCore/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        can now be implemented for Web Workers and is reasonably stable.
+
+        * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2009-07-09  Oliver Hunt  &lt;oliver@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by NOBODY (Build fix).
</span></span></pre></div>
<a id="trunkJavaScriptCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/JavaScriptCore/Configurations/FeatureDefines.xcconfig (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/JavaScriptCore/Configurations/FeatureDefines.xcconfig        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> ENABLE_3D_RENDERING = $(ENABLE_3D_RENDERING_$(MAC_OS_X_VERSION_MAJOR));
</span><span class="cx"> ENABLE_3D_RENDERING_1060 = ENABLE_3D_RENDERING;
</span><span class="cx"> 
</span><del>-ENABLE_CHANNEL_MESSAGING = ;
</del><ins>+ENABLE_CHANNEL_MESSAGING = ENABLE_CHANNEL_MESSAGING;
</ins><span class="cx"> ENABLE_DATABASE = ENABLE_DATABASE;
</span><span class="cx"> ENABLE_DOM_STORAGE = ENABLE_DOM_STORAGE;
</span><span class="cx"> ENABLE_FILTERS = ;
</span></span></pre></div>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,31 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default, re-enabled the various tests, and updated expected results.
+
+        * fast/dom/Window/window-properties-expected.txt:
+        * fast/dom/constructors-cached-navigate-expected.txt:
+        * fast/events/message-channel-gc-2.html: Renamed from LayoutTests/fast/events/message-channel-gc-2.html-disabled.
+        * fast/events/message-channel-gc-3.html: Renamed from LayoutTests/fast/events/message-channel-gc-3.html-disabled.
+        * fast/events/message-channel-gc-4.html: Renamed from LayoutTests/fast/events/message-channel-gc-4.html-disabled.
+        * fast/events/message-channel-gc.html: Renamed from LayoutTests/fast/events/message-channel-gc.html-disabled.
+        * fast/events/message-channel-listener-circular-ownership.html: Renamed from LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled.
+        * fast/events/message-port-clone.html: Renamed from LayoutTests/fast/events/message-port-clone.html-disabled.
+        * fast/events/message-port-constructor-for-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled.
+        * fast/events/message-port-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-deleted-document.html-disabled.
+        * fast/events/message-port-deleted-frame.html: Renamed from LayoutTests/fast/events/message-port-deleted-frame.html-disabled.
+        * fast/events/message-port-inactive-document.html: Renamed from LayoutTests/fast/events/message-port-inactive-document.html-disabled.
+        * fast/events/message-port-no-wrapper.html: Renamed from LayoutTests/fast/events/message-port-no-wrapper.html-disabled.
+        * fast/events/message-port.html: Renamed from LayoutTests/fast/events/message-port.html-disabled.
+        * fast/js/global-constructors-expected.txt:
+        * fast/workers/worker-cloneport.html: Renamed from LayoutTests/fast/workers/worker-cloneport.html-disabled.
+        * fast/workers/worker-messageport-gc.html: Renamed from LayoutTests/fast/workers/worker-messageport-gc.html-disabled.
+        * fast/workers/worker-messageport.html: Renamed from LayoutTests/fast/workers/worker-messageport.html-disabled.
+        * http/tests/security/MessagePort/event-listener-context.html: Renamed from LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled
+
</ins><span class="cx"> 2009-07-09  Pierre d'Herbemont  &lt;pdherbemont@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowpropertiesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/dom/Window/window-properties-expected.txt        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1024,8 +1024,18 @@
</span><span class="cx"> window.MediaList.prototype.appendMedium [function]
</span><span class="cx"> window.MediaList.prototype.deleteMedium [function]
</span><span class="cx"> window.MediaList.prototype.item [function]
</span><ins>+window.MessageChannel [object MessageChannelConstructor]
+window.MessageChannel.prototype [object MessageChannelPrototype]
</ins><span class="cx"> window.MessageEvent [object MessageEventConstructor]
</span><span class="cx"> window.MessageEvent.prototype [printed above as window.Event.prototype]
</span><ins>+window.MessagePort [object MessagePortConstructor]
+window.MessagePort.prototype [object MessagePortPrototype]
+window.MessagePort.prototype.addEventListener [function]
+window.MessagePort.prototype.close [function]
+window.MessagePort.prototype.dispatchEvent [function]
+window.MessagePort.prototype.postMessage [function]
+window.MessagePort.prototype.removeEventListener [function]
+window.MessagePort.prototype.start [function]
</ins><span class="cx"> window.MimeType [object MimeTypeConstructor]
</span><span class="cx"> window.MimeType.prototype [object MimeTypePrototype]
</span><span class="cx"> window.MimeTypeArray [object MimeTypeArrayConstructor]
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomconstructorscachednavigateexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/constructors-cached-navigate-expected.txt (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/constructors-cached-navigate-expected.txt        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/dom/constructors-cached-navigate-expected.txt        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -6,8 +6,8 @@
</span><span class="cx"> PASS testFrame.contentWindow.Image !== window.Image is true
</span><span class="cx"> PASS testFrame.contentWindow.Image.testProperty is &quot;property set successfully&quot;
</span><span class="cx"> PASS testFrame.contentWindow.MessageChannel is testFrame.contentWindow.MessageChannel
</span><del>-FAIL testFrame.contentWindow.MessageChannel !== window.MessageChannel should be true. Was false.
-FAIL Testing MessageChannel threw TypeError: Result of expression 'testFrame.contentWindow[constructor]' [undefined] is not an object.
</del><ins>+PASS testFrame.contentWindow.MessageChannel !== window.MessageChannel is true
+PASS testFrame.contentWindow.MessageChannel.testProperty is &quot;property set successfully&quot;
</ins><span class="cx"> PASS testFrame.contentWindow.Option is testFrame.contentWindow.Option
</span><span class="cx"> PASS testFrame.contentWindow.Option !== window.Option is true
</span><span class="cx"> PASS testFrame.contentWindow.Option.testProperty is &quot;property set successfully&quot;
</span><span class="lines">@@ -24,11 +24,11 @@
</span><span class="cx"> PASS testFrame.contentWindow.Image.testProperty is undefined.
</span><span class="cx"> PASS testFrame.contentWindow.Image.cachedOnOwnerDocument is true
</span><span class="cx"> PASS testFrame.contentWindow.MessageChannel is testFrame.contentWindow.MessageChannel
</span><del>-FAIL testFrame.contentWindow.MessageChannel !== window.MessageChannel should be true. Was false.
-FAIL testFrame.contentWindow.MessageChannel !== storedConstructors.MessageChannel should be true. Was false.
-FAIL storedConstructors.MessageChannel.testProperty should be property set successfully. Threw exception TypeError: Result of expression 'storedConstructors.MessageChannel' [undefined] is not an object.
-FAIL testFrame.contentWindow.MessageChannel.testProperty should be undefined. Threw exception TypeError: Result of expression 'testFrame.contentWindow.MessageChannel' [undefined] is not an object.
-FAIL testFrame.contentWindow.MessageChannel.cachedOnOwnerDocument should be true. Threw exception TypeError: Result of expression 'testFrame.contentWindow.MessageChannel' [undefined] is not an object.
</del><ins>+PASS testFrame.contentWindow.MessageChannel !== window.MessageChannel is true
+PASS testFrame.contentWindow.MessageChannel !== storedConstructors.MessageChannel is true
+PASS storedConstructors.MessageChannel.testProperty is &quot;property set successfully&quot;
+PASS testFrame.contentWindow.MessageChannel.testProperty is undefined.
+PASS testFrame.contentWindow.MessageChannel.cachedOnOwnerDocument is true
</ins><span class="cx"> PASS testFrame.contentWindow.Option is testFrame.contentWindow.Option
</span><span class="cx"> PASS testFrame.contentWindow.Option !== window.Option is true
</span><span class="cx"> PASS testFrame.contentWindow.Option !== storedConstructors.Option is true
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc2htmlfromrev45694trunkLayoutTestsfasteventsmessagechannelgc2htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-channel-gc-2.html (from rev 45694, trunk/LayoutTests/fast/events/message-channel-gc-2.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-2.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-channel-gc-2.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that MessagePort close event gets delivered (without crashing) even if the channel object is garbage collected.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var channel = new MessageChannel;
+
+gc();
+channel.port1.start();
+channel.port2.postMessage(&quot;msg&quot;);
+
+gc();
+channel.port1.close();
+channel.port2.close();
+gc();
+
+setTimeout(function() {
+    log(&quot;DONE&quot;);
+    gc();
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}, 0);
+channel = new MessageChannel;
+gc();
+
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc2htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-channel-gc-2.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-2.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-channel-gc-2.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that MessagePort close event gets delivered (without crashing) even if the channel object is garbage collected.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var channel = new MessageChannel;
-
-gc();
-channel.port1.start();
-channel.port2.postMessage(&quot;msg&quot;);
-
-gc();
-channel.port1.close();
-channel.port2.close();
-gc();
-
-setTimeout(function() {
-    log(&quot;DONE&quot;);
-    gc();
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}, 0);
-channel = new MessageChannel;
-gc();
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc3htmlfromrev45694trunkLayoutTestsfasteventsmessagechannelgc3htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-channel-gc-3.html (from rev 45694, trunk/LayoutTests/fast/events/message-channel-gc-3.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-3.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-channel-gc-3.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that MessagePort messages are delivered even if both ports are inaccessible from JS any more.&lt;/p&gt;
+&lt;p&gt;Should say PASS twice.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+function test1()
+{
+    var channel = new MessageChannel;
+
+    channel.port1.onmessage = function(evt) { log(&quot;PASS: message delivered. Port: &quot; + evt.target); test2(); }
+    channel.port2.postMessage(&quot;msg&quot;);
+
+    channel = 0;
+    gc();
+}
+
+function test2()
+{
+    var channel = new MessageChannel;
+
+    channel.port2.close();
+
+    channel = 0;
+    gc();
+    log(&quot;PASS: port closed.&quot;);
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+test1();
+
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc3htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-channel-gc-3.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-3.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-channel-gc-3.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,53 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that MessagePort messages are delivered even if both ports are inaccessible from JS any more.&lt;/p&gt;
-&lt;p&gt;Should say PASS twice.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-function test1()
-{
-    var channel = new MessageChannel;
-    
-    channel.port1.onmessage = function(evt) { log(&quot;PASS: message delivered. Port: &quot; + evt.target); test2(); }
-    channel.port2.postMessage(&quot;msg&quot;);
-    
-    channel = 0;
-    gc();
-}
-
-function test2()
-{
-    var channel = new MessageChannel;
-    
-    channel.port2.close();
-    
-    channel = 0;
-    gc();
-    log(&quot;PASS: port closed.&quot;);
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-test1();
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc4htmlfromrev45694trunkLayoutTestsfasteventsmessagechannelgc4htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-channel-gc-4.html (from rev 45694, trunk/LayoutTests/fast/events/message-channel-gc-4.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-4.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-channel-gc-4.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that MessagePort messages are delivered even if both ports are in transit (cloned).&lt;/p&gt;
+&lt;p&gt;Should say PASS twice.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+function test1()
+{
+    var channel = new MessageChannel;
+    var channel2 = new MessageChannel;
+    channel.port1.postMessage(&quot;msg1&quot;);
+    channel2.port1.postMessage(&quot;&quot;, channel.port1);
+    channel2.port2.postMessage(&quot;&quot;, channel.port2);
+    channel2.port2.onmessage = channel2.port1.onmessage = function(evt) {
+        evt.messagePort.onmessage = function(event) {
+            if (event.data == &quot;msg1&quot;) {
+                log(&quot;PASS: Received message to cloned port.&quot;);
+                this.postMessage(&quot;msg2&quot;);
+                gc();
+            } else if (event.data == &quot;msg2&quot;) {
+                log(&quot;PASS: Received message from cloned port.&quot;);
+                gc();
+                if (window.layoutTestController)
+                    layoutTestController.notifyDone();
+            } else {
+                log(&quot;FAIL: Received unknown message: &quot; + event.data);
+            }
+        }
+        evt.messagePort = 0;
+    }
+    channel = 0;
+    channel2 = 0;
+    gc();
+}
+
+test1();
+
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgc4htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-channel-gc-4.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc-4.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-channel-gc-4.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that MessagePort messages are delivered even if both ports are in transit (cloned).&lt;/p&gt;
-&lt;p&gt;Should say PASS twice.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-function test1()
-{
-    var channel = new MessageChannel;
-    var channel2 = new MessageChannel;
-    channel.port1.postMessage(&quot;msg1&quot;);
-    channel2.port1.postMessage(&quot;&quot;, channel.port1);
-    channel2.port2.postMessage(&quot;&quot;, channel.port2);
-    channel2.port2.onmessage = channel2.port1.onmessage = function(evt) {
-        evt.messagePort.onmessage = function(event) {
-            if (event.data == &quot;msg1&quot;) {
-                log(&quot;PASS: Received message to cloned port.&quot;);
-                this.postMessage(&quot;msg2&quot;);
-                gc();
-            } else if (event.data == &quot;msg2&quot;) {
-                log(&quot;PASS: Received message from cloned port.&quot;);
-                gc();
-                if (window.layoutTestController)
-                    layoutTestController.notifyDone();
-            } else {
-                log(&quot;FAIL: Received unknown message: &quot; + event.data);
-            }
-        }
-        evt.messagePort = 0;
-    }
-    channel = 0;
-    channel2 = 0;
-    gc();
-}
-
-test1();
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgchtmlfromrev45694trunkLayoutTestsfasteventsmessagechannelgchtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-channel-gc.html (from rev 45694, trunk/LayoutTests/fast/events/message-channel-gc.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-channel-gc.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test some cases of MessagePort garbage collection.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var channel = new MessageChannel;
+channel.port1.foo = &quot;bar&quot;;
+
+gc();
+log(&quot;Should be 'bar': &quot; + channel.port1.foo);
+
+channel.port1.onmessage = function() { log(&quot;onmessage&quot;); }
+channel.port1.addEventListener(&quot;message&quot;, function() { log(&quot;message listener&quot;); }, false);
+
+gc();
+channel.port1.start();
+channel.port2.postMessage(&quot;msg&quot;);
+
+gc();
+channel.port1.close();
+channel.port2.close();
+
+gc();
+
+setTimeout(function() {
+    log(&quot;DONE&quot;);
+    if (window.layoutTestController)
+        layoutTestController.notifyDone()
+}, 0);
+
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannelgchtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-channel-gc.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-gc.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-channel-gc.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test some cases of MessagePort garbage collection.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var channel = new MessageChannel;
-channel.port1.foo = &quot;bar&quot;;
-
-gc();
-log(&quot;Should be 'bar': &quot; + channel.port1.foo);
-
-channel.port1.onmessage = function() { log(&quot;onmessage&quot;); }
-channel.port1.addEventListener(&quot;message&quot;, function() { log(&quot;message listener&quot;); }, false);
-
-gc();
-channel.port1.start();
-channel.port2.postMessage(&quot;msg&quot;);
-
-gc();
-channel.port1.close();
-channel.port2.close();
-
-gc();
-
-setTimeout(function() {
-    log(&quot;DONE&quot;);
-    if (window.layoutTestController)
-        layoutTestController.notifyDone()
-}, 0);
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannellistenercircularownershiphtmlfromrev45694trunkLayoutTestsfasteventsmessagechannellistenercircularownershiphtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html (from rev 45694, trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that a leak is not created by assigning a MessagePort to a property of its own listener.&lt;/p&gt;
+&lt;p&gt;Only works with run-webkit-tests --leaks.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+if (window.layoutTestController)
+    layoutTestController.dumpAsText();
+
+var channel = new MessageChannel;
+
+channel.port1.onclose = function() {}
+
+channel.port1.onclose.foo = channel;
+channel.port1.onclose.bar = channel.port1;
+channel.port1.onclose.baz = channel.port2;
+
+channel = null;
+gc();
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessagechannellistenercircularownershiphtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,30 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that a leak is not created by assigning a MessagePort to a property of its own listener.&lt;/p&gt;
-&lt;p&gt;Only works with run-webkit-tests --leaks.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-if (window.layoutTestController)
-    layoutTestController.dumpAsText();
-
-var channel = new MessageChannel;
-
-channel.port1.onclose = function() {}
-
-channel.port1.onclose.foo = channel;
-channel.port1.onclose.bar = channel.port1;
-channel.port1.onclose.baz = channel.port2;
-
-channel = null;
-gc();
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportclonehtmlfromrev45694trunkLayoutTestsfasteventsmessageportclonehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-clone.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-clone.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-clone.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-clone.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,128 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Tests various use cases when cloning MessagePorts.&lt;/p&gt;
+&lt;p&gt;Should be a series of SUCCESS messages, followed with DONE.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect).
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var channel = new MessageChannel;
+channel.port1.onmessage = channel.port2.onmessage = function(evt) {
+    fail(&quot;FAIL: Should not have received message: &quot; + evt.data);
+}
+try {
+    channel.port1.postMessage(&quot;msg&quot;, channel.port1);
+    log(&quot;FAIL: Posting port to itself should throw an exception.&quot;);
+} catch (ex) {
+    log(&quot;SUCCESS: Posting port to itself: &quot; + ex);
+}
+
+try {
+    channel.port1.postMessage(&quot;msg&quot;, channel.port2);
+    log(&quot;FAIL: Posting port to entangled pair should throw an exception.&quot;);
+} catch (ex) {
+    log(&quot;SUCCESS: Posting entangled port: &quot; + ex);
+}
+
+channel = new MessageChannel;
+var channel2 = new MessageChannel;
+channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
+
+// Should not be able to post a cloned port.
+try {
+    channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
+    log(&quot;FAIL: Posting cloned port should throw an exception.&quot;);
+} catch (ex) {
+    log(&quot;SUCCESS: Posting cloned port.&quot;);
+}
+
+// Test posting messages to a port in cloned state.
+
+var channel = new MessageChannel;
+var channel2 = new MessageChannel;
+
+// Post messages before and after clone to make sure ordering is preserved and all messages are received.
+channel2.port2.postMessage(&quot;1&quot;);
+channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
+channel2.port2.postMessage(&quot;2&quot;);
+channel2.port2.postMessage(&quot;3&quot;);
+channel.port2.onmessage = function(evt) {
+    var messageIndex = 1;
+    evt.messagePort.onmessage = function(evt) {
+        if (evt.data != messageIndex)
+            log(&quot;FAIL: Got message &quot; + evt.data + &quot;, expected &quot; + messageIndex);
+        messageIndex++;
+        if (messageIndex == 4) {
+            log(&quot;SUCCESS: Posted messages to cloned port.&quot;);
+            testDoublyClonedPort();
+        }
+    }
+}
+
+function testDoublyClonedPort()
+{
+    var channel = new MessageChannel;
+    var channel2 = new MessageChannel;
+    channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
+    channel.port2.postMessage(&quot;msg&quot;, channel2.port2);
+    gc();
+    channel.port1.onmessage = function(evt) {
+        evt.messagePort.postMessage(&quot;testme&quot;);
+    }
+    channel.port2.onmessage = function(evt) {
+        evt.messagePort.onmessage = function (evt) {
+            if (evt.data == &quot;testme&quot;)
+                log(&quot;SUCCESS: Cloned both endpoints of a channel.&quot;);
+            else
+                log(&quot;FAIL: Invalid message arrived: &quot; + evt.data);
+            testPostClosePort();
+        }
+    }
+
+}
+
+// *Should* be able to post a closed port.
+function testPostClosePort()
+{
+    var channel = new MessageChannel;
+    var channel2 = new MessageChannel;
+    channel2.port2.close();
+    channel.port1.postMessage(&quot;closed&quot;, channel2.port2);
+    channel.port2.onmessage = function(evt) {
+        if (!evt.messagePort)
+            log(&quot;FAIL: Closed port not sent.&quot;);
+        else if (evt.data != &quot;closed&quot;)
+            log(&quot;FAIL: Unexpected message: &quot; + evt.data);
+        else
+            log(&quot;SUCCESS: Got closed port with event message &quot; + evt.data);
+        done();
+    }
+}
+
+function done()
+{
+    log(&quot;DONE&quot;);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportclonehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-clone.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-clone.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-clone.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,128 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Tests various use cases when cloning MessagePorts.&lt;/p&gt;
-&lt;p&gt;Should be a series of SUCCESS messages, followed with DONE.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect).
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var channel = new MessageChannel;
-channel.port1.onmessage = channel.port2.onmessage = function(evt) {
-    fail(&quot;FAIL: Should not have received message: &quot; + evt.data);
-}
-try {
-    channel.port1.postMessage(&quot;msg&quot;, channel.port1);
-    log(&quot;FAIL: Posting port to itself should throw an exception.&quot;);
-} catch (ex) {
-    log(&quot;SUCCESS: Posting port to itself: &quot; + ex);
-}
-
-try {
-    channel.port1.postMessage(&quot;msg&quot;, channel.port2);
-    log(&quot;FAIL: Posting port to entangled pair should throw an exception.&quot;);
-} catch (ex) {
-    log(&quot;SUCCESS: Posting entangled port: &quot; + ex);
-}
-
-channel = new MessageChannel;
-var channel2 = new MessageChannel;
-channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
-
-// Should not be able to post a cloned port.
-try {
-    channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
-    log(&quot;FAIL: Posting cloned port should throw an exception.&quot;);
-} catch (ex) {
-    log(&quot;SUCCESS: Posting cloned port.&quot;);
-}
-
-// Test posting messages to a port in cloned state.
-
-var channel = new MessageChannel;
-var channel2 = new MessageChannel;
-
-// Post messages before and after clone to make sure ordering is preserved and all messages are received.
-channel2.port2.postMessage(&quot;1&quot;);
-channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
-channel2.port2.postMessage(&quot;2&quot;);
-channel2.port2.postMessage(&quot;3&quot;);
-channel.port2.onmessage = function(evt) {
-    var messageIndex = 1;
-    evt.messagePort.onmessage = function(evt) {
-        if (evt.data != messageIndex)
-            log(&quot;FAIL: Got message &quot; + evt.data + &quot;, expected &quot; + messageIndex);
-        messageIndex++;
-        if (messageIndex == 4) {
-            log(&quot;SUCCESS: Posted messages to cloned port.&quot;);
-            testDoublyClonedPort();
-        }
-    }
-}
-
-function testDoublyClonedPort()
-{
-    var channel = new MessageChannel;
-    var channel2 = new MessageChannel;
-    channel.port1.postMessage(&quot;msg&quot;, channel2.port1);
-    channel.port2.postMessage(&quot;msg&quot;, channel2.port2);
-    gc();
-    channel.port1.onmessage = function(evt) {
-        evt.messagePort.postMessage(&quot;testme&quot;);
-    }
-    channel.port2.onmessage = function(evt) {
-        evt.messagePort.onmessage = function (evt) {
-            if (evt.data == &quot;testme&quot;)
-                log(&quot;SUCCESS: Cloned both endpoints of a channel.&quot;);
-            else
-                log(&quot;FAIL: Invalid message arrived: &quot; + evt.data);
-            testPostClosePort();
-        }
-    }
-
-}
-
-// *Should* be able to post a closed port.
-function testPostClosePort()
-{
-    var channel = new MessageChannel;
-    var channel2 = new MessageChannel;
-    channel2.port2.close();
-    channel.port1.postMessage(&quot;closed&quot;, channel2.port2);
-    channel.port2.onmessage = function(evt) {
-        if (!evt.messagePort)
-            log(&quot;FAIL: Closed port not sent.&quot;);
-        else if (evt.data != &quot;closed&quot;)
-            log(&quot;FAIL: Unexpected message: &quot; + evt.data);
-        else
-            log(&quot;SUCCESS: Got closed port with event message &quot; + evt.data);
-        done();
-    }
-}
-
-function done()
-{
-    log(&quot;DONE&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportconstructorfordeleteddocumenthtmlfromrev45694trunkLayoutTestsfasteventsmessageportconstructorfordeleteddocumenthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that destroying a document doesn't cause a crash when executing MessageChannel constructor saved from its Window object.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var constructor;
+
+function test()
+{
+    constructor = window.frames[0].MessageChannel;
+
+    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
+    frameElement.parentNode.removeChild(frameElement);
+    frameElement = null;
+
+    gc();
+    setTimeout(test2, 10);
+}
+
+function test2()
+{
+    gc();
+    try {
+        new constructor;
+    } catch (ex) {
+    }
+
+    log(&quot;Didn't crash: SUCCESS&quot;);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportconstructorfordeleteddocumenthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that destroying a document doesn't cause a crash when executing MessageChannel constructor saved from its Window object.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var constructor;
-
-function test()
-{
-    constructor = window.frames[0].MessageChannel;
-
-    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
-    frameElement.parentNode.removeChild(frameElement);
-    frameElement = null;
-
-    gc();
-    setTimeout(test2, 10);
-}
-
-function test2()
-{
-    gc();
-    try {
-        new constructor;
-    } catch (ex) {
-    }
-
-    log(&quot;Didn't crash: SUCCESS&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportdeleteddocumenthtmlfromrev45694trunkLayoutTestsfasteventsmessageportdeleteddocumenthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-deleted-document.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-deleted-document.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-deleted-document.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-deleted-document.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that destroying a document doesn't cause a crash when posting a message to a MessagePort it owned.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var mainPort;
+
+function test()
+{
+    var channel = new MessageChannel;
+    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
+    mainPort = channel.port1;
+    mainPort.start();
+
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = test2;
+}
+
+function test2()
+{
+    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
+    frameElement.parentNode.removeChild(frameElement);
+    frameElement = null;
+
+    gc();
+    setTimeout(test3, 10);
+}
+
+function test3()
+{
+    gc();
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = function(evt) {
+        if (evt.data == &quot;pong&quot;)
+            log(&quot;Unexpected response: FAIL&quot;);
+    };
+    setTimeout(test4, 10);
+}
+
+function test4()
+{
+    mainPort.close();
+
+    log(&quot;Didn't crash: SUCCESS&quot;);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportdeleteddocumenthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-deleted-document.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-deleted-document.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-deleted-document.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that destroying a document doesn't cause a crash when posting a message to a MessagePort it owned.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var mainPort;
-
-function test()
-{
-    var channel = new MessageChannel;
-    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
-    mainPort = channel.port1;
-    mainPort.start();
-
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = test2;
-}
-
-function test2()
-{
-    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
-    frameElement.parentNode.removeChild(frameElement);
-    frameElement = null;
-
-    gc();
-    setTimeout(test3, 10);
-}
-
-function test3()
-{
-    gc();
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = function(evt) {
-        if (evt.data == &quot;pong&quot;)
-            log(&quot;Unexpected response: FAIL&quot;);
-    };
-    setTimeout(test4, 10);
-}
-
-function test4()
-{
-    mainPort.close();
-
-    log(&quot;Didn't crash: SUCCESS&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportdeletedframehtmlfromrev45694trunkLayoutTestsfasteventsmessageportdeletedframehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-deleted-frame.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-deleted-frame.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-deleted-frame.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-deleted-frame.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that destroying a frame doesn't cause a crash when posting a message to a MessagePort it owned.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var mainPort;
+var frameDoc;
+
+function test()
+{
+    frameDoc = window.frames[0].document;
+    var channel = new MessageChannel;
+    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
+    mainPort = channel.port1;
+    mainPort.start();
+
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = test2;
+}
+
+function test2()
+{
+    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
+    frameElement.parentNode.removeChild(frameElement);
+    frameElement = null;
+
+    gc();
+    setTimeout(test3, 10);
+}
+
+function test3()
+{
+    gc();
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = function(evt) {
+        if (evt.data == &quot;pong&quot;)
+            log(&quot;Unexpected response: FAIL&quot;);
+    };
+    setTimeout(test4, 10);
+}
+
+function test4()
+{
+    log(&quot;Didn't crash: SUCCESS&quot;);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportdeletedframehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-deleted-frame.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-deleted-frame.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-deleted-frame.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that destroying a frame doesn't cause a crash when posting a message to a MessagePort it owned.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var mainPort;
-var frameDoc;
-
-function test()
-{
-    frameDoc = window.frames[0].document;
-    var channel = new MessageChannel;
-    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
-    mainPort = channel.port1;
-    mainPort.start();
-
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = test2;
-}
-
-function test2()
-{
-    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
-    frameElement.parentNode.removeChild(frameElement);
-    frameElement = null;
-
-    gc();
-    setTimeout(test3, 10);
-}
-
-function test3()
-{
-    gc();
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = function(evt) {
-        if (evt.data == &quot;pong&quot;)
-            log(&quot;Unexpected response: FAIL&quot;);
-    };
-    setTimeout(test4, 10);
-}
-
-function test4()
-{
-    log(&quot;Didn't crash: SUCCESS&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportinactivedocumenthtmlfromrev45694trunkLayoutTestsfasteventsmessageportinactivedocumenthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-inactive-document.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-inactive-document.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-inactive-document.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-inactive-document.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that messaging an inactive frameless document works as expected.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var otherDocument;
+var mainPort;
+
+function test()
+{
+    otherDocument = window.frames[0].document;
+    var channel = new MessageChannel;
+    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
+    mainPort = channel.port1;
+    mainPort.start();
+
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = test2;
+}
+
+function test2()
+{
+    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
+    frameElement.src = &quot;resources/window-opened.html&quot;;
+    frameElement.onload = test3;
+    gc();
+}
+
+function test3()
+{
+    gc();
+    mainPort.postMessage(&quot;alert FAIL: the document is inactive.&quot;);
+    mainPort.postMessage(&quot;freeze&quot;);
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = function(evt) {
+        log(&quot;Unexpected response: FAIL&quot;);
+    };
+    setTimeout(test4, 10);
+}
+
+function test4()
+{
+    mainPort.close();
+
+    log(&quot;Didn't crash, freeze or respond: SUCCESS&quot;);
+
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot; width=0 height=0 frameborder=0&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportinactivedocumenthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-inactive-document.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-inactive-document.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-inactive-document.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,72 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that messaging an inactive frameless document works as expected.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var otherDocument;
-var mainPort;
-
-function test()
-{
-    otherDocument = window.frames[0].document;
-    var channel = new MessageChannel;
-    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
-    mainPort = channel.port1;
-    mainPort.start();
-
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = test2;
-}
-
-function test2()
-{
-    var frameElement = document.getElementsByTagName(&quot;iframe&quot;)[0];
-    frameElement.src = &quot;resources/window-opened.html&quot;;
-    frameElement.onload = test3;
-    gc();
-}
-
-function test3()
-{
-    gc();
-    mainPort.postMessage(&quot;alert FAIL: the document is inactive.&quot;);
-    mainPort.postMessage(&quot;freeze&quot;);
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = function(evt) {
-        log(&quot;Unexpected response: FAIL&quot;);
-    };
-    setTimeout(test4, 10);
-}
-
-function test4()
-{
-    mainPort.close();
-
-    log(&quot;Didn't crash, freeze or respond: SUCCESS&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot; width=0 height=0 frameborder=0&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportnowrapperhtmlfromrev45694trunkLayoutTestsfasteventsmessageportnowrapperhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port-no-wrapper.html (from rev 45694, trunk/LayoutTests/fast/events/message-port-no-wrapper.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-no-wrapper.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port-no-wrapper.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that delivering a message to a port that was never referenced from JS doesn't cause a crash.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var channel = new MessageChannel;
+channel.port1.postMessage(&quot;msg&quot;);
+channel.port1.start();
+channel = 0;
+gc();
+
+setTimeout(&quot;log('PASS'); if (window.layoutTestController) layoutTestController.notifyDone()&quot;, 100);
+
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageportnowrapperhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port-no-wrapper.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port-no-wrapper.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port-no-wrapper.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that delivering a message to a port that was never referenced from JS doesn't cause a crash.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var channel = new MessageChannel;
-channel.port1.postMessage(&quot;msg&quot;);
-channel.port1.start();
-channel = 0;
-gc();
-
-setTimeout(&quot;log('PASS'); if (window.layoutTestController) layoutTestController.notifyDone()&quot;, 100);
-
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageporthtmlfromrev45694trunkLayoutTestsfasteventsmessageporthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/message-port.html (from rev 45694, trunk/LayoutTests/fast/events/message-port.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/message-port.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,95 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test cross-frame MessagePort communication.&lt;/p&gt;
+&lt;p&gt;Should be a series of SUCCESS messages, followed with DONE.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var mainPort;
+
+function test()
+{
+    var channel = new MessageChannel;
+    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
+    mainPort = channel.port1;
+    mainPort.postMessage(&quot;ping&quot;);
+    mainPort.onmessage = function(evt) {
+        if (evt.data == &quot;pong&quot; &amp;&amp; evt.origin == &quot;&quot;)
+            log(&quot;Simple exchange: SUCCESS&quot;);
+        else
+            log(&quot;Simple exchange: FAIL. Got message '&quot; + evt.data + &quot;' from '&quot; + evt.origin + &quot;'.&quot;);
+        test2();
+    };
+}
+
+function test2()
+{
+    var channel = new MessageChannel;
+    mainPort.postMessage(&quot;newPort&quot;, channel.port2);
+    channel.port1.onmessage = function(evt) {
+        if (evt.data == &quot;yo&quot; &amp;&amp; evt.origin == &quot;&quot;)
+            log(&quot;Posted port: SUCCESS&quot;);
+        else
+            log(&quot;Posted port: FAIL. Got message '&quot; + evt.data + &quot;' from '&quot; + evt.origin + &quot;'.&quot;);
+        test3();
+    };
+}
+
+function test3()
+{
+    var channel = new MessageChannel;
+    channel.port1.postMessage(&quot;1&quot;);
+    var started = false;
+    channel.port2.addEventListener(&quot;message&quot;, function(evt) {
+        if (started) {
+            log(&quot;Event Listener: SUCCESS&quot;);
+            test4();
+        } else
+            log(&quot;Event Listener: FAIL. Event listener called before start()&quot;);
+   });
+   setTimeout(function() {
+      channel.port2.start();
+      started = true;
+   }, 100);
+
+}
+
+function test4()
+{
+    var channel = new MessageChannel;
+    channel.port1.postMessage(&quot;1&quot;);
+    channel.port1.close();
+    channel.port1.postMessage(&quot;2&quot;);
+    channel.port2.onmessage = function(evt) {
+        if (evt.data == &quot;1&quot;) {
+            log(&quot;Closed port: SUCCESS&quot;);
+            test5();
+        } else
+            log(&quot;Closed port: FAIL. Got message: &quot; + evt.data + &quot; after close&quot;);
+   }
+}
+
+function test5()
+{
+    // Create a channel and put some messages in it which will go undelivered and should not leak
+    var channel = new MessageChannel;
+    channel.port1.postMessage(&quot;abcde&quot;);
+    // Now wait a short period of time to ensure no messages come in from previous tests.
+    setTimeout(function() {
+        log(&quot;DONE&quot;);
+        if (window.layoutTestController)
+            layoutTestController.notifyDone();
+    }, 100);
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsmessageporthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/message-port.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/message-port.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/events/message-port.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,95 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test cross-frame MessagePort communication.&lt;/p&gt;
-&lt;p&gt;Should be a series of SUCCESS messages, followed with DONE.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var mainPort;
-
-function test()
-{
-    var channel = new MessageChannel;
-    window.frames[0].postMessage(&quot;msg&quot;, channel.port2, &quot;*&quot;);
-    mainPort = channel.port1;
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = function(evt) {
-        if (evt.data == &quot;pong&quot; &amp;&amp; evt.origin == &quot;&quot;)
-            log(&quot;Simple exchange: SUCCESS&quot;);
-        else
-            log(&quot;Simple exchange: FAIL. Got message '&quot; + evt.data + &quot;' from '&quot; + evt.origin + &quot;'.&quot;);
-        test2();
-    };
-}
-
-function test2()
-{
-    var channel = new MessageChannel;
-    mainPort.postMessage(&quot;newPort&quot;, channel.port2);
-    channel.port1.onmessage = function(evt) {
-        if (evt.data == &quot;yo&quot; &amp;&amp; evt.origin == &quot;&quot;)
-            log(&quot;Posted port: SUCCESS&quot;);
-        else
-            log(&quot;Posted port: FAIL. Got message '&quot; + evt.data + &quot;' from '&quot; + evt.origin + &quot;'.&quot;);
-        test3();
-    };
-}
-
-function test3()
-{
-    var channel = new MessageChannel;
-    channel.port1.postMessage(&quot;1&quot;);
-    var started = false;
-    channel.port2.addEventListener(&quot;message&quot;, function(evt) {
-        if (started) {
-            log(&quot;Event Listener: SUCCESS&quot;);
-            test4();
-        } else
-            log(&quot;Event Listener: FAIL. Event listener called before start()&quot;);
-   });
-   setTimeout(function() {
-      channel.port2.start();
-      started = true;
-   }, 100);
-
-}
-
-function test4()
-{
-    var channel = new MessageChannel;
-    channel.port1.postMessage(&quot;1&quot;);
-    channel.port1.close();
-    channel.port1.postMessage(&quot;2&quot;);
-    channel.port2.onmessage = function(evt) {
-        if (evt.data == &quot;1&quot;) {
-            log(&quot;Closed port: SUCCESS&quot;);
-            test5();
-        } else
-            log(&quot;Closed port: FAIL. Got message: &quot; + evt.data + &quot; after close&quot;);
-   }
-}
-
-function test5()
-{
-    // Create a channel and put some messages in it which will go undelivered and should not leak
-    var channel = new MessageChannel;
-    channel.port1.postMessage(&quot;abcde&quot;);
-    // Now wait a short period of time to ensure no messages come in from previous tests.
-    setTimeout(function() {
-        log(&quot;DONE&quot;);
-        if (window.layoutTestController)
-            layoutTestController.notifyDone();
-    }, 100);
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/message-port-iframe.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastjsglobalconstructorsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/js/global-constructors-expected.txt (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/js/global-constructors-expected.txt        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/js/global-constructors-expected.txt        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -110,7 +110,9 @@
</span><span class="cx"> PASS KeyboardEvent.toString() is '[object KeyboardEventConstructor]'
</span><span class="cx"> PASS MediaError.toString() is '[object MediaErrorConstructor]'
</span><span class="cx"> PASS MediaList.toString() is '[object MediaListConstructor]'
</span><ins>+PASS MessageChannel.toString() is '[object MessageChannelConstructor]'
</ins><span class="cx"> PASS MessageEvent.toString() is '[object MessageEventConstructor]'
</span><ins>+PASS MessagePort.toString() is '[object MessagePortConstructor]'
</ins><span class="cx"> PASS MimeType.toString() is '[object MimeTypeConstructor]'
</span><span class="cx"> PASS MimeTypeArray.toString() is '[object MimeTypeArrayConstructor]'
</span><span class="cx"> PASS MouseEvent.toString() is '[object MouseEventConstructor]'
</span></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkercloneporthtmlfromrev45694trunkLayoutTestsfastworkersworkercloneporthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/workers/worker-cloneport.html (from rev 45694, trunk/LayoutTests/fast/workers/worker-cloneport.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-cloneport.html                                (rev 0)
+++ trunk/LayoutTests/fast/workers/worker-cloneport.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,103 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test MessagePort messaging/entangle/detangle across threads. Should print &quot;SUCCESS&quot; when done.&lt;/p&gt;
+&lt;div id=result&gt;&lt;/div&gt;
+&lt;script&gt;
+function log(message)
+{
+    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+
+var channel = new MessageChannel();
+var numMessages = 50000;
+
+// Create a channel which we will use to clone and re-clone one end of a
+// MessageChannel.
+var cloneChannel = new MessageChannel();
+var stopCloning = false;
+cloneChannel.port1.onmessage = cloneChannel.port2.onmessage = resendPort;
+cloneChannel.port1.start();
+cloneChannel.port2.start();
+cloneChannel.port1.postMessage(&quot;&quot;, channel.port2);
+
+// Create worker with other end of port and have it send messages back to us
+// while we clone our end of the port repeatedly.
+var worker = new Worker(&quot;resources/worker-cloneport.js&quot;);
+worker.postMessage(&quot;postBack &quot; + numMessages, channel.port1);
+
+// Test posting back 50000 messages, make sure ordering is fine
+worker.onmessage = function(evt) {
+    if (evt.data == &quot;postBackDone&quot;) {
+        stopCloning = true;
+    } else {
+        // Log message from worker
+        log(evt.data);
+    }
+}
+
+// Keep cloning the passed port until we're told to stop.
+var numClones = 0;
+function resendPort(evt)
+{
+    if (!stopCloning) {
+        numClones++;
+        evt.target.postMessage(&quot;&quot;, evt.messagePort);
+    } else {
+        if (numClones &lt; 1000) {
+            // If we didn't clone at least 1000 times, then there's something amiss.
+            log(&quot;FAIL: postBack complete, but only cloned &quot; + numClones + &quot; times.&quot;);
+        } else {
+            log(&quot;PASS: postBack complete, cloned &gt; 1000 times.&quot;);
+        }
+        // Make sure the messages arrived in order.
+        var itemNum = 0;
+        // Queue up a task to execute once the messages have been processed. The timeout value doesn't matter, since timers won't fire until the message queue is cleared.
+        var timer = setTimeout(function() {
+            log(&quot;FAILURE: Received: &quot; + itemNum + &quot; events - expected: &quot; + numMessages);
+        }, 10);
+        evt.messagePort.onmessage = function(event) {
+            var done = false;
+            if (event.data == itemNum) {
+                itemNum++;
+                if (itemNum == numMessages) {
+                    log(&quot;SUCCESS - received &quot; + numMessages + &quot; messages.&quot;);
+                    done = true;
+                }
+            } else {
+                log(&quot;FAILURE: Out of order message: expected #: &quot; + itemNum + &quot;, received: &quot; + event.data);
+                done = true;
+            }
+            clearTimeout(timer);
+            if (done) {
+                gc();
+                setTimeout(reportDone, 100);  // Make sure no unexpected events come in.
+            }
+       }
+        evt.messagePort.start();
+    }
+}
+
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect).
+        var s = new String(&quot;abc&quot;);
+    }
+}
+function reportDone()
+{
+     log(&quot;DONE&quot;);
+     if (window.layoutTestController)
+         layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkercloneporthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/workers/worker-cloneport.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-cloneport.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/workers/worker-cloneport.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,103 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test MessagePort messaging/entangle/detangle across threads. Should print &quot;SUCCESS&quot; when done.&lt;/p&gt;
-&lt;div id=result&gt;&lt;/div&gt;
-&lt;script&gt;
-function log(message)
-{
-    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-
-var channel = new MessageChannel();
-var numMessages = 50000;
-
-// Create a channel which we will use to clone and re-clone one end of a
-// MessageChannel.
-var cloneChannel = new MessageChannel();
-var stopCloning = false;
-cloneChannel.port1.onmessage = cloneChannel.port2.onmessage = resendPort;
-cloneChannel.port1.start();
-cloneChannel.port2.start();
-cloneChannel.port1.postMessage(&quot;&quot;, channel.port2);
-
-// Create worker with other end of port and have it send messages back to us
-// while we clone our end of the port repeatedly.
-var worker = new Worker(&quot;resources/worker-cloneport.js&quot;);
-worker.postMessage(&quot;postBack &quot; + numMessages, channel.port1);
-
-// Test posting back 50000 messages, make sure ordering is fine
-worker.onmessage = function(evt) {
-    if (evt.data == &quot;postBackDone&quot;) {
-        stopCloning = true;
-    } else {
-        // Log message from worker
-        log(evt.data);
-    }
-}
-
-// Keep cloning the passed port until we're told to stop.
-var numClones = 0;
-function resendPort(evt)
-{
-    if (!stopCloning) {
-        numClones++;
-        evt.target.postMessage(&quot;&quot;, evt.messagePort);
-    } else {
-        if (numClones &lt; 1000) {
-            // If we didn't clone at least 1000 times, then there's something amiss.
-            log(&quot;FAIL: postBack complete, but only cloned &quot; + numClones + &quot; times.&quot;);
-        } else {
-            log(&quot;PASS: postBack complete, cloned &gt; 1000 times.&quot;);
-        }
-        // Make sure the messages arrived in order.
-        var itemNum = 0;
-        // Queue up a task to execute once the messages have been processed. The timeout value doesn't matter, since timers won't fire until the message queue is cleared.
-        var timer = setTimeout(function() {
-            log(&quot;FAILURE: Received: &quot; + itemNum + &quot; events - expected: &quot; + numMessages);
-        }, 10);
-        evt.messagePort.onmessage = function(event) {
-            var done = false;
-            if (event.data == itemNum) {
-                itemNum++;
-                if (itemNum == numMessages) {
-                    log(&quot;SUCCESS - received &quot; + numMessages + &quot; messages.&quot;);
-                    done = true;
-                }
-            } else {
-                log(&quot;FAILURE: Out of order message: expected #: &quot; + itemNum + &quot;, received: &quot; + event.data);
-                done = true;
-            }
-            clearTimeout(timer);
-            if (done) {
-                gc();
-                setTimeout(reportDone, 100);  // Make sure no unexpected events come in.
-            }
-       }
-        evt.messagePort.start();
-    }
-}
-
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect).
-        var s = new String(&quot;abc&quot;);
-    }
-}
-function reportDone()
-{
-     log(&quot;DONE&quot;);
-     if (window.layoutTestController)
-         layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkermessageportgchtmlfromrev45694trunkLayoutTestsfastworkersworkermessageportgchtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/workers/worker-messageport-gc.html (from rev 45694, trunk/LayoutTests/fast/workers/worker-messageport-gc.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-messageport-gc.html                                (rev 0)
+++ trunk/LayoutTests/fast/workers/worker-messageport-gc.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that workers stay reachable via message ports.
+Should print &quot;DONE&quot; when done.&lt;/p&gt;
+&lt;div id=result&gt;&lt;/div&gt;
+&lt;script&gt;
+function log(message)
+{
+    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+// Test that workers stay alive even though they are only reachable via message ports.
+var worker = new Worker(&quot;resources/worker-messageport.js&quot;);
+var channel = new MessageChannel();
+worker.postMessage(&quot;port&quot;, channel.port1);
+worker = 0;
+
+channel.port2.postMessage(&quot;ping&quot;);
+channel.port2.onmessage = function(evt) {
+    // Other side is running, now force a GC, wait a bit, and send a new message to make sure it arrives.
+    gc();
+    setTimeout(testReachable, 100);
+}
+
+function testReachable()
+{
+    channel.port2.onmessage = function(evt) {
+        log(&quot;PASS: Worker is reachable.&quot;);
+        done();
+    }
+    channel.port2.postMessage(&quot;ping&quot;);
+}
+
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function done()
+{
+    log(&quot;DONE&quot;);
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkermessageportgchtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/workers/worker-messageport-gc.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-messageport-gc.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/workers/worker-messageport-gc.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that workers stay reachable via message ports.
-Should print &quot;DONE&quot; when done.&lt;/p&gt;
-&lt;div id=result&gt;&lt;/div&gt;
-&lt;script&gt;
-function log(message)
-{
-    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-// Test that workers stay alive even though they are only reachable via message ports.
-var worker = new Worker(&quot;resources/worker-messageport.js&quot;);
-var channel = new MessageChannel();
-worker.postMessage(&quot;port&quot;, channel.port1);
-worker = 0;
-
-channel.port2.postMessage(&quot;ping&quot;);
-channel.port2.onmessage = function(evt) {
-    // Other side is running, now force a GC, wait a bit, and send a new message to make sure it arrives.
-    gc();
-    setTimeout(testReachable, 100);
-}
-
-function testReachable()
-{
-    channel.port2.onmessage = function(evt) {
-        log(&quot;PASS: Worker is reachable.&quot;);
-        done();
-    }
-    channel.port2.postMessage(&quot;ping&quot;);
-}
-
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function done()
-{
-    log(&quot;DONE&quot;);
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkermessageporthtmlfromrev45694trunkLayoutTestsfastworkersworkermessageporthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/workers/worker-messageport.html (from rev 45694, trunk/LayoutTests/fast/workers/worker-messageport.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-messageport.html                                (rev 0)
+++ trunk/LayoutTests/fast/workers/worker-messageport.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,98 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that pages and workers can send MessagePorts to one another.
+Should print &quot;DONE&quot; when done.&lt;/p&gt;
+&lt;div id=result&gt;&lt;/div&gt;
+&lt;script&gt;
+function log(message)
+{
+    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var worker = new Worker(&quot;resources/worker-messageport.js&quot;);
+var channel = new MessageChannel();
+
+// Send messages with and without ports to the worker to make sure it gets them.
+worker.postMessage(&quot;noport&quot;);
+worker.onmessage = function(evt) {
+    log(evt.data);
+    worker.postMessage(&quot;port&quot;, channel.port1);
+    worker.onmessage = function(evt) {
+        log(evt.data);
+    }
+};
+
+// Send a message on the new port to make sure it gets to the worker.
+channel.port2.postMessage(&quot;ping&quot;);
+
+// Wait for the response.
+channel.port2.onmessage = function(evt) {
+    if (evt.data == &quot;pong&quot;) {
+        log(&quot;PASS: Received response from Worker via MessagePort&quot;);
+        worker.onmessage = awaitPortFromWorker;
+        worker.postMessage(&quot;getport&quot;);
+    } else {
+        log(&quot;FAIL: Received unknown event: &quot; + evt.data);
+    }
+}
+channel.port2.start();
+
+// Invoked once the first batch of tests are done, to test sending from the worker.
+function awaitPortFromWorker(evt)
+{
+    if (evt.data == &quot;port&quot;) {
+        if (!evt.messagePort) {
+            log(&quot;FAIL: Did not get port from worker&quot;);
+        } else {
+            log(&quot;PASS: Got port from worker&quot;);
+            evt.messagePort.postMessage(&quot;ping&quot;);
+            evt.messagePort.onmessage = function(evt) {
+                if (evt.data == &quot;pong&quot;) {
+                    log(&quot;PASS: Received final response from worker&quot;);
+                } else {
+                    log(&quot;FAIL: Got unexpected response: &quot; + evt.data);
+                }
+                startSpamTest();
+            }
+            evt.messagePort.start();
+        }
+    } else {
+        log(evt.data);
+    }
+}
+
+function startSpamTest()
+{
+    var channel = new MessageChannel();
+    worker.onmessage = function () { gotSpam(channel.port1); }
+    worker.postMessage(&quot;spam&quot;, channel.port2);
+}
+
+function gotSpam(port)
+{
+    var spamCount = 0;
+    port.onmessage = function(evt) {
+        if (evt.data != spamCount)
+            log(&quot;FAIL: Got out of order message: &quot; + spamCount);
+        spamCount++;
+        if (spamCount == 1000) {
+            log(&quot;PASS: Got 1000 messages&quot;);
+            done();
+        }
+    }
+}
+
+function done()
+{
+    log(&quot;DONE&quot;);
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastworkersworkermessageporthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/workers/worker-messageport.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/workers/worker-messageport.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/fast/workers/worker-messageport.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,98 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that pages and workers can send MessagePorts to one another.
-Should print &quot;DONE&quot; when done.&lt;/p&gt;
-&lt;div id=result&gt;&lt;/div&gt;
-&lt;script&gt;
-function log(message)
-{
-    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var worker = new Worker(&quot;resources/worker-messageport.js&quot;);
-var channel = new MessageChannel();
-
-// Send messages with and without ports to the worker to make sure it gets them.
-worker.postMessage(&quot;noport&quot;);
-worker.onmessage = function(evt) {
-    log(evt.data);
-    worker.postMessage(&quot;port&quot;, channel.port1);
-    worker.onmessage = function(evt) {
-        log(evt.data);
-    }
-};
-
-// Send a message on the new port to make sure it gets to the worker.
-channel.port2.postMessage(&quot;ping&quot;);
-
-// Wait for the response.
-channel.port2.onmessage = function(evt) {
-    if (evt.data == &quot;pong&quot;) {
-        log(&quot;PASS: Received response from Worker via MessagePort&quot;);
-        worker.onmessage = awaitPortFromWorker;
-        worker.postMessage(&quot;getport&quot;);
-    } else {
-        log(&quot;FAIL: Received unknown event: &quot; + evt.data);
-    }
-}
-channel.port2.start();
-
-// Invoked once the first batch of tests are done, to test sending from the worker.
-function awaitPortFromWorker(evt)
-{
-    if (evt.data == &quot;port&quot;) {
-        if (!evt.messagePort) {
-            log(&quot;FAIL: Did not get port from worker&quot;);
-        } else {
-            log(&quot;PASS: Got port from worker&quot;);
-            evt.messagePort.postMessage(&quot;ping&quot;);
-            evt.messagePort.onmessage = function(evt) {
-                if (evt.data == &quot;pong&quot;) {
-                    log(&quot;PASS: Received final response from worker&quot;);
-                } else {
-                    log(&quot;FAIL: Got unexpected response: &quot; + evt.data);
-                }
-                startSpamTest();
-            }
-            evt.messagePort.start();
-        }
-    } else {
-        log(evt.data);
-    }
-}
-
-function startSpamTest()
-{
-    var channel = new MessageChannel();
-    worker.onmessage = function () { gotSpam(channel.port1); }
-    worker.postMessage(&quot;spam&quot;, channel.port2);
-}
-
-function gotSpam(port)
-{
-    var spamCount = 0;
-    port.onmessage = function(evt) {
-        if (evt.data != spamCount)
-            log(&quot;FAIL: Got out of order message: &quot; + spamCount);
-        spamCount++;
-        if (spamCount == 1000) {
-            log(&quot;PASS: Got 1000 messages&quot;);
-            done();
-        }
-    }
-}
-
-function done()
-{
-    log(&quot;DONE&quot;);
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestshttptestssecurityMessagePorteventlistenercontextexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context-expected.txt (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context-expected.txt        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context-expected.txt        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,4 +1,5 @@
</span><span class="cx"> Test that JS code cannot be planted into an unsuspecting subframe via MessagePort and navigation.
</span><span class="cx"> 
</span><del>-PASS
</del><ins>+PASS: got exception while creating port from closed frame's constructor: ReferenceError: MessageChannel constructor associated document is unavailable
+DONE
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestshttptestssecurityMessagePorteventlistenercontexthtmlfromrev45694trunkLayoutTestshttptestssecurityMessagePorteventlistenercontexthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html (from rev 45694, trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled) (0 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that JS code cannot be planted into an unsuspecting subframe via MessagePort and navigation.&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+&lt;script&gt;
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText();
+    layoutTestController.waitUntilDone();
+}
+
+var closure;
+var failed;
+
+function test()
+{
+    failed = false;
+    closure = window.frames[0].createClosure();
+    document.getElementsByTagName(&quot;iframe&quot;)[0].onload = test2;
+    window.frames[0].location = &quot;resources/banking-site.html&quot;;
+}
+
+function test2()
+{
+   try {
+      var channel = closure();
+    } catch (ex) {
+      log(&quot;PASS: got exception while creating port from closed frame's constructor: &quot; + ex);
+      done();
+      return;
+    }
+    log(&quot;FAIL: Creating MessageChannel from closed frame does not throw exception&quot;);
+    done();
+}
+
+function done()
+{
+    log(&quot;DONE&quot;);
+    if (window.layoutTestController)
+        layoutTestController.notifyDone();
+}
+
+&lt;/script&gt;
+&lt;iframe src=&quot;resources/attacker-frame.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestssecurityMessagePorteventlistenercontexthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that JS code cannot be planted into an unsuspecting subframe via MessagePort and navigation.&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-&lt;script&gt;
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.layoutTestController) {
-    layoutTestController.dumpAsText();
-    layoutTestController.waitUntilDone();
-}
-
-var closure;
-var mainPort;
-var failed;
-
-function test()
-{
-    failed = false;
-    closure = window.frames[0].createClosure();
-    document.getElementsByTagName(&quot;iframe&quot;)[0].onload = test2;
-    window.frames[0].location = &quot;resources/banking-site.html&quot;;
-}
-
-function test2()
-{
-    mainPort = closure();
-    mainPort.postMessage(&quot;ping&quot;);
-    mainPort.onmessage = function(evt) { if (/sensitive/.test(evt.data)) failed = true; }
-    mainPort.start();
-    setTimeout(test3, 100);
-}
-
-function test3()
-{
-    log(failed ? &quot;FAIL&quot; : &quot;PASS&quot;);
-
-    if (window.layoutTestController)
-        layoutTestController.notifyDone();
-}
-
-&lt;/script&gt;
-&lt;iframe src=&quot;resources/attacker-frame.html&quot; onload=&quot;test()&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestshttptestssecurityMessagePortresourcesattackerframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/security/MessagePort/resources/attacker-frame.html (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/security/MessagePort/resources/attacker-frame.html        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/LayoutTests/http/tests/security/MessagePort/resources/attacker-frame.html        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -4,11 +4,7 @@
</span><span class="cx">     var MessageChannelConstructor = window.MessageChannel;
</span><span class="cx">     var channel;
</span><span class="cx">     return function() {
</span><del>-        channel = new MessageChannelConstructor;
-        channel.port1.onmessage = function() { channel.port1.postMessage(document.body.innerHTML) }
-        channel.port1.addEventListener(&quot;message&quot;, function() { channel.port1.postMessage(document.body.innerHTML) }, false);
-        channel.port1.start();
-        return channel.port2;
</del><ins>+        return new MessageChannelConstructor;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        is now implemented for Web Workers and is reasonably stable.
+
+        Tests: fast/events/message-channel-gc-2.html
+               fast/events/message-channel-gc-3.html
+               fast/events/message-channel-gc-4.html
+               fast/events/message-channel-gc.html
+               fast/events/message-channel-listener-circular-ownership.html
+               fast/events/message-port-clone.html
+               fast/events/message-port-constructor-for-deleted-document.html
+               fast/events/message-port-deleted-document.html
+               fast/events/message-port-deleted-frame.html
+               fast/events/message-port-inactive-document.html
+               fast/events/message-port-no-wrapper.html
+               fast/events/message-port.html
+               fast/workers/worker-cloneport.html
+               fast/workers/worker-messageport-gc.html
+               fast/workers/worker-messageport.html
+
+        * Configurations/FeatureDefines.xcconfig: Turned on ENABLE_CHANNEL_MESSAGING.
+        * WebCore/WebCore.vcproj/WebCoreCommon.vsprops: ditto.
+        * WebCore/WebCore.vcproj/build-generated-files.sh: ditto.
+        * WebCore/page/DOMWindow.idl: touch the file to cause re-generation of headers.
+        * WebCore/workers/WorkerContext.idl: ditto.
+
+
</ins><span class="cx"> 2009-07-09  Pierre d'Herbemont  &lt;pdherbemont@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Simon Fraser.
</span></span></pre></div>
<a id="trunkWebCoreConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/Configurations/FeatureDefines.xcconfig (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/Configurations/FeatureDefines.xcconfig        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/Configurations/FeatureDefines.xcconfig        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> ENABLE_3D_RENDERING = $(ENABLE_3D_RENDERING_$(MAC_OS_X_VERSION_MAJOR));
</span><span class="cx"> ENABLE_3D_RENDERING_1060 = ENABLE_3D_RENDERING;
</span><span class="cx"> 
</span><del>-ENABLE_CHANNEL_MESSAGING = ;
</del><ins>+ENABLE_CHANNEL_MESSAGING = ENABLE_CHANNEL_MESSAGING;
</ins><span class="cx"> ENABLE_DATABASE = ENABLE_DATABASE;
</span><span class="cx"> ENABLE_DATAGRID = ENABLE_DATAGRID;
</span><span class="cx"> ENABLE_DOM_STORAGE = ENABLE_DOM_STORAGE;
</span></span></pre></div>
<a id="trunkWebCoreWebCorevcprojWebCoreCommonvsprops"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.vcproj/WebCoreCommon.vsprops (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.vcproj/WebCoreCommon.vsprops        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/WebCore.vcproj/WebCoreCommon.vsprops        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx">         &lt;Tool
</span><span class="cx">                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                 AdditionalIncludeDirectories=&quot;&amp;quot;$(ProjectDir)..\&amp;quot;;&amp;quot;$(ProjectDir)..&amp;quot;;&amp;quot;$(ProjectDir)..\accessibility&amp;quot;;&amp;quot;$(ProjectDir)..\accessibility\win&amp;quot;;&amp;quot;$(ProjectDir)..\bridge&amp;quot;;&amp;quot;$(ProjectDir)..\bridge\c&amp;quot;;&amp;quot;$(ProjectDir)..\css&amp;quot;;&amp;quot;$(ProjectDir)..\editing&amp;quot;;&amp;quot;$(ProjectDir)..\rendering&amp;quot;;&amp;quot;$(ProjectDir)..\rendering\style&amp;quot;;&amp;quot;$(ProjectDir)..\bindings\js&amp;quot;;&amp;quot;$(ProjectDir)..\dom&amp;quot;;&amp;quot;$(ProjectDir)..\dom\default&amp;quot;;&amp;quot;$(ProjectDir)..\history&amp;quot;;&amp;quot;$(ProjectDir)..\html&amp;quot;;&amp;quot;$(ProjectDir)..\inspector&amp;quot;;&amp;quot;$(ProjectDir)..\loader&amp;quot;;&amp;quot;$(ProjectDir)..\loader\appcache&amp;quot;;&amp;quot;$(ProjectDir)..\loader\archive&amp;quot;;&amp;quot;$(ProjectDir)..\loader\archive\cf&amp;quot;;&amp;quot;$(Pr
 ojectDir)..\loader\icon&amp;quot;;&amp;quot;$(ProjectDir)..\page&amp;quot;;&amp;quot;$(ProjectDir)..\page\animation&amp;quot;;&amp;quot;$(ProjectDir)..\page\win&amp;quot;;&amp;quot;$(ProjectDir)..\platform&amp;quot;;&amp;quot;$(ProjectDir)..\platform\animation&amp;quot;;&amp;quot;$(ProjectDir)..\platform\sql&amp;quot;;&amp;quot;$(ProjectDir)..\platform\win&amp;quot;;&amp;quot;$(ProjectDir)..\platform\network&amp;quot;;&amp;quot;$(ProjectDir)..\platform\network\win&amp;quot;;&amp;quot;$(ProjectDir)..\platform\cf&amp;quot;;&amp;quot;$(ProjectDir)..\platform\graphics&amp;quot;;&amp;quot;$(ProjectDir)..\platform\graphics\opentype&amp;quot;;&amp;quot;$(ProjectDir)..\platform\graphics\transforms&amp;quot;;&amp;quot;$(ProjectDir)..\platform\text&amp;quot;;&amp;quot;$(ProjectDir)..\platform\graphics\win&amp;quot;;&amp;quot;$(ProjectDir)..\xml&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebCore\DerivedSources&amp;quot;;&amp;quot;$(ProjectDir)..\plugins&amp;quot;;&amp;quot;$(ProjectDir
 )..\plugins\win&amp;quot;;&amp;quot;$(ProjectDir)..\svg\graphics&amp;quot;;&amp;quot;$(ProjectDir)..\svg\graphics\filters&amp;quot;;&amp;quot;$(ProjectDir)..\svg&amp;quot;;&amp;quot;$(ProjectDir)..\wml&amp;quot;;&amp;quot;$(ProjectDir)..\storage&amp;quot;;&amp;quot;$(ProjectDir)..\workers&amp;quot;;&amp;quot;$(WebKitOutputDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\JavaScriptCore&amp;quot;;&amp;quot;$(ProjectDir)..\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\iconv&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\sqlite&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&
 amp;quot;;&amp;quot;$(ProjectDir)..\svg\animation&amp;quot;&quot;
</span><del>-                PreprocessorDefinitions=&quot;__WIN32__;WEBCORE_CONTEXT_MENUS;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                PreprocessorDefinitions=&quot;__WIN32__;WEBCORE_CONTEXT_MENUS;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                 PrecompiledHeaderThrough=&quot;WebCorePrefix.h&quot;
</span><span class="cx">                 ForcedIncludeFiles=&quot;WebCorePrefix.h&quot;
</span></span></pre></div>
<a id="trunkWebCoreWebCorevcprojbuildgeneratedfilessh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.vcproj/build-generated-files.sh (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.vcproj/build-generated-files.sh        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/WebCore.vcproj/build-generated-files.sh        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -65,5 +65,5 @@
</span><span class="cx"> cd &quot;${BUILT_PRODUCTS_DIR}/DerivedSources&quot;
</span><span class="cx"> 
</span><span class="cx"> export WebCore=&quot;${XSRCROOT}&quot;
</span><del>-export FEATURE_DEFINES=&quot;ENABLE_DATABASE ENABLE_DATAGRID ENABLE_DOM_STORAGE ENABLE_ICONDATABASE ENABLE_JAVASCRIPT_DEBUGGER ENABLE_OFFLINE_WEB_APPLICATIONS ENABLE_SVG ENABLE_SVG_ANIMATION ENABLE_SVG_AS_IMAGE ENABLE_SVG_FONTS ENABLE_SVG_FOREIGN_OBJECT ENABLE_SVG_USE ENABLE_VIDEO ENABLE_WORKERS ENABLE_XPATH ENABLE_XSLT&quot;
</del><ins>+export FEATURE_DEFINES=&quot;ENABLE_CHANNEL_MESSAGING ENABLE_DATABASE ENABLE_DATAGRID ENABLE_DOM_STORAGE ENABLE_ICONDATABASE ENABLE_JAVASCRIPT_DEBUGGER ENABLE_OFFLINE_WEB_APPLICATIONS ENABLE_SVG ENABLE_SVG_ANIMATION ENABLE_SVG_AS_IMAGE ENABLE_SVG_FONTS ENABLE_SVG_FOREIGN_OBJECT ENABLE_SVG_USE ENABLE_VIDEO ENABLE_WORKERS ENABLE_XPATH ENABLE_XSLT&quot;
</ins><span class="cx"> make -f &quot;$WebCore/DerivedSources.make&quot; -j ${NUMCPUS} || exit 1
</span></span></pre></div>
<a id="trunkWebCorepageDOMWindowidl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/page/DOMWindow.idl (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/page/DOMWindow.idl        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/page/DOMWindow.idl        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -520,7 +520,7 @@
</span><span class="cx"> #endif // defined(LANGUAGE_JAVASCRIPT)
</span><span class="cx"> 
</span><span class="cx"> #if defined(V8_BINDING) &amp;&amp; V8_BINDING
</span><del>-        // window.toString() requires special handling in V8
</del><ins>+        // window.toString() requires special handling in V8.
</ins><span class="cx">         [V8DoNotCheckSignature, DoNotCheckDomainSecurity, Custom, DontEnum] DOMString toString();
</span><span class="cx"> #endif // defined(V8_BINDING)
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkWebCoreworkersWorkerContextidl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/workers/WorkerContext.idl (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/workers/WorkerContext.idl        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebCore/workers/WorkerContext.idl        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -82,6 +82,7 @@
</span><span class="cx"> #if ENABLE_CHANNEL_MESSAGING
</span><span class="cx">         attribute [JSCCustomGetter] MessageChannelConstructor MessageChannel;
</span><span class="cx"> #endif
</span><ins>+
</ins><span class="cx">         attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest;
</span><span class="cx">     };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKit/mac/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        can now be implemented for Web Workers and is reasonably stable.
+
+        * Configurations/FeatureDefines.xcconfig:
+
</ins><span class="cx"> 2009-07-09  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Adele Peterson and Dan Bernstein.
</span></span></pre></div>
<a id="trunkWebKitmacConfigurationsFeatureDefinesxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/Configurations/FeatureDefines.xcconfig (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/Configurations/FeatureDefines.xcconfig        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKit/mac/Configurations/FeatureDefines.xcconfig        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> ENABLE_3D_RENDERING = $(ENABLE_3D_RENDERING_$(MAC_OS_X_VERSION_MAJOR));
</span><span class="cx"> ENABLE_3D_RENDERING_1060 = ENABLE_3D_RENDERING;
</span><span class="cx"> 
</span><del>-ENABLE_CHANNEL_MESSAGING = ;
</del><ins>+ENABLE_CHANNEL_MESSAGING = ENABLE_CHANNEL_MESSAGING;
</ins><span class="cx"> ENABLE_DATABASE = ENABLE_DATABASE;
</span><span class="cx"> ENABLE_DATAGRID = ENABLE_DATAGRID;
</span><span class="cx"> ENABLE_DOM_STORAGE = ENABLE_DOM_STORAGE;
</span></span></pre></div>
<a id="trunkWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/win/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/win/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKit/win/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        can now be implemented for Web Workers and is reasonably stable.
+
+       * WebKit.vcproj/WebKit.vcproj:
+
</ins><span class="cx"> 2009-07-09  Brian Weinstein  &lt;bweinstein@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Alice Liu.
</span></span></pre></div>
<a id="trunkWebKitwinWebKitvcprojWebKitvcproj"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/win/WebKit.vcproj/WebKit.vcproj (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/win/WebKit.vcproj/WebKit.vcproj        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKit/win/WebKit.vcproj/WebKit.vcproj        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">                         &lt;Tool
</span><span class="cx">                                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                                 AdditionalIncludeDirectories=&quot;&amp;quot;$(WebKitOutputDir)\include\WebKit&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFounda
 tion\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(ProjectDir)\..&amp;quot;;&amp;quot;$(ProjectDir)&amp;quot;;&amp;quot;$(ProjectDir)\..\WebCoreSupport&amp;quot;;&amp;quot;$(IntDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&amp;quot;&quot;
</span><del>-                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                                 PrecompiledHeaderThrough=&quot;WebKitPrefix.h&quot;
</span><span class="cx">                                 ForcedIncludeFiles=&quot;WebKitPrefix.h&quot;
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx">                         &lt;Tool
</span><span class="cx">                                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                                 AdditionalIncludeDirectories=&quot;&amp;quot;$(WebKitOutputDir)\include\WebKit&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFounda
 tion\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(ProjectDir)\..&amp;quot;;&amp;quot;$(ProjectDir)&amp;quot;;&amp;quot;$(ProjectDir)\..\WebCoreSupport&amp;quot;;&amp;quot;$(IntDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&amp;quot;&quot;
</span><del>-                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                                 PrecompiledHeaderThrough=&quot;WebKitPrefix.h&quot;
</span><span class="cx">                                 ForcedIncludeFiles=&quot;WebKitPrefix.h&quot;
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx">                         &lt;Tool
</span><span class="cx">                                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                                 AdditionalIncludeDirectories=&quot;&amp;quot;$(WebKitOutputDir)\include\WebKit&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFounda
 tion\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(ProjectDir)\..&amp;quot;;&amp;quot;$(ProjectDir)&amp;quot;;&amp;quot;$(ProjectDir)\..\WebCoreSupport&amp;quot;;&amp;quot;$(IntDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&amp;quot;&quot;
</span><del>-                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_VIDEO;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                                 PrecompiledHeaderThrough=&quot;WebKitPrefix.h&quot;
</span><span class="cx">                                 Detect64BitPortabilityProblems=&quot;false&quot;
</span><span class="lines">@@ -269,7 +269,7 @@
</span><span class="cx">                         &lt;Tool
</span><span class="cx">                                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                                 AdditionalIncludeDirectories=&quot;&amp;quot;$(WebKitOutputDir)\include\WebKit&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFounda
 tion\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(ProjectDir)\..&amp;quot;;&amp;quot;$(ProjectDir)&amp;quot;;&amp;quot;$(ProjectDir)\..\WebCoreSupport&amp;quot;;&amp;quot;$(IntDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&amp;quot;&quot;
</span><del>-                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                                 PrecompiledHeaderThrough=&quot;WebKitPrefix.h&quot;
</span><span class="cx">                                 ForcedIncludeFiles=&quot;WebKitPrefix.h&quot;
</span><span class="lines">@@ -348,7 +348,7 @@
</span><span class="cx">                         &lt;Tool
</span><span class="cx">                                 Name=&quot;VCCLCompilerTool&quot;
</span><span class="cx">                                 AdditionalIncludeDirectories=&quot;&amp;quot;$(WebKitOutputDir)\include\WebKit&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\icu&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\pthreads&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\Include\CoreFounda
 tion\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility&amp;quot;;&amp;quot;$(ProjectDir)\..&amp;quot;;&amp;quot;$(ProjectDir)&amp;quot;;&amp;quot;$(ProjectDir)\..\WebCoreSupport&amp;quot;;&amp;quot;$(IntDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\obj\WebKit\DerivedSources&amp;quot;&quot;
</span><del>-                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</del><ins>+                                PreprocessorDefinitions=&quot;_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;ENABLE_CHANNEL_MESSAGING;ENABLE_DATABASE;ENABLE_DATAGRID;ENABLE_DOM_STORAGE;ENABLE_ICONDATABASE;ENABLE_OFFLINE_WEB_APPLICATIONS;ENABLE_SVG;ENABLE_SVG_ANIMATION;ENABLE_SVG_AS_IMAGE;ENABLE_SVG_FONTS;ENABLE_SVG_FOREIGN_OBJECT;ENABLE_SVG_USE;ENABLE_WORKERS;ENABLE_XPATH;ENABLE_XSLT&quot;
</ins><span class="cx">                                 UsePrecompiledHeader=&quot;2&quot;
</span><span class="cx">                                 PrecompiledHeaderThrough=&quot;WebKitPrefix.h&quot;
</span><span class="cx">                                 ForcedIncludeFiles=&quot;WebKitPrefix.h&quot;
</span></span></pre></div>
<a id="trunkWebKitToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKitTools/ChangeLog (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKitTools/ChangeLog        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKitTools/ChangeLog        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2009-07-09  Drew Wilson  &lt;atwilson@google.com&gt;
+
+        Reviewed by Alexey Proskuryakov.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26903
+
+        Turned on CHANNEL_MESSAGING by default because the MessageChannel API
+        can now be implemented for Web Workers and is reasonably stable.
+
+        * Scripts/build-webkit:
+
</ins><span class="cx"> 2009-07-09  David Kilzer  &lt;ddkilzer@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         &lt;http://webkit.org/b/27114&gt; bugzilla-tool: Parse short bug URL from commit log messages
</span></span></pre></div>
<a id="trunkWebKitToolsScriptsbuildwebkit"></a>
<div class="modfile"><h4>Modified: trunk/WebKitTools/Scripts/build-webkit (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKitTools/Scripts/build-webkit        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/WebKitTools/Scripts/build-webkit        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">       define =&gt; &quot;ENABLE_3D_RENDERING&quot;, default =&gt; (isAppleMacWebKit() &amp;&amp; isSnowLeopard()), value =&gt; \$threeDRenderingSupport },
</span><span class="cx"> 
</span><span class="cx">     { option =&gt; &quot;channel-messaging&quot;, desc =&gt; &quot;Toggle MessageChannel and MessagePort support&quot;,
</span><del>-      define =&gt; &quot;ENABLE_CHANNEL_MESSAGING&quot;, default =&gt; 0, value =&gt; \$channelMessagingSupport },
</del><ins>+      define =&gt; &quot;ENABLE_CHANNEL_MESSAGING&quot;, default =&gt; 1, value =&gt; \$channelMessagingSupport },
</ins><span class="cx"> 
</span><span class="cx">     { option =&gt; &quot;coverage&quot;, desc =&gt; &quot;Toggle code coverage support&quot;,
</span><span class="cx">       define =&gt; &quot;&quot;, default =&gt; 0, value =&gt; \$coverageSupport },
</span></span></pre></div>
<a id="trunkconfigureac"></a>
<div class="modfile"><h4>Modified: trunk/configure.ac (45694 => 45695)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/configure.ac        2009-07-10 03:01:23 UTC (rev 45694)
+++ trunk/configure.ac        2009-07-10 03:20:07 UTC (rev 45695)
</span><span class="lines">@@ -309,8 +309,8 @@
</span><span class="cx"> AC_MSG_CHECKING([whether to enable HTML5 Channel Messaging support])
</span><span class="cx"> AC_ARG_ENABLE(channel_messaging,
</span><span class="cx">               AC_HELP_STRING([--enable-channel-messaging],
</span><del>-                             [enable HTML5 channel messaging support [default=no]]),
-              [],[enable_channel_messaging=&quot;no&quot;])
</del><ins>+                             [enable HTML5 channel messaging support [default=yes]]),
+              [],[enable_channel_messaging=&quot;yes&quot;])
</ins><span class="cx"> AC_MSG_RESULT([$enable_channel_messaging])
</span><span class="cx"> 
</span><span class="cx"> # check whether to enable JavaScript debugger/profiler support
</span></span></pre>
</div>
</div>

</body>
</html>