<?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>48282</bug_id>
          
          <creation_ts>2010-10-25 17:39:47 -0700</creation_ts>
          <short_desc>WebGraphicsContext3DDefaultImpl does not run on top of OpenGL ES 2.0 implementations</short_desc>
          <delta_ts>2010-11-12 13:35:23 -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>WebGL</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>299216</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-25 17:39:47 -0700</bug_when>
    <thetext>When --in-process-webgl is used in Chromium in conjunction with ANGLE, an assertion failure is triggered because GL_DEPTH_COMPONENT is an invalid enum to pass to glRenderbufferStorage. We need to pass GL_DEPTH_COMPONENT16 when running on top of an OpenGL ES 2.0 implementation. We need to check the GL implementation in use (app/gfx/gl_implementation.h, GetGLImplementation() and determine which enum to send down based on whether EGLGLES2 is in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299221</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-10-25 17:51:31 -0700</bug_when>
    <thetext>There are additional problems when running on top of ANGLE (or any non-desktop GL implementation). The shader validator needs to be changed to generate GLSL ES rather than GLSL. There may be additional problems. Changing the synopsis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300336</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-10-27 10:21:49 -0700</bug_when>
    <thetext>In the initialization, code like

    glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
    glEnable(GL_POINT_SPRITE);

should only be executed if the backend is desktop GL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307087</commentid>
    <comment_count>3</comment_count>
      <attachid>73446</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-09 17:40:46 -0800</bug_when>
    <thetext>Created attachment 73446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307093</commentid>
    <comment_count>4</comment_count>
      <attachid>73446</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-11-09 17:47:49 -0800</bug_when>
    <thetext>Comment on attachment 73446
Patch

R=me

one suggestion: consider making the isGLES2 flag a member and check that instead of having checks for gfx::GetGLImplementation() everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307096</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-09 18:02:59 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; one suggestion: consider making the isGLES2 flag a member and check that instead of having checks for gfx::GetGLImplementation() everywhere.

Thanks, that&apos;s a good suggestion. I&apos;ll do that in the landed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307110</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-09 18:26:37 -0800</bug_when>
    <thetext>Committed r71705: &lt;http://trac.webkit.org/changeset/71705&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307114</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-09 19:09:58 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/71705 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308741</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-12 13:35:23 -0800</bug_when>
    <thetext>Committed r71942: &lt;http://trac.webkit.org/changeset/71942&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73446</attachid>
            <date>2010-11-09 17:40:46 -0800</date>
            <delta_ts>2010-11-09 17:47:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48282-20101109174045.patch</filename>
            <type>text/plain</type>
            <size>10266</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzE2OTkpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMTEtMDkgIEtlbm5l
dGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwgZG9l
cyBub3QgcnVuIG9uIHRvcCBvZiBPcGVuR0wgRVMgMi4wIGltcGxlbWVudGF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgyODIKKworICAgICAg
ICBGaXhlZCBhc3N1bXB0aW9ucyBpbiBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsIHRo
YXQgaXQgd2FzCisgICAgICAgIHJ1bm5pbmcgb24gdG9wIG9mIGRlc2t0b3AgR0wuCisKKyAgICAg
ICAgVGVzdGVkIHZhcmlvdXMgV2ViR0wgZGVtb3Mgb24gV2luZG93cyB3aXRoIEFOR0xFIGFuZAor
ICAgICAgICAtLWluLXByb2Nlc3Mtd2ViZ2wgLS1kaXNhYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0
aW5nOyBhbGwgYXJlIG5vdworICAgICAgICB3b3JraW5nLiBWZXJpZmllZCB0aGF0IC0tdXNlLWds
PWRlc2t0b3AgY29udGludWVzIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIHNhbWUgY29uZmlndXJh
dGlvbi4KKworICAgICAgICAqIHNyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6aW5p
dGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdElt
cGw6OnZhbGlkYXRlQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29u
dGV4dDNERGVmYXVsdEltcGw6OnJlc29sdmVNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OnJlc2hhcGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpyZWFkQmFj
a0ZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0REZWZh
dWx0SW1wbDo6Z2V0SW50ZWdlcnYpOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRERlZmF1bHRJbXBsOjphbmdsZVZhbGlkYXRlU2hhZGVyU291cmNlKToKKwogMjAxMC0xMS0w
OSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGlj
c0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwCShyZXZpc2lvbiA3MTY5OSkK
KysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2luY2x1ZGUgImFwcC9nZngv
Z2wvZ2xfYmluZGluZ3MuaCIKICNpbmNsdWRlICJhcHAvZ2Z4L2dsL2dsX2NvbnRleHQuaCIKKyNp
bmNsdWRlICJhcHAvZ2Z4L2dsL2dsX2ltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSA8d3RmL093bkFycmF5
UHRyLmg+CkBAIC0xNjgsOCArMTY5LDEwIEBAIGJvb2wgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZh
dWx0SW1wbDo6aW4KIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogCi0gICAgZ2xFbmFibGUo
R0xfVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRSk7Ci0gICAgZ2xFbmFibGUoR0xfUE9JTlRfU1BS
SVRFKTsKKyAgICBpZiAoZ2Z4OjpHZXRHTEltcGxlbWVudGF0aW9uKCkgIT0gZ2Z4OjprR0xJbXBs
ZW1lbnRhdGlvbkVHTEdMRVMyKSB7CisgICAgICAgIGdsRW5hYmxlKEdMX1ZFUlRFWF9QUk9HUkFN
X1BPSU5UX1NJWkUpOworICAgICAgICBnbEVuYWJsZShHTF9QT0lOVF9TUFJJVEUpOworICAgIH0K
IAogICAgIGlmICghYW5nbGVDcmVhdGVDb21waWxlcnMoKSkgewogICAgICAgICBhbmdsZURlc3Ry
b3lDb21waWxlcnMoKTsKQEAgLTE4Nyw3ICsxOTAsOCBAQCB2b2lkIFdlYkdyYXBoaWNzQ29udGV4
dDNERGVmYXVsdEltcGw6OnZhCiAgICAgY29uc3QgY2hhciogZXh0ZW5zaW9ucyA9IHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGdsR2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKTsKIAogICAg
IGlmIChtX2F0dHJpYnV0ZXMuc3RlbmNpbCkgewotICAgICAgICBpZiAoc3Ryc3RyKGV4dGVuc2lv
bnMsICJHTF9FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKSkgeworICAgICAgICBpZiAoc3Ryc3Ry
KGV4dGVuc2lvbnMsICJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKQorICAgICAgICAgICAg
fHwgc3Ryc3RyKGV4dGVuc2lvbnMsICJHTF9FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKSkgewog
ICAgICAgICAgICAgaWYgKCFtX2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgbV9h
dHRyaWJ1dGVzLmRlcHRoID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCkBAIC0yMDEsNyArMjA1LDEw
IEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6dmEKICAgICAgICAgaWYg
KCFzdHJzdHIodmVuZG9yLCAiTlZJRElBIikpCiAgICAgICAgICAgICBpc1ZhbGlkVmVuZG9yID0g
ZmFsc2U7CiAjZW5kaWYKLSAgICAgICAgaWYgKCFpc1ZhbGlkVmVuZG9yIHx8ICFzdHJzdHIoZXh0
ZW5zaW9ucywgIkdMX0VYVF9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpKQorICAgICAgICBpZiAo
IShpc1ZhbGlkVmVuZG9yCisgICAgICAgICAgICAgICYmIChzdHJzdHIoZXh0ZW5zaW9ucywgIkdM
X0VYVF9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpCisgICAgICAgICAgICAgICAgICB8fCAoc3Ry
c3RyKGV4dGVuc2lvbnMsICJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgJiYgc3Ryc3RyKGV4dGVuc2lvbnMsICJHTF9PRVNfcmdiOF9yZ2Jh
OCIpKSkpKQogICAgICAgICAgICAgbV9hdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOwogCiAg
ICAgICAgIC8vIERvbid0IGFudGlhbGlhcyB3aGVuIHVzaW5nIE1lc2EgdG8gZW5zdXJlIG1vcmUg
cmVsaWFibGUgdGVzdGluZyBhbmQKQEAgLTIyMCw3ICsyMjcsMTIgQEAgdm9pZCBXZWJHcmFwaGlj
c0NvbnRleHQzRERlZmF1bHRJbXBsOjpyZQogICAgIGlmIChtX2F0dHJpYnV0ZXMuYW50aWFsaWFz
KSB7CiAgICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX1JFQURfRlJBTUVCVUZGRVJfRVhU
LCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRFJB
V19GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKLSAgICAgICAgZ2xCbGl0RnJhbWVidWZmZXJFWFQo
eCwgeSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCB4LCB5LCB4ICsgd2lkdGgsIHkgKyBoZWlnaHQs
IEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX0xJTkVBUik7CisgICAgICAgIGlmIChnbEJsaXRGcmFt
ZWJ1ZmZlckVYVCkKKyAgICAgICAgICAgIGdsQmxpdEZyYW1lYnVmZmVyRVhUKHgsIHksIHggKyB3
aWR0aCwgeSArIGhlaWdodCwgeCwgeSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCBHTF9DT0xPUl9C
VUZGRVJfQklULCBHTF9ORUFSRVNUKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NF
UlQoZ2xCbGl0RnJhbWVidWZmZXJBTkdMRSk7CisgICAgICAgICAgICBnbEJsaXRGcmFtZWJ1ZmZl
ckFOR0xFKHgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdodCwgeCwgeSwgeCArIHdpZHRoLCB5ICsg
aGVpZ2h0LCBHTF9DT0xPUl9CVUZGRVJfQklULCBHTF9ORUFSRVNUKTsKKyAgICAgICAgfQogICAg
ICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8p
OwogICAgIH0KIH0KQEAgLTMyOCwxMiArMzQwLDE3IEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0
M0REZWZhdWx0SW1wbDo6cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIEdMaW50IGludGVybmFs
Q29sb3JGb3JtYXQsIGNvbG9yRm9ybWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7
CisgICAgR0xpbnQgaW50ZXJuYWxNdWx0aXNhbXBsZWRDb2xvckZvcm1hdCwgaW50ZXJuYWxDb2xv
ckZvcm1hdCwgY29sb3JGb3JtYXQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gMDsKKyAg
ICBib29sIGlzR0xFUzIgPSBnZng6OkdldEdMSW1wbGVtZW50YXRpb24oKSA9PSBnZng6OmtHTElt
cGxlbWVudGF0aW9uRUdMR0xFUzI7CiAgICAgaWYgKG1fYXR0cmlidXRlcy5hbHBoYSkgewotICAg
ICAgICBpbnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7CisgICAgICAgIC8vIEdMX1JHQkE4
X09FUyA9PSBHTF9SR0JBOAorICAgICAgICBpbnRlcm5hbE11bHRpc2FtcGxlZENvbG9yRm9ybWF0
ID0gR0xfUkdCQTg7CisgICAgICAgIGludGVybmFsQ29sb3JGb3JtYXQgPSBpc0dMRVMyID8gR0xf
UkdCQSA6IEdMX1JHQkE4OwogICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQkE7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgaW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQjg7CisgICAgICAgIC8v
IEdMX1JHQjhfT0VTID09IEdMX1JHQjgKKyAgICAgICAgaW50ZXJuYWxNdWx0aXNhbXBsZWRDb2xv
ckZvcm1hdCA9IEdMX1JHQjg7CisgICAgICAgIGludGVybmFsQ29sb3JGb3JtYXQgPSBpc0dMRVMy
ID8gR0xfUkdCIDogR0xfUkdCODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0I7CiAgICAg
fQogICAgIGlmIChtX2F0dHJpYnV0ZXMuc3RlbmNpbCB8fCBtX2F0dHJpYnV0ZXMuZGVwdGgpIHsK
QEAgLTM0MSw4ICszNTgsMTIgQEAgdm9pZCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBs
OjpyZQogICAgICAgICAvLyBTZWUgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbCBjb25zdHJ1Y3Rv
ci4KICAgICAgICAgaWYgKG1fYXR0cmlidXRlcy5zdGVuY2lsICYmIG1fYXR0cmlidXRlcy5kZXB0
aCkKICAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9T
VEVOQ0lMOF9FWFQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVu
Y2lsRm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UOworICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgIGlmIChnZng6OkdldEdMSW1wbGVtZW50YXRpb24oKSA9PSBnZng6OmtHTEltcGxlbWVudGF0
aW9uRUdMR0xFUzIpCisgICAgICAgICAgICAgICAgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQg
PSBHTF9ERVBUSF9DT01QT05FTlQxNjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAgLTM1Nywx
MSArMzc4LDIxIEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6cmUKICAg
ICAgICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0
aXNhbXBsZUZCTyk7CiAgICAgICAgIH0KICAgICAgICAgZ2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdM
X1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGds
UmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNh
bXBsZUNvdW50LCBpbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAg
aWYgKGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKQorICAgICAgICAgICAgZ2xS
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2Ft
cGxlQ291bnQsIGludGVybmFsTXVsdGlzYW1wbGVkQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChnbFJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZUFOR0xFKTsKKyAgICAgICAgICAgIGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11
bHRpc2FtcGxlQU5HTEUoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIGludGVybmFs
TXVsdGlzYW1wbGVkQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICB9CiAgICAg
ICAgIGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9D
T0xPUl9BVFRBQ0hNRU5UMF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVD
b2xvckJ1ZmZlcik7CiAgICAgICAgIGlmIChtX2F0dHJpYnV0ZXMuc3RlbmNpbCB8fCBtX2F0dHJp
YnV0ZXMuZGVwdGgpIHsKICAgICAgICAgICAgIGdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5E
RVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAg
ICAgIGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9F
WFQsIHNhbXBsZUNvdW50LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdo
dCk7CisgICAgICAgICAgICBpZiAoZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQp
CisgICAgICAgICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xf
UkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0
LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFT
U0VSVChnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUFOR0xFKTsKKyAgICAgICAgICAg
ICAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUFOR0xFKEdMX1JFTkRFUkJVRkZF
Ul9FWFQsIHNhbXBsZUNvdW50LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhl
aWdodCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobV9hdHRyaWJ1dGVzLnN0ZW5j
aWwpCiAgICAgICAgICAgICAgICAgZ2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFN
RUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9F
WFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgaWYgKG1f
YXR0cmlidXRlcy5kZXB0aCkKQEAgLTUwOCw5ICs1MzksMTUgQEAgYm9vbCBXZWJHcmFwaGljc0Nv
bnRleHQzRERlZmF1bHRJbXBsOjpyZQogICAgICAgICBtdXN0UmVzdG9yZVBhY2tBbGlnbm1lbnQg
PSB0cnVlOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBPcGVuR0wgRVMgMiBkb2VzIG5vdCBzdXBw
b3J0IEdMX0JHUkEgc28gdGhpcyBmYWlscyB3aGVuCi0gICAgLy8gdXNpbmcgdGhhdCBiYWNrZW5k
LgotICAgIGdsUmVhZFBpeGVscygwLCAwLCBtX2NhY2hlZFdpZHRoLCBtX2NhY2hlZEhlaWdodCwg
R0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICBpZiAoZ2Z4OjpHZXRHTElt
cGxlbWVudGF0aW9uKCkgPT0gZ2Z4OjprR0xJbXBsZW1lbnRhdGlvbkVHTEdMRVMyKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB0ZXN0aW5nIGZvciBwcmVzZW5jZSBvZiBHTF9PRVNfcmVh
ZF9mb3JtYXQKKyAgICAgICAgLy8gYW5kIEdMX0VYVF9yZWFkX2Zvcm1hdF9iZ3JhLCBhbmQgdXNp
bmcgR0xfQkdSQV9FWFQgaGVyZQorICAgICAgICAvLyBkaXJlY3RseS4KKyAgICAgICAgZ2xSZWFk
UGl4ZWxzKDAsIDAsIG1fY2FjaGVkV2lkdGgsIG1fY2FjaGVkSGVpZ2h0LCBHTF9SR0JBLCBHTF9V
TlNJR05FRF9CWVRFLCBwaXhlbHMpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJ1
ZmZlclNpemU7IGkgKz0gNCkKKyAgICAgICAgICAgIHN0ZDo6c3dhcChwaXhlbHNbaV0sIHBpeGVs
c1tpICsgMl0pOworICAgIH0gZWxzZQorICAgICAgICBnbFJlYWRQaXhlbHMoMCwgMCwgbV9jYWNo
ZWRXaWR0aCwgbV9jYWNoZWRIZWlnaHQsIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIHBpeGVs
cyk7CiAKICAgICBpZiAobXVzdFJlc3RvcmVQYWNrQWxpZ25tZW50KQogICAgICAgICBnbFBpeGVs
U3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCBwYWNrQWxpZ25tZW50KTsKQEAgLTk1MSwxMSArOTg4
LDE1IEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6Z2UKIAogdm9pZCBX
ZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpnZXRJbnRlZ2Vydih1bnNpZ25lZCBsb25n
IHBuYW1lLCBpbnQqIHZhbHVlKQogeworICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOworICAgIGlm
IChnZng6OkdldEdMSW1wbGVtZW50YXRpb24oKSA9PSBnZng6OmtHTEltcGxlbWVudGF0aW9uRUdM
R0xFUzIpIHsKKyAgICAgICAgZ2xHZXRJbnRlZ2VydihwbmFtZSwgdmFsdWUpOworICAgICAgICBy
ZXR1cm47CisgICAgfQogICAgIC8vIE5lZWQgdG8gZW11bGF0ZSBNQVhfRlJBR01FTlQvVkVSVEVY
X1VOSUZPUk1fVkVDVE9SUyBhbmQgTUFYX1ZBUllJTkdfVkVDVE9SUwogICAgIC8vIGJlY2F1c2Ug
ZGVza3RvcCBHTCdzIGNvcnJlc3BvbmRpbmcgcXVlcmllcyByZXR1cm4gdGhlIG51bWJlciBvZiBj
b21wb25lbnRzCiAgICAgLy8gd2hlcmVhcyBHTEVTMiByZXR1cm4gdGhlIG51bWJlciBvZiB2ZWN0
b3JzIChlYWNoIHZlY3RvciBoYXMgNCBjb21wb25lbnRzKS4KICAgICAvLyBUaGVyZWZvcmUsIHRo
ZSB2YWx1ZSByZXR1cm5lZCBieSBkZXNrdG9wIEdMIG5lZWRzIHRvIGJlIGRpdmlkZWQgYnkgNC4K
LSAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBNQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTOgogICAgICAgICBnbEdldEludGVnZXJ2KEdM
X01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMsIHZhbHVlKTsKQEAgLTE1NTEsMTEgKzE1
OTIsMjIgQEAgYm9vbCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjphbgogICAgIH0K
IAogICAgIGludCBsZW5ndGggPSAwOwotICAgIFNoR2V0SW5mbyhjb21waWxlciwgU0hfT0JKRUNU
X0NPREVfTEVOR1RILCAmbGVuZ3RoKTsKKyAgICBib29sIGlzR0xFUzIgPSBnZng6OkdldEdMSW1w
bGVtZW50YXRpb24oKSA9PSBnZng6OmtHTEltcGxlbWVudGF0aW9uRUdMR0xFUzI7CisgICAgaWYg
KGlzR0xFUzIpIHsKKyAgICAgICAgLy8gQU5HTEUgZG9lcyBub3QgeWV0IGhhdmUgYSBHTFNMIEVT
IGJhY2tlbmQuIFRoZXJlZm9yZSBpZiB0aGUKKyAgICAgICAgLy8gY29tcGlsZSBzdWNjZWVkcyB3
ZSBzZW5kIHRoZSBvcmlnaW5hbCBzb3VyY2UgZG93bi4KKyAgICAgICAgbGVuZ3RoID0gc3RybGVu
KGVudHJ5LnNvdXJjZSk7CisgICAgICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICAgICAgKyts
ZW5ndGg7IC8vIEFkZCBudWxsIHRlcm1pbmF0b3IKKyAgICB9IGVsc2UKKyAgICAgICAgU2hHZXRJ
bmZvKGNvbXBpbGVyLCBTSF9PQkpFQ1RfQ09ERV9MRU5HVEgsICZsZW5ndGgpOwogICAgIGlmIChs
ZW5ndGggPiAxKSB7CiAgICAgICAgIGlmICghdHJ5RmFzdE1hbGxvYyhsZW5ndGggKiBzaXplb2Yo
Y2hhcikpLmdldFZhbHVlKGVudHJ5LnRyYW5zbGF0ZWRTb3VyY2UpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBTaEdldE9iamVjdENvZGUoY29tcGlsZXIsIGVudHJ5LnRyYW5z
bGF0ZWRTb3VyY2UpOworICAgICAgICBpZiAoaXNHTEVTMikKKyAgICAgICAgICAgIHN0cm5jcHko
ZW50cnkudHJhbnNsYXRlZFNvdXJjZSwgZW50cnkuc291cmNlLCBsZW5ndGgpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBTaEdldE9iamVjdENvZGUoY29tcGlsZXIsIGVudHJ5LnRyYW5zbGF0
ZWRTb3VyY2UpOwogICAgIH0KICAgICBlbnRyeS5pc1ZhbGlkID0gdHJ1ZTsKICAgICByZXR1cm4g
dHJ1ZTsK
</data>
<flag name="review"
          id="63882"
          type_id="1"
          status="+"
          setter="jamesr"
    />
    <flag name="commit-queue"
          id="63883"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>