<?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>107831</bug_id>
          
          <creation_ts>2013-01-24 08:20:00 -0800</creation_ts>
          <short_desc>[chromium] Make selection handling work in applyPageScaleInCompositor mode</short_desc>
          <delta_ts>2013-01-31 12:57:12 -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>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>0</everconfirmed>
          <reporter name="Chris Hopman">cjhopman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>815497</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-24 08:20:00 -0800</bug_when>
    <thetext>Make selection handling work in applyPageScaleInCompositor mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815504</commentid>
    <comment_count>1</comment_count>
      <attachid>184508</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-24 08:29:48 -0800</bug_when>
    <thetext>Created attachment 184508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820657</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-30 15:05:58 -0800</bug_when>
    <thetext>I&apos;m not terribly familiar with editing code.  What bug does this fix and what tests cover that bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820658</commentid>
    <comment_count>3</comment_count>
      <attachid>184508</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-30 15:08:23 -0800</bug_when>
    <thetext>Comment on attachment 184508
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1386
&gt; +    if (frame()-&gt;page()-&gt;settings()-&gt;applyPageScaleFactorInCompositor()) {
&gt; +        unscaledBase.x /= view()-&gt;pageScaleFactor();
&gt; +        unscaledBase.y /= view()-&gt;pageScaleFactor();
&gt; +        unscaledExtent.x /= view()-&gt;pageScaleFactor();
&gt; +        unscaledExtent.y /= view()-&gt;pageScaleFactor();
&gt; +    }
&gt; +    VisiblePosition basePosition = visiblePositionForWindowPoint(unscaledBase);
&gt; +    VisiblePosition extentPosition = visiblePositionForWindowPoint(unscaledExtent);

There got to be a better way of achieving this. At minimum, we should have some helper function that automatically scale both x and y.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820802</commentid>
    <comment_count>4</comment_count>
      <attachid>185621</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-30 16:44:53 -0800</bug_when>
    <thetext>Created attachment 185621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820807</commentid>
    <comment_count>5</comment_count>
      <attachid>184508</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-30 16:47:29 -0800</bug_when>
    <thetext>Comment on attachment 184508
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1386
&gt;&gt; +    VisiblePosition extentPosition = visiblePositionForWindowPoint(unscaledExtent);
&gt; 
&gt; There got to be a better way of achieving this. At minimum, we should have some helper function that automatically scale both x and y.

Changed this to convert to IntPoint earlier and can then use IntPoint::scale. I was surprised that WebPoint had no way to scale, but I like this better anyway since I now don&apos;t need the conversion when calling windowToContents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820814</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-30 16:51:21 -0800</bug_when>
    <thetext>I changed this to only convert the points passed to ::selectRange and ::moveCaret[...], I&apos;ll handle the points sent back in selectionBounds separately. The issue here is that these functions take window points which, when applying the page scale factor in the compositor, need to be unscaled by the page scale factor when being passed in to WebKit.

As mentioned in https://bugs.webkit.org/show_bug.cgi?id=108386 I think we will have to move to having points be passed in to WebKit and returned from WebKit in document space so that we don&apos;t have to do this conversion from the two different &quot;window&quot; spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821020</commentid>
    <comment_count>7</comment_count>
      <attachid>185621</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-30 20:18:11 -0800</bug_when>
    <thetext>Comment on attachment 185621
Patch

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

&gt; Source/WebKit/chromium/src/WebFrameImpl.cpp:1386
&gt; +    if (frame()-&gt;page()-&gt;settings()-&gt;applyPageScaleFactorInCompositor()) {
&gt; +        unscaledExtent.scale(1 / view()-&gt;pageScaleFactor(), 1 / view()-&gt;pageScaleFactor());
&gt; +        unscaledBase.scale(1 / view()-&gt;pageScaleFactor(), 1 / view()-&gt;pageScaleFactor());
&gt; +    }

I think you should be calling visibleContentScaleFactor() instead since frame&apos;s page scaling factor is not necessarily equal to view&apos;s page scaling factor. See ScrollView::visibleContentRect for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821032</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-30 20:36:28 -0800</bug_when>
    <thetext>I think pageScaleFactor is correct as we&apos;re first converting from physical window point to CSS-space window point, and then to the frame&apos;s coordinate space.  But please try on a page with a frame to make sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821566</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-01-31 09:00:41 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think pageScaleFactor is correct as we&apos;re first converting from physical window point to CSS-space window point, and then to the frame&apos;s coordinate space.  But please try on a page with a frame to make sure.

This works correctly within a frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821764</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2013-01-31 11:39:53 -0800</bug_when>
    <thetext>LGTM.  Adam?

For context, although we no longer this kind of conversion when going from WebCore to Javascript, we now need it for input-eventy things from coming from the browser to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821801</commentid>
    <comment_count>11</comment_count>
      <attachid>185621</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-31 12:04:19 -0800</bug_when>
    <thetext>Comment on attachment 185621
Patch

Okay. We need to come up with a better strategy in the long term though and it sounds like you already know what needs to happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821866</commentid>
    <comment_count>12</comment_count>
      <attachid>185621</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 12:57:08 -0800</bug_when>
    <thetext>Comment on attachment 185621
Patch

Clearing flags on attachment: 185621

Committed r141470: &lt;http://trac.webkit.org/changeset/141470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821868</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 12:57:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184508</attachid>
            <date>2013-01-24 08:29:48 -0800</date>
            <delta_ts>2013-01-30 16:47:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107831-20130124082640.patch</filename>
            <type>text/plain</type>
            <size>6340</size>
            <attacher name="Chris Hopman">cjhopman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGU3MjFjYzc5MDI3NmUzYWJlZThiZThjZmE2NDNkNTU0NDFkYzE5MmQuLjkxNDUxYmNhMDAwNDM4
ODVlOWY4YTk0YTkwMjM0YTk4OTYxMjhjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTMtMDEtMjQgIENocmlzIEhvcG1hbiAgPGNqaG9wbWFuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNYWtlIHNlbGVjdGlvbiBoYW5kbGluZyB3b3JrIGluIGFwcGx5
UGFnZVNjYWxlSW5Db21wb3NpdG9yIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzgzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gYXBwbHlQYWdlU2NhbGVJbkNvbXBvc2l0b3IgaXMgZW5h
YmxlZCwgdGhlc2UgZnVuY3Rpb25zIG5lZWQgdG8KKyAgICAgICAgcHJvcGVybHkgc2NhbGUvdW5z
Y2FsZSBwb2ludHMgYnkgdGhlIHBhZ2VTY2FsZUZhY3Rvci4KKworICAgICAgICAqIHNyYy9XZWJG
cmFtZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OnNlbGVjdFJhbmdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjptb3ZlQ2FyZXRTZWxlY3Rpb25Ub3dh
cmRzV2luZG93UG9pbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3Rpb25Cb3VuZHMpOgorCiAyMDEzLTAxLTIyICBB
bGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgcGFn
ZSBzY2FsZSBzaHJpbmsgRnJhbWVWaWV3IGluIGFwcGx5UGFnZVNjYWxlSW5Db21wb3NpdG9yIG1v
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCmluZGV4IDM0
N2ZhMjAzODhkNzNhM2EwYWIwOTNiYjc5OWE4ZTY0MWFiZTU4NWMuLmRhNjMyMDFiMDc1NmZhMWEw
ZDJkZTc0OWZjMTAxYWQ0ODdmMjJlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcApAQCAtMTM3NSw4ICsxMzc1LDE1IEBAIGJvb2wgV2ViRnJhbWVJbXBs
OjpzZWxlY3RXb3JkQXJvdW5kQ2FyZXQoKQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6c2VsZWN0UmFu
Z2UoY29uc3QgV2ViUG9pbnQmIGJhc2UsIGNvbnN0IFdlYlBvaW50JiBleHRlbnQpCiB7Ci0gICAg
VmlzaWJsZVBvc2l0aW9uIGJhc2VQb3NpdGlvbiA9IHZpc2libGVQb3NpdGlvbkZvcldpbmRvd1Bv
aW50KGJhc2UpOwotICAgIFZpc2libGVQb3NpdGlvbiBleHRlbnRQb3NpdGlvbiA9IHZpc2libGVQ
b3NpdGlvbkZvcldpbmRvd1BvaW50KGV4dGVudCk7CisgICAgV2ViUG9pbnQgdW5zY2FsZWRCYXNl
ID0gYmFzZSwgdW5zY2FsZWRFeHRlbnQgPSBleHRlbnQ7CisgICAgaWYgKGZyYW1lKCktPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkgeworICAg
ICAgICB1bnNjYWxlZEJhc2UueCAvPSB2aWV3KCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgICAg
ICB1bnNjYWxlZEJhc2UueSAvPSB2aWV3KCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICB1
bnNjYWxlZEV4dGVudC54IC89IHZpZXcoKS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIHVu
c2NhbGVkRXh0ZW50LnkgLz0gdmlldygpLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICB9CisgICAg
VmlzaWJsZVBvc2l0aW9uIGJhc2VQb3NpdGlvbiA9IHZpc2libGVQb3NpdGlvbkZvcldpbmRvd1Bv
aW50KHVuc2NhbGVkQmFzZSk7CisgICAgVmlzaWJsZVBvc2l0aW9uIGV4dGVudFBvc2l0aW9uID0g
dmlzaWJsZVBvc2l0aW9uRm9yV2luZG93UG9pbnQodW5zY2FsZWRFeHRlbnQpOwogICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihiYXNlUG9zaXRpb24s
IGV4dGVudFBvc2l0aW9uKTsKICAgICBpZiAoZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICBmcmFtZSgpLT5zZWxlY3Rpb24o
KS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwpAQCAt
MTM5MCw4ICsxMzk3LDE0IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpzZWxlY3RSYW5nZShjb25zdCBX
ZWJSYW5nZSYgd2ViUmFuZ2UpCiAKIHZvaWQgV2ViRnJhbWVJbXBsOjptb3ZlQ2FyZXRTZWxlY3Rp
b25Ub3dhcmRzV2luZG93UG9pbnQoY29uc3QgV2ViUG9pbnQmIHBvaW50KQogeworICAgIFdlYlBv
aW50IHVuc2NhbGVkUG9pbnQgPSBwb2ludDsKKyAgICBpZiAoZnJhbWUoKS0+cGFnZSgpLT5zZXR0
aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKSB7CisgICAgICAgIHVu
c2NhbGVkUG9pbnQueCAvPSB2aWV3KCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICB1bnNj
YWxlZFBvaW50LnkgLz0gdmlldygpLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICB9CisKICAgICBF
bGVtZW50KiBlZGl0YWJsZSA9IGZyYW1lKCktPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVt
ZW50KCk7Ci0gICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lKCktPnZpZXcoKS0+d2lu
ZG93VG9Db250ZW50cyhJbnRQb2ludChwb2ludCkpOworICAgIEludFBvaW50IGNvbnRlbnRzUG9p
bnQgPSBmcmFtZSgpLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoSW50UG9pbnQodW5zY2FsZWRQ
b2ludCkpOwogICAgIExheW91dFBvaW50IGxvY2FsUG9pbnQoZWRpdGFibGUtPmNvbnZlcnRGcm9t
UGFnZShjb250ZW50c1BvaW50KSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uID0gZWRp
dGFibGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobG9jYWxQb2ludCk7CiAgICAgaWYg
KGZyYW1lKCktPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24ocG9zaXRpb24pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDQ3N2QxYjI3
NjNjZWY5YWY5M2M5OGViNTQ1MzE4MzM0MjY1YmI0MGQuLmY1YzJjMTAzMzAzZWNiMWI3YTdkOGFi
YmYzN2Y4YjdiOGRjNjU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKQEAgLTIzNjksMzQgKzIzNjksNDEgQEAgYm9vbCBXZWJWaWV3SW1wbDo6c2VsZWN0
aW9uQm91bmRzKFdlYlJlY3QmIGFuY2hvciwgV2ViUmVjdCYgZm9jdXMpIGNvbnN0CiAgICAgaWYg
KCFzZWxlY3Rpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzZWxlY3Rpb24t
PmlzQ2FyZXQoKSkgewotICAgICAgICBhbmNob3IgPSBmb2N1cyA9IGZyYW1lLT52aWV3KCktPmNv
bnRlbnRzVG9XaW5kb3coc2VsZWN0aW9uLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoc2VsZWN0aW9uLT5pc0NhcmV0KCkpCisgICAgICAgIGFu
Y2hvciA9IGZvY3VzID0gc2VsZWN0aW9uLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCk7CisgICAgZWxz
ZSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLT5zZWxlY3Rp
b24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Uo
UmFuZ2U6OmNyZWF0ZShzZWxlY3RlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgp
LAorICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwKKyAgICAgICAg
ICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksCisgICAgICAgICAgICBzZWxlY3RlZFJh
bmdlLT5zdGFydENvbnRhaW5lcigpLAorICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRP
ZmZzZXQoKSkpOworICAgICAgICBhbmNob3IgPSBmcmFtZS0+ZWRpdG9yKCktPmZpcnN0UmVjdEZv
clJhbmdlKHJhbmdlLmdldCgpKTsKKworICAgICAgICByYW5nZSA9IFJhbmdlOjpjcmVhdGUoc2Vs
ZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCktPmRvY3VtZW50KCksCisgICAgICAgICAgICBzZWxl
Y3RlZFJhbmdlLT5lbmRDb250YWluZXIoKSwKKyAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVu
ZE9mZnNldCgpLAorICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCksCisg
ICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRPZmZzZXQoKSk7CisgICAgICAgIGZvY3VzID0g
ZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CisgICAgICAg
IGlmICghZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKS5pc0Jhc2VGaXJzdCgpKQorICAg
ICAgICAgICAgc3RkOjpzd2FwKGFuY2hvciwgZm9jdXMpOwogICAgIH0KIAotICAgIFJlZlB0cjxS
YW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFu
Z2UoKTsKLSAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBJbnRSZWN0IHdpbmRvd0FuY2hvciA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3co
YW5jaG9yKTsKKyAgICBJbnRSZWN0IHdpbmRvd0ZvY3VzID0gZnJhbWUtPnZpZXcoKS0+Y29udGVu
dHNUb1dpbmRvdyhmb2N1cyk7CisKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5hcHBseVBh
Z2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKSB7CisgICAgICAgIHdpbmRvd0FuY2hvci5zY2Fs
ZShwYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgIHdpbmRvd0ZvY3VzLnNjYWxlKHBhZ2VTY2Fs
ZUZhY3RvcigpKTsKKyAgICB9CisKKyAgICBhbmNob3IgPSB3aW5kb3dBbmNob3I7CisgICAgZm9j
dXMgPSB3aW5kb3dGb2N1czsKIAotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UoUmFuZ2U6OmNyZWF0
ZShzZWxlY3RlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5zdGFydENvbnRhaW5l
cigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdl
LT5zdGFydE9mZnNldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxlY3RlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5zdGFydE9mZnNldCgpKSk7Ci0gICAgYW5jaG9y
ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7Ci0KLSAg
ICByYW5nZSA9IFJhbmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCktPmRv
Y3VtZW50KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZENv
bnRhaW5lcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRP
ZmZzZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+ZW5kQ29u
dGFpbmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZE9m
ZnNldCgpKTsKLSAgICBmb2N1cyA9IGZyYW1lLT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2Uo
cmFuZ2UuZ2V0KCkpOwotCi0gICAgYW5jaG9yID0gZnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1dp
bmRvdyhhbmNob3IpOwotICAgIGZvY3VzID0gZnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1dpbmRv
dyhmb2N1cyk7Ci0KLSAgICBpZiAoIWZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkuaXNC
YXNlRmlyc3QoKSkKLSAgICAgICAgc3RkOjpzd2FwKGFuY2hvciwgZm9jdXMpOwogICAgIHJldHVy
biB0cnVlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185621</attachid>
            <date>2013-01-30 16:44:53 -0800</date>
            <delta_ts>2013-01-31 12:57:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107831-20130130164138.patch</filename>
            <type>text/plain</type>
            <size>3142</size>
            <attacher name="Chris Hopman">cjhopman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQyNmE2MzcyMjVhZDc2YmMxODFlNTVmZmZlZDNhYzRjY2JiMWI0ODMuLjlkZmM2ZDhmN2ZkZGY1
Y2Q2OWI4ZGZhMTExN2E3MDg2N2YwNzVkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTMtMDEtMzAgIENocmlzIEhvcG1hbiAgPGNqaG9wbWFuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIE1ha2Ugc2VsZWN0aW9uIGhhbmRsaW5nIHdv
cmsgaW4gYXBwbHlQYWdlU2NhbGVJbkNvbXBvc2l0b3IgbW9kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3ODMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGV4cGVjdCBhIHdp
bmRvdyBwb2ludC4gV2hlbiBpbgorICAgICAgICBhcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvciBtb2RlLCB0aGUgcG9pbnRzIG5lZWQgdG8gYmUgdW5zY2FsZWQKKyAgICAgICAgYnkgdGhl
IHBhZ2Ugc2NhbGUgZmFjdG9yLgorCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0UmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6Om1vdmVDYXJldFNlbGVjdGlvblRvd2FyZHNXaW5kb3dQb2ludCk6
CisKIDIwMTMtMDEtMzAgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBGaXggZmluZCBpbiBwYWdlIHJlY3RzIGZvciBvdmVyZmxv
d2luZyBjb250ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAKaW5kZXggNWJhZjA4ZWMyNzdkZmYxZGRiZDBmNWVhMmUxNGVkYmJiNzY3ZTY0Yy4uMDY5ZGNm
MGIwZDQ4ZWZiZjA1N2I4NGZkMzRkMTJiMjI2YTg0OTg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzc4LDggKzEzNzgsMTQgQEAgYm9vbCBX
ZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRBcm91bmRDYXJldCgpCiAKIHZvaWQgV2ViRnJhbWVJbXBs
OjpzZWxlY3RSYW5nZShjb25zdCBXZWJQb2ludCYgYmFzZSwgY29uc3QgV2ViUG9pbnQmIGV4dGVu
dCkKIHsKLSAgICBWaXNpYmxlUG9zaXRpb24gYmFzZVBvc2l0aW9uID0gdmlzaWJsZVBvc2l0aW9u
Rm9yV2luZG93UG9pbnQoYmFzZSk7Ci0gICAgVmlzaWJsZVBvc2l0aW9uIGV4dGVudFBvc2l0aW9u
ID0gdmlzaWJsZVBvc2l0aW9uRm9yV2luZG93UG9pbnQoZXh0ZW50KTsKKyAgICBJbnRQb2ludCB1
bnNjYWxlZEJhc2UgPSBiYXNlOworICAgIEludFBvaW50IHVuc2NhbGVkRXh0ZW50ID0gZXh0ZW50
OworICAgIGlmIChmcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPmFwcGx5UGFnZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yKCkpIHsKKyAgICAgICAgdW5zY2FsZWRFeHRlbnQuc2NhbGUoMSAvIHZp
ZXcoKS0+cGFnZVNjYWxlRmFjdG9yKCksIDEgLyB2aWV3KCktPnBhZ2VTY2FsZUZhY3RvcigpKTsK
KyAgICAgICAgdW5zY2FsZWRCYXNlLnNjYWxlKDEgLyB2aWV3KCktPnBhZ2VTY2FsZUZhY3Rvcigp
LCAxIC8gdmlldygpLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgfQorICAgIFZpc2libGVQb3Np
dGlvbiBiYXNlUG9zaXRpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JXaW5kb3dQb2ludCh1bnNjYWxl
ZEJhc2UpOworICAgIFZpc2libGVQb3NpdGlvbiBleHRlbnRQb3NpdGlvbiA9IHZpc2libGVQb3Np
dGlvbkZvcldpbmRvd1BvaW50KHVuc2NhbGVkRXh0ZW50KTsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24oYmFzZVBvc2l0aW9uLCBleHRlbnRQb3Np
dGlvbik7CiAgICAgaWYgKGZyYW1lKCktPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIENoYXJhY3RlckdyYW51bGFyaXR5KTsKQEAgLTEzOTMsOCArMTM5
OSwxMiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2VsZWN0UmFuZ2UoY29uc3QgV2ViUmFuZ2UmIHdl
YlJhbmdlKQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6bW92ZUNhcmV0U2VsZWN0aW9uVG93YXJkc1dp
bmRvd1BvaW50KGNvbnN0IFdlYlBvaW50JiBwb2ludCkKIHsKKyAgICBJbnRQb2ludCB1bnNjYWxl
ZFBvaW50KHBvaW50KTsKKyAgICBpZiAoZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5hcHBs
eVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQorICAgICAgICB1bnNjYWxlZFBvaW50LnNj
YWxlKDEgLyB2aWV3KCktPnBhZ2VTY2FsZUZhY3RvcigpLCAxIC8gdmlldygpLT5wYWdlU2NhbGVG
YWN0b3IoKSk7CisKICAgICBFbGVtZW50KiBlZGl0YWJsZSA9IGZyYW1lKCktPnNlbGVjdGlvbigp
LT5yb290RWRpdGFibGVFbGVtZW50KCk7Ci0gICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZy
YW1lKCktPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhJbnRQb2ludChwb2ludCkpOworICAgIElu
dFBvaW50IGNvbnRlbnRzUG9pbnQgPSBmcmFtZSgpLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMo
dW5zY2FsZWRQb2ludCk7CiAgICAgTGF5b3V0UG9pbnQgbG9jYWxQb2ludChlZGl0YWJsZS0+Y29u
dmVydEZyb21QYWdlKGNvbnRlbnRzUG9pbnQpKTsKICAgICBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b24gPSBlZGl0YWJsZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChsb2NhbFBvaW50KTsK
ICAgICBpZiAoZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihwb3Np
dGlvbikpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>