<?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>108934</bug_id>
          
          <creation_ts>2013-02-05 05:54:19 -0800</creation_ts>
          <short_desc>[EFL][WK2] Add popup menu support to MiniBrowser</short_desc>
          <delta_ts>2013-03-12 11:04:26 -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 EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110209</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825418</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-05 05:54:19 -0800</bug_when>
    <thetext>We should add support for popup menus (when clicking a &lt;select&gt; element) in EFL&apos;s MiniBrowser by leveraging the ewk_popup_menu API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836240</commentid>
    <comment_count>1</comment_count>
      <attachid>189058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 04:43:14 -0800</bug_when>
    <thetext>Created attachment 189058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836241</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 04:43:46 -0800</bug_when>
    <thetext>rakuco, could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836278</commentid>
    <comment_count>3</comment_count>
      <attachid>189058</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-19 05:40:50 -0800</bug_when>
    <thetext>Comment on attachment 189058
Patch

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

&gt; Tools/MiniBrowser/efl/main.c:98
&gt; +    Evas_Object *elm_popup_menu;

Should you use elm_ prefix ?

&gt; Tools/MiniBrowser/efl/main.c:790
&gt; +destroy_elm_menu(Browser_Window *window)

I wonder if you want to use this function for other menus as well as popup menu. If this function is only for popup menu, isn&apos;t destroy_popup_menu better ?

&gt; Tools/MiniBrowser/efl/main.c:801
&gt; +on_menu_discarded(void *user_data, Evas_Object *obj, void *event_info)

How about on_popup_menu_discarded ?

&gt; Tools/MiniBrowser/efl/main.c:812
&gt; +on_popup_item_clicked(void *user_data, Evas_Object *obj, void *event_info)

How about on_popup_menu_item_clicked ?

&gt; Tools/MiniBrowser/efl/main.c:825
&gt; +populate_elm_menu(Evas_Object *elm_menu, Ewk_Popup_Menu *ewk_menu)

Aren&apos;t populate_popup_menu_items() or similar things more clear ?

&gt; Tools/MiniBrowser/efl/main.c:838
&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), NULL, NULL);

Wrong * place.

&gt; Tools/MiniBrowser/efl/main.c:841
&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), on_popup_item_clicked, INT_TO_PTR(index));

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836296</commentid>
    <comment_count>4</comment_count>
      <attachid>189058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 05:58:15 -0800</bug_when>
    <thetext>Comment on attachment 189058
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:98
&gt;&gt; +    Evas_Object *elm_popup_menu;
&gt; 
&gt; Should you use elm_ prefix ?

I found it clearer to easily distinguish a ewk_popup_menu and an elm_menu. We can use popup_menu though, I don&apos;t really mind, if people think it is better.

&gt;&gt; Tools/MiniBrowser/efl/main.c:790
&gt;&gt; +destroy_elm_menu(Browser_Window *window)
&gt; 
&gt; I wonder if you want to use this function for other menus as well as popup menu. If this function is only for popup menu, isn&apos;t destroy_popup_menu better ?

This is really specific to elm_popup_menu member of the Browser_Window so it is not used for other menus. Yes, I can rename to destroy_popup_menu().

&gt;&gt; Tools/MiniBrowser/efl/main.c:801
&gt;&gt; +on_menu_discarded(void *user_data, Evas_Object *obj, void *event_info)
&gt; 
&gt; How about on_popup_menu_discarded ?

ok

&gt;&gt; Tools/MiniBrowser/efl/main.c:812
&gt;&gt; +on_popup_item_clicked(void *user_data, Evas_Object *obj, void *event_info)
&gt; 
&gt; How about on_popup_menu_item_clicked ?

ok

&gt;&gt; Tools/MiniBrowser/efl/main.c:825
&gt;&gt; +populate_elm_menu(Evas_Object *elm_menu, Ewk_Popup_Menu *ewk_menu)
&gt; 
&gt; Aren&apos;t populate_popup_menu_items() or similar things more clear ?

I&apos;ll switch to populate_popup_menu() as &quot;populate_popup_menu_items()&quot; doesn&apos;t seem to make much sense to me. We are really populating a *menu*, not its items.

&gt;&gt; Tools/MiniBrowser/efl/main.c:838
&gt;&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), NULL, NULL);
&gt; 
&gt; Wrong * place.

ok

&gt;&gt; Tools/MiniBrowser/efl/main.c:841
&gt;&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), on_popup_item_clicked, INT_TO_PTR(index));
&gt; 
&gt; ditto.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836299</commentid>
    <comment_count>5</comment_count>
      <attachid>189058</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2013-02-19 06:01:39 -0800</bug_when>
    <thetext>Comment on attachment 189058
Patch

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

I think the code can be simplified in a way that avoids the current calls to evas_object_data_{get,set} and the rest of the code is easier to read:

  struct Browser_Window {
      ...
      struct {
          Evas_Object *menu;
          Ewk_Popup_Menu *ewk_menu;
      } popup;
  };

  static void
  popup_menu_populate(...)
  {
      const Eina_List *items = ...;

      ...

      EINA_LIST_FOREACH(...) {
          ...
          if (regular_menu_item) {
              Elm_Object_Item *item = elm_menu_item_add(window-&gt;popup.menu, ..., on_popup_item_clicked, window);
              elm_object_item_data_set(item, &quot;position&quot;, index);
          }
          ...
      }
  }

  static Eina_Bool
  on_popup_menu_show(...)
  {
      Browser_Window *window = ...;

      if (window-&gt;popup.menu)
          evas_object_del(window-&gt;popup.menu);

      window-&gt;popup.menu = elm_menu_add(...);
      popup_menu_populate(window-&gt;popup.meu, ewk_menu);

      window-&gt;popup.ewk_menu = ewk_menu;

      ...
  }

You can then stop worrying about closing and deleting the elm_menu, since it is automatically hidden when an item is selected or an area outside the menu is clicked (I don&apos;t think there&apos;s a problem with keeping the menu object alive until its parent is deleted).

&gt; Tools/MiniBrowser/efl/main.c:827
&gt; +    const Eina_List* ewk_items = ewk_popup_menu_items_get(ewk_menu);

Wrong pointer placement.

&gt; Tools/MiniBrowser/efl/main.c:836
&gt; +        if (ewk_popup_menu_item_type_get(ewk_item) == EWK_POPUP_MENU_SEPARATOR)
&gt; +            elm_menu_item_separator_add(elm_menu, NULL);
&gt; +        else {

Isn&apos;t it possible to use a switch() here?

&gt; Tools/MiniBrowser/efl/main.c:838
&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), NULL, NULL);

Wrong pointer placement.

&gt; Tools/MiniBrowser/efl/main.c:839
&gt; +                elm_object_item_disabled_set(item, EINA_TRUE);

Why not leave it enabled? I think it makes more sense for it to be confused with a normal menu item (ie. non-label) than a disabled one.

&gt; Tools/MiniBrowser/efl/main.c:841
&gt; +                Elm_Object_Item* item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), on_popup_item_clicked, INT_TO_PTR(index));

Wrong pointer placement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836302</commentid>
    <comment_count>6</comment_count>
      <attachid>189058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 06:06:29 -0800</bug_when>
    <thetext>Comment on attachment 189058
Patch

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:839
&gt;&gt; +                elm_object_item_disabled_set(item, EINA_TRUE);
&gt; 
&gt; Why not leave it enabled? I think it makes more sense for it to be confused with a normal menu item (ie. non-label) than a disabled one.

Because otherwise mouse cursor changes and it it clickable. What I really want is for it to be disabled but look as if it wasn&apos;t :) I&apos;m not sure how to do that though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836307</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 06:17:01 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 189058 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189058&amp;action=review
&gt; 
&gt; I think the code can be simplified in a way that avoids the current calls to evas_object_data_{get,set} and the rest of the code is easier to read:
&gt; 
&gt;   struct Browser_Window {
&gt;       ...
&gt;       struct {
&gt;           Evas_Object *menu;
&gt;           Ewk_Popup_Menu *ewk_menu;
&gt;       } popup;
&gt;   };
&gt; 
&gt;   static void
&gt;   popup_menu_populate(...)
&gt;   {
&gt;       const Eina_List *items = ...;
&gt; 
&gt;       ...
&gt; 
&gt;       EINA_LIST_FOREACH(...) {
&gt;           ...
&gt;           if (regular_menu_item) {
&gt;               Elm_Object_Item *item = elm_menu_item_add(window-&gt;popup.menu, ..., on_popup_item_clicked, window);
&gt;               elm_object_item_data_set(item, &quot;position&quot;, index);
&gt;           }
&gt;           ...
&gt;       }
&gt;   }
&gt; 
&gt;   static Eina_Bool
&gt;   on_popup_menu_show(...)
&gt;   {
&gt;       Browser_Window *window = ...;
&gt; 
&gt;       if (window-&gt;popup.menu)
&gt;           evas_object_del(window-&gt;popup.menu);
&gt; 
&gt;       window-&gt;popup.menu = elm_menu_add(...);
&gt;       popup_menu_populate(window-&gt;popup.meu, ewk_menu);
&gt; 
&gt;       window-&gt;popup.ewk_menu = ewk_menu;
&gt; 
&gt;       ...
&gt;   }

I&apos;ll give this a try, thanks.

&gt; 
&gt; You can then stop worrying about closing and deleting the elm_menu, since it is automatically hidden when an item is selected or an area outside the menu is clicked (I don&apos;t think there&apos;s a problem with keeping the menu object alive until its parent is deleted).

Well, I still need callbacks in order to call ewk_popup_menu_close() anyway. We really need to notify WebKit that the menu was closed. It is required by our implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836443</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 08:51:53 -0800</bug_when>
    <thetext>rakuco, I&apos;m having trouble with elm_object_item_data_set(). First of all, it seems to take only 2 arguments, not 3. I tried to use it anyway:

Elm_Object_Item *item = elm_menu_item_add(elm_menu, NULL, NULL, ewk_popup_menu_item_text_get(ewk_item), on_popup_menu_item_clicked, window);
elm_object_item_data_set(item, INT_TO_PTR(index));

However, this causes index to be passed as user_data to on_popup_menu_item_clicked callback, instead of window :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836477</commentid>
    <comment_count>9</comment_count>
      <attachid>189103</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 09:17:13 -0800</bug_when>
    <thetext>Created attachment 189103
Patch

Take feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837353</commentid>
    <comment_count>10</comment_count>
      <attachid>189103</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2013-02-20 04:51:34 -0800</bug_when>
    <thetext>Comment on attachment 189103
Patch

This version looks much better, and it looks like elm_menu_item_index_get() has saved the day :-)

You could probably get rid of destroy_popup_menu() since the elm_menu will be deleted at the end anyway. I&apos;d also rename some of the functions to match EFL&apos;s Yoda style (eg. populate_popup_menu -&gt; popup_menu_populate). Other than that, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853176</commentid>
    <comment_count>11</comment_count>
      <attachid>192663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-03-12 01:24:29 -0700</bug_when>
    <thetext>Created attachment 192663
Patch

Take Rakuco&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853626</commentid>
    <comment_count>12</comment_count>
      <attachid>192663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-12 11:04:20 -0700</bug_when>
    <thetext>Comment on attachment 192663
Patch

Clearing flags on attachment: 192663

Committed r145564: &lt;http://trac.webkit.org/changeset/145564&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853628</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-12 11:04:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189058</attachid>
            <date>2013-02-19 04:43:14 -0800</date>
            <delta_ts>2013-02-19 09:17:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108934_minibrowser_popup_menu.patch</filename>
            <type>text/plain</type>
            <size>6700</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYjIw
MWE2Li44NTQwM2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDItMTkgIENocmlzdG9waGUgRHVtZXogIDxj
aC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHBvcHVw
IG1lbnUgc3VwcG9ydCB0byBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHBvcHVwIG1lbnUgc3VwcG9ydCBpbiBNaW5p
QnJvd3NlciBieSBoYW5kbGluZyBwb3B1cF9tZW51X3Nob3cKKyAgICAgICAgYW5kIHBvcHVwX21l
bnVfaGlkZSBzbWFydCBmdW5jdGlvbnMgb24gdGhlIHZpZXcgYW5kIHVzaW5nIHRoZSBFd2sgcG9w
dXAKKyAgICAgICAgbWVudSBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5j
OgorICAgICAgICAoX0Jyb3dzZXJfV2luZG93KToKKyAgICAgICAgKGRlc3Ryb3lfZWxtX21lbnUp
OgorICAgICAgICAob25fbWVudV9kaXNjYXJkZWQpOgorICAgICAgICAob25fcG9wdXBfaXRlbV9j
bGlja2VkKToKKyAgICAgICAgKHBvcHVsYXRlX2VsbV9tZW51KToKKyAgICAgICAgKG9uX3BvcHVw
X21lbnVfc2hvdyk6CisgICAgICAgIChvbl9wb3B1cF9tZW51X2hpZGUpOgorICAgICAgICAod2lu
ZG93X2NyZWF0ZSk6IFVzZSBjYWxsb2MoKSBpbnN0ZWFkIG9mIG1hbGxvYygpIHRvIGFsbG9jYXRl
IG1lbW9yeSBmb3IKKyAgICAgICAgQnJvd3Nlcl9XaW5kb3cuIFRoaXMgbWFrZXMgc3VyZSBhbGwg
dGhlIHN0cnVjdHMgbWVtYmVycyBhcmUgaW5pdGlhbGl6ZWQKKyAgICAgICAgdG8gMCAoc3VjaCBh
cyB0aGUgbmV3IGVsbV9wb3B1cF9tZW51IHBvaW50ZXIpLgorCiAyMDEzLTAyLTE4ICBJbHlhIFRp
a2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBB
ZGp1c3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21h
aW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggY2U4MTZlZS4uNzQ3NDQ5
OSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC01Niw2ICs1NiwxMCBAQCBzdGF0aWMgRWluYV9Cb29s
IGxlZ2FjeV9iZWhhdmlvcl9lbmFibGVkID0gRUlOQV9GQUxTRTsKIC8vIFRoZSB6b29tIHZhbHVl
cyBhcmUgY2hvc2VuIHRvIGJlIGxpa2UgaW4gTW96aWxsYSBGaXJlZm94IDMuCiBjb25zdCBzdGF0
aWMgZmxvYXQgem9vbUxldmVsc1tdID0gezAuMywgMC41LCAwLjY3LCAwLjgsIDAuOSwgMS4wLCAx
LjEsIDEuMiwgMS4zMywgMS41LCAxLjcsIDIuMCwgMi40LCAzLjB9OwogCisvLyBUeXBlIGNvbnZl
cnNpb24gbWFjcm9zLgorI2RlZmluZSBJTlRfVE9fUFRSKGkpICgodm9pZCAqKSAoaW50cHRyX3Qp
IChpKSkKKyNkZWZpbmUgUFRSX1RPX0lOVChwKSAoKGludCkgKGludHB0cl90KSAocCkpCisKIHN0
YXRpYyBFaW5hX0Jvb2wKIHpvb21fbGV2ZWxfc2V0KEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCBpbnQg
bGV2ZWwpCiB7CkBAIC05MSw2ICs5NSw3IEBAIHR5cGVkZWYgc3RydWN0IF9Ccm93c2VyX1dpbmRv
dyB7CiAgICAgRXZhc19PYmplY3QgKnVybF9iYXI7CiAgICAgRXZhc19PYmplY3QgKmJhY2tfYnV0
dG9uOwogICAgIEV2YXNfT2JqZWN0ICpmb3J3YXJkX2J1dHRvbjsKKyAgICBFdmFzX09iamVjdCAq
ZWxtX3BvcHVwX21lbnU7CiAgICAgaW50IGN1cnJlbnRfem9vbV9sZXZlbDsgCiAgICAgVG9vbHRp
cF9JbmZvcm1hdGlvbiB0b29sdGlwOwogfSBCcm93c2VyX1dpbmRvdzsKQEAgLTc4MSw2ICs3ODYs
OTQgQEAgb25famF2YXNjcmlwdF9wcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc21hcnREYXRh
LCBjb25zdCBjaGFyICptZXNzYWdlLCBjb25zdAogICAgIHJldHVybiBwcm9tcHRfdGV4dDsKIH0K
IAorc3RhdGljIHZvaWQKK2Rlc3Ryb3lfZWxtX21lbnUoQnJvd3Nlcl9XaW5kb3cgKndpbmRvdykK
K3sKKyAgICBpZiAoIXdpbmRvdy0+ZWxtX3BvcHVwX21lbnUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGVsbV9tZW51X2Nsb3NlKHdpbmRvdy0+ZWxtX3BvcHVwX21lbnUpOworICAgIGV2YXNfb2Jq
ZWN0X2RlbCh3aW5kb3ctPmVsbV9wb3B1cF9tZW51KTsKKyAgICB3aW5kb3ctPmVsbV9wb3B1cF9t
ZW51ID0gTlVMTDsKK30KKworc3RhdGljIHZvaWQKK29uX21lbnVfZGlzY2FyZGVkKHZvaWQgKnVz
ZXJfZGF0YSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICAvLyBU
aGUgdXNlciBjbGlja2VkIG91dHNpZGUgdGhlIG1lbnUgdG8gZGlzY2FyZCBpdC4KKyAgICBpbmZv
KCJQb3B1cCBtZW51IHdhcyBkaXNjYXJkZWQuXG4iKTsKKyAgICBCcm93c2VyX1dpbmRvdyAqd2lu
ZG93ID0gKEJyb3dzZXJfV2luZG93ICopdXNlcl9kYXRhOworICAgIEV3a19Qb3B1cF9NZW51ICpl
d2tfcG9wdXBfbWVudSA9IChFd2tfUG9wdXBfTWVudSAqKWV2YXNfb2JqZWN0X2RhdGFfZ2V0KG9i
aiwgImV3a19tZW51Iik7CisgICAgZXdrX3BvcHVwX21lbnVfY2xvc2UoZXdrX3BvcHVwX21lbnUp
OworICAgIGRlc3Ryb3lfZWxtX21lbnUod2luZG93KTsKK30KKworc3RhdGljIHZvaWQKK29uX3Bv
cHVwX2l0ZW1fY2xpY2tlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCit7CisgICAgaW50IHNlbGVjdGVkX2luZGV4ID0gUFRSX1RPX0lOVCh1c2Vy
X2RhdGEpOworICAgIEV3a19Qb3B1cF9NZW51ICpld2tfcG9wdXBfbWVudSA9IChFd2tfUG9wdXBf
TWVudSAqKWV2YXNfb2JqZWN0X2RhdGFfZ2V0KG9iaiwgImV3a19tZW51Iik7CisgICAgaW5mbygi
U2VsZWN0ZWQgcG9wdXAgbWVudSBpbmRleDogJXVcbiIsIHNlbGVjdGVkX2luZGV4KTsKKyAgICBl
d2tfcG9wdXBfbWVudV9zZWxlY3RlZF9pbmRleF9zZXQoZXdrX3BvcHVwX21lbnUsIHNlbGVjdGVk
X2luZGV4KTsKKworICAgIC8vIENsb3NlIHBvcHVwIG1lbnUuCisgICAgZXdrX3BvcHVwX21lbnVf
Y2xvc2UoZXdrX3BvcHVwX21lbnUpOworICAgIGRlc3Ryb3lfZWxtX21lbnUoKEJyb3dzZXJfV2lu
ZG93ICopZXZhc19vYmplY3RfZGF0YV9nZXQob2JqLCAid2luZG93IikpOworfQorCitzdGF0aWMg
dm9pZAorcG9wdWxhdGVfZWxtX21lbnUoRXZhc19PYmplY3QgKmVsbV9tZW51LCBFd2tfUG9wdXBf
TWVudSAqZXdrX21lbnUpCit7CisgICAgY29uc3QgRWluYV9MaXN0KiBld2tfaXRlbXMgPSBld2tf
cG9wdXBfbWVudV9pdGVtc19nZXQoZXdrX21lbnUpOworCisgICAgdm9pZCAqZGF0YTsKKyAgICBj
b25zdCBFaW5hX0xpc3QgKmw7CisgICAgaW50IGluZGV4ID0gMDsKKyAgICBFSU5BX0xJU1RfRk9S
RUFDSChld2tfaXRlbXMsIGwsIGRhdGEpIHsKKyAgICAgICAgRXdrX1BvcHVwX01lbnVfSXRlbSAq
ZXdrX2l0ZW0gPSAoRXdrX1BvcHVwX01lbnVfSXRlbSAqKWRhdGE7CisgICAgICAgIGlmIChld2tf
cG9wdXBfbWVudV9pdGVtX3R5cGVfZ2V0KGV3a19pdGVtKSA9PSBFV0tfUE9QVVBfTUVOVV9TRVBB
UkFUT1IpCisgICAgICAgICAgICBlbG1fbWVudV9pdGVtX3NlcGFyYXRvcl9hZGQoZWxtX21lbnUs
IE5VTEwpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChld2tfcG9wdXBfbWVudV9p
dGVtX2lzX2xhYmVsX2dldChld2tfaXRlbSkpIHsKKyAgICAgICAgICAgICAgICBFbG1fT2JqZWN0
X0l0ZW0qIGl0ZW0gPSBlbG1fbWVudV9pdGVtX2FkZChlbG1fbWVudSwgTlVMTCwgTlVMTCwgZXdr
X3BvcHVwX21lbnVfaXRlbV90ZXh0X2dldChld2tfaXRlbSksIE5VTEwsIE5VTEwpOworICAgICAg
ICAgICAgICAgIGVsbV9vYmplY3RfaXRlbV9kaXNhYmxlZF9zZXQoaXRlbSwgRUlOQV9UUlVFKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRWxtX09iamVjdF9JdGVtKiBp
dGVtID0gZWxtX21lbnVfaXRlbV9hZGQoZWxtX21lbnUsIE5VTEwsIE5VTEwsIGV3a19wb3B1cF9t
ZW51X2l0ZW1fdGV4dF9nZXQoZXdrX2l0ZW0pLCBvbl9wb3B1cF9pdGVtX2NsaWNrZWQsIElOVF9U
T19QVFIoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBlbG1fb2JqZWN0X2l0ZW1fdG9vbHRpcF90
ZXh0X3NldChpdGVtLCBld2tfcG9wdXBfbWVudV9pdGVtX3Rvb2x0aXBfZ2V0KGV3a19pdGVtKSk7
CisgICAgICAgICAgICAgICAgZWxtX29iamVjdF9pdGVtX2Rpc2FibGVkX3NldChpdGVtLCAhZXdr
X3BvcHVwX21lbnVfaXRlbV9lbmFibGVkX2dldChld2tfaXRlbSkpOworICAgICAgICAgICAgICAg
IGVsbV9tZW51X2l0ZW1fc2VsZWN0ZWRfc2V0KGl0ZW0sIGV3a19wb3B1cF9tZW51X2l0ZW1fc2Vs
ZWN0ZWRfZ2V0KGV3a19pdGVtKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
KytpbmRleDsKKyAgICB9Cit9CisKK3N0YXRpYyBFaW5hX0Jvb2wKK29uX3BvcHVwX21lbnVfc2hv
dyhFd2tfVmlld19TbWFydF9EYXRhICpzbWFydERhdGEsIEVpbmFfUmVjdGFuZ2xlIHJlY3QsIEV3
a19UZXh0X0RpcmVjdGlvbiB0ZXh0X2RpcmVjdGlvbiwgZG91YmxlIHBhZ2Vfc2NhbGVfZmFjdG9y
LCBFd2tfUG9wdXBfTWVudSAqZXdrX21lbnUpCit7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRv
dyA9IHdpbmRvd19maW5kX3dpdGhfZXdrX3ZpZXcoc21hcnREYXRhLT5zZWxmKTsKKyAgICB3aW5k
b3ctPmVsbV9wb3B1cF9tZW51ID0gZWxtX21lbnVfYWRkKHdpbmRvdy0+ZWxtX3dpbmRvdyk7Cisg
ICAgZXZhc19vYmplY3RfZGF0YV9zZXQod2luZG93LT5lbG1fcG9wdXBfbWVudSwgImV3a19tZW51
IiwgZXdrX21lbnUpOworICAgIGV2YXNfb2JqZWN0X2RhdGFfc2V0KHdpbmRvdy0+ZWxtX3BvcHVw
X21lbnUsICJ3aW5kb3ciLCB3aW5kb3cpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2FkZCh3aW5kb3ctPmVsbV9wb3B1cF9tZW51LCAiY2xpY2tlZCIsIG9uX21lbnVfZGlzY2FyZGVk
LCB3aW5kb3cpOworCisgICAgcG9wdWxhdGVfZWxtX21lbnUod2luZG93LT5lbG1fcG9wdXBfbWVu
dSwgZXdrX21lbnUpOworCisgICAgaW5mbygiU2hvd2luZyBwb3B1cCBtZW51IGF0ICglZCwgJWQp
XG4iLCByZWN0LngsIHJlY3QueSk7CisgICAgZWxtX21lbnVfbW92ZSh3aW5kb3ctPmVsbV9wb3B1
cF9tZW51LCByZWN0LngsIHJlY3QueSk7CisgICAgZXZhc19vYmplY3Rfc2hvdyh3aW5kb3ctPmVs
bV9wb3B1cF9tZW51KTsKKworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKK3N0YXRpYyBFaW5h
X0Jvb2wKK29uX3BvcHVwX21lbnVfaGlkZShFd2tfVmlld19TbWFydF9EYXRhICpzbWFydERhdGEp
Cit7CisgICAgZGVzdHJveV9lbG1fbWVudSh3aW5kb3dfZmluZF93aXRoX2V3a192aWV3KHNtYXJ0
RGF0YS0+c2VsZikpOworCisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKwogc3RhdGljIEVpbmFf
Qm9vbCBvbl93aW5kb3dfZ2VvbWV0cnlfZ2V0KEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBFdmFz
X0Nvb3JkICp4LCBFdmFzX0Nvb3JkICp5LCBFdmFzX0Nvb3JkICp3aWR0aCwgRXZhc19Db29yZCAq
aGVpZ2h0KQogewogICAgIEJyb3dzZXJfV2luZG93ICp3aW5kb3cgPSB3aW5kb3dfZmluZF93aXRo
X2V3a192aWV3KHNkLT5zZWxmKTsKQEAgLTEwODIsNyArMTE3NSw3IEBAIGNyZWF0ZV90b29sYmFy
X2J1dHRvbihFdmFzX09iamVjdCAqZWxtX3dpbmRvdywgY29uc3QgY2hhciAqaWNvbl9uYW1lKQog
CiBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoRXZhc19PYmplY3QgKm9wZW5l
ciwgY29uc3QgY2hhciAqdXJsLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIEVpbmFfQm9vbCB2aWV3
X21vZGUpCiB7Ci0gICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IG1hbGxvYyhzaXplb2YoQnJv
d3Nlcl9XaW5kb3cpKTsKKyAgICBCcm93c2VyX1dpbmRvdyAqd2luZG93ID0gY2FsbG9jKDEsIHNp
emVvZihCcm93c2VyX1dpbmRvdykpOwogICAgIGlmICghd2luZG93KSB7CiAgICAgICAgIGluZm8o
IkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJyb3dzZXIgd2luZG93LlxuIik7CiAgICAgICAgIHJl
dHVybiBOVUxMOwpAQCAtMTE4MCw2ICsxMjczLDggQEAgc3RhdGljIEJyb3dzZXJfV2luZG93ICp3
aW5kb3dfY3JlYXRlKEV2YXNfT2JqZWN0ICpvcGVuZXIsIGNvbnN0IGNoYXIgKnVybCwgaW50IHcK
ICAgICBld2tWaWV3Q2xhc3MtPmZ1bGxzY3JlZW5fZXhpdCA9IG9uX2Z1bGxzY3JlZW5fZXhpdDsK
ICAgICBld2tWaWV3Q2xhc3MtPndpbmRvd19jcmVhdGUgPSBvbl93aW5kb3dfY3JlYXRlOwogICAg
IGV3a1ZpZXdDbGFzcy0+d2luZG93X2Nsb3NlID0gb25fd2luZG93X2Nsb3NlOworICAgIGV3a1Zp
ZXdDbGFzcy0+cG9wdXBfbWVudV9zaG93ID0gb25fcG9wdXBfbWVudV9zaG93OworICAgIGV3a1Zp
ZXdDbGFzcy0+cG9wdXBfbWVudV9oaWRlID0gb25fcG9wdXBfbWVudV9oaWRlOwogCiAgICAgRXZh
cyAqZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdpbmRvdy0+ZWxtX3dpbmRvdyk7CiAgICAg
aWYgKGxlZ2FjeV9iZWhhdmlvcl9lbmFibGVkKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189103</attachid>
            <date>2013-02-19 09:17:13 -0800</date>
            <delta_ts>2013-03-12 01:24:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>108934_minibrowser_popup_menu.patch</filename>
            <type>text/plain</type>
            <size>6445</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxOTQ3
ODc2Li41NGFlMWUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDItMTkgIENocmlzdG9waGUgRHVtZXogIDxj
aC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHBvcHVw
IG1lbnUgc3VwcG9ydCB0byBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHBvcHVwIG1lbnUgc3VwcG9ydCBpbiBNaW5p
QnJvd3NlciBieSBoYW5kbGluZyBwb3B1cF9tZW51X3Nob3cKKyAgICAgICAgYW5kIHBvcHVwX21l
bnVfaGlkZSBzbWFydCBmdW5jdGlvbnMgb24gdGhlIHZpZXcgYW5kIHVzaW5nIHRoZSBFd2sgcG9w
dXAKKyAgICAgICAgbWVudSBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5j
OgorICAgICAgICAoX0Jyb3dzZXJfV2luZG93KToKKyAgICAgICAgKGRlc3Ryb3lfcG9wdXBfbWVu
dSk6CisgICAgICAgIChvbl9wb3B1cF9tZW51X2Rpc2NhcmRlZCk6CisgICAgICAgIChvbl9wb3B1
cF9tZW51X2l0ZW1fY2xpY2tlZCk6CisgICAgICAgIChwb3B1bGF0ZV9wb3B1cF9tZW51KToKKyAg
ICAgICAgKG9uX3BvcHVwX21lbnVfc2hvdyk6CisgICAgICAgIChvbl9wb3B1cF9tZW51X2hpZGUp
OgorICAgICAgICAod2luZG93X2NyZWF0ZSk6IFVzZSBjYWxsb2MoKSBpbnN0ZWFkIG9mIG1hbGxv
YygpIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IKKyAgICAgICAgQnJvd3Nlcl9XaW5kb3cuIFRoaXMg
bWFrZXMgc3VyZSBhbGwgdGhlIHN0cnVjdHMgbWVtYmVycyBhcmUgaW5pdGlhbGl6ZWQKKyAgICAg
ICAgdG8gMCAoc3VjaCBhcyB0aGUgbmV3IGVsbV9wb3B1cF9tZW51IHBvaW50ZXIpLgorCiAyMDEz
LTAyLTE5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAg
ICAgICBbUXRdIFNraXAgdGhlIGJ1aWxkIHdpdGggYSB3YXJuaW5nIGlmIGNlcnRhaW4gdG9vbHMg
Y2Fubm90IGJlIGZvdW5kIGluIHRoZSBQQVRICmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBjZTgxNmVl
Li5kNTI5ZTZjIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTkxLDYgKzkxLDEwIEBAIHR5cGVkZWYg
c3RydWN0IF9Ccm93c2VyX1dpbmRvdyB7CiAgICAgRXZhc19PYmplY3QgKnVybF9iYXI7CiAgICAg
RXZhc19PYmplY3QgKmJhY2tfYnV0dG9uOwogICAgIEV2YXNfT2JqZWN0ICpmb3J3YXJkX2J1dHRv
bjsKKyAgICBzdHJ1Y3QgeworICAgICAgICBFdmFzX09iamVjdCAqZWxtX21lbnU7CisgICAgICAg
IEV3a19Qb3B1cF9NZW51ICpld2tfbWVudTsKKyAgICB9IHBvcHVwOwogICAgIGludCBjdXJyZW50
X3pvb21fbGV2ZWw7IAogICAgIFRvb2x0aXBfSW5mb3JtYXRpb24gdG9vbHRpcDsKIH0gQnJvd3Nl
cl9XaW5kb3c7CkBAIC03ODEsNiArNzg1LDEwMCBAQCBvbl9qYXZhc2NyaXB0X3Byb21wdChFd2tf
Vmlld19TbWFydF9EYXRhICpzbWFydERhdGEsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGNvbnN0CiAg
ICAgcmV0dXJuIHByb21wdF90ZXh0OwogfQogCitzdGF0aWMgdm9pZAorZGVzdHJveV9wb3B1cF9t
ZW51KEJyb3dzZXJfV2luZG93ICp3aW5kb3cpCit7CisgICAgZXZhc19vYmplY3RfZGVsKHdpbmRv
dy0+cG9wdXAuZWxtX21lbnUpOworICAgIHdpbmRvdy0+cG9wdXAuZWxtX21lbnUgPSBOVUxMOwor
ICAgIHdpbmRvdy0+cG9wdXAuZXdrX21lbnUgPSBOVUxMOworfQorCitzdGF0aWMgdm9pZAorb25f
cG9wdXBfbWVudV9kaXNjYXJkZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqb2JqLCB2
b2lkICpldmVudF9pbmZvKQoreworICAgIC8vIFRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSB0aGUg
bWVudSB0byBkaXNjYXJkIGl0LgorICAgIGluZm8oIlBvcHVwIG1lbnUgd2FzIGRpc2NhcmRlZC5c
biIpOworICAgIEJyb3dzZXJfV2luZG93ICp3aW5kb3cgPSAoQnJvd3Nlcl9XaW5kb3cgKil1c2Vy
X2RhdGE7CisgICAgZXdrX3BvcHVwX21lbnVfY2xvc2Uod2luZG93LT5wb3B1cC5ld2tfbWVudSk7
CisgICAgZGVzdHJveV9wb3B1cF9tZW51KHdpbmRvdyk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9w
b3B1cF9tZW51X2l0ZW1fY2xpY2tlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICpvYmos
IHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IChCcm93
c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKKyAgICBFbG1fT2JqZWN0X0l0ZW0gKml0ZW0gPSAoRWxt
X09iamVjdF9JdGVtICopZXZlbnRfaW5mbzsKKworICAgIGluZm8oIlNlbGVjdGVkIHBvcHVwIG1l
bnUgaW5kZXg6ICV1XG4iLCBlbG1fbWVudV9pdGVtX2luZGV4X2dldChpdGVtKSk7CisgICAgZXdr
X3BvcHVwX21lbnVfc2VsZWN0ZWRfaW5kZXhfc2V0KHdpbmRvdy0+cG9wdXAuZXdrX21lbnUsIGVs
bV9tZW51X2l0ZW1faW5kZXhfZ2V0KGl0ZW0pKTsKKworICAgIC8vIENsb3NlIHBvcHVwIG1lbnUu
CisgICAgZXdrX3BvcHVwX21lbnVfY2xvc2Uod2luZG93LT5wb3B1cC5ld2tfbWVudSk7CisgICAg
ZGVzdHJveV9wb3B1cF9tZW51KHdpbmRvdyk7Cit9CisKK3N0YXRpYyB2b2lkCitwb3B1bGF0ZV9w
b3B1cF9tZW51KEV2YXNfT2JqZWN0ICplbG1fbWVudSwgRXdrX1BvcHVwX01lbnUgKmV3a19tZW51
LCB2b2lkICp1c2VyX2RhdGEpCit7CisgICAgY29uc3QgRWluYV9MaXN0KiBld2tfaXRlbXMgPSBl
d2tfcG9wdXBfbWVudV9pdGVtc19nZXQoZXdrX21lbnUpOworCisgICAgdm9pZCAqZGF0YTsKKyAg
ICBjb25zdCBFaW5hX0xpc3QgKmw7CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0goZXdrX2l0ZW1zLCBs
LCBkYXRhKSB7CisgICAgICAgIEV3a19Qb3B1cF9NZW51X0l0ZW0gKmV3a19pdGVtID0gKEV3a19Q
b3B1cF9NZW51X0l0ZW0gKilkYXRhOworICAgICAgICBzd2l0Y2ggKGV3a19wb3B1cF9tZW51X2l0
ZW1fdHlwZV9nZXQoZXdrX2l0ZW0pKSB7CisgICAgICAgIGNhc2UgRVdLX1BPUFVQX01FTlVfU0VQ
QVJBVE9SOgorICAgICAgICAgICAgZWxtX21lbnVfaXRlbV9zZXBhcmF0b3JfYWRkKGVsbV9tZW51
LCBOVUxMKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEVXS19QT1BVUF9NRU5V
X0lURU06CisgICAgICAgICAgICBpZiAoZXdrX3BvcHVwX21lbnVfaXRlbV9pc19sYWJlbF9nZXQo
ZXdrX2l0ZW0pKSB7CisgICAgICAgICAgICAgICAgRWxtX09iamVjdF9JdGVtICppdGVtID0gZWxt
X21lbnVfaXRlbV9hZGQoZWxtX21lbnUsIE5VTEwsIE5VTEwsIGV3a19wb3B1cF9tZW51X2l0ZW1f
dGV4dF9nZXQoZXdrX2l0ZW0pLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBlbG1fb2Jq
ZWN0X2l0ZW1fZGlzYWJsZWRfc2V0KGl0ZW0sIEVJTkFfVFJVRSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIEVsbV9PYmplY3RfSXRlbSAqaXRlbSA9IGVsbV9tZW51X2l0
ZW1fYWRkKGVsbV9tZW51LCBOVUxMLCBOVUxMLCBld2tfcG9wdXBfbWVudV9pdGVtX3RleHRfZ2V0
KGV3a19pdGVtKSwgb25fcG9wdXBfbWVudV9pdGVtX2NsaWNrZWQsIHVzZXJfZGF0YSk7CisgICAg
ICAgICAgICAgICAgZWxtX29iamVjdF9pdGVtX3Rvb2x0aXBfdGV4dF9zZXQoaXRlbSwgZXdrX3Bv
cHVwX21lbnVfaXRlbV90b29sdGlwX2dldChld2tfaXRlbSkpOworICAgICAgICAgICAgICAgIGVs
bV9vYmplY3RfaXRlbV9kaXNhYmxlZF9zZXQoaXRlbSwgIWV3a19wb3B1cF9tZW51X2l0ZW1fZW5h
YmxlZF9nZXQoZXdrX2l0ZW0pKTsKKyAgICAgICAgICAgICAgICBlbG1fbWVudV9pdGVtX3NlbGVj
dGVkX3NldChpdGVtLCBld2tfcG9wdXBfbWVudV9pdGVtX3NlbGVjdGVkX2dldChld2tfaXRlbSkp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBpbmZvKCJVbnJlY29nbml6ZWQgcG9wdXAgbWVudSBpdGVtIHR5cGUhXG4iKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgRWluYV9C
b29sCitvbl9wb3B1cF9tZW51X3Nob3coRXdrX1ZpZXdfU21hcnRfRGF0YSAqc21hcnREYXRhLCBF
aW5hX1JlY3RhbmdsZSByZWN0LCBFd2tfVGV4dF9EaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24sIGRv
dWJsZSBwYWdlX3NjYWxlX2ZhY3RvciwgRXdrX1BvcHVwX01lbnUgKmV3a19tZW51KQoreworICAg
IEJyb3dzZXJfV2luZG93ICp3aW5kb3cgPSB3aW5kb3dfZmluZF93aXRoX2V3a192aWV3KHNtYXJ0
RGF0YS0+c2VsZik7CisgICAgd2luZG93LT5wb3B1cC5lbG1fbWVudSA9IGVsbV9tZW51X2FkZCh3
aW5kb3ctPmVsbV93aW5kb3cpOworICAgIHdpbmRvdy0+cG9wdXAuZXdrX21lbnUgPSBld2tfbWVu
dTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2luZG93LT5wb3B1cC5lbG1f
bWVudSwgImNsaWNrZWQiLCBvbl9wb3B1cF9tZW51X2Rpc2NhcmRlZCwgd2luZG93KTsKKworICAg
IHBvcHVsYXRlX3BvcHVwX21lbnUod2luZG93LT5wb3B1cC5lbG1fbWVudSwgZXdrX21lbnUsIHdp
bmRvdyk7CisKKyAgICBpbmZvKCJTaG93aW5nIHBvcHVwIG1lbnUgYXQgKCVkLCAlZClcbiIsIHJl
Y3QueCwgcmVjdC55KTsKKyAgICBlbG1fbWVudV9tb3ZlKHdpbmRvdy0+cG9wdXAuZWxtX21lbnUs
IHJlY3QueCwgcmVjdC55KTsKKyAgICBldmFzX29iamVjdF9zaG93KHdpbmRvdy0+cG9wdXAuZWxt
X21lbnUpOworCisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKworc3RhdGljIEVpbmFfQm9vbAor
b25fcG9wdXBfbWVudV9oaWRlKEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNtYXJ0RGF0YSkKK3sKKyAg
ICBCcm93c2VyX1dpbmRvdyAqd2luZG93ID0gd2luZG93X2ZpbmRfd2l0aF9ld2tfdmlldyhzbWFy
dERhdGEtPnNlbGYpOworCisgICAgaWYgKCF3aW5kb3ctPnBvcHVwLmVsbV9tZW51KQorICAgICAg
ICByZXR1cm4gRUlOQV9GQUxTRTsKKworICAgIGVsbV9tZW51X2Nsb3NlKHdpbmRvdy0+cG9wdXAu
ZWxtX21lbnUpOworICAgIGRlc3Ryb3lfcG9wdXBfbWVudSh3aW5kb3cpOworCisgICAgcmV0dXJu
IEVJTkFfVFJVRTsKK30KKwogc3RhdGljIEVpbmFfQm9vbCBvbl93aW5kb3dfZ2VvbWV0cnlfZ2V0
KEV3a19WaWV3X1NtYXJ0X0RhdGEgKnNkLCBFdmFzX0Nvb3JkICp4LCBFdmFzX0Nvb3JkICp5LCBF
dmFzX0Nvb3JkICp3aWR0aCwgRXZhc19Db29yZCAqaGVpZ2h0KQogewogICAgIEJyb3dzZXJfV2lu
ZG93ICp3aW5kb3cgPSB3aW5kb3dfZmluZF93aXRoX2V3a192aWV3KHNkLT5zZWxmKTsKQEAgLTEw
ODIsNyArMTE4MCw3IEBAIGNyZWF0ZV90b29sYmFyX2J1dHRvbihFdmFzX09iamVjdCAqZWxtX3dp
bmRvdywgY29uc3QgY2hhciAqaWNvbl9uYW1lKQogCiBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndp
bmRvd19jcmVhdGUoRXZhc19PYmplY3QgKm9wZW5lciwgY29uc3QgY2hhciAqdXJsLCBpbnQgd2lk
dGgsIGludCBoZWlnaHQsIEVpbmFfQm9vbCB2aWV3X21vZGUpCiB7Ci0gICAgQnJvd3Nlcl9XaW5k
b3cgKndpbmRvdyA9IG1hbGxvYyhzaXplb2YoQnJvd3Nlcl9XaW5kb3cpKTsKKyAgICBCcm93c2Vy
X1dpbmRvdyAqd2luZG93ID0gY2FsbG9jKDEsIHNpemVvZihCcm93c2VyX1dpbmRvdykpOwogICAg
IGlmICghd2luZG93KSB7CiAgICAgICAgIGluZm8oIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIGJy
b3dzZXIgd2luZG93LlxuIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTE4MCw2ICsxMjc4
LDggQEAgc3RhdGljIEJyb3dzZXJfV2luZG93ICp3aW5kb3dfY3JlYXRlKEV2YXNfT2JqZWN0ICpv
cGVuZXIsIGNvbnN0IGNoYXIgKnVybCwgaW50IHcKICAgICBld2tWaWV3Q2xhc3MtPmZ1bGxzY3Jl
ZW5fZXhpdCA9IG9uX2Z1bGxzY3JlZW5fZXhpdDsKICAgICBld2tWaWV3Q2xhc3MtPndpbmRvd19j
cmVhdGUgPSBvbl93aW5kb3dfY3JlYXRlOwogICAgIGV3a1ZpZXdDbGFzcy0+d2luZG93X2Nsb3Nl
ID0gb25fd2luZG93X2Nsb3NlOworICAgIGV3a1ZpZXdDbGFzcy0+cG9wdXBfbWVudV9zaG93ID0g
b25fcG9wdXBfbWVudV9zaG93OworICAgIGV3a1ZpZXdDbGFzcy0+cG9wdXBfbWVudV9oaWRlID0g
b25fcG9wdXBfbWVudV9oaWRlOwogCiAgICAgRXZhcyAqZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNf
Z2V0KHdpbmRvdy0+ZWxtX3dpbmRvdyk7CiAgICAgaWYgKGxlZ2FjeV9iZWhhdmlvcl9lbmFibGVk
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192663</attachid>
            <date>2013-03-12 01:24:29 -0700</date>
            <delta_ts>2013-03-12 11:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>108934_minibrowser_popup_menu.patch</filename>
            <type>text/plain</type>
            <size>6180</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOGNk
YWRmLi41MzQ1YzdkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMTIgIENocmlzdG9waGUgRHVtZXogIDxj
aC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIHBvcHVw
IG1lbnUgc3VwcG9ydCB0byBNaW5pQnJvd3NlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHBvcHVwIG1lbnUgc3VwcG9ydCBpbiBNaW5p
QnJvd3NlciBieSBoYW5kbGluZyBwb3B1cF9tZW51X3Nob3cKKyAgICAgICAgYW5kIHBvcHVwX21l
bnVfaGlkZSBzbWFydCBmdW5jdGlvbnMgb24gdGhlIHZpZXcgYW5kIHVzaW5nIHRoZSBFd2sgcG9w
dXAKKyAgICAgICAgbWVudSBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5j
OgorICAgICAgICAoX0Jyb3dzZXJfV2luZG93KToKKyAgICAgICAgKG9uX3BvcHVwX21lbnVfZGlz
Y2FyZGVkKToKKyAgICAgICAgKG9uX3BvcHVwX21lbnVfaXRlbV9jbGlja2VkKToKKyAgICAgICAg
KHBvcHVwX21lbnVfcG9wdWxhdGUpOgorICAgICAgICAob25fcG9wdXBfbWVudV9zaG93KToKKyAg
ICAgICAgKG9uX3BvcHVwX21lbnVfaGlkZSk6CisgICAgICAgICh3aW5kb3dfY3JlYXRlKTogVXNl
IGNhbGxvYygpIGluc3RlYWQgb2YgbWFsbG9jKCkgdG8gYWxsb2NhdGUgbWVtb3J5IGZvcgorICAg
ICAgICBCcm93c2VyX1dpbmRvdy4gVGhpcyBtYWtlcyBzdXJlIGFsbCB0aGUgc3RydWN0cyBtZW1i
ZXJzIGFyZSBpbml0aWFsaXplZAorICAgICAgICB0byAwIChzdWNoIGFzIHRoZSBuZXcgZWxtX3Bv
cHVwX21lbnUgcG9pbnRlcikuCisKIDIwMTMtMDMtMTEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdW1dLMV0gQWRkIHN1cHBvcnQgZm9yIGFsZXJ0KCkg
aW4gTWluaUJyb3dzZXIuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
IGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBjZTgxNmVlLi4wYWViMjY0IDEw
MDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKQEAgLTkxLDYgKzkxLDEwIEBAIHR5cGVkZWYgc3RydWN0IF9Ccm93
c2VyX1dpbmRvdyB7CiAgICAgRXZhc19PYmplY3QgKnVybF9iYXI7CiAgICAgRXZhc19PYmplY3Qg
KmJhY2tfYnV0dG9uOwogICAgIEV2YXNfT2JqZWN0ICpmb3J3YXJkX2J1dHRvbjsKKyAgICBzdHJ1
Y3QgeworICAgICAgICBFdmFzX09iamVjdCAqZWxtX21lbnU7CisgICAgICAgIEV3a19Qb3B1cF9N
ZW51ICpld2tfbWVudTsKKyAgICB9IHBvcHVwOwogICAgIGludCBjdXJyZW50X3pvb21fbGV2ZWw7
IAogICAgIFRvb2x0aXBfSW5mb3JtYXRpb24gdG9vbHRpcDsKIH0gQnJvd3Nlcl9XaW5kb3c7CkBA
IC03ODEsNiArNzg1LDkzIEBAIG9uX2phdmFzY3JpcHRfcHJvbXB0KEV3a19WaWV3X1NtYXJ0X0Rh
dGEgKnNtYXJ0RGF0YSwgY29uc3QgY2hhciAqbWVzc2FnZSwgY29uc3QKICAgICByZXR1cm4gcHJv
bXB0X3RleHQ7CiB9CiAKK3N0YXRpYyB2b2lkCitvbl9wb3B1cF9tZW51X2Rpc2NhcmRlZCh2b2lk
ICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAg
Ly8gVGhlIHVzZXIgY2xpY2tlZCBvdXRzaWRlIHRoZSBtZW51IHRvIGRpc2NhcmQgaXQuCisgICAg
aW5mbygiUG9wdXAgbWVudSB3YXMgZGlzY2FyZGVkLlxuIik7CisgICAgQnJvd3Nlcl9XaW5kb3cg
KndpbmRvdyA9IChCcm93c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKKyAgICBld2tfcG9wdXBfbWVu
dV9jbG9zZSh3aW5kb3ctPnBvcHVwLmV3a19tZW51KTsKK30KKworc3RhdGljIHZvaWQKK29uX3Bv
cHVwX21lbnVfaXRlbV9jbGlja2VkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKm9iaiwg
dm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBCcm93c2VyX1dpbmRvdyAqd2luZG93ID0gKEJyb3dz
ZXJfV2luZG93ICopdXNlcl9kYXRhOworICAgIEVsbV9PYmplY3RfSXRlbSAqaXRlbSA9IChFbG1f
T2JqZWN0X0l0ZW0gKilldmVudF9pbmZvOworCisgICAgaW5mbygiU2VsZWN0ZWQgcG9wdXAgbWVu
dSBpbmRleDogJXVcbiIsIGVsbV9tZW51X2l0ZW1faW5kZXhfZ2V0KGl0ZW0pKTsKKyAgICBld2tf
cG9wdXBfbWVudV9zZWxlY3RlZF9pbmRleF9zZXQod2luZG93LT5wb3B1cC5ld2tfbWVudSwgZWxt
X21lbnVfaXRlbV9pbmRleF9nZXQoaXRlbSkpOworCisgICAgLy8gQ2xvc2UgcG9wdXAgbWVudS4K
KyAgICBld2tfcG9wdXBfbWVudV9jbG9zZSh3aW5kb3ctPnBvcHVwLmV3a19tZW51KTsKK30KKwor
c3RhdGljIHZvaWQKK3BvcHVwX21lbnVfcG9wdWxhdGUoRXZhc19PYmplY3QgKmVsbV9tZW51LCBF
d2tfUG9wdXBfTWVudSAqZXdrX21lbnUsIHZvaWQgKnVzZXJfZGF0YSkKK3sKKyAgICBjb25zdCBF
aW5hX0xpc3QqIGV3a19pdGVtcyA9IGV3a19wb3B1cF9tZW51X2l0ZW1zX2dldChld2tfbWVudSk7
CisKKyAgICB2b2lkICpkYXRhOworICAgIGNvbnN0IEVpbmFfTGlzdCAqbDsKKyAgICBFSU5BX0xJ
U1RfRk9SRUFDSChld2tfaXRlbXMsIGwsIGRhdGEpIHsKKyAgICAgICAgRXdrX1BvcHVwX01lbnVf
SXRlbSAqZXdrX2l0ZW0gPSAoRXdrX1BvcHVwX01lbnVfSXRlbSAqKWRhdGE7CisgICAgICAgIHN3
aXRjaCAoZXdrX3BvcHVwX21lbnVfaXRlbV90eXBlX2dldChld2tfaXRlbSkpIHsKKyAgICAgICAg
Y2FzZSBFV0tfUE9QVVBfTUVOVV9TRVBBUkFUT1I6CisgICAgICAgICAgICBlbG1fbWVudV9pdGVt
X3NlcGFyYXRvcl9hZGQoZWxtX21lbnUsIE5VTEwpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRVdLX1BPUFVQX01FTlVfSVRFTToKKyAgICAgICAgICAgIGlmIChld2tfcG9wdXBf
bWVudV9pdGVtX2lzX2xhYmVsX2dldChld2tfaXRlbSkpIHsKKyAgICAgICAgICAgICAgICBFbG1f
T2JqZWN0X0l0ZW0gKml0ZW0gPSBlbG1fbWVudV9pdGVtX2FkZChlbG1fbWVudSwgTlVMTCwgTlVM
TCwgZXdrX3BvcHVwX21lbnVfaXRlbV90ZXh0X2dldChld2tfaXRlbSksIE5VTEwsIE5VTEwpOwor
ICAgICAgICAgICAgICAgIGVsbV9vYmplY3RfaXRlbV9kaXNhYmxlZF9zZXQoaXRlbSwgRUlOQV9U
UlVFKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRWxtX09iamVjdF9J
dGVtICppdGVtID0gZWxtX21lbnVfaXRlbV9hZGQoZWxtX21lbnUsIE5VTEwsIE5VTEwsIGV3a19w
b3B1cF9tZW51X2l0ZW1fdGV4dF9nZXQoZXdrX2l0ZW0pLCBvbl9wb3B1cF9tZW51X2l0ZW1fY2xp
Y2tlZCwgdXNlcl9kYXRhKTsKKyAgICAgICAgICAgICAgICBlbG1fb2JqZWN0X2l0ZW1fdG9vbHRp
cF90ZXh0X3NldChpdGVtLCBld2tfcG9wdXBfbWVudV9pdGVtX3Rvb2x0aXBfZ2V0KGV3a19pdGVt
KSk7CisgICAgICAgICAgICAgICAgZWxtX29iamVjdF9pdGVtX2Rpc2FibGVkX3NldChpdGVtLCAh
ZXdrX3BvcHVwX21lbnVfaXRlbV9lbmFibGVkX2dldChld2tfaXRlbSkpOworICAgICAgICAgICAg
ICAgIGVsbV9tZW51X2l0ZW1fc2VsZWN0ZWRfc2V0KGl0ZW0sIGV3a19wb3B1cF9tZW51X2l0ZW1f
c2VsZWN0ZWRfZ2V0KGV3a19pdGVtKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGluZm8oIlVucmVjb2duaXplZCBwb3B1
cCBtZW51IGl0ZW0gdHlwZSFcbiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK3N0YXRpYyBFaW5hX0Jvb2wKK29uX3BvcHVwX21lbnVfc2hvdyhFd2tfVmlld19T
bWFydF9EYXRhICpzbWFydERhdGEsIEVpbmFfUmVjdGFuZ2xlIHJlY3QsIEV3a19UZXh0X0RpcmVj
dGlvbiB0ZXh0X2RpcmVjdGlvbiwgZG91YmxlIHBhZ2Vfc2NhbGVfZmFjdG9yLCBFd2tfUG9wdXBf
TWVudSAqZXdrX21lbnUpCit7CisgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IHdpbmRvd19m
aW5kX3dpdGhfZXdrX3ZpZXcoc21hcnREYXRhLT5zZWxmKTsKKworICAgIGlmICh3aW5kb3ctPnBv
cHVwLmVsbV9tZW51KQorICAgICAgICBldmFzX29iamVjdF9kZWwod2luZG93LT5wb3B1cC5lbG1f
bWVudSk7CisKKyAgICB3aW5kb3ctPnBvcHVwLmVsbV9tZW51ID0gZWxtX21lbnVfYWRkKHdpbmRv
dy0+ZWxtX3dpbmRvdyk7CisgICAgd2luZG93LT5wb3B1cC5ld2tfbWVudSA9IGV3a19tZW51Owor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3aW5kb3ctPnBvcHVwLmVsbV9tZW51
LCAiY2xpY2tlZCIsIG9uX3BvcHVwX21lbnVfZGlzY2FyZGVkLCB3aW5kb3cpOworCisgICAgcG9w
dXBfbWVudV9wb3B1bGF0ZSh3aW5kb3ctPnBvcHVwLmVsbV9tZW51LCBld2tfbWVudSwgd2luZG93
KTsKKworICAgIGluZm8oIlNob3dpbmcgcG9wdXAgbWVudSBhdCAoJWQsICVkKVxuIiwgcmVjdC54
LCByZWN0LnkpOworICAgIGVsbV9tZW51X21vdmUod2luZG93LT5wb3B1cC5lbG1fbWVudSwgcmVj
dC54LCByZWN0LnkpOworICAgIGV2YXNfb2JqZWN0X3Nob3cod2luZG93LT5wb3B1cC5lbG1fbWVu
dSk7CisKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCitzdGF0aWMgRWluYV9Cb29sCitvbl9w
b3B1cF9tZW51X2hpZGUoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc21hcnREYXRhKQoreworICAgIEJy
b3dzZXJfV2luZG93ICp3aW5kb3cgPSB3aW5kb3dfZmluZF93aXRoX2V3a192aWV3KHNtYXJ0RGF0
YS0+c2VsZik7CisKKyAgICBpZiAoIXdpbmRvdy0+cG9wdXAuZWxtX21lbnUpCisgICAgICAgIHJl
dHVybiBFSU5BX0ZBTFNFOworCisgICAgZWxtX21lbnVfY2xvc2Uod2luZG93LT5wb3B1cC5lbG1f
bWVudSk7CisKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCiBzdGF0aWMgRWluYV9Cb29sIG9u
X3dpbmRvd19nZW9tZXRyeV9nZXQoRXdrX1ZpZXdfU21hcnRfRGF0YSAqc2QsIEV2YXNfQ29vcmQg
KngsIEV2YXNfQ29vcmQgKnksIEV2YXNfQ29vcmQgKndpZHRoLCBFdmFzX0Nvb3JkICpoZWlnaHQp
CiB7CiAgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IHdpbmRvd19maW5kX3dpdGhfZXdrX3Zp
ZXcoc2QtPnNlbGYpOwpAQCAtMTA4Miw3ICsxMTczLDcgQEAgY3JlYXRlX3Rvb2xiYXJfYnV0dG9u
KEV2YXNfT2JqZWN0ICplbG1fd2luZG93LCBjb25zdCBjaGFyICppY29uX25hbWUpCiAKIHN0YXRp
YyBCcm93c2VyX1dpbmRvdyAqd2luZG93X2NyZWF0ZShFdmFzX09iamVjdCAqb3BlbmVyLCBjb25z
dCBjaGFyICp1cmwsIGludCB3aWR0aCwgaW50IGhlaWdodCwgRWluYV9Cb29sIHZpZXdfbW9kZSkK
IHsKLSAgICBCcm93c2VyX1dpbmRvdyAqd2luZG93ID0gbWFsbG9jKHNpemVvZihCcm93c2VyX1dp
bmRvdykpOworICAgIEJyb3dzZXJfV2luZG93ICp3aW5kb3cgPSBjYWxsb2MoMSwgc2l6ZW9mKEJy
b3dzZXJfV2luZG93KSk7CiAgICAgaWYgKCF3aW5kb3cpIHsKICAgICAgICAgaW5mbygiRVJST1I6
IGNvdWxkIG5vdCBjcmVhdGUgYnJvd3NlciB3aW5kb3cuXG4iKTsKICAgICAgICAgcmV0dXJuIE5V
TEw7CkBAIC0xMTgwLDYgKzEyNzEsOCBAQCBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19j
cmVhdGUoRXZhc19PYmplY3QgKm9wZW5lciwgY29uc3QgY2hhciAqdXJsLCBpbnQgdwogICAgIGV3
a1ZpZXdDbGFzcy0+ZnVsbHNjcmVlbl9leGl0ID0gb25fZnVsbHNjcmVlbl9leGl0OwogICAgIGV3
a1ZpZXdDbGFzcy0+d2luZG93X2NyZWF0ZSA9IG9uX3dpbmRvd19jcmVhdGU7CiAgICAgZXdrVmll
d0NsYXNzLT53aW5kb3dfY2xvc2UgPSBvbl93aW5kb3dfY2xvc2U7CisgICAgZXdrVmlld0NsYXNz
LT5wb3B1cF9tZW51X3Nob3cgPSBvbl9wb3B1cF9tZW51X3Nob3c7CisgICAgZXdrVmlld0NsYXNz
LT5wb3B1cF9tZW51X2hpZGUgPSBvbl9wb3B1cF9tZW51X2hpZGU7CiAKICAgICBFdmFzICpldmFz
ID0gZXZhc19vYmplY3RfZXZhc19nZXQod2luZG93LT5lbG1fd2luZG93KTsKICAgICBpZiAobGVn
YWN5X2JlaGF2aW9yX2VuYWJsZWQpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>