<?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>45779</bug_id>
          
          <creation_ts>2010-09-14 13:45:25 -0700</creation_ts>
          <short_desc>Exceptions are getting ignored on 64-bit Windows in the Web Process</short_desc>
          <delta_ts>2010-09-14 15:04:27 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>aroben</cc>
    
    <cc>jberlin</cc>
    
    <cc>sfalken</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>279138</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-09-14 13:45:25 -0700</bug_when>
    <thetext>We should clear the PROCESS_CALLBACK_FILTER_ENABLED flag. Right now, it is not cleared, so exceptions thrown in callback routines are ignored, allowing the Web Process to enter into an inconsistent state and possibly resulting in a different exception.

In order to make this effective, hotfix 976038 (http://support.microsoft.com/kb/976038) will need to be installed on the 64 bit machines in question, so we should add that information to the tools.html page as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279149</commentid>
    <comment_count>1</comment_count>
      <attachid>67602</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-09-14 14:01:05 -0700</bug_when>
    <thetext>Created attachment 67602
Clear the PROCESS_CALLBACK_FILTER_ENABLED flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279166</commentid>
    <comment_count>2</comment_count>
      <attachid>67602</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-09-14 14:15:29 -0700</bug_when>
    <thetext>Comment on attachment 67602
Clear the PROCESS_CALLBACK_FILTER_ENABLED flag

View in context: https://bugs.webkit.org/attachment.cgi?id=67602&amp;action=prettypatch

&gt; WebKit2/WebProcess/WebKitMain.cpp:82
&gt; +static void disableProcessCallbackFilterForExceptions()
I think disableUserModeCallbackExceptionFilter would be a clearer name.

&gt; WebKit2/WebProcess/WebKitMain.cpp:84
&gt; +    DWORD dwFlags;
You should move this declaration to just before it&apos;s used.

&gt; WebKit2/WebProcess/WebKitMain.cpp:104
&gt; +    setPolicyPtr(dwFlags &amp; ~0x1);
I think you should make a named constant for 0x1.

It would probably be useful to link to &lt;http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-the-disappearing-onload-exception-user-mode-callback-exceptions-in-x64/&gt;, at least in your ChangeLog.

&gt; WebKitSite/building/tools.html:63
&gt; +&lt;li&gt;&lt;p&gt;Optional: Hotfix for 64-bit Windows to disable the process callback filter for exceptions&lt;/p&gt;
I&apos;d say &quot;user-mode&quot; instead of &quot;process&quot; here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279177</commentid>
    <comment_count>3</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-09-14 14:34:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 67602 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67602&amp;action=prettypatch
&gt; 
&gt; &gt; WebKit2/WebProcess/WebKitMain.cpp:82
&gt; &gt; +static void disableProcessCallbackFilterForExceptions()
&gt; I think disableUserModeCallbackExceptionFilter would be a clearer name.

Changed.

&gt; 
&gt; &gt; WebKit2/WebProcess/WebKitMain.cpp:84
&gt; &gt; +    DWORD dwFlags;
&gt; You should move this declaration to just before it&apos;s used.

Moved to right above the if statement.

&gt; 
&gt; &gt; WebKit2/WebProcess/WebKitMain.cpp:104
&gt; &gt; +    setPolicyPtr(dwFlags &amp; ~0x1);
&gt; I think you should make a named constant for 0x1.

Added a #define PROCESS_CALLBACK_FILTER_ENABLED 0x1 closer to the top of the file so that it matches the documentation.

&gt; 
&gt; It would probably be useful to link to &lt;http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-the-disappearing-onload-exception-user-mode-callback-exceptions-in-x64/&gt;, at least in your ChangeLog.
&gt; 

Put it both in the ChangeLog and in the comment in the function.

&gt; &gt; WebKitSite/building/tools.html:63
&gt; &gt; +&lt;li&gt;&lt;p&gt;Optional: Hotfix for 64-bit Windows to disable the process callback filter for exceptions&lt;/p&gt;
&gt; I&apos;d say &quot;user-mode&quot; instead of &quot;process&quot; here.

Changed.

&gt; 
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279198</commentid>
    <comment_count>4</comment_count>
      <attachid>67602</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-09-14 15:04:21 -0700</bug_when>
    <thetext>Comment on attachment 67602
Clear the PROCESS_CALLBACK_FILTER_ENABLED flag

Committed in r67501
http://trac.webkit.org/changeset/67501</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67602</attachid>
            <date>2010-09-14 14:01:05 -0700</date>
            <delta_ts>2010-09-14 15:04:21 -0700</delta_ts>
            <desc>Clear the PROCESS_CALLBACK_FILTER_ENABLED flag</desc>
            <filename>clearProcessCallbackFilterEnabledFlag.patch</filename>
            <type>text/plain</type>
            <size>4490</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQ5MCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMTQgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBF
eGNlcHRpb25zIGFyZSBnZXR0aW5nIGlnbm9yZWQgb24gNjQtYml0IFdpbmRvd3MgaW4gdGhlIFdl
YiBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTc3OQorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJLaXRNYWluLmNwcDoKKyAgICAgICAg
KGRpc2FibGVQcm9jZXNzQ2FsbGJhY2tGaWx0ZXJGb3JFeGNlcHRpb25zKToKKyAgICAgICAgQ2xl
YXIgdGhlIFBST0NFU1NfQ0FMTEJBQ0tfRklMVEVSX0VOQUJMRUQgZmxhZyBzbyB0aGF0IGV4Y2Vw
dGlvbnMgdGhyb3duIGluIGNhbGxiYWNrIHJvdXRpbmVzCisgICAgICAgIGFyZSBub3QgaWdub3Jl
ZCwgYXMgZGVzY3JpYmVkIGluIGh0dHA6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvOTc2MDM4
CisgICAgICAgIChXZWJLaXRNYWluKToKKwogMjAxMC0wOS0xNCAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIGNoYW5nZXMgcjY3
NDUxIGFuZCByNjc0NTEuCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViS2l0TWFpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYktpdE1haW4uY3BwCShyZXZpc2lv
biA2NzQ3MykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJLaXRNYWluLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzksNiArNzksMzMgQEAgc3RhdGljIHZvaWQgZW5hYmxlVGVybWluYXRpb25Pbkhl
YXBDb3JydQogICAgIGhlYXBTZXRJbmZvcm1hdGlvbigwLCBoZWFwRW5hYmxlVGVybWluYXRpb25P
bkNvcnJ1cHRpb24sIDAsIDApOwogfQogCitzdGF0aWMgdm9pZCBkaXNhYmxlUHJvY2Vzc0NhbGxi
YWNrRmlsdGVyRm9yRXhjZXB0aW9ucygpCit7CisgICAgRFdPUkQgZHdGbGFnczsKKworICAgIHR5
cGVkZWYgQk9PTCAoTlRBUEkgKmdldFByb2Nlc3NVc2VyTW9kZUV4Y2VwdGlvblBvbGljeVB0ciko
TFBEV09SRCBscEZsYWdzKTsKKyAgICB0eXBlZGVmIEJPT0wgKE5UQVBJICpzZXRQcm9jZXNzVXNl
ck1vZGVFeGNlcHRpb25Qb2xpY3lQdHIpKERXT1JEIGR3RmxhZ3MpOworCisgICAgSE1PRFVMRSBs
aWIgPSBMb2FkTGlicmFyeShURVhUKCJrZXJuZWwzMi5kbGwiKSk7CisgICAgQVNTRVJUKGxpYik7
CisKKyAgICBnZXRQcm9jZXNzVXNlck1vZGVFeGNlcHRpb25Qb2xpY3lQdHIgZ2V0UG9saWN5UHRy
ID0gKGdldFByb2Nlc3NVc2VyTW9kZUV4Y2VwdGlvblBvbGljeVB0cilHZXRQcm9jQWRkcmVzcyhs
aWIsICJHZXRQcm9jZXNzVXNlck1vZGVFeGNlcHRpb25Qb2xpY3kiKTsKKyAgICBzZXRQcm9jZXNz
VXNlck1vZGVFeGNlcHRpb25Qb2xpY3lQdHIgc2V0UG9saWN5UHRyID0gKHNldFByb2Nlc3NVc2Vy
TW9kZUV4Y2VwdGlvblBvbGljeVB0cilHZXRQcm9jQWRkcmVzcyhsaWIsICJTZXRQcm9jZXNzVXNl
ck1vZGVFeGNlcHRpb25Qb2xpY3kiKTsKKworICAgIGlmICghZ2V0UG9saWN5UHRyIHx8ICFzZXRQ
b2xpY3lQdHIgfHwgIWdldFBvbGljeVB0cigmZHdGbGFncykpIHsKKyAgICAgICAgRnJlZUxpYnJh
cnkobGliKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoaXMgZmxhZyBp
c24ndCBjbGVhcmVkLCBleGNlcHRpb25zIHRoYXQgYXJlIHRocm93biB3aGVuIHJ1bm5pbmcgaW4g
YSA2NC1iaXQgdmVyc2lvbiBvZgorICAgIC8vIFdpbmRvd3MgYXJlIGlnbm9yZWQsIHBvc3NpYmx5
IGxlYXZpbmcgU2FmYXJpIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSB0aGF0IGNvdWxkIGNhdXNl
IGFuIAorICAgIC8vIHVucmVsYXRlZCBleGNlcHRpb24gdG8gYmUgdGhyb3duLgorICAgIC8vIGh0
dHA6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvOTc2MDM4CisgICAgc2V0UG9saWN5UHRyKGR3
RmxhZ3MgJiB+MHgxKTsKKworICAgIEZyZWVMaWJyYXJ5KGxpYik7Cit9CisKIGV4dGVybiAiQyIg
X19kZWNsc3BlYyhkbGxleHBvcnQpIAogaW50IFdlYktpdE1haW4oSElOU1RBTkNFIGhJbnN0YW5j
ZSwgSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UsIExQVFNUUiBscHN0ckNtZExpbmUsIGludCBuQ21k
U2hvdykKIHsKQEAgLTkyLDYgKzExOSw4IEBAIGludCBXZWJLaXRNYWluKEhJTlNUQU5DRSBoSW5z
dGFuY2UsIEhJTlMKIAogICAgIGVuYWJsZVRlcm1pbmF0aW9uT25IZWFwQ29ycnVwdGlvbigpOwog
CisgICAgZGlzYWJsZVByb2Nlc3NDYWxsYmFja0ZpbHRlckZvckV4Y2VwdGlvbnMoKTsKKwogICAg
IENvbW1hbmRMaW5lIGNvbW1hbmRMaW5lOwogICAgIGlmICghY29tbWFuZExpbmUucGFyc2UobHBz
dHJDbWRMaW5lKSkKICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKSW5kZXg6IFdlYktpdFNp
dGUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFNpdGUvQ2hhbmdlTG9nCShyZXZpc2lv
biA2NzQ5MCkKKysrIFdlYktpdFNpdGUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTAtMDktMTQgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeGNlcHRp
b25zIGFyZSBnZXR0aW5nIGlnbm9yZWQgb24gNjQtYml0IFdpbmRvd3MgaW4gdGhlIFdlYiBQcm9j
ZXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU3
NzkKKworICAgICAgICAqIGJ1aWxkaW5nL3Rvb2xzLmh0bWw6CisgICAgICAgIEFkZCBpbnN0cnVj
dGlvbnMgYWJvdXQgaG93IHRvIG9wdGlvbmFsbHkgZ2V0IGhvdGZpeCA5NzYwMzguCisKIDIwMTAt
MDktMDYgIFJvYmluIFFpdSAgPHJvYmluLnFpdUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdFNpdGUvYnVpbGRpbmcvdG9v
bHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRTaXRlL2J1aWxkaW5nL3Rvb2xzLmh0bWwJKHJl
dmlzaW9uIDY3NDczKQorKysgV2ViS2l0U2l0ZS9idWlsZGluZy90b29scy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC02MCw2ICs2MCw4IEBAIEtlZXAgYWxsIHRoZSBkZWZhdWx0IG9wdGlvbnMgYW5k
IGNsaWNrIDwKIAogPGxpPjxwPk9wdGlvbmFsOiBJbnN0YWxsIHRoZSAzMi1iaXQgdmVyc2lvbiBv
ZiBEZWJ1Z2dpbmcgVG9vbHMgZm9yIFdpbmRvd3M8L3A+CiA8cD5EZWJ1Z2dpbmcgVG9vbHMgZm9y
IFdpbmRvd3MgaW5jbHVkZXMgbWFueSB1c2VmdWwgZGVidWdnaW5nIHRvb2xzIHN1Y2ggYXMgV2lu
RGJnIGFuZCBOVFNELiBTb21lIG9mIFdlYktpdCZyc3F1bztzIHRlc3RzIGFuZCBzY3JpcHRzIHVz
ZSB0aGVzZSB0b29scy4gRm9sbG93IHRoZSA8YSB0YXJnZXQ9Imluc3RhbGx0b29scyIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3doZGMvZGV2dG9vbHMvZGVidWdnaW5nL2luc3RhbGx4
ODYubXNweCNiIj5pbnN0cnVjdGlvbnMgZm9yIGluc3RhbGxpbmcgdGhlIDMyLWJpdCB2ZXJzaW9u
IG9mIERlYnVnZ2luZyBUb29scyBmb3IgV2luZG93czwvYT4uPC9wPgorPGxpPjxwPk9wdGlvbmFs
OiBIb3RmaXggZm9yIDY0LWJpdCBXaW5kb3dzIHRvIGRpc2FibGUgdGhlIHByb2Nlc3MgY2FsbGJh
Y2sgZmlsdGVyIGZvciBleGNlcHRpb25zPC9wPgorPHA+V2l0aG91dCB0aGUgPGEgaHJlZj0iaHR0
cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi85NzYwMzgiPjk3NjAzOCBob3RmaXg8L2E+LCBl
eGNlcHRpb25zIG1heSBiZSB0aHJvd24gaW4gY2FsbGJhY2sgcm91dGluZXMgdGhhdCBkbyBub3Qg
Y2F1c2UgYSBjcmFzaCBidXQgbGVhdmUgdGhlIGFwcGxpY2F0aW9uIGluIGFuIGluY29uc2lzdGVu
dCBzdGF0ZSB0aGF0IG1pZ2h0IGNhdXNlIGEgY3Jhc2ggbGF0ZXIuIFlvdSB3aWxsIG5lZWQgdG8g
Y2xpY2sgb24gIlZpZXcgYW5kIHJlcXVlc3QgaG90Zml4IGRvd25sb2FkcyIgYW5kIGZpbGwgb3V0
IHRoZSBmb3JtLiBBIGxpbmsgdG8gZG93bmxvYWQgdGhlIGhvdGZpeCBhbmQgYSBwYXNzd29yZCB3
aWxsIGJlIGVtYWlsZWQgdG8geW91LjwvcD4KIDwvb2w+CiA8L2Rpdj4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>