<?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>12399</bug_id>
          
          <creation_ts>2007-01-24 14:46:58 -0800</creation_ts>
          <short_desc>REGRESSION: Unable to prevent default context menu from appearing.</short_desc>
          <delta_ts>2007-02-22 16:06:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tom Brown">tom</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32725</commentid>
    <comment_count>0</comment_count>
    <who name="Tom Brown">tom</who>
    <bug_when>2007-01-24 14:46:58 -0800</bug_when>
    <thetext>It is desirable to allow a developer to perform an action when the context menu (&quot;Back, Reload, etc&quot;) is invoked. The &quot;oncontextmenu&quot; event exists for this purpose. The event can captured and canceled using standard methods. However, if the context menu is allowed to display even once, it can no longer be canceled until the window is closed. Firefox and IE both allow the event to be canceled repeatedly, even if the menu has been shown before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32720</commentid>
    <comment_count>1</comment_count>
      <attachid>12651</attachid>
    <who name="Tom Brown">tom</who>
    <bug_when>2007-01-24 14:56:54 -0800</bug_when>
    <thetext>Created attachment 12651
Test case reduction.

1) Open test case.
2) Mark the checkbox labeled &quot;prevent default context menu&quot;.
3) Attempt to open the default context menu by right-clicking or ctrl-clicking. Event data will be captured. The context menu will NOT be displayed. This is correct.
4) Unmark the checkbox labeled &quot;prevent default context menu&quot;.
5) Right-click or ctrl-click to open the context menu. Event data will be captured. The context menu will be displayed. This is correct.
6) Clear the context menu.
7) Mark the checkbox labeled &quot;prevent default context menu&quot;.
8) Attempt to open the default context menu by right-clicking or ctrl-clicking. Event data will be captured. The context menu WILL be displayed. This is NOT correct.

After this, any right-click (or ctrl-click) will cause the context menu to be displayed, regardless of whether or not the event is canceled. This will occur until the window is closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22734</commentid>
    <comment_count>2</comment_count>
    <who name="Tom Brown">tom</who>
    <bug_when>2007-02-19 19:06:25 -0800</bug_when>
    <thetext>This bug was introduced sometime between revisions 18554 and 18597, with 18592 being suspect (&quot;turned on webcore context menus&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22493</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2007-02-20 14:22:28 -0800</bug_when>
    <thetext>Confirmed. I think I know how to fix this . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22125</commentid>
    <comment_count>4</comment_count>
      <attachid>13329</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2007-02-22 15:02:41 -0800</bug_when>
    <thetext>Created attachment 13329
Clear the controller&apos;s context menu before sending the event through the DOM

This problem appeared because of two facets of the current context menu design. First, all context menu events are now considered to be &quot;swallowed&quot; since we take care of building up the regular context menu through the defaultEventHandler(). Second, the context menu controller holds onto it&apos;s context menu until a new one is created. There would be logistical problems changing this since AppKit relies on the menu being around for as long as it is visible on the screen and we don&apos;t get any notification once the menu is popped-down. 

There are a few different ways to fix this problem, but I think this is simplest. This solution does not change either of the two thing described above. It just clears out the controller&apos;s context menu before a new event is propagated through the DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22108</commentid>
    <comment_count>5</comment_count>
      <attachid>13329</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-02-22 15:09:13 -0800</bug_when>
    <thetext>Comment on attachment 13329
Clear the controller&apos;s context menu before sending the event through the DOM

+    page-&gt;contextMenuController()-&gt;clearContextMenu();

   It&apos;s probably worth a comment here saying why we have to do this.

   I wish we had a way to test this under DRT.

   r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22106</commentid>
    <comment_count>6</comment_count>
      <attachid>13329</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-02-22 15:19:54 -0800</bug_when>
    <thetext>Comment on attachment 13329
Clear the controller&apos;s context menu before sending the event through the DOM

You should also add the testcase as a manual test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22086</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2007-02-22 15:36:43 -0800</bug_when>
    <thetext>rdar://5017416</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22088</commentid>
    <comment_count>8</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2007-02-22 16:06:14 -0800</bug_when>
    <thetext>Fixed with r19810.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>12651</attachid>
            <date>2007-01-24 14:56:54 -0800</date>
            <delta_ts>2007-01-24 14:56:54 -0800</delta_ts>
            <desc>Test case reduction.</desc>
            <filename>contextmenu.html</filename>
            <type>text/html</type>
            <size>1637</size>
            <attacher name="Tom Brown">tom</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoNCmZ1bmN0aW9uIGNvbnRl
eHRfZXZlbnQoZXZlbnQpDQp7DQogIGlmICh3aW5kb3cuZXZlbnQpDQogIHsNCiAgICBldmVudCA9
IHdpbmRvdy5ldmVudDsNCiAgfQ0KICB2YXIgc3dhbGxvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzd2FsbG93X2NvbnRleHQiKS5jaGVja2VkOw0KDQogIHZhciBzdHIgPQ0KICAgICAgICAg
IkVWRU5UIFBST1BFUlRJRVM8YnI+IiAgICAgICAgICAgICAgICAgICAgICAgKw0KICAgICAgICAg
ImNhbmNlbGFibGUgICAgICA9ICIrZXZlbnQuY2FuY2VsYWJsZSsiPGJyPiIgKw0KICAgICAgICAg
ImN0cmxLZXkgICAgICAgICA9ICIrZXZlbnQuY3RybEtleSsiPGJyPiIgICAgKw0KICAgICAgICAg
Im1ldGFLZXkgICAgICAgICA9ICIrZXZlbnQubWV0YUtleSsiPGJyPiIgICAgKw0KICAgICAgICAg
InNoaWZ0S2V5ICAgICAgICA9ICIrZXZlbnQuc2hpZnRLZXkrIjxicj4iICAgKw0KICAgICAgICAg
Ijxicj4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KICAgICAgICAg
IlRFU1QgUFJPUEVSVElFUzxicj4iICAgICAgICAgICAgICAgICAgICAgICAgKw0KICAgICAgICAg
InByZXZlbnQgZGVmYXVsdCA9ICIrc3dhbGxvdysiPGJyPiIgICAgICAgICAgKw0KICAgICAgICAg
ImV2ZW50IHRpbWUgICAgICA9ICIrbmV3IERhdGUoKSsiPGJyPiIgICAgICAgKw0KICAgICAgICAg
IiI7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJldmVudF9pbmZvIikuaW5uZXJIVE1MPXN0
cjsNCg0KICBpZiAoc3dhbGxvdykNCiAgew0KICAgIGlmICgodHlwZW9mIGV2ZW50LmNhbmNlbEJ1
YmJsZSkgIT0gInVuZGVmaW5lZCIpDQogICAgICBldmVudC5jYW5jZWxCdWJibGU9dHJ1ZTsNCg0K
ICAgIGlmICgodHlwZW9mIGV2ZW50LnByZXZlbnREZWZhdWx0KSAhPSAidW5kZWZpbmVkIikNCiAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCiAgICBpZiAoKHR5cGVvZiBldmVudC5yZXR1
cm5WYWx1ZSkgIT0gInVuZGVmaW5lZCIpDQogICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNl
Ow0KDQogICAgaWYgKCh0eXBlb2YgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSAhPSAidW5kZWZpbmVk
IikNCiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOw0KDQogICAgcmV0dXJuIGZhbHNlOw0K
ICB9DQoNCiAgcmV0dXJuIHRydWU7DQp9DQoNCjwvc2NyaXB0Pg0KDQo8Ym9keSBvbmNvbnRleHRt
ZW51PSJyZXR1cm4gY29udGV4dF9ldmVudChldmVudCkiPg0KPGRpdj5UbyBhY3RpdmF0ZSBjb250
ZXh0IG1lbnUsIHJpZ2h0LWNsaWNrIG9yIGN0cmwtY2xpY2sgYW55d2hlcmUgb24gdGhlIHBhZ2Uu
PC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZh
bHVlPSIxIiBuYW1lPSJzd2FsbG93X2NvbnRleHQiIGlkPSJzd2FsbG93X2NvbnRleHQiPiBQcmV2
ZW50IGRlZmF1bHQgY29udGV4dCBtZW51PC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPHR0IGlk
PSJldmVudF9pbmZvIiBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjojZWVlZWVlJz4NCiAtLSBObyBl
dmVudCBjYXB0dXJlZCAtLQ0KPC90dD4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13329</attachid>
            <date>2007-02-22 15:02:41 -0800</date>
            <delta_ts>2007-02-22 15:09:13 -0800</delta_ts>
            <desc>Clear the controller&apos;s context menu before sending the event through the DOM</desc>
            <filename>clearContextMenu.txt</filename>
            <type>text/plain</type>
            <size>2349</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAxOTc5NikKKysrIFdlYktpdC9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjI3LDE2ICsyNjI3LDE3IEBA
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCisgICAgUGFnZSogcGFnZSA9IGNvcmVGcmFt
ZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHBh
Z2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7CiAgICAgaGFu
ZGxlZEV2ZW50ID0gY29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZl
bnQoUGxhdGZvcm1Nb3VzZUV2ZW50KGV2ZW50KSk7CiAgICAgX3ByaXZhdGUtPmhhbmRsaW5nTW91
c2VEb3duRXZlbnQgPSBOTzsKIAogICAgIGlmICghaGFuZGxlZEV2ZW50KQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgUGFnZSogcGFnZSA9IGNvcmVGcmFtZS0+cGFnZSgpOwotICAgIGlmICgh
cGFnZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQogICAgIENvbnRleHRNZW51KiBjb3JlTWVudSA9
IHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLT5jb250ZXh0TWVudSgpOwogICAgIGlmICgh
Y29yZU1lbnUpCiAgICAgICAgIHJldHVybiBuaWw7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZXhw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAJKHJldmlzaW9uIDE5Nzk2KQorKysg
V2ViQ29yZS9XZWJDb3JlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtMzA1LDYgKzMwNSw3IEBACiBf
X1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXI2ZGVjb2RlRVBLY20KIF9fWk43V2ViQ29y
ZTE5VGV4dFJlc291cmNlRGVjb2RlckMxRVJLTlNfNlN0cmluZ0VSS05TXzEyVGV4dEVuY29kaW5n
RQogX19aTjdXZWJDb3JlMTlUZXh0UmVzb3VyY2VEZWNvZGVyRDFFdgorX19aTjdXZWJDb3JlMjFD
b250ZXh0TWVudUNvbnRyb2xsZXIxNmNsZWFyQ29udGV4dE1lbnVFdgogX19aTjdXZWJDb3JlMjFQ
bGF0Zm9ybUtleWJvYXJkRXZlbnRDMUVQN05TRXZlbnRiCiBfX1pON1dlYkNvcmUyMWZpbmRFdmVu
dFdpdGhLZXlTdGF0ZUVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMjFpc0JhY2tGb3J3YXJkTG9h
ZFR5cGVFTlNfMTNGcmFtZUxvYWRUeXBlRQpJbmRleDogV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDE5Nzk2KQorKysgV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDExIEBACiAgICAgbV9j
bGllbnQtPmNvbnRleHRNZW51RGVzdHJveWVkKCk7CiB9CiAKK3ZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjbGVhckNvbnRleHRNZW51KCkKK3sKKyAgICBtX2NvbnRleHRNZW51LnNldCgwKTsK
K30KKwogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQo
RXZlbnQqIGV2ZW50KQogewogICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09IGNvbnRleHRtZW51
RXZlbnQpOwpJbmRleDogV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAkocmV2aXNpb24g
MTk3OTYpCisrKyBXZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgICAgICAgQ29udGV4dE1lbnVDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRN
ZW51KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0TWVudS5nZXQoKTsgfQorICAgICAgICB2b2lk
IGNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgICAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZl
bnQoRXZlbnQqKTsKICAgICAgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qKTsK
</data>
<flag name="review"
          id="5225"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>