<!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>[199853] 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/199853">199853</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2016-04-21 18:03:39 -0700 (Thu, 21 Apr 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
https://bugs.webkit.org/show_bug.cgi?id=156877

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Covered by changes to existing tests).

* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope): This is the point on the main thread
  where we can get the IDBConnectionProxy from the Document and pass it down through Worker
  machinery so it can end up at the WorkerGlobalScope.

Everything else is this patch is just passing it along as needed.

And cleaning up header style for neglected headers.

* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
* workers/DedicatedWorkerGlobalScope.h:

* workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
* workers/DedicatedWorkerThread.h:
(WebCore::DedicatedWorkerThread::create):
(WebCore::DedicatedWorkerThread::workerObjectProxy):

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::idbConnectionProxy):
* workers/WorkerGlobalScope.h:

* workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):
* workers/WorkerThread.h:
(WebCore::WorkerThread::threadID):
(WebCore::WorkerThread::runLoop):
(WebCore::WorkerThread::workerLoaderProxy):
(WebCore::WorkerThread::workerReportingProxy):
(WebCore::WorkerThread::getNotificationClient):
(WebCore::WorkerThread::setNotificationClient):
(WebCore::WorkerThread::workerGlobalScope):

LayoutTests:

* storage/indexeddb/modern/workers-enable-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsstorageindexeddbmodernworkersenableexpectedtxt">trunk/LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh">trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerThreadcpp">trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersDedicatedWorkerThreadh">trunk/Source/WebCore/workers/DedicatedWorkerThread.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopecpp">trunk/Source/WebCore/workers/WorkerGlobalScope.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerGlobalScopeh">trunk/Source/WebCore/workers/WorkerGlobalScope.h</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerMessagingProxycpp">trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerThreadcpp">trunk/Source/WebCore/workers/WorkerThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreworkersWorkerThreadh">trunk/Source/WebCore/workers/WorkerThread.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/LayoutTests/ChangeLog        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-04-21  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
+        https://bugs.webkit.org/show_bug.cgi?id=156877
+
+        Reviewed by Tim Horton.
+
+        * storage/indexeddb/modern/workers-enable-expected.txt:
+
</ins><span class="cx"> 2016-04-21  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: sourceMappingURL not loaded in generated script
</span></span></pre></div>
<a id="trunkLayoutTestsstorageindexeddbmodernworkersenableexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/LayoutTests/storage/indexeddb/modern/workers-enable-expected.txt        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -5,8 +5,8 @@
</span><span class="cx"> 
</span><span class="cx"> Starting worker: resources/workers-enable.js
</span><span class="cx"> PASS [Worker] self.indexedDB is defined.
</span><del>-FAIL [Worker] self.indexedDB should be non-null. Was null
-FAIL [Worker] self.indexedDB instanceof IDBFactory should be true. Was false.
</del><ins>+PASS [Worker] self.indexedDB is non-null.
+PASS [Worker] self.indexedDB instanceof IDBFactory is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/ChangeLog        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,3 +1,50 @@
</span><ins>+2016-04-21  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Modern IDB (Workers): Get the IDBConnectionProxy from the Document to the WorkerGlobalScope.
+        https://bugs.webkit.org/show_bug.cgi?id=156877
+
+        Reviewed by Tim Horton.
+
+        No new tests (Covered by changes to existing tests).
+
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope): This is the point on the main thread
+          where we can get the IDBConnectionProxy from the Document and pass it down through Worker
+          machinery so it can end up at the WorkerGlobalScope.
+        
+        Everything else is this patch is just passing it along as needed.
+
+        And cleaning up header style for neglected headers.
+
+        * workers/DedicatedWorkerGlobalScope.cpp:
+        (WebCore::DedicatedWorkerGlobalScope::create):
+        (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
+        * workers/DedicatedWorkerGlobalScope.h:
+
+        * workers/DedicatedWorkerThread.cpp:
+        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
+        (WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
+        * workers/DedicatedWorkerThread.h:
+        (WebCore::DedicatedWorkerThread::create):
+        (WebCore::DedicatedWorkerThread::workerObjectProxy):
+
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+        (WebCore::WorkerGlobalScope::idbConnectionProxy):
+        * workers/WorkerGlobalScope.h:
+
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThread::WorkerThread):
+        (WebCore::WorkerThread::idbConnectionProxy):
+        * workers/WorkerThread.h:
+        (WebCore::WorkerThread::threadID):
+        (WebCore::WorkerThread::runLoop):
+        (WebCore::WorkerThread::workerLoaderProxy):
+        (WebCore::WorkerThread::workerReportingProxy):
+        (WebCore::WorkerThread::getNotificationClient):
+        (WebCore::WorkerThread::setNotificationClient):
+        (WebCore::WorkerThread::workerGlobalScope):
+
</ins><span class="cx"> 2016-04-21  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix crashes when loading SVG images.
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions are
</span><span class="lines">@@ -40,16 +41,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-Ref&lt;DedicatedWorkerGlobalScope&gt; DedicatedWorkerGlobalScope::create(const URL&amp; url, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin)
</del><ins>+Ref&lt;DedicatedWorkerGlobalScope&gt; DedicatedWorkerGlobalScope::create(const URL&amp; url, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
</ins><span class="cx"> {
</span><del>-    Ref&lt;DedicatedWorkerGlobalScope&gt; context = adoptRef(*new DedicatedWorkerGlobalScope(url, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, topOrigin));
</del><ins>+    Ref&lt;DedicatedWorkerGlobalScope&gt; context = adoptRef(*new DedicatedWorkerGlobalScope(url, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, topOrigin, connectionProxy));
</ins><span class="cx">     if (!shouldBypassMainWorldContentSecurityPolicy)
</span><span class="cx">         context-&gt;applyContentSecurityPolicyResponseHeaders(contentSecurityPolicyResponseHeaders);
</span><span class="cx">     return context;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin)
-    : WorkerGlobalScope(url, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, topOrigin)
</del><ins>+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, DedicatedWorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
+    : WorkerGlobalScope(url, userAgent, thread, shouldBypassMainWorldContentSecurityPolicy, topOrigin, connectionProxy)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.h        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions are
</span><span class="lines">@@ -28,8 +29,7 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef DedicatedWorkerGlobalScope_h
-#define DedicatedWorkerGlobalScope_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;MessagePort.h&quot;
</span><span class="cx"> #include &quot;WorkerGlobalScope.h&quot;
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">     class DedicatedWorkerGlobalScope : public WorkerGlobalScope {
</span><span class="cx">     public:
</span><span class="cx">         typedef WorkerGlobalScope Base;
</span><del>-        static Ref&lt;DedicatedWorkerGlobalScope&gt; create(const URL&amp;, const String&amp; userAgent, DedicatedWorkerThread&amp;, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin);
</del><ins>+        static Ref&lt;DedicatedWorkerGlobalScope&gt; create(const URL&amp;, const String&amp; userAgent, DedicatedWorkerThread&amp;, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy*);
</ins><span class="cx">         virtual ~DedicatedWorkerGlobalScope();
</span><span class="cx"> 
</span><span class="cx">         bool isDedicatedWorkerGlobalScope() const override { return true; }
</span><span class="lines">@@ -60,9 +60,7 @@
</span><span class="cx">         DedicatedWorkerThread&amp; thread();
</span><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        DedicatedWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, DedicatedWorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin);
</del><ins>+        DedicatedWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, DedicatedWorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy*);
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // DedicatedWorkerGlobalScope_h
</del></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/DedicatedWorkerThread.cpp        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions are
</span><span class="lines">@@ -29,7 +30,6 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><del>-
</del><span class="cx"> #include &quot;DedicatedWorkerThread.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DedicatedWorkerGlobalScope.h&quot;
</span><span class="lines">@@ -38,8 +38,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-DedicatedWorkerThread::DedicatedWorkerThread(const URL&amp; url, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerObjectProxy&amp; workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin)
-    : WorkerThread(url, userAgent, sourceCode, workerLoaderProxy, workerObjectProxy, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, topOrigin)
</del><ins>+DedicatedWorkerThread::DedicatedWorkerThread(const URL&amp; url, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerObjectProxy&amp; workerObjectProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
+    : WorkerThread(url, userAgent, sourceCode, workerLoaderProxy, workerObjectProxy, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, topOrigin, connectionProxy)
</ins><span class="cx">     , m_workerObjectProxy(workerObjectProxy)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;WorkerGlobalScope&gt; DedicatedWorkerThread::createWorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin)
</span><span class="cx"> {
</span><del>-    return DedicatedWorkerGlobalScope::create(url, userAgent, *this, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, topOrigin);
</del><ins>+    return DedicatedWorkerGlobalScope::create(url, userAgent, *this, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, topOrigin, idbConnectionProxy());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DedicatedWorkerThread::runEventLoop()
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersDedicatedWorkerThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/DedicatedWorkerThread.h (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/DedicatedWorkerThread.h        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/DedicatedWorkerThread.h        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2009 Google Inc. All rights reserved.
</span><ins>+ * Copyright (C) 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions are
</span><span class="lines">@@ -27,35 +28,34 @@
</span><span class="cx">  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><del>-#ifndef DedicatedWorkerThread_h
-#define DedicatedWorkerThread_h
</del><span class="cx"> 
</span><ins>+#pragma once
+
</ins><span class="cx"> #include &quot;WorkerThread.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    class ContentSecurityPolicyResponseHeaders;
-    class WorkerObjectProxy;
</del><ins>+class ContentSecurityPolicyResponseHeaders;
+class WorkerObjectProxy;
</ins><span class="cx"> 
</span><del>-    class DedicatedWorkerThread : public WorkerThread {
-    public:
-        template&lt;typename... Args&gt; static Ref&lt;DedicatedWorkerThread&gt; create(Args&amp;&amp;... args)
-        {
-            return adoptRef(*new DedicatedWorkerThread(std::forward&lt;Args&gt;(args)...));
-        }
-        virtual ~DedicatedWorkerThread();
</del><ins>+class DedicatedWorkerThread : public WorkerThread {
+public:
+    template&lt;typename... Args&gt; static Ref&lt;DedicatedWorkerThread&gt; create(Args&amp;&amp;... args)
+    {
+        return adoptRef(*new DedicatedWorkerThread(std::forward&lt;Args&gt;(args)...));
+    }
+    virtual ~DedicatedWorkerThread();
</ins><span class="cx"> 
</span><del>-        WorkerObjectProxy&amp; workerObjectProxy() const { return m_workerObjectProxy; }
</del><ins>+    WorkerObjectProxy&amp; workerObjectProxy() const { return m_workerObjectProxy; }
</ins><span class="cx"> 
</span><del>-    protected:
-        Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin) override;
-        void runEventLoop() override;
</del><ins>+protected:
+    Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin) override;
+    void runEventLoop() override;
</ins><span class="cx"> 
</span><del>-    private:
-        DedicatedWorkerThread(const URL&amp;, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerObjectProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin);
</del><ins>+private:
+    DedicatedWorkerThread(const URL&amp;, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerObjectProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*);
</ins><span class="cx"> 
</span><del>-        WorkerObjectProxy&amp; m_workerObjectProxy;
-    };
</del><ins>+    WorkerObjectProxy&amp; m_workerObjectProxy;
+};
+
</ins><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // DedicatedWorkerThread_h
</del></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.cpp (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.cpp        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #include &quot;ErrorEvent.h&quot;
</span><span class="cx"> #include &quot;Event.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><ins>+#include &quot;IDBConnectionProxy.h&quot;
</ins><span class="cx"> #include &quot;InspectorConsoleInstrumentation.h&quot;
</span><span class="cx"> #include &quot;MessagePort.h&quot;
</span><span class="cx"> #include &quot;ScheduledAction.h&quot;
</span><span class="lines">@@ -62,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-WorkerGlobalScope::WorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, WorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin)
</del><ins>+WorkerGlobalScope::WorkerGlobalScope(const URL&amp; url, const String&amp; userAgent, WorkerThread&amp; thread, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
</ins><span class="cx">     : m_url(url)
</span><span class="cx">     , m_userAgent(userAgent)
</span><span class="cx">     , m_script(std::make_unique&lt;WorkerScriptController&gt;(this))
</span><span class="lines">@@ -71,6 +72,9 @@
</span><span class="cx">     , m_shouldBypassMainWorldContentSecurityPolicy(shouldBypassMainWorldContentSecurityPolicy)
</span><span class="cx">     , m_eventQueue(*this)
</span><span class="cx">     , m_topOrigin(topOrigin)
</span><ins>+#if ENABLE(INDEXED_DATABASE)
+    , m_connectionProxy(connectionProxy)
+#endif
</ins><span class="cx"> {
</span><span class="cx">     setSecurityOriginPolicy(SecurityOriginPolicy::create(SecurityOrigin::create(url)));
</span><span class="cx">     setContentSecurityPolicy(std::make_unique&lt;ContentSecurityPolicy&gt;(*this));
</span><span class="lines">@@ -115,9 +119,11 @@
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> IDBClient::IDBConnectionProxy* WorkerGlobalScope::idbConnectionProxy()
</span><span class="cx"> {
</span><del>-    // FIXME: Implement
-
</del><ins>+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    return m_connectionProxy.get();
+#else
</ins><span class="cx">     return nullptr;
</span><ins>+#endif
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(INDEXED_DATABASE)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerGlobalScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerGlobalScope.h (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerGlobalScope.h        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/WorkerGlobalScope.h        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -53,6 +53,10 @@
</span><span class="cx"> class WorkerNavigator;
</span><span class="cx"> class WorkerThread;
</span><span class="cx"> 
</span><ins>+namespace IDBClient {
+class IDBConnectionProxy;
+}
+
</ins><span class="cx"> class WorkerGlobalScope : public RefCounted&lt;WorkerGlobalScope&gt;, public Supplementable&lt;WorkerGlobalScope&gt;, public ScriptExecutionContext, public EventTargetWithInlineData {
</span><span class="cx"> public:
</span><span class="cx">     virtual ~WorkerGlobalScope();
</span><span class="lines">@@ -140,7 +144,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    WorkerGlobalScope(const URL&amp;, const String&amp; userAgent, WorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin);
</del><ins>+    WorkerGlobalScope(const URL&amp;, const String&amp; userAgent, WorkerThread&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin, IDBClient::IDBConnectionProxy*);
</ins><span class="cx">     void applyContentSecurityPolicyResponseHeaders(const ContentSecurityPolicyResponseHeaders&amp;);
</span><span class="cx"> 
</span><span class="cx">     void logExceptionToConsole(const String&amp; errorMessage, const String&amp; sourceURL, int lineNumber, int columnNumber, RefPtr&lt;Inspector::ScriptCallStack&gt;&amp;&amp;) override;
</span><span class="lines">@@ -177,6 +181,10 @@
</span><span class="cx">     mutable WorkerEventQueue m_eventQueue;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SecurityOrigin&gt; m_topOrigin;
</span><ins>+
+#if ENABLE(INDEXED_DATABASE)
+    RefPtr&lt;IDBClient::IDBConnectionProxy&gt; m_connectionProxy;
+#endif
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerMessagingProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/WorkerMessagingProxy.cpp        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2008, 2016 Apple Inc. All Rights Reserved.
</ins><span class="cx">  * Copyright (C) 2009 Google Inc. All Rights Reserved.
</span><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="lines">@@ -77,7 +77,8 @@
</span><span class="cx">     // FIXME: This need to be revisited when we support nested worker one day
</span><span class="cx">     ASSERT(m_scriptExecutionContext);
</span><span class="cx">     Document&amp; document = downcast&lt;Document&gt;(*m_scriptExecutionContext);
</span><del>-    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, document.topOrigin());
</del><ins>+
+    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, startMode, contentSecurityPolicyResponseHeaders, shouldBypassMainWorldContentSecurityPolicy, document.topOrigin(), document.idbConnectionProxy());
</ins><span class="cx">     workerThreadCreated(thread);
</span><span class="cx">     thread-&gt;start();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerThread.cpp (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerThread.cpp        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/WorkerThread.cpp        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ContentSecurityPolicyResponseHeaders.h&quot;
</span><span class="cx"> #include &quot;DedicatedWorkerGlobalScope.h&quot;
</span><ins>+#include &quot;IDBConnectionProxy.h&quot;
</ins><span class="cx"> #include &quot;ScriptSourceCode.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;ThreadGlobalData.h&quot;
</span><span class="lines">@@ -92,7 +93,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WorkerThread::WorkerThread(const URL&amp; scriptURL, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerReportingProxy&amp; workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin)
</del><ins>+WorkerThread::WorkerThread(const URL&amp; scriptURL, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp; workerLoaderProxy, WorkerReportingProxy&amp; workerReportingProxy, WorkerThreadStartMode startMode, const ContentSecurityPolicyResponseHeaders&amp; contentSecurityPolicyResponseHeaders, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy* connectionProxy)
</ins><span class="cx">     : m_threadID(0)
</span><span class="cx">     , m_workerLoaderProxy(workerLoaderProxy)
</span><span class="cx">     , m_workerReportingProxy(workerReportingProxy)
</span><span class="lines">@@ -100,6 +101,9 @@
</span><span class="cx"> #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
</span><span class="cx">     , m_notificationClient(0)
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(INDEXED_DATABASE)
+    , m_idbConnectionProxy(connectionProxy)
+#endif
</ins><span class="cx"> {
</span><span class="cx">     std::lock_guard&lt;StaticLock&gt; lock(threadSetMutex);
</span><span class="cx"> 
</span><span class="lines">@@ -233,4 +237,13 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+IDBClient::IDBConnectionProxy* WorkerThread::idbConnectionProxy()
+{
+#if ENABLE(INDEXED_DATABASE)
+    return m_idbConnectionProxy.get();
+#else
+    return nullptr;
+#endif
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreworkersWorkerThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/workers/WorkerThread.h (199852 => 199853)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/workers/WorkerThread.h        2016-04-22 00:50:09 UTC (rev 199852)
+++ trunk/Source/WebCore/workers/WorkerThread.h        2016-04-22 01:03:39 UTC (rev 199853)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2008, 2016 Apple Inc. All Rights Reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -24,8 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef WorkerThread_h
-#define WorkerThread_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;WorkerRunLoop.h&quot;
</span><span class="cx"> #include &lt;memory&gt;
</span><span class="lines">@@ -35,70 +34,79 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-    class ContentSecurityPolicyResponseHeaders;
-    class URL;
-    class NotificationClient;
-    class SecurityOrigin;
-    class WorkerGlobalScope;
-    class WorkerLoaderProxy;
-    class WorkerReportingProxy;
-    struct WorkerThreadStartupData;
</del><ins>+class ContentSecurityPolicyResponseHeaders;
+class URL;
+class NotificationClient;
+class SecurityOrigin;
+class WorkerGlobalScope;
+class WorkerLoaderProxy;
+class WorkerReportingProxy;
</ins><span class="cx"> 
</span><del>-    enum WorkerThreadStartMode { DontPauseWorkerGlobalScopeOnStart, PauseWorkerGlobalScopeOnStart };
</del><ins>+enum WorkerThreadStartMode { DontPauseWorkerGlobalScopeOnStart, PauseWorkerGlobalScopeOnStart };
</ins><span class="cx"> 
</span><del>-    class WorkerThread : public RefCounted&lt;WorkerThread&gt; {
-    public:
-        virtual ~WorkerThread();
</del><ins>+namespace IDBClient {
+class IDBConnectionProxy;
+}
</ins><span class="cx"> 
</span><del>-        bool start();
-        void stop();
</del><ins>+struct WorkerThreadStartupData;
</ins><span class="cx"> 
</span><del>-        ThreadIdentifier threadID() const { return m_threadID; }
-        WorkerRunLoop&amp; runLoop() { return m_runLoop; }
-        WorkerLoaderProxy&amp; workerLoaderProxy() const { return m_workerLoaderProxy; }
-        WorkerReportingProxy&amp; workerReportingProxy() const { return m_workerReportingProxy; }
</del><ins>+class WorkerThread : public RefCounted&lt;WorkerThread&gt; {
+public:
+    virtual ~WorkerThread();
</ins><span class="cx"> 
</span><del>-        // Number of active worker threads.
-        WEBCORE_EXPORT static unsigned workerThreadCount();
-        static void releaseFastMallocFreeMemoryInAllThreads();
</del><ins>+    bool start();
+    void stop();
</ins><span class="cx"> 
</span><ins>+    ThreadIdentifier threadID() const { return m_threadID; }
+    WorkerRunLoop&amp; runLoop() { return m_runLoop; }
+    WorkerLoaderProxy&amp; workerLoaderProxy() const { return m_workerLoaderProxy; }
+    WorkerReportingProxy&amp; workerReportingProxy() const { return m_workerReportingProxy; }
+
+    // Number of active worker threads.
+    WEBCORE_EXPORT static unsigned workerThreadCount();
+    static void releaseFastMallocFreeMemoryInAllThreads();
+
</ins><span class="cx"> #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
</span><del>-        NotificationClient* getNotificationClient() { return m_notificationClient; }
-        void setNotificationClient(NotificationClient* client) { m_notificationClient = client; }
</del><ins>+    NotificationClient* getNotificationClient() { return m_notificationClient; }
+    void setNotificationClient(NotificationClient* client) { m_notificationClient = client; }
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    protected:
-        WorkerThread(const URL&amp;, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerReportingProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin);
</del><ins>+protected:
+    WorkerThread(const URL&amp;, const String&amp; userAgent, const String&amp; sourceCode, WorkerLoaderProxy&amp;, WorkerReportingProxy&amp;, WorkerThreadStartMode, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, const SecurityOrigin* topOrigin, IDBClient::IDBConnectionProxy*);
</ins><span class="cx"> 
</span><del>-        // Factory method for creating a new worker context for the thread.
-        virtual Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin) = 0;
</del><ins>+    // Factory method for creating a new worker context for the thread.
+    virtual Ref&lt;WorkerGlobalScope&gt; createWorkerGlobalScope(const URL&amp;, const String&amp; userAgent, const ContentSecurityPolicyResponseHeaders&amp;, bool shouldBypassMainWorldContentSecurityPolicy, PassRefPtr&lt;SecurityOrigin&gt; topOrigin) = 0;
</ins><span class="cx"> 
</span><del>-        // Executes the event loop for the worker thread. Derived classes can override to perform actions before/after entering the event loop.
-        virtual void runEventLoop();
</del><ins>+    // Executes the event loop for the worker thread. Derived classes can override to perform actions before/after entering the event loop.
+    virtual void runEventLoop();
</ins><span class="cx"> 
</span><del>-        WorkerGlobalScope* workerGlobalScope() { return m_workerGlobalScope.get(); }
</del><ins>+    WorkerGlobalScope* workerGlobalScope() { return m_workerGlobalScope.get(); }
</ins><span class="cx"> 
</span><del>-    private:
-        // Static function executed as the core routine on the new thread. Passed a pointer to a WorkerThread object.
-        static void workerThreadStart(void*);
-        void workerThread();
</del><ins>+    IDBClient::IDBConnectionProxy* idbConnectionProxy();
</ins><span class="cx"> 
</span><del>-        ThreadIdentifier m_threadID;
-        WorkerRunLoop m_runLoop;
-        WorkerLoaderProxy&amp; m_workerLoaderProxy;
-        WorkerReportingProxy&amp; m_workerReportingProxy;
</del><ins>+private:
+    // Static function executed as the core routine on the new thread. Passed a pointer to a WorkerThread object.
+    static void workerThreadStart(void*);
+    void workerThread();
</ins><span class="cx"> 
</span><del>-        RefPtr&lt;WorkerGlobalScope&gt; m_workerGlobalScope;
-        Lock m_threadCreationMutex;
</del><ins>+    ThreadIdentifier m_threadID;
+    WorkerRunLoop m_runLoop;
+    WorkerLoaderProxy&amp; m_workerLoaderProxy;
+    WorkerReportingProxy&amp; m_workerReportingProxy;
</ins><span class="cx"> 
</span><del>-        std::unique_ptr&lt;WorkerThreadStartupData&gt; m_startupData;
</del><ins>+    RefPtr&lt;WorkerGlobalScope&gt; m_workerGlobalScope;
+    Lock m_threadCreationMutex;
</ins><span class="cx"> 
</span><ins>+    std::unique_ptr&lt;WorkerThreadStartupData&gt; m_startupData;
+
</ins><span class="cx"> #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
</span><del>-        NotificationClient* m_notificationClient;
</del><ins>+    NotificationClient* m_notificationClient;
</ins><span class="cx"> #endif
</span><del>-    };
</del><span class="cx"> 
</span><ins>+#if ENABLE(INDEXED_DATABASE)
+    RefPtr&lt;IDBClient::IDBConnectionProxy&gt; m_idbConnectionProxy;
+#endif
+};
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><del>-#endif // WorkerThread_h
-
</del></span></pre>
</div>
</div>

</body>
</html>