<?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>74930</bug_id>
          
          <creation_ts>2011-12-20 07:26:59 -0800</creation_ts>
          <short_desc>MediaStream API: Adding WebUserMediaClientMock to enable LayoutTesting</short_desc>
          <delta_ts>2012-01-12 10:24:42 -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 API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>74882</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>74882</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjia</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524607</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-12-20 07:26:59 -0800</bug_when>
    <thetext>This is the first of 3 patches (2 WebKit and 1 chromium) to enable an initial LayoutTest. The second webkit patch is https://bugs.webkit.org/show_bug.cgi?id=74882, and the chromium patch is http://codereview.chromium.org/8887004.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524618</commentid>
    <comment_count>1</comment_count>
      <attachid>120027</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2011-12-20 07:59:41 -0800</bug_when>
    <thetext>Created attachment 120027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524620</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-20 08:02:00 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526298</commentid>
    <comment_count>3</comment_count>
      <attachid>120027</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-22 09:12:09 -0800</bug_when>
    <thetext>Comment on attachment 120027
Patch

This looks like test-only code that is implemented on top of the existing WebKit API.  Why should this also be part of the WebKit API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527504</commentid>
    <comment_count>4</comment_count>
    <who name="">wjia</who>
    <bug_when>2011-12-27 16:49:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 120027 [details])
&gt; This looks like test-only code that is implemented on top of the existing WebKit API.  Why should this also be part of the WebKit API?

This mocked class needs to access WebKit::WebMediaStreamDescriptor, WebKit::WebMediaStreamSource, etc, which are not accessible from Tools/DumpRenderTree/chromium. What&apos;s the best directory for WebUserMediaClientMock?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529612</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-04 10:55:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 120027 [details] [details])
&gt; &gt; This looks like test-only code that is implemented on top of the existing WebKit API.  Why should this also be part of the WebKit API?
&gt; 
&gt; This mocked class needs to access WebKit::WebMediaStreamDescriptor, WebKit::WebMediaStreamSource, etc, which are not accessible from Tools/DumpRenderTree/chromium. What&apos;s the best directory for WebUserMediaClientMock?

Tools/DumpRenderTree/chromium is a consumer of the WebKit API.  WebMediaStreamDescriptor and WebMediaStreamSource are part of the WebKit API.

We don&apos;t have a lot of mocks in WebKit, but the few that we have are either in the tests/ folder, or part of the API because they expose WebCore mocks.  I&apos;m not sure that these latter mocks are really that good of an idea as I&apos;m not sure why they should exist in a shipping browser.

It seems to me that if the only consumer of this mock is DRT, that the code should just live alongside DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530729</commentid>
    <comment_count>6</comment_count>
    <who name="">wjia</who>
    <bug_when>2012-01-05 15:51:00 -0800</bug_when>
    <thetext>patch in bug 74882 has move the WebUserMediaClientMock from Source/WebKit/chromium to Tools/DumpRenderTree/chromium. An embedder API (webkit_support::MediaStreamUtil) has been created in chromium patch http://codereview.chromium.org/8887004/. Therefore, all changes in WebKit has been consolidated in bug 74882.

This bug can be closed if code review confirms the both chromium patch and patch in bug 74882 are ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534946</commentid>
    <comment_count>7</comment_count>
    <who name="">wjia</who>
    <bug_when>2012-01-12 10:24:42 -0800</bug_when>
    <thetext>The code in this patch has been merged into bug 74882 which has been fixed as r104764. Closing this one.

*** This bug has been marked as a duplicate of bug 74882 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120027</attachid>
            <date>2011-12-20 07:59:41 -0800</date>
            <delta_ts>2012-01-04 10:55:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74930-20111220165939.patch</filename>
            <type>text/plain</type>
            <size>8164</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDQwNGZiMDQ5NGQ4ZDdiYmNlZDgyYTFmZmFjODM0NzUyMWRmNTg3MmMuLjEyMWQ3ZTZhNTgwNDc0
YTNhMzYyZGM2ZTAwN2FkZDU5NGQ3NDJhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTEtMTItMjAgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdv
b2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGRpbmcgV2ViVXNlck1lZGlh
Q2xpZW50TW9jayB0byBlbmFibGUgTGF5b3V0VGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGlj
L1dlYlVzZXJNZWRpYUNsaWVudE1vY2suaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlVz
ZXJNZWRpYUNsaWVudE1vY2s6On5XZWJVc2VyTWVkaWFDbGllbnRNb2NrKToKKyAgICAgICAgKiBz
cmMvV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJVc2VyTWVkaWFDbGllbnRNb2NrOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
TWVkaWFDbGllbnRNb2NrOjppc01vY2tTdHJlYW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJVc2Vy
TWVkaWFDbGllbnRNb2NrOjpyZXF1ZXN0VXNlck1lZGlhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VXNlck1lZGlhQ2xpZW50TW9jazo6Y2FuY2VsVXNlck1lZGlhUmVxdWVzdCk6CisKIDIwMTEtMTIt
MTggIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wbGVt
ZW50IDxpbnB1dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IDNmY2NjYTViMjQ2ZTcwYzM2MGQ2OTQ2ZTNmM2M4ODdjNmUz
YmU5ZjEuLjM0MDA3OTY4MmNjNDJmYzRhN2QzMzYyNWI1YjU0ZWM3ZTMyMzE2ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTI1OSw2ICsyNTksNyBAQAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViVGV4dFJ1bi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlVSTExv
YWRlck9wdGlvbnMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVkaWFDbGll
bnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJVc2VyTWVkaWFDbGllbnRNb2NrLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYlZpZXcuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJWaWV3Q2xpZW50LmgnLApAQCAtNjU5LDYgKzY2MCw3IEBACiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJVUkxSZXNwb25zZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVVJMUmVzcG9u
c2VQcml2YXRlLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViVVJMRXJyb3IuY3BwJywKKyAg
ICAgICAgICAgICAgICAnc3JjL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlVzZXJNZWRpYVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYlZpZXdJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJWaWV3SW1wbC5o
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRp
YUNsaWVudE1vY2suaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRp
YUNsaWVudE1vY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODJmMWE2YmFkMjEwODY5MDg0NDhlZmFjMDYyY2I5
YTgwNjA4OGVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVXNlck1lZGlhQ2xpZW50TW9jay5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlVz
ZXJNZWRpYUNsaWVudE1vY2tfaAorI2RlZmluZSBXZWJVc2VyTWVkaWFDbGllbnRNb2NrX2gKKwor
I2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNv
bW1vbi5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgorI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlVSTC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVXNlck1lZGlh
Q2xpZW50TW9jayA6IHB1YmxpYyBXZWJVc2VyTWVkaWFDbGllbnQgeworcHVibGljOgorICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIFdlYlVzZXJNZWRpYUNsaWVudE1vY2sqIGNyZWF0ZSgpOworICAg
IH5XZWJVc2VyTWVkaWFDbGllbnRNb2NrKCkgeyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wg
aXNNb2NrU3RyZWFtKGNvbnN0IFdlYlVSTCYpOworCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RV
c2VyTWVkaWEoY29uc3QgV2ViVXNlck1lZGlhUmVxdWVzdCYsIGNvbnN0IFdlYlZlY3RvcjxXZWJN
ZWRpYVN0cmVhbVNvdXJjZT4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsVXNlck1lZGlhUmVx
dWVzdChjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0Jik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFdlYlVzZXJNZWRpYUNsaWVudE1vY2tfaAorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFDbGllbnRNb2NrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkwNzgxYWUyYTkxMDliN2FhODFhMzYzMjY3ZTJhOGI4N2FkY2M1MDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFDbGll
bnRNb2NrLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYlVzZXJNZWRpYUNsaWVudE1vY2suaCIKKworI2luY2x1ZGUgIldlYk1lZGlhU3RyZWFtUmVn
aXN0cnkuaCIKKyNpbmNsdWRlICJXZWJVc2VyTWVkaWFSZXF1ZXN0LmgiCisjaW5jbHVkZSAicGxh
dGZvcm0vV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
TWVkaWFTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVzZXJNZWRpYUNsaWVudE1vY2sqIFdlYlVzZXJNZWRp
YUNsaWVudE1vY2s6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG5ldyBXZWJVc2VyTWVkaWFDbGll
bnRNb2NrKCk7Cit9CisKK2Jvb2wgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6aXNNb2NrU3RyZWFt
KGNvbnN0IFdlYlVSTCYgdXJsKQoreworICAgIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBkZXNj
cmlwdG9yKFdlYk1lZGlhU3RyZWFtUmVnaXN0cnk6Omxvb2t1cE1lZGlhU3RyZWFtRGVzY3JpcHRv
cih1cmwpKTsKKyAgICBpZiAoZGVzY3JpcHRvci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiBzb3VyY2VWZWN0b3I7
CisgICAgZGVzY3JpcHRvci5zb3VyY2VzKHNvdXJjZVZlY3Rvcik7CisgICAgV2ViU3RyaW5nIHRy
YWNrSWQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzb3VyY2VWZWN0b3Iuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgaWYgKHNvdXJjZVZlY3RvcltpXS50eXBlKCkgPT0gV2ViTWVkaWFTdHJl
YW1Tb3VyY2U6OlR5cGVWaWRlbykgeworICAgICAgICAgICAgdHJhY2tJZCA9IHNvdXJjZVZlY3Rv
cltpXS5pZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIHRyYWNrSWQuZXF1YWxzKCJtZWRpYXN0cmVhbXRlc3QiKTsKK30KKwordm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnRNb2NrOjpyZXF1ZXN0VXNlck1lZGlhKGNvbnN0IFdlYlVzZXJNZWRpYVJlcXVl
c3QmIHN0cmVhbVJlcXVlc3QsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4m
IHN0cmVhbVNvdXJjZVZlY3RvcikKK3sKKyAgICBBU1NFUlQoIXN0cmVhbVJlcXVlc3QuaXNOdWxs
KCkpOworCisgICAgV2ViVXNlck1lZGlhUmVxdWVzdCByZXF1ZXN0ID0gc3RyZWFtUmVxdWVzdDsK
KyAgICBzaXplX3Qgc2l6ZSA9IDE7CisgICAgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNl
PiBzb3VyY2VWZWN0b3Ioc2l6ZSk7CisgICAgV2ViU3RyaW5nIHRyYWNrSWQoIm1lZGlhc3RyZWFt
dGVzdCIpOworICAgIFdlYlN0cmluZyB0cmFja05hbWUoIlZpZGVvQ2FwdHVyZSIpOworICAgIHNv
dXJjZVZlY3RvclswXS5pbml0aWFsaXplKHRyYWNrSWQsIFdlYk1lZGlhU3RyZWFtU291cmNlOjpU
eXBlVmlkZW8sIHRyYWNrTmFtZSk7CisgICAgcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKHNvdXJj
ZVZlY3Rvcik7Cit9CisKK3ZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6Y2FuY2VsVXNlck1l
ZGlhUmVxdWVzdChjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0JikKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="120183"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>