<?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>98886</bug_id>
          
          <creation_ts>2012-10-10 04:56:37 -0700</creation_ts>
          <short_desc>[Qt][WK2] Avoid unnecessary calls in PageViewportController</short_desc>
          <delta_ts>2012-10-11 03:03:50 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>738847</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 04:56:37 -0700</bug_when>
    <thetext>[Qt][WK2] Infinite loop in PageViewportController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738848</commentid>
    <comment_count>1</comment_count>
      <attachid>167982</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 04:57:09 -0700</bug_when>
    <thetext>Created attachment 167982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738849</commentid>
    <comment_count>2</comment_count>
      <attachid>167982</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-10 05:05:23 -0700</bug_when>
    <thetext>Comment on attachment 167982
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        which induce an infinite loop.

introduce?

&gt; Source/WebKit2/ChangeLog:12
&gt; +        Also avoid an update cycle and return early in didRenderFrame if no
&gt; +        change in scale or position has to be applied since animations on
&gt; +        the page can trigger up to 60 DidRenderFrame messages per second.

I&apos;m not sure I understand what has to be avoided, is it because of the ViewportUpdateDeferrer?

&gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:472
&gt; +    if (newSize == IntSize(m_pageItem-&gt;contentsSize().toSize()))
&gt; +        return;

Make sure that you run all API/qml tests with this change, I&apos;m not sure if there would be cases where the contentsScaleCommitted signal emitted below might be skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738856</commentid>
    <comment_count>3</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 05:19:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 167982 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167982&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:9
&gt; &gt; +        which induce an infinite loop.
&gt; 
&gt; introduce?
No, I meant induce: &quot;cause, bring about or give rise to&quot;

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:12
&gt; &gt; +        Also avoid an update cycle and return early in didRenderFrame if no
&gt; &gt; +        change in scale or position has to be applied since animations on
&gt; &gt; +        the page can trigger up to 60 DidRenderFrame messages per second.
&gt; 
&gt; I&apos;m not sure I understand what has to be avoided, is it because of the ViewportUpdateDeferrer?
Exactly, creating and releasing a ViewportUpdateDeferrer triggers an update response (didChangeContentsVisibility) from the client which ends in m_pageItem-&gt;update(). All this is unnecessary and can be avoided by the early return.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:472
&gt; &gt; +    if (newSize == IntSize(m_pageItem-&gt;contentsSize().toSize()))
&gt; &gt; +        return;
&gt; 
&gt; Make sure that you run all API/qml tests with this change, I&apos;m not sure if there would be cases where the contentsScaleCommitted signal emitted below might be skipped.

I ran the tests, and all of them pass. To me it seems that the below emission is obsolete as well since the tests do not rely on that aspect any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738893</commentid>
    <comment_count>4</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 06:24:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; &gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:472
&gt; &gt; &gt; +    if (newSize == IntSize(m_pageItem-&gt;contentsSize().toSize()))
&gt; &gt; &gt; +        return;
&gt; &gt; 
&gt; &gt; Make sure that you run all API/qml tests with this change, I&apos;m not sure if there would be cases where the contentsScaleCommitted signal emitted below might be skipped.
&gt; 
&gt; I ran the tests, and all of them pass. To me it seems that the below emission is obsolete as well since the tests do not rely on that aspect any more.

Ok, I was wrong about the obsoleteness, emitting contentsScaleCommitted even if the scale did not change is actually needed for the fit-to-width test, but only if the size changes, thus this patch does not interfere with that aspect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738905</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-10 06:38:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; I&apos;m not sure I understand what has to be avoided, is it because of the ViewportUpdateDeferrer?
&gt; Exactly, creating and releasing a ViewportUpdateDeferrer triggers an update response (didChangeContentsVisibility) from the client which ends in m_pageItem-&gt;update(). All this is unnecessary and can be avoided by the early return.
Humm this is ugly the deferrer shouls prevent stuff from happening, not causing anything especially when DeferUpdateAndSuspendContent isn&apos;t used.
What if we start checking &quot;if (suspendContentFlag == DeferUpdateAndSuspendContent)&quot; before calling resumeContent() in ~ViewportUpdateDeferrer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738906</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-10 06:41:04 -0700</bug_when>
    <thetext>That syncVisibleContents() call should probably be included in the if as well, it also feels like it&apos;s called at the wrong place. I&apos;m not even sure it is still necessary since PageViewportControllerClientQt::didResumeContent calls updateViewportController() itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738913</commentid>
    <comment_count>7</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 06:46:32 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; &gt; I&apos;m not sure I understand what has to be avoided, is it because of the ViewportUpdateDeferrer?
&gt; &gt; Exactly, creating and releasing a ViewportUpdateDeferrer triggers an update response (didChangeContentsVisibility) from the client which ends in m_pageItem-&gt;update(). All this is unnecessary and can be avoided by the early return.
&gt; Humm this is ugly the deferrer shouls prevent stuff from happening, not causing anything especially when DeferUpdateAndSuspendContent isn&apos;t used.
&gt; What if we start checking &quot;if (suspendContentFlag == DeferUpdateAndSuspendContent)&quot; before calling resumeContent() in ~ViewportUpdateDeferrer?

The problem with this is that then the DeferUpdate flag does not have any effect any more.
It was used when correcting the contents to valid bounds immediately for example, to update the controller about the updated viewport visibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738915</commentid>
    <comment_count>8</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 06:49:42 -0700</bug_when>
    <thetext>
(In reply to comment #6)
&gt; That syncVisibleContents() call should probably be included in the if as well, it also feels like it&apos;s called at the wrong place. I&apos;m not even sure it is still necessary since PageViewportControllerClientQt::didResumeContent calls updateViewportController() itself.

Yes, it&apos;s because originally the ViewportDeferer was intended for client usage only, but didRenderFrame need&apos;s it now.
So we might need to rethink the role of the update deferer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739152</commentid>
    <comment_count>9</comment_count>
      <attachid>168043</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-10 11:22:12 -0700</bug_when>
    <thetext>Created attachment 168043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739317</commentid>
    <comment_count>10</comment_count>
      <attachid>168043</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-10 14:58:29 -0700</bug_when>
    <thetext>Comment on attachment 168043
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:127
&gt; +    if (m_clientContentsSize != contentsSize) {
&gt; +        m_clientContentsSize = contentsSize;

Better add a comment here why this is an optimization how there is m_ variable just for the sake of this check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739717</commentid>
    <comment_count>11</comment_count>
      <attachid>168043</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-11 01:51:28 -0700</bug_when>
    <thetext>Comment on attachment 168043
Patch

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

r=me if you can make Kenneth happy.

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:-58
&gt; -    // Make sure that tiles all around the viewport will be requested.

You could move that comment to PageViewportControllerClientQt::didResumeContent which now takes care of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739755</commentid>
    <comment_count>12</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-11 02:43:19 -0700</bug_when>
    <thetext>Committed r131034: &lt;http://trac.webkit.org/changeset/131034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739773</commentid>
    <comment_count>13</comment_count>
      <attachid>168043</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-11 03:03:50 -0700</bug_when>
    <thetext>Comment on attachment 168043
Patch

Clearing flags from attachment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167982</attachid>
            <date>2012-10-10 04:57:09 -0700</date>
            <delta_ts>2012-10-10 11:22:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98886-20121010135712.patch</filename>
            <type>text/plain</type>
            <size>3662</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2VhNjU2ZjE2ZGI0MDlh
M2ZkZWQ0MGY1OWJkMDEwNmYyMTUwMTM5NC4uYzBmYTY4NDFlOGRmZjBkN2M0NjVmYzliY2FkNjVm
MjUzZGVlNDQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEwLTEwICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBJ
bmZpbml0ZSBsb29wIGluIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4ODg2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGxlZnRvdmVyIHVwZGF0ZSBndWFy
ZCBhbmQgdmlzaWJpbGl0eSB1cGRhdGUgZnJvbSB0aGUgY2xpZW50CisgICAgICAgIHdoaWNoIGlu
ZHVjZSBhbiBpbmZpbml0ZSBsb29wLgorICAgICAgICBBbHNvIGF2b2lkIGFuIHVwZGF0ZSBjeWNs
ZSBhbmQgcmV0dXJuIGVhcmx5IGluIGRpZFJlbmRlckZyYW1lIGlmIG5vCisgICAgICAgIGNoYW5n
ZSBpbiBzY2FsZSBvciBwb3NpdGlvbiBoYXMgdG8gYmUgYXBwbGllZCBzaW5jZSBhbmltYXRpb25z
IG9uCisgICAgICAgIHRoZSBwYWdlIGNhbiB0cmlnZ2VyIHVwIHRvIDYwIERpZFJlbmRlckZyYW1l
IG1lc3NhZ2VzIHBlciBzZWNvbmQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6
OmRpZFJlbmRlckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpzZXRDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZVZpZXdw
b3J0QXR0cmlidXRlcyk6CisKIDIwMTItMTAtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFRlc3QgL3dlYmtpdDIvV2ViS2l0V2Vi
Vmlldy9oaXN0b3J5LWNhY2hlIGFzc2VydHMgaW4gZGVidWcgYm90CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKaW5kZXggNTVlNjUw
NTMxY2I1ZTBiY2I5ZTc4MzdlMTk5Mzc4NDJkNzM1MTQwYi4uNGQ2ODFhNDExNTg0ZjMzMTlkMWFj
NmQyNDlmYTFlNmE0MWU2NDNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtMTMxLDYgKzEzMSw5IEBAIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkUmVuZGVyRnJhbWUoY29uc3QgSW50U2l6ZSYgY29udGVu
dHNTaXplLCBjb25zdCBJCiAKICAgICBtX2xhc3RGcmFtZUNvdmVyZWRSZWN0ID0gY292ZXJlZFJl
Y3Q7CiAKKyAgICBpZiAoIW1fZWZmZWN0aXZlU2NhbGVJc0xvY2tlZCAmJiAhbV92aWV3cG9ydFBv
c0lzTG9ja2VkKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBBcHBseSBhbnkgc2NhbGUgb3Ig
c2Nyb2xsIHBvc2l0aW9uIHdlIGxvY2tlZCB0byBiZSBzZXQgb24gdGhlIHZpZXdwb3J0CiAgICAg
Ly8gb25seSB3aGVuIHRoZXJlIGlzIHNvbWV0aGluZyB0byBkaXNwbGF5IHRoZXJlLiBUaGUgc2Nh
bGUgZ29lcyBmaXJzdCB0bwogICAgIC8vIGF2b2lkIG9mZnNldHRpbmcgb3VyIGRlZmVycmVkIHBv
c2l0aW9uIGJ5IHNjYWxpbmcgYXQgdGhlIHZpZXdwb3J0IGNlbnRlci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRRdC5jcHAKaW5kZXggODUwODIxMGYzODA4Y2ZjZTE4ZTg0MzFmNDBlY2QxNDAwNjE4NjRh
YS4uMjIzODU2YmJhYzNhMGVjYTU4ODkwMzkxNDljMmZlYWVjYTE5MGM2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdC5jcHAKQEAgLTMyMiw4ICszMjIsNiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBsb2NhbFNjYWxlLCBib29s
IHRyZQogICAgICAgICBzZXRDb250ZW50UmVjdFZpc2libGVQb3NpdGlvbkF0U2NhbGUoUVBvaW50
RigpLCBsb2NhbFNjYWxlKTsKICAgICB9IGVsc2UKICAgICAgICAgc2NhbGVDb250ZW50KGxvY2Fs
U2NhbGUpOwotCi0gICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzZXRDb250ZW50c1JlY3RUb05lYXJlc3RWYWxp
ZEJvdW5kcygpCkBAIC00NzAsNiArNDY4LDkgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6OnBpbmNoR2VzdHVyZUNhbmNlbGxlZCgpCiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3
U2l6ZSkKIHsKKyAgICBpZiAobmV3U2l6ZSA9PSBJbnRTaXplKG1fcGFnZUl0ZW0tPmNvbnRlbnRz
U2l6ZSgpLnRvU2l6ZSgpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9wYWdlSXRlbS0+c2V0
Q29udGVudHNTaXplKFFTaXplRihuZXdTaXplKSk7CiAKICAgICAvLyBFbWl0IGZvciB0ZXN0aW5n
IHB1cnBvc2VzLCBzbyB0aGF0IGl0IGNhbiBiZSB2ZXJpZmllZCB0aGF0CkBAIC00OTQsOSArNDk1
LDYgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZVZpc2li
bGVDb250ZW50cygpCiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRD
aGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoKQogewotICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcHBseSB0
aGUgbmV3IGluaXRpYWwgc2NhbGUgd2hlbiBkZWZlcnJpbmcgZW5kcy4KLSAgICBWaWV3cG9ydFVw
ZGF0ZURlZmVycmVyIGd1YXJkKG1fY29udHJvbGxlcik7Ci0KICAgICBlbWl0IG1fdmlld3BvcnRJ
dGVtLT5leHBlcmltZW50YWwoKS0+dGVzdCgpLT5kZXZpY2VQaXhlbFJhdGlvQ2hhbmdlZCgpOwog
ICAgIGVtaXQgbV92aWV3cG9ydEl0ZW0tPmV4cGVyaW1lbnRhbCgpLT50ZXN0KCktPnZpZXdwb3J0
Q2hhbmdlZCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168043</attachid>
            <date>2012-10-10 11:22:12 -0700</date>
            <delta_ts>2012-10-11 03:03:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98886-20121010202216.patch</filename>
            <type>text/plain</type>
            <size>6799</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWVhMDRmZjMyYTY2MGQx
YjQxZTg3YWJjYmU5NDhhMGQ5ZDRkZWEzYS4uOGY4NzYwZmE4MmIyZmNhZDg1NTFmODAwYTFlYmQz
Y2NlMTI3ZWQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTEwICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBB
dm9pZCB1bm5lY2Vzc2FyeSBjYWxscyBpbiBQYWdlVmlld3BvcnRDb250cm9sbGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODg4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBsZWZ0b3ZlciBh
bmQgdW5uZWVkZWQgdXBkYXRlIGd1YXJkcyBhbmQgdmlzaWJpbGl0eSB1cGRhdGUKKyAgICAgICAg
bm90aWZpY2F0aW9ucyB0byBhdm9pZCB1bm5lY2Vzc2FyeSB1cGRhdGUgY3ljbGVzIGJldHdlZW4g
dGhlCisgICAgICAgIGNvbnRyb2xsZXIgYW4gdGhlIGNsaWVudC4KKyAgICAgICAgUHJldmlvdXNs
eSBkaWRSZW5kZXJGcmFtZSB0cmlnZ2VyZWQgdXBkYXRlcyBmb3Igbm8gcmVhc29uIHNpbmNlCisg
ICAgICAgIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgY2F1c2UgYSBsb3Qgb2YgRGlkUmVuZGVyRnJh
bWUgbWVzc2FnZXMKKyAgICAgICAgZm9yIHdoaWNoIHRoZSB2aWV3cG9ydCBzdGF0ZSBkb2VzIG5v
dCBjaGFuZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdwb3J0VXBkYXRlRGVmZXJyZXI6On5WaWV3cG9ydFVw
ZGF0ZURlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6
ZGlkUmVuZGVyRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9s
bGVyLmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzZXRDb250ZW50c1NjYWxlKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRDaGFu
Z2VWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50UXQ6OnVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oOgorICAgICAgICAoUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0KToKKwogMjAxMi0xMC0xMCAgSm9jZWx5biBUdXJj
b3R0ZSAgPGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBS
RUdSRVNTSU9OKHIxMzA4NzkpOiBJdCBtYWRlIGZhc3QvZXZlbnRzL3RvdWNoLyogdGVzdHMgY3Jh
c2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9s
bGVyLmNwcAppbmRleCA1NWU2NTA1MzFjYjVlMGJjYjllNzgzN2UxOTkzNzg0MmQ3MzUxNDBiLi4w
MTZjMWU1NTYyMWEzZmM1YWMxMjI3NWU0NDliY2M0NjI3N2NkMmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBAIC01NCw5
ICs1NCw2IEBAIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI6On5WaWV3cG9ydFVwZGF0ZURlZmVycmVy
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250cm9sbGVyLT5yZXN1bWVDb250ZW50KCk7
Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCB3
aWxsIGJlIHJlcXVlc3RlZC4KLSAgICBtX2NvbnRyb2xsZXItPnN5bmNWaXNpYmxlQ29udGVudHMo
KTsKIH0KIAogUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSogcHJveHksIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQq
IGNsaWVudCkKQEAgLTEyNiw4ICsxMjMsMTEgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVy
OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIAogdm9pZCBQ
YWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRSZW5kZXJGcmFtZShjb25zdCBJbnRTaXplJiBjb250
ZW50c1NpemUsIGNvbnN0IEludFJlY3QmIGNvdmVyZWRSZWN0KQogewotICAgIC8vIE9ubHkgdXBk
YXRlIHRoZSB2aWV3cG9ydCdzIGNvbnRlbnRzIGRpbWVuc2lvbnMgYWxvbmcgd2l0aCBpdHMgcmVu
ZGVyLgotICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VDb250ZW50c1NpemUoY29udGVudHNTaXplKTsK
KyAgICBpZiAobV9jbGllbnRDb250ZW50c1NpemUgIT0gY29udGVudHNTaXplKSB7CisgICAgICAg
IG1fY2xpZW50Q29udGVudHNTaXplID0gY29udGVudHNTaXplOworICAgICAgICAvLyBPbmx5IHVw
ZGF0ZSB0aGUgdmlld3BvcnQncyBjb250ZW50cyBkaW1lbnNpb25zIGFsb25nIHdpdGggaXRzIHJl
bmRlci4KKyAgICAgICAgbV9jbGllbnQtPmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb250ZW50c1Np
emUpOworICAgIH0KIAogICAgIG1fbGFzdEZyYW1lQ292ZXJlZFJlY3QgPSBjb3ZlcmVkUmVjdDsK
IApAQCAtMTM3LDcgKzEzNyw2IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkUmVu
ZGVyRnJhbWUoY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJCiAgICAgLy8gQWxs
IHBvc2l0aW9uIGFuZCBzY2FsZSBjaGFuZ2VzIHJlc3VsdGluZyBmcm9tIGEgd2ViIHByb2Nlc3Mg
ZXZlbnQgc2hvdWxkCiAgICAgLy8gZ28gdGhyb3VnaCBoZXJlIHRvIGJlIGFwcGxpZWQgb24gdGhl
IHZpZXdwb3J0IHRvIGF2b2lkIHNob3dpbmcgaW5jb21wbGV0ZQogICAgIC8vIHRpbGVzIHRvIHRo
ZSB1c2VyIGR1cmluZyBhIGZldyBtaWxsaXNlY29uZHMuCi0gICAgVmlld3BvcnRVcGRhdGVEZWZl
cnJlciBndWFyZCh0aGlzKTsKICAgICBpZiAobV9lZmZlY3RpdmVTY2FsZUlzTG9ja2VkKSB7CiAg
ICAgICAgIG1fY2xpZW50LT5zZXRDb250ZW50c1NjYWxlKG1fZWZmZWN0aXZlU2NhbGUsIGZhbHNl
KTsKICAgICAgICAgbV9lZmZlY3RpdmVTY2FsZUlzTG9ja2VkID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAppbmRleCBlMzA1
NzVhYjlhNzdlZTgzZTg0NTU2NWUyM2U1OGZhNTc3Zjk3NmRmLi5kMzhkZGI5MTQxNmI4MjNjODdj
NjQwMDBmNGI1MmM1N2QyMWI0MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV92aWV3cG9ydFBvczsKICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV92aWV3cG9ydFNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fY29udGVudHNT
aXplOworICAgIFdlYkNvcmU6OkludFNpemUgbV9jbGllbnRDb250ZW50c1NpemU7CiAgICAgZmxv
YXQgbV9lZmZlY3RpdmVTY2FsZTsgLy8gU2hvdWxkIGFsd2F5cyBiZSBjc3NTY2FsZSAqIGRldmlj
ZVBpeGVsUmF0aW8uCiAKICAgICBib29sIG1fdmlld3BvcnRQb3NJc0xvY2tlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdC5jcHAKaW5kZXggODUwODIxMGYzODA4Y2ZjZTE4ZTg0MzFmNDBlY2QxNDAw
NjE4NjRhYS4uNTEwM2NkMWRjYzYyMDYyNzBkZmIxNzBkNDNjNmE5MjllYjI1MjBiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdC5jcHAKQEAgLTMyMiw4ICszMjIsNiBAQCB2b2lkIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBsb2NhbFNjYWxl
LCBib29sIHRyZQogICAgICAgICBzZXRDb250ZW50UmVjdFZpc2libGVQb3NpdGlvbkF0U2NhbGUo
UVBvaW50RigpLCBsb2NhbFNjYWxlKTsKICAgICB9IGVsc2UKICAgICAgICAgc2NhbGVDb250ZW50
KGxvY2FsU2NhbGUpOwotCi0gICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzZXRDb250ZW50c1JlY3RUb05lYXJl
c3RWYWxpZEJvdW5kcygpCkBAIC00OTQsMTggKzQ5MiwxNCBAQCB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hhbmdlVmlzaWJsZUNvbnRlbnRzKCkKIAogdm9pZCBQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcygp
CiB7Ci0gICAgLy8gTWFrZSBzdXJlIHdlIGFwcGx5IHRoZSBuZXcgaW5pdGlhbCBzY2FsZSB3aGVu
IGRlZmVycmluZyBlbmRzLgotICAgIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQobV9jb250
cm9sbGVyKTsKLQogICAgIGVtaXQgbV92aWV3cG9ydEl0ZW0tPmV4cGVyaW1lbnRhbCgpLT50ZXN0
KCktPmRldmljZVBpeGVsUmF0aW9DaGFuZ2VkKCk7CiAgICAgZW1pdCBtX3ZpZXdwb3J0SXRlbS0+
ZXhwZXJpbWVudGFsKCktPnRlc3QoKS0+dmlld3BvcnRDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoY29u
c3QgUVBvaW50RiYgdHJhamVjdG9yeSwgcXJlYWwgc2NhbGUpCit2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6dXBkYXRlVmlld3BvcnRDb250cm9sbGVyKGNvbnN0IFFQb2ludEYm
IHRyYWplY3RvcnkpCiB7CiAgICAgRmxvYXRQb2ludCB2aWV3cG9ydFBvcyA9IG1fdmlld3BvcnRJ
dGVtLT5tYXBUb1dlYkNvbnRlbnQoUVBvaW50RigpKTsKLSAgICBmbG9hdCB2aWV3cG9ydFNjYWxl
ID0gKHNjYWxlIDwgMCkgPyBtX3BhZ2VJdGVtLT5jb250ZW50c1NjYWxlKCkgOiBzY2FsZTsKLSAg
ICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZUNvbnRlbnRzVmlzaWJpbGl0eSh2aWV3cG9ydFBvcywg
dmlld3BvcnRTY2FsZSwgdHJhamVjdG9yeSk7CisgICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VD
b250ZW50c1Zpc2liaWxpdHkodmlld3BvcnRQb3MsIG1fcGFnZUl0ZW0tPmNvbnRlbnRzU2NhbGUo
KSwgdHJhamVjdG9yeSk7CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
OjpzY2FsZUNvbnRlbnQocXJlYWwgaXRlbVNjYWxlLCBjb25zdCBRUG9pbnRGJiBjZW50ZXJJbkNT
U0Nvb3JkaW5hdGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1Bh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oCmluZGV4IDA4OWI1Yjc2ODk0NDIx
MDliODZhMDJhMTYyZDJmZTZjNmVhZGM2MGUuLjdjNWNlZWE1ODVmM2U5ZDM1ZmViMTczZTY1Zjc1
OGI5M2JjMjAwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKQEAgLTEyNCw3ICsxMjQsNyBA
QCBwcml2YXRlOgogICAgIFFSZWN0RiBuZWFyZXN0VmFsaWRWaXNpYmxlQ29udGVudHNSZWN0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzUmVjdFRvTmVhcmVzdFZhbGlkQm91bmRzKCk7
Ci0gICAgdm9pZCB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoY29uc3QgUVBvaW50RiYgdHJhamVj
dG9yeSA9IFFQb2ludEYoKSwgcXJlYWwgc2NhbGUgPSAtMSk7CisgICAgdm9pZCB1cGRhdGVWaWV3
cG9ydENvbnRyb2xsZXIoY29uc3QgUVBvaW50RiYgdHJhamVjdG9yeSA9IFFQb2ludEYoKSk7CiAg
ICAgdm9pZCBzZXRDb250ZW50UmVjdFZpc2libGVQb3NpdGlvbkF0U2NhbGUoY29uc3QgUVBvaW50
RiYgbG9jYXRpb24sIHFyZWFsIGl0ZW1TY2FsZSk7CiAgICAgdm9pZCBhbmltYXRlQ29udGVudFJl
Y3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29udGVudFJlY3QpOwogICAgIHZvaWQgc2NhbGVDb250
ZW50KHFyZWFsIGl0ZW1TY2FsZSwgY29uc3QgUVBvaW50RiYgY2VudGVySW5DU1NDb29yZGluYXRl
cyA9IFFQb2ludEYoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>