<?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>43204</bug_id>
          
          <creation_ts>2010-07-29 12:36:55 -0700</creation_ts>
          <short_desc>[GTK] Add symbol export macros to C++ DOM bindings</short_desc>
          <delta_ts>2014-04-08 18:39:37 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Ollivier">kevino</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257812</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-07-29 12:36:55 -0700</bug_when>
    <thetext>The C++ DOM bindings currently don&apos;t have macros to control their export, so on Windows or when using visibility hidden with GCC, these symbols won&apos;t be exposed by the WebKit shared library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257813</commentid>
    <comment_count>1</comment_count>
      <attachid>62976</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-07-29 12:40:00 -0700</bug_when>
    <thetext>Created attachment 62976
Adds export macro to C++ DOM bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257867</commentid>
    <comment_count>2</comment_count>
      <attachid>62976</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-29 14:02:19 -0700</bug_when>
    <thetext>Comment on attachment 62976
Adds export macro to C++ DOM bindings.

In general this looks fine, but I think you should better align the macros with the versions in JavaScriptCore/API/JSBase.h.
See JS_EXPORT as example, maybe add a comment to both files that the logic should stay in sync. The declspec(dllimport) vs. dllexport logic looks reversed compared to JSBase.h, is this intentional?

You should also grep if there are any other variations of these or similar macros throughout WebKit (WebCore/JavaScriptCore/WebKit).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257916</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-07-29 15:24:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 62976 [details])
&gt; In general this looks fine, but I think you should better align the macros with the versions in JavaScriptCore/API/JSBase.h.
&gt; See JS_EXPORT as example, maybe add a comment to both files that the logic should stay in sync. The declspec(dllimport) vs. dllexport logic looks reversed compared to JSBase.h, is this intentional?

I think I actually followed the macros in JavaScriptCore/config.h as a base since we use default symbol visibility on GCC and thus only needed Windows support. I added the GCC code later since I figured we should handle the case where people have hidden symbols by default on GCC. Changing the order, of course, is no problem (and avoids a extra check on defined(GCC)), and I&apos;ll go ahead and add the note too.

&gt; You should also grep if there are any other variations of these or similar macros throughout WebKit (WebCore/JavaScriptCore/WebKit).

Yeah, actually, I probably know about every place in the code that such defines exist at this point, as I&apos;ve had to delve into this quite a bit while working on #27551. :)

After getting #27551 taken care of, what I&apos;d actually like to do is come up with something like SYMBOL_EXPORT, defined using the JSBase.h logic, and have projects define WHATEVER_EXPORT to SYMBOL_EXPORT based whenever a symbol should be exported. The big question is where to define SYMBOL_EXPORT, though, in a way that it&apos;s pretty much universally available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257917</commentid>
    <comment_count>4</comment_count>
      <attachid>62999</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-07-29 15:25:31 -0700</bug_when>
    <thetext>Created attachment 62999
Updated patch implementing suggestions by Nikolas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258538</commentid>
    <comment_count>5</comment_count>
      <attachid>62999</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 22:19:43 -0700</bug_when>
    <thetext>Comment on attachment 62999
Updated patch implementing suggestions by Nikolas

Patch looks fine: Though I&apos;d suggest to add a new wtf/VisibilityMacros.h file or (wtf/ExportControl.h whatever you can come up with), that tries to unifies the existing macros.
I&apos;d feel more comfortable reviewing such a patch...

What do you think? Can you try it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258558</commentid>
    <comment_count>6</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2010-07-30 23:27:39 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 62999 [details])
&gt; Patch looks fine: Though I&apos;d suggest to add a new wtf/VisibilityMacros.h file or (wtf/ExportControl.h whatever you can come up with), that tries to unifies the existing macros.
&gt; I&apos;d feel more comfortable reviewing such a patch...
&gt; 
&gt; What do you think? Can you try it?

I would like to, at least at some point, but this issue is thornier than it looks on the surface. (Something I learned in #27551.) To use these macros pretty consistently throughout the codebase, we need to know for each ports which headers they allow a particular project to include, which headers they may (or may not) copy over from JSCore, etc., and we may also need to modify at least a couple of the ports&apos; build systems, particularly for things like JSCore&apos;s testAPI, which is supposed to only be able to access JSCore public API (JavaScriptCore/API) headers. As I was somewhat surprised to discover, several ports treat wtf as an internal implementation detail of JSCore, so in certain areas including headers from it will break some intentionally designed public / private separation. This is part of the reason we&apos;ve ended up with several duplications of these macros in the first place, and part of the reason that I&apos;m not 100% clear on how I&apos;d even go about implementing the solution.

Given the issues involved, I think the appropriate thing to do here is to file a new bug on the consistency issue and perhaps get some feedback on the idea and suggestions on how to handle it best. I think we should consider this patch by itself for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325921</commentid>
    <comment_count>7</comment_count>
      <attachid>62999</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-23 00:08:52 -0800</bug_when>
    <thetext>Comment on attachment 62999
Updated patch implementing suggestions by Nikolas

Please unify the preprocessor defines with JSC using WTF.  Code everywhere can depend on WTF.  We use it all over the place.  You just have to play some tricks with forwarding headers to get things to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998997</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 18:39:37 -0700</bug_when>
    <thetext>Pretty sure the C++ DOM bindings are gone now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62976</attachid>
            <date>2010-07-29 12:40:00 -0700</date>
            <delta_ts>2010-07-29 15:25:31 -0700</delta_ts>
            <desc>Adds export macro to C++ DOM bindings.</desc>
            <filename>DOMExport.patch</filename>
            <type>text/plain</type>
            <size>5387</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjQyOTkpCisrKyBXZWJLaXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTAtMDctMjkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5v
QHRoZW9sbGl2aWVycy5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN5bWJvbCBleHBvcnQgbWFjcm9zIHRvIEMrKyBET00gYmluZGluZ3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIwNAor
ICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9weXRob24vd2Vidmlldy5pOgorCisyMDEwLTA3
LTI5ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgorCiAgICAgICAg
IFt3eF0gQnVpbGQgZml4LCBhZGQgZmlsZSBtaXNzaW5nIGZyb20gRE9NIGJpbmRpbmdzIGNvbW1p
dC4KICAgICAgICAgCiAgICAgICAgICogV2ViRWRpdC5jcHA6IEFkZGVkLgpJbmRleDogV2ViS2l0
L3d4L2JpbmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L2Jp
bmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkJKHJldmlzaW9uIDY0Mjk3KQorKysgV2ViS2l0L3d4L2Jp
bmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJXZWJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0LmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJET01EZWZpbmVzLmgiCiAjaW5jbHVkZSAi
V2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAKQEAgLTEwMCw2ICsxMDEsNyBA
QAogTXVzdEhhdmVBcHAod3hXZWJGcmFtZSk7CiBNdXN0SGF2ZUFwcCh3eFdlYlZpZXcpOwogCisl
aW5jbHVkZSBXZWJET01EZWZpbmVzLmgKICVpbmNsdWRlIFdlYktpdERlZmluZXMuaAogCiAlaW5j
bHVkZSBXZWJET01PYmplY3QuaApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0Mjk5KQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNy0yOSAgS2V2aW4gT2xs
aXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ltYm9sIGV4cG9ydCBtYWNyb3MgdG8gQysr
IERPTSBiaW5kaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzMjA0CisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01EZWZp
bmVzLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQ
UC5wbToKKyAgICAgICAgKiB3c2NyaXB0OgorCiAyMDEwLTA3LTI5ICBWaWN0b3IgV2FuZyAgPHZp
Y3RvcndAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2
NDI3MC4KSW5kZXg6IFdlYkNvcmUvd3NjcmlwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dzY3Jp
cHQJKHJldmlzaW9uIDY0Mjk3KQorKysgV2ViQ29yZS93c2NyaXB0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNzUsNyArMTc1LDcgQEAKICAgICAgICAgaW5jbHVkZXMgPSAnICcuam9pbih3a19pbmNsdWRl
cyksCiAgICAgICAgIHNvdXJjZSA9ICcgJy5qb2luKGZsYXR0ZW5Tb3VyY2VzKHdlYmNvcmVfc291
cmNlcy52YWx1ZXMoKSkpLAogICAgICAgICBjeHhmbGFncyA9IGN4eGZsYWdzLAotICAgICAgICBk
ZWZpbmVzID0gWydXWE1BS0lOR0RMTF9XRUJLSVQnXSwKKyAgICAgICAgZGVmaW5lcyA9IFsnQlVJ
TERJTkdfV2ViQ29yZSddLAogICAgICAgICB0YXJnZXQgPSAnd2ViY29yZScsCiAgICAgICAgIHVz
ZWxpYiA9ICdXWCBJQ1UgWE1MIFhTTFQgQ1VSTCBTUUxJVEUzICcgKyBnZXRfY29uZmlnKCksCiAg
ICAgICAgIHVzZWxpYl9sb2NhbCA9ICcnLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2Vi
RE9NRGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTURl
ZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTURlZmlu
ZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CisgKgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorI2lmbmRlZiBXZWJET01EZWZpbmVzX2gKKyNkZWZp
bmUgV2ViRE9NRGVmaW5lc19oCisKKy8vIFNXSUcgaXMgZGVmaW5lZCB3aGVuIHdlIGFyZSBnZW5l
cmF0aW5nIFB5dGhvbiwgZXRjLiB3cmFwcGVycyBmb3IgdGhlc2UgY2xhc3NlcworI2lmbmRlZiBT
V0lHCisKKyNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQo
X19HTlVDX18pCisjaWYgZGVmaW5lZChCVUlMRElOR19XZWJDb3JlKQorI2RlZmluZSBXRUJET01f
RVhQT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2Vsc2UKKyNkZWZpbmUgV0VCRE9NX0VYUE9S
VCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykg
JiYgIWRlZmluZWQoX19DQ19BUk0pICYmICFkZWZpbmVkKF9fQVJNQ0NfXykKKyNkZWZpbmUgV0VC
RE9NX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UK
KyNkZWZpbmUgV0VCRE9NX0VYUE9SVAorI2VuZGlmCisKKyNlbHNlCisjZGVmaW5lIFdFQkRPTV9F
WFBPUlQKKyNlbmRpZiAvLyBTV0lHCisKKyNlbmRpZiAvLyBXZWJET01EZWZpbmVzX2gKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCShyZXZpc2lv
biA2NDI5NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjQsMTMgKzM2NCwxNCBAQAogICAgICMgLSBJTkNMVURFUyAt
CiAKICAgICBteSAlaGVhZGVySW5jbHVkZXMgPSAoKTsKKyAgICAkaGVhZGVySW5jbHVkZXN7Ildl
YkRPTURlZmluZXMuaCJ9ID0gMTsKICAgICAkaGVhZGVySW5jbHVkZXN7IldlYkRPTVN0cmluZy5o
In0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siJHBhcmVudE5hbWUuaCJ9ID0gMTsKICAgICBm
b3JlYWNoIG15ICRpbmNsdWRlIChzb3J0IGtleXMoJWhlYWRlckluY2x1ZGVzKSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgPCRpbmNsdWRlPlxuIik7CiAg
ICAgfQogCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRjbGFzc05hbWUiKTsKKyAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgV0VCRE9NX0VYUE9SVCAkY2xhc3NOYW1lIik7
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiA6IHB1YmxpYyAkcGFyZW50TmFtZSIpIGlmICRw
YXJlbnROYW1lOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIge1xuIik7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwo=
</data>
<flag name="review"
          id="51250"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62999</attachid>
            <date>2010-07-29 15:25:31 -0700</date>
            <delta_ts>2010-12-23 00:08:51 -0800</delta_ts>
            <desc>Updated patch implementing suggestions by Nikolas</desc>
            <filename>DOMExport2.patch</filename>
            <type>text/plain</type>
            <size>5591</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjQyOTkpCisrKyBXZWJLaXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTAtMDctMjkgIEtldmluIE9sbGl2aWVyICA8a2V2aW5v
QHRoZW9sbGl2aWVycy5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN5bWJvbCBleHBvcnQgbWFjcm9zIHRvIEMrKyBET00gYmluZGluZ3Mu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzIwNAor
ICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9weXRob24vd2Vidmlldy5pOgorCisyMDEwLTA3
LTI5ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgorCiAgICAgICAg
IFt3eF0gQnVpbGQgZml4LCBhZGQgZmlsZSBtaXNzaW5nIGZyb20gRE9NIGJpbmRpbmdzIGNvbW1p
dC4KICAgICAgICAgCiAgICAgICAgICogV2ViRWRpdC5jcHA6IEFkZGVkLgpJbmRleDogV2ViS2l0
L3d4L2JpbmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L2Jp
bmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkJKHJldmlzaW9uIDY0Mjk3KQorKysgV2ViS2l0L3d4L2Jp
bmRpbmdzL3B5dGhvbi93ZWJ2aWV3LmkJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJXZWJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0LmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJET01EZWZpbmVzLmgiCiAjaW5jbHVkZSAi
V2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAKQEAgLTEwMCw2ICsxMDEsNyBA
QAogTXVzdEhhdmVBcHAod3hXZWJGcmFtZSk7CiBNdXN0SGF2ZUFwcCh3eFdlYlZpZXcpOwogCisl
aW5jbHVkZSBXZWJET01EZWZpbmVzLmgKICVpbmNsdWRlIFdlYktpdERlZmluZXMuaAogCiAlaW5j
bHVkZSBXZWJET01PYmplY3QuaApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0Mjk5KQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNy0yOSAgS2V2aW4gT2xs
aXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ltYm9sIGV4cG9ydCBtYWNyb3MgdG8gQysr
IERPTSBiaW5kaW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzMjA0CisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL2NwcC9XZWJET01EZWZp
bmVzLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQ
UC5wbToKKyAgICAgICAgKiB3c2NyaXB0OgorCiAyMDEwLTA3LTI5ICBWaWN0b3IgV2FuZyAgPHZp
Y3RvcndAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2
NDI3MC4KSW5kZXg6IFdlYkNvcmUvd3NjcmlwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dzY3Jp
cHQJKHJldmlzaW9uIDY0Mjk3KQorKysgV2ViQ29yZS93c2NyaXB0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNzUsNyArMTc1LDcgQEAKICAgICAgICAgaW5jbHVkZXMgPSAnICcuam9pbih3a19pbmNsdWRl
cyksCiAgICAgICAgIHNvdXJjZSA9ICcgJy5qb2luKGZsYXR0ZW5Tb3VyY2VzKHdlYmNvcmVfc291
cmNlcy52YWx1ZXMoKSkpLAogICAgICAgICBjeHhmbGFncyA9IGN4eGZsYWdzLAotICAgICAgICBk
ZWZpbmVzID0gWydXWE1BS0lOR0RMTF9XRUJLSVQnXSwKKyAgICAgICAgZGVmaW5lcyA9IFsnQlVJ
TERJTkdfV2ViQ29yZSddLAogICAgICAgICB0YXJnZXQgPSAnd2ViY29yZScsCiAgICAgICAgIHVz
ZWxpYiA9ICdXWCBJQ1UgWE1MIFhTTFQgQ1VSTCBTUUxJVEUzICcgKyBnZXRfY29uZmlnKCksCiAg
ICAgICAgIHVzZWxpYl9sb2NhbCA9ICcnLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2Vi
RE9NRGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTURl
ZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTURlZmlu
ZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CisgKgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorI2lmbmRlZiBXZWJET01EZWZpbmVzX2gKKyNkZWZp
bmUgV2ViRE9NRGVmaW5lc19oCisKKy8vIFNXSUcgaXMgZGVmaW5lZCB3aGVuIHdlIGFyZSBnZW5l
cmF0aW5nIFB5dGhvbiwgZXRjLiB3cmFwcGVycyBmb3IgdGhlc2UgY2xhc3NlcworI2lmbmRlZiBT
V0lHCisKKy8vIHRoaXMgbG9naWMgZm9sbG93cyB0aGUgSlNCYXNlLmggSlNfRVhQT1JUIGxvZ2lj
LCBhbmQgdXBkYXRlcyB0byBpdCBzaG91bGQgYWxzbworLy8gYmUgbWFkZSBoZXJlLgorCisjaWYg
ZGVmaW5lZChXRUJET01fTk9fRVhQT1JUKQorICAgICNkZWZpbmUgV0VCRE9NX0VYUE9SVAorI2Vs
aWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19DQ19BUk0pICYmICFkZWZpbmVkKF9f
QVJNQ0NfXykKKyAgICAjZGVmaW5lIFdFQkRPTV9FWFBPUlQgX19hdHRyaWJ1dGVfXygodmlzaWJp
bGl0eSgiZGVmYXVsdCIpKSkKKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMy
KSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICAgI2lmIGRlZmluZWQoQlVJTERJTkdfV2ViQ29y
ZSkKKyAgICAgICAgI2RlZmluZSBXRUJET01fRVhQT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQor
ICAgICNlbHNlCisgICAgICAgICNkZWZpbmUgV0VCRE9NX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGV4
cG9ydCkKKyAgICAjZW5kaWYKKyNlbHNlCisgICAgI2RlZmluZSBXRUJET01fRVhQT1JUCisjZW5k
aWYKKworI2Vsc2UKKyAgICAjZGVmaW5lIFdFQkRPTV9FWFBPUlQKKyNlbmRpZiAvLyBTV0lHCisK
KyNlbmRpZiAvLyBXZWJET01EZWZpbmVzX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCShyZXZpc2lvbiA2NDI5NykKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQs
MTMgKzM2NCwxNCBAQAogICAgICMgLSBJTkNMVURFUyAtCiAKICAgICBteSAlaGVhZGVySW5jbHVk
ZXMgPSAoKTsKKyAgICAkaGVhZGVySW5jbHVkZXN7IldlYkRPTURlZmluZXMuaCJ9ID0gMTsKICAg
ICAkaGVhZGVySW5jbHVkZXN7IldlYkRPTVN0cmluZy5oIn0gPSAxOwogICAgICRoZWFkZXJJbmNs
dWRlc3siJHBhcmVudE5hbWUuaCJ9ID0gMTsKICAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChzb3J0
IGtleXMoJWhlYWRlckluY2x1ZGVzKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVh
ZGVyLCAiI2luY2x1ZGUgPCRpbmNsdWRlPlxuIik7CiAgICAgfQogCi0gICAgcHVzaChAaGVhZGVy
Q29udGVudCwgImNsYXNzICRjbGFzc05hbWUiKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
Y2xhc3MgV0VCRE9NX0VYUE9SVCAkY2xhc3NOYW1lIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiA6IHB1YmxpYyAkcGFyZW50TmFtZSIpIGlmICRwYXJlbnROYW1lOwogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIge1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpc
biIpOwo=
</data>
<flag name="review"
          id="51279"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>