<?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>115665</bug_id>
          
          <creation_ts>2013-05-06 11:26:46 -0700</creation_ts>
          <short_desc>[WK2][Mac] Pass information about open pages to LaunchServices</short_desc>
          <delta_ts>2013-05-17 09:49:44 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>885138</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-06 11:26:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/13479806&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885142</commentid>
    <comment_count>1</comment_count>
      <attachid>200727</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-06 11:31:01 -0700</bug_when>
    <thetext>Created attachment 200727
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885164</commentid>
    <comment_count>2</comment_count>
      <attachid>200733</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-06 11:52:50 -0700</bug_when>
    <thetext>Created attachment 200733
with a little more C++11 goodness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885409</commentid>
    <comment_count>3</comment_count>
      <attachid>200733</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-06 15:03:29 -0700</bug_when>
    <thetext>Comment on attachment 200733
with a little more C++11 goodness

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

r=me even without the changes I suggest (or allude to)

&gt; Source/WebKit2/WebProcess/mac/WebProcessMac.mm:231
&gt; +    for (const auto&amp; iter: m_pageMap) {

We don’t normally call iterators “iter”; for whatever reason we have used “it” for this for a long time. Maybe iter is better? Or maybe we need a word to use in cases like this.

&gt; Source/WebKit2/WebProcess/mac/WebProcessMac.mm:241
&gt; +        if (!mainFrameOrigin-&gt;isUnique())
&gt; +            mainFrameOriginString = mainFrameOrigin-&gt;toRawString();
&gt; +        else
&gt; +            mainFrameOriginString = KURL(KURL(), mainFrame-&gt;url()).protocol() + &apos;:&apos;;

I’m surprised there isn’t a function somewhere that encapsulates this operation. Is this really an unusual requirement, this need to hide unique origins and reveal non-unique ones?

I also think this needs a why comment. It’s not obvious why uniqueness leads to a need to obscure the origin and just reveal the protocol.

&gt; Source/WebKit2/WebProcess/mac/WebProcessMac.mm:242
&gt; +        CFArrayAppendValue(activePageURLs.get(), userVisibleString([NSURL URLWithString:mainFrameOriginString]));

It seems so awkward to have to round trip through NSURL back to NSString to do this. Again, maybe a “why” comment explaining how this is helpful or why it‘s required would be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885485</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-06 15:47:11 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; We don’t normally call iterators “iter”; for whatever reason we have used “it” for this for a long time. Maybe iter is better? Or maybe we need a word to use in cases like this.

We have a number of &quot;iters&quot; in code base (139 results in 57 files), and I think that I&apos;ve been always naming them like that. I guess the C++11 syntax made it more noticeable!

&gt; I’m surprised there isn’t a function somewhere that encapsulates this operation. Is this really an unusual requirement, this need to hide unique origins and reveal non-unique ones?
&gt; 
&gt; I also think this needs a why comment. It’s not obvious why uniqueness leads to a need to obscure the origin and just reveal the protocol.

Added a comment. What actually happens is that unique origins are indistinguishable by design, even toRawString does not necessarily work.

I do not think that there is an existing function that builds such a string for presentation to user. Another way to implement this would be to remove path, fragment and credentials from a URL, not using SecurityOrigin code at all. I think that these are equally unwieldy.

&gt; It seems so awkward to have to round trip through NSURL back to NSString to do this. Again, maybe a “why” comment explaining how this is helpful or why it‘s required would be helpful.

The only reason I did it this way is that WebCore only exposes a Foundation-based interface for userVisibleString().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885487</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-06 15:48:37 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r149646&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890458</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-17 09:49:44 -0700</bug_when>
    <thetext>*** Bug 115496 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200727</attachid>
            <date>2013-05-06 11:31:01 -0700</date>
            <delta_ts>2013-05-06 11:52:50 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>PageOriginsLS.txt</filename>
            <type>text/plain</type>
            <size>6296</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTYxNykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTA1LTA2ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MzQ3OTgwNj4gW01hY10gUGFzcyBpbmZvcm1hdGlvbiBhYm91dCBvcGVuIHBhZ2VzIHRvIExhdW5j
aFNlcnZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTU2NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogKFdlYktpdDo6V2ViUGFnZTo6ZGlk
Q29tbWl0TG9hZCk6IE1vdmVkIHJlcGVhdGVkCisgICAgICAgIGNoZWNrIGZvciBmcmFtZS0+aXNN
YWluRnJhbWUoKSB0byB0aGUgdG9wLCBtYXRjaGluZyBvdGVyIHNpbWlsYXIgZnVuY3Rpb25zLgor
ICAgICAgICBDYWxsIHVwZGF0ZUFjdGl2ZVBhZ2VzKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOiBSZW1vdmVkIGFuIG9ic29sZXRlIEZJWE1FLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6IEVtcHR5IGltcGxlbWVu
dGF0aW9uIGZvciBwbGF0Zm9ybXMKKyAgICAgICAgdGhhdCBkb24ndCBuZWVkIHRvIGRvIGFueXRo
aW5nIGhlcmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDogQWRkZWQgdXBk
YXRlQWN0aXZlUGFnZXMoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWMubW06IChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKyAgICAgICAg
Q29sbGVjdCB1c2VyIHZpc2libGUgb3JpZ2lucyBvZiBwYWdlcyBpbiB0aGUgcHJvY2VzcyBhbmQg
cGFzcyB0aGVtIHRvIExTLgorCiAyMDEzLTA1LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgV3JpdGUgc3RvcmFnZSBjaGFuZ2VzIHRvIGRpc2sKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTQ5
NjAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAzMyw4ICsxMDMzLDYgQEAgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBX
ZWJQcm9jZXNzOjpuZQogCiB2b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkNsb3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7Ci0gICAgLy8g
RklYTUUgKE5ldHdvcmtQcm9jZXNzKTogSG93IGRvIHdlIGhhbmRsZSBub3QgaGF2aW5nIHRoZSBj
b25uZWN0aW9uIHdoZW4gdGhlIFdlYlByb2Nlc3MgbmVlZHMgaXQ/Ci0gICAgLy8gSWYgdGhlIE5l
dHdvcmtQcm9jZXNzIGNyYXNoZWQsIGZvciBleGFtcGxlLiAgRG8gd2UgcmVzcGF3biBpdD8KICAg
ICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVChtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIApAQCAtMTEyMyw2ICsxMTIxLDEx
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QKIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKQogewogfQorCit2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2
ZVBhZ2VzKCkKK3sKK30KKwogI2VuZGlmCiAgICAgCiB2b2lkIFdlYlByb2Nlc3M6OnBhZ2VEaWRF
bnRlcldpbmRvdyhXZWJQYWdlKikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCShyZXZpc2lvbiAxNDk2MDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDkgKzE4NCwxMSBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBwYWdlRGlkRW50ZXJXaW5kb3coV2ViUGFnZSopOwogICAgIHZvaWQgcGFn
ZVdpbGxMZWF2ZVdpbmRvdyhXZWJQYWdlKik7Ci0gICAgCisKICAgICB2b2lkIG5vblZpc2libGVQ
cm9jZXNzQ2xlYW51cFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8V2ViUHJvY2Vzcz4qKTsKIAor
ICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoKTsKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNz
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDE0OTYwMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk1MiwyMiArMzk1MiwyNiBAQCB2
b2lkIFdlYlBhZ2U6OmRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50CiAKIHZvaWQgV2ViUGFnZTo6
ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiB7CisgICAgaWYgKCFmcmFtZS0+aXNNYWlu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gSWYgcHJldmlvdXMgVVJMIGlzIGlu
dmFsaWQsIHRoZW4gaXQncyBub3QgYSByZWFsIHBhZ2UgdGhhdCdzIGJlaW5nIG5hdmlnYXRlZCBh
d2F5IGZyb20uCiAgICAgLy8gTW9zdCBsaWtlbHksIHRoaXMgaXMgYWN0dWFsbHkgdGhlIGZpcnN0
IGxvYWQgdG8gYmUgY29tbWl0dGVkIGluIHRoaXMgcGFnZS4KLSAgICBpZiAoZnJhbWUtPmlzTWFp
bkZyYW1lKCkgJiYgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+cHJldmlvdXNVUkwoKS5p
c1ZhbGlkKCkpCisgICAgaWYgKGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPnByZXZpb3Vz
VVJMKCkuaXNWYWxpZCgpKQogICAgICAgICByZXBvcnRVc2VkRmVhdHVyZXMoKTsKIAogICAgIC8v
IE9ubHkgcmVzdG9yZSB0aGUgc2NhbGUgZmFjdG9yIGZvciBzdGFuZGFyZCBmcmFtZSBsb2FkcyAo
b2YgdGhlIG1haW4gZnJhbWUpLgotICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBmcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVTdGFu
ZGFyZCkgeworICAgIGlmIChmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5sb2FkVHlwZSgp
ID09IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCkgewogICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUt
PmNvcmVGcmFtZSgpLT5wYWdlKCk7CiAgICAgICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VTY2Fs
ZUZhY3RvcigpICE9IDEpCiAgICAgICAgICAgICBzY2FsZVBhZ2UoMSwgSW50UG9pbnQoKSk7CiAg
ICAgfQogCiAjaWYgRU5BQkxFKFBSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykK
LSAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCi0gICAgICAgIHJlc2V0UHJpbWFyeVNuYXBz
aG90dGVkUGx1Z0luKCk7CisgICAgcmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsKICNl
bmRpZgorCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkudXBkYXRlQWN0aXZlUGFnZXMoKTsKIH0K
IAogdm9pZCBXZWJQYWdlOjpkaWRGaW5pc2hMb2FkKFdlYkZyYW1lKiBmcmFtZSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQkocmV2aXNp
b24gMTQ5NjAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgog
I2ltcG9ydCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgiCisjaW1wb3J0ICJXZWJGcmFt
ZS5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yLmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVt
b3J5Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVOU1VSTEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CiAjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgpA
QCAtNTUsNiArNTcsOCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCitjb25zdCBDRlN0cmluZ1JlZiBrTFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmln
aW5zS2V5ID0gQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2luc0tleSIpOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHVpbnQ2NF90IG1lbW9yeVNpemUoKQpAQCAtMjIw
LDQgKzIyNCwyNSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0CiAg
ICAgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFy
YW1ldGVycyk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQorewor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorICAgIFJldGFpblB0
cjxDRk11dGFibGVBcnJheVJlZj4gYWN0aXZlUGFnZVVSTHMgPSBhZG9wdENGKENGQXJyYXlDcmVh
dGVNdXRhYmxlKDAsIDAsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKyAgICBmb3IgKGF1dG8g
aXRlciA9IG1fcGFnZU1hcC5iZWdpbigpLCBlbmQgPSBtX3BhZ2VNYXAuZW5kKCk7IGl0ZXIgIT0g
ZW5kOyArK2l0ZXIpIHsKKyAgICAgICAgV2ViUGFnZSogcGFnZSA9IGl0ZXItPnZhbHVlLmdldCgp
OworICAgICAgICBXZWJGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbldlYkZyYW1lKCk7Cisg
ICAgICAgIGlmICghbWFpbkZyYW1lKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFN0
cmluZyBtYWluRnJhbWVPcmlnaW5TdHJpbmc7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gbWFpbkZyYW1lT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobWFp
bkZyYW1lLT51cmwoKSk7CisgICAgICAgIGlmICghbWFpbkZyYW1lT3JpZ2luLT5pc1VuaXF1ZSgp
KQorICAgICAgICAgICAgbWFpbkZyYW1lT3JpZ2luU3RyaW5nID0gbWFpbkZyYW1lT3JpZ2luLT50
b1Jhd1N0cmluZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYWluRnJhbWVPcmlnaW5T
dHJpbmcgPSBLVVJMKEtVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSkucHJvdG9jb2woKSArICc6JzsK
KyAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFjdGl2ZVBhZ2VVUkxzLmdldCgpLCB1c2VyVmlz
aWJsZVN0cmluZyhbTlNVUkwgVVJMV2l0aFN0cmluZzptYWluRnJhbWVPcmlnaW5TdHJpbmddKSk7
CisgICAgfQorICAgIFdLU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTQWN0aXZlUGFn
ZVVzZXJWaXNpYmxlT3JpZ2luc0tleSwgYWN0aXZlUGFnZVVSTHMuZ2V0KCkpOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200733</attachid>
            <date>2013-05-06 11:52:50 -0700</date>
            <delta_ts>2013-05-06 15:03:29 -0700</delta_ts>
            <desc>with a little more C++11 goodness</desc>
            <filename>PageOriginsLS.txt</filename>
            <type>text/plain</type>
            <size>6290</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTYxOSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTA1LTA2ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MzQ3OTgwNj4gW01hY10gUGFzcyBpbmZvcm1hdGlvbiBhYm91dCBvcGVuIHBhZ2VzIHRvIExhdW5j
aFNlcnZpY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTU2NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogKFdlYktpdDo6V2ViUGFnZTo6ZGlk
Q29tbWl0TG9hZCk6IE1vdmVkIHJlcGVhdGVkCisgICAgICAgIGNoZWNrIGZvciBmcmFtZS0+aXNN
YWluRnJhbWUoKSB0byB0aGUgdG9wLCBtYXRjaGluZyBvdGVyIHNpbWlsYXIgZnVuY3Rpb25zLgor
ICAgICAgICBDYWxsIHVwZGF0ZUFjdGl2ZVBhZ2VzKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQpOiBSZW1vdmVkIGFuIG9ic29sZXRlIEZJWE1FLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6IEVtcHR5IGltcGxlbWVu
dGF0aW9uIGZvciBwbGF0Zm9ybXMKKyAgICAgICAgdGhhdCBkb24ndCBuZWVkIHRvIGRvIGFueXRo
aW5nIGhlcmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDogQWRkZWQgdXBk
YXRlQWN0aXZlUGFnZXMoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWMubW06IChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKToKKyAgICAgICAg
Q29sbGVjdCB1c2VyIHZpc2libGUgb3JpZ2lucyBvZiBwYWdlcyBpbiB0aGUgcHJvY2VzcyBhbmQg
cGFzcyB0aGVtIHRvIExTLgorCiAyMDEzLTA1LTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzQ3OTgwNj4gW01hY10gUGFz
cyBwbHVnLWluIGJ1bmRsZSBJRCB0byBMYXVuY2hTZXJ2aWNlcwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAxNDk2MDIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMz
LDggKzEwMzMsNiBAQCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5lCiAK
IHZvaWQgV2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKLSAgICAvLyBGSVhNRSAoTmV0d29ya1By
b2Nlc3MpOiBIb3cgZG8gd2UgaGFuZGxlIG5vdCBoYXZpbmcgdGhlIGNvbm5lY3Rpb24gd2hlbiB0
aGUgV2ViUHJvY2VzcyBuZWVkcyBpdD8KLSAgICAvLyBJZiB0aGUgTmV0d29ya1Byb2Nlc3MgY3Jh
c2hlZCwgZm9yIGV4YW1wbGUuICBEbyB3ZSByZXNwYXduIGl0PwogICAgIEFTU0VSVChtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgQVNTRVJUKG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID09IGNvbm5lY3Rpb24pOwogCkBAIC0xMTIzLDYgKzExMjEsMTEgQEAgdm9pZCBXZWJQcm9j
ZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpCiB7CiB9CisKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoKQoreworfQor
CiAjZW5kaWYKICAgICAKIHZvaWQgV2ViUHJvY2Vzczo6cGFnZURpZEVudGVyV2luZG93KFdlYlBh
Z2UqKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9u
IDE0OTYwMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODQsOSArMTg0LDExIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHBh
Z2VEaWRFbnRlcldpbmRvdyhXZWJQYWdlKik7CiAgICAgdm9pZCBwYWdlV2lsbExlYXZlV2luZG93
KFdlYlBhZ2UqKTsKLSAgICAKKwogICAgIHZvaWQgbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGlt
ZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQcm9jZXNzPiopOwogCisgICAgdm9pZCB1cGRhdGVB
Y3RpdmVQYWdlcygpOworCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24g
MTQ5NjAyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOTUyLDIyICszOTUyLDI2IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
Q2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQKIAogdm9pZCBXZWJQYWdlOjpkaWRDb21taXRMb2FkKFdl
YkZyYW1lKiBmcmFtZSkKIHsKKyAgICBpZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAg
ICByZXR1cm47CisKICAgICAvLyBJZiBwcmV2aW91cyBVUkwgaXMgaW52YWxpZCwgdGhlbiBpdCdz
IG5vdCBhIHJlYWwgcGFnZSB0aGF0J3MgYmVpbmcgbmF2aWdhdGVkIGF3YXkgZnJvbS4KICAgICAv
LyBNb3N0IGxpa2VseSwgdGhpcyBpcyBhY3R1YWxseSB0aGUgZmlyc3QgbG9hZCB0byBiZSBjb21t
aXR0ZWQgaW4gdGhpcyBwYWdlLgotICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBmcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5wcmV2aW91c1VSTCgpLmlzVmFsaWQoKSkKKyAgICBp
ZiAoZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS0+cHJldmlvdXNVUkwoKS5pc1ZhbGlkKCkp
CiAgICAgICAgIHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgLy8gT25seSByZXN0b3JlIHRo
ZSBzY2FsZSBmYWN0b3IgZm9yIHN0YW5kYXJkIGZyYW1lIGxvYWRzIChvZiB0aGUgbWFpbiBmcmFt
ZSkuCi0gICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIGZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCktPmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZVN0YW5kYXJkKSB7CisgICAgaWYg
KGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlw
ZVN0YW5kYXJkKSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+Y29yZUZyYW1lKCktPnBh
Z2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gMSkK
ICAgICAgICAgICAgIHNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKICAgICB9CiAKICNpZiBFTkFC
TEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotICAgIGlmIChmcmFtZS0+
aXNNYWluRnJhbWUoKSkKLSAgICAgICAgcmVzZXRQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW4oKTsK
KyAgICByZXNldFByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpOwogI2VuZGlmCisKKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS51cGRhdGVBY3RpdmVQYWdlcygpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmRpZEZpbmlzaExvYWQoV2ViRnJhbWUqIGZyYW1lKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCShyZXZpc2lvbiAxNDk2MDIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW1w
b3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXS0Z1bGxL
ZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKKyNpbXBvcnQgIldlYkZyYW1lLmgiCiAjaW1wb3J0ICJX
ZWJJbnNwZWN0b3IuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTM5LDYgKzQwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
TG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJM
RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPGFs
Z29yaXRobT4KICNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CkBAIC01NSw2ICs1Nyw4IEBA
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK2NvbnN0
IENGU3RyaW5nUmVmIGtMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkgPSBDRlNUUigi
TFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5Iik7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBzdGF0aWMgdWludDY0X3QgbWVtb3J5U2l6ZSgpCkBAIC0yMjAsNCArMjI0LDI1IEBAIHZv
aWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QKICAgICBDaGlsZFByb2Nlc3M6
OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0ZXJzKTsKIH0KIAor
dm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcygpCit7CisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgUmV0YWluUHRyPENGTXV0YWJsZUFycmF5
UmVmPiBhY3RpdmVQYWdlVVJMcyA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUoMCwgMCwg
JmtDRlR5cGVBcnJheUNhbGxCYWNrcykpOworICAgIGZvciAoY29uc3QgYXV0byYgaXRlcjogbV9w
YWdlTWFwKSB7CisgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSBpdGVyLnZhbHVlLmdldCgpOworICAg
ICAgICBXZWJGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgICAg
IGlmICghbWFpbkZyYW1lKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFN0cmluZyBt
YWluRnJhbWVPcmlnaW5TdHJpbmc7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbWFp
bkZyYW1lT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobWFpbkZyYW1l
LT51cmwoKSk7CisgICAgICAgIGlmICghbWFpbkZyYW1lT3JpZ2luLT5pc1VuaXF1ZSgpKQorICAg
ICAgICAgICAgbWFpbkZyYW1lT3JpZ2luU3RyaW5nID0gbWFpbkZyYW1lT3JpZ2luLT50b1Jhd1N0
cmluZygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYWluRnJhbWVPcmlnaW5TdHJpbmcg
PSBLVVJMKEtVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSkucHJvdG9jb2woKSArICc6JzsKKyAgICAg
ICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFjdGl2ZVBhZ2VVUkxzLmdldCgpLCB1c2VyVmlzaWJsZVN0
cmluZyhbTlNVUkwgVVJMV2l0aFN0cmluZzptYWluRnJhbWVPcmlnaW5TdHJpbmddKSk7CisgICAg
fQorICAgIFdLU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTQWN0aXZlUGFnZVVzZXJW
aXNpYmxlT3JpZ2luc0tleSwgYWN0aXZlUGFnZVVSTHMuZ2V0KCkpOworI2VuZGlmCit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="222087"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>