<?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>109827</bug_id>
          
          <creation_ts>2013-02-14 06:55:19 -0800</creation_ts>
          <short_desc>[Qt][WK2] Keep the WebContext alive during the whole application&apos;s lifetime</short_desc>
          <delta_ts>2013-03-12 04:14:49 -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>New Bugs</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>
          
          <blocked>109829</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>benjamin</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>833035</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-14 06:55:19 -0800</bug_when>
    <thetext>[Qt][WK2] Keep the WebContext alive during the whole application&apos;s lifetime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833042</commentid>
    <comment_count>1</comment_count>
      <attachid>188341</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-14 07:00:58 -0800</bug_when>
    <thetext>Created attachment 188341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837439</commentid>
    <comment_count>2</comment_count>
      <attachid>188341</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-20 06:58:32 -0800</bug_when>
    <thetext>Comment on attachment 188341
Patch

Patch looks good to me. Benjamin, can you sign off on this patch? Thank you :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842809</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-27 01:00:00 -0800</bug_when>
    <thetext>WK2-sign-off-ping :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843394</commentid>
    <comment_count>4</comment_count>
      <attachid>188341</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-27 12:45:20 -0800</bug_when>
    <thetext>Comment on attachment 188341
Patch

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

I have no problem with this landing.

Why do you have issues with the lifetime of WebContext? Is it because you want to keep a global shared Context?

&gt; Source/WebKit2/UIProcess/qt/QtWebContext.cpp:123
&gt;  QtWebContext::~QtWebContext()
&gt;  {
&gt; -    ASSERT(!s_defaultQtWebContext || s_defaultQtWebContext == this);
&gt; -    s_defaultQtWebContext = 0;
&gt;  }

Can&apos;t you remove the destructor entirely?

&gt; Source/WebKit2/UIProcess/qt/QtWebContext.cpp:135
&gt; +        RefPtr&lt;WebContext&gt; webContext = WebContext::create(String());

WKContextCreate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843880</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-28 01:36:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Why do you have issues with the lifetime of WebContext? Is it because you want to keep a global shared Context?

The main issue I had was when trying to open/close the IconDatabase quickly in tests.
IconDatabase::dispatchDidFinishURLImportOnMainThread would post a callback on the main thread, but by the time it&apos;s run there the object would be deleted already. Since it uses a temporary work item object with no reference elsewhere I can&apos;t fix it by calling cancelCallOnMainThread.

On top of that, internal references are kept to the WebContext by WebProcessProxies, which only release it after their web process terminated, 60 seconds after the last page closed. To keep it that way I would also need some callback in the C API to know when all internal references have been dropped to know when I can destroy my wrapper objects.

So for the moment it&apos;s simpler and more reliable to keep it alive.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebContext.cpp:123
&gt; &gt;  QtWebContext::~QtWebContext()
&gt; &gt;  {
&gt; &gt; -    ASSERT(!s_defaultQtWebContext || s_defaultQtWebContext == this);
&gt; &gt; -    s_defaultQtWebContext = 0;
&gt; &gt;  }
&gt; 
&gt; Can&apos;t you remove the destructor entirely?

Yes I might as well.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtWebContext.cpp:135
&gt; &gt; +        RefPtr&lt;WebContext&gt; webContext = WebContext::create(String());
&gt; 
&gt; WKContextCreate?

It&apos;s done later in bug 108475.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853311</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-12 04:14:49 -0700</bug_when>
    <thetext>Committed r145513: &lt;http://trac.webkit.org/changeset/145513&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188341</attachid>
            <date>2013-02-14 07:00:58 -0800</date>
            <delta_ts>2013-02-27 12:45:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109827-20130214155725.patch</filename>
            <type>text/plain</type>
            <size>12808</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDQzNDdmNjBiZDQxYzYy
NGNjNGQ5ODc0ZWNmMGU1YWQ3ZGY2YzI5ZC4uOGNjOTFiY2UzYjExNDhlM2VjNTBhZTU4NGI0OWEx
YTE2NGRiYWMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTE0ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XVtXSzJdIEtlZXAgdGhlIFdlYkNvbnRleHQgYWxpdmUgZHVyaW5nIHRoZSB3aG9sZSBhcHBsaWNh
dGlvbidzIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgbGlmZXRpbWUgb2YgdGhlIFdlYkNvbnRleHQgaXMgZGlmZmljdWx0IHRvIG1h
bmFnZSBiZWNhdXNlIG9mIGEgY2lyY3VsYXIKKyAgICAgICAgcmVmZXJlbmNlIGtlcHQgd2l0aCB0
aGUgV2ViUHJvY2Vzc1Byb3h5IHVudGlsIGl0IHNodXRzIGl0c2VsZiBkb3duLCA2MAorICAgICAg
ICBzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IHBhZ2UgaXMgY2xvc2VkLiBUaGVyZSB3YXMgc29tZSBu
b3RpZmljYXRpb24KKyAgICAgICAgaW4gcGxhY2UgdG8gaGFuZGxlIHRoaXMgaW4gdGhlIHVwcGVy
IGxheWVyLCBidXQgaGF2aW5nIHRvIGdvIHRocm91Z2ggdGhlCisgICAgICAgIEMgQVBJIChkb25l
IGluIGEgZm9sbG93aW5nIHBhdGNoKSBtYWtlcyB0aGlzIHF1aXRlIGF3a3dhcmQuCisKKyAgICAg
ICAgS2VlcGluZyB0aGUgV2ViQ29udGV4dCBhbGl2ZSBhbHNvIGluY2x1ZGVzIHRoZSBpY29uIGRh
dGFiYXNlIHdoaWNoIGlzCisgICAgICAgIHF1aXRlIGhlYXZ5LCBpbiB0aGUgZnV0dXJlIHdlIHNo
b3VsZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHRoZQorICAgICAgICBRUXVpY2tXZWJWaWV3OjppY29u
IHByb3BlcnR5IGlzIHJlYWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQ
cml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpoYW5kbGVEb3dubG9hZFJl
cXVlc3QpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OnVwZGF0ZUljb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29u
aW1hZ2Vwcm92aWRlci5jcHA6CisgICAgICAgIChRV2ViSWNvbkltYWdlUHJvdmlkZXI6OnJlcXVl
c3RJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6flF0V2ViQ29udGV4dCk6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UXRX
ZWJDb250ZXh0OjpkZWZhdWx0Q29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2Vi
Q29udGV4dC5oOgorICAgICAgICAoUXRXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UXRX
ZWJDb250ZXh0Ojpkb3dubG9hZE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkNvbnRl
eHQ6Omljb25EYXRhYmFzZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRl
eHQpOgorCisyMDEzLTAyLTE0ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBk
aWdpYS5jb20+CisKICAgICAgICAgW1F0XVtXSzJdIEZhdm9yIFFVcmwgYW5kIFFTdHJpbmcgb3Zl
ciBXVEY6OlN0cmluZyBpbiB0aGUgUXQgQVBJIGxheWVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0NjgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggYmYyZDE3ZDVjYjZjOTRi
MzcyYTk3NmNkMGJmM2I1MDBjM2MyYmQ2ZS4uMDZiMzU4MmM1Yjk0YTMzZmYzYzNmYTA2MGU3NGVi
NGVhMTFmZjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUXRXZWJQYWdlRXZl
bnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUXRXZWJQYWdlUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKQEAgLTI3Miw2ICsyNzMsNyBAQCBRUG9pbnRGIFFR
dWlja1dlYlZpZXdQcml2YXRlOjpGbGlja2FibGVBeGlzTG9ja2VyOjphZGp1c3QoY29uc3QgUVBv
aW50RiYgcG9zaXRpbwogUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRl
KFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgIDogcV9wdHIodmlld3BvcnQpCiAgICAgLCBl
eHBlcmltZW50YWwobmV3IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwodmlld3BvcnQsIHRoaXMp
KQorICAgICwgY29udGV4dCgwKQogICAgICwgYWxlcnREaWFsb2coMCkKICAgICAsIGNvbmZpcm1E
aWFsb2coMCkKICAgICAsIHByb21wdERpYWxvZygwKQpAQCAtNjA3LDcgKzYwOSw3IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5
KiBkb3dubG9hZCkKICAgICBkb3dubG9hZEl0ZW0tPmQtPmRvd25sb2FkUHJveHkgPSBkb3dubG9h
ZDsKIAogICAgIHEtPmNvbm5lY3QoZG93bmxvYWRJdGVtLT5kLCBTSUdOQUwocmVjZWl2ZWRSZXNw
b25zZShRV2ViRG93bmxvYWRJdGVtKikpLCBxLCBTTE9UKF9xX29uUmVjZWl2ZWRSZXNwb25zZUZy
b21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpKTsKLSAgICBRdFdlYkNvbnRleHQ6OmRvd25s
b2FkTWFuYWdlcigpLT5hZGREb3dubG9hZChkb3dubG9hZCwgZG93bmxvYWRJdGVtKTsKKyAgICBR
dFdlYkNvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCktPmRvd25sb2FkTWFuYWdlcigpLT5hZGREb3du
bG9hZChkb3dubG9hZCwgZG93bmxvYWRJdGVtKTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6X3Ffb25WaXNpYmxlQ2hhbmdlZCgpCkBAIC02NDIsNyArNjQ0LDcgQEAgdm9pZCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlSWNvbigpCiAgICAgaWYgKCFwcm92aWRlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUVVybCBpY29uVXJsID0gcHJvdmlkZXItPmljb25VUkxGb3JQYWdl
VVJMSW5Db250ZXh0KG1fY3VycmVudFVybCwgY29udGV4dC5nZXQoKSk7CisgICAgUVVybCBpY29u
VXJsID0gcHJvdmlkZXItPmljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0KG1fY3VycmVudFVybCwg
Y29udGV4dCk7CiAKICAgICBpZiAoaWNvblVybCA9PSBtX2ljb25VcmwpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wX3AuaAppbmRleCAwODI1YmQ1NzM0OWVlM2E1NmViMmNhMmJmMzQ3YjgyNjhlZDA3YThlLi4x
MDYxOGY4OWE0MDAyOWNkNWEwNmQxYjUwMWQzZDkxMjc1OTFkNDRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xNjQs
NyArMTY0LDYgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3
YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV0tBcnJheVJlZiwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVp
Y2tXZWJWaWV3KiB2aWV3cG9ydCk7Ci0gICAgUmVmUHRyPFdlYktpdDo6UXRXZWJDb250ZXh0PiBj
b250ZXh0OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gd2ViUGFnZVByb3h5Owog
ICAgIFdLUmV0YWluUHRyPFdLUGFnZVJlZj4gd2ViUGFnZTsKICAgICBXS1JldGFpblB0cjxXS1Bh
Z2VHcm91cFJlZj4gcGFnZUdyb3VwOwpAQCAtMTgwLDYgKzE3OSw3IEBAIHByb3RlY3RlZDoKICAg
ICBRU2NvcGVkUG9pbnRlcjxRUXVpY2tXZWJQYWdlPiBwYWdlVmlldzsKICAgICBRUXVpY2tXZWJW
aWV3KiBxX3B0cjsKICAgICBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsKiBleHBlcmltZW50YWw7
CisgICAgV2ViS2l0OjpRdFdlYkNvbnRleHQqIGNvbnRleHQ7CiAKICAgICBGbGlja2FibGVBeGlz
TG9ja2VyIGF4aXNMb2NrZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcAppbmRleCBlNjI1Y2Q3M2I5OTQy
ZTRmNDg2MTA2MDM0ZTM2YTc1MWYxNWNjZWJkLi5hYzdlZDU3OTkzNjdiOTljYjUzNTExZmFiYjhm
NDE2NThhMzAwMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFFJbWFn
ZSBRV2ViSWNvbkltYWdlUHJvdmlkZXI6OnJlcXVlc3RJbWFnZShjb25zdCBRU3RyaW5nJiBpZCwg
UVNpemUqIHNpemUsIGNvbnN0CiB7CiAgICAgUVN0cmluZyBwYWdlVVJMID0gUVN0cmluZzo6ZnJv
bVV0ZjgoUUJ5dGVBcnJheTo6ZnJvbUJhc2U2NChpZC5taWRSZWYoaWQuaW5kZXhPZignIycpICsg
MSkudG9MYXRpbjEoKSkpOwogCi0gICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRh
YmFzZSA9IFF0V2ViQ29udGV4dDo6aWNvbkRhdGFiYXNlKCk7CisgICAgUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQqIGljb25EYXRhYmFzZSA9IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS0+
aWNvbkRhdGFiYXNlKCk7CiAgICAgaWYgKCFpY29uRGF0YWJhc2UpCiAgICAgICAgIHJldHVybiBR
SW1hZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNw
cAppbmRleCBmYWFjYTkxYjJmZTg2YWE1MzNjY2FmMjZjYmMwNWM4NjFjOTVkZDIxLi4yNjc1ZjUx
MWY2NDNiMDFiM2JjMWQ4OTYxMzc1NmVhYzZjNzU2NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJDb250ZXh0LmNwcApAQCAtMzQsMTAgKzM0LDEyIEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1zdGF0aWMgV2ViQ29udGV4dCogc19kZWZhdWx0V2ViQ29udGV4dCA9
IDA7CisvLyBQcmV2ZW50IHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgV0tDb250ZXh0IGZvciB0d28g
cmVhc29uczoKKy8vIC0gQW4gaW50ZXJuYWwgcmVmZXJlbmNlIGlzIGtlcHQgdG8gdGhlIFdlYkNv
bnRleHQgd2FpdGluZyB1bnRpbCB0aGUgd2ViIHByb2Nlc3Mgc2h1dCBkb3duLCB3aGljaAorLy8g
ZG9lcyBzbyA2MCBzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IHBhZ2UgY2xvc2VkLiBXZSB3YW50IHRv
IHJldXNlIHRoYXQgd2ViIHByb2Nlc3MgaWYgcG9zc2libGUgYW5kCisvLyBhdm9pZCBjcmVhdGlu
ZyBhIHNlY29uZCBwYXJhbGxlbCBXS0NvbnRleHQgKyB3ZWIgcHJvY2Vzcy4KKy8vIC0gVGhlIElj
b25EYXRhYmFzZSB3YXNuJ3QgZGVzaWduZWQgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGluc3RhbmNl
LCBvciB0byBiZSBxdWlja2x5IG9wZW5lZC9jbG9zZWQuCiBzdGF0aWMgUXRXZWJDb250ZXh0KiBz
X2RlZmF1bHRRdFdlYkNvbnRleHQgPSAwOwotc3RhdGljIE93blB0cjxRdERvd25sb2FkTWFuYWdl
cj4gc19kb3dubG9hZE1hbmFnZXI7Ci1zdGF0aWMgT3duUHRyPFF0V2ViSWNvbkRhdGFiYXNlQ2xp
ZW50PiBzX2ljb25EYXRhYmFzZTsKIAogc3RhdGljIHZvaWQgaW5pdEluc3BlY3RvclNlcnZlcigp
CiB7CkBAIC0xMDksNTggKzExMSwzOCBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgV0tDb250ZXh0U2V0
SW5qZWN0ZWRCdW5kbGVDbGllbnQodG9BUEkoY29udGV4dCksICZpbmplY3RlZEJ1bmRsZUNsaWVu
dCk7CiB9CiAKLVF0V2ViQ29udGV4dDo6UXRXZWJDb250ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQp
CitRdFdlYkNvbnRleHQ6OlF0V2ViQ29udGV4dChQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRl
eHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fZG93bmxvYWRNYW5hZ2VyKG5l
dyBRdERvd25sb2FkTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkpKQorICAgICwgbV9pY29uRGF0YWJh
c2UobmV3IFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KG1fY29udGV4dC5nZXQoKSkpCiB7CiB9CiAK
IFF0V2ViQ29udGV4dDo6flF0V2ViQ29udGV4dCgpCiB7Ci0gICAgQVNTRVJUKCFzX2RlZmF1bHRR
dFdlYkNvbnRleHQgfHwgc19kZWZhdWx0UXRXZWJDb250ZXh0ID09IHRoaXMpOwotICAgIHNfZGVm
YXVsdFF0V2ViQ29udGV4dCA9IDA7CiB9CiAKIC8vIFVzZWQgZGlyZWN0bHkgb25seSBieSBXZWJL
aXRUZXN0UnVubmVyLgotUGFzc1JlZlB0cjxRdFdlYkNvbnRleHQ+IFF0V2ViQ29udGV4dDo6Y3Jl
YXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCitRdFdlYkNvbnRleHQqIFF0V2ViQ29udGV4dDo6Y3Jl
YXRlKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKIHsKICAgICBnbG9iYWxJbml0aWFs
aXphdGlvbigpOwotICAgIC8vIFRoZSBsaWZldGltZSBvZiBXZWJDb250ZXh0IGlzIGEgYml0IHNw
ZWNpYWwsIGl0IGlzIGJvdW5kIHRvIHRoZSByZWZlcmVuY2UgaGVsZAotICAgIC8vIGJ5IFF0V2Vi
Q29udGV4dCBhdCBmaXJzdCBhbmQgdGhlbiBlbnRlcnMgYSBjaXJjdWxhciBkZXBlbmRlbmN5IHdp
dGggV2ViUHJvY2Vzc1Byb3h5Ci0gICAgLy8gb25jZSB0aGUgZmlyc3QgcGFnZSBpcyBjcmVhdGVk
IHVudGlsIHRoZSB3ZWIgcHJvY2VzcyBleGl0cy4gQmVjYXVzZSBvZiB0aGlzIHdlIGNhbid0Ci0g
ICAgLy8gYXNzdW1lIHRoYXQgZGVzdHJveWluZyB0aGUgbGFzdCBRdFdlYkNvbnRleHQgd2lsbCBk
ZXN0cm95IHRoZSBXZWJDb250ZXh0IGFuZCB3ZQotICAgIC8vIGhhdmUgdG8gbWFrZSBzdXJlIHRo
YXQgV2ViQ29udGV4dCdzIGNsaWVudHMgZm9sbG93IGl0cyBsaWZldGltZSBhbmQgYXJlbid0IGF0
dGFjaGVkCi0gICAgLy8gdG8gUXRXZWJDb250ZXh0LiBRdFdlYkNvbnRleHQgaXRzZWxmIGlzIG9u
bHkgYXR0YWNoZWQgdG8gUVF1aWNrV2ViVmlldy4KLSAgICAvLyBTaW5jZSB3ZSBvbmx5IHN1cHBv
cnQgb25lIFdlYkNvbnRleHQgYXQgYSB0aW1lLCBpbml0aWFsaXplIHRob3NlIGNsaWVudHMgZ2xv
YmFsbHkKLSAgICAvLyBoZXJlLiBUaGV5IGhhdmUgdG8gYmUgYXZhaWxhYmxlIHRvIHZpZXdzIHNw
YXduZWQgYnkgV2ViS2l0VGVzdFJ1bm5lciBhcyB3ZWxsLgotICAgIGlmICghc19kb3dubG9hZE1h
bmFnZXIpCi0gICAgICAgIHNfZG93bmxvYWRNYW5hZ2VyID0gYWRvcHRQdHIobmV3IFF0RG93bmxv
YWRNYW5hZ2VyKGNvbnRleHQpKTsKLSAgICBpZiAoIXNfaWNvbkRhdGFiYXNlKQotICAgICAgICBz
X2ljb25EYXRhYmFzZSA9IGFkb3B0UHRyKG5ldyBRdFdlYkljb25EYXRhYmFzZUNsaWVudChjb250
ZXh0KSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBRdFdlYkNvbnRleHQoY29udGV4dCkpOwor
ICAgIHJldHVybiBuZXcgUXRXZWJDb250ZXh0KGNvbnRleHQpOwogfQogCi1QYXNzUmVmUHRyPFF0
V2ViQ29udGV4dD4gUXRXZWJDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpCitRdFdlYkNvbnRleHQq
IFF0V2ViQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKQogewotICAgIC8vIEtlZXAgbG9jYWwgcmVm
ZXJlbmNlcyB1bnRpbCB3ZSBjYW4gcmV0dXJuIGEgcmVmIHRvIFF0V2ViQ29udGV4dCBob2xkaW5n
IHRoZSBXZWJDb250ZXh0LgotICAgIFJlZlB0cjxXZWJDb250ZXh0PiB3ZWJDb250ZXh0KHNfZGVm
YXVsdFdlYkNvbnRleHQpOwotICAgIFJlZlB0cjxRdFdlYkNvbnRleHQ+IHF0V2ViQ29udGV4dChz
X2RlZmF1bHRRdFdlYkNvbnRleHQpOwotCi0gICAgaWYgKCF3ZWJDb250ZXh0KSB7Ci0gICAgICAg
IHdlYkNvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVhdGUoU3RyaW5nKCkpOwotICAgICAgICBzX2Rl
ZmF1bHRXZWJDb250ZXh0ID0gd2ViQ29udGV4dC5nZXQoKTsKKyAgICBpZiAoIXNfZGVmYXVsdFF0
V2ViQ29udGV4dCkgeworICAgICAgICBSZWZQdHI8V2ViQ29udGV4dD4gd2ViQ29udGV4dCA9IFdl
YkNvbnRleHQ6OmNyZWF0ZShTdHJpbmcoKSk7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSBmb3IgV2Vi
S2l0VGVzdFJ1bm5lciB0aGF0IHRoZSBpbmplY3RlZCBidW5kbGUgY2xpZW50IGlzbid0IGluaXRp
YWxpemVkCi0gICAgICAgIC8vIGFuZCB0aGF0IHRoZSBwYWdlIGNhY2hlIGlzbid0IGVuYWJsZWQg
KGRlZmF1bHRDb250ZXh0IGlzbid0IHVzZWQgdGhlcmUpLgorICAgICAgICAvLyBhbmQgdGhhdCB0
aGUgcGFnZSBjYWNoZSBpc24ndCBlbmFibGVkIChkZWZhdWx0Q29udGV4dCgpIGlzbid0IHVzZWQg
dGhlcmUpLgogICAgICAgICBpbml0aWFsaXplQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KHdl
YkNvbnRleHQuZ2V0KCkpOwogICAgICAgICAvLyBBIGdvb2QgYWxsLWFyb3VuZCBkZWZhdWx0Lgog
ICAgICAgICB3ZWJDb250ZXh0LT5zZXRDYWNoZU1vZGVsKENhY2hlTW9kZWxEb2N1bWVudEJyb3dz
ZXIpOwotICAgIH0KIAotICAgIGlmICghcXRXZWJDb250ZXh0KSB7Ci0gICAgICAgIHF0V2ViQ29u
dGV4dCA9IFF0V2ViQ29udGV4dDo6Y3JlYXRlKHdlYkNvbnRleHQuZ2V0KCkpOwotICAgICAgICBz
X2RlZmF1bHRRdFdlYkNvbnRleHQgPSBxdFdlYkNvbnRleHQuZ2V0KCk7CisgICAgICAgIHNfZGVm
YXVsdFF0V2ViQ29udGV4dCA9IFF0V2ViQ29udGV4dDo6Y3JlYXRlKHdlYkNvbnRleHQucmVsZWFz
ZSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcXRXZWJDb250ZXh0LnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gc19kZWZhdWx0UXRXZWJDb250ZXh0OwogfQogCiBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gUXRXZWJDb250ZXh0OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIGNsaWVudCwgV2ViUGFn
ZUdyb3VwKiBwYWdlR3JvdXApCkBAIC0xNjgsMjcgKzE1MCw1IEBAIFBhc3NSZWZQdHI8V2ViUGFn
ZVByb3h5PiBRdFdlYkNvbnRleHQ6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCogY2xpZW50LCBX
ZWJQYWdlCiAgICAgcmV0dXJuIG1fY29udGV4dC0+Y3JlYXRlV2ViUGFnZShjbGllbnQsIHBhZ2VH
cm91cCk7CiB9CiAKLVF0RG93bmxvYWRNYW5hZ2VyKiBRdFdlYkNvbnRleHQ6OmRvd25sb2FkTWFu
YWdlcigpCi17Ci0gICAgQVNTRVJUKHNfZG93bmxvYWRNYW5hZ2VyKTsKLSAgICByZXR1cm4gc19k
b3dubG9hZE1hbmFnZXIuZ2V0KCk7Ci19Ci0KLVF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBRdFdl
YkNvbnRleHQ6Omljb25EYXRhYmFzZSgpCi17Ci0gICAgQVNTRVJUKHNfaWNvbkRhdGFiYXNlKTsK
LSAgICByZXR1cm4gc19pY29uRGF0YWJhc2UuZ2V0KCk7Ci19Ci0KLXZvaWQgUXRXZWJDb250ZXh0
OjppbnZhbGlkYXRlQ29udGV4dChXZWJDb250ZXh0KiBjb250ZXh0KQotewotICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0KTsKLSAgICBBU1NFUlQoIXNfZGVmYXVsdFF0V2ViQ29udGV4dCk7Ci0gICAg
QVNTRVJUKCFzX2RlZmF1bHRXZWJDb250ZXh0IHx8IHNfZGVmYXVsdFdlYkNvbnRleHQgPT0gY29u
dGV4dCk7Ci0gICAgc19kb3dubG9hZE1hbmFnZXIuY2xlYXIoKTsKLSAgICBzX2ljb25EYXRhYmFz
ZS5jbGVhcigpOwotICAgIHNfZGVmYXVsdFdlYkNvbnRleHQgPSAwOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViQ29udGV4dC5o
CmluZGV4IGJkM2NjYTczZDU2OTA4Njk3NjIxOWQ1NDM4YTA1YWUyMDI0Mjc1MDEuLjY2OTQ1ZjM1
YWJiNTQzOTk2M2ExOTA0ZmNlMjM4NDM4MzVlZTk1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRXZWJDb250ZXh0LmgKQEAgLTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgUXRXZWJD
b250ZXh0X2gKICNkZWZpbmUgUXRXZWJDb250ZXh0X2gKIAorI2luY2x1ZGUgPFFTY29wZWRQb2lu
dGVyPgogI2luY2x1ZGUgPFF0R2xvYmFsPgogI2luY2x1ZGUgPFdLQ29udGV4dC5oPgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTM3LDI1ICszOCwyNiBAQCBjbGFzcyBXZWJDb250ZXh0Owog
Y2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFzcyBRdFdlYkNv
bnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxRdFdlYkNvbnRleHQ+IHsKK2NsYXNzIFF0V2ViQ29u
dGV4dCB7CiBwdWJsaWM6CiAgICAgflF0V2ViQ29udGV4dCgpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UXRXZWJDb250ZXh0PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFF0V2ViQ29udGV4dD4gZGVmYXVsdENvbnRleHQoKTsKKyAgICBzdGF0aWMgUXRXZWJD
b250ZXh0KiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CisgICAgc3RhdGljIFF0V2Vi
Q29udGV4dCogZGVmYXVsdENvbnRleHQoKTsKIAogICAgIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5
PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqLCBXZWJQYWdlR3JvdXAqKTsKIAogICAgIFdlYkNv
bnRleHQqIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAotICAgIHN0YXRp
YyBRdERvd25sb2FkTWFuYWdlciogZG93bmxvYWRNYW5hZ2VyKCk7Ci0gICAgc3RhdGljIFF0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UoKTsKLSAgICBzdGF0aWMgdm9pZCBpbnZh
bGlkYXRlQ29udGV4dChXZWJDb250ZXh0Kik7CisgICAgUXREb3dubG9hZE1hbmFnZXIqIGRvd25s
b2FkTWFuYWdlcigpIHsgcmV0dXJuIG1fZG93bmxvYWRNYW5hZ2VyLmRhdGEoKTsgfQorICAgIFF0
V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJhc2UoKSB7IHJldHVybiBtX2ljb25EYXRh
YmFzZS5kYXRhKCk7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBRdFdlYkNvbnRleHQoV2Vi
Q29udGV4dCopOworICAgIGV4cGxpY2l0IFF0V2ViQ29udGV4dChQYXNzUmVmUHRyPFdlYkNvbnRl
eHQ+KTsKIAogICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgUVNjb3BlZFBv
aW50ZXI8UXREb3dubG9hZE1hbmFnZXI+IG1fZG93bmxvYWRNYW5hZ2VyOworICAgIFFTY29wZWRQ
b2ludGVyPFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50PiBtX2ljb25EYXRhYmFzZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29u
dGV4dFF0LmNwcAppbmRleCBiMDAzNjY3ZWEzYzJkNjY3YTg1YzUwZWY2Njk0Mjc1YTRhMjhkZDMx
Li5lNzE2ZGViYjM5M2ZiNzg4YjdlYjA4YzNjOTc4YTU2YjZmNWQyZjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApAQCAtODEsOSArODEsNiBAQCB2
b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxp
ZGF0ZUNvbnRleHQoKQogewotI2lmIEhBVkUoUVRRVUlDSykKLSAgICBRdFdlYkNvbnRleHQ6Omlu
dmFsaWRhdGVDb250ZXh0KHRoaXMpOwotI2VuZGlmCiB9CiAKIFN0cmluZyBXZWJDb250ZXh0Ojpw
bGF0Zm9ybURlZmF1bHREYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="208423"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>