<?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>25729</bug_id>
          
          <creation_ts>2009-05-12 09:07:13 -0700</creation_ts>
          <short_desc>Alt-clicking a link doesn&apos;t start a download</short_desc>
          <delta_ts>2009-05-29 14:43:20 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>120870</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:07:13 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://webkit.org/
2. Alt-click on &quot;Install developer tools&quot;

Nothing happens. The contents of the URL linked to by &quot;Install developer tools&quot; should be downloaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120871</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:07:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/6879075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120875</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:27:05 -0700</bug_when>
    <thetext>I don&apos;t believe this is a regression.

There seem to be two parts to this bug:

1) WebKit isn&apos;t telling Safari that the Alt key is pressed when the link is hovered or clicked
   - This is due to a bug in PlatformKeyEvent
2) Once (1) is fixed, Safari tells WebKit to download the resource, but WebKit fails to start a download
  - This is due to WebFrame::startDownload being unimplemented</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120877</commentid>
    <comment_count>3</comment_count>
      <attachid>30235</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:29:14 -0700</bug_when>
    <thetext>Created attachment 30235
[1/3] refactor downloading code in WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120878</commentid>
    <comment_count>4</comment_count>
      <attachid>30236</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:29:32 -0700</bug_when>
    <thetext>Created attachment 30236
[2/3] Include MK_ALT in the modifier flags when the Alt key is pressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120879</commentid>
    <comment_count>5</comment_count>
      <attachid>30237</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:29:48 -0700</bug_when>
    <thetext>Created attachment 30237
[3/3] Implement WebFrame::startDownload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120880</commentid>
    <comment_count>6</comment_count>
      <attachid>30236</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-12 09:33:32 -0700</bug_when>
    <thetext>Comment on attachment 30236
[2/3] Include MK_ALT in the modifier flags when the Alt key is pressed

Seems strange that we have to do this. Normally the job of PlatformEvent classes is to convert the event from the platform-specific to the platform-independent form. Having it change the modifier flags that came from the platform-native event seems outside its responsibilities. I&apos;d expect clients to use m_altKey and not m_modifierFlags.

r=me though</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120881</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:37:20 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 30236 [review])
&gt; Seems strange that we have to do this. Normally the job of PlatformEvent
&gt; classes is to convert the event from the platform-specific to the
&gt; platform-independent form. Having it change the modifier flags that came from
&gt; the platform-native event seems outside its responsibilities. I&apos;d expect
&gt; clients to use m_altKey and not m_modifierFlags.

m_modifierFlags seems only to be used when calling ChromeClient::mouseDidMoveOverElement. We could get rid of m_modifierFlags entirely and have Chrome build up the set of flags itself based on the PlatformKeyEvent&apos;s other members (like m_altKey).

Thanks for the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120882</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-12 09:42:26 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; m_modifierFlags seems only to be used when calling
&gt; ChromeClient::mouseDidMoveOverElement. We could get rid of m_modifierFlags
&gt; entirely and have Chrome build up the set of flags itself based on the
&gt; PlatformKeyEvent&apos;s other members (like m_altKey).

We should eliminate m_modifierFlags as soon as possible.

I&apos;m not sure what the best way to pass these flags over to the ChromeClient is. Sending them over as a modifier flags word seems strange when that&apos;s the only place in all the code where we have the concept of modifier flags. If they are sent as a flags word, recipients might expect them to include various platform-specific flags. Maybe we can send something better than a flags word. Maybe the DOM mouse moved event? Or a set of booleans? I&apos;d be hesitant to pass something over called modifierFlags that was similar but not the same to actual platform-specific modifier flags extracted from the platform-specific event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120885</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-12 09:53:48 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; m_modifierFlags seems only to be used when calling
&gt; &gt; ChromeClient::mouseDidMoveOverElement. We could get rid of m_modifierFlags
&gt; &gt; entirely and have Chrome build up the set of flags itself based on the
&gt; &gt; PlatformKeyEvent&apos;s other members (like m_altKey).
&gt; 
&gt; We should eliminate m_modifierFlags as soon as possible.

Sounds good to me. Luckily on the WebKit/mac and WebKit/win actually use the modifierFlags, so eliminating them shouldn&apos;t be too hard in terms of preserving existing behavior.

&gt; I&apos;m not sure what the best way to pass these flags over to the ChromeClient is.
&gt; Sending them over as a modifier flags word seems strange when that&apos;s the only
&gt; place in all the code where we have the concept of modifier flags. If they are
&gt; sent as a flags word, recipients might expect them to include various
&gt; platform-specific flags. Maybe we can send something better than a flags word.
&gt; Maybe the DOM mouse moved event? Or a set of booleans? I&apos;d be hesitant to pass
&gt; something over called modifierFlags that was similar but not the same to actual
&gt; platform-specific modifier flags extracted from the platform-specific event.

Passing the DOM event would probably require non-trivial code changes to WebCore. Passing the PlatformMouseEvent would be trivial. Passing a set of booleans would also be trivial, but seems less good than passing the PlatformMouseEvent. I agree that passing something called modifierFlags would not be ideal.

One potential problem is that m_modifierFlags contains information that PlatformMouseEvent&apos;s other members do not (e.g., only m_modifierFlags records whether NSFunctionKeyMask was included in the original NSEvent). If we need to preserve that information we&apos;ll probably need to add more members to PlatformMouseEvent (and MouseEvent, if we decide to pass a DOM event up to ChromeClient).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120887</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-12 09:59:48 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; One potential problem is that m_modifierFlags contains information that
&gt; PlatformMouseEvent&apos;s other members do not (e.g., only m_modifierFlags records
&gt; whether NSFunctionKeyMask was included in the original NSEvent). If we need to
&gt; preserve that information we&apos;ll probably need to add more members to
&gt; PlatformMouseEvent (and MouseEvent, if we decide to pass a DOM event up to
&gt; ChromeClient).

There seem to be two options here:

    1) Preserve any needed information like NSFunctionKeyMask in a specific more-platform-independent way in the PlatformEvent object.

    2) Preserve the original actual raw platform-specific event and have the client get at that through the PlatformEvent.

I slightly prefer (1) over (2).

A separate issue is that over time I&apos;d love to see the DOM event object be the only one clients have to deal with. PlatformEvent seems more suitable for internal use but I&apos;d prefer it not be used in the WebKit level (just in WebCore). One advantage of just passing a modifier flags word is that it exposes less of the PlatformEvent class details, which is good if we want to keep it out of the WebKit level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122125</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-05-20 04:44:59 -0700</bug_when>
    <thetext>Have these patches been landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122166</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-20 08:14:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Have these patches been landed?

They haven&apos;t. I&apos;ll make sure to land them this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123602</commentid>
    <comment_count>13</comment_count>
      <attachid>30236</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-29 13:46:28 -0700</bug_when>
    <thetext>Comment on attachment 30236
[2/3] Include MK_ALT in the modifier flags when the Alt key is pressed

After thinking some more about Darin&apos;s comments in comment 6, I&apos;ve decided it&apos;s probably better to keep m_modiferFlags exactly the same as what was received in the WM_MOUSEMOVE event. Then the client (i.e., Safari) can just handle checking for Alt on its own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123606</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-29 13:54:48 -0700</bug_when>
    <thetext>Landed as r44271 and r44273.

http://trac.webkit.org/changeset/44271
http://trac.webkit.org/changeset/44273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123617</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-05-29 14:43:20 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 30236 [review])
&gt; After thinking some more about Darin&apos;s comments in comment 6, I&apos;ve decided it&apos;s
&gt; probably better to keep m_modiferFlags exactly the same as what was received in
&gt; the WM_MOUSEMOVE event. Then the client (i.e., Safari) can just handle checking
&gt; for Alt on its own.

It turns out that with just landing attachment 30235 and attachment 30237, Safari now downloads in response to alt-click. What it still *doesn&apos;t* do is show the &quot;Download &apos;http://www.example.com/&apos;&quot; text in the status bar. That is a different bug, and is being tracked by &lt;rdar://problem/6933644&gt;.

So, this bug is now entirely fixed, requiring no changes in Safari.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30235</attachid>
            <date>2009-05-12 09:29:14 -0700</date>
            <delta_ts>2009-05-12 09:31:39 -0700</delta_ts>
            <desc>[1/3] refactor downloading code in WebKit</desc>
            <filename>0001--Move-WebContextMenuClient-s-downloading-code.patch</filename>
            <type>text/plain</type>
            <size>4668</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA3MTBiMmRjZDY3Y2Q1ZDQ4YTdiZmY4MDRlZGY4YzdkZWMwZmJmNWE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
dWUsIDEyIE1heSAyMDA5IDEyOjIyOjU0IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzNdICAgICAg
ICAgTW92ZSBXZWJDb250ZXh0TWVudUNsaWVudCdzIGRvd25sb2FkaW5nIGNvZGUgdG8gV2ViVmll
dwoKICAgICAgICBUaGlzIHdpbGwgYWxsb3cgb3RoZXIgY29kZSB0byB0cmlnZ2VyIGRvd25sb2Fk
cyB1c2luZyB0aGlzIGNvZGUsIGFuZAogICAgICAgIG1hdGNoZXMgTWFjLgoKICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5jcHA6CiAgICAgICAgKFdlYkNvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9h
ZFVSTCk6IE1vdmVkIGNvZGUgZnJvbSBoZXJlLi4uCiAgICAgICAgKiBXZWJWaWV3LmNwcDoKICAg
ICAgICAoV2ViVmlldzo6ZG93bmxvYWRVUkwpOiAuLi50byBoZXJlLiBBbHNvIHRpZ2h0ZW5lZCB1
cCB0aGUgY29kZSBhCiAgICAgICAgbGl0dGxlIGJpdCBhbmQgcmVtb3ZlZCBhbiB1bm5lY2Vzc2Fy
eSBMT0dfRVJST1IuCgogICAgICAgICogV2ViVmlldy5oOiBBZGRlZCBkb3dubG9hZFVSTC4KLS0t
CiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTcgKysrKysrKysrKysrKysrKysKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQuY3BwIHwgICAxNSArLS0tLS0tLS0tLS0tLS0KIFdlYktpdC93aW4vV2ViVmll
dy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArKysrKysrKysKIFdlYktp
dC93aW4vV2ViVmlldy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArKwog
NCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4
IGU0NWFiYzMuLjNiNTNkMGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDUtMTIgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViQ29udGV4dE1lbnVD
bGllbnQncyBkb3dubG9hZGluZyBjb2RlIHRvIFdlYlZpZXcKKworICAgICAgICBUaGlzIHdpbGwg
YWxsb3cgb3RoZXIgY29kZSB0byB0cmlnZ2VyIGRvd25sb2FkcyB1c2luZyB0aGlzIGNvZGUsIGFu
ZAorICAgICAgICBtYXRjaGVzIE1hYy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9hZFVSTCk6IE1vdmVkIGNv
ZGUgZnJvbSBoZXJlLi4uCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3
Ojpkb3dubG9hZFVSTCk6IC4uLnRvIGhlcmUuIEFsc28gdGlnaHRlbmVkIHVwIHRoZSBjb2RlIGEK
KyAgICAgICAgbGl0dGxlIGJpdCBhbmQgcmVtb3ZlZCBhbiB1bm5lY2Vzc2FyeSBMT0dfRVJST1Iu
CisKKyAgICAgICAgKiBXZWJWaWV3Lmg6IEFkZGVkIGRvd25sb2FkVVJMLgorCiAyMDA5LTA1LTEx
ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXhleSBQcm9za3VyeWFrb3YgYW5kIEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGIwZDY5MTIu
LjY4N2NlZDcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKIAotI2luY2x1ZGUgIldlYkRvd25sb2Fk
LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudFByb3BlcnR5QmFnLmgiCiAjaW5jbHVkZSAiV2ViTG9j
YWxpemFibGVTdHJpbmdzLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpAQCAtMTMzLDE5ICsxMzIs
NyBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChD
b250ZXh0TWVudUl0ZW0qIGl0ZW0sIGNvbnN0CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6
OmRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBDT01QdHI8SVdlYkRvd25sb2Fk
RGVsZWdhdGU+IGRvd25sb2FkRGVsZWdhdGU7Ci0gICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmRv
d25sb2FkRGVsZWdhdGUoJmRvd25sb2FkRGVsZWdhdGUpKSkgewotICAgICAgICAvLyBJZiB0aGUg
V2ViVmlldyBkb2Vzbid0IHN1Y2Nlc3NmdWxseSBwcm92aWRlIGEgZG93bmxvYWQgZGVsZWdhdGUg
d2UnbGwgcGFzcyBhIG51bGwgb25lCi0gICAgICAgIC8vIGludG8gdGhlIFdlYkRvd25sb2FkIC0g
d2hpY2ggbWF5IG9yIG1heSBub3QgZGVjaWRlIHRvIHVzZSBhIERlZmF1bHREb3dubG9hZERlbGVn
YXRlCi0gICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBkb3dubG9hZERlbGVnYXRlIGZy
b20gV2ViVmlldyIpOwotICAgICAgICBkb3dubG9hZERlbGVnYXRlID0gMDsKLSAgICB9Ci0KLSAg
ICAvLyBJdHMgdGhlIGRlbGVnYXRlJ3Mgam9iIHRvIHJlZiB0aGUgV2ViRG93bmxvYWQgdG8ga2Vl
cCBpdCBhbGl2ZSAtIG90aGVyd2lzZSBpdCB3aWxsIGJlIGRlc3Ryb3llZAotICAgIC8vIHdoZW4g
dGhpcyBtZXRob2QgcmV0dXJucwotICAgIENPTVB0cjxXZWJEb3dubG9hZD4gZG93bmxvYWQ7Ci0g
ICAgZG93bmxvYWQuYWRvcHRSZWYoV2ViRG93bmxvYWQ6OmNyZWF0ZUluc3RhbmNlKHVybCwgZG93
bmxvYWREZWxlZ2F0ZS5nZXQoKSkpOwotICAgIGRvd25sb2FkLT5zdGFydCgpOworICAgIG1fd2Vi
Vmlldy0+ZG93bmxvYWRVUkwodXJsKTsKIH0KIAogdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6
c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBiMDMyZDhlLi42
YzUwOTE4IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJNYXJzaGFsbGluZ0hl
bHBlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJE
b2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIldlYkRvd25sb2FkLmgiCiAjaW5jbHVkZSAiV2Vi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudFByb3BlcnR5QmFnLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKQEAgLTUxODIsNiArNTE4MywxNCBAQCBIUkVTVUxUIFdlYlZpZXc6
OnNldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZChCT09MIGFyZUFsbG93ZWQpCiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKK3ZvaWQgV2ViVmlldzo6ZG93bmxvYWRVUkwoY29uc3QgS1VSTCYgdXJsKQor
eworICAgIC8vIEl0cyB0aGUgZGVsZWdhdGUncyBqb2IgdG8gcmVmIHRoZSBXZWJEb3dubG9hZCB0
byBrZWVwIGl0IGFsaXZlIC0gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgZGVzdHJveWVkCisgICAgLy8g
d2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMuCisgICAgQ09NUHRyPFdlYkRvd25sb2FkPiBkb3du
bG9hZChBZG9wdENPTSwgV2ViRG93bmxvYWQ6OmNyZWF0ZUluc3RhbmNlKHVybCwgbV9kb3dubG9h
ZERlbGVnYXRlLmdldCgpKSk7CisgICAgZG93bmxvYWQtPnN0YXJ0KCk7Cit9CisKIGNsYXNzIEVu
dW1UZXh0TWF0Y2hlcyA6IHB1YmxpYyBJRW51bVRleHRNYXRjaGVzCiB7CiAgICAgbG9uZyBtX3Jl
ZjsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5oIGIvV2ViS2l0L3dpbi9XZWJWaWV3
LmgKaW5kZXggMjM5MDViNy4uMWFhMWU2OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3
LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTgxNyw2ICs4MTcsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBvbkdldE9iamVjdChXUEFSQU0sIExQQVJBTSwgTFJFU1VMVCYpIGNvbnN0Owog
ICAgIHN0YXRpYyBTVERNRVRIT0RJTVAgQWNjZXNzaWJsZU9iamVjdEZyb21XaW5kb3coSFdORCwg
RFdPUkQgb2JqZWN0SUQsIFJFRklJRCwgdm9pZCoqIHBwT2JqZWN0KTsKIAorICAgIHZvaWQgZG93
bmxvYWRVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYpOworCiBwcml2YXRlOgogICAgIHZvaWQgc2V0
Wm9vbU11bHRpcGxpZXIoZmxvYXQgbXVsdGlwbGllciwgYm9vbCBpc1RleHRPbmx5KTsKICAgICBm
bG9hdCB6b29tTXVsdGlwbGllcihib29sIGlzVGV4dE9ubHkpOwotLSAKMS42LjIuNAoK
</data>
<flag name="review"
          id="15206"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30236</attachid>
            <date>2009-05-12 09:29:32 -0700</date>
            <delta_ts>2009-05-29 13:46:28 -0700</delta_ts>
            <desc>[2/3] Include MK_ALT in the modifier flags when the Alt key is pressed</desc>
            <filename>0002--Make-sure-PlatformMouseEvent-modifierFlags.patch</filename>
            <type>text/plain</type>
            <size>2421</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA2MDZlODMyMWZiYjQ1YjVhMTE2MGY4OGM1NTk3MmVhNjM5ZWE3MDBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
dWUsIDEyIE1heSAyMDA5IDEyOjI2OjE5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyLzNdICAgICAg
ICAgTWFrZSBzdXJlIFBsYXRmb3JtTW91c2VFdmVudDo6bW9kaWZpZXJGbGFncyBjb250YWlucyBN
S19BTFQgd2hlbiB0aGUgQWx0IGtleSBpcyBwcmVzc2VkCgogICAgICAgIEZpcnN0IHBhcnQgb2Yg
Zml4aW5nIEJ1ZyAyNTcyOTogQWx0LWNsaWNraW5nIGEgbGluayBkb2Vzbid0IHN0YXJ0IGEKICAg
ICAgICBkb3dubG9hZAogICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU3Mjk+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICBObyB0ZXN0IHBvc3NpYmxlLgoKICAgICAgICAqIHBsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNl
RXZlbnRXaW4uY3BwOgogICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRm
b3JtTW91c2VFdmVudCk6IEFkZCBNS19BTFQgdG8gdGhlCiAgICAgICAgbW9kaWZpZXIgZmxhZ3Mg
d2hlbiB0aGUgQWx0IGtleSBpcyBwcmVzc2VkLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwIHwgICAgNSArKysrKwogMiBm
aWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM2MjA0NC4u
YjRmMjQzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0wNS0xMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIFBsYXRmb3JtTW91c2VFdmVudDo6bW9kaWZp
ZXJGbGFncyBjb250YWlucyBNS19BTFQgd2hlbiB0aGUKKyAgICAgICAgQWx0IGtleSBpcyBwcmVz
c2VkCisKKyAgICAgICAgRmlyc3QgcGFydCBvZiBmaXhpbmcgQnVnIDI1NzI5OiBBbHQtY2xpY2tp
bmcgYSBsaW5rIGRvZXNuJ3Qgc3RhcnQgYQorICAgICAgICBkb3dubG9hZAorICAgICAgICA8aHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NzI5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIHRlc3QgcG9zc2libGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KTogQWRk
IE1LX0FMVCB0byB0aGUKKyAgICAgICAgbW9kaWZpZXIgZmxhZ3Mgd2hlbiB0aGUgQWx0IGtleSBp
cyBwcmVzc2VkLgorCiAyMDA5LTA1LTExICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YgYW5kIEFkYW0g
Um9iZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZl
bnRXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNw
cAppbmRleCA3MTEwYjM5Li44YmRhNTg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtTW91c2VFdmVudFdpbi5jcHAKQEAgLTg1LDYgKzg1LDExIEBAIFBsYXRmb3JtTW91c2VF
dmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0g
d1BhcmFtLCBMCiAgICAgLCBtX2V2ZW50VHlwZShtZXNzYWdlVG9FdmVudFR5cGUobWVzc2FnZSkp
CiAgICAgLCBtX21vZGlmaWVyRmxhZ3Mod1BhcmFtKQogeworICAgIC8vIFRoZSBtb2RpZmllciBm
bGFncyBXaW5kb3dzIGdpdmVzIHVzIG5ldmVyIGNvbnRhaW4gTUtfQUxULCBidXQgd2UgbmVlZCBp
dCB0byBiZSBwcmVzZW50IChzZWUKKyAgICAvLyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI1NzI5PikuCisgICAgaWYgKG1fYWx0S2V5KQorICAgICAgICBtX21vZGlm
aWVyRmxhZ3MgfD0gTUtfQUxUOworCiAgICAgbV90aW1lc3RhbXAgPSA6OkdldFRpY2tDb3VudCgp
KjAuMDAxOyAvLyBHZXRUaWNrQ291bnQgcmV0dXJucyBtaWxsaXNlY29uZHMKIAogICAgIHN3aXRj
aCAobWVzc2FnZSkgewotLSAKMS42LjIuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30237</attachid>
            <date>2009-05-12 09:29:48 -0700</date>
            <delta_ts>2009-05-12 09:33:48 -0700</delta_ts>
            <desc>[3/3] Implement WebFrame::startDownload</desc>
            <filename>0003--Implement-WebFrame-startDownload.patch</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAzNGYwYjA1ZjM5NTkzYTk1MThmNGE5ZjdhM2RkNTFhNTc0NTgxZGZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBU
dWUsIDEyIE1heSAyMDA5IDEyOjI4OjM3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzLzNdICAgICAg
ICAgSW1wbGVtZW50IFdlYkZyYW1lOjpzdGFydERvd25sb2FkCgogICAgICAgIEZpeGVzIEJ1ZyAy
NTcyOTogQWx0LWNsaWNraW5nIGEgbGluayBkb2Vzbid0IHN0YXJ0IGEgZG93bmxvYWQKICAgICAg
ICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NzI5PgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBXZWJGcmFtZS5jcHA6CiAg
ICAgICAgKFdlYkZyYW1lOjpzdGFydERvd25sb2FkKTogQ2FsbCB0aHJvdWdoIHRvIFdlYlZpZXc6
OmRvd25sb2FkVVJMLgotLS0KIFdlYktpdC93aW4vQ2hhbmdlTG9nICAgIHwgICAxMiArKysrKysr
KysrKysKIFdlYktpdC93aW4vV2ViRnJhbWUuY3BwIHwgICAgNCArKy0tCiAyIGZpbGVzIGNoYW5n
ZWQsIDE0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAzYjUzZDBiLi5iMzBm
ZDY3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDA5LTA1LTEyICBBZGFtIFJvYmVuICA8YXJvYmVu
QGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgV2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQK
KworICAgICAgICBGaXhlcyBCdWcgMjU3Mjk6IEFsdC1jbGlja2luZyBhIGxpbmsgZG9lc24ndCBz
dGFydCBhIGRvd25sb2FkCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU3Mjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6c3RhcnREb3dubG9h
ZCk6IENhbGwgdGhyb3VnaCB0byBXZWJWaWV3Ojpkb3dubG9hZFVSTC4KKworMjAwOS0wNS0xMiAg
QWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKICAgICAgICAgTW92ZSBXZWJDb250ZXh0
TWVudUNsaWVudCdzIGRvd25sb2FkaW5nIGNvZGUgdG8gV2ViVmlldwogCiAgICAgICAgIFRoaXMg
d2lsbCBhbGxvdyBvdGhlciBjb2RlIHRvIHRyaWdnZXIgZG93bmxvYWRzIHVzaW5nIHRoaXMgY29k
ZSwgYW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1dlYktpdC93aW4v
V2ViRnJhbWUuY3BwCmluZGV4IGQxZDA5ZDMuLmM5NjJkYzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vV2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xNjA1LDkg
KzE2MDUsOSBAQCB2b2lkIFdlYkZyYW1lOjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQogICAgIH0KIH0KIAotdm9pZCBXZWJGcmFtZTo6c3RhcnREb3dubG9h
ZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQordm9pZCBXZWJGcmFtZTo6c3RhcnREb3dubG9hZChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICBkLT53ZWJWaWV3LT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKIH0KIAogV2lkZ2V0
KiBXZWJGcmFtZTo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiBwbHVnaW5T
aXplLCBIVE1MQXBwbGV0RWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgLypiYXNlVVJMKi8s
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpCi0tIAoxLjYuMi40Cgo=
</data>
<flag name="review"
          id="15208"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>