<?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>23870</bug_id>
          
          <creation_ts>2009-02-10 10:37:54 -0800</creation_ts>
          <short_desc>Allow ports to define restrictions on media loading</short_desc>
          <delta_ts>2009-02-17 14:38:49 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109130</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-10 10:37:54 -0800</bug_when>
    <thetext>A port should be able to prevent automatic opening of media files by &lt;video&gt; and &lt;audio&gt; elements by returning an error from load() unless it is invoked as a result of a user gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109131</commentid>
    <comment_count>1</comment_count>
      <attachid>27523</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-10 10:45:00 -0800</bug_when>
    <thetext>Created attachment 27523
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109142</commentid>
    <comment_count>2</comment_count>
      <attachid>27530</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-10 10:54:43 -0800</bug_when>
    <thetext>Created attachment 27530
revised patch

added missing ChangeLog comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109143</commentid>
    <comment_count>3</comment_count>
      <attachid>27530</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-02-10 11:07:08 -0800</bug_when>
    <thetext>Comment on attachment 27530
revised patch

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================

&gt; +        https://bugs.webkit.org/post_bug.cgi

Please fix the link.

&gt; +        make it possible for a port to require a user gesture for an &lt;audio&gt; or &lt;video&gt; element
&gt; +        to load a file

To load a url? Sentence case.

&gt; Index: WebCore/html/HTMLMediaElement.cpp
&gt; ===================================================================


&gt; -    if (m_currentLoop &lt; playCount() - 1 &amp;&amp; currentTime() &gt;= effectiveLoopEnd()) {
&gt; +    float now = currentTime();

I&apos;m worried about name conflicts with wtf/CurrentTime at some point, but that&apos;s not
your problem.

&gt; +bool HTMLMediaElement::processingUserGesture()
&gt; +{
&gt; +    Frame* frame = document()-&gt;frame();
&gt; +    FrameLoader *loader = frame ? frame-&gt;loader() : NULL;

For C++, use FrameLoader* loader 
Use 0 not NULL.

&gt; +    return loader ? loader-&gt;userGestureHint() : false;

Should this return &apos;true&apos; in the failure case for safety?

&gt; Index: WebCore/html/HTMLMediaElement.h
&gt; ===================================================================
&gt; --- WebCore/html/HTMLMediaElement.h	(revision 40823)
&gt; +++ WebCore/html/HTMLMediaElement.h	(working copy)
&gt; @@ -159,6 +159,8 @@ private:
&gt;      void seek(float time, ExceptionCode&amp; ec);
&gt;      void checkIfSeekNeeded();
&gt;      
&gt; +    bool processingUserGesture();

Make this |const|?

&gt; +    enum LoadingRestrictions

Rename to LoadRestrictions
 
&gt; +    { 
&gt; +        NO_RESTRICTIONS = 0,
&gt; +        REQUIRE_USER_GESTURE = 1 &lt;&lt; 0, 
&gt; +    };

Maybe rename to NoLoadRestriction, RequireUserGestureLoadRestriction


r=me with those fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110010</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-17 14:38:49 -0800</bug_when>
    <thetext>Committed revision 40828.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27523</attachid>
            <date>2009-02-10 10:45:00 -0800</date>
            <delta_ts>2009-02-10 10:54:43 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>load_restriction_patch.txt</filename>
            <type>text/plain</type>
            <size>5852</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDItMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvcG9zdF9idWcuY2dpCisgICAgICAgIG1ha2UgaXQg
cG9zc2libGUgZm9yIGEgcG9ydCB0byByZXF1aXJlIGEgdXNlciBnZXN0dXJlIGZvciBhbiA8YXVk
aW8+IG9yIDx2aWRlbz4gZWxlbWVudAorICAgICAgICB0byBsb2FkIGEgZmlsZQorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyTmV0d29ya1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVuZFNj
cnViYmluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
clRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjopOgorCiAyMDA5LTAyLTEwICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDQw
ODIzKQorKysgV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU291cmNlRWxlbWVudC5oIgpAQCAtODIs
NiArODQsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0CiAgICAg
LCBtX3BhdXNlZEludGVybmFsKGZhbHNlKQogICAgICwgbV9pbkFjdGl2ZURvY3VtZW50KHRydWUp
CiAgICAgLCBtX3BsYXllcigwKQorICAgICwgbV9sb2FkUmVzdHJpY3Rpb25zKE5PX1JFU1RSSUNU
SU9OUykKIHsKICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvckRvY3VtZW50QWN0aXZhdGlvbkNh
bGxiYWNrcyh0aGlzKTsKICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvck1lZGlhVm9sdW1lQ2Fs
bGJhY2tzKHRoaXMpOwpAQCAtMTA4LDcgKzExMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZCgKICAgICAgICAgLy8gY2hhbmdlIHRvIHNyYyBhdHRyaWJ1dGUgdHJp
Z2dlcnMgbG9hZCgpCiAgICAgICAgIGlmIChpbkRvY3VtZW50KCkgJiYgbV9uZXR3b3JrU3RhdGUg
PT0gRU1QVFkpCiAgICAgICAgICAgICBzY2hlZHVsZUxvYWQoKTsKLSAgICB9IGlmIChhdHRyTmFt
ZSA9PSBjb250cm9sc0F0dHIpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJOYW1lID09IGNvbnRyb2xz
QXR0cikgewogICAgICAgICBpZiAoIWlzVmlkZW8oKSAmJiBhdHRhY2hlZCgpICYmIChjb250cm9s
cygpICE9IChyZW5kZXJlcigpICE9IDApKSkgewogICAgICAgICAgICAgZGV0YWNoKCk7CiAgICAg
ICAgICAgICBhdHRhY2goKTsKQEAgLTI3MCw4ICsyNzMsMTMgQEAgZmxvYXQgSFRNTE1lZGlhRWxl
bWVudDo6YnVmZmVyaW5nUmF0ZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNl
cHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoKG1fbG9hZFJlc3RyaWN0aW9ucyAmIFJFUVVJUkVf
VVNFUl9HRVNUVVJFKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFN0cmlu
ZyBtZWRpYVNyYzsKLSAgICAKKwogICAgIC8vIDMuMTQuOS40LiBMb2FkaW5nIHRoZSBtZWRpYSBy
ZXNvdXJjZQogICAgIC8vIDEKICAgICAvLyBpZiBhbiBldmVudCBnZW5lcmF0ZWQgZHVyaW5nIGxv
YWQoKSBlbmRzIHVwIHJlLWVudGVyaW5nIGxvYWQoKSwgdGVybWluYXRlIHByZXZpb3VzIGluc3Rh
bmNlcwpAQCAtMjk3LDcgKzMwNSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNl
cHRpb25Db2QKICAgICBtX2Vycm9yID0gMDsKICAgICBtX2xvYWRlZEZpcnN0RnJhbWUgPSBmYWxz
ZTsKICAgICBtX2F1dG9wbGF5aW5nID0gdHJ1ZTsKLSAgICAKKwogICAgIC8vIDQKICAgICBzZXRQ
bGF5YmFja1JhdGUoZGVmYXVsdFBsYXliYWNrUmF0ZSgpLCBlYyk7CiAgICAgCkBAIC0zMjksNyAr
MzM3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKEV4Y2VwdGlvbkNvZAogICAgIAog
ICAgIC8vIDgKICAgICBtX2N1cnJlbnRTcmMgPSBtZWRpYVNyYzsKLSAgICAKKwogICAgIC8vIDkK
ICAgICBtX2JlZ3VuID0gdHJ1ZTsgICAgICAgIAogICAgIGRpc3BhdGNoUHJvZ3Jlc3NFdmVudChl
dmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQsIGZhbHNlLCAwLCAwKTsKQEAgLTM4Myw3ICszOTEs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTmV0d29yCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIAogICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IEVNUFRZOwotICAg
ICAgICAKKwogICAgICAgICBpZiAoaXNWaWRlbygpKQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
SFRNTFZpZGVvRWxlbWVudCo+KHRoaXMpLT51cGRhdGVQb3N0ZXJJbWFnZSgpOwogCkBAIC02Njgs
NyArNjc2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5KEV4Y2VwdGlvbkNvZAogICAg
IH0KIAogICAgIG1fYXV0b3BsYXlpbmcgPSBmYWxzZTsKLSAgICAKKwogICAgIHVwZGF0ZVBsYXlT
dGF0ZSgpOwogfQogCkBAIC04MzUsOSArODQzLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpi
ZWdpblNjcnViYmluZygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kU2NydWJiaW5nKCkK
IHsKLSAgICBpZiAobV9wYXVzZWRJbnRlcm5hbCkgeworICAgIGlmIChtX3BhdXNlZEludGVybmFs
KQogICAgICAgICBzZXRQYXVzZWRJbnRlcm5hbChmYWxzZSk7Ci0gICAgfQogfQogCiBib29sIEhU
TUxNZWRpYUVsZW1lbnQ6OmNhblBsYXkoKSBjb25zdApAQCAtOTIxLDE0ICs5MjgsMTUgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaAogICAgIGlmIChyZWFkeVN0YXRl
KCkgPj0gQ0FOX1BMQVkpCiAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwogICAgIAotICAgIGlm
IChtX2N1cnJlbnRMb29wIDwgcGxheUNvdW50KCkgLSAxICYmIGN1cnJlbnRUaW1lKCkgPj0gZWZm
ZWN0aXZlTG9vcEVuZCgpKSB7CisgICAgZmxvYXQgbm93ID0gY3VycmVudFRpbWUoKTsKKyAgICBp
ZiAobV9jdXJyZW50TG9vcCA8IHBsYXlDb3VudCgpIC0gMSAmJiBub3cgPj0gZWZmZWN0aXZlTG9v
cEVuZCgpKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAgIHNlZWsoZWZmZWN0
aXZlTG9vcFN0YXJ0KCksIGVjKTsKICAgICAgICAgbV9jdXJyZW50TG9vcCsrOwogICAgICAgICBk
aXNwYXRjaEV2ZW50Rm9yVHlwZShldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50LCBmYWxzZSwg
dHJ1ZSk7CiAgICAgfQogICAgIAotICAgIGlmIChtX2N1cnJlbnRMb29wID09IHBsYXlDb3VudCgp
IC0gMSAmJiBjdXJyZW50VGltZSgpID49IGVmZmVjdGl2ZUVuZCgpKSB7CisgICAgaWYgKG1fY3Vy
cmVudExvb3AgPT0gcGxheUNvdW50KCkgLSAxICYmIG5vdyA+PSBlZmZlY3RpdmVFbmQoKSkgewog
ICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yVHlwZShldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50
LCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgIGRpc3BhdGNoRXZlbnRGb3JUeXBlKGV2ZW50TmFtZXMo
KS5lbmRlZEV2ZW50LCBmYWxzZSwgdHJ1ZSk7CiAgICAgfQpAQCAtMTEwMSw2ICsxMTA5LDEzIEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGwKICAgICBIVE1MRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVu
dCgpLT5mcmFtZSgpOworICAgIEZyYW1lTG9hZGVyICpsb2FkZXIgPSBmcmFtZSA/IGZyYW1lLT5s
b2FkZXIoKSA6IE5VTEw7CisgICAgcmV0dXJuIGxvYWRlciA/IGxvYWRlci0+dXNlckdlc3R1cmVI
aW50KCkgOiBmYWxzZTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAkocmV2aXNpb24gNDA4MjMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
ZWsoZmxvYXQgdGltZSwgRXhjZXB0aW9uQ29kZSYgZWMpOwogICAgIHZvaWQgY2hlY2tJZlNlZWtO
ZWVkZWQoKTsKICAgICAKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworCiAgICAg
U3RyaW5nIHBpY2tNZWRpYSgpOwogICAgIHZvaWQgdXBkYXRlVm9sdW1lKCk7CiAgICAgdm9pZCB1
cGRhdGVQbGF5U3RhdGUoKTsKQEAgLTE2OCw3ICsxNzAsMTQgQEAgcHJpdmF0ZToKICAgICBmbG9h
dCBlZmZlY3RpdmVMb29wRW5kKCkgY29uc3Q7CiAgICAgYm9vbCBhY3RpdmVseVBsYXlpbmcoKSBj
b25zdDsKICAgICBib29sIGVuZGVkUGxheWJhY2soKSBjb25zdDsKLSAgICAKKworICAgIGVudW0g
TG9hZGluZ1Jlc3RyaWN0aW9ucyAKKyAgICB7IAorICAgICAgICBOT19SRVNUUklDVElPTlMgPSAw
LAorICAgICAgICBSRVFVSVJFX1VTRVJfR0VTVFVSRSA9IDEgPDwgMCwgCisgICAgfTsKKworCiBw
cm90ZWN0ZWQ6CiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9sb2FkVGltZXI7CiAgICAg
VGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9hc3luY0V2ZW50VGltZXI7CkBAIC0yMDgsNiArMjE3
LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pbkFjdGl2ZURvY3VtZW50OwogCiAgICAgT3du
UHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKworICAgIExvYWRpbmdSZXN0cmljdGlvbnMgbV9s
b2FkUmVzdHJpY3Rpb25zOwogfTsKIAogfSAvL25hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27530</attachid>
            <date>2009-02-10 10:54:43 -0800</date>
            <delta_ts>2009-02-10 11:07:08 -0800</delta_ts>
            <desc>revised patch</desc>
            <filename>load_restriction_patch.txt</filename>
            <type>text/plain</type>
            <size>6242</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDItMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvcG9zdF9idWcuY2dpCisgICAgICAgIG1ha2UgaXQg
cG9zc2libGUgZm9yIGEgcG9ydCB0byByZXF1aXJlIGEgdXNlciBnZXN0dXJlIGZvciBhbiA8YXVk
aW8+IG9yIDx2aWRlbz4gZWxlbWVudAorICAgICAgICB0byBsb2FkIGEgZmlsZQorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBpbml0aWFsaXplIG1fbG9hZFJlc3RyaWN0aW9u
cy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQp
OiBvbmx5IG9uZSBhdHRyaWJ1dGUgY2FuIGNoYW5nZSBzbyBwdXQgYW4gImVsc2UiIGJldHdlZW4g
dGVzdHMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKTogcmV0dXJu
IElOVkFMSURfU1RBVEVfRVJSIGlmIFJFUVVJUkVfVVNFUl9HRVNUVVJFIGlzIHNldCBhbmQgd2Ug
YXJlCisgICAgICAgIG5vdCBwcmVvY2Vzc2luZyBhIHVzZXIgZ2VzdHVyZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTmV0d29ya1N0YXRlQ2hhbmdlZCk6
IHJlbW92ZSB1bm5lY2Vzc2FyeSB3aGl0ZSBzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnBsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZFNjcnViYmluZyk6IHJlbW92ZSB1bm5lY2Vzc2FyeSBicmFjZXMgYWRkZWQgaW4g
cjQwNzg5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJU
aW1lQ2hhbmdlZCk6IGNhY2hlIGN1cnJlbnRUaW1lKCkgaW4gYSBsb2NhbCBpbnN0ZWFkIG9mIGNh
bGxpbmcgaXQKKyAgICAgICAgbXVsdGlwbGUgdGltZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUpOiBuZXcuCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjopOiBhZGQgbV9sb2FkUmVzdHJpY3Rpb25zLgorCiAyMDA5LTAyLTEwICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDQwODIzKQorKysg
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw4IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU291cmNlRWxlbWVudC5oIgpAQCAtODIsNiArODQsNyBA
QCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0CiAgICAgLCBtX3BhdXNl
ZEludGVybmFsKGZhbHNlKQogICAgICwgbV9pbkFjdGl2ZURvY3VtZW50KHRydWUpCiAgICAgLCBt
X3BsYXllcigwKQorICAgICwgbV9sb2FkUmVzdHJpY3Rpb25zKE5PX1JFU1RSSUNUSU9OUykKIHsK
ICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvckRvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyh0
aGlzKTsKICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvck1lZGlhVm9sdW1lQ2FsbGJhY2tzKHRo
aXMpOwpAQCAtMTA4LDcgKzExMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZCgKICAgICAgICAgLy8gY2hhbmdlIHRvIHNyYyBhdHRyaWJ1dGUgdHJpZ2dlcnMgbG9h
ZCgpCiAgICAgICAgIGlmIChpbkRvY3VtZW50KCkgJiYgbV9uZXR3b3JrU3RhdGUgPT0gRU1QVFkp
CiAgICAgICAgICAgICBzY2hlZHVsZUxvYWQoKTsKLSAgICB9IGlmIChhdHRyTmFtZSA9PSBjb250
cm9sc0F0dHIpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJOYW1lID09IGNvbnRyb2xzQXR0cikgewog
ICAgICAgICBpZiAoIWlzVmlkZW8oKSAmJiBhdHRhY2hlZCgpICYmIChjb250cm9scygpICE9IChy
ZW5kZXJlcigpICE9IDApKSkgewogICAgICAgICAgICAgZGV0YWNoKCk7CiAgICAgICAgICAgICBh
dHRhY2goKTsKQEAgLTI3MCw4ICsyNzMsMTMgQEAgZmxvYXQgSFRNTE1lZGlhRWxlbWVudDo6YnVm
ZmVyaW5nUmF0ZSgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNlcHRpb25Db2Rl
JiBlYykKIHsKKyAgICBpZiAoKG1fbG9hZFJlc3RyaWN0aW9ucyAmIFJFUVVJUkVfVVNFUl9HRVNU
VVJFKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFN0cmluZyBtZWRpYVNy
YzsKLSAgICAKKwogICAgIC8vIDMuMTQuOS40LiBMb2FkaW5nIHRoZSBtZWRpYSByZXNvdXJjZQog
ICAgIC8vIDEKICAgICAvLyBpZiBhbiBldmVudCBnZW5lcmF0ZWQgZHVyaW5nIGxvYWQoKSBlbmRz
IHVwIHJlLWVudGVyaW5nIGxvYWQoKSwgdGVybWluYXRlIHByZXZpb3VzIGluc3RhbmNlcwpAQCAt
Mjk3LDcgKzMwNSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNlcHRpb25Db2QK
ICAgICBtX2Vycm9yID0gMDsKICAgICBtX2xvYWRlZEZpcnN0RnJhbWUgPSBmYWxzZTsKICAgICBt
X2F1dG9wbGF5aW5nID0gdHJ1ZTsKLSAgICAKKwogICAgIC8vIDQKICAgICBzZXRQbGF5YmFja1Jh
dGUoZGVmYXVsdFBsYXliYWNrUmF0ZSgpLCBlYyk7CiAgICAgCkBAIC0zMjksNyArMzM3LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKEV4Y2VwdGlvbkNvZAogICAgIAogICAgIC8vIDgK
ICAgICBtX2N1cnJlbnRTcmMgPSBtZWRpYVNyYzsKLSAgICAKKwogICAgIC8vIDkKICAgICBtX2Jl
Z3VuID0gdHJ1ZTsgICAgICAgIAogICAgIGRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVz
KCkubG9hZHN0YXJ0RXZlbnQsIGZhbHNlLCAwLCAwKTsKQEAgLTM4Myw3ICszOTEsNyBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyTmV0d29yCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIAogICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IEVNUFRZOwotICAgICAgICAKKwog
ICAgICAgICBpZiAoaXNWaWRlbygpKQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFZpZGVv
RWxlbWVudCo+KHRoaXMpLT51cGRhdGVQb3N0ZXJJbWFnZSgpOwogCkBAIC02NjgsNyArNjc2LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5KEV4Y2VwdGlvbkNvZAogICAgIH0KIAogICAg
IG1fYXV0b3BsYXlpbmcgPSBmYWxzZTsKLSAgICAKKwogICAgIHVwZGF0ZVBsYXlTdGF0ZSgpOwog
fQogCkBAIC04MzUsOSArODQzLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpiZWdpblNjcnVi
YmluZygpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kU2NydWJiaW5nKCkKIHsKLSAgICBp
ZiAobV9wYXVzZWRJbnRlcm5hbCkgeworICAgIGlmIChtX3BhdXNlZEludGVybmFsKQogICAgICAg
ICBzZXRQYXVzZWRJbnRlcm5hbChmYWxzZSk7Ci0gICAgfQogfQogCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmNhblBsYXkoKSBjb25zdApAQCAtOTIxLDE0ICs5MjgsMTUgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaAogICAgIGlmIChyZWFkeVN0YXRlKCkgPj0gQ0FO
X1BMQVkpCiAgICAgICAgIG1fc2Vla2luZyA9IGZhbHNlOwogICAgIAotICAgIGlmIChtX2N1cnJl
bnRMb29wIDwgcGxheUNvdW50KCkgLSAxICYmIGN1cnJlbnRUaW1lKCkgPj0gZWZmZWN0aXZlTG9v
cEVuZCgpKSB7CisgICAgZmxvYXQgbm93ID0gY3VycmVudFRpbWUoKTsKKyAgICBpZiAobV9jdXJy
ZW50TG9vcCA8IHBsYXlDb3VudCgpIC0gMSAmJiBub3cgPj0gZWZmZWN0aXZlTG9vcEVuZCgpKSB7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAgIHNlZWsoZWZmZWN0aXZlTG9vcFN0
YXJ0KCksIGVjKTsKICAgICAgICAgbV9jdXJyZW50TG9vcCsrOwogICAgICAgICBkaXNwYXRjaEV2
ZW50Rm9yVHlwZShldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50LCBmYWxzZSwgdHJ1ZSk7CiAg
ICAgfQogICAgIAotICAgIGlmIChtX2N1cnJlbnRMb29wID09IHBsYXlDb3VudCgpIC0gMSAmJiBj
dXJyZW50VGltZSgpID49IGVmZmVjdGl2ZUVuZCgpKSB7CisgICAgaWYgKG1fY3VycmVudExvb3Ag
PT0gcGxheUNvdW50KCkgLSAxICYmIG5vdyA+PSBlZmZlY3RpdmVFbmQoKSkgewogICAgICAgICBk
aXNwYXRjaEV2ZW50Rm9yVHlwZShldmVudE5hbWVzKCkudGltZXVwZGF0ZUV2ZW50LCBmYWxzZSwg
dHJ1ZSk7CiAgICAgICAgIGRpc3BhdGNoRXZlbnRGb3JUeXBlKGV2ZW50TmFtZXMoKS5lbmRlZEV2
ZW50LCBmYWxzZSwgdHJ1ZSk7CiAgICAgfQpAQCAtMTEwMSw2ICsxMTA5LDEzIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGwKICAgICBIVE1MRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFt
ZSgpOworICAgIEZyYW1lTG9hZGVyICpsb2FkZXIgPSBmcmFtZSA/IGZyYW1lLT5sb2FkZXIoKSA6
IE5VTEw7CisgICAgcmV0dXJuIGxvYWRlciA/IGxvYWRlci0+dXNlckdlc3R1cmVIaW50KCkgOiBm
YWxzZTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2
aXNpb24gNDA4MjMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlZWsoZmxvYXQg
dGltZSwgRXhjZXB0aW9uQ29kZSYgZWMpOwogICAgIHZvaWQgY2hlY2tJZlNlZWtOZWVkZWQoKTsK
ICAgICAKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworCiAgICAgU3RyaW5nIHBp
Y2tNZWRpYSgpOwogICAgIHZvaWQgdXBkYXRlVm9sdW1lKCk7CiAgICAgdm9pZCB1cGRhdGVQbGF5
U3RhdGUoKTsKQEAgLTE2OCw3ICsxNzAsMTQgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBlZmZlY3Rp
dmVMb29wRW5kKCkgY29uc3Q7CiAgICAgYm9vbCBhY3RpdmVseVBsYXlpbmcoKSBjb25zdDsKICAg
ICBib29sIGVuZGVkUGxheWJhY2soKSBjb25zdDsKLSAgICAKKworICAgIGVudW0gTG9hZGluZ1Jl
c3RyaWN0aW9ucyAKKyAgICB7IAorICAgICAgICBOT19SRVNUUklDVElPTlMgPSAwLAorICAgICAg
ICBSRVFVSVJFX1VTRVJfR0VTVFVSRSA9IDEgPDwgMCwgCisgICAgfTsKKworCiBwcm90ZWN0ZWQ6
CiAgICAgVGltZXI8SFRNTE1lZGlhRWxlbWVudD4gbV9sb2FkVGltZXI7CiAgICAgVGltZXI8SFRN
TE1lZGlhRWxlbWVudD4gbV9hc3luY0V2ZW50VGltZXI7CkBAIC0yMDgsNiArMjE3LDggQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgbV9pbkFjdGl2ZURvY3VtZW50OwogCiAgICAgT3duUHRyPE1lZGlh
UGxheWVyPiBtX3BsYXllcjsKKworICAgIExvYWRpbmdSZXN0cmljdGlvbnMgbV9sb2FkUmVzdHJp
Y3Rpb25zOwogfTsKIAogfSAvL25hbWVzcGFjZQo=
</data>
<flag name="review"
          id="13328"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>