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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>113689</bug_id>
          
          <creation_ts>2013-04-01 01:43:12 -0700</creation_ts>
          <short_desc>REGRESSION (r147241): Failures in three IDB layout tests on GTK</short_desc>
          <delta_ts>2013-04-01 22:29:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>113091</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>jsbell</cc>
    
    <cc>michael</cc>
    
    <cc>mrobinson</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>866983</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-04-01 01:43:12 -0700</bug_when>
    <thetext>Three IDB layout tests started failing on GTK after r147241.
http://trac.webkit.org/changeset/147241

These are the failing tests:
storage/indexeddb/clone-exception.html
storage/indexeddb/exceptions.html
storage/indexeddb/structured-clone.html

From a quick look at the changes it seems the JSC bindings are not handling this as expected (i.e. as V8 bindings do).

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=storage%2Findexeddb%2Fclone-exception.html%2Cstorage%2Findexeddb%2Fexceptions.html%2Cstorage%2Findexeddb%2Fstructured-clone.html

--- /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/clone-exception-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/clone-exception-actual.txt
@@ -10,27 +10,21 @@
 
 onUpgradeNeeded():
 Expecting exception from db.createObjectStore(&apos;store&apos;).put(NON_CLONEABLE, 0);
-PASS Exception was thrown.
-PASS code is 25
-PASS ename is &apos;DataCloneError&apos;
+FAIL No exception thrown! Should have been 25
 
 doSecondOpen():
 indexedDB.open(dbname + &apos;2&apos;)
 
 onUpgradeNeeded():
 Expecting exception from db.createObjectStore(&apos;store&apos;).put(NON_CLONEABLE, 0);
-PASS Exception was thrown.
-PASS code is 25
-PASS ename is &apos;DataCloneError&apos;
+FAIL No exception thrown! Should have been 25
 
 doThirdOpen():
 indexedDB.open(dbname + &apos;3&apos;)
 
 onUpgradeNeeded():
 Expecting exception from db.createObjectStore(&apos;store&apos;).put(NON_CLONEABLE, INVALID_KEY);
-PASS Exception was thrown.
-PASS code is 25
-PASS ename is &apos;DataCloneError&apos;
+FAIL No exception thrown! Should have been 25
 PASS successfullyParsed is true
 
 TEST COMPLETE

--------

--- /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/exceptions-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/exceptions-actual.txt
@@ -143,8 +143,7 @@
 PASS ename is &apos;TransactionInactiveError&apos;
 The data being stored could not be cloned by the internal structured cloning algorithm.
 Expecting exception from store.add(self, 0)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 
 IDBObjectStore.clear()
 This method throws a DOMException of type ReadOnlyError if the transaction which this IDBObjectStore belongs to is has its mode set to &quot;readonly&quot;.
@@ -240,8 +239,7 @@
 PASS ename is &apos;TransactionInactiveError&apos;
 The data being stored could not be cloned by the internal structured cloning algorithm.
 Expecting exception from store.put(self, 0)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 db.close()
 ro_transaction.oncomplete = transactionComplete
 rw_transaction.oncomplete = transactionComplete
@@ -444,8 +442,7 @@
 PASS ename is &apos;DataError&apos;
 If the structured clone algorithm throws an exception, that exception is rethrown.
 Expecting exception from cursor.update(self)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 The transaction this IDBCursor belongs to is not active.
 Expecting exception from cursorFromInactiveTransaction.update({})
 PASS Exception was thrown.

--------

--- /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/structured-clone-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/storage/indexeddb/structured-clone-actual.txt
@@ -781,22 +781,17 @@
 
 Other JavaScript object types:
 Expecting exception from store.put(new Error, &apos;key&apos;)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 Expecting exception from store.put(new Function, &apos;key&apos;)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 
 Other host object types:
 Expecting exception from store.put(self, &apos;key&apos;)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 Expecting exception from store.put(document, &apos;key&apos;)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 Expecting exception from store.put(document.body, &apos;key&apos;)
-PASS Exception was thrown.
-PASS code is DOMException.DATA_CLONE_ERR
+FAIL No exception thrown! Should have been DOMException.DATA_CLONE_ERR
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867257</commentid>
    <comment_count>1</comment_count>
      <attachid>195998</attachid>
    <who name="Michael Pruett">michael</who>
    <bug_when>2013-04-01 11:52:11 -0700</bug_when>
    <thetext>Created attachment 195998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867285</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-04-01 12:37:04 -0700</bug_when>
    <thetext>Sorry about that. We need to try and get ScriptState and SSV better aligned *internally* in the V8 binding and between V8 and and JSC.

Some vague notes in https://bugs.webkit.org/show_bug.cgi?id=113091

Apologies for not anticipating this failure. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867299</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2013-04-01 12:53:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Sorry about that. We need to try and get ScriptState and SSV better aligned *internally* in the V8 binding and between V8 and and JSC.
&gt; 
&gt; Some vague notes in https://bugs.webkit.org/show_bug.cgi?id=113091
&gt; 
&gt; Apologies for not anticipating this failure. :(

The JSC implementation of ScriptValue::serialize(ScriptState*, MessagePortArray*, ArrayBufferArray*, bool&amp;), added in r116763, was flawed in that it called the specialized SerializedScriptValue::create(JSContextRef, JSValueRef, MessagePortArray*, ArrayBufferArray*, JSValueRef*).

This variant of SerializedScriptValue::create(), which returns the exception thrown in its final parameter and clears the exception on the JSContextRef, was intended for use in the WebKit layer and not in WebCore bindings (r51256).

The fix in r147241 exposed this formerly latent error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867416</commentid>
    <comment_count>4</comment_count>
      <attachid>195998</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-04-01 16:42:09 -0700</bug_when>
    <thetext>Comment on attachment 195998
Patch

Although a right way to fix the bug would be making SSV&apos;s APIs better (in both V8 and JSC), this looks reasonable as an immediate fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867547</commentid>
    <comment_count>5</comment_count>
      <attachid>195998</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-01 22:29:35 -0700</bug_when>
    <thetext>Comment on attachment 195998
Patch

Clearing flags on attachment: 195998

Committed r147382: &lt;http://trac.webkit.org/changeset/147382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867548</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-01 22:29:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195998</attachid>
            <date>2013-04-01 11:52:11 -0700</date>
            <delta_ts>2013-04-01 22:29:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>idb-exceptions.patch</filename>
            <type>text/plain</type>
            <size>3704</size>
            <attacher name="Michael Pruett">michael</attacher>
            
              <data encoding="base64">RnJvbTogTWljaGFlbCBQcnVldHQgPG1pY2hhZWxANjhrLm9yZz4KRGF0ZTogTW9uLCAxIEFwciAy
MDEzIDExOjQwOjE1IC0wNzAwClN1YmplY3Q6IFtKU0NdIEluZGV4ZWREQjogRXhjZXB0aW9ucyBu
b3QgdGhyb3duIGZvciBub24tY2xvbmVhYmxlIHZhbHVlcwoKLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKysrKwogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgIHwgICAgNCAtLS0tCiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAgfCAgICA1ICsrLS0tCiA0
IGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDQ3Y2IxZGIuLjcyYWIyOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wNC0wMSAgTWlj
aGFlbCBQcnVldHQgIDxtaWNoYWVsQDY4ay5vcmc+CisKKyAgICAgICAgW0pTQ10gSW5kZXhlZERC
OiBFeGNlcHRpb25zIG5vdCB0aHJvd24gZm9yIG5vbi1jbG9uZWFibGUgdmFsdWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2ODkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTA0LTAxICBWaWN0b3IgQ2FyYnVuZSAgPHZjYXJidW5l
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQYXJzaW5nIFdlYlZUVCBSZWdpb24gSGVhZGVyIE1l
dGFkYXRhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc0
ZWM2ODcuLjg3YzBhNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xMzg1LDEwICsxMzg1LDYgQEAgd2Via2l0Lm9yZy9iLzExMjcwNSBmYXN0L2RvbS9p
Y29uLXVybC1wcm9wZXJ0eS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMTMxMjcg
bWVkaWEvdHJhY2svdHJhY2stcHJlZmVyLWNhcHRpb25zLmh0bWwgWyBUaW1lb3V0IF0KIAotd2Vi
a2l0Lm9yZy9iLzExMzY4OSBzdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRtbCBb
IEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzExMzY4OSBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRp
b25zLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMTM2ODkgc3RvcmFnZS9pbmRleGVk
ZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sIFsgRmFpbHVyZSBdCi0KICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBUZXN0cyBmYWlsaW5nCiAjLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI4ZjI3ZjIuLjE5Yjg0MGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wNC0wMSAgTWljaGFlbCBQcnVldHQgIDxtaWNoYWVs
QDY4ay5vcmc+CisKKyAgICAgICAgW0pTQ10gSW5kZXhlZERCOiBFeGNlcHRpb25zIG5vdCB0aHJv
d24gZm9yIG5vbi1jbG9uZWFibGUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKCkgc2hvdWxkIG5vdCBj
bGVhciBleGNlcHRpb25zIHRocm93biBkdXJpbmcKKyAgICAgICAgc2VyaWFsaXphdGlvbi4gVGhp
cyBjaGFuZ2UgaXMgbmVlZGVkIHRvIG1hdGNoIGJlaGF2aW9yIGluIFY4LgorCisgICAgICAgIFRl
c3RzOiBzdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRtbAorICAgICAgICAgICAg
ICAgc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9ucy5odG1sCisgICAgICAgICAgICAgICBzdG9y
YWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFZhbHVlOjpzZXJp
YWxpemUpOgorCiAyMDEzLTA0LTAxICBEbWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRXhjZXB0aW9uIGluIGNvbnNvbGUgb24g
YXR0ZW1wdCB0byBmaWx0ZXIgamF2YXNjcmlwdCBtZXNzYWdlcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcAppbmRleCAwYTA1MTgyLi40NTU1N2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwCkBAIC0xMDUsOSArMTA1LDgg
QEAgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IFNjcmlwdFZhbHVlOjpzZXJpYWxp
emUoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXQKIAogUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IFNjcmlwdFZhbHVlOjpzZXJpYWxpemUoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBN
ZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9ydHMsIEFycmF5QnVmZmVyQXJyYXkqIGFycmF5QnVm
ZmVycywgYm9vbCYgZGlkVGhyb3cpCiB7Ci0gICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwot
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZSA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKHRvUmVmKHNjcmlwdFN0YXRlKSwgdG9SZWYoc2NyaXB0
U3RhdGUsIGpzVmFsdWUoKSksIG1lc3NhZ2VQb3J0cywgYXJyYXlCdWZmZXJzLCAmZXhjZXB0aW9u
KTsKLSAgICBkaWRUaHJvdyA9IGV4Y2VwdGlvbiA/IHRydWUgOiBmYWxzZTsKKyAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShzY3JpcHRTdGF0ZSwganNWYWx1ZSgpLCBtZXNzYWdlUG9ydHMsIGFycmF5
QnVmZmVycyk7CisgICAgZGlkVGhyb3cgPSBzY3JpcHRTdGF0ZS0+aGFkRXhjZXB0aW9uKCk7CiAg
ICAgcmV0dXJuIHNlcmlhbGl6ZWRWYWx1ZS5yZWxlYXNlKCk7CiB9CiAKLS0gCjEuNy4xMC40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>