<?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>148531</bug_id>
          
          <creation_ts>2015-08-27 10:32:54 -0700</creation_ts>
          <short_desc>Document window.NodeFilter properties</short_desc>
          <delta_ts>2015-08-28 20:20:21 -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>DOM</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=148602</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148415</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1121346</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 10:32:54 -0700</bug_when>
    <thetext>Document window.NodeFilter properties to detect changes to them. This is in preparation of Bug 148415 as this will help detect unwanted changes to the interface when making NodeFilter a callback interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121349</commentid>
    <comment_count>1</comment_count>
      <attachid>260068</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 10:36:20 -0700</bug_when>
    <thetext>Created attachment 260068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121437</commentid>
    <comment_count>2</comment_count>
      <attachid>260068</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-27 14:39:04 -0700</bug_when>
    <thetext>Comment on attachment 260068
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121441</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 14:42:44 -0700</bug_when>
    <thetext>Committed r189059: &lt;http://trac.webkit.org/changeset/189059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121711</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-28 09:19:28 -0700</bug_when>
    <thetext>This produces an interesting test failure on Windows:

--- /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/node-filter-interface-expected.txt
+++ /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/node-filter-interface-actual.txt
@@ -10,7 +10,7 @@
 * FILTER_SKIP
 [Configurable: false, enumerable: true, writable: false, value: 3]
 * SHOW_ALL
-[Configurable: false, enumerable: true, writable: false, value: 4294967295]
+[Configurable: false, enumerable: true, writable: false, value: -1]
 * SHOW_ATTRIBUTE
 [Configurable: false, enumerable: true, writable: false, value: 2]
 * SHOW_CDATA_SECTION

It looks like Windows is using an unsigned value for whatever flag is being displayed here. Windows uses a signed value for enums by default -- is this flag an enum?

I might need to make sure the enum is typed as unsigned so the Windows build works properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121722</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-28 09:31:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; This produces an interesting test failure on Windows:
&gt; 
&gt; ---
&gt; /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/
&gt; node-filter-interface-expected.txt
&gt; +++
&gt; /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/
&gt; node-filter-interface-actual.txt
&gt; @@ -10,7 +10,7 @@
&gt;  * FILTER_SKIP
&gt;  [Configurable: false, enumerable: true, writable: false, value: 3]
&gt;  * SHOW_ALL
&gt; -[Configurable: false, enumerable: true, writable: false, value: 4294967295]
&gt; +[Configurable: false, enumerable: true, writable: false, value: -1]
&gt;  * SHOW_ATTRIBUTE
&gt;  [Configurable: false, enumerable: true, writable: false, value: 2]
&gt;  * SHOW_CDATA_SECTION
&gt; 
&gt; It looks like Windows is using an unsigned value for whatever flag is being
&gt; displayed here. Windows uses a signed value for enums by default -- is this
&gt; flag an enum?
&gt; 
&gt; I might need to make sure the enum is typed as unsigned so the Windows build
&gt; works properly.

Yes, it looks like a bad bug if NodeFilter.SHOW_ALL maps to -1 on Windows. It is supposed to be 0xFFFFFFFF as per the spec. It looks like we may need to tweak the following enum in NodeFilter.h to do the right thing on Windows as well:
enum {
        SHOW_ALL                       = 0xFFFFFFFF,
        SHOW_ELEMENT                   = 0x00000001,
        SHOW_ATTRIBUTE                 = 0x00000002,
        SHOW_TEXT                      = 0x00000004,
        SHOW_CDATA_SECTION             = 0x00000008,
        SHOW_ENTITY_REFERENCE          = 0x00000010,
        SHOW_ENTITY                    = 0x00000020,
        SHOW_PROCESSING_INSTRUCTION    = 0x00000040,
        SHOW_COMMENT                   = 0x00000080,
        SHOW_DOCUMENT                  = 0x00000100,
        SHOW_DOCUMENT_TYPE             = 0x00000200,
        SHOW_DOCUMENT_FRAGMENT         = 0x00000400,
        SHOW_NOTATION                  = 0x00000800
    };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121723</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-28 09:33:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; This produces an interesting test failure on Windows:
&gt; &gt; 
&gt; &gt; ---
&gt; &gt; /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/
&gt; &gt; node-filter-interface-expected.txt
&gt; &gt; +++
&gt; &gt; /home/buildbot/slave/win-release-tests/build/layout-test-results/fast/dom/
&gt; &gt; node-filter-interface-actual.txt
&gt; &gt; @@ -10,7 +10,7 @@
&gt; &gt;  * FILTER_SKIP
&gt; &gt;  [Configurable: false, enumerable: true, writable: false, value: 3]
&gt; &gt;  * SHOW_ALL
&gt; &gt; -[Configurable: false, enumerable: true, writable: false, value: 4294967295]
&gt; &gt; +[Configurable: false, enumerable: true, writable: false, value: -1]
&gt; &gt;  * SHOW_ATTRIBUTE
&gt; &gt;  [Configurable: false, enumerable: true, writable: false, value: 2]
&gt; &gt;  * SHOW_CDATA_SECTION
&gt; &gt; 
&gt; &gt; It looks like Windows is using an unsigned value for whatever flag is being
&gt; &gt; displayed here. Windows uses a signed value for enums by default -- is this
&gt; &gt; flag an enum?
&gt; &gt; 
&gt; &gt; I might need to make sure the enum is typed as unsigned so the Windows build
&gt; &gt; works properly.
&gt; 
&gt; Yes, it looks like a bad bug if NodeFilter.SHOW_ALL maps to -1 on Windows.
&gt; It is supposed to be 0xFFFFFFFF as per the spec. It looks like we may need
&gt; to tweak the following enum in NodeFilter.h to do the right thing on Windows
&gt; as well:
&gt; enum {
&gt;         SHOW_ALL                       = 0xFFFFFFFF,
&gt;         SHOW_ELEMENT                   = 0x00000001,
&gt;         SHOW_ATTRIBUTE                 = 0x00000002,
&gt;         SHOW_TEXT                      = 0x00000004,
&gt;         SHOW_CDATA_SECTION             = 0x00000008,
&gt;         SHOW_ENTITY_REFERENCE          = 0x00000010,
&gt;         SHOW_ENTITY                    = 0x00000020,
&gt;         SHOW_PROCESSING_INSTRUCTION    = 0x00000040,
&gt;         SHOW_COMMENT                   = 0x00000080,
&gt;         SHOW_DOCUMENT                  = 0x00000100,
&gt;         SHOW_DOCUMENT_TYPE             = 0x00000200,
&gt;         SHOW_DOCUMENT_FRAGMENT         = 0x00000400,
&gt;         SHOW_NOTATION                  = 0x00000800
&gt;     };

Are you able to try something like this?

diff --git a/Source/WebCore/dom/NodeFilter.h b/Source/WebCore/dom/NodeFilter.h
index 26f7663..061129a 100644
--- a/Source/WebCore/dom/NodeFilter.h
+++ b/Source/WebCore/dom/NodeFilter.h
@@ -53,7 +53,7 @@ public:
      * their values are derived by using a bit position corresponding
      * to the value of NodeType for the equivalent node type.
      */
-    enum {
+    enum : unsigned long {
         SHOW_ALL                       = 0xFFFFFFFF,
         SHOW_ELEMENT                   = 0x00000001,
         SHOW_ATTRIBUTE                 = 0x00000002,</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260068</attachid>
            <date>2015-08-27 10:36:20 -0700</date>
            <delta_ts>2015-08-27 14:40:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148531-20150827103608.patch</filename>
            <type>text/plain</type>
            <size>4186</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MDI4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDQyODE5MDQxMjFmM2MyZGQ2YzQz
NGY1YjQ3ZjJjOGU3NGNiNTU2Ni4uMjlhN2E5MjdlYmI5MDMzZTUxYTIxMjNjYWQyMTQyNDVjNjhk
NWM5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA4LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQgd2luZG93Lk5vZGVGaWx0ZXIgcHJv
cGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ4NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RG9jdW1lbnQgd2luZG93Lk5vZGVGaWx0ZXIgcHJvcGVydGllcyB0byBkZXRlY3QgY2hhbmdlcyB0
byB0aGVtLiBUaGlzCisgICAgICAgIGlzIGluIHByZXBhcmF0aW9uIG9mIEJ1ZyAxNDg0MTUgYXMg
dGhpcyB3aWxsIGhlbHAgZGV0ZWN0IHVud2FudGVkCisgICAgICAgIGNoYW5nZXMgdG8gdGhlIGlu
dGVyZmFjZSB3aGVuIG1ha2luZyBOb2RlRmlsdGVyIGEgY2FsbGJhY2sgaW50ZXJmYWNlLgorCisg
ICAgICAgICogZmFzdC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vbm9kZS1maWx0ZXItaW50ZXJmYWNlLmh0bWw6IEFkZGVk
LgorCiAyMDE1LTA4LTI3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhbiBleHBlY3RhdGlvbiBmb3IgYW5vdGhlciBtb21lbnR1bSBzY3JvbGxpbmcg
dGVzdCB0aGF0IGJlY2FtZSBmbGFreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L25vZGUtZmlsdGVyLWludGVyZmFjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1ODE2NDcw
YjRhYWQyNDVkMzA5ZjgxMmE1MTcyNjNkNDMwYjRlNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZpbHRlci1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNDcgQEAKK0xpc3QgTm9kZUZpbHRlcidzIHByb3BlcnRpZXMgdG8gZGV0ZWN0IGNoYW5n
ZXMgbWFrZSB0byBpdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyogRklMVEVS
X0FDQ0VQVAorW0NvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxl
OiBmYWxzZSwgdmFsdWU6IDFdCisqIEZJTFRFUl9SRUpFQ1QKK1tDb25maWd1cmFibGU6IGZhbHNl
LCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiAyXQorKiBGSUxURVJf
U0tJUAorW0NvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiBm
YWxzZSwgdmFsdWU6IDNdCisqIFNIT1dfQUxMCitbQ29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVy
YWJsZTogdHJ1ZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogNDI5NDk2NzI5NV0KKyogU0hPV19B
VFRSSUJVVEUKK1tDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJs
ZTogZmFsc2UsIHZhbHVlOiAyXQorKiBTSE9XX0NEQVRBX1NFQ1RJT04KK1tDb25maWd1cmFibGU6
IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiA4XQorKiBT
SE9XX0NPTU1FTlQKK1tDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0
YWJsZTogZmFsc2UsIHZhbHVlOiAxMjhdCisqIFNIT1dfRE9DVU1FTlQKK1tDb25maWd1cmFibGU6
IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiAyNTZdCisq
IFNIT1dfRE9DVU1FTlRfRlJBR01FTlQKK1tDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxl
OiB0cnVlLCB3cml0YWJsZTogZmFsc2UsIHZhbHVlOiAxMDI0XQorKiBTSE9XX0RPQ1VNRU5UX1RZ
UEUKK1tDb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCB3cml0YWJsZTogZmFs
c2UsIHZhbHVlOiA1MTJdCisqIFNIT1dfRUxFTUVOVAorW0NvbmZpZ3VyYWJsZTogZmFsc2UsIGVu
dW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDFdCisqIFNIT1dfRU5USVRZ
CitbQ29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IGZhbHNl
LCB2YWx1ZTogMzJdCisqIFNIT1dfRU5USVRZX1JFRkVSRU5DRQorW0NvbmZpZ3VyYWJsZTogZmFs
c2UsIGVudW1lcmFibGU6IHRydWUsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDE2XQorKiBTSE9X
X05PVEFUSU9OCitbQ29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFi
bGU6IGZhbHNlLCB2YWx1ZTogMjA0OF0KKyogU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OCitb
Q29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IGZhbHNlLCB2
YWx1ZTogNjRdCisqIFNIT1dfVEVYVAorW0NvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6
IHRydWUsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDRdCisqIGxlbmd0aAorW0NvbmZpZ3VyYWJs
ZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IDBdCisq
IG5hbWUKK1tDb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTog
ZmFsc2UsIHZhbHVlOiBOb2RlRmlsdGVyXQorKiBwcm90b3R5cGUKK1tDb25maWd1cmFibGU6IGZh
bHNlLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNlLCB2YWx1ZTogW29iamVjdCBO
b2RlRmlsdGVyUHJvdG90eXBlXV0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZp
bHRlci1pbnRlcmZhY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtZmlsdGVyLWlu
dGVyZmFjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1YjYyM2FiOGUxZjEwMWYyMzZiZjI2YjVhZjQ3NDcw
YTVmNzJlYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2RlLWZp
bHRlci1pbnRlcmZhY2UuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiTGlzdCBOb2RlRmlsdGVyJ3MgcHJv
cGVydGllcyB0byBkZXRlY3QgY2hhbmdlcyBtYWtlIHRvIGl0LiIpOworCitmdW5jdGlvbiBsb2dQ
cm9wZXJ0eURlc2NyaXB0b3IoZGVzY3JpcHRvcikgeworICAgIGRlYnVnKCJbQ29uZmlndXJhYmxl
OiAiICsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgKyAiLCBlbnVtZXJhYmxlOiAiICsgZGVzY3Jp
cHRvci5lbnVtZXJhYmxlICsgIiwgd3JpdGFibGU6ICIgKyBkZXNjcmlwdG9yLndyaXRhYmxlICsg
IiwgdmFsdWU6ICIgKyBkZXNjcmlwdG9yLnZhbHVlICsgIl0iKTsKK30KKwordmFyIHByb3BlcnRp
ZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhOb2RlRmlsdGVyKS5zb3J0KCk7Citmb3Ig
KHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICBkZWJ1ZygiKiAi
ICsgcHJvcGVydGllc1tpXSk7CisgICAgbG9nUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZUZpbHRlciwgcHJvcGVydGllc1tpXSkpOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="285257"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>