<?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>219418</bug_id>
          
          <creation_ts>2020-12-01 18:11:24 -0800</creation_ts>
          <short_desc>Fix crash with performance.measure() with negative duration</short_desc>
          <delta_ts>2020-12-03 15:33:38 -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>DOM</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="Julian Gonzalez">julian_a_gonzalez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1711234</commentid>
    <comment_count>0</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2020-12-01 18:11:24 -0800</bug_when>
    <thetext>If the `duration` field passed to performance.measure() is negative, we expect to throw an Exception.
However, due to a typo in PerformanceUserTiming::measure() we actually crash.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore                   0x000000014e15f23b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671)
1   com.apple.WebCore                   0x000000014e219500 std::experimental::fundamentals_v3::__expected_detail::__expected_terminate() + 48 (Expected.h:231)
2   com.apple.WebCore                   0x000000014fab6cd6 std::experimental::fundamentals_v3::expected&lt;double, WebCore::Exception&gt;::error() &amp; + 70 (Expected.h:497)
3   com.apple.WebCore                   0x000000014fab6c21 WebCore::ExceptionOr&lt;double&gt;::releaseException() + 17 (ExceptionOr.h:124)
4   com.apple.WebCore                   0x0000000152a640a9 WebCore::PerformanceUserTiming::measure(JSC::JSGlobalObject&amp;, WTF::String const&amp;, WebCore::PerformanceMeasureOptions const&amp;) + 2057 (PerformanceUserTiming.cpp:214)
5   com.apple.WebCore                   0x0000000152a7d28e WebCore::PerformanceUserTiming::measure(JSC::JSGlobalObject&amp;, WTF::String const&amp;, WTF::Optional&lt;WTF::Variant&lt;WTF::String, WebCore::PerformanceMeasureOptions&gt; &gt;&amp;&amp;, WTF::String const&amp;)::$_1::operator()(WebCore::PerformanceMeasureOptions const&amp;) const + 670 (PerformanceUserTiming.cpp:273)


&lt;rdar://problem/71238176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711236</commentid>
    <comment_count>1</comment_count>
      <attachid>415181</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2020-12-01 18:18:02 -0800</bug_when>
    <thetext>Created attachment 415181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711400</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-02 11:07:38 -0800</bug_when>
    <thetext>Committed r270355: &lt;https://trac.webkit.org/changeset/270355&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415181.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415181</attachid>
            <date>2020-12-01 18:18:02 -0800</date>
            <delta_ts>2020-12-02 11:07:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219418-20201201181801.patch</filename>
            <type>text/plain</type>
            <size>4910</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwMzEzMWQyOTE1YWE3
YmMwNTllYWQ1ZGNmNjZlOWJkODM2Yzg2Mi4uZGFkOWQwMmEyZDFkMGNiYjhkODRkNTMyNDA0YTVk
NGU2MGYxODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEyLTAxICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4
IGNyYXNoIHdpdGggcGVyZm9ybWFuY2UubWVhc3VyZSgpIHdpdGggbmVnYXRpdmUgZHVyYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTQxOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFBlcmZv
cm1hbmNlVXNlclRpbWluZzo6bWVhc3VyZSgpLCB0aGUgd3JvbmcgdmFyaWFibGUgaXMgdXNlZAor
ICAgICAgICB0byBsb29rIHVwIHRoZSBleGNlcHRpb24gdG8gcmV0dXJuIGlmIGFuIGludmFsaWQg
ZHVyYXRpb24KKyAgICAgICAgdmFsdWUgaXMgcHJvdmlkZWQuCisKKyAgICAgICAgVXBkYXRlZCB1
c2VyLXRpbWluZy1hcGlzIHRlc3QgdG8gY2F0Y2ggdGhpcyBjcmFzaC4KKworICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVXNlclRpbWluZzo6bWVhc3VyZSk6CisKIDIwMjAtMTEtMjAgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFzc2lnbiB0b3AvbGVmdCB0byBM
aW5lQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRp
bWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAK
aW5kZXggYzUyMTg5N2RmY2IzMGJiZjMwMmZkMGE1YWM2MzhiZGYyNzlmZmEwYi4uZWQ4ZGQ5MjM4
ZDMzNzNjMDE4MmIyZjMwOGVkYTAwMjdlNGFmYjkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIEV4Y2VwdGlv
bk9yPFJlZjxQZXJmb3JtYW5jZU1lYXN1cmU+PiBQZXJmb3JtYW5jZVVzZXJUaW1pbmc6Om1lYXN1
cmUoSlNDOjpKU0dsb2JhCiAgICAgICAgICAgICByZXR1cm4gc3RhcnQucmVsZWFzZUV4Y2VwdGlv
bigpOwogICAgICAgICBhdXRvIGR1cmF0aW9uID0gY29udmVydE1hcmtUb1RpbWVzdGFtcCgqbWVh
c3VyZU9wdGlvbnMuZHVyYXRpb24pOwogICAgICAgICBpZiAoZHVyYXRpb24uaGFzRXhjZXB0aW9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gc3RhcnQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAg
ICAgICAgcmV0dXJuIGR1cmF0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICAgICAgZW5kVGlt
ZSA9IHN0YXJ0LnJldHVyblZhbHVlKCkgKyBkdXJhdGlvbi5yZXR1cm5WYWx1ZSgpOwogICAgIH0g
ZWxzZQogICAgICAgICBlbmRUaW1lID0gbV9wZXJmb3JtYW5jZS5ub3coKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMGNl
ODVlZjM1MjFjNzllZDA5NTM3YmE0MzYyMGI3ZjYwNjY4ODIzLi41NzVkY2FhODA3OWE3MWYyZTBi
YmE4Y2ZlN2I5NzcxZGE0ZWYxNTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTItMDEg
IEp1bGlhbiBHb256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBGaXggY3Jhc2ggd2l0aCBwZXJmb3JtYW5jZS5tZWFzdXJlKCkgd2l0aCBuZWdhdGl2ZSBkdXJh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
NDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgdGVzdCB0byB2ZXJpZnkgdGhhdCBhbiBFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4KKyAgICAg
ICAgcGFzc2luZyBhIG5lZ2F0aXZlIGR1cmF0aW9uIHRvIHBlcmZvcm1hbmNlLm1lYXN1cmUoKSwK
KyAgICAgICAgaW5zdGVhZCBvZiBhIGNyYXNoIG9jY3VycmluZy4KKworICAgICAgICAqIHBlcmZv
cm1hbmNlLWFwaS9yZXNvdXJjZXMvdXNlci10aW1pbmctYXBpLmpzOgorICAgICAgICAqIHBlcmZv
cm1hbmNlLWFwaS91c2VyLXRpbWluZy1hcGlzLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0xMS0yMCAg
TGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFJl
YmFzZWxpbmUgYW5kIGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGVyZm9ybWFu
Y2UtYXBpL3Jlc291cmNlcy91c2VyLXRpbWluZy1hcGkuanMgYi9MYXlvdXRUZXN0cy9wZXJmb3Jt
YW5jZS1hcGkvcmVzb3VyY2VzL3VzZXItdGltaW5nLWFwaS5qcwppbmRleCBlMzZmODY0YWY2NTk5
MWI0ZGMxY2RkMzU2N2YxMGM5NzU4MTNjMjM0Li5lOGZlYmFhMmExMjRlNTkxNzJkMjY3M2IxYmVi
MjEzZGI1YjBmMjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvcmVz
b3VyY2VzL3VzZXItdGltaW5nLWFwaS5qcworKysgYi9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1h
cGkvcmVzb3VyY2VzL3VzZXItdGltaW5nLWFwaS5qcwpAQCAtMjMsNiArMjMsNyBAQCBzaG91bGRU
aHJvdyhgcGVyZm9ybWFuY2UubWFyaygpYCk7CiBzaG91bGROb3RUaHJvdyhgcGVyZm9ybWFuY2Uu
bWFyaygibWFya19uYW1lIilgKTsKIHNob3VsZFRocm93KGBwZXJmb3JtYW5jZS5tZWFzdXJlKClg
KTsKIHNob3VsZE5vdFRocm93KGBwZXJmb3JtYW5jZS5tZWFzdXJlKCJtZWFzdXJlX25hbWUiKWAp
Oworc2hvdWxkVGhyb3coYHBlcmZvcm1hbmNlLm1lYXN1cmUoIm1lYXN1cmVfbmFtZSIsIHsgc3Rh
cnQ6IDAsIGR1cmF0aW9uOiAtMSB9KWApOwogc2hvdWxkTm90VGhyb3coYHBlcmZvcm1hbmNlLmNs
ZWFyTWFya3MoKWApOwogc2hvdWxkTm90VGhyb3coYHBlcmZvcm1hbmNlLmNsZWFyTWFya3MoIm1h
cmtfbmFtZSIpYCk7CiBzaG91bGROb3RUaHJvdyhgcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcygp
YCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvdXNlci10aW1pbmct
YXBpcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvdXNlci10aW1p
bmctYXBpcy1leHBlY3RlZC50eHQKaW5kZXggMmQ3M2NkMTc5MWM3ODcxMGMzNjg2YTU1Zjc1NGU5
MDQ3YWEwZTM5ZC4uMWZhZWMxOWIwODQ2OTRjNGFjNGJiZDQwZTQ5NjIzMzYzYWM1YTAzYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGVyZm9ybWFuY2UtYXBpL3VzZXItdGltaW5nLWFwaXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BlcmZvcm1hbmNlLWFwaS91c2VyLXRpbWluZy1h
cGlzLWV4cGVjdGVkLnR4dApAQCAtMjAsNiArMjAsNyBAQCBQQVNTIHBlcmZvcm1hbmNlLm1hcmso
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mg
cGVyZm9ybWFuY2UubWFyaygibWFya19uYW1lIikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQ
QVNTIHBlcmZvcm1hbmNlLm1lYXN1cmUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1MgcGVyZm9ybWFuY2UubWVhc3VyZSgibWVhc3VyZV9uYW1l
IikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHBlcmZvcm1hbmNlLm1lYXN1cmUoIm1l
YXN1cmVfbmFtZSIsIHsgc3RhcnQ6IDAsIGR1cmF0aW9uOiAtMSB9KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgogUEFTUyBwZXJmb3JtYW5jZS5jbGVhck1hcmtzKCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIHBlcmZvcm1hbmNlLmNsZWFyTWFya3MoIm1hcmtf
bmFtZSIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBwZXJmb3JtYW5jZS5jbGVhck1l
YXN1cmVzKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCkBAIC00Myw2ICs0NCw3IEBAIFBBU1Mg
W1dvcmtlcl0gcGVyZm9ybWFuY2UubWFyaygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzCiBQQVNTIFtXb3JrZXJdIHBlcmZvcm1hbmNlLm1hcmsoIm1hcmtf
bmFtZSIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBbV29ya2VyXSBwZXJmb3JtYW5j
ZS5tZWFzdXJlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCiBQQVNTIFtXb3JrZXJdIHBlcmZvcm1hbmNlLm1lYXN1cmUoIm1lYXN1cmVfbmFtZSIpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBbV29ya2VyXSBwZXJmb3JtYW5jZS5tZWFzdXJl
KCJtZWFzdXJlX25hbWUiLCB7IHN0YXJ0OiAwLCBkdXJhdGlvbjogLTEgfSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgW1dvcmtlcl0gcGVyZm9ybWFuY2UuY2xl
YXJNYXJrcygpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBbV29ya2VyXSBwZXJmb3Jt
YW5jZS5jbGVhck1hcmtzKCJtYXJrX25hbWUiKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBB
U1MgW1dvcmtlcl0gcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcygpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>