<?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>151513</bug_id>
          
          <creation_ts>2015-11-20 14:12:43 -0800</creation_ts>
          <short_desc>REGRESSION(r192247): [GTK] ASSERTION FAILED: type == WebCore::ActionType || type == WebCore::CheckableActionType || type == WebCore::SeparatorType</short_desc>
          <delta_ts>2015-12-01 05:57:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>hs85.jeong</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143812</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-20 14:12:43 -0800</bug_when>
    <thetext>Right-click inside a text entry:

ASSERTION FAILED: type == WebCore::ActionType || type == WebCore::CheckableActionType || type == WebCore::SeparatorType
../../Source/WebKit2/Shared/WebContextMenuItemData.cpp(57) : WebKit::WebContextMenuItemData::WebContextMenuItemData(WebCore::ContextMenuItemType, WebCore::ContextMenuAction, const WTF::String &amp;, bool, bool)
1   0x7f430abf785d /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1d) [0x7f430abf785d]
2   0x7f430f041cc9 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit22WebContextMenuItemDataC2EN7WebCore19ContextMenuItemTypeENS1_17ContextMenuActionERKN3WTF6StringEbb+0xd9) [0x7f430f041cc9]
3   0x7f430f4eb2cf /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit21WebContextMenuItemGtkC2ERKNS_22WebContextMenuItemDataE+0x6f) [0x7f430f4eb2cf]
4   0x7f430f509010 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZSt11make_uniqueIN6WebKit21WebContextMenuItemGtkEJRKNS0_22WebContextMenuItemDataEEENSt10_Unique_ifIT_E14_Single_objectEDpOT0_+0x50) [0x7f430f509010]
5   0x7f430f507f11 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_Z27webkitContextMenuItemCreateRKN6WebKit22WebContextMenuItemDataE+0x51) [0x7f430f507f11]
6   0x7f430f503e81 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_Z23webkitContextMenuCreateRKN3WTF6VectorIN6WebKit22WebContextMenuItemDataELm0ENS_15CrashOnOverflowELm16EEE+0x61) [0x7f430f503e81]
7   0x7f430f5d7841 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN21PageContextMenuClient29getCustomMenuFromDefaultItemsERN6WebKit7WebPageERKN7WebCore13HitTestResultERKN3WTF6VectorINS3_15ContextMenuItemELm0ENS7_15CrashOnOverflowELm16EEERNS8_INS0_22WebContextMenuItemDataELm0ESA_Lm16EEERNS7_6RefPtrIN3API6ObjectEEE+0x51) [0x7f430f5d7841]
8   0x7f430f418f1f /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNK6WebKit14WebContextMenu21menuItemsWithUserDataERN3WTF6VectorINS_22WebContextMenuItemDataELm0ENS1_15CrashOnOverflowELm16EEERNS1_6RefPtrIN3API6ObjectEEE+0xaf) [0x7f430f418f1f]
9   0x7f430f418bef /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit14WebContextMenu4showEv+0x9f) [0x7f430f418bef]
10  0x7f430f43ec31 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3e89c31) [0x7f430f43ec31]
11  0x7f430f436108 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3e81108) [0x7f430f436108]
12  0x7f430f435ec1 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage10mouseEventERKNS_13WebMouseEventE+0x1f1) [0x7f430f435ec1]
13  0x7f430f6b4cd6 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC22callMemberFunctionImplIN6WebKit7WebPageEMS2_FvRKNS1_13WebMouseEventEESt5tupleIJS3_EEJLm0EEEEvPT_T0_OT1_St14index_sequenceIJXspT2_EEE+0x96) [0x7f430f6b4cd6]
14  0x7f430f6b4c2c /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC18callMemberFunctionIN6WebKit7WebPageEMS2_FvRKNS1_13WebMouseEventEESt5tupleIJS3_EESt19make_index_sequenceILm1EEEEvOT1_PT_T0_+0x6c) [0x7f430f6b4c2c]
15  0x7f430f6ac6fa /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC13handleMessageIN8Messages7WebPage10MouseEventEN6WebKit7WebPageEMS5_FvRKNS4_13WebMouseEventEEEEvRNS_14MessageDecoderEPT0_T1_+0xba) [0x7f430f6ac6fa]
16  0x7f430f6a7fe0 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage24didReceiveWebPageMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x5a0) [0x7f430f6a7fe0]
17  0x7f430f43a79a /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit7WebPage17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x17a) [0x7f430f43a79a]
18  0x7f430f43a7e4 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZThn16_N6WebKit7WebPage17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x34) [0x7f430f43a7e4]
19  0x7f430eff6eb8 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC18MessageReceiverMap15dispatchMessageERNS_10ConnectionERNS_14MessageDecoderE+0x118) [0x7f430eff6eb8]
20  0x7f430f28b9fd /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit10WebProcess17didReceiveMessageERN3IPC10ConnectionERNS1_14MessageDecoderE+0x3d) [0x7f430f28b9fd]
21  0x7f430efe15f3 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageERNS_14MessageDecoderE+0x33) [0x7f430efe15f3]
22  0x7f430efdc096 /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection15dispatchMessageESt10unique_ptrINS_14MessageDecoderESt14default_deleteIS2_EE+0x166) [0x7f430efdc096]
23  0x7f430efe171b /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZN3IPC10Connection18dispatchOneMessageEv+0x11b) [0x7f430efe171b]
24  0x7f430efe41dd /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3a2f1dd) [0x7f430efe41dd]
25  0x7f430efe3ffd /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(+0x3a2effd) [0x7f430efe3ffd]
26  0x7f430ef41e4e /home/mcatanzaro/src/jhbuild/install/lib/libwebkit2gtk-4.0.so.37(_ZNKSt8functionIFvvEEclEv+0x3e) [0x7f430ef41e4e]
27  0x7f430ac1621a /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF7RunLoop11performWorkEv+0x13a) [0x7f430ac1621a]
28  0x7f430ac59adc /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1721adc) [0x7f430ac59adc]
29  0x7f430ac59ab8 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1721ab8) [0x7f430ac59ab8]
30  0x7f430ac59a91 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1721a91) [0x7f430ac59a91]
31  0x7f430ac59a38 /home/mcatanzaro/src/jhbuild/install/lib/libjavascriptcoregtk-4.0.so.18(+0x1721a38) [0x7f430ac59a38]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144655</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-28 13:22:54 -0800</bug_when>
    <thetext>The problem is that the WebContextMenuItemGtk::WebContextMenuItemGtk(const WebContextMenuItemData&amp; data) always fails if data is of type ContextMenuItemType::SubmenuType, because it chains up to the wrong WebContextMenuItemData constructor. There&apos;s no way to determine the right constructor to chain up to, so I added a new one accepting a WebContextMenuItemData and switched WebContextMenuItemGtk::WebContextMenuItemGtk(const WebContextMenuItemData&amp; data) to use it instead:

WebContextMenuItemData::WebContextMenuItemData(const WebContextMenuItemData&amp; data)
    : m_type(data.m_type)
    , m_action(data.m_action)
    , m_title(data.m_title)
{
    if (m_type == WebCore::SubmenuType)
        m_submenu = data.submenu();
    
    m_enabled = data.m_enabled;
    m_checked = data.m_checked;
}

That fixed the crash, but resulted in a submenu that is completely empty, which isn&apos;t good. Also, the GTK+ API test TestContextMenu is still crashing on the same assertion. This requires further investigation.

Also possibly problematic is the fact that our API allows removing a submenu (by passing NULL to webkit_context_menu_item_set_submenu) while leaving it with SubmenuType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144746</commentid>
    <comment_count>2</comment_count>
      <attachid>266243</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-11-30 04:19:09 -0800</bug_when>
    <thetext>Created attachment 266243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144747</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-30 04:20:45 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144854</commentid>
    <comment_count>4</comment_count>
      <attachid>266243</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-30 11:32:37 -0800</bug_when>
    <thetext>Comment on attachment 266243
Patch

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

&gt; Source/WebKit2/ChangeLog:15
&gt; +        WebContextMenuItemGtk is SubmenuType if it has submenu itmes, but

itmes -&gt; items

&gt; Source/WebKit2/Shared/gtk/WebContextMenuItemGtk.cpp:128
&gt; +    : WebContextMenuItemData(data.type() == SubmenuType ? ActionType : data.type(), data.action(), data.title(), data.enabled(), data.checked())

I think you should add this check to the constructor above, as well...

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp:212
&gt; +    item-&gt;priv-&gt;menuItem = std::make_unique&lt;WebContextMenuItemGtk&gt;(ActionType, ContextMenuItemBaseApplicationTag, String::fromUTF8(label));

...so that you don&apos;t need to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145163</commentid>
    <comment_count>5</comment_count>
      <attachid>266243</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-12-01 00:05:42 -0800</bug_when>
    <thetext>Comment on attachment 266243
Patch

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

&gt;&gt; Source/WebKit2/Shared/gtk/WebContextMenuItemGtk.cpp:128
&gt;&gt; +    : WebContextMenuItemData(data.type() == SubmenuType ? ActionType : data.type(), data.action(), data.title(), data.enabled(), data.checked())
&gt; 
&gt; I think you should add this check to the constructor above, as well...

I don&apos;t think so, the constructor above receives a type, the caller should provide the right type. We internally don&apos;t use the submenu type,l so we only need to check it when constructing from an external source like WebContextMenuItemData, but not from our own implementation

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp:212
&gt;&gt; +    item-&gt;priv-&gt;menuItem = std::make_unique&lt;WebContextMenuItemGtk&gt;(ActionType, ContextMenuItemBaseApplicationTag, String::fromUTF8(label));
&gt; 
&gt; ...so that you don&apos;t need to do this.

I prefer to make this explicit. This is building a WebContextMenuItemGtk, which doesn&apos;t use SubmenuType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145230</commentid>
    <comment_count>6</comment_count>
      <attachid>266243</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-12-01 05:40:31 -0800</bug_when>
    <thetext>Comment on attachment 266243
Patch

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

&gt;&gt;&gt; Source/WebKit2/Shared/gtk/WebContextMenuItemGtk.cpp:128
&gt;&gt;&gt; +    : WebContextMenuItemData(data.type() == SubmenuType ? ActionType : data.type(), data.action(), data.title(), data.enabled(), data.checked())
&gt;&gt; 
&gt;&gt; I think you should add this check to the constructor above, as well...
&gt; 
&gt; I don&apos;t think so, the constructor above receives a type, the caller should provide the right type. We internally don&apos;t use the submenu type,l so we only need to check it when constructing from an external source like WebContextMenuItemData, but not from our own implementation

There should probably be an assertion there instead. The assertion can also serve as a type of documentation for what is going on. Can you do that before landing?

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuItem.cpp:212
&gt;&gt;&gt; +    item-&gt;priv-&gt;menuItem = std::make_unique&lt;WebContextMenuItemGtk&gt;(ActionType, ContextMenuItemBaseApplicationTag, String::fromUTF8(label));
&gt;&gt; 
&gt;&gt; ...so that you don&apos;t need to do this.
&gt; 
&gt; I prefer to make this explicit. This is building a WebContextMenuItemGtk, which doesn&apos;t use SubmenuType.

I agree with Michael here. I don&apos;t understand the motivation for having constructors that differ so much in behavior. On the other hand, I don&apos;t think it should block the patch. It&apos;s a somewhat minor point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145231</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-12-01 05:57:40 -0800</bug_when>
    <thetext>Committed r192881: &lt;http://trac.webkit.org/changeset/192881&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266243</attachid>
            <date>2015-11-30 04:19:09 -0800</date>
            <delta_ts>2015-12-01 05:40:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-context-menu-crash.diff</filename>
            <type>text/plain</type>
            <size>4870</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0NWMwNzFlLi4yYTAzNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYg
QEAKIDIwMTUtMTEtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFJFR1JFU1NJT04ocjE5MjI0Nyk6IFtHVEtdIEFTU0VSVElPTiBGQUlMRUQ6
IHR5cGUgPT0gV2ViQ29yZTo6QWN0aW9uVHlwZSB8fCB0eXBlID09IFdlYkNvcmU6OkNoZWNrYWJs
ZUFjdGlvblR5cGUgfHwgdHlwZSA9PSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE1MTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGhhcHBlbnMgYmVjYXVz
ZSB3ZSBhcmUgdXNpbmcgb3VyIG93biBXZWJDb250ZXh0TWVudUl0ZW1HdGsKKyAgICAgICAgZGVy
aXZlZCBmcm9tIFdlYkNvbnRleHRNZW51SXRlbURhdGEsIGJ1dCB1c2luZyBvdXIgb3duIHN1Ym1l
bnUKKyAgICAgICAgaXRlbXMgaGFuZGxpbmcuIFdlIGFyZSB1c2luZyB0aGUgbm9uLXN1Ym1lbnUK
KyAgICAgICAgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSBjb25zdHJ1Y3RvciB0byBjcmVhdGUgb3Vy
IHN1Ym1lbnUgaXRlbXMKKyAgICAgICAgdG9vLCBiZWNhdXNlIFdlYkNvbnRleHRNZW51SXRlbURh
dGEgYWx3YXlzIGV4cGVjdCB0aGUgc3VibWVudQorICAgICAgICBpdGVtcyB0byBiZSBwYXNzZWQg
dG8gdGhlIGNvbnN0cnVjdG9yLCBidXQgd2UgaGF2ZSBhIHNldF9zdWJtZW51CisgICAgICAgIG1l
dGhvZCBpbiB0aGUgcHVibGljIEFQSS4gU28gd2UgY29uc2lkZXIgdGhhdCBhCisgICAgICAgIFdl
YkNvbnRleHRNZW51SXRlbUd0ayBpcyBTdWJtZW51VHlwZSBpZiBpdCBoYXMgc3VibWVudSBpdG1l
cywgYnV0CisgICAgICAgIHdlIHVzZSB0aGUgYWN0aW9uIHR5cGUgaW50ZXJuYWxseS4gV2hlbiBj
b252ZXJ0aW5nIGEKKyAgICAgICAgV2ViQ29udGV4dE1lbnVJdGVtR3RrIHRvIGEgZ2VuZXJpYyBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLCB3ZQorICAgICAgICBjb3JyZWN0bHkgc2V0IHRoZSB0eXBl
IGFuZCBwYXNzIHRoZSBzdWJtZW51IGl0ZW1zIHRvIHRoZQorICAgICAgICBhcHByb3JpYXRlIGNv
bnN0cnVjdG9yLgorCisgICAgICAgICogU2hhcmVkL2d0ay9XZWJDb250ZXh0TWVudUl0ZW1HdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1HdGs6OldlYkNvbnRleHRN
ZW51SXRlbUd0ayk6IFdoZW4KKyAgICAgICAgY29uc3RydWN0aW5nIGZyb20gYSBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhLCBzZXQgdGhlIHR5cGUgYXMKKyAgICAgICAgQWN0aW9uVHlwZSB3aGVuIGl0
J3MgYSBzdWJtZW51IHR5cGUuCisgICAgICAgICogU2hhcmVkL2d0ay9XZWJDb250ZXh0TWVudUl0
ZW1HdGsuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtR3RrOjp0eXBlKTog
UmV0dXJuIFN1Ym1lbnVUeXBlIGlmCisgICAgICAgIHN1Ym1lbnUgaXRlbXMgdmVjdG9yIGlzIG5v
dCBlbXB0eSwgb3RoZXJ3aXNlIHVzZSB0aGUgcGFyZW50IG1ldGhvZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAod2Via2l0
X2NvbnRleHRfbWVudV9pdGVtX25ld193aXRoX3N1Ym1lbnUpOiBDcmVhdGUgdGhlCisgICAgICAg
IFdlYkNvbnRleHRNZW51SXRlbUd0ayBhcyBBY3Rpb25UeXBlLgorCisyMDE1LTExLTMwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBV
SSBwcm9jZXNzIGNyYXNoIHdoZW4gdGhlIHNjcmVlbnNhdmVyIERCdXMgcHJveHkgaXMgYmVpbmcg
Y3JlYXRlZCB3aGlsZSB0aGUgd2ViIHZpZXcgaXMgZGVzdHJveWVkCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2NTMKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJDb250ZXh0TWVudUl0ZW1HdGsuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2d0ay9XZWJDb250ZXh0TWVudUl0ZW1HdGsuY3BwCmluZGV4IDg1N2Ix
ZTEuLmRhMWRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViQ29u
dGV4dE1lbnVJdGVtR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkNv
bnRleHRNZW51SXRlbUd0ay5jcHAKQEAgLTEyNSwxMyArMTI1LDEzIEBAIFdlYkNvbnRleHRNZW51
SXRlbUd0azo6V2ViQ29udGV4dE1lbnVJdGVtR3RrKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwg
Q29udGV4dE1lCiB9CiAKIFdlYkNvbnRleHRNZW51SXRlbUd0azo6V2ViQ29udGV4dE1lbnVJdGVt
R3RrKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGRhdGEpCi0gICAgOiBXZWJDb250ZXh0
TWVudUl0ZW1EYXRhKGRhdGEudHlwZSgpLCBkYXRhLmFjdGlvbigpLCBkYXRhLnRpdGxlKCksIGRh
dGEuZW5hYmxlZCgpLCBkYXRhLmNoZWNrZWQoKSkKKyAgICA6IFdlYkNvbnRleHRNZW51SXRlbURh
dGEoZGF0YS50eXBlKCkgPT0gU3VibWVudVR5cGUgPyBBY3Rpb25UeXBlIDogZGF0YS50eXBlKCks
IGRhdGEuYWN0aW9uKCksIGRhdGEudGl0bGUoKSwgZGF0YS5lbmFibGVkKCksIGRhdGEuY2hlY2tl
ZCgpKQogewogICAgIGNyZWF0ZUd0a0FjdGlvbklmTmVlZGVkKCk7CiB9CiAKIFdlYkNvbnRleHRN
ZW51SXRlbUd0azo6V2ViQ29udGV4dE1lbnVJdGVtR3RrKGNvbnN0IFdlYkNvbnRleHRNZW51SXRl
bUd0ayYgZGF0YSwgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbUd0az4mJiBzdWJtZW51KQotICAg
IDogV2ViQ29udGV4dE1lbnVJdGVtRGF0YShTdWJtZW51VHlwZSwgZGF0YS5hY3Rpb24oKSwgZGF0
YS50aXRsZSgpLCBkYXRhLmVuYWJsZWQoKSwgZmFsc2UpCisgICAgOiBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhKEFjdGlvblR5cGUsIGRhdGEuYWN0aW9uKCksIGRhdGEudGl0bGUoKSwgZGF0YS5lbmFi
bGVkKCksIGZhbHNlKQogewogICAgIG1fYWN0aW9uID0gZGF0YS5ndGtBY3Rpb24oKTsKICAgICBt
X3N1Ym1lbnVJdGVtcyA9IFdURjo6bW92ZShzdWJtZW51KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9ndGsvV2ViQ29udGV4dE1lbnVJdGVtR3RrLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvZ3RrL1dlYkNvbnRleHRNZW51SXRlbUd0ay5oCmluZGV4IDk2MTU0NDguLmFhNWJi
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViQ29udGV4dE1lbnVJ
dGVtR3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJDb250ZXh0TWVudUl0
ZW1HdGsuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgV2ViQ29udGV4dE1lbnVJdGVt
R3RrKEd0a0FjdGlvbiopOwogICAgIH5XZWJDb250ZXh0TWVudUl0ZW1HdGsoKTsKIAorICAgIC8v
IFdlIGRvbid0IHVzZSB0aGUgU3VibWVudVR5cGUgaW50ZXJuYWxseSwgc28gY2hlY2sgaWYgd2Ug
aGF2ZSBzdWJtZW51IGl0ZW1zLgorICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VibWVudUl0ZW1zLmlzRW1wdHkoKSA/IFdlYkNvbnRleHRN
ZW51SXRlbURhdGE6OnR5cGUoKSA6IFdlYkNvcmU6OlN1Ym1lbnVUeXBlOyB9CiAgICAgR3RrQWN0
aW9uKiBndGtBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FjdGlvbi5nZXQoKTsgfQogICAgIGNv
bnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1HdGs+JiBzdWJtZW51SXRlbXMoKSBjb25zdCB7
IHJldHVybiBtX3N1Ym1lbnVJdGVtczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNwcAppbmRleCA1NzZh
NDY4Li40ZWU4MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBX
ZWJLaXRDb250ZXh0TWVudUl0ZW0qIHdlYmtpdF9jb250ZXh0X21lbnVfaXRlbV9uZXdfd2l0aF9z
dWJtZW51KGNvbnN0IGdjaGFyKiBsYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFdl
YktpdENvbnRleHRNZW51SXRlbSogaXRlbSA9IFdFQktJVF9DT05URVhUX01FTlVfSVRFTShnX29i
amVjdF9uZXcoV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VX0lURU0sIG51bGxwdHIpKTsKLSAgICBp
dGVtLT5wcml2LT5tZW51SXRlbSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29udGV4dE1lbnVJdGVt
R3RrPihTdWJtZW51VHlwZSwgQ29udGV4dE1lbnVJdGVtQmFzZUFwcGxpY2F0aW9uVGFnLCBTdHJp
bmc6OmZyb21VVEY4KGxhYmVsKSk7CisgICAgaXRlbS0+cHJpdi0+bWVudUl0ZW0gPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkNvbnRleHRNZW51SXRlbUd0az4oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJ
dGVtQmFzZUFwcGxpY2F0aW9uVGFnLCBTdHJpbmc6OmZyb21VVEY4KGxhYmVsKSk7CiAgICAgaXRl
bS0+cHJpdi0+c3ViTWVudSA9IHN1Ym1lbnU7CiAgICAgd2Via2l0Q29udGV4dE1lbnVTZXRQYXJl
bnRJdGVtKHN1Ym1lbnUsIGl0ZW0pOwogCg==
</data>
<flag name="review"
          id="291255"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>