<?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>26087</bug_id>
          
          <creation_ts>2009-05-29 14:49:31 -0700</creation_ts>
          <short_desc>[Chromium] Removing element in JS crashes Chrome tab if it fired the change event</short_desc>
          <delta_ts>2009-06-08 09:24:53 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.schrierc.org/chrome-reload-crash.html</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="Victor Wang">victorw</reporter>
          <assigned_to name="Victor Wang">victorw</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>victorw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>123618</commentid>
    <comment_count>0</comment_count>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-05-29 14:49:31 -0700</bug_when>
    <thetext>This applies to Chrome only.
If a popup list is abandoned (press a key to jump to an item and then use tab
or mouse to get away from the select box), the current code in PopupMenuChromium fires a change event in updateFromElemt(). The JS that listens to this event may
destroy the object and cause the rest of popup list code crashes.

What steps will reproduce the problem?

1. Open URL using Chrome: http://www.schrierc.org/chrome-reload-crash.html
2. Click the select
3. Press &apos;s&apos; on your keyboard
4. Click on the document but not the select itself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123621</commentid>
    <comment_count>1</comment_count>
      <attachid>30791</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-05-29 15:00:51 -0700</bug_when>
    <thetext>Created attachment 30791
Porposed fix for bug 26087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124163</commentid>
    <comment_count>2</comment_count>
      <attachid>30910</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 10:07:44 -0700</bug_when>
    <thetext>Created attachment 30910
Proposed fix for bug 26087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124167</commentid>
    <comment_count>3</comment_count>
      <attachid>30910</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-06-03 10:34:22 -0700</bug_when>
    <thetext>Comment on attachment 30910
Proposed fix for bug 26087

&gt; Index: WebCore/manual-tests/onchange-reload-popup.html
&gt; ===================================================================
&gt; --- WebCore/manual-tests/onchange-reload-popup.html	(revision 0)

This should probably go to WebCore/manual-tests/chromium/onchange-reload-popup.html

Looks good otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124173</commentid>
    <comment_count>4</comment_count>
      <attachid>30913</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 10:57:46 -0700</bug_when>
    <thetext>Created attachment 30913
Move test to chromium directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124176</commentid>
    <comment_count>5</comment_count>
      <attachid>30913</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-06-03 11:04:13 -0700</bug_when>
    <thetext>Comment on attachment 30913
Move test to chromium directory

&gt; +        (WebCore::PopupListBox::updateFromElement):
&gt; +
&gt; +&lt;&lt;&lt;&lt;&lt;&lt;&lt; .mine

Be careful :) -- you left merge markers in the ChangeLog.

Also, when uploading a new patch to Bugzilla, make sure to mark the old patch as obsolete and mark the new patch for review. It&apos;s tedious, but that&apos;s the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124185</commentid>
    <comment_count>6</comment_count>
      <attachid>30915</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 11:16:15 -0700</bug_when>
    <thetext>Created attachment 30915
Move test to chromium directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124186</commentid>
    <comment_count>7</comment_count>
      <attachid>30915</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 11:17:44 -0700</bug_when>
    <thetext>Comment on attachment 30915
Move test to chromium directory

&gt;&lt;html&gt;&lt;body&gt;&lt;pre style=&quot;word-wrap: break-word; white-space: pre-wrap;&quot;&gt;Index: WebCore/ChangeLog
&gt;===================================================================
&gt;--- WebCore/ChangeLog	(revision 44387)
&gt;+++ WebCore/ChangeLog	(working copy)
&gt;@@ -1,3 +1,37 @@
&gt;+2009-06-03  victorw  &lt;victorw@chromium.org&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+        
&gt;+        https://bugs.webkit.org/show_bug.cgi?id=26087
&gt;+        Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event
&gt;+        
&gt;+        Fix tab crash caused by destroying the popup list that fired the change event on abandon.
&gt;+        
&gt;+        If a popup list is abandoned (press a key to jump to an item
&gt;+        and then use tab or mouse to get away from the select box),
&gt;+        the current code fires a change event in PopupListBox::updateFromElemt().
&gt;+        The JS that listens to this event may destroy the object and cause the
&gt;+        rest of popup list code crashes.
&gt;+        
&gt;+        The updateFromElement() is called before abandon() and this causes
&gt;+        the selected index to be discarded after updateFromElement(). From
&gt;+        the code comments, this appears to be the reason why valueChanged is
&gt;+        called in updateFromElement.
&gt;+        
&gt;+        Fix the issue by removing the valueChanged call in updateFromElement,
&gt;+        saving the selected index that we should accept on abandon and pass
&gt;+        it to the valueChange in abandon().
&gt;+        
&gt;+        A manual test has been added.
&gt;+        
&gt;+        * manual-tests/chromium: Added.
&gt;+        * manual-tests/chromium/onchange-reload-popup.html: Added.
&gt;+        * platform/chromium/PopupMenuChromium.cpp:
&gt;+        (WebCore::PopupListBox::PopupListBox):
&gt;+        (WebCore::PopupListBox::handleKeyEvent):
&gt;+        (WebCore::PopupListBox::abandon):
&gt;+        (WebCore::PopupListBox::updateFromElement):
&gt;+
&gt; 2009-06-03  Kevin Watters  &lt;kevinwatters@gmail.com&gt;
&gt; 
&gt;         Reviewed by Kevin Ollivier.
&gt;Index: WebCore/manual-tests/chromium/onchange-reload-popup.html
&gt;===================================================================
&gt;--- WebCore/manual-tests/chromium/onchange-reload-popup.html	(revision 0)
&gt;+++ WebCore/manual-tests/chromium/onchange-reload-popup.html	(revision 0)
&gt;@@ -0,0 +1,44 @@
&gt;+&lt;html&gt;
&gt;+&lt;head&gt;
&gt;+    &lt;script type=&quot;text/javascript&quot;&gt; 
&gt;+
&gt;+    function addEvent(obj, evType, fn) {
&gt;+        if (obj.addEventListener){
&gt;+          obj.addEventListener(evType, fn, false);
&gt;+          return true;
&gt;+        } else if (obj.attachEvent){
&gt;+          var r = obj.attachEvent(&quot;on&quot;+evType, fn);
&gt;+          return r;
&gt;+        } else {
&gt;+          return false;
&gt;+        }
&gt;+    }
&gt;+
&gt;+    function reloadSelect() {
&gt;+        var container = document.getElementById(&apos;container&apos;);
&gt;+        container.innerHTML = &apos;&lt;select id=&quot;menu&quot;&gt; \
&gt;+          &lt;option value=&quot;abcd&quot;&gt;abcd&lt;/option&gt;\
&gt;+          &lt;option value=&quot;defg&quot;&gt;efgh&lt;/option&gt;\
&gt;+        &lt;/select&gt;&apos;;
&gt;+
&gt;+        var menu = document.getElementById(&apos;menu&apos;);
&gt;+        addEvent(menu, &apos;change&apos;, reloadSelect);
&gt;+    }
&gt;+
&gt;+    &lt;/script&gt;
&gt;+&lt;/head&gt;
&gt;+&lt;body&gt;
&gt;+    &lt;p&gt;Do the following and see if Chromium crashes.&lt;/p&gt;
&gt;+    &lt;ul&gt;
&gt;+      &lt;li&gt;Click the select&lt;/li&gt; 
&gt;+      &lt;li&gt;Press &apos;e&apos; on your keyboard&lt;/li&gt; 
&gt;+      &lt;li&gt;Click on the document but not the select itself.&lt;/li&gt;
&gt;+    &lt;/ul&gt;
&gt;+
&gt;+    &lt;div id=&quot;container&quot;/&gt;
&gt;+    &lt;script&gt;
&gt;+        reloadSelect()
&gt;+    &lt;/script&gt;
&gt;+    &lt;/div&gt; 
&gt;+&lt;/body&gt;
&gt;+&lt;/html&gt;
&gt;
&gt;Property changes on: WebCore/manual-tests/chromium/onchange-reload-popup.html
&gt;___________________________________________________________________
&gt;Added: svn:executable
&gt;   + *
&gt;
&gt;Index: WebCore/platform/chromium/PopupMenuChromium.cpp
&gt;===================================================================
&gt;--- WebCore/platform/chromium/PopupMenuChromium.cpp	(revision 44269)
&gt;+++ WebCore/platform/chromium/PopupMenuChromium.cpp	(working copy)
&gt;@@ -153,7 +153,7 @@ private:
&gt;         : m_settings(settings)
&gt;         , m_originalIndex(0)
&gt;         , m_selectedIndex(0)
&gt;-        , m_willAcceptOnAbandon(false)
&gt;+        , m_acceptedIndexOnAbandon(-1)
&gt;         , m_visibleRows(0)
&gt;         , m_popupClient(client)
&gt;         , m_repeatingChar(0)
&gt;@@ -222,11 +222,11 @@ private:
&gt;     // enter yet however.
&gt;     int m_selectedIndex;
&gt; 
&gt;-    // True if we should accept the selectedIndex as chosen, even if the popup
&gt;-    // is &quot;abandoned&quot;.  This is used for keyboard navigation, where we want the
&gt;+    // If &gt;= 0, this is the index we should accept if the popup is &quot;abandoned&quot;.
&gt;+    // This is used for keyboard navigation, where we want the
&gt;     // selection to change immediately, and is only used if the settings
&gt;     // acceptOnAbandon field is true.
&gt;-    bool m_willAcceptOnAbandon;
&gt;+    int m_acceptedIndexOnAbandon;
&gt; 
&gt;     // This is the number of rows visible in the popup. The maximum number visible at a time is
&gt;     // defined as being kMaxVisibleRows. For a scrolled popup, this can be thought of as the
&gt;@@ -648,7 +648,7 @@ bool PopupListBox::handleKeyEvent(const 
&gt;         // IE).  We change the original index so we revert to that when the
&gt;         // popup is closed.
&gt;         if (m_settings.acceptOnAbandon)
&gt;-            m_willAcceptOnAbandon = true;
&gt;+            m_acceptedIndexOnAbandon = m_selectedIndex;
&gt; 
&gt;         setOriginalIndex(m_selectedIndex);
&gt;         if (m_settings.setTextOnIndexChange)
&gt;@@ -838,8 +838,10 @@ void PopupListBox::abandon()
&gt; 
&gt;     m_popupClient-&gt;hidePopup();
&gt; 
&gt;-    if (m_willAcceptOnAbandon)
&gt;-        m_popupClient-&gt;valueChanged(m_selectedIndex);
&gt;+    if (m_acceptedIndexOnAbandon &gt;= 0) {
&gt;+        m_popupClient-&gt;valueChanged(m_acceptedIndexOnAbandon);
&gt;+        m_acceptedIndexOnAbandon = -1;
&gt;+    }
&gt; }
&gt; 
&gt; int PopupListBox::pointToRowIndex(const IntPoint&amp; point)
&gt;@@ -1018,14 +1020,6 @@ void PopupListBox::adjustSelectedIndex(i
&gt; 
&gt; void PopupListBox::updateFromElement()
&gt; {
&gt;-    // It happens when pressing a key to jump to an item, then use tab or
&gt;-    // mouse to get away from the select box. In that case, updateFromElement
&gt;-    // is called before abandon, which causes discarding of the select result.    
&gt;-    if (m_willAcceptOnAbandon) {
&gt;-        m_popupClient-&gt;valueChanged(m_selectedIndex);
&gt;-        m_willAcceptOnAbandon = false;
&gt;-    }
&gt;-
&gt;     clear();
&gt; 
&gt;     int size = m_popupClient-&gt;listSize();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124187</commentid>
    <comment_count>8</comment_count>
      <attachid>30916</attachid>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 11:22:33 -0700</bug_when>
    <thetext>Created attachment 30916
Move test to chromium directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124189</commentid>
    <comment_count>9</comment_count>
    <who name="Victor Wang">victorw</who>
    <bug_when>2009-06-03 11:26:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 30913 [review])
&gt; &gt; +        (WebCore::PopupListBox::updateFromElement):
&gt; &gt; +
&gt; &gt; +&lt;&lt;&lt;&lt;&lt;&lt;&lt; .mine
&gt; 
&gt; Be careful :) -- you left merge markers in the ChangeLog.
&gt; 
&gt; Also, when uploading a new patch to Bugzilla, make sure to mark the old patch
&gt; as obsolete and mark the new patch for review. It&apos;s tedious, but that&apos;s the
&gt; way.
&gt; 

Got merge issue and some format issue in ChangeLog. All fixed by latest patch.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124773</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-06-08 09:24:53 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/44500.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30791</attachid>
            <date>2009-05-29 15:00:51 -0700</date>
            <delta_ts>2009-06-03 10:32:24 -0700</delta_ts>
            <desc>Porposed fix for bug 26087</desc>
            <filename>PopupMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>2651</size>
            <attacher name="Victor Wang">victorw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCShyZXZpc2lvbiA0NDI2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgOiBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICAgICAsIG1fb3JpZ2luYWxJ
bmRleCgwKQogICAgICAgICAsIG1fc2VsZWN0ZWRJbmRleCgwKQotICAgICAgICAsIG1fd2lsbEFj
Y2VwdE9uQWJhbmRvbihmYWxzZSkKKyAgICAgICAgLCBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24o
LTEpCiAgICAgICAgICwgbV92aXNpYmxlUm93cygwKQogICAgICAgICAsIG1fcG9wdXBDbGllbnQo
Y2xpZW50KQogICAgICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQpAQCAtMjIyLDExICsyMjIsMTEg
QEAgcHJpdmF0ZToKICAgICAvLyBlbnRlciB5ZXQgaG93ZXZlci4KICAgICBpbnQgbV9zZWxlY3Rl
ZEluZGV4OwogCi0gICAgLy8gVHJ1ZSBpZiB3ZSBzaG91bGQgYWNjZXB0IHRoZSBzZWxlY3RlZElu
ZGV4IGFzIGNob3NlbiwgZXZlbiBpZiB0aGUgcG9wdXAKLSAgICAvLyBpcyAiYWJhbmRvbmVkIi4g
IFRoaXMgaXMgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiwgd2hlcmUgd2Ugd2FudCB0aGUK
KyAgICAvLyBJZiA+PSAwLCB0aGlzIGlzIHRoZSBpbmRleCB3ZSBzaG91bGQgYWNjZXB0IGlmIHRo
ZSBwb3B1cCBpcyAiYWJhbmRvbmVkIi4KKyAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIGtleWJvYXJk
IG5hdmlnYXRpb24sIHdoZXJlIHdlIHdhbnQgdGhlCiAgICAgLy8gc2VsZWN0aW9uIHRvIGNoYW5n
ZSBpbW1lZGlhdGVseSwgYW5kIGlzIG9ubHkgdXNlZCBpZiB0aGUgc2V0dGluZ3MKICAgICAvLyBh
Y2NlcHRPbkFiYW5kb24gZmllbGQgaXMgdHJ1ZS4KLSAgICBib29sIG1fd2lsbEFjY2VwdE9uQWJh
bmRvbjsKKyAgICBpbnQgbV9hY2NlcHRlZEluZGV4T25BYmFuZG9uOwogCiAgICAgLy8gVGhpcyBp
cyB0aGUgbnVtYmVyIG9mIHJvd3MgdmlzaWJsZSBpbiB0aGUgcG9wdXAuIFRoZSBtYXhpbXVtIG51
bWJlciB2aXNpYmxlIGF0IGEgdGltZSBpcwogICAgIC8vIGRlZmluZWQgYXMgYmVpbmcga01heFZp
c2libGVSb3dzLiBGb3IgYSBzY3JvbGxlZCBwb3B1cCwgdGhpcyBjYW4gYmUgdGhvdWdodCBvZiBh
cyB0aGUKQEAgLTY0OCw3ICs2NDgsNyBAQCBib29sIFBvcHVwTGlzdEJveDo6aGFuZGxlS2V5RXZl
bnQoY29uc3QgCiAgICAgICAgIC8vIElFKS4gIFdlIGNoYW5nZSB0aGUgb3JpZ2luYWwgaW5kZXgg
c28gd2UgcmV2ZXJ0IHRvIHRoYXQgd2hlbiB0aGUKICAgICAgICAgLy8gcG9wdXAgaXMgY2xvc2Vk
LgogICAgICAgICBpZiAobV9zZXR0aW5ncy5hY2NlcHRPbkFiYW5kb24pCi0gICAgICAgICAgICBt
X3dpbGxBY2NlcHRPbkFiYW5kb24gPSB0cnVlOworICAgICAgICAgICAgbV9hY2NlcHRlZEluZGV4
T25BYmFuZG9uID0gbV9zZWxlY3RlZEluZGV4OwogCiAgICAgICAgIHNldE9yaWdpbmFsSW5kZXgo
bV9zZWxlY3RlZEluZGV4KTsKICAgICAgICAgaWYgKG1fc2V0dGluZ3Muc2V0VGV4dE9uSW5kZXhD
aGFuZ2UpCkBAIC04MzgsOCArODM4LDEwIEBAIHZvaWQgUG9wdXBMaXN0Qm94OjphYmFuZG9uKCkK
IAogICAgIG1fcG9wdXBDbGllbnQtPmhpZGVQb3B1cCgpOwogCi0gICAgaWYgKG1fd2lsbEFjY2Vw
dE9uQWJhbmRvbikKLSAgICAgICAgbV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKG1fc2VsZWN0
ZWRJbmRleCk7CisgICAgaWYgKG1fYWNjZXB0ZWRJbmRleE9uQWJhbmRvbiA+PSAwKSB7CisgICAg
ICAgIG1fcG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24p
OworICAgICAgICBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24gPSAtMTsKKyAgICB9CiB9CiAKIGlu
dCBQb3B1cExpc3RCb3g6OnBvaW50VG9Sb3dJbmRleChjb25zdCBJbnRQb2ludCYgcG9pbnQpCkBA
IC0xMDE4LDE0ICsxMDIwLDYgQEAgdm9pZCBQb3B1cExpc3RCb3g6OmFkanVzdFNlbGVjdGVkSW5k
ZXgoaQogCiB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIC8v
IEl0IGhhcHBlbnMgd2hlbiBwcmVzc2luZyBhIGtleSB0byBqdW1wIHRvIGFuIGl0ZW0sIHRoZW4g
dXNlIHRhYiBvcgotICAgIC8vIG1vdXNlIHRvIGdldCBhd2F5IGZyb20gdGhlIHNlbGVjdCBib3gu
IEluIHRoYXQgY2FzZSwgdXBkYXRlRnJvbUVsZW1lbnQKLSAgICAvLyBpcyBjYWxsZWQgYmVmb3Jl
IGFiYW5kb24sIHdoaWNoIGNhdXNlcyBkaXNjYXJkaW5nIG9mIHRoZSBzZWxlY3QgcmVzdWx0LiAg
ICAKLSAgICBpZiAobV93aWxsQWNjZXB0T25BYmFuZG9uKSB7Ci0gICAgICAgIG1fcG9wdXBDbGll
bnQtPnZhbHVlQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOwotICAgICAgICBtX3dpbGxBY2NlcHRP
bkFiYW5kb24gPSBmYWxzZTsKLSAgICB9Ci0KICAgICBjbGVhcigpOwogCiAgICAgaW50IHNpemUg
PSBtX3BvcHVwQ2xpZW50LT5saXN0U2l6ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30910</attachid>
            <date>2009-06-03 10:07:44 -0700</date>
            <delta_ts>2009-06-03 11:02:11 -0700</delta_ts>
            <desc>Proposed fix for bug 26087</desc>
            <filename>PopupMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>4258</size>
            <attacher name="Victor Wang">victorw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL29uY2hhbmdlLXJlbG9hZC1wb3B1cC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3RzL29uY2hhbmdlLXJlbG9hZC1wb3B1cC5o
dG1sCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvb25jaGFuZ2UtcmVsb2Fk
LXBvcHVwLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPg0KKzxoZWFk
Pg0KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IA0KKw0KKyAgICBmdW5jdGlv
biBhZGRFdmVudChvYmosIGV2VHlwZSwgZm4pIHsNCisgICAgICAgIGlmIChvYmouYWRkRXZlbnRM
aXN0ZW5lcil7DQorICAgICAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2VHlwZSwgZm4sIGZh
bHNlKTsNCisgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICB9IGVsc2UgaWYgKG9iai5h
dHRhY2hFdmVudCl7DQorICAgICAgICAgIHZhciByID0gb2JqLmF0dGFjaEV2ZW50KCJvbiIrZXZU
eXBlLCBmbik7DQorICAgICAgICAgIHJldHVybiByOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAg
ICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9u
IHJlbG9hZFNlbGVjdCgpIHsNCisgICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJyk7DQorICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0g
JzxzZWxlY3QgaWQ9Im1lbnUiPiBcDQorICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFiY2QiPmFi
Y2Q8L29wdGlvbj5cDQorICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImRlZmciPmVmZ2g8L29wdGlv
bj5cDQorICAgICAgICA8L3NlbGVjdD4nOw0KKw0KKyAgICAgICAgdmFyIG1lbnUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbWVudScpOw0KKyAgICAgICAgYWRkRXZlbnQobWVudSwgJ2NoYW5n
ZScsIHJlbG9hZFNlbGVjdCk7DQorICAgIH0NCisNCisgICAgPC9zY3JpcHQ+DQorPC9oZWFkPg0K
Kzxib2R5Pg0KKyAgICA8cD5EbyB0aGUgZm9sbG93aW5nIGFuZCBzZWUgaWYgQ2hyb21lIGNyYXNo
ZXMuPC9wPg0KKyAgICA8dWw+DQorICAgICAgPGxpPkNsaWNrIHRoZSBzZWxlY3Q8L2xpPiANCisg
ICAgICA8bGk+UHJlc3MgJ2UnIG9uIHlvdXIga2V5Ym9hcmQ8L2xpPiANCisgICAgICA8bGk+Q2xp
Y2sgb24gdGhlIGRvY3VtZW50IGJ1dCBub3QgdGhlIHNlbGVjdCBpdHNlbGYuPC9saT4NCisgICAg
PC91bD4NCisNCisgICAgPGRpdiBpZD0iY29udGFpbmVyIi8+DQorICAgIDxzY3JpcHQ+DQorICAg
ICAgICByZWxvYWRTZWxlY3QoKQ0KKyAgICA8L3NjcmlwdD4NCisgICAgPC9kaXY+IA0KKzwvYm9k
eT4NCis8L2h0bWw+DQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9tYW51YWwtdGVzdHMv
b25jaGFuZ2UtcmVsb2FkLXBvcHVwLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFi
bGUKICAgKyAqCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJv
bWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1l
bnVDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDQ0MjY5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw3ICsxNTMs
NyBAQCBwcml2YXRlOgogICAgICAgICA6IG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAgICAgICwg
bV9vcmlnaW5hbEluZGV4KDApCiAgICAgICAgICwgbV9zZWxlY3RlZEluZGV4KDApCi0gICAgICAg
ICwgbV93aWxsQWNjZXB0T25BYmFuZG9uKGZhbHNlKQorICAgICAgICAsIG1fYWNjZXB0ZWRJbmRl
eE9uQWJhbmRvbigtMSkKICAgICAgICAgLCBtX3Zpc2libGVSb3dzKDApCiAgICAgICAgICwgbV9w
b3B1cENsaWVudChjbGllbnQpCiAgICAgICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCkBAIC0yMjIs
MTEgKzIyMiwxMSBAQCBwcml2YXRlOgogICAgIC8vIGVudGVyIHlldCBob3dldmVyLgogICAgIGlu
dCBtX3NlbGVjdGVkSW5kZXg7CiAKLSAgICAvLyBUcnVlIGlmIHdlIHNob3VsZCBhY2NlcHQgdGhl
IHNlbGVjdGVkSW5kZXggYXMgY2hvc2VuLCBldmVuIGlmIHRoZSBwb3B1cAotICAgIC8vIGlzICJh
YmFuZG9uZWQiLiAgVGhpcyBpcyB1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uLCB3aGVyZSB3
ZSB3YW50IHRoZQorICAgIC8vIElmID49IDAsIHRoaXMgaXMgdGhlIGluZGV4IHdlIHNob3VsZCBh
Y2NlcHQgaWYgdGhlIHBvcHVwIGlzICJhYmFuZG9uZWQiLgorICAgIC8vIFRoaXMgaXMgdXNlZCBm
b3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiwgd2hlcmUgd2Ugd2FudCB0aGUKICAgICAvLyBzZWxlY3Rp
b24gdG8gY2hhbmdlIGltbWVkaWF0ZWx5LCBhbmQgaXMgb25seSB1c2VkIGlmIHRoZSBzZXR0aW5n
cwogICAgIC8vIGFjY2VwdE9uQWJhbmRvbiBmaWVsZCBpcyB0cnVlLgotICAgIGJvb2wgbV93aWxs
QWNjZXB0T25BYmFuZG9uOworICAgIGludCBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb247CiAKICAg
ICAvLyBUaGlzIGlzIHRoZSBudW1iZXIgb2Ygcm93cyB2aXNpYmxlIGluIHRoZSBwb3B1cC4gVGhl
IG1heGltdW0gbnVtYmVyIHZpc2libGUgYXQgYSB0aW1lIGlzCiAgICAgLy8gZGVmaW5lZCBhcyBi
ZWluZyBrTWF4VmlzaWJsZVJvd3MuIEZvciBhIHNjcm9sbGVkIHBvcHVwLCB0aGlzIGNhbiBiZSB0
aG91Z2h0IG9mIGFzIHRoZQpAQCAtNjQ4LDcgKzY0OCw3IEBAIGJvb2wgUG9wdXBMaXN0Qm94Ojpo
YW5kbGVLZXlFdmVudChjb25zdCAKICAgICAgICAgLy8gSUUpLiAgV2UgY2hhbmdlIHRoZSBvcmln
aW5hbCBpbmRleCBzbyB3ZSByZXZlcnQgdG8gdGhhdCB3aGVuIHRoZQogICAgICAgICAvLyBwb3B1
cCBpcyBjbG9zZWQuCiAgICAgICAgIGlmIChtX3NldHRpbmdzLmFjY2VwdE9uQWJhbmRvbikKLSAg
ICAgICAgICAgIG1fd2lsbEFjY2VwdE9uQWJhbmRvbiA9IHRydWU7CisgICAgICAgICAgICBtX2Fj
Y2VwdGVkSW5kZXhPbkFiYW5kb24gPSBtX3NlbGVjdGVkSW5kZXg7CiAKICAgICAgICAgc2V0T3Jp
Z2luYWxJbmRleChtX3NlbGVjdGVkSW5kZXgpOwogICAgICAgICBpZiAobV9zZXR0aW5ncy5zZXRU
ZXh0T25JbmRleENoYW5nZSkKQEAgLTgzOCw4ICs4MzgsMTAgQEAgdm9pZCBQb3B1cExpc3RCb3g6
OmFiYW5kb24oKQogCiAgICAgbV9wb3B1cENsaWVudC0+aGlkZVBvcHVwKCk7CiAKLSAgICBpZiAo
bV93aWxsQWNjZXB0T25BYmFuZG9uKQotICAgICAgICBtX3BvcHVwQ2xpZW50LT52YWx1ZUNoYW5n
ZWQobV9zZWxlY3RlZEluZGV4KTsKKyAgICBpZiAobV9hY2NlcHRlZEluZGV4T25BYmFuZG9uID49
IDApIHsKKyAgICAgICAgbV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKG1fYWNjZXB0ZWRJbmRl
eE9uQWJhbmRvbik7CisgICAgICAgIG1fYWNjZXB0ZWRJbmRleE9uQWJhbmRvbiA9IC0xOworICAg
IH0KIH0KIAogaW50IFBvcHVwTGlzdEJveDo6cG9pbnRUb1Jvd0luZGV4KGNvbnN0IEludFBvaW50
JiBwb2ludCkKQEAgLTEwMTgsMTQgKzEwMjAsNiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6YWRqdXN0
U2VsZWN0ZWRJbmRleChpCiAKIHZvaWQgUG9wdXBMaXN0Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCgp
CiB7Ci0gICAgLy8gSXQgaGFwcGVucyB3aGVuIHByZXNzaW5nIGEga2V5IHRvIGp1bXAgdG8gYW4g
aXRlbSwgdGhlbiB1c2UgdGFiIG9yCi0gICAgLy8gbW91c2UgdG8gZ2V0IGF3YXkgZnJvbSB0aGUg
c2VsZWN0IGJveC4gSW4gdGhhdCBjYXNlLCB1cGRhdGVGcm9tRWxlbWVudAotICAgIC8vIGlzIGNh
bGxlZCBiZWZvcmUgYWJhbmRvbiwgd2hpY2ggY2F1c2VzIGRpc2NhcmRpbmcgb2YgdGhlIHNlbGVj
dCByZXN1bHQuICAgIAotICAgIGlmIChtX3dpbGxBY2NlcHRPbkFiYW5kb24pIHsKLSAgICAgICAg
bV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKG1fc2VsZWN0ZWRJbmRleCk7Ci0gICAgICAgIG1f
d2lsbEFjY2VwdE9uQWJhbmRvbiA9IGZhbHNlOwotICAgIH0KLQogICAgIGNsZWFyKCk7CiAKICAg
ICBpbnQgc2l6ZSA9IG1fcG9wdXBDbGllbnQtPmxpc3RTaXplKCk7Cg==
</data>
<flag name="review"
          id="15709"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30913</attachid>
            <date>2009-06-03 10:57:46 -0700</date>
            <delta_ts>2009-06-03 11:16:15 -0700</delta_ts>
            <desc>Move test to chromium directory</desc>
            <filename>PopupMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>6795</size>
            <attacher name="Victor Wang">victorw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDM4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMDktMDYtMDMgIHZpY3RvcncgIDxzZXQgRU1BSUxfQUREUkVTUyBl
bnZpcm9ubWVudCB2YXJpYWJsZT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKwor
ICAgICAgICAqIG1hbnVhbC10ZXN0cy9jaHJvbWl1bTogQWRkZWQuCisgICAgICAgICogbWFudWFs
LXRlc3RzL2Nocm9taXVtL29uY2hhbmdlLXJlbG9hZC1wb3B1cC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cExpc3RCb3g6OlBvcHVwTGlzdEJveCk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cExpc3RCb3g6OmhhbmRsZUtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlz
dEJveDo6YWJhbmRvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnVwZGF0ZUZy
b21FbGVtZW50KToKKworPDw8PDw8PCAubWluZQor77u/MjAwOS0wNS0yOSAgdmljdG9ydyAgPHZp
Y3RvcndAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyNjA4NzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI2MDg3CisgICAgICAgIFJlbW92aW5nIGVsZW1lbnQgaW4gSlMgY3Jhc2hlcyBDaHJv
bWUgdGFiIGlmIGl0IGZpcmVkIHRoZSBjaGFuZ2UgZXZlbnQKKyAgICAgICAgCisgICAgICAgIEZp
eCB0YWIgY3Jhc2ggY2F1c2VkIGJ5IGRlc3Ryb3lpbmcgdGhlIHBvcHVwIGxpc3QgdGhhdCBmaXJl
ZCB0aGUgY2hhbmdlCisgICAgICAgIGV2ZW50IG9uIGFiYW5kb24uCisgICAgICAgIAorICAgICAg
ICBJZiBhIHBvcHVwIGxpc3QgaXMgYWJhbmRvbmVkIChwcmVzcyBhIGtleSB0byBqdW1wIHRvIGFu
IGl0ZW0gYW5kIHRoZW4KKyAgICAgICAgdXNlIHRhYiBvciBtb3VzZSB0byBnZXQgYXdheSBmcm9t
IHRoZSBzZWxlY3QgYm94KSwgdGhlIGN1cnJlbnQgY29kZQorICAgICAgICBmaXJlcyBhIGNoYW5n
ZSBldmVudCBpbiBQb3B1cExpc3RCb3g6OnVwZGF0ZUZyb21FbGVtdCgpLiBUaGUgSlMgdGhhdAor
ICAgICAgICBsaXN0ZW5zIHRvIHRoaXMgZXZlbnQgbWF5IGRlc3Ryb3kgdGhlIG9iamVjdCBhbmQg
Y2F1c2UgdGhlIHJlc3Qgb2YgcG9wdXAKKyAgICAgICAgbGlzdCBjb2RlIGNyYXNoZXMuCisgICAg
ICAgIAorICAgICAgICBUaGUgdXBkYXRlRnJvbUVsZW1lbnQoKSBpcyBjYWxsZWQgYmVmb3JlIGFi
YW5kb24oKSBhbmQgdGhpcyBjYXVzZXMKKyAgICAgICAgdGhlIHNlbGVjdGVkIGluZGV4IHRvIGJl
IGRpc2NhcmRlZCBhZnRlciB1cGRhdGVGcm9tRWxlbWVudCgpLiBGcm9tIHRoZQorICAgICAgICBj
b2RlIGNvbW1lbnRzLCB0aGlzIGFwcGVhcnMgdG8gYmUgdGhlIHJlYXNvbiB3aHkgdmFsdWVDaGFu
Z2VkIGlzIGNhbGxlZAorICAgICAgICBpbiB1cGRhdGVGcm9tRWxlbWVudC4KKyAgICAgICAgCisg
ICAgICAgIEZpeCB0aGUgaXNzdWUgYnkgcmVtb3ZpbmcgdGhlIHZhbHVlQ2hhbmdlZCBjYWxsIGlu
IHVwZGF0ZUZyb21FbGVtZW50LAorICAgICAgICBzYXZpbmcgdGhlIHNlbGVjdGVkIGluZGV4IHRo
YXQgd2Ugc2hvdWxkIGFjY2VwdCBvbiBhYmFuZG9uIGFuZCBwYXNzIGl0IHRvCisgICAgICAgIHRo
ZSB2YWx1ZUNoYW5nZSBpbiBhYmFuZG9uKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6
OlBvcHVwTGlzdEJveCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OmhhbmRsZUtl
eUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTGlzdEJveDo6YWJhbmRvbik6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KToKKworPT09PT09
PQogMjAwOS0wNi0wMyAgS2V2aW4gV2F0dGVycyAgPGtldmlud2F0dGVyc0BnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCkBAIC0xNzkwLDYgKzE4MzcsNyBA
QAogICAgICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwOgogICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTUUwpOgogCis+Pj4+Pj4+IC5yNDQzODcKIDIwMDkt
MDUtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBidWls
ZDsgdGhlIG5ldyBDYWlybyBjb2RlIGNvbXBpbGVkIG9uIFdpbmRvd3Mgb25seS4KSW5kZXg6IFdl
YkNvcmUvbWFudWFsLXRlc3RzL2Nocm9taXVtL29uY2hhbmdlLXJlbG9hZC1wb3B1cC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3RzL2Nocm9taXVtL29uY2hhbmdlLXJlbG9h
ZC1wb3B1cC5odG1sCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvY2hyb21p
dW0vb25jaGFuZ2UtcmVsb2FkLXBvcHVwLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQg
QEAKKzxodG1sPg0KKzxoZWFkPg0KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
IA0KKw0KKyAgICBmdW5jdGlvbiBhZGRFdmVudChvYmosIGV2VHlwZSwgZm4pIHsNCisgICAgICAg
IGlmIChvYmouYWRkRXZlbnRMaXN0ZW5lcil7DQorICAgICAgICAgIG9iai5hZGRFdmVudExpc3Rl
bmVyKGV2VHlwZSwgZm4sIGZhbHNlKTsNCisgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAg
ICB9IGVsc2UgaWYgKG9iai5hdHRhY2hFdmVudCl7DQorICAgICAgICAgIHZhciByID0gb2JqLmF0
dGFjaEV2ZW50KCJvbiIrZXZUeXBlLCBmbik7DQorICAgICAgICAgIHJldHVybiByOw0KKyAgICAg
ICAgfSBlbHNlIHsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICB9
DQorDQorICAgIGZ1bmN0aW9uIHJlbG9hZFNlbGVjdCgpIHsNCisgICAgICAgIHZhciBjb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7DQorICAgICAgICBjb250
YWluZXIuaW5uZXJIVE1MID0gJzxzZWxlY3QgaWQ9Im1lbnUiPiBcDQorICAgICAgICAgIDxvcHRp
b24gdmFsdWU9ImFiY2QiPmFiY2Q8L29wdGlvbj5cDQorICAgICAgICAgIDxvcHRpb24gdmFsdWU9
ImRlZmciPmVmZ2g8L29wdGlvbj5cDQorICAgICAgICA8L3NlbGVjdD4nOw0KKw0KKyAgICAgICAg
dmFyIG1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudScpOw0KKyAgICAgICAgYWRk
RXZlbnQobWVudSwgJ2NoYW5nZScsIHJlbG9hZFNlbGVjdCk7DQorICAgIH0NCisNCisgICAgPC9z
Y3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5Pg0KKyAgICA8cD5EbyB0aGUgZm9sbG93aW5nIGFuZCBz
ZWUgaWYgQ2hyb21pdW0gY3Jhc2hlcy48L3A+DQorICAgIDx1bD4NCisgICAgICA8bGk+Q2xpY2sg
dGhlIHNlbGVjdDwvbGk+IA0KKyAgICAgIDxsaT5QcmVzcyAnZScgb24geW91ciBrZXlib2FyZDwv
bGk+IA0KKyAgICAgIDxsaT5DbGljayBvbiB0aGUgZG9jdW1lbnQgYnV0IG5vdCB0aGUgc2VsZWN0
IGl0c2VsZi48L2xpPg0KKyAgICA8L3VsPg0KKw0KKyAgICA8ZGl2IGlkPSJjb250YWluZXIiLz4N
CisgICAgPHNjcmlwdD4NCisgICAgICAgIHJlbG9hZFNlbGVjdCgpDQorICAgIDwvc2NyaXB0Pg0K
KyAgICA8L2Rpdj4gDQorPC9ib2R5Pg0KKzwvaHRtbD4NCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9jaHJvbWl1bS9vbmNoYW5nZS1yZWxvYWQtcG9wdXAuaHRtbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAkocmV2aXNpb24gNDQy
NjkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIDogbV9z
ZXR0aW5ncyhzZXR0aW5ncykKICAgICAgICAgLCBtX29yaWdpbmFsSW5kZXgoMCkKICAgICAgICAg
LCBtX3NlbGVjdGVkSW5kZXgoMCkKLSAgICAgICAgLCBtX3dpbGxBY2NlcHRPbkFiYW5kb24oZmFs
c2UpCisgICAgICAgICwgbV9hY2NlcHRlZEluZGV4T25BYmFuZG9uKC0xKQogICAgICAgICAsIG1f
dmlzaWJsZVJvd3MoMCkKICAgICAgICAgLCBtX3BvcHVwQ2xpZW50KGNsaWVudCkKICAgICAgICAg
LCBtX3JlcGVhdGluZ0NoYXIoMCkKQEAgLTIyMiwxMSArMjIyLDExIEBAIHByaXZhdGU6CiAgICAg
Ly8gZW50ZXIgeWV0IGhvd2V2ZXIuCiAgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKIAotICAgIC8v
IFRydWUgaWYgd2Ugc2hvdWxkIGFjY2VwdCB0aGUgc2VsZWN0ZWRJbmRleCBhcyBjaG9zZW4sIGV2
ZW4gaWYgdGhlIHBvcHVwCi0gICAgLy8gaXMgImFiYW5kb25lZCIuICBUaGlzIGlzIHVzZWQgZm9y
IGtleWJvYXJkIG5hdmlnYXRpb24sIHdoZXJlIHdlIHdhbnQgdGhlCisgICAgLy8gSWYgPj0gMCwg
dGhpcyBpcyB0aGUgaW5kZXggd2Ugc2hvdWxkIGFjY2VwdCBpZiB0aGUgcG9wdXAgaXMgImFiYW5k
b25lZCIuCisgICAgLy8gVGhpcyBpcyB1c2VkIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uLCB3aGVy
ZSB3ZSB3YW50IHRoZQogICAgIC8vIHNlbGVjdGlvbiB0byBjaGFuZ2UgaW1tZWRpYXRlbHksIGFu
ZCBpcyBvbmx5IHVzZWQgaWYgdGhlIHNldHRpbmdzCiAgICAgLy8gYWNjZXB0T25BYmFuZG9uIGZp
ZWxkIGlzIHRydWUuCi0gICAgYm9vbCBtX3dpbGxBY2NlcHRPbkFiYW5kb247CisgICAgaW50IG1f
YWNjZXB0ZWRJbmRleE9uQWJhbmRvbjsKIAogICAgIC8vIFRoaXMgaXMgdGhlIG51bWJlciBvZiBy
b3dzIHZpc2libGUgaW4gdGhlIHBvcHVwLiBUaGUgbWF4aW11bSBudW1iZXIgdmlzaWJsZSBhdCBh
IHRpbWUgaXMKICAgICAvLyBkZWZpbmVkIGFzIGJlaW5nIGtNYXhWaXNpYmxlUm93cy4gRm9yIGEg
c2Nyb2xsZWQgcG9wdXAsIHRoaXMgY2FuIGJlIHRob3VnaHQgb2YgYXMgdGhlCkBAIC02NDgsNyAr
NjQ4LDcgQEAgYm9vbCBQb3B1cExpc3RCb3g6OmhhbmRsZUtleUV2ZW50KGNvbnN0IAogICAgICAg
ICAvLyBJRSkuICBXZSBjaGFuZ2UgdGhlIG9yaWdpbmFsIGluZGV4IHNvIHdlIHJldmVydCB0byB0
aGF0IHdoZW4gdGhlCiAgICAgICAgIC8vIHBvcHVwIGlzIGNsb3NlZC4KICAgICAgICAgaWYgKG1f
c2V0dGluZ3MuYWNjZXB0T25BYmFuZG9uKQotICAgICAgICAgICAgbV93aWxsQWNjZXB0T25BYmFu
ZG9uID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fYWNjZXB0ZWRJbmRleE9uQWJhbmRvbiA9IG1fc2Vs
ZWN0ZWRJbmRleDsKIAogICAgICAgICBzZXRPcmlnaW5hbEluZGV4KG1fc2VsZWN0ZWRJbmRleCk7
CiAgICAgICAgIGlmIChtX3NldHRpbmdzLnNldFRleHRPbkluZGV4Q2hhbmdlKQpAQCAtODM4LDgg
KzgzOCwxMCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6YWJhbmRvbigpCiAKICAgICBtX3BvcHVwQ2xp
ZW50LT5oaWRlUG9wdXAoKTsKIAotICAgIGlmIChtX3dpbGxBY2NlcHRPbkFiYW5kb24pCi0gICAg
ICAgIG1fcG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOworICAgIGlm
IChtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24gPj0gMCkgeworICAgICAgICBtX3BvcHVwQ2xpZW50
LT52YWx1ZUNoYW5nZWQobV9hY2NlcHRlZEluZGV4T25BYmFuZG9uKTsKKyAgICAgICAgbV9hY2Nl
cHRlZEluZGV4T25BYmFuZG9uID0gLTE7CisgICAgfQogfQogCiBpbnQgUG9wdXBMaXN0Qm94Ojpw
b2ludFRvUm93SW5kZXgoY29uc3QgSW50UG9pbnQmIHBvaW50KQpAQCAtMTAxOCwxNCArMTAyMCw2
IEBAIHZvaWQgUG9wdXBMaXN0Qm94OjphZGp1c3RTZWxlY3RlZEluZGV4KGkKIAogdm9pZCBQb3B1
cExpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KCkKIHsKLSAgICAvLyBJdCBoYXBwZW5zIHdoZW4g
cHJlc3NpbmcgYSBrZXkgdG8ganVtcCB0byBhbiBpdGVtLCB0aGVuIHVzZSB0YWIgb3IKLSAgICAv
LyBtb3VzZSB0byBnZXQgYXdheSBmcm9tIHRoZSBzZWxlY3QgYm94LiBJbiB0aGF0IGNhc2UsIHVw
ZGF0ZUZyb21FbGVtZW50Ci0gICAgLy8gaXMgY2FsbGVkIGJlZm9yZSBhYmFuZG9uLCB3aGljaCBj
YXVzZXMgZGlzY2FyZGluZyBvZiB0aGUgc2VsZWN0IHJlc3VsdC4gICAgCi0gICAgaWYgKG1fd2ls
bEFjY2VwdE9uQWJhbmRvbikgewotICAgICAgICBtX3BvcHVwQ2xpZW50LT52YWx1ZUNoYW5nZWQo
bV9zZWxlY3RlZEluZGV4KTsKLSAgICAgICAgbV93aWxsQWNjZXB0T25BYmFuZG9uID0gZmFsc2U7
Ci0gICAgfQotCiAgICAgY2xlYXIoKTsKIAogICAgIGludCBzaXplID0gbV9wb3B1cENsaWVudC0+
bGlzdFNpemUoKTsK
</data>
<flag name="review"
          id="15711"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30915</attachid>
            <date>2009-06-03 11:16:15 -0700</date>
            <delta_ts>2009-06-03 11:22:33 -0700</delta_ts>
            <desc>Move test to chromium directory</desc>
            <filename>PopupMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>6185</size>
            <attacher name="Victor Wang">victorw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDM4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKK++7vzIwMDktMDYtMDMgIHZpY3RvcncgIDx2aWN0b3J3QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjA4NworICAg
ICAgICBCdWcgMjYwODc6IFJlbW92aW5nIGVsZW1lbnQgaW4gSlMgY3Jhc2hlcyBDaHJvbWUgdGFi
IGlmIGl0IGZpcmVkIHRoZSBjaGFuZ2UgZXZlbnQKKyAgICAgICAgCisgICAgICAgIEZpeCB0YWIg
Y3Jhc2ggY2F1c2VkIGJ5IGRlc3Ryb3lpbmcgdGhlIHBvcHVwIGxpc3QgdGhhdCBmaXJlZCB0aGUg
Y2hhbmdlIGV2ZW50IG9uIGFiYW5kb24uCisgICAgICAgIAorICAgICAgICBJZiBhIHBvcHVwIGxp
c3QgaXMgYWJhbmRvbmVkIChwcmVzcyBhIGtleSB0byBqdW1wIHRvIGFuIGl0ZW0KKyAgICAgICAg
YW5kIHRoZW4gdXNlIHRhYiBvciBtb3VzZSB0byBnZXQgYXdheSBmcm9tIHRoZSBzZWxlY3QgYm94
KSwKKyAgICAgICAgdGhlIGN1cnJlbnQgY29kZSBmaXJlcyBhIGNoYW5nZSBldmVudCBpbiBQb3B1
cExpc3RCb3g6OnVwZGF0ZUZyb21FbGVtdCgpLgorICAgICAgICBUaGUgSlMgdGhhdCBsaXN0ZW5z
IHRvIHRoaXMgZXZlbnQgbWF5IGRlc3Ryb3kgdGhlIG9iamVjdCBhbmQgY2F1c2UgdGhlCisgICAg
ICAgIHJlc3Qgb2YgcG9wdXAgbGlzdCBjb2RlIGNyYXNoZXMuCisgICAgICAgIAorICAgICAgICBU
aGUgdXBkYXRlRnJvbUVsZW1lbnQoKSBpcyBjYWxsZWQgYmVmb3JlIGFiYW5kb24oKSBhbmQgdGhp
cyBjYXVzZXMKKyAgICAgICAgdGhlIHNlbGVjdGVkIGluZGV4IHRvIGJlIGRpc2NhcmRlZCBhZnRl
ciB1cGRhdGVGcm9tRWxlbWVudCgpLiBGcm9tCisgICAgICAgIHRoZSBjb2RlIGNvbW1lbnRzLCB0
aGlzIGFwcGVhcnMgdG8gYmUgdGhlIHJlYXNvbiB3aHkgdmFsdWVDaGFuZ2VkIGlzCisgICAgICAg
IGNhbGxlZCBpbiB1cGRhdGVGcm9tRWxlbWVudC4KKyAgICAgICAgCisgICAgICAgIEZpeCB0aGUg
aXNzdWUgYnkgcmVtb3ZpbmcgdGhlIHZhbHVlQ2hhbmdlZCBjYWxsIGluIHVwZGF0ZUZyb21FbGVt
ZW50LAorICAgICAgICBzYXZpbmcgdGhlIHNlbGVjdGVkIGluZGV4IHRoYXQgd2Ugc2hvdWxkIGFj
Y2VwdCBvbiBhYmFuZG9uIGFuZCBwYXNzCisgICAgICAgIGl0IHRvIHRoZSB2YWx1ZUNoYW5nZSBp
biBhYmFuZG9uKCkuCisgICAgICAgIAorICAgICAgICBBIG1hbnVhbCB0ZXN0IGhhcyBiZWVuIGFk
ZGVkLgorICAgICAgICAKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvY2hyb21pdW06IEFkZGVkLgor
ICAgICAgICAqIG1hbnVhbC10ZXN0cy9jaHJvbWl1bS9vbmNoYW5nZS1yZWxvYWQtcG9wdXAuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpQb3B1cExpc3RCb3gpOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpoYW5kbGVLZXlFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQb3B1cExpc3RCb3g6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBM
aXN0Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisKIDIwMDktMDYtMDMgIEtldmluIFdhdHRlcnMg
IDxrZXZpbndhdHRlcnNAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9s
bGl2aWVyLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvY2hyb21pdW0vb25jaGFuZ2UtcmVs
b2FkLXBvcHVwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvY2hyb21p
dW0vb25jaGFuZ2UtcmVsb2FkLXBvcHVwLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21h
bnVhbC10ZXN0cy9jaHJvbWl1bS9vbmNoYW5nZS1yZWxvYWQtcG9wdXAuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+DQorPGhlYWQ+DQorICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4gDQorDQorICAgIGZ1bmN0aW9uIGFkZEV2ZW50KG9iaiwgZXZUeXBl
LCBmbikgew0KKyAgICAgICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKXsNCisgICAgICAgICAg
b2JqLmFkZEV2ZW50TGlzdGVuZXIoZXZUeXBlLCBmbiwgZmFsc2UpOw0KKyAgICAgICAgICByZXR1
cm4gdHJ1ZTsNCisgICAgICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KXsNCisgICAgICAg
ICAgdmFyIHIgPSBvYmouYXR0YWNoRXZlbnQoIm9uIitldlR5cGUsIGZuKTsNCisgICAgICAgICAg
cmV0dXJuIHI7DQorICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQor
ICAgICAgICB9DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gcmVsb2FkU2VsZWN0KCkgew0KKyAg
ICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXIn
KTsNCisgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPHNlbGVjdCBpZD0ibWVudSI+IFwN
CisgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWJjZCI+YWJjZDwvb3B0aW9uPlwNCisgICAgICAg
ICAgPG9wdGlvbiB2YWx1ZT0iZGVmZyI+ZWZnaDwvb3B0aW9uPlwNCisgICAgICAgIDwvc2VsZWN0
Pic7DQorDQorICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51
Jyk7DQorICAgICAgICBhZGRFdmVudChtZW51LCAnY2hhbmdlJywgcmVsb2FkU2VsZWN0KTsNCisg
ICAgfQ0KKw0KKyAgICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwPkRvIHRo
ZSBmb2xsb3dpbmcgYW5kIHNlZSBpZiBDaHJvbWl1bSBjcmFzaGVzLjwvcD4NCisgICAgPHVsPg0K
KyAgICAgIDxsaT5DbGljayB0aGUgc2VsZWN0PC9saT4gDQorICAgICAgPGxpPlByZXNzICdlJyBv
biB5b3VyIGtleWJvYXJkPC9saT4gDQorICAgICAgPGxpPkNsaWNrIG9uIHRoZSBkb2N1bWVudCBi
dXQgbm90IHRoZSBzZWxlY3QgaXRzZWxmLjwvbGk+DQorICAgIDwvdWw+DQorDQorICAgIDxkaXYg
aWQ9ImNvbnRhaW5lciIvPg0KKyAgICA8c2NyaXB0Pg0KKyAgICAgICAgcmVsb2FkU2VsZWN0KCkN
CisgICAgPC9zY3JpcHQ+DQorICAgIDwvZGl2PiANCis8L2JvZHk+DQorPC9odG1sPg0KClByb3Bl
cnR5IGNoYW5nZXMgb246IFdlYkNvcmUvbWFudWFsLXRlc3RzL2Nocm9taXVtL29uY2hhbmdlLXJl
bG9hZC1wb3B1cC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0u
Y3BwCShyZXZpc2lvbiA0NDI2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBN
ZW51Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgOiBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICAgICAsIG1fb3JpZ2luYWxJ
bmRleCgwKQogICAgICAgICAsIG1fc2VsZWN0ZWRJbmRleCgwKQotICAgICAgICAsIG1fd2lsbEFj
Y2VwdE9uQWJhbmRvbihmYWxzZSkKKyAgICAgICAgLCBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24o
LTEpCiAgICAgICAgICwgbV92aXNpYmxlUm93cygwKQogICAgICAgICAsIG1fcG9wdXBDbGllbnQo
Y2xpZW50KQogICAgICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQpAQCAtMjIyLDExICsyMjIsMTEg
QEAgcHJpdmF0ZToKICAgICAvLyBlbnRlciB5ZXQgaG93ZXZlci4KICAgICBpbnQgbV9zZWxlY3Rl
ZEluZGV4OwogCi0gICAgLy8gVHJ1ZSBpZiB3ZSBzaG91bGQgYWNjZXB0IHRoZSBzZWxlY3RlZElu
ZGV4IGFzIGNob3NlbiwgZXZlbiBpZiB0aGUgcG9wdXAKLSAgICAvLyBpcyAiYWJhbmRvbmVkIi4g
IFRoaXMgaXMgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiwgd2hlcmUgd2Ugd2FudCB0aGUK
KyAgICAvLyBJZiA+PSAwLCB0aGlzIGlzIHRoZSBpbmRleCB3ZSBzaG91bGQgYWNjZXB0IGlmIHRo
ZSBwb3B1cCBpcyAiYWJhbmRvbmVkIi4KKyAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIGtleWJvYXJk
IG5hdmlnYXRpb24sIHdoZXJlIHdlIHdhbnQgdGhlCiAgICAgLy8gc2VsZWN0aW9uIHRvIGNoYW5n
ZSBpbW1lZGlhdGVseSwgYW5kIGlzIG9ubHkgdXNlZCBpZiB0aGUgc2V0dGluZ3MKICAgICAvLyBh
Y2NlcHRPbkFiYW5kb24gZmllbGQgaXMgdHJ1ZS4KLSAgICBib29sIG1fd2lsbEFjY2VwdE9uQWJh
bmRvbjsKKyAgICBpbnQgbV9hY2NlcHRlZEluZGV4T25BYmFuZG9uOwogCiAgICAgLy8gVGhpcyBp
cyB0aGUgbnVtYmVyIG9mIHJvd3MgdmlzaWJsZSBpbiB0aGUgcG9wdXAuIFRoZSBtYXhpbXVtIG51
bWJlciB2aXNpYmxlIGF0IGEgdGltZSBpcwogICAgIC8vIGRlZmluZWQgYXMgYmVpbmcga01heFZp
c2libGVSb3dzLiBGb3IgYSBzY3JvbGxlZCBwb3B1cCwgdGhpcyBjYW4gYmUgdGhvdWdodCBvZiBh
cyB0aGUKQEAgLTY0OCw3ICs2NDgsNyBAQCBib29sIFBvcHVwTGlzdEJveDo6aGFuZGxlS2V5RXZl
bnQoY29uc3QgCiAgICAgICAgIC8vIElFKS4gIFdlIGNoYW5nZSB0aGUgb3JpZ2luYWwgaW5kZXgg
c28gd2UgcmV2ZXJ0IHRvIHRoYXQgd2hlbiB0aGUKICAgICAgICAgLy8gcG9wdXAgaXMgY2xvc2Vk
LgogICAgICAgICBpZiAobV9zZXR0aW5ncy5hY2NlcHRPbkFiYW5kb24pCi0gICAgICAgICAgICBt
X3dpbGxBY2NlcHRPbkFiYW5kb24gPSB0cnVlOworICAgICAgICAgICAgbV9hY2NlcHRlZEluZGV4
T25BYmFuZG9uID0gbV9zZWxlY3RlZEluZGV4OwogCiAgICAgICAgIHNldE9yaWdpbmFsSW5kZXgo
bV9zZWxlY3RlZEluZGV4KTsKICAgICAgICAgaWYgKG1fc2V0dGluZ3Muc2V0VGV4dE9uSW5kZXhD
aGFuZ2UpCkBAIC04MzgsOCArODM4LDEwIEBAIHZvaWQgUG9wdXBMaXN0Qm94OjphYmFuZG9uKCkK
IAogICAgIG1fcG9wdXBDbGllbnQtPmhpZGVQb3B1cCgpOwogCi0gICAgaWYgKG1fd2lsbEFjY2Vw
dE9uQWJhbmRvbikKLSAgICAgICAgbV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKG1fc2VsZWN0
ZWRJbmRleCk7CisgICAgaWYgKG1fYWNjZXB0ZWRJbmRleE9uQWJhbmRvbiA+PSAwKSB7CisgICAg
ICAgIG1fcG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24p
OworICAgICAgICBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24gPSAtMTsKKyAgICB9CiB9CiAKIGlu
dCBQb3B1cExpc3RCb3g6OnBvaW50VG9Sb3dJbmRleChjb25zdCBJbnRQb2ludCYgcG9pbnQpCkBA
IC0xMDE4LDE0ICsxMDIwLDYgQEAgdm9pZCBQb3B1cExpc3RCb3g6OmFkanVzdFNlbGVjdGVkSW5k
ZXgoaQogCiB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIC8v
IEl0IGhhcHBlbnMgd2hlbiBwcmVzc2luZyBhIGtleSB0byBqdW1wIHRvIGFuIGl0ZW0sIHRoZW4g
dXNlIHRhYiBvcgotICAgIC8vIG1vdXNlIHRvIGdldCBhd2F5IGZyb20gdGhlIHNlbGVjdCBib3gu
IEluIHRoYXQgY2FzZSwgdXBkYXRlRnJvbUVsZW1lbnQKLSAgICAvLyBpcyBjYWxsZWQgYmVmb3Jl
IGFiYW5kb24sIHdoaWNoIGNhdXNlcyBkaXNjYXJkaW5nIG9mIHRoZSBzZWxlY3QgcmVzdWx0LiAg
ICAKLSAgICBpZiAobV93aWxsQWNjZXB0T25BYmFuZG9uKSB7Ci0gICAgICAgIG1fcG9wdXBDbGll
bnQtPnZhbHVlQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOwotICAgICAgICBtX3dpbGxBY2NlcHRP
bkFiYW5kb24gPSBmYWxzZTsKLSAgICB9Ci0KICAgICBjbGVhcigpOwogCiAgICAgaW50IHNpemUg
PSBtX3BvcHVwQ2xpZW50LT5saXN0U2l6ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30916</attachid>
            <date>2009-06-03 11:22:33 -0700</date>
            <delta_ts>2009-06-03 11:25:09 -0700</delta_ts>
            <desc>Move test to chromium directory</desc>
            <filename>PopupMenuPatch.txt</filename>
            <type>text/plain</type>
            <size>6182</size>
            <attacher name="Victor Wang">victorw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDM4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMDktMDYtMDMgIHZpY3RvcncgIDx2aWN0b3J3QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjA4NworICAgICAg
ICBCdWcgMjYwODc6IFJlbW92aW5nIGVsZW1lbnQgaW4gSlMgY3Jhc2hlcyBDaHJvbWUgdGFiIGlm
IGl0IGZpcmVkIHRoZSBjaGFuZ2UgZXZlbnQKKyAgICAgICAgCisgICAgICAgIEZpeCB0YWIgY3Jh
c2ggY2F1c2VkIGJ5IGRlc3Ryb3lpbmcgdGhlIHBvcHVwIGxpc3QgdGhhdCBmaXJlZCB0aGUgY2hh
bmdlIGV2ZW50IG9uIGFiYW5kb24uCisgICAgICAgIAorICAgICAgICBJZiBhIHBvcHVwIGxpc3Qg
aXMgYWJhbmRvbmVkIChwcmVzcyBhIGtleSB0byBqdW1wIHRvIGFuIGl0ZW0KKyAgICAgICAgYW5k
IHRoZW4gdXNlIHRhYiBvciBtb3VzZSB0byBnZXQgYXdheSBmcm9tIHRoZSBzZWxlY3QgYm94KSwK
KyAgICAgICAgdGhlIGN1cnJlbnQgY29kZSBmaXJlcyBhIGNoYW5nZSBldmVudCBpbiBQb3B1cExp
c3RCb3g6OnVwZGF0ZUZyb21FbGVtdCgpLgorICAgICAgICBUaGUgSlMgdGhhdCBsaXN0ZW5zIHRv
IHRoaXMgZXZlbnQgbWF5IGRlc3Ryb3kgdGhlIG9iamVjdCBhbmQgY2F1c2UgdGhlCisgICAgICAg
IHJlc3Qgb2YgcG9wdXAgbGlzdCBjb2RlIGNyYXNoZXMuCisgICAgICAgIAorICAgICAgICBUaGUg
dXBkYXRlRnJvbUVsZW1lbnQoKSBpcyBjYWxsZWQgYmVmb3JlIGFiYW5kb24oKSBhbmQgdGhpcyBj
YXVzZXMKKyAgICAgICAgdGhlIHNlbGVjdGVkIGluZGV4IHRvIGJlIGRpc2NhcmRlZCBhZnRlciB1
cGRhdGVGcm9tRWxlbWVudCgpLiBGcm9tCisgICAgICAgIHRoZSBjb2RlIGNvbW1lbnRzLCB0aGlz
IGFwcGVhcnMgdG8gYmUgdGhlIHJlYXNvbiB3aHkgdmFsdWVDaGFuZ2VkIGlzCisgICAgICAgIGNh
bGxlZCBpbiB1cGRhdGVGcm9tRWxlbWVudC4KKyAgICAgICAgCisgICAgICAgIEZpeCB0aGUgaXNz
dWUgYnkgcmVtb3ZpbmcgdGhlIHZhbHVlQ2hhbmdlZCBjYWxsIGluIHVwZGF0ZUZyb21FbGVtZW50
LAorICAgICAgICBzYXZpbmcgdGhlIHNlbGVjdGVkIGluZGV4IHRoYXQgd2Ugc2hvdWxkIGFjY2Vw
dCBvbiBhYmFuZG9uIGFuZCBwYXNzCisgICAgICAgIGl0IHRvIHRoZSB2YWx1ZUNoYW5nZSBpbiBh
YmFuZG9uKCkuCisgICAgICAgIAorICAgICAgICBBIG1hbnVhbCB0ZXN0IGhhcyBiZWVuIGFkZGVk
LgorICAgICAgICAKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvY2hyb21pdW06IEFkZGVkLgorICAg
ICAgICAqIG1hbnVhbC10ZXN0cy9jaHJvbWl1bS9vbmNoYW5nZS1yZWxvYWQtcG9wdXAuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpQb3B1cExpc3RCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UG9wdXBMaXN0Qm94OjpoYW5kbGVLZXlFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpQb3B1cExpc3RCb3g6OmFiYW5kb24pOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBMaXN0
Qm94Ojp1cGRhdGVGcm9tRWxlbWVudCk6CisKIDIwMDktMDYtMDMgIEtldmluIFdhdHRlcnMgIDxr
ZXZpbndhdHRlcnNAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9sbGl2
aWVyLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvY2hyb21pdW0vb25jaGFuZ2UtcmVsb2Fk
LXBvcHVwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvY2hyb21pdW0v
b25jaGFuZ2UtcmVsb2FkLXBvcHVwLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL21hbnVh
bC10ZXN0cy9jaHJvbWl1bS9vbmNoYW5nZS1yZWxvYWQtcG9wdXAuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0NCBAQAorPGh0bWw+DQorPGhlYWQ+DQorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4gDQorDQorICAgIGZ1bmN0aW9uIGFkZEV2ZW50KG9iaiwgZXZUeXBlLCBm
bikgew0KKyAgICAgICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKXsNCisgICAgICAgICAgb2Jq
LmFkZEV2ZW50TGlzdGVuZXIoZXZUeXBlLCBmbiwgZmFsc2UpOw0KKyAgICAgICAgICByZXR1cm4g
dHJ1ZTsNCisgICAgICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KXsNCisgICAgICAgICAg
dmFyIHIgPSBvYmouYXR0YWNoRXZlbnQoIm9uIitldlR5cGUsIGZuKTsNCisgICAgICAgICAgcmV0
dXJuIHI7DQorICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAg
ICAgICB9DQorICAgIH0NCisNCisgICAgZnVuY3Rpb24gcmVsb2FkU2VsZWN0KCkgew0KKyAgICAg
ICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsN
CisgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPHNlbGVjdCBpZD0ibWVudSI+IFwNCisg
ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWJjZCI+YWJjZDwvb3B0aW9uPlwNCisgICAgICAgICAg
PG9wdGlvbiB2YWx1ZT0iZGVmZyI+ZWZnaDwvb3B0aW9uPlwNCisgICAgICAgIDwvc2VsZWN0Pic7
DQorDQorICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51Jyk7
DQorICAgICAgICBhZGRFdmVudChtZW51LCAnY2hhbmdlJywgcmVsb2FkU2VsZWN0KTsNCisgICAg
fQ0KKw0KKyAgICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwPkRvIHRoZSBm
b2xsb3dpbmcgYW5kIHNlZSBpZiBDaHJvbWl1bSBjcmFzaGVzLjwvcD4NCisgICAgPHVsPg0KKyAg
ICAgIDxsaT5DbGljayB0aGUgc2VsZWN0PC9saT4gDQorICAgICAgPGxpPlByZXNzICdlJyBvbiB5
b3VyIGtleWJvYXJkPC9saT4gDQorICAgICAgPGxpPkNsaWNrIG9uIHRoZSBkb2N1bWVudCBidXQg
bm90IHRoZSBzZWxlY3QgaXRzZWxmLjwvbGk+DQorICAgIDwvdWw+DQorDQorICAgIDxkaXYgaWQ9
ImNvbnRhaW5lciIvPg0KKyAgICA8c2NyaXB0Pg0KKyAgICAgICAgcmVsb2FkU2VsZWN0KCkNCisg
ICAgPC9zY3JpcHQ+DQorICAgIDwvZGl2PiANCis8L2JvZHk+DQorPC9odG1sPg0KClByb3BlcnR5
IGNoYW5nZXMgb246IFdlYkNvcmUvbWFudWFsLXRlc3RzL2Nocm9taXVtL29uY2hhbmdlLXJlbG9h
ZC1wb3B1cC5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51Q2hyb21pdW0uY3Bw
CShyZXZpc2lvbiA0NDI2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51
Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgOiBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICAgICAsIG1fb3JpZ2luYWxJbmRl
eCgwKQogICAgICAgICAsIG1fc2VsZWN0ZWRJbmRleCgwKQotICAgICAgICAsIG1fd2lsbEFjY2Vw
dE9uQWJhbmRvbihmYWxzZSkKKyAgICAgICAgLCBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24oLTEp
CiAgICAgICAgICwgbV92aXNpYmxlUm93cygwKQogICAgICAgICAsIG1fcG9wdXBDbGllbnQoY2xp
ZW50KQogICAgICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQpAQCAtMjIyLDExICsyMjIsMTEgQEAg
cHJpdmF0ZToKICAgICAvLyBlbnRlciB5ZXQgaG93ZXZlci4KICAgICBpbnQgbV9zZWxlY3RlZElu
ZGV4OwogCi0gICAgLy8gVHJ1ZSBpZiB3ZSBzaG91bGQgYWNjZXB0IHRoZSBzZWxlY3RlZEluZGV4
IGFzIGNob3NlbiwgZXZlbiBpZiB0aGUgcG9wdXAKLSAgICAvLyBpcyAiYWJhbmRvbmVkIi4gIFRo
aXMgaXMgdXNlZCBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbiwgd2hlcmUgd2Ugd2FudCB0aGUKKyAg
ICAvLyBJZiA+PSAwLCB0aGlzIGlzIHRoZSBpbmRleCB3ZSBzaG91bGQgYWNjZXB0IGlmIHRoZSBw
b3B1cCBpcyAiYWJhbmRvbmVkIi4KKyAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIGtleWJvYXJkIG5h
dmlnYXRpb24sIHdoZXJlIHdlIHdhbnQgdGhlCiAgICAgLy8gc2VsZWN0aW9uIHRvIGNoYW5nZSBp
bW1lZGlhdGVseSwgYW5kIGlzIG9ubHkgdXNlZCBpZiB0aGUgc2V0dGluZ3MKICAgICAvLyBhY2Nl
cHRPbkFiYW5kb24gZmllbGQgaXMgdHJ1ZS4KLSAgICBib29sIG1fd2lsbEFjY2VwdE9uQWJhbmRv
bjsKKyAgICBpbnQgbV9hY2NlcHRlZEluZGV4T25BYmFuZG9uOwogCiAgICAgLy8gVGhpcyBpcyB0
aGUgbnVtYmVyIG9mIHJvd3MgdmlzaWJsZSBpbiB0aGUgcG9wdXAuIFRoZSBtYXhpbXVtIG51bWJl
ciB2aXNpYmxlIGF0IGEgdGltZSBpcwogICAgIC8vIGRlZmluZWQgYXMgYmVpbmcga01heFZpc2li
bGVSb3dzLiBGb3IgYSBzY3JvbGxlZCBwb3B1cCwgdGhpcyBjYW4gYmUgdGhvdWdodCBvZiBhcyB0
aGUKQEAgLTY0OCw3ICs2NDgsNyBAQCBib29sIFBvcHVwTGlzdEJveDo6aGFuZGxlS2V5RXZlbnQo
Y29uc3QgCiAgICAgICAgIC8vIElFKS4gIFdlIGNoYW5nZSB0aGUgb3JpZ2luYWwgaW5kZXggc28g
d2UgcmV2ZXJ0IHRvIHRoYXQgd2hlbiB0aGUKICAgICAgICAgLy8gcG9wdXAgaXMgY2xvc2VkLgog
ICAgICAgICBpZiAobV9zZXR0aW5ncy5hY2NlcHRPbkFiYW5kb24pCi0gICAgICAgICAgICBtX3dp
bGxBY2NlcHRPbkFiYW5kb24gPSB0cnVlOworICAgICAgICAgICAgbV9hY2NlcHRlZEluZGV4T25B
YmFuZG9uID0gbV9zZWxlY3RlZEluZGV4OwogCiAgICAgICAgIHNldE9yaWdpbmFsSW5kZXgobV9z
ZWxlY3RlZEluZGV4KTsKICAgICAgICAgaWYgKG1fc2V0dGluZ3Muc2V0VGV4dE9uSW5kZXhDaGFu
Z2UpCkBAIC04MzgsOCArODM4LDEwIEBAIHZvaWQgUG9wdXBMaXN0Qm94OjphYmFuZG9uKCkKIAog
ICAgIG1fcG9wdXBDbGllbnQtPmhpZGVQb3B1cCgpOwogCi0gICAgaWYgKG1fd2lsbEFjY2VwdE9u
QWJhbmRvbikKLSAgICAgICAgbV9wb3B1cENsaWVudC0+dmFsdWVDaGFuZ2VkKG1fc2VsZWN0ZWRJ
bmRleCk7CisgICAgaWYgKG1fYWNjZXB0ZWRJbmRleE9uQWJhbmRvbiA+PSAwKSB7CisgICAgICAg
IG1fcG9wdXBDbGllbnQtPnZhbHVlQ2hhbmdlZChtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24pOwor
ICAgICAgICBtX2FjY2VwdGVkSW5kZXhPbkFiYW5kb24gPSAtMTsKKyAgICB9CiB9CiAKIGludCBQ
b3B1cExpc3RCb3g6OnBvaW50VG9Sb3dJbmRleChjb25zdCBJbnRQb2ludCYgcG9pbnQpCkBAIC0x
MDE4LDE0ICsxMDIwLDYgQEAgdm9pZCBQb3B1cExpc3RCb3g6OmFkanVzdFNlbGVjdGVkSW5kZXgo
aQogCiB2b2lkIFBvcHVwTGlzdEJveDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIC8vIEl0
IGhhcHBlbnMgd2hlbiBwcmVzc2luZyBhIGtleSB0byBqdW1wIHRvIGFuIGl0ZW0sIHRoZW4gdXNl
IHRhYiBvcgotICAgIC8vIG1vdXNlIHRvIGdldCBhd2F5IGZyb20gdGhlIHNlbGVjdCBib3guIElu
IHRoYXQgY2FzZSwgdXBkYXRlRnJvbUVsZW1lbnQKLSAgICAvLyBpcyBjYWxsZWQgYmVmb3JlIGFi
YW5kb24sIHdoaWNoIGNhdXNlcyBkaXNjYXJkaW5nIG9mIHRoZSBzZWxlY3QgcmVzdWx0LiAgICAK
LSAgICBpZiAobV93aWxsQWNjZXB0T25BYmFuZG9uKSB7Ci0gICAgICAgIG1fcG9wdXBDbGllbnQt
PnZhbHVlQ2hhbmdlZChtX3NlbGVjdGVkSW5kZXgpOwotICAgICAgICBtX3dpbGxBY2NlcHRPbkFi
YW5kb24gPSBmYWxzZTsKLSAgICB9Ci0KICAgICBjbGVhcigpOwogCiAgICAgaW50IHNpemUgPSBt
X3BvcHVwQ2xpZW50LT5saXN0U2l6ZSgpOwo=
</data>
<flag name="review"
          id="15712"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>