<?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>132715</bug_id>
          
          <creation_ts>2014-05-08 16:34:31 -0700</creation_ts>
          <short_desc>Multiple (stacked) cues when shuttling through video while playing closed captions</short_desc>
          <delta_ts>2014-11-17 13:54:37 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=138806</see_also>
          <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>
          
          <blocked>133138</blocked>
    
    <blocked>133365</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007806</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 16:34:31 -0700</bug_when>
    <thetext>A bug in the cue comparison logic caused us to display the same cue multiple times. This had two causes:

1. Recent WebVTT work introduced a bug where any non-VTT cue was considered to be unequal, causing many in-band tracks to fail this test.
2. Small variations in cue start time (esp. on streaming video) would cause the track comparison logic to fail.

Either of these problems would cause an additional cue to be displayed each time a section of video was played.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007807</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 16:35:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/16795782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007811</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 16:38:30 -0700</bug_when>
    <thetext>*** Bug 123498 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007814</commentid>
    <comment_count>3</comment_count>
      <attachid>231110</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 16:39:58 -0700</bug_when>
    <thetext>Created attachment 231110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007850</commentid>
    <comment_count>4</comment_count>
      <attachid>231110</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-08 18:15:15 -0700</bug_when>
    <thetext>Comment on attachment 231110
Patch

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

&gt; Source/WebCore/html/track/VTTCue.cpp:1071
&gt;      if (cue.cueType() != WebVTT)
&gt; -        return false;
&gt; +        return true;

I don&apos;t understand this. How can a a non-WebVTT cue be equal?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007871</commentid>
    <comment_count>5</comment_count>
      <attachid>231110</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 20:15:26 -0700</bug_when>
    <thetext>Comment on attachment 231110
Patch

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

&gt;&gt; Source/WebCore/html/track/VTTCue.cpp:1071
&gt;&gt; +        return true;
&gt; 
&gt; I don&apos;t understand this. How can a a non-WebVTT cue be equal?

This code is called at the end of TextTrackCueGeneric::isEqual. We are not confirming equality of cueTypes (that happens in the base TextTrack::isEqual call). This is just a short circuit so that we don&apos;t run through the VTT-specific tests below.

Alternative fixes would be:
1. Instead of short-circuiting, just use this conditional to decide whether to cast to VTTCue and do specific tests in that stanza.
2. Modify TextTrackCueGeneric::isEqual so that id bypasses VTTCue entirely.

I don&apos;t like #1 because we tend to prefer short-circuit in our style.
I am not crazy about #2 because we do call VTTCue parent class methods in other TextTrackCueGeneric calls. Someone might notice the discrepancy and try to &quot;fix&quot; it at some point in the future, breaking things again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007873</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 20:21:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 231110 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231110&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/track/VTTCue.cpp:1071
&gt; &gt;&gt; +        return true;
&gt; &gt; 
&gt; &gt; I don&apos;t understand this. How can a a non-WebVTT cue be equal?
&gt; 
&gt; This code is called at the end of TextTrackCueGeneric::isEqual. We are not confirming equality of cueTypes (that happens in the base TextTrack::isEqual call). This is just a short circuit so that we don&apos;t run through the VTT-specific tests below.

This whole bug makes me wonder if TextTrackCueGeneric really should be a subclass of VTTCue. Maybe TTCGeneric and VTTCue should be siblings of some common ancestor.

At any rate, any of the three suggestions will work and I&apos;m happy to proceed with whichever you think is the most clear.

Maybe I should bypass the VTTCue::isEqual in TextTrackCueGeneric::isEqual and have a comment there explaining why we don&apos;t use the parent isEqual implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007874</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 20:21:24 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 231110 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231110&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/track/VTTCue.cpp:1071
&gt; &gt;&gt; +        return true;
&gt; &gt; 
&gt; &gt; I don&apos;t understand this. How can a a non-WebVTT cue be equal?
&gt; 
&gt; This code is called at the end of TextTrackCueGeneric::isEqual. We are not confirming equality of cueTypes (that happens in the base TextTrack::isEqual call). This is just a short circuit so that we don&apos;t run through the VTT-specific tests below.

This whole bug makes me wonder if TextTrackCueGeneric really should be a subclass of VTTCue. Maybe TTCGeneric and VTTCue should be siblings of some common ancestor.

At any rate, any of the three suggestions will work and I&apos;m happy to proceed with whichever you think is the most clear.

Maybe I should bypass the VTTCue::isEqual in TextTrackCueGeneric::isEqual and have a comment there explaining why we don&apos;t use the parent isEqual implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007877</commentid>
    <comment_count>8</comment_count>
      <attachid>231126</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-05-08 20:29:04 -0700</bug_when>
    <thetext>Created attachment 231126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007880</commentid>
    <comment_count>9</comment_count>
      <attachid>231126</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-05-08 21:01:40 -0700</bug_when>
    <thetext>Comment on attachment 231126
Patch

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

&gt; Source/WebCore/html/track/TextTrackCueGeneric.cpp:159
&gt; +    // Do not call the parent class isEqual here, because we are not cueType() == VTTCue,
&gt; +    // and will fail that equality test.
&gt;      if (!TextTrackCue::isEqual(cue, match))
&gt;          return false;

Thanks for the explanation. I think this is the best solution for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007890</commentid>
    <comment_count>10</comment_count>
      <attachid>231126</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 22:21:28 -0700</bug_when>
    <thetext>Comment on attachment 231126
Patch

Clearing flags on attachment: 231126

Committed r168519: &lt;http://trac.webkit.org/changeset/168519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007891</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-08 22:21:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231110</attachid>
            <date>2014-05-08 16:39:58 -0700</date>
            <delta_ts>2014-05-08 20:29:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132715-20140508163935.patch</filename>
            <type>text/plain</type>
            <size>5848</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA1LTA4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE11bHRpcGxlIChzdGFja2Vk
KSBjdWVzIHdoZW4gc2h1dHRsaW5nIHRocm91Z2ggdmlkZW8gd2hpbGUgcGxheWluZyBjbG9zZWQg
Y2FwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMjcxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3OTU3ODI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL3RyYWNrL3Ry
YWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwKKworICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGFzQ3VlKTogUmV2
aXNlIHRvIHVzZSBhIHJlbGF4ZWQgdGltZSBlcXVhbGl0eS4KKyAgICAgICAgKiBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmlzRXF1
YWwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aGFzRXF1aXZhbGVu
dFN0YXJ0VGltZSk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnN0YXJ0VGltZVZhcmlhbmNlKTogQWRk
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAgICAg
ICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VlRUQ3VlOjppc0Vx
dWFsKTogQ29ycmVjdCBjb21wYXJpc29uIGVycm9yIHRoYXQgY2F1c2VkIHRoaXMgdGVzdAorICAg
ICAgICB0byBhbHdheXMgZmFpbCBmb3Igbm9uLVZUVCBjdWVzLgorCiAyMDE0LTA1LTA4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0
cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1yZWRpcmVjdC54bWwgZmFpbHMgd2l0
aCBOZXR3b3JrUHJvY2VzcwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmNwcAkocmV2aXNpb24gMTY4NDc5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDcsNyArNTA3LDcgQEAgYm9vbCBUZXh0VHJh
Y2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUqIGN1ZQogCiAgICAgICAgICAgICAvLyBJZiB0aGVyZSBp
cyBtb3JlIHRoYW4gb25lIGN1ZSB3aXRoIHRoZSBzYW1lIHN0YXJ0IHRpbWUsIGJhY2sgdXAgdG8g
Zmlyc3Qgb25lIHNvIHdlCiAgICAgICAgICAgICAvLyBjb25zaWRlciBhbGwgb2YgdGhlbS4KLSAg
ICAgICAgICAgIHdoaWxlIChzZWFyY2hTdGFydCA+PSAyICYmIGN1ZS0+c3RhcnRUaW1lKCkgPT0g
bV9jdWVzLT5pdGVtKHNlYXJjaFN0YXJ0IC0gMiktPnN0YXJ0VGltZSgpKQorICAgICAgICAgICAg
d2hpbGUgKHNlYXJjaFN0YXJ0ID49IDIgJiYgY3VlLT5oYXNFcXVpdmFsZW50U3RhcnRUaW1lKCpt
X2N1ZXMtPml0ZW0oc2VhcmNoU3RhcnQgLSAyKSkpCiAgICAgICAgICAgICAgICAgLS1zZWFyY2hT
dGFydDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYm9vbCBmaXJzdENvbXBhcmUgPSB0cnVl
OwpAQCAtNTE5LDcgKzUxOSw3IEBAIGJvb2wgVGV4dFRyYWNrOjpoYXNDdWUoVGV4dFRyYWNrQ3Vl
KiBjdWUKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAg
ICAgZXhpc3RpbmdDdWUgPSBtX2N1ZXMtPml0ZW0oc2VhcmNoU3RhcnQgLSAxKTsKLSAgICAgICAg
ICAgICAgICBpZiAoIWV4aXN0aW5nQ3VlIHx8IGN1ZS0+c3RhcnRUaW1lKCkgPiBleGlzdGluZ0N1
ZS0+c3RhcnRUaW1lKCkpCisgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ0N1ZSB8fCBjdWUt
PnN0YXJ0VGltZSgpID4gKGV4aXN0aW5nQ3VlLT5zdGFydFRpbWUoKSArIGV4aXN0aW5nQ3VlLT5z
dGFydFRpbWVWYXJpYW5jZSgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ0N1ZS0+aXNFcXVhbCgqY3VlLCBtYXRjaCkp
CkBAIC01MzEsNyArNTMxLDcgQEAgYm9vbCBUZXh0VHJhY2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUq
IGN1ZQogICAgICAgICAKICAgICAgICAgc2l6ZV90IGluZGV4ID0gKHNlYXJjaFN0YXJ0ICsgc2Vh
cmNoRW5kKSAvIDI7CiAgICAgICAgIGV4aXN0aW5nQ3VlID0gbV9jdWVzLT5pdGVtKGluZGV4KTsK
LSAgICAgICAgaWYgKGN1ZS0+c3RhcnRUaW1lKCkgPCBleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkg
fHwgKG1hdGNoICE9IFRleHRUcmFja0N1ZTo6SWdub3JlRHVyYXRpb24gJiYgY3VlLT5zdGFydFRp
bWUoKSA9PSBleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkgJiYgY3VlLT5lbmRUaW1lKCkgPiBleGlz
dGluZ0N1ZS0+ZW5kVGltZSgpKSkKKyAgICAgICAgaWYgKChjdWUtPnN0YXJ0VGltZSgpICsgZXhp
c3RpbmdDdWUtPnN0YXJ0VGltZVZhcmlhbmNlKCkpIDwgZXhpc3RpbmdDdWUtPnN0YXJ0VGltZSgp
IHx8IChtYXRjaCAhPSBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uICYmIGN1ZS0+aGFzRXF1
aXZhbGVudFN0YXJ0VGltZSgqZXhpc3RpbmdDdWUpICYmIGN1ZS0+ZW5kVGltZSgpID4gZXhpc3Rp
bmdDdWUtPmVuZFRpbWUoKSkpCiAgICAgICAgICAgICBzZWFyY2hFbmQgPSBpbmRleDsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgc2VhcmNoU3RhcnQgPSBpbmRleCArIDE7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCShyZXZpc2lvbiAxNjg0Nzkp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwOSw3ICsyMDksNyBAQCBib29sIFRleHRUcmFja0N1ZTo6aXNFcXVhbChjb25z
dCBUZXh0VHJhCiAKICAgICBpZiAobWF0Y2ggIT0gSWdub3JlRHVyYXRpb24gJiYgZW5kVGltZSgp
ICE9IGN1ZS5lbmRUaW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc3RhcnRU
aW1lKCkgIT0gY3VlLnN0YXJ0VGltZSgpKQorICAgIGlmICghaGFzRXF1aXZhbGVudFN0YXJ0VGlt
ZShjdWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGlkKCkgIT0gY3VlLmlkKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw2ICsyMTcsMTEgQEAgYm9vbCBUZXh0VHJh
Y2tDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYQogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IFRleHRUcmFja0N1ZTo6aGFzRXF1aXZhbGVudFN0YXJ0VGltZShjb25zdCBUZXh0VHJhY2tDdWUm
IGN1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RkOjphYnMoc3RkOjphYnMoc3RhcnRUaW1lKCkp
IC0gc3RkOjphYnMoY3VlLnN0YXJ0VGltZSgpKSkgPCBzdGFydFRpbWVWYXJpYW5jZSgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCShyZXZpc2lvbiAxNjg0NzkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC04Myw2ICs4Myw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc09yZGVy
ZWRCZWZvcmUoY29uc3QgVGV4dFRyYWNrQ3VlKikgY29uc3Q7CiAKKyAgICBib29sIGhhc0VxdWl2
YWxlbnRTdGFydFRpbWUoY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisgICAgdmlydHVhbCBk
b3VibGUgc3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdCB7IHJldHVybiAwOyB9CisKICAgICBlbnVt
IEN1ZVR5cGUgewogICAgICAgICBEYXRhLAogICAgICAgICBHZW5lcmljLApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgJKHJldmlzaW9u
IDE2ODQ3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNPcmRlcmVkQmVmb3JlKGNvbnN0IFRleHRUcmFja0N1ZSopIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMC4yNTsgfQogCiAgICAgVGV4dFRyYWNrQ3VlR2VuZXJpYyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBjb25zdCBT
dHJpbmcmKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAJKHJl
dmlzaW9uIDE2ODQ3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA2OCw3ICsxMDY4LDcgQEAgYm9vbCBWVFRDdWU6OmlzRXF1YWwo
Y29uc3QgVGV4dFRyYWNrQ3VlJgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY3Vl
LmN1ZVR5cGUoKSAhPSBXZWJWVFQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICBjb25zdCBWVFRDdWUqIHZ0dEN1ZSA9IHRvVlRUQ3VlKCZjdWUpOwog
ICAgIGlmICh0ZXh0KCkgIT0gdnR0Q3VlLT50ZXh0KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231126</attachid>
            <date>2014-05-08 20:29:04 -0700</date>
            <delta_ts>2014-05-08 22:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132715-20140508202842.patch</filename>
            <type>text/plain</type>
            <size>6363</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODUwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA1LTA4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE11bHRpcGxlIChzdGFja2Vk
KSBjdWVzIHdoZW4gc2h1dHRsaW5nIHRocm91Z2ggdmlkZW8gd2hpbGUgcGxheWluZyBjbG9zZWQg
Y2FwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMjcxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3OTU3ODI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL3RyYWNrL3Ry
YWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwKKworICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6aGFzQ3VlKTogUmV2
aXNlIHRvIHVzZSBhIHJlbGF4ZWQgdGltZSBlcXVhbGl0eS4KKyAgICAgICAgKiBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmlzRXF1
YWwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aGFzRXF1aXZhbGVu
dFN0YXJ0VGltZSk6IEFkZGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnN0YXJ0VGltZVZhcmlhbmNlKTogQWRk
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmg6CisgICAgICAg
ICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZUdlbmVyaWM6OmlzRXF1YWwpOiBEbyBub3QgY2FsbCB0aGUgVlRUQ3VlOjpp
c0VxdWFsIG1ldGhvZCBmcm9tCisgICAgICAgIHRoaXMgY2xhc3MsIHNpbmNlIGN1ZVR5cGUoKSB3
aWxsIG5vdCBlcXVhbCBWVFRDdWUsIGFuZCB0aGUgZXF1YWxpdHkgd2lsbCBmYWlsLgorCiAyMDE0
LTA1LTA4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1yZWRpcmVjdC54
bWwgZmFpbHMgd2l0aCBOZXR3b3JrUHJvY2VzcwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmNwcAkocmV2aXNpb24gMTY4NDc5KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDcsNyArNTA3LDcgQEAg
Ym9vbCBUZXh0VHJhY2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUqIGN1ZQogCiAgICAgICAgICAgICAv
LyBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGN1ZSB3aXRoIHRoZSBzYW1lIHN0YXJ0IHRpbWUs
IGJhY2sgdXAgdG8gZmlyc3Qgb25lIHNvIHdlCiAgICAgICAgICAgICAvLyBjb25zaWRlciBhbGwg
b2YgdGhlbS4KLSAgICAgICAgICAgIHdoaWxlIChzZWFyY2hTdGFydCA+PSAyICYmIGN1ZS0+c3Rh
cnRUaW1lKCkgPT0gbV9jdWVzLT5pdGVtKHNlYXJjaFN0YXJ0IC0gMiktPnN0YXJ0VGltZSgpKQor
ICAgICAgICAgICAgd2hpbGUgKHNlYXJjaFN0YXJ0ID49IDIgJiYgY3VlLT5oYXNFcXVpdmFsZW50
U3RhcnRUaW1lKCptX2N1ZXMtPml0ZW0oc2VhcmNoU3RhcnQgLSAyKSkpCiAgICAgICAgICAgICAg
ICAgLS1zZWFyY2hTdGFydDsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYm9vbCBmaXJzdENv
bXBhcmUgPSB0cnVlOwpAQCAtNTE5LDcgKzUxOSw3IEBAIGJvb2wgVGV4dFRyYWNrOjpoYXNDdWUo
VGV4dFRyYWNrQ3VlKiBjdWUKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgICAgICAgICAgZXhpc3RpbmdDdWUgPSBtX2N1ZXMtPml0ZW0oc2VhcmNoU3RhcnQgLSAx
KTsKLSAgICAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nQ3VlIHx8IGN1ZS0+c3RhcnRUaW1lKCkg
PiBleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkpCisgICAgICAgICAgICAgICAgaWYgKCFleGlzdGlu
Z0N1ZSB8fCBjdWUtPnN0YXJ0VGltZSgpID4gKGV4aXN0aW5nQ3VlLT5zdGFydFRpbWUoKSArIGV4
aXN0aW5nQ3VlLT5zdGFydFRpbWVWYXJpYW5jZSgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ0N1ZS0+aXNFcXVhbCgq
Y3VlLCBtYXRjaCkpCkBAIC01MzEsNyArNTMxLDcgQEAgYm9vbCBUZXh0VHJhY2s6Omhhc0N1ZShU
ZXh0VHJhY2tDdWUqIGN1ZQogICAgICAgICAKICAgICAgICAgc2l6ZV90IGluZGV4ID0gKHNlYXJj
aFN0YXJ0ICsgc2VhcmNoRW5kKSAvIDI7CiAgICAgICAgIGV4aXN0aW5nQ3VlID0gbV9jdWVzLT5p
dGVtKGluZGV4KTsKLSAgICAgICAgaWYgKGN1ZS0+c3RhcnRUaW1lKCkgPCBleGlzdGluZ0N1ZS0+
c3RhcnRUaW1lKCkgfHwgKG1hdGNoICE9IFRleHRUcmFja0N1ZTo6SWdub3JlRHVyYXRpb24gJiYg
Y3VlLT5zdGFydFRpbWUoKSA9PSBleGlzdGluZ0N1ZS0+c3RhcnRUaW1lKCkgJiYgY3VlLT5lbmRU
aW1lKCkgPiBleGlzdGluZ0N1ZS0+ZW5kVGltZSgpKSkKKyAgICAgICAgaWYgKChjdWUtPnN0YXJ0
VGltZSgpICsgZXhpc3RpbmdDdWUtPnN0YXJ0VGltZVZhcmlhbmNlKCkpIDwgZXhpc3RpbmdDdWUt
PnN0YXJ0VGltZSgpIHx8IChtYXRjaCAhPSBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uICYm
IGN1ZS0+aGFzRXF1aXZhbGVudFN0YXJ0VGltZSgqZXhpc3RpbmdDdWUpICYmIGN1ZS0+ZW5kVGlt
ZSgpID4gZXhpc3RpbmdDdWUtPmVuZFRpbWUoKSkpCiAgICAgICAgICAgICBzZWFyY2hFbmQgPSBp
bmRleDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2VhcmNoU3RhcnQgPSBpbmRleCArIDE7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCShyZXZp
c2lvbiAxNjg0NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw3ICsyMDksNyBAQCBib29sIFRleHRUcmFja0N1ZTo6
aXNFcXVhbChjb25zdCBUZXh0VHJhCiAKICAgICBpZiAobWF0Y2ggIT0gSWdub3JlRHVyYXRpb24g
JiYgZW5kVGltZSgpICE9IGN1ZS5lbmRUaW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAoc3RhcnRUaW1lKCkgIT0gY3VlLnN0YXJ0VGltZSgpKQorICAgIGlmICghaGFzRXF1aXZh
bGVudFN0YXJ0VGltZShjdWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGlkKCkg
IT0gY3VlLmlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNyw2ICsyMTcsMTEgQEAg
Ym9vbCBUZXh0VHJhY2tDdWU6OmlzRXF1YWwoY29uc3QgVGV4dFRyYQogICAgIHJldHVybiB0cnVl
OwogfQogCitib29sIFRleHRUcmFja0N1ZTo6aGFzRXF1aXZhbGVudFN0YXJ0VGltZShjb25zdCBU
ZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RkOjphYnMoc3RkOjphYnMo
c3RhcnRUaW1lKCkpIC0gc3RkOjphYnMoY3VlLnN0YXJ0VGltZSgpKSkgPCBzdGFydFRpbWVWYXJp
YW5jZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCShyZXZpc2lvbiAxNjg0NzkpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC04Myw2ICs4Myw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBpc09yZGVyZWRCZWZvcmUoY29uc3QgVGV4dFRyYWNrQ3VlKikgY29uc3Q7CiAKKyAgICBi
b29sIGhhc0VxdWl2YWxlbnRTdGFydFRpbWUoY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7Cisg
ICAgdmlydHVhbCBkb3VibGUgc3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdCB7IHJldHVybiAwOyB9
CisKICAgICBlbnVtIEN1ZVR5cGUgewogICAgICAgICBEYXRhLAogICAgICAgICBHZW5lcmljLApJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVy
aWMuY3BwCShyZXZpc2lvbiAxNjg0NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZUdlbmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNiArMTUzLDggQEAg
dm9pZCBUZXh0VHJhY2tDdWVHZW5lcmljOjpzZXRGb250U2l6ZShpbgogICAgIAogYm9vbCBUZXh0
VHJhY2tDdWVHZW5lcmljOjppc0VxdWFsKGNvbnN0IFRleHRUcmFja0N1ZSYgY3VlLCBUZXh0VHJh
Y2tDdWU6OkN1ZU1hdGNoUnVsZXMgbWF0Y2gpIGNvbnN0CiB7CisgICAgLy8gRG8gbm90IGNhbGwg
dGhlIHBhcmVudCBjbGFzcyBpc0VxdWFsIGhlcmUsIGJlY2F1c2Ugd2UgYXJlIG5vdCBjdWVUeXBl
KCkgPT0gVlRUQ3VlLAorICAgIC8vIGFuZCB3aWxsIGZhaWwgdGhhdCBlcXVhbGl0eSB0ZXN0Lgog
ICAgIGlmICghVGV4dFRyYWNrQ3VlOjppc0VxdWFsKGN1ZSwgbWF0Y2gpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKQEAgLTE3Miw3ICsxNzQsNyBAQCBib29sIFRleHRUcmFja0N1ZUdlbmVyaWM6
OmlzRXF1YWwoY29uc3QgCiAgICAgaWYgKG1fYmFja2dyb3VuZENvbG9yICE9IG90aGVyLT5iYWNr
Z3JvdW5kQ29sb3IoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIFZUVEN1
ZTo6aXNFcXVhbChjdWUsIG1hdGNoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBUZXh0
VHJhY2tDdWVHZW5lcmljOjppc09yZGVyZWRCZWZvcmUoY29uc3QgVGV4dFRyYWNrQ3VlKiB0aGF0
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5l
cmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWVHZW5lcmljLmgJKHJldmlzaW9uIDE2ODQ3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNPcmRlcmVkQmVmb3JlKGNv
bnN0IFRleHRUcmFja0N1ZSopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHN0
YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMC4yNTsgfQogCiAgICAg
VGV4dFRyYWNrQ3VlR2VuZXJpYyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgZG91YmxlIHN0YXJ0
LCBkb3VibGUgZW5kLCBjb25zdCBTdHJpbmcmKTsKICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>