<?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>184904</bug_id>
          
          <creation_ts>2018-04-23 18:29:46 -0700</creation_ts>
          <short_desc>dlopen the bundle&apos;s executable before calling -[NSBundle load] since that will also do a bunch of other things we don&apos;t need</short_desc>
          <delta_ts>2018-04-25 20:35:32 -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>WebKit 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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1417053</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-23 18:29:46 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417054</commentid>
    <comment_count>1</comment_count>
      <attachid>338627</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-23 18:35:12 -0700</bug_when>
    <thetext>Created attachment 338627
WIP

Seems to work at least with Safari. I&apos;m going to do some perf testing both for when it succeeds and when it fails. I want to make sure the second dlopen that NSBundle does inside [NSBundle load] when the dlsym fails is essentially a no-op.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417057</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-23 18:46:02 -0700</bug_when>
    <thetext>Attachment 338627 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:37:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:103:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:107:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:110:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 5 in 1 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417358</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-24 17:32:48 -0700</bug_when>
    <thetext>Doing this speeds up initializeWebProcess by ~60ms on my MBP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417363</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-24 17:44:17 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt; Doing this speeds up initializeWebProcess by ~60ms on my MBP.

Actually more around ~70ms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417368</commentid>
    <comment_count>5</comment_count>
      <attachid>338692</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-24 18:00:40 -0700</bug_when>
    <thetext>Created attachment 338692
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417369</commentid>
    <comment_count>6</comment_count>
      <attachid>338692</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-24 18:01:02 -0700</bug_when>
    <thetext>Comment on attachment 338692
patch

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

&gt; Source/WebKit/ChangeLog:19
&gt; +        This speeds up initializeWebProcess by ~70ms on my MBP.

This speeds up initializeWebProcess on my MBP by close to 2x.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417709</commentid>
    <comment_count>7</comment_count>
      <attachid>338692</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-04-25 13:09:01 -0700</bug_when>
    <thetext>Comment on attachment 338692
patch

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

r=me

&gt; Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:94
&gt; +    if (!dlopenHandle || !initializeFunction) {

I think it&apos;s better just to check !initializeFunction here and below, and to scope dlopenHandle to inside the if block.

Logically, we want to fall back if we didn&apos;t find the initialize function, regardless of why we didn&apos;t find it -- and if we did find it, we don&apos;t need to fall back and we don&apos;t care about other details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417717</commentid>
    <comment_count>8</comment_count>
      <attachid>338692</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-25 13:17:31 -0700</bug_when>
    <thetext>Comment on attachment 338692
patch

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

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:94
&gt;&gt; +    if (!dlopenHandle || !initializeFunction) {
&gt; 
&gt; I think it&apos;s better just to check !initializeFunction here and below, and to scope dlopenHandle to inside the if block.
&gt; 
&gt; Logically, we want to fall back if we didn&apos;t find the initialize function, regardless of why we didn&apos;t find it -- and if we did find it, we don&apos;t need to fall back and we don&apos;t care about other details.

Sounds good. The way I do it now just saves us from an extraneous dlsym. But that&apos;s probably ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417958</commentid>
    <comment_count>9</comment_count>
      <attachid>338850</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-25 19:49:11 -0700</bug_when>
    <thetext>Created attachment 338850
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417964</commentid>
    <comment_count>10</comment_count>
      <attachid>338850</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-25 20:34:04 -0700</bug_when>
    <thetext>Comment on attachment 338850
patch for landing

Clearing flags on attachment: 338850

Committed r231041: &lt;https://trac.webkit.org/changeset/231041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417965</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-25 20:34:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417966</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-25 20:35:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/39745942&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338627</attachid>
            <date>2018-04-23 18:35:12 -0700</date>
            <delta_ts>2018-04-24 18:00:40 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>2684</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQkocmV2aXNpb24gMjMwOTAyKQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1
bmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDE0IEBACiAjaW1wb3J0ICJX
S1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgorI2ltcG9ydCA8
Q29yZUZvdW5kYXRpb24vQ0ZVUkwuaD4KKyNpbXBvcnQgPGRsZmNuLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgogI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCA8d3RmL0RhdGFMb2cuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc2LDExICs3OSw2IEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGU6OmluaXRpYWxpemUoY29uc3QgV2UKICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmplY3Rl
ZEJ1bmRsZTo6bG9hZCBmYWlsZWQgLSBDb3VsZCBub3QgY3JlYXRlIHRoZSBidW5kbGUuXG4iKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAgICAgCi0gICAgaWYgKCFbbV9wbGF0
Zm9ybUJ1bmRsZSBsb2FkXSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIkluamVjdGVkQnVuZGxl
Ojpsb2FkIGZhaWxlZCAtIENvdWxkIG5vdCBsb2FkIHRoZSBleGVjdXRhYmxlIGZyb20gdGhlIGJ1
bmRsZS5cbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogCiAjaWYgV0tfQVBJX0VO
QUJMRUQKICAgICBpZiAocGFyYW1ldGVycy5idW5kbGVQYXJhbWV0ZXJEYXRhKSB7CkBAIC0xMDAs
NiArOTgsMjggQEAgYm9vbCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZShjb25zdCBXZQogICAg
ICAgICBtX2J1bmRsZVBhcmFtZXRlcnMgPSBhZG9wdE5TKFtbV0tXZWJQcm9jZXNzQnVuZGxlUGFy
YW1ldGVycyBhbGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmRpY3Rpb25hcnldKTsKICAgICB9CiAj
ZW5kaWYKKyAgICAKKyAgICBpZiAoUmV0YWluUHRyPENGVVJMUmVmPiBleGVjdXRhYmxlVVJMID0g
YWRvcHRDRihDRkJ1bmRsZUNvcHlFeGVjdXRhYmxlVVJMKFttX3BsYXRmb3JtQnVuZGxlIF9jZkJ1
bmRsZV0pKSkgeworICAgICAgICAvL2RhdGFMb2dMbigibV9wYXRoOiAiLCBtX3BhdGgpOworICAg
ICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhQYXRoU2l6ZSA9IDQwOTY7CisgICAgICAg
IGNoYXIgcGF0aFttYXhQYXRoU2l6ZV07CisgICAgICAgIGlmIChDRlVSTEdldEZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihleGVjdXRhYmxlVVJMLmdldCgpLCB0cnVlLCBiaXR3aXNlX2Nhc3Q8dWlu
dDhfdCo+KHBhdGgpLCBtYXhQYXRoU2l6ZSkpIHsKKyAgICAgICAgICAgIC8vZGF0YUxvZ0xuKCJS
ZXNvbHZlZCBiaW5hcnkgcGF0aDogIiwgcGF0aCk7CisgICAgICAgICAgICBpZiAodm9pZCogaGFu
ZGxlID0gZGxvcGVuKHBhdGgsIFJUTERfTEFaWSB8IFJUTERfR0xPQkFMIHwgUlRMRF9GSVJTVCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoV0tCdW5kbGVJbml0aWFsaXplRnVuY3Rpb25QdHIgaW5p
dGlhbGl6ZUZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxXS0J1bmRsZUluaXRpYWxpemVGdW5j
dGlvblB0cj4oZGxzeW0oaGFuZGxlLCAiV0tCdW5kbGVJbml0aWFsaXplIikpKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vZGF0YUxvZ0xuKCJDYWxsZWQgaW5paXRpYWxpemUgZnVuY3Rpb24iKTsK
KyAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZUZ1bmN0aW9uKHRvQVBJKHRoaXMpLCB0b0FQ
SShpbml0aWFsaXphdGlvblVzZXJEYXRhKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
fQorICAgICAgICAKKyAgICBpZiAoIVttX3BsYXRmb3JtQnVuZGxlIGxvYWRdKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiSW5qZWN0ZWRCdW5kbGU6OmxvYWQgZmFpbGVkIC0gQ291bGQgbm90IGxv
YWQgdGhlIGV4ZWN1dGFibGUgZnJvbSB0aGUgYnVuZGxlLlxuIik7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CiAKICAgICAvLyBGaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlIGJ1bmRsZSBo
YXMgYSBXS0J1bmRsZUluaXRpYWxpemUgZnVuY3Rpb24uCiAgICAgV0tCdW5kbGVJbml0aWFsaXpl
RnVuY3Rpb25QdHIgaW5pdGlhbGl6ZUZ1bmN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDxXS0J1bmRs
ZUluaXRpYWxpemVGdW5jdGlvblB0cj4oQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JOYW1l
KFttX3BsYXRmb3JtQnVuZGxlIF9jZkJ1bmRsZV0sIENGU1RSKCJXS0J1bmRsZUluaXRpYWxpemUi
KSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338692</attachid>
            <date>2018-04-24 18:00:40 -0700</date>
            <delta_ts>2018-04-25 19:49:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>4304</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzA5NzcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE4LTA0LTI0ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIGRsb3BlbiB0aGUgYnVuZGxlJ3MgZXhl
Y3V0YWJsZSBiZWZvcmUgY2FsbGluZyAtW05TQnVuZGxlIGxvYWRdIHNpbmNlIHRoYXQgd2lsbCBh
bHNvIGRvIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzIHdlIGRvbid0IG5lZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDkwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgYW4gTlNCdW5kbGUg
ZG9lcyBhIGxvdCBvZiB3b3JrIHRvIGZpbmQgdGhlIHByaW5jaXBhbCBjbGFzcyBpbnNpZGUKKyAg
ICAgICAgdGhlIGJ1bmRsZS4gVGhpcyBtZWFucyBpdCB3YWxrcyBhbGwgdGhlIG9iamVjdGl2ZSBD
IGNsYXNzIG5hbWVzIGxvYWRlZAorICAgICAgICBieSB0aGUgYnVuZGxlLiBEb2luZyB0aGlzIGlz
ICpyZWFsbHkqIGV4cGVuc2l2ZS4KKyAgICAgICAgCisgICAgICAgIFNvbWUgdXNlcnMgb2YgdGhl
IGluamVjdGVkIGJ1bmRsZSBkZWZpbmUgYSBXS0J1bmRsZUluaXRpYWxpemUgZnVuY3Rpb24uCisg
ICAgICAgIEluIHN1Y2ggYSBjYXNlLCB3ZSBkb24ndCBuZWVkIHRoZSBwcmluY2lwYWwgY2xhc3Ms
IHNvIHdlIGNhbiBza2lwIGxvYWRpbmcKKyAgICAgICAgdGhlIE5TQnVuZGxlLiBOb3csIGJlZm9y
ZSB3ZSBsb2FkIHRoZSBidW5kbGUsIHdlIGRsb3BlbiBhbmQgZGxzeW0gbG9va2luZworICAgICAg
ICBmb3IgdGhlIFdLQnVuZGxlSW5pdGlhbGl6ZSBmdW5jdGlvbi4gSWYgd2UgZmluZCBpdCwgd2Ug
c2tpcCBsb2FkaW5nCisgICAgICAgIHRoZSBidW5kbGUuIElmIHdlIGRvbid0IGZpbmQgdGhlIFdL
QnVuZGxlSW5pdGlhbGl6ZSBmdW5jdGlvbiwgd2UgZmFsbAorICAgICAgICBiYWNrIHRvIGxvYWRp
bmcgdGhlIGJ1bmRsZSBhbmQgZmluZGluZyB0aGUgcHJpbmNpcGFsIGNsYXNzLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBzcGVlZHMgdXAgaW5pdGlhbGl6ZVdlYlByb2Nlc3MgYnkgfjcwbXMgb24g
bXkgTUJQLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFs
aXplKToKKwogMjAxOC0wNC0yNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBLZWVwIGFyb3VuZCBhIHByZS13YXJtZWQgcHJvY2VzcyB3aGVuIGRvaW5nIHByb2Nl
c3Mgc3dhcCBvbiBuYXZpZ2F0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMu
bW0JKHJldmlzaW9uIDIzMDk3NykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDcg
KzMzLDkgQEAKICNpbXBvcnQgIldLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMuaCIKICNpbXBv
cnQgIldLV2ViUHJvY2Vzc1BsdWdJbkludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9DRlVSTC5oPgogI2lt
cG9ydCA8Rm91bmRhdGlvbi9OU0J1bmRsZS5oPgorI2ltcG9ydCA8ZGxmY24uaD4KICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmg+CiAjaW1wb3J0IDxzdGRpby5oPgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNzYsMTAgKzc4LDI0IEBAIGJvb2wgSW5qZWN0
ZWRCdW5kbGU6OmluaXRpYWxpemUoY29uc3QgV2UKICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmpl
Y3RlZEJ1bmRsZTo6bG9hZCBmYWlsZWQgLSBDb3VsZCBub3QgY3JlYXRlIHRoZSBidW5kbGUuXG4i
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKworICAgIC8vIFdlIGRvbid0IGhvbGQg
b250byB0aGlzIGhhbmRsZSBhbnl3aGVyZSBtb3JlIHBlcm1hbmVudCBzaW5jZSB3ZSBuZXZlciBk
bGNvc2UuCisgICAgdm9pZCogZGxvcGVuSGFuZGxlID0gbnVsbHB0cjsKKyAgICBXS0J1bmRsZUlu
aXRpYWxpemVGdW5jdGlvblB0ciBpbml0aWFsaXplRnVuY3Rpb24gPSBudWxscHRyOworICAgIGlm
IChSZXRhaW5QdHI8Q0ZVUkxSZWY+IGV4ZWN1dGFibGVVUkwgPSBhZG9wdENGKENGQnVuZGxlQ29w
eUV4ZWN1dGFibGVVUkwoW21fcGxhdGZvcm1CdW5kbGUgX2NmQnVuZGxlXSkpKSB7CisgICAgICAg
IHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heFBhdGhTaXplID0gNDA5NjsKKyAgICAgICAgY2hh
ciBwYXRoVG9FeGVjdXRhYmxlW21heFBhdGhTaXplXTsKKyAgICAgICAgaWYgKENGVVJMR2V0Rmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVVUkwuZ2V0KCksIHRydWUsIGJpdHdpc2Vf
Y2FzdDx1aW50OF90Kj4ocGF0aFRvRXhlY3V0YWJsZSksIG1heFBhdGhTaXplKSkgeworICAgICAg
ICAgICAgZGxvcGVuSGFuZGxlID0gZGxvcGVuKHBhdGhUb0V4ZWN1dGFibGUsIFJUTERfTEFaWSB8
IFJUTERfR0xPQkFMIHwgUlRMRF9GSVJTVCk7CisgICAgICAgICAgICBpbml0aWFsaXplRnVuY3Rp
b24gPSBiaXR3aXNlX2Nhc3Q8V0tCdW5kbGVJbml0aWFsaXplRnVuY3Rpb25QdHI+KGRsc3ltKGRs
b3BlbkhhbmRsZSwgIldLQnVuZGxlSW5pdGlhbGl6ZSIpKTsKKyAgICAgICAgfQorICAgIH0KICAg
ICAgICAgCi0gICAgaWYgKCFbbV9wbGF0Zm9ybUJ1bmRsZSBsb2FkXSkgewotICAgICAgICBXVEZM
b2dBbHdheXMoIkluamVjdGVkQnVuZGxlOjpsb2FkIGZhaWxlZCAtIENvdWxkIG5vdCBsb2FkIHRo
ZSBleGVjdXRhYmxlIGZyb20gdGhlIGJ1bmRsZS5cbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkbG9wZW5IYW5kbGUgfHwgIWluaXRpYWxpemVGdW5jdGlvbikgeworICAgICAg
ICBpZiAoIVttX3BsYXRmb3JtQnVuZGxlIGxvYWRdKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIkluamVjdGVkQnVuZGxlOjpsb2FkIGZhaWxlZCAtIENvdWxkIG5vdCBsb2FkIHRoZSBleGVj
dXRhYmxlIGZyb20gdGhlIGJ1bmRsZS5cbiIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CiAgICAgfQogCiAjaWYgV0tfQVBJX0VOQUJMRUQKQEAgLTEwMCw5ICsxMTYsMTEg
QEAgYm9vbCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZShjb25zdCBXZQogICAgICAgICBtX2J1
bmRsZVBhcmFtZXRlcnMgPSBhZG9wdE5TKFtbV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycyBh
bGxvY10gaW5pdFdpdGhEaWN0aW9uYXJ5OmRpY3Rpb25hcnldKTsKICAgICB9CiAjZW5kaWYKKyAg
ICAKKyAgICBpZiAoIWRsb3BlbkhhbmRsZSkKKyAgICAgICAgaW5pdGlhbGl6ZUZ1bmN0aW9uID0g
Yml0d2lzZV9jYXN0PFdLQnVuZGxlSW5pdGlhbGl6ZUZ1bmN0aW9uUHRyPihDRkJ1bmRsZUdldEZ1
bmN0aW9uUG9pbnRlckZvck5hbWUoW21fcGxhdGZvcm1CdW5kbGUgX2NmQnVuZGxlXSwgQ0ZTVFIo
IldLQnVuZGxlSW5pdGlhbGl6ZSIpKSk7CiAKICAgICAvLyBGaXJzdCBjaGVjayB0byBzZWUgaWYg
dGhlIGJ1bmRsZSBoYXMgYSBXS0J1bmRsZUluaXRpYWxpemUgZnVuY3Rpb24uCi0gICAgV0tCdW5k
bGVJbml0aWFsaXplRnVuY3Rpb25QdHIgaW5pdGlhbGl6ZUZ1bmN0aW9uID0gcmVpbnRlcnByZXRf
Y2FzdDxXS0J1bmRsZUluaXRpYWxpemVGdW5jdGlvblB0cj4oQ0ZCdW5kbGVHZXRGdW5jdGlvblBv
aW50ZXJGb3JOYW1lKFttX3BsYXRmb3JtQnVuZGxlIF9jZkJ1bmRsZV0sIENGU1RSKCJXS0J1bmRs
ZUluaXRpYWxpemUiKSkpOwogICAgIGlmIChpbml0aWFsaXplRnVuY3Rpb24pIHsKICAgICAgICAg
aW5pdGlhbGl6ZUZ1bmN0aW9uKHRvQVBJKHRoaXMpLCB0b0FQSShpbml0aWFsaXphdGlvblVzZXJE
YXRhKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwo=
</data>
<flag name="review"
          id="356962"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338850</attachid>
            <date>2018-04-25 19:49:11 -0700</date>
            <delta_ts>2018-04-25 20:34:04 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>4287</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzEwMzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE4LTA0LTI1ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIGRsb3BlbiB0aGUgYnVuZGxlJ3MgZXhl
Y3V0YWJsZSBiZWZvcmUgY2FsbGluZyAtW05TQnVuZGxlIGxvYWRdIHNpbmNlIHRoYXQgd2lsbCBh
bHNvIGRvIGEgYnVuY2ggb2Ygb3RoZXIgdGhpbmdzIHdlIGRvbid0IG5lZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDkwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIExvYWRpbmcgYW4gTlNCdW5kbGUg
ZG9lcyBhIGxvdCBvZiB3b3JrIHRvIGZpbmQgdGhlIHByaW5jaXBhbCBjbGFzcyBpbnNpZGUKKyAg
ICAgICAgdGhlIGJ1bmRsZS4gVGhpcyBtZWFucyBpdCB3YWxrcyBhbGwgdGhlIG9iamVjdGl2ZSBD
IGNsYXNzIG5hbWVzIGxvYWRlZAorICAgICAgICBieSB0aGUgYnVuZGxlLiBEb2luZyB0aGlzIGlz
ICpyZWFsbHkqIGV4cGVuc2l2ZS4KKyAgICAgICAgCisgICAgICAgIFNvbWUgdXNlcnMgb2YgdGhl
IGluamVjdGVkIGJ1bmRsZSBkZWZpbmUgYSBXS0J1bmRsZUluaXRpYWxpemUgZnVuY3Rpb24uCisg
ICAgICAgIEluIHN1Y2ggYSBjYXNlLCB3ZSBkb24ndCBuZWVkIHRoZSBwcmluY2lwYWwgY2xhc3Ms
IHNvIHdlIGNhbiBza2lwIGxvYWRpbmcKKyAgICAgICAgdGhlIE5TQnVuZGxlLiBOb3csIGJlZm9y
ZSB3ZSBsb2FkIHRoZSBidW5kbGUsIHdlIGRsb3BlbiBhbmQgZGxzeW0gbG9va2luZworICAgICAg
ICBmb3IgdGhlIFdLQnVuZGxlSW5pdGlhbGl6ZSBmdW5jdGlvbi4gSWYgd2UgZmluZCBpdCwgd2Ug
c2tpcCBsb2FkaW5nCisgICAgICAgIHRoZSBidW5kbGUuIElmIHdlIGRvbid0IGZpbmQgdGhlIFdL
QnVuZGxlSW5pdGlhbGl6ZSBmdW5jdGlvbiwgd2UgZmFsbAorICAgICAgICBiYWNrIHRvIGxvYWRp
bmcgdGhlIGJ1bmRsZSBhbmQgZmluZGluZyB0aGUgcHJpbmNpcGFsIGNsYXNzLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBzcGVlZHMgdXAgaW5pdGlhbGl6ZVdlYlByb2Nlc3MgYnkgfjcwbXMgb24g
bXkgTUJQLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW06CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjppbml0aWFs
aXplKToKKwogMjAxOC0wNC0yNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBQU09OOiBEb24ndCBjcmVhdGUgYSBuZXcgcHJvY2VzcyB3aGVuIG5hdmlnYXRpbmcg
dG8gYSBibG9iIFVSTCwgZGF0YSBVUkwsIGFuZCBhYm91dDpibGFuawpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tCShyZXZpc2lvbiAyMzEwMzcpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBACiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NCdW5kbGVQ
YXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgogI2lt
cG9ydCAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2ltcG9ydCA8Q29yZUZvdW5k
YXRpb24vQ0ZVUkwuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KKyNpbXBvcnQg
PGRsZmNuLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgog
I2ltcG9ydCA8c3RkaW8uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTc2LDEwICs3
OCwyMyBAQCBib29sIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKGNvbnN0IFdlCiAgICAgICAg
IFdURkxvZ0Fsd2F5cygiSW5qZWN0ZWRCdW5kbGU6OmxvYWQgZmFpbGVkIC0gQ291bGQgbm90IGNy
ZWF0ZSB0aGUgYnVuZGxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKKyAg
ICBXS0J1bmRsZUluaXRpYWxpemVGdW5jdGlvblB0ciBpbml0aWFsaXplRnVuY3Rpb24gPSBudWxs
cHRyOworICAgIGlmIChSZXRhaW5QdHI8Q0ZVUkxSZWY+IGV4ZWN1dGFibGVVUkwgPSBhZG9wdENG
KENGQnVuZGxlQ29weUV4ZWN1dGFibGVVUkwoW21fcGxhdGZvcm1CdW5kbGUgX2NmQnVuZGxlXSkp
KSB7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heFBhdGhTaXplID0gNDA5NjsK
KyAgICAgICAgY2hhciBwYXRoVG9FeGVjdXRhYmxlW21heFBhdGhTaXplXTsKKyAgICAgICAgaWYg
KENGVVJMR2V0RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVVUkwuZ2V0KCksIHRy
dWUsIGJpdHdpc2VfY2FzdDx1aW50OF90Kj4ocGF0aFRvRXhlY3V0YWJsZSksIG1heFBhdGhTaXpl
KSkgeworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaG9sZCBvbnRvIHRoaXMgaGFuZGxlIGFueXdo
ZXJlIG1vcmUgcGVybWFuZW50IHNpbmNlIHdlIG5ldmVyIGRsY29zZS4KKyAgICAgICAgICAgIGlm
ICh2b2lkKiBoYW5kbGUgPSBkbG9wZW4ocGF0aFRvRXhlY3V0YWJsZSwgUlRMRF9MQVpZIHwgUlRM
RF9HTE9CQUwgfCBSVExEX0ZJUlNUKSkKKyAgICAgICAgICAgICAgICBpbml0aWFsaXplRnVuY3Rp
b24gPSBiaXR3aXNlX2Nhc3Q8V0tCdW5kbGVJbml0aWFsaXplRnVuY3Rpb25QdHI+KGRsc3ltKGhh
bmRsZSwgIldLQnVuZGxlSW5pdGlhbGl6ZSIpKTsKKyAgICAgICAgfQorICAgIH0KICAgICAgICAg
Ci0gICAgaWYgKCFbbV9wbGF0Zm9ybUJ1bmRsZSBsb2FkXSkgewotICAgICAgICBXVEZMb2dBbHdh
eXMoIkluamVjdGVkQnVuZGxlOjpsb2FkIGZhaWxlZCAtIENvdWxkIG5vdCBsb2FkIHRoZSBleGVj
dXRhYmxlIGZyb20gdGhlIGJ1bmRsZS5cbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFpbml0aWFsaXplRnVuY3Rpb24pIHsKKyAgICAgICAgaWYgKCFbbV9wbGF0Zm9ybUJ1bmRs
ZSBsb2FkXSkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJJbmplY3RlZEJ1bmRsZTo6bG9h
ZCBmYWlsZWQgLSBDb3VsZCBub3QgbG9hZCB0aGUgZXhlY3V0YWJsZSBmcm9tIHRoZSBidW5kbGUu
XG4iKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgIH0KIAogI2lm
IFdLX0FQSV9FTkFCTEVECkBAIC0xMDAsOSArMTE1LDExIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGU6
OmluaXRpYWxpemUoY29uc3QgV2UKICAgICAgICAgbV9idW5kbGVQYXJhbWV0ZXJzID0gYWRvcHRO
UyhbW1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMgYWxsb2NdIGluaXRXaXRoRGljdGlvbmFy
eTpkaWN0aW9uYXJ5XSk7CiAgICAgfQogI2VuZGlmCisgICAgCisgICAgaWYgKCFpbml0aWFsaXpl
RnVuY3Rpb24pCisgICAgICAgIGluaXRpYWxpemVGdW5jdGlvbiA9IGJpdHdpc2VfY2FzdDxXS0J1
bmRsZUluaXRpYWxpemVGdW5jdGlvblB0cj4oQ0ZCdW5kbGVHZXRGdW5jdGlvblBvaW50ZXJGb3JO
YW1lKFttX3BsYXRmb3JtQnVuZGxlIF9jZkJ1bmRsZV0sIENGU1RSKCJXS0J1bmRsZUluaXRpYWxp
emUiKSkpOwogCiAgICAgLy8gRmlyc3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBidW5kbGUgaGFzIGEg
V0tCdW5kbGVJbml0aWFsaXplIGZ1bmN0aW9uLgotICAgIFdLQnVuZGxlSW5pdGlhbGl6ZUZ1bmN0
aW9uUHRyIGluaXRpYWxpemVGdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8V0tCdW5kbGVJbml0
aWFsaXplRnVuY3Rpb25QdHI+KENGQnVuZGxlR2V0RnVuY3Rpb25Qb2ludGVyRm9yTmFtZShbbV9w
bGF0Zm9ybUJ1bmRsZSBfY2ZCdW5kbGVdLCBDRlNUUigiV0tCdW5kbGVJbml0aWFsaXplIikpKTsK
ICAgICBpZiAoaW5pdGlhbGl6ZUZ1bmN0aW9uKSB7CiAgICAgICAgIGluaXRpYWxpemVGdW5jdGlv
bih0b0FQSSh0aGlzKSwgdG9BUEkoaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>