<?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>108667</bug_id>
          
          <creation_ts>2013-02-01 11:25:24 -0800</creation_ts>
          <short_desc>[Chromium] WebWidget should expose a way to determine the start/end of the selection bounds</short_desc>
          <delta_ts>2013-02-06 11:09:07 -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>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>trchen</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>823017</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-01 11:25:24 -0800</bug_when>
    <thetext>[Chromium] WebWidget should expose a way to determine the start/end of the selection bounds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823042</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-01 11:33:45 -0800</bug_when>
    <thetext>WebWidget::selectionBounds() returns the anchor and focus of the selection. This matches the arguments to WebFrame::selectRange(). However, sometimes (/often) a caller wants to know the start/end of the selection rather than anchor/focus. Currently, this information is inaccessible.

There was previous suggestion to have selectionBounds() return start/end but I think that matching WebFrame::selectRange() is valuable and selectRange has to take anchor/focus. Instead, we should just expose whether or not the selection anchor is the start or end and then a caller can derive start/end from anchor/focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823044</commentid>
    <comment_count>2</comment_count>
      <attachid>186088</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-01 11:34:19 -0800</bug_when>
    <thetext>Created attachment 186088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823047</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-01 11:35:53 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823128</commentid>
    <comment_count>4</comment_count>
    <who name="Tien-Ren Chen">trchen</who>
    <bug_when>2013-02-01 12:29:41 -0800</bug_when>
    <thetext>LGTM. Please make sure you have talked to fishd@ and varunjain@ that they are happy with the solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823298</commentid>
    <comment_count>5</comment_count>
      <attachid>186088</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 14:49:14 -0800</bug_when>
    <thetext>Comment on attachment 186088
Patch

Attachment 186088 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16342060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823571</commentid>
    <comment_count>6</comment_count>
      <attachid>186088</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-02-01 23:23:29 -0800</bug_when>
    <thetext>Comment on attachment 186088
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2401
&gt; +bool WebViewImpl::isSelectionAnchorFirst() const

nit: isSelectionAnchorFirst is declared after selectionTextDirection.  please define functions in the same order that you declare them.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2403
&gt; +    const Frame* frame = focusedWebCoreFrame();

I apologize for randomizing you further, but it seems like we might be
making a mistake by putting all of these selection APIs on WebWidget.
It seems like all of them act on the focused frame, so perhaps we
should really be putting selection methods on WebFrame instead.  Then,
if it is important for selectRange and selectionBounds to be in-sync,
it&apos;ll be more natural because they will be defined adjacent to one
another.  WDYT?

The thing to know about WebWidget is that it shouldn&apos;t know anything
about document or frame or any DOM concepts.  It is just a rendering
surface.  Originally, selection stuff ended up on WebWidget because
selection as a concept was just a rectangular region of the widget,
but maybe in hindsight that was a poor choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824596</commentid>
    <comment_count>7</comment_count>
      <attachid>186088</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-04 11:22:44 -0800</bug_when>
    <thetext>Comment on attachment 186088
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2403
&gt;&gt; +    const Frame* frame = focusedWebCoreFrame();
&gt; 
&gt; I apologize for randomizing you further, but it seems like we might be
&gt; making a mistake by putting all of these selection APIs on WebWidget.
&gt; It seems like all of them act on the focused frame, so perhaps we
&gt; should really be putting selection methods on WebFrame instead.  Then,
&gt; if it is important for selectRange and selectionBounds to be in-sync,
&gt; it&apos;ll be more natural because they will be defined adjacent to one
&gt; another.  WDYT?
&gt; 
&gt; The thing to know about WebWidget is that it shouldn&apos;t know anything
&gt; about document or frame or any DOM concepts.  It is just a rendering
&gt; surface.  Originally, selection stuff ended up on WebWidget because
&gt; selection as a concept was just a rectangular region of the widget,
&gt; but maybe in hindsight that was a poor choice.

I noticed that WebWidget was an odd place for these methods. 
It looks to me that both the selection and the composition methods 
could/should be moved to WebFrame. There are also four
selection/composition methods on WebView (curiously listed under GPU
acceleration support in WebView.h) that should probably also be
moved then.

I can move the selection APIs to WebFrame first, then add this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824599</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-04 11:26:19 -0800</bug_when>
    <thetext>A selection can cross frame boundaries, can&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824613</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-04 11:39:49 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; A selection can cross frame boundaries, can&apos;t it?

I don&apos;t know, fishd can probably answer that. I do know that all of these functions operate only on the focused frame&apos;s selection and editor (::selectionBounds uses the webview for contentsToWindow).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824847</commentid>
    <comment_count>10</comment_count>
      <attachid>186484</attachid>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-04 15:53:42 -0800</bug_when>
    <thetext>Created attachment 186484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824852</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Hopman">cjhopman</who>
    <bug_when>2013-02-04 15:57:12 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=186484) [details]
&gt; Patch

I&apos;ve addressed only fishd@&apos;s nit, not the movement of these APIs to WebFrame. I have a patch ready to move all these APIs to WebFrame if we decide to do that, but while we wait for agreement on that we should be able to land this change as it won&apos;t make it any harder to move the APIs if we decide that&apos;s the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826563</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-02-06 11:00:18 -0800</bug_when>
    <thetext>Thanks for working on moving these methods to WebFrame.  I&apos;m interested in taking a look at that patch of course :-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826572</commentid>
    <comment_count>13</comment_count>
      <attachid>186484</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 11:09:03 -0800</bug_when>
    <thetext>Comment on attachment 186484
Patch

Clearing flags on attachment: 186484

Committed r142011: &lt;http://trac.webkit.org/changeset/142011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826573</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 11:09:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186088</attachid>
            <date>2013-02-01 11:34:19 -0800</date>
            <delta_ts>2013-02-04 15:53:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108667-20130201113102.patch</filename>
            <type>text/plain</type>
            <size>5095</size>
            <attacher name="Chris Hopman">cjhopman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDE2MWYyZGJjMjQwZmU0N2E5NDQwZmU4ZjM0Y2MxYzFhY2U0YWNiYmYuLmZjYmFmMTYyMWI0MGNm
NzM5YmMyMDAxZGU2Y2MyMmMwMjQxYjdjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTMtMDItMDEgIENocmlzIEhvcG1hbiAgPGNqaG9wbWFuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFdlYldpZGdldCBzaG91bGQgZXhwb3NlIGEg
d2F5IHRvIGRldGVybWluZSB0aGUgc3RhcnQvZW5kIG9mIHRoZSBzZWxlY3Rpb24gYm91bmRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJXaWRnZXQ6
OnNlbGVjdGlvbkJvdW5kcygpIHJldHVybnMgdGhlIGFuY2hvciBhbmQgZm9jdXMgb2YgdGhlCisg
ICAgICAgIHNlbGVjdGlvbi4gVGhpcyBtYXRjaGVzIHRoZSBhcmd1bWVudHMgdG8gV2ViRnJhbWU6
OnNlbGVjdFJhbmdlKCkuCisgICAgICAgIEFkZCBXZWJXaWRnZXQ6OmlzU2VsZWN0aW9uQW5jaG9y
Rmlyc3Qgc28gdGhhdCBhIGNhbGxlciBjYW4gY29udmVydCB0aGUKKyAgICAgICAgYW5jaG9yL2Zv
Y3VzIHRvIHN0YXJ0L2VuZC4KKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAg
ICAgKFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aXNTZWxlY3Rpb25B
bmNob3JGaXJzdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmlzU2VsZWN0aW9uQW5jaG9yRmlyc3QpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiB0ZXN0cy9XZWJW
aWV3VGVzdC5jcHA6CisKIDIwMTMtMDEtMzEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmVtb3ZlIFdlYktpdCBBUEkgZm9yIG9sZCBv
blN1Y2Nlc3Mvb25VcGdyYWRlTmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YldpZGdldC5oCmluZGV4IDlhZGE3MmZiNmMyNDFjMzU1NTQyZTE2N2JjMjk0ZDhiYzI5OTQxMmIu
LjFkNWY1ZjEyZDc2YTdlYzE4Yzg1ZmU2OTcxNWMxNjc3YTljODM3MTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCkBAIC0xOTgsNiArMTk4LDEwIEBAIHB1Ymxp
YzoKICAgICAvLyBJZiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGVtcHR5LCBpdCByZXR1cm5zIGZh
bHNlLgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25UZXh0RGlyZWN0aW9uKFdlYlRleHREaXJl
Y3Rpb24mIHN0YXJ0LCBXZWJUZXh0RGlyZWN0aW9uJiBlbmQpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBub25l
bXB0eSBhbmQgaXRzIGFuY2hvciBpcyBmaXJzdAorICAgIC8vIChpLmUgaXRzIGFuY2hvciBpcyBp
dHMgc3RhcnQpLgorICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdGlvbkFuY2hvckZpcnN0KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIC8vIEZldGNoIHRoZSBjdXJyZW50IHNlbGVjdGlv
biByYW5nZSBvZiB0aGlzIFdlYldpZGdldC4gSWYgdGhlcmUgaXMgbm8KICAgICAvLyBzZWxlY3Rp
b24sIGl0IHdpbGwgb3V0cHV0IGEgMC1sZW5ndGggcmFuZ2Ugd2l0aCB0aGUgbG9jYXRpb24gYXQg
dGhlCiAgICAgLy8gY2FyZXQuIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMgdGhlIG91dC1wYXJhbXRl
cnMgb24gc3VjY2VzczsgcmV0dXJucyBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IDEyZjFhZTA1MjA0Yjg5Y2YzMWNmNmYxNjhkZTFkNDI3YWJk
MmRhYmUuLjI2YjQzOTA4MzYwMWExNTM1Y2ZlMDcwZjZhZjlkNGExYTFhMzVkN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIzOTgsNiArMjM5OCwx
NyBAQCBib29sIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25Cb3VuZHMoV2ViUmVjdCYgYW5jaG9yLCBX
ZWJSZWN0JiBmb2N1cykgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJWaWV3
SW1wbDo6aXNTZWxlY3Rpb25BbmNob3JGaXJzdCgpIGNvbnN0Cit7CisgICAgY29uc3QgRnJhbWUq
IGZyYW1lID0gZm9jdXNlZFdlYkNvcmVGcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9uID0gZnJhbWUtPnNl
bGVjdGlvbigpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHNlbGVjdGlvbi0+c2VsZWN0aW9uKCkuaXNCYXNlRmlyc3QoKTsKK30KKwogYm9v
bCBXZWJWaWV3SW1wbDo6c2VsZWN0aW9uVGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uJiBz
dGFydCwgV2ViVGV4dERpcmVjdGlvbiYgZW5kKSBjb25zdAogewogICAgIGNvbnN0IEZyYW1lKiBm
cmFtZSA9IGZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCmluZGV4IGMyYjVjNGY1NDg0YTkwNDJiNjFlYTExZDYzYjk5ZWFjZDg0ZDYx
OTYuLmEyMTM4Y2IzZDFhYmI3Y2E4MmJhNjVlZjZlODEwN2M1ZjgwNGNhOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYkNvbG9yIGJhY2tncm91bmRDb2xvcigpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3Rpb25Cb3VuZHMoV2ViUmVjdCYgYW5jaG9yLCBXZWJSZWN0JiBmb2N1
cykgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdGlvblRleHREaXJlY3Rpb24oV2ViVGV4
dERpcmVjdGlvbiYgc3RhcnQsIFdlYlRleHREaXJlY3Rpb24mIGVuZCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzU2VsZWN0aW9uQW5jaG9yRmlyc3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgY2FyZXRPclNlbGVjdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3Ro
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbik7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJW
aWV3VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNw
cAppbmRleCBlZDMyMDhlNmYyZjFlNjBkNjhkYmRlYzYyNThlNjZkODdjN2JhMmYxLi5mMDg1MjJm
Mzg3ZDE3NjM1YjM5ZjcyYTc4NjI4MTRhOTFkMjQ0MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcApAQCAtNDU2LDYgKzQ1NiwyMyBAQCBURVNUX0Yo
V2ViVmlld1Rlc3QsIFNldENvbXBvc2l0aW9uRnJvbUV4aXN0aW5nVGV4dCkKICAgICB3ZWJWaWV3
LT5jbG9zZSgpOwogfQogCitURVNUX0YoV2ViVmlld1Rlc3QsIElzU2VsZWN0aW9uQW5jaG9yRmly
c3QpCit7CisgICAgVVJMVGVzdEhlbHBlcnM6OnJlZ2lzdGVyTW9ja2VkVVJMRnJvbUJhc2VVUkwo
V2ViU3RyaW5nOjpmcm9tVVRGOChtX2Jhc2VVUkwuY19zdHIoKSksIFdlYlN0cmluZzo6ZnJvbVVU
RjgoImlucHV0X2ZpZWxkX3BvcHVsYXRlZC5odG1sIikpOworICAgIFdlYlZpZXcqIHdlYlZpZXcg
PSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAiaW5w
dXRfZmllbGRfcG9wdWxhdGVkLmh0bWwiKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSB3ZWJWaWV3
LT5tYWluRnJhbWUoKTsKKworICAgIHdlYlZpZXctPnNldEluaXRpYWxGb2N1cyhmYWxzZSk7Cisg
ICAgd2ViVmlldy0+c2V0RWRpdGFibGVTZWxlY3Rpb25PZmZzZXRzKDQsIDEwKTsKKyAgICBFWFBF
Q1RfVFJVRSh3ZWJWaWV3LT5pc1NlbGVjdGlvbkFuY2hvckZpcnN0KCkpOworICAgIFdlYlJlY3Qg
YW5jaG9yOworICAgIFdlYlJlY3QgZm9jdXM7CisgICAgd2ViVmlldy0+c2VsZWN0aW9uQm91bmRz
KGFuY2hvciwgZm9jdXMpOworICAgIGZyYW1lLT5zZWxlY3RSYW5nZShXZWJQb2ludChmb2N1cy54
LCBmb2N1cy55KSwgV2ViUG9pbnQoYW5jaG9yLngsIGFuY2hvci55KSk7CisgICAgRVhQRUNUX0ZB
TFNFKHdlYlZpZXctPmlzU2VsZWN0aW9uQW5jaG9yRmlyc3QoKSk7CisgICAgd2ViVmlldy0+Y2xv
c2UoKTsKK30KKwogVEVTVF9GKFdlYlZpZXdUZXN0LCBSZXNldFNjcm9sbEFuZFNjYWxlU3RhdGUp
CiB7CiAgICAgVVJMVGVzdEhlbHBlcnM6OnJlZ2lzdGVyTW9ja2VkVVJMRnJvbUJhc2VVUkwoV2Vi
U3RyaW5nOjpmcm9tVVRGOChtX2Jhc2VVUkwuY19zdHIoKSksIFdlYlN0cmluZzo6ZnJvbVVURjgo
ImhlbGxvX3dvcmxkLmh0bWwiKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186484</attachid>
            <date>2013-02-04 15:53:42 -0800</date>
            <delta_ts>2013-02-06 11:09:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108667-20130204155021.patch</filename>
            <type>text/plain</type>
            <size>5080</size>
            <attacher name="Chris Hopman">cjhopman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDgxNTRlZTEyOGRkOWY1NTU1YjcyMDc1ZGQ3NTY1NDNiMWRmZmQ3NmMuLmYwNThkNzk2OTAyMTAx
YmNjYWY4ZjQ1NGNlNmEzZjU1OTIyZDc4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTMtMDItMDQgIENocmlzIEhvcG1hbiAgPGNqaG9wbWFuQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFdlYldpZGdldCBzaG91bGQgZXhwb3NlIGEg
d2F5IHRvIGRldGVybWluZSB0aGUgc3RhcnQvZW5kIG9mIHRoZSBzZWxlY3Rpb24gYm91bmRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJXaWRnZXQ6
OnNlbGVjdGlvbkJvdW5kcygpIHJldHVybnMgdGhlIGFuY2hvciBhbmQgZm9jdXMgb2YgdGhlCisg
ICAgICAgIHNlbGVjdGlvbi4gVGhpcyBtYXRjaGVzIHRoZSBhcmd1bWVudHMgdG8gV2ViRnJhbWU6
OnNlbGVjdFJhbmdlKCkuCisgICAgICAgIEFkZCBXZWJXaWRnZXQ6OmlzU2VsZWN0aW9uQW5jaG9y
Rmlyc3Qgc28gdGhhdCBhIGNhbGxlciBjYW4gY29udmVydCB0aGUKKyAgICAgICAgYW5jaG9yL2Zv
Y3VzIHRvIHN0YXJ0L2VuZC4KKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXQuaDoKKyAgICAg
ICAgKFdlYldpZGdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6aXNTZWxlY3Rpb25B
bmNob3JGaXJzdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmlzU2VsZWN0aW9uQW5jaG9yRmlyc3QpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiB0ZXN0cy9XZWJW
aWV3VGVzdC5jcHA6CisKIDIwMTMtMDItMDMgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG8gbm90IGNhbGwgbV93aWRnZXRDbGllbnQt
PnNob3coKSBmb3IgV2ViSGVscGVyUGx1Z2luLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJXaWRnZXQuaAppbmRleCA5YWRhNzJmYjZjMjQxYzM1NTU0MmUxNjdiYzI5NGQ4YmMyOTk0
MTJiLi4xZDVmNWYxMmQ3NmE3ZWMxOGM4NWZlNjk3MTVjMTY3N2E5YzgzNzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaApAQCAtMTk4LDYgKzE5OCwxMCBAQCBw
dWJsaWM6CiAgICAgLy8gSWYgdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBlbXB0eSwgaXQgcmV0dXJu
cyBmYWxzZS4KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uVGV4dERpcmVjdGlvbihXZWJUZXh0
RGlyZWN0aW9uJiBzdGFydCwgV2ViVGV4dERpcmVjdGlvbiYgZW5kKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMg
bm9uZW1wdHkgYW5kIGl0cyBhbmNob3IgaXMgZmlyc3QKKyAgICAvLyAoaS5lIGl0cyBhbmNob3Ig
aXMgaXRzIHN0YXJ0KS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3Rpb25BbmNob3JGaXJzdCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICAvLyBGZXRjaCB0aGUgY3VycmVudCBzZWxl
Y3Rpb24gcmFuZ2Ugb2YgdGhpcyBXZWJXaWRnZXQuIElmIHRoZXJlIGlzIG5vCiAgICAgLy8gc2Vs
ZWN0aW9uLCBpdCB3aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJhbmdlIHdpdGggdGhlIGxvY2F0aW9u
IGF0IHRoZQogICAgIC8vIGNhcmV0LiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBvdXQtcGFy
YW10ZXJzIG9uIHN1Y2Nlc3M7IHJldHVybnMgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0MGY4ODRlN2FlYjkwNjE3ZjMwZmEzMmMxMDA2Nzk2
ZWI5ODQ5NmFmLi4yZDg4NTE2MGE2ZDgyMTE1Nzc2MjE2Mzk5NzAwNzg5Y2Y0ZThlMjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yNDE4LDYgKzI0
MTgsMTcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6c2VsZWN0aW9uVGV4dERpcmVjdGlvbihXZWJUZXh0
RGlyZWN0aW9uJiBzdGFydCwgV2ViVGV4dERpcmVjdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
Ym9vbCBXZWJWaWV3SW1wbDo6aXNTZWxlY3Rpb25BbmNob3JGaXJzdCgpIGNvbnN0Cit7CisgICAg
Y29uc3QgRnJhbWUqIGZyYW1lID0gZm9jdXNlZFdlYkNvcmVGcmFtZSgpOworICAgIGlmICghZnJh
bWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9u
ID0gZnJhbWUtPnNlbGVjdGlvbigpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHNlbGVjdGlvbi0+c2VsZWN0aW9uKCkuaXNCYXNlRmlyc3Qo
KTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6c2V0RWRpdGFibGVTZWxlY3Rpb25PZmZzZXRzKGlu
dCBzdGFydCwgaW50IGVuZCkKIHsKICAgICBjb25zdCBGcmFtZSogZm9jdXNlZCA9IGZvY3VzZWRX
ZWJDb3JlRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmlu
ZGV4IDAyMjY2MjkyMWIyMjZmNzMwMjg5MjhmMGZkMzgzZTdhNDlkNzU3YzkuLjQ1MWU2YzU0NTg2
ODU5OTAxYTJhMmQwNTRiNGE2OGVkMjVmZGZjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFdlYkNvbG9yIGJhY2tncm91bmRDb2xvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3Rpb25Cb3VuZHMoV2ViUmVjdCYgYW5jaG9yLCBXZWJSZWN0JiBmb2N1cykgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIHNlbGVjdGlvblRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiYgc3Rh
cnQsIFdlYlRleHREaXJlY3Rpb24mIGVuZCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2Vs
ZWN0aW9uQW5jaG9yRmlyc3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVj
dGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbik7CiAgICAg
dmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCBlZDMyMDhl
NmYyZjFlNjBkNjhkYmRlYzYyNThlNjZkODdjN2JhMmYxLi5mMDg1MjJmMzg3ZDE3NjM1YjM5Zjcy
YTc4NjI4MTRhOTFkMjQ0MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YlZpZXdUZXN0LmNwcApAQCAtNDU2LDYgKzQ1NiwyMyBAQCBURVNUX0YoV2ViVmlld1Rlc3QsIFNl
dENvbXBvc2l0aW9uRnJvbUV4aXN0aW5nVGV4dCkKICAgICB3ZWJWaWV3LT5jbG9zZSgpOwogfQog
CitURVNUX0YoV2ViVmlld1Rlc3QsIElzU2VsZWN0aW9uQW5jaG9yRmlyc3QpCit7CisgICAgVVJM
VGVzdEhlbHBlcnM6OnJlZ2lzdGVyTW9ja2VkVVJMRnJvbUJhc2VVUkwoV2ViU3RyaW5nOjpmcm9t
VVRGOChtX2Jhc2VVUkwuY19zdHIoKSksIFdlYlN0cmluZzo6ZnJvbVVURjgoImlucHV0X2ZpZWxk
X3BvcHVsYXRlZC5odG1sIikpOworICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxw
ZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAiaW5wdXRfZmllbGRfcG9wdWxh
dGVkLmh0bWwiKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSB3ZWJWaWV3LT5tYWluRnJhbWUoKTsK
KworICAgIHdlYlZpZXctPnNldEluaXRpYWxGb2N1cyhmYWxzZSk7CisgICAgd2ViVmlldy0+c2V0
RWRpdGFibGVTZWxlY3Rpb25PZmZzZXRzKDQsIDEwKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJWaWV3
LT5pc1NlbGVjdGlvbkFuY2hvckZpcnN0KCkpOworICAgIFdlYlJlY3QgYW5jaG9yOworICAgIFdl
YlJlY3QgZm9jdXM7CisgICAgd2ViVmlldy0+c2VsZWN0aW9uQm91bmRzKGFuY2hvciwgZm9jdXMp
OworICAgIGZyYW1lLT5zZWxlY3RSYW5nZShXZWJQb2ludChmb2N1cy54LCBmb2N1cy55KSwgV2Vi
UG9pbnQoYW5jaG9yLngsIGFuY2hvci55KSk7CisgICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXctPmlz
U2VsZWN0aW9uQW5jaG9yRmlyc3QoKSk7CisgICAgd2ViVmlldy0+Y2xvc2UoKTsKK30KKwogVEVT
VF9GKFdlYlZpZXdUZXN0LCBSZXNldFNjcm9sbEFuZFNjYWxlU3RhdGUpCiB7CiAgICAgVVJMVGVz
dEhlbHBlcnM6OnJlZ2lzdGVyTW9ja2VkVVJMRnJvbUJhc2VVUkwoV2ViU3RyaW5nOjpmcm9tVVRG
OChtX2Jhc2VVUkwuY19zdHIoKSksIFdlYlN0cmluZzo6ZnJvbVVURjgoImhlbGxvX3dvcmxkLmh0
bWwiKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>