Closed Bug 1703668 Opened 3 years ago Closed 8 months ago

[meta] Google Meet lacks "Change Background" feature to add a background/blur to video stream

Categories

(Web Compatibility :: Site Reports, defect, P1)

Firefox 89
Desktop
All

Tracking

(Webcompat Priority:P1, firefox-esr91 affected, firefox97 wontfix, firefox98 wontfix, firefox99 wontfix, firefox103 wontfix, firefox117 fixed)

RESOLVED FIXED
Webcompat Priority P1
Tracking Status
firefox-esr91 --- affected
firefox97 --- wontfix
firefox98 --- wontfix
firefox99 --- wontfix
firefox103 --- wontfix
firefox117 --- fixed

People

(Reporter: divjot94, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: meta)

Attachments

(6 files, 2 obsolete files)

Attached image brave-vs-firefox.png

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36

Steps to reproduce:

  1. Open https://meet.google.com/ on Firefox
  2. Login and join/create a new meeting
  3. Look for "Change background" option

Actual results:

Video stream works correctly but there's no change background option. Even if you use User Agent Switcher to spoof Chrome/Brave/Edge, it still doesn't work.

Expected results:

You should see "Change background" option to add blur/backgrounds.

Depends on: wasm-simd

SIMD might be involved but is feature-complete and enabled by default in FF Nightly; if SIMD detection is all there's to it then this should not be a problem on Nightly. So something else is likely going on.

(I was going to say that meet is possibly also sniffing the client more carefully, since SIMD hasn't shipped in either Chrome or Firefox and Google Meet is using simd on Chrome under an Origin Trial setup, but I would not think that Brave would be allowed to opt in to the Origin Trial necessarily, so maybe that's not a factor.)

Possibly something for the webcompat people to look at / triage first. They have already done some digging, https://webcompat.com/issues/62428, which suggests we're simply being served different code.

Flags: needinfo?(kdubost)

Tried on Firefox Nightly 89.0a1 (2021-04-07) (64-bit) with javascript.options.wasm_simd=true & javascript.options.wasm_simd_wormhole=true and even with User Agent as that of Chrome. None of these fixed the issue. So there's some much more convoluted feature detection in place in that case.

It's not possible to test with a simple user agent override even on RDM.

  • Login in is not possible with Firefox and Chrome UA. Google will reject saying there is an issue. So it is necessary to login with Firefox UA (and this already mean we partly screw the results of the experiment.)
  • Let's log in. Then activate the RDM profile for Chrome.
  • Create an instant meeting with the option new meeting. It will reply with an error message and a full log of errors. So it's not possible to test that way either.
09:40:32.041 Navigated to https://meet.google.com/_meet/pdn-fqqx-epm?ijlm=1618188031671&adhoc=1&hs=187
09:40:32.267 Cookie “SIDCC” has “SameSite” policy set to “Lax” because it is missing a “SameSite” attribute, and “SameSite=Lax” is the default value for this attribute. pdn-fqqx-epm
09:40:32.411 WARNING! m=_b,_tp:537:253
09:40:32.412 Using this console may allow attackers to impersonate you and steal your information using an attack called Self-XSS.
Do not enter or paste code that you don't understand. m=_b,_tp:537:253
09:40:33.367 The Notification permission may only be requested from inside a short running user-generated event handler. pdn-fqqx-epm
09:40:33.921
Uncaught (in promise) TypeError: RTCPeerConnection.getStats: Argument 1 does not implement interface MediaStreamTrack.
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:2761:496
09:40:34.013
Uncaught (in promise) Error: [fatal/backend: {"oa":{"1":{"oa":null,"Oa":-1,"Ba":[4,null,null,"-3321865817512464241",1618188033994],"Qa":1.7976931348623157e+308,"Ta":{}}},"Ea":"chselrp","Oa":0,"Ba":["chselrp",[4,null,null,"-3321865817512464241",1618188033994]],"Qa":1.7976931348623157e+308,"Ta":{}}]
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:2157:332
09:40:34.706 Cookie “SIDCC” has “SameSite” policy set to “Lax” because it is missing a “SameSite” attribute, and “SameSite=Lax” is the default value for this attribute. trigger
09:40:35.976
Uncaught (in promise) DOMException: Cannot set remote answer in state stable m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:2764
09:40:35.977
Uncaught (in promise) Error: DisconnectedError, EndCause = 19
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:6158:228
09:40:35.977
Uncaught (in promise) Error: DisconnectedError, EndCause = 19
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:6158:228
09:40:35.977
Uncaught (in promise) Error: DisconnectedError, EndCause = 19
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:6158:228
09:40:35.977 Uncaught (in promise) Error: DisconnectedError, EndCause = 19
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:6158:228
09:40:35.977 Uncaught (in promise) Error: DisconnectedError, EndCause = 19
m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d,V3dDOb,XU5LFb,hl,rrm,c6KVyc,jKHFJb,mI3LFb,WO9ee,T6U9J,lHoXXe,SFhYHb,rsr,oFF0ab,sVRBvb,AePfdf,DCwKHe,RqS4qe,t8N1l,nUMwj,zmuYmd,mibVie,syIdOe,k2r0oe,OoSMve,FMq9Lb,Bmvled,KdcBrc,O6y8ed,NpD4ec,PrPYRd,O4tzsb,iWP1Yb,MpJwZc,O8k1Cd,NwH0H,OmgaI,HLo3Ef,x60fie,xiqEse,MsyKad,lazG7b,ma,kXiGjb,khenvb,azqyEc,W4cEdc,tQz2Ve,XVMNvd,L1AAkb,KUM7Z,rE6Mgd,Fl2dbf,fFdwef,GcAaod,rn9YO,Y0bgVb,s39S4,lwddkf,gychg,w9hDv,RMhBfe,tgTcU,qCSYWe,lAg79c,TH1Apc,Ryzncf,SdcwHb,aW3pY,YLQSd,PQaYAf,P1S3zf,DM8swd,pw70Gc,zOASve,EFQ78c,Ulmmrd,ZfAoz,Ivl8bd,mdR7q,kmkrAf,PGW6ue,CBlRxf,MdUzUe,I6YDgd,N5Lqpc,fgj8Rb,xQtZb,lPKSwe,y4Nztd,QIhFr,JNoxi,texUgd,MI6k7c,kjKdXe,pB6Zqd,llTWPd,FYCkde,rHjpXd,yDVVkb,EcLnpd,SF3gsd,FSOnAf,cilABe,jdrlZe,qexExd,DNsE7e,wfcdnd,swpmp,gtEOic,xGC4Gb,QBFzrf,wiZ2v,hKSk3e,oUdseb,WWLNXd,sPwFo,iTsyac,Rsjrje,hc6Ubd,rNa50e,dWHZee,r3O6kf,CpMwL,Tnlgmf,DPQwOe,DDvSYd,CvtcN,KG2eXe,SpsfSb,yF5Ngd,FgkHjb,cWjcJb,Lamzc,tfTN8c,o02Jie,zthRrb,BZ8iCc,Cw0Hjd,LgZW9b,ABMzYd,OdgxHf,VwDzFe,zbML3c,vWBbe,alwr6,JECyjf,ixOrqc,dlck6b,HDvRde,Uas9Hd,BVgquf,a9EW5e,Z7OaKe,A7fCU,JGjVRe,hIO81e,UgAtXe,pjICDe:6158:228
09:40:35.977 Uncaught (in promise) 
Object { stack: "_.ha@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:4:95\n_.pg@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:153:23\n_.VL@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/ck=boq-rtc.MeetingsUi.mQGaz2q2jkU.L.B1.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/exm=LEikZe,_b,_tp,byfTOb,lsjVmc/excm=_b,_tp,calldesktoppageview/ed=1/wt=2/ct=zgms/rs=AL5CKSHAA02C1YVht2a17BXfVKIA7WqvgQ/m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d…", message: "Owner asynchronously disposed", oa: false }

09:40:35.977 Uncaught (in promise) 
Object { stack: "_.ha@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:4:95\n_.pg@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:153:23\n_.VL@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/ck=boq-rtc.MeetingsUi.mQGaz2q2jkU.L.B1.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/exm=LEikZe,_b,_tp,byfTOb,lsjVmc/excm=_b,_tp,calldesktoppageview/ed=1/wt=2/ct=zgms/rs=AL5CKSHAA02C1YVht2a17BXfVKIA7WqvgQ/m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d…", message: "Owner asynchronously disposed", oa: false }

09:40:35.977 Uncaught (in promise) 
Object { stack: "_.ha@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:4:95\n_.pg@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:153:23\n_.VL@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/ck=boq-rtc.MeetingsUi.mQGaz2q2jkU.L.B1.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/exm=LEikZe,_b,_tp,byfTOb,lsjVmc/excm=_b,_tp,calldesktoppageview/ed=1/wt=2/ct=zgms/rs=AL5CKSHAA02C1YVht2a17BXfVKIA7WqvgQ/m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d…", message: "Owner asynchronously disposed", oa: false }

09:40:35.977 Uncaught (in promise) 
Object { stack: "_.ha@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:4:95\n_.pg@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/excm=_b,_tp,calldesktoppageview/ed=1/dg=0/wt=2/ct=zgms/rs=AL5CKSFwrJoXs3txTMnynpGCHDV8AQVOKw/m=_b,_tp:153:23\n_.VL@https://meet.google.com/_/scs/mss-static/_/js/k=boq-rtc.MeetingsUi.en_GB.Vy4ZtoBRwrM.2020.O/ck=boq-rtc.MeetingsUi.mQGaz2q2jkU.L.B1.O/am=BwUAggoAoAkCph84AAQMIAoAAMAACmQHAAAgAAAA6IbiDP7PKCUAAIBWAAAAQMcAFEkACA/d=1/exm=LEikZe,_b,_tp,byfTOb,lsjVmc/excm=_b,_tp,calldesktoppageview/ed=1/wt=2/ct=zgms/rs=AL5CKSHAA02C1YVht2a17BXfVKIA7WqvgQ/m=n73qwf,ws9Tlc,IZT63,e5qFLc,GkRiKb,UUJqVe,O1Gjze,xUdipf,blwjVc,fKUV3e,aurFic,COQbmf,U0aPgd,ZwDk9d…", message: "Owner asynchronously disposed", oa: false }

There is sophisticated user agent sniffing going on in

    _.S0e = function (a) {
      return 24 === a && _.uf() && _.Qc(_.dea(), '6.1') && R0e('57') || 109 === a && R0e('56') ? 'Update Google Chrome' : _.Kid(a, 1)
    };

And the SIMD thing seems to be under origin-trial

<meta http-equiv="origin-trial" data-feature="WebAssembly SIMD" content="AqeyBSjqs4MpO+SHbpktv0jc8tH3UkmYjyIQ/qPuH9HbeSdTgbvKR3eeG+Y/ImcwYwLKGy14LLiZPtI129ag2wkAAABmeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYkFzc2VtYmx5U2ltZCIsImV4cGlyeSI6MTYyMTM4MjM5OSwiaXNTdWJkb21haW4iOnRydWV9">

hmm which means that Google is using origin trial for their own services defeating the purpose of… origin trials which is about not imposing a browser and testing a feature.

Flags: needinfo?(kdubost)

So I'm still not sure this is a dependency on SIMD (minified code and yada yada.), but there are things where you need Chrome Origin Trials to make the site work as expected with a Chrome User Agent. So it's not as simple as faking the UA to test.

Yeah, makes sense, thanks for investigating. (Wasm SIMD has been a long and hard road, the origin trial has been extended twice as the spec has been evolving, but both Google and we want SIMD to succeed, so putting it to use on the web has been a meaningful exercise IMO. The Origin Trial people have put their foot down for further extensions, in their defense. We're also allowing some of our own experiments to use SIMD in FF88 release, but we're not shipping until FF89.)

I managed to reproduce this issue on the latest Nightly 89.0a1 on Windows 10 x64.
Marking this as NEW and setting up flags.

Severity: -- → S3
Status: UNCONFIRMED → NEW
Component: Untriaged → Javascript: WebAssembly
Ever confirmed: true
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → Desktop

There's no evidence as of yet that this is a WebAssembly problem, see comment 3.

Component: Javascript: WebAssembly → General

Let's contact Google about it. That would be more straightforward than poking in the dark.
I sent an email to mozilla-google partner mailing list.

Depends on: 1695585
No longer depends on: wasm-simd

The mozilla-google mailing list discussion revealed a previous thread with the subject "meet blurred background and firefox webgl performance" that pointed to a performance problem in WebGL, but that archived thread is no longer available. Paraphrasing from an email record of it:

Most of the time is being spent in glTexSubImage2D and glReadPixels, causing background blur to take twice as long per frame. There is potentially a way to prevent stalls there by reading previous frames, though Firefox's new out-of-process WebGL arch doesn't have this optimization yet.

Jeffrey, is there a WebGL bug for this that we can block on?

Flags: needinfo?(jgilbert)
Depends on: 1716386

Filed bug 1716386 for the time we're seeing in ReadPixels, but it would require refactoring in the Meet app. Details on the approach are linked from that bug, but the main doc is here: https://jdashg.github.io/misc/async-gpu-downloads.html (it's about using PBO-ReadPixels and fences) If the app were using this approach already, profiling would show us spending time in getBufferSubData or glMapBufferRange. Without changes to Meet this won't help.

I don't think a naive blocking ReadPixels has any non-intractable slowpaths, but we can always double-check.

This needs a profile we can analyze. There's probably a slowpath being hit for TexSubImage, though we try to print warnings to the console when we hit slowpaths there.

Flags: needinfo?(jgilbert)

I have requested a way to force-enable this for testing from the Meet team over email.

My initial profile here doesn't seem to show anything abysmal, and perf seems acceptable on this machine. (admittedly a beefy machine)

https://share.firefox.dev/3vBHWyR

  • 4.7% texImage2D
    • 1.6+0.7=2.3% PlanarYCbCrImage::GetAsSourceSurface
      • 1.3%+0.7=2.0% mozilla::gfx::ConvertYCbCrToRGBInternal
    • 1.5+0.7=2.2% mozilla::ClientWebGLContext::Run
      • 1.5+0.7=2.2% memcpy
  • 3.0+6.0=9.0% readPixels
    • 9.0% PWebGL::Msg_ReadPixels blocking

I will try on a slower machine.

I seem to remember fixing a perf bug in either uploads or downloads, so it's also possible that perf is better now than it was when the Meet team last did perf validation testing.

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: General → Audio/Video: Playback

Maybe this should be filed under web compat? Anyways, I don't think A/V Playback is the right component, because it sounds like this feature is intentionally disabled, and it is due to some graphics or WebAssembly processing issue.

Component: Audio/Video: Playback → General

I agree this should be moved to the Web Compatibility component. We can also add https://github.com/webcompat/web-bugs/issues/62428 to the See Also field and add bug 1431543 to the Blocks field.

Attached image dialog

Google Meet now shows an explicit dialog that background effect is not supported on Firefox.

A profile on a slower machine: https://share.firefox.dev/3ozP9zT

We spend 21+25=46% of the time on Content in PWebGLChild::SendReadPixels, however only 29% on GPU process in PWebGLParent::RecvReadPixels. This might actually be due to the other work sent ahead asynchronously. I expect to see the Content time for SendReadPixels get smaller if we optimize e.g. texture upload.

It's worth checking why fast gpu-gpu video upload path isn't being hit here.

If we can't hit the gpu-gpu fastpath here, there's 11% of time spent in ConvertImage under TexImage here: https://searchfox.org/mozilla-central/source/dom/canvas/TexUnpackBlob.cpp#464
We also convert the yuv video frame into a BGRX SourceSurface, which we then memcpy into serialization memory. We might be able to convert directly into serialization memory, which would save 7% here.
These should both help a bunch if we make them faster.

Another opportunity here might be to use async gpu downloading in mozilla::dom::RequestedFrameRefreshObserver::WillRefresh. I see that we can provide both data and a time for the frame, so if we pipeline downloading frames from the gpu, that could improve throughput at cost of latency. With frames marked with times, we shouldn't have audio-video-desync, just an extra frame of latency, which should be fine for this sort of thing.

We're not hitting the gpu-gpu fastpath because this is a planaryuv Image with a shmem texture client.
Given this as input, the fastest possible code would push the shmem along to the webglparent process, which would upload the yuv planes, and then gpu-gpu convert them.

Here's a profile of the gpu thread of Chrome that might be useful: https://share.firefox.dev/3Dp48AR. Note: it doesn't include any time that a thread was waiting so it may be hard get a sense for how much time is being spent waiting for readpixels/fences etc.

Also, that profile has meet blur being turned and off so I'm not sure during which parts the blur is actually running.

(In reply to Jeff Gilbert [:jgilbert] from comment #20)

Another opportunity here might be to use async gpu downloading in mozilla::dom::RequestedFrameRefreshObserver::WillRefresh. I see that we can provide both data and a time for the frame, so if we pipeline downloading frames from the gpu, that could improve throughput at cost of latency. With frames marked with times, we shouldn't have audio-video-desync, just an extra frame of latency, which should be fine for this sort of thing.

It looks like we do a readback of the WebGL <canvas> contents, copy them (which seems unnecessary, since the readback should be pixel data we can just take ownership of), and then construct a layers::Image around that new surface.

Could we just instruct the remote side to do a gpu->gpu copy (asynchronously), and return a reference to this remote GPU texture? This is basically what we're doing already with GPUVideoImage, so hopefully that could be reused in part.

If the layers::Image is then passed into the video rendering pipeline, then the compositor can resolve the remote reference without any readback (again, like remote decoded video frames). If the consumer really does want pixel access in the content process, then the readback can be requested on the GPUVideoImage (and be slow).

To be clear, I'm talking about https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/captureStream , and not downloading pixels for sending to the screen. (which we're pretty good at avoiding) Would our capture pipeline be able to deal with gpu-side resources?

Flags: needinfo?(matt.woodrow)

(In reply to Jeff Gilbert [:jgilbert] from comment #25)

To be clear, I'm talking about https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/captureStream , and not downloading pixels for sending to the screen. (which we're pretty good at avoiding) Would our capture pipeline be able to deal with gpu-side resources?

I think it really depends on where the output of the stream is directed and whether that output needs the pixel data synchronously (or at all).

It looks like you can use streams to output into a video element, or draw into a different canvas, so for those use cases it would be a big win.

I'm assuming this case is sending the stream into WebRTC, which will still require the readback (but hopefully async like you suggested).

In general, deferring the readback until we know what the consumer needs seems like a win.

Flags: needinfo?(matt.woodrow)

@pehrsons: Do you know if the capture/encode code can handle this sort of latency in providing frames?

Flags: needinfo?(apehrson)

Sure, as long as the frames come with proper timestamps both MediaRecorder and RTCPeerConnection will handle them properly. The former buffers audio as needed in the Muxer to stay in sync, and the latter will handle it in the remote side's jitter buffer. For the latter we might have to ensure those timestamps are plumbed through properly. Should be straight forward.

Looks like we already use the time from WillRefresh, so if we let that ride along with the async request we should be good.

And we'll want to be sure the frames are delivered in the right order, or we will end up skipping stuff when time appears to go backwards. If, say, the canvas is significantly reduced in size, I suppose an async small download could race with the previous large one?

Flags: needinfo?(apehrson)

I should also note that there is HTMLMediaElement.captureStream that can also pipe video to webrtc. If those video frames are backed by gpu buffers we could again end up doing sync readbacks. If we are putting in the work to do async readbacks, it'd be great if we could cover both these (canvas + media elements) cases.

Depends on: 1529581
Depends on: 1737231, 1737232

Also generally de-inline (WebGLParent::TexImage not DispatchCommand)
TexImage(SurfaceDescriptor).

Assignee: nobody → jgilbert
Status: NEW → ASSIGNED
Depends on: 1746111
Attachment #9253708 - Attachment description: Bug 1703668 - (Re)serialize WebRTC frame SurfaceDescriptorBuffers for convert-and-upload on WebGLParent. → Bug 1746111 - (Re)serialize WebRTC frame SurfaceDescriptorBuffers for convert-and-upload on WebGLParent.

Comment on attachment 9253708 [details]
Bug 1746111 - (Re)serialize WebRTC frame SurfaceDescriptorBuffers for convert-and-upload on WebGLParent.

Revision D132851 was moved to bug 1746111. Setting attachment 9253708 [details] to obsolete.

Attachment #9253708 - Attachment is obsolete: true
Priority: -- → P1

Since this fix might be only part of the solution, I've moved it to its own bug: bug 1746111

Attachment #9255155 - Attachment is obsolete: true
Blocks: meet
Component: General → Desktop
Product: Core → Web Compatibility
No longer depends on: 1737231
Blocks: 1749093
No longer blocks: 1749093

I was able to reproduce the issue. The "Apply visual effects" option is not supported. See also: https://support.google.com/meet/answer/10058482?hl=en&expand_all_zippies=true#requirements&zippy=%2Crequirements-to-apply-visual-effects-on-computer

Tested with:

Browser / Version: Firefox Nightly 98.0a1 (2022-01-31) (64-bit)
Operating System: Mac OSX 10.15.6

Awaiting further investigations

See Also: → 1751830
See Also: 1751830
Assignee: jgilbert → nobody
Severity: S3 → S4
Status: ASSIGNED → NEW
Priority: P1 → P3

Adding the offscreen canvas tracker since that will probably help with performance as well once we ship it.

Depends on: offscreen-canvas
Summary: Google Meet lacks "Change Background" feature to add a background/blur to video stream → [meta] Google Meet lacks "Change Background" feature to add a background/blur to video stream
Severity: S4 → S3
Priority: P3 → P2

Tested the blurring feature on Windows 11 with stable Firefox 98.0.1 (64-bit) and NVDA 2021.3.4 screen reader.

NVDA was started before the browser as a standard use case. No performance issues were noticed while activating either of blurring background options and navigating using keyboard alone within the Video Effects dialog while blurring was active. Jumping to another control did interrupt the previous announcement and started a new one without any hiccups. Did not mention any major issues with it.

3 captured profiles are attached. Let me know if you have any questions.

Hey Anna, can you post your about support text for reference?

Flags: needinfo?(ayeddi)

(In reply to Jim Mathies [:jimm] from comment #41)

Hey Anna, can you post your about support text for reference?

Sure - provided below:

{
  "securitySoftware": {
    "registeredAntiVirus": "Microsoft Defender Antivirus",
    "registeredAntiSpyware": "",
    "registeredFirewall": "Microsoft Firewall"
  },
  "processes": {
    "remoteTypes": {
      "privilegedabout": 1,
      "extension": 1,
      "webIsolated": 7,
      "webServiceWorker": 1,
      "prealloc": 3,
      "gpu": 1,
      "socket": 1
    },
    "maxWebContentProcesses": 8
  },
  "environmentVariables": {
    "MOZ_CRASHREPORTER_DATA_DIRECTORY": "C:\\Users\\Gecko Test\\AppData\\Roaming\\Mozilla\\Firefox\\Crash Reports",
    "MOZ_CRASHREPORTER_EVENTS_DIRECTORY": "C:\\Users\\Gecko Test\\AppData\\Roaming\\Mozilla\\Firefox\\Crash Reports\\events",
    "MOZ_CRASHREPORTER_PING_DIRECTORY": "C:\\Users\\Gecko Test\\AppData\\Roaming\\Mozilla\\Firefox\\Pending Pings",
    "MOZ_CRASHREPORTER_RESTART_ARG_0": "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
    "MOZ_CRASHREPORTER_STRINGS_OVERRIDE": "C:\\Program Files\\Mozilla Firefox\\browser\\crashreporter-override.ini"
  },
  "modifiedPreferences": {
    "accessibility.typeaheadfind.flashBar": 0,
    "browser.contentblocking.category": "standard",
    "browser.search.region": "US",
    "browser.sessionstore.upgradeBackup.latestBuildID": "20220313140707",
    "browser.startup.homepage_override.buildID": "20220313140707",
    "browser.startup.homepage_override.mstone": "98.0.1",
    "browser.urlbar.quicksuggest.dataCollection.enabled": false,
    "browser.urlbar.placeholderName": "Google",
    "browser.urlbar.quicksuggest.migrationVersion": 2,
    "browser.urlbar.quicksuggest.onboardingDialogChoice": "close_1",
    "browser.urlbar.quicksuggest.onboardingDialogVersion": "{\"version\":1,\"variation\":\"d\"}",
    "browser.urlbar.quicksuggest.scenario": "online",
    "browser.urlbar.quicksuggest.showedOnboardingDialog": true,
    "browser.urlbar.tipShownCount.searchTip_onboard": 4,
    "doh-rollout.uri": "https://mozilla.cloudflare-dns.com/dns-query",
    "doh-rollout.mode": 2,
    "doh-rollout.balrog-migration-done": true,
    "doh-rollout.doneFirstRun": true,
    "doh-rollout.home-region": "US",
    "doh-rollout.self-enabled": true,
    "dom.forms.autocomplete.formautofill": true,
    "extensions.lastAppVersion": "98.0.1",
    "idle.lastDailyNotification": 1647970532,
    "media.gmp-gmpopenh264.abi": "x86_64-msvc-x64",
    "media.gmp-gmpopenh264.lastUpdate": 1644354142,
    "media.gmp-gmpopenh264.version": "1.8.1.1",
    "media.gmp-manager.buildID": "20220313140707",
    "media.gmp-manager.lastCheck": 1647880704,
    "media.gmp-widevinecdm.abi": "x86_64-msvc-x64",
    "media.gmp-widevinecdm.lastUpdate": 1644354144,
    "media.gmp-widevinecdm.version": "4.10.2391.0",
    "media.gmp.storage.version.observed": 1,
    "media.hardware-video-decoding.failed": false,
    "media.videocontrols.picture-in-picture.video-toggle.has-used": true,
    "places.database.lastMaintenance": 1647970532,
    "privacy.purge_trackers.date_in_cookie_database": "0",
    "privacy.sanitize.pending": "[{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}}]",
    "privacy.purge_trackers.last_purge": "1647970532566",
    "privacy.userContext.enabled": true,
    "privacy.userContext.extension": "treestyletab@piro.sakura.ne.jp",
    "privacy.userContext.ui.enabled": true,
    "security.remote_settings.crlite_filters.checked": 1648044233,
    "security.remote_settings.intermediates.checked": 1648044233,
    "security.sandbox.content.tempDirSuffix": "{82eaf8b5-363d-4324-8f0a-17d6d5cc412a}",
    "services.sync.declinedEngines": "",
    "services.sync.engine.addresses.available": true,
    "storage.vacuum.last.index": 1,
    "storage.vacuum.last.places.sqlite": 1647291838,
    "ui.osk.debug.keyboardDisplayReason": "IKPOS: Touch screen not found."
  },
  "lockedPreferences": {
    "fission.autostart.session": true
  },
  "printingPreferences": {},
  "media": {
    "currentAudioBackend": "wasapi",
    "currentMaxAudioChannels": 2,
    "currentPreferredSampleRate": 48000,
    "audioOutputDevices": [
      {
        "name": "Speakers (Realtek(R) Audio)",
        "groupId": "INTELAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA2293&REV_1000\\4&38d49d68&0&0001",
        "vendor": "",
        "type": 2,
        "state": 2,
        "preferred": 5,
        "supportedFormat": 4112,
        "defaultFormat": 4096,
        "maxChannels": 2,
        "defaultRate": 48000,
        "maxRate": 48000,
        "minRate": 48000,
        "maxLatency": 480,
        "minLatency": 144
      },
      {
        "name": "",
        "groupId": "",
        "vendor": "",
        "type": 2,
        "state": 0,
        "preferred": 0,
        "supportedFormat": 4112,
        "defaultFormat": 4096,
        "maxChannels": 2,
        "defaultRate": 48000,
        "maxRate": 48000,
        "minRate": 48000,
        "maxLatency": 0,
        "minLatency": 0
      }
    ],
    "audioInputDevices": [
      {
        "name": "Microphone Array (Intel® Smart Sound Technology (Intel® SST))",
        "groupId": "INTELAUDIO\\CTLR_DEV_9DC8&LINKTYPE_02&DEVTYPE_01&VEN_8086&DEV_AE20&SUBSYS_229217AA&REV_0001\\5&4ba0fde&0&0100",
        "vendor": "",
        "type": 1,
        "state": 2,
        "preferred": 5,
        "supportedFormat": 4112,
        "defaultFormat": 4096,
        "maxChannels": 4,
        "defaultRate": 48000,
        "maxRate": 48000,
        "minRate": 48000,
        "maxLatency": 480,
        "minLatency": 96
      }
    ]
  },
  "accessibility": {
    "isActive": true,
    "forceDisabled": 0,
    "handlerUsed": true,
    "instantiator": "UIAUTOMATION|"
  },
  "startupCache": {
    "DiskCachePath": "C:\\Users\\Gecko Test\\AppData\\Local\\Mozilla\\Firefox\\Profiles\\llfyex8w.default-release\\startupCache\\startupCache.8.little",
    "IgnoreDiskCache": false,
    "FoundDiskCacheOnInit": true,
    "WroteToDiskCache": false
  },
  "libraryVersions": {
    "NSPR": {
      "minVersion": "4.33",
      "version": "4.33"
    },
    "NSS": {
      "minVersion": "3.75",
      "version": "3.75"
    },
    "NSSUTIL": {
      "minVersion": "3.75",
      "version": "3.75"
    },
    "NSSSSL": {
      "minVersion": "3.75",
      "version": "3.75"
    },
    "NSSSMIME": {
      "minVersion": "3.75",
      "version": "3.75"
    }
  },
  "userJS": {
    "exists": false
  },
  "intl": {
    "localeService": {
      "requested": [
        "en-US"
      ],
      "available": [
        "en-US"
      ],
      "supported": [
        "en-US"
      ],
      "regionalPrefs": [
        "en-US"
      ],
      "defaultLocale": "en-US"
    },
    "osPrefs": {
      "systemLocales": [
        "en-US"
      ],
      "regionalPrefsLocales": [
        "en-US"
      ]
    }
  },
  "crashes": {
    "submitted": [],
    "pending": 0
  },
  "sandbox": {
    "contentSandboxLevel": 6,
    "effectiveContentSandboxLevel": 6,
    "contentWin32kLockdownState": "Win32k Lockdown disabled -- default value is false"
  },
  "remoteAgent": {
    "listening": false,
    "url": ""
  },
  "graphics": {
    "numTotalWindows": 1,
    "numAcceleratedWindows": 1,
    "windowLayerManagerType": "WebRender",
    "windowLayerManagerRemote": true,
    "adapterDescription": "Intel(R) UHD Graphics 620",
    "adapterVendorID": "0x8086",
    "adapterDeviceID": "0x3ea0",
    "adapterSubsysID": "229217aa",
    "adapterRAM": 0,
    "adapterDrivers": "igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32",
    "driverVendor": "",
    "driverVersion": "27.20.100.8729",
    "driverDate": "9-11-2020",
    "adapterDescription2": "",
    "adapterVendorID2": "",
    "adapterDeviceID2": "",
    "adapterSubsysID2": "",
    "adapterRAM2": 0,
    "adapterDrivers2": "",
    "driverVendor2": "",
    "driverVersion2": "",
    "driverDate2": "",
    "isGPU2Active": false,
    "direct2DEnabled": true,
    "directWriteEnabled": true,
    "directWriteVersion": "10.0.22000.258",
    "clearTypeParameters": "Gamma: 1.8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ",
    "targetFrameRate": 60,
    "webgl1Renderer": "Google Inc. (Intel) -- ANGLE (Intel, Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8729)",
    "webgl1Version": "OpenGL ES 2.0.0 (ANGLE 2.1.15727 git hash: 23851a53779d)",
    "webgl1DriverExtensions": "GL_ANGLE_base_vertex_base_instance GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_serialized_context_string GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_EGL_image_external_wrap_modes GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_elements_base_vertex GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_multisampled_render_to_texture GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_texture_stencil8 GL_OES_vertex_array_object GL_WEBGL_video_texture ",
    "webgl1Extensions": "ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context",
    "webgl1WSIInfo": "EGL_VENDOR: Google Inc. (Intel)\nEGL_VERSION: 1.5 (ANGLE 2.1.15727 git hash: 23851a53779d)\nEGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible EGL_KHR_create_context_no_error EGL_KHR_reusable_sync \nEGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_device_query EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_platform_angle_d3d11on12 EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context EGL_ANGLE_feature_control \nIsWebglOutOfProcessEnabled: 1",
    "webgl2Renderer": "Google Inc. (Intel) -- ANGLE (Intel, Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11-27.20.100.8729)",
    "webgl2Version": "OpenGL ES 3.0.0 (ANGLE 2.1.15727 git hash: 23851a53779d)",
    "webgl2DriverExtensions": "GL_ANGLE_base_vertex_base_instance GL_ANGLE_client_arrays GL_ANGLE_copy_texture_3d GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_serialized_context_string GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_multisample GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_EGL_image_external_wrap_modes GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_multisampled_render_to_texture GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_texture_stencil8 GL_OES_vertex_array_object GL_OVR_multiview GL_OVR_multiview2 GL_WEBGL_video_texture ",
    "webgl2Extensions": "EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_texture_float_linear OVR_multiview2 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context",
    "webgl2WSIInfo": "EGL_VENDOR: Google Inc. (Intel)\nEGL_VERSION: 1.5 (ANGLE 2.1.15727 git hash: 23851a53779d)\nEGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible EGL_KHR_create_context_no_error EGL_KHR_reusable_sync \nEGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_device_query EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_platform_angle_d3d11on12 EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context EGL_ANGLE_feature_control \nIsWebglOutOfProcessEnabled: 1",
    "info": {
      "AzureCanvasBackend (UI Process)": "skia",
      "AzureFallbackCanvasBackend (UI Process)": "skia",
      "AzureContentBackend (UI Process)": "skia",
      "AzureCanvasBackend": "direct2d 1.1",
      "AzureContentBackend": "skia",
      "ApzWheelInput": 1,
      "ApzDragInput": 1,
      "ApzKeyboardInput": 1,
      "ApzAutoscrollInput": 1,
      "ApzZoomingInput": 1,
      "CMSOutputProfile": "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",
      "DisplayCount": 1,
      "Display0": "2560x1440@60Hz : Intel(R) UHD Graphics 620",
      "HardwareStretching": "both=0 window-only=0 full-screen-only=0 none=1 error=0"
    },
    "failures": [
      "GP+[GFX1-]: Disable native compositor for async screenshot"
    ],
    "indices": [
      0
    ],
    "featureLog": {
      "features": [
        {
          "name": "HW_COMPOSITING",
          "description": "Compositing",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "D3D11_COMPOSITING",
          "description": "Direct3D11 Compositing",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "DIRECT2D",
          "description": "Direct2D",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "D3D11_HW_ANGLE",
          "description": "Direct3D11 hardware ANGLE",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "GPU_PROCESS",
          "description": "GPU Process",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER",
          "description": "WebRender",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_QUALIFIED",
          "description": "WebRender qualified",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_COMPOSITOR",
          "description": "WebRender native compositor",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_PARTIAL",
          "description": "WebRender partial present",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_SHADER_CACHE",
          "description": "WebRender shader disk cache",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_OPTIMIZED_SHADERS",
          "description": "WebRender optimized shaders",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_ANGLE",
          "description": "WebRender ANGLE",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_DCOMP_PRESENT",
          "description": "WebRender DirectComposition",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBRENDER_SOFTWARE",
          "description": "WebRender software fallback",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        },
        {
          "name": "WEBGPU",
          "description": "WebGPU",
          "status": "blocked",
          "log": [
            {
              "type": "default",
              "status": "disabled",
              "message": "Disabled by default"
            },
            {
              "type": "runtime",
              "status": "blocked",
              "message": "WebGPU can only be enabled in nightly"
            }
          ]
        },
        {
          "name": "WINDOW_OCCLUSION",
          "description": "WINDOW_OCCLUSION",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        }
      ],
      "fallbacks": []
    },
    "crashGuards": []
  },
  "experimentalFeatures": [
    [
      "experimental-features-abouthome-startup-cache",
      "browser.startup.homepage.abouthome_cache.enabled",
      false
    ],
    [
      "experimental-features-cookie-samesite-lax-by-default2",
      "network.cookie.sameSite.laxByDefault",
      false
    ],
    [
      "experimental-features-cookie-samesite-none-requires-secure2",
      "network.cookie.sameSite.noneRequiresSecure",
      false
    ],
    [
      "experimental-features-cookie-samesite-schemeful",
      "network.cookie.sameSite.schemeful",
      false
    ],
    [
      "experimental-features-css-constructable-stylesheets",
      "layout.css.constructable-stylesheets.enabled",
      false
    ],
    [
      "experimental-features-css-masonry2",
      "layout.css.grid-template-masonry-value.enabled",
      false
    ],
    [
      "experimental-features-devtools-compatibility-panel",
      "devtools.inspector.compatibility.enabled",
      true
    ],
    [
      "experimental-features-devtools-serviceworker-debugger-support",
      "devtools.debugger.features.windowless-service-workers",
      false
    ],
    [
      "experimental-features-firefox-100",
      "general.useragent.forceVersion100",
      false
    ],
    [
      "experimental-features-media-jxl",
      "image.jxl.enabled",
      false
    ],
    [
      "experimental-features-ime-search",
      "browser.urlbar.keepPanelOpenDuringImeComposition",
      false
    ],
    [
      "experimental-features-web-gpu2",
      "dom.webgpu.enabled",
      false
    ],
    [
      "experimental-features-webrtc-global-mute-toggles",
      "privacy.webrtc.globalMuteToggles",
      false
    ],
    [
      "experimental-features-win32k-lockdown",
      "security.sandbox.content.win32k-disable",
      false
    ]
  ],
  "addons": [
    {
      "name": "1Password – Password Manager",
      "type": "extension",
      "version": "2.3.0",
      "isActive": true,
      "id": "{d634138d-c276-4fc8-924b-40a0ea21d284}"
    },
    {
      "name": "Add-ons Search Detection",
      "type": "extension",
      "version": "2.0.0",
      "isActive": true,
      "id": "addons-search-detection@mozilla.com"
    },
    {
      "name": "Amazon.com",
      "type": "extension",
      "version": "1.3",
      "isActive": true,
      "id": "amazondotcom@search.mozilla.org"
    },
    {
      "name": "Bing",
      "type": "extension",
      "version": "1.3",
      "isActive": true,
      "id": "bing@search.mozilla.org"
    },
    {
      "name": "DuckDuckGo",
      "type": "extension",
      "version": "1.1",
      "isActive": true,
      "id": "ddg@search.mozilla.org"
    },
    {
      "name": "eBay",
      "type": "extension",
      "version": "1.3",
      "isActive": true,
      "id": "ebay@search.mozilla.org"
    },
    {
      "name": "Google",
      "type": "extension",
      "version": "1.2",
      "isActive": true,
      "id": "google@search.mozilla.org"
    },
    {
      "name": "Tree Style Tab",
      "type": "extension",
      "version": "3.8.21",
      "isActive": true,
      "id": "treestyletab@piro.sakura.ne.jp"
    },
    {
      "name": "Wikipedia (en)",
      "type": "extension",
      "version": "1.1",
      "isActive": true,
      "id": "wikipedia@search.mozilla.org"
    }
  ],
  "features": [
    {
      "name": "DoH Roll-Out",
      "version": "2.0.0",
      "id": "doh-rollout@mozilla.org"
    },
    {
      "name": "Firefox Screenshots",
      "version": "39.0.1",
      "id": "screenshots@mozilla.org"
    },
    {
      "name": "Form Autofill",
      "version": "1.0.1",
      "id": "formautofill@mozilla.org"
    },
    {
      "name": "Picture-In-Picture",
      "version": "1.0.0",
      "id": "pictureinpicture@mozilla.org"
    },
    {
      "name": "Web Compatibility Interventions",
      "version": "30.0.0",
      "id": "webcompat@mozilla.org"
    },
    {
      "name": "WebCompat Reporter",
      "version": "1.4.2",
      "id": "webcompat-reporter@mozilla.org"
    }
  ],
  "application": {
    "name": "Firefox",
    "osVersion": "Windows_NT 10.0 22000",
    "version": "98.0.1",
    "buildID": "20220313140707",
    "distributionID": "",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0",
    "safeMode": false,
    "updateChannel": "release",
    "supportURL": "https://support.mozilla.org/1/firefox/98.0.1/WINNT/en-US/",
    "osTheme": "",
    "numTotalWindows": 1,
    "numFissionWindows": 1,
    "numRemoteWindows": 1,
    "launcherProcessState": 1,
    "fissionAutoStart": true,
    "fissionDecisionStatus": "enabledByDefault",
    "remoteAutoStart": true,
    "policiesStatus": 0,
    "keyLocationServiceGoogleFound": true,
    "keySafebrowsingGoogleFound": true,
    "keyMozillaFound": true
  },
  "normandy": {
    "addonStudies": [],
    "prefRollouts": [
      {
        "slug": "bug-1690367-rollout-moving-webrtc-networking-functionality-into-i-release-87-100",
        "state": "active",
        "preferences": [
          {
            "preferenceName": "media.peerconnection.mtransport_process",
            "value": true,
            "previousValue": false
          },
          {
            "preferenceName": "network.process.enabled",
            "value": true,
            "previousValue": false
          }
        ],
        "enrollmentId": "6e14539f-f8b5-47dc-a362-3fcdb54c2838"
      }
    ],
    "prefStudies": [
      {
        "slug": "bug-1727384-pref-impact-study-for-total-cookie-protection-tcp-release-91-95",
        "actionName": "PreferenceExperimentAction",
        "branch": "noop",
        "expired": false,
        "lastSeen": "2022-03-22T15:49:36.516Z",
        "preferences": {
          "browser.search.param.google_channel_us": {
            "preferenceType": "string",
            "preferenceValue": "nus5",
            "preferenceBranchType": "default",
            "previousPreferenceValue": null
          },
          "browser.search.param.google_channel_row": {
            "preferenceType": "string",
            "preferenceValue": "nrow5",
            "preferenceBranchType": "default",
            "previousPreferenceValue": null
          }
        },
        "experimentType": "exp",
        "userFacingName": "Impact study for Total Cookie Protection (TCP)",
        "userFacingDescription": "This study is examining the effects of Total Cookie Protection (TCP).",
        "enrollmentId": "a568068e-a0a2-48f3-a2e4-70bc5fe5054a",
        "temporaryErrorDeadline": "2022-03-30T14:01:57.300Z"
      }
    ],
    "nimbusExperiments": [
      {
        "slug": "firefox-suggest-opt-in-modal",
        "branch": {
          "slug": "treatment-d",
          "ratio": 1,
          "feature": {
            "value": {},
            "enabled": false,
            "featureId": "this-is-included-for-desktop-pre-95-support"
          },
          "features": [
            {
              "value": {
                "quickSuggestScenario": "online",
                "quickSuggestOnboardingDialogVariation": "d"
              },
              "enabled": true,
              "featureId": "urlbar"
            }
          ]
        },
        "active": true,
        "enrollmentId": "4254895e-11a1-44a8-b23d-d661d9c8b20b",
        "experimentType": "nimbus",
        "source": "rs-loader",
        "userFacingName": "Firefox Suggest Opt-in Modal",
        "userFacingDescription": "An experiment to study the user engagement for the onboarding dialog of Firefox Suggest",
        "lastSeen": "2022-02-08T21:03:44.614Z",
        "featureIds": [
          "urlbar"
        ]
      }
    ],
    "nimbusRollouts": []
  }
}
Flags: needinfo?(ayeddi)
No longer depends on: offscreen-canvas

Here's another profile with Meet + the JAWS screen reader from Asa.
The profile shows jank, although Asa said it wasn't noticeable. However, perhaps it would be different on another machine/situation.

Right now (without our in-progress Cache the World refactor), a11y queries are often sync from the parent process. Content spends quite a bit of time in a sync IPDL call to PWebGL::ReadPixels. That would explain why the content process is blocked, which in turn explains why the parent process is blocked waiting for sync a11y queries to respond.

I just recalled that bug 1273635 modified the main IPC channel so that a11y queries could still be handled by the content main thread even while it was waiting for a response to a sync IPDL call to parent. This was done to mitigate deadlocks. This doesn't appear to be used in this case. I'm not super familiar with the guts of IPDL, but my guess is that PWebGLChild uses a different IPC channel (since it's talking to a different process) and we don't set the MessageChannel::REQUIRE_A11Y_REENTRY flag on that channel.

Although a deadlock isn't a concern here (because this sync call is being sent to the compositer, not the main parent process), allowing a11y re-entry would mean that a11y calls don't get blocked, which in turn means the parent process would be blocked less, hopefully decreasing jank. This is only possible on Windows because a11y uses COM instead of sync IPDL there, but Windows is where we're seeing pain here anyway. It's worth flagging that this is a terrible hack and it's not going to solve this completely, but it might help enough until we can ship Cache the World.

I'm not sure if there are any possible nasty side effects of turning this on for this IPC channel. I don't think there should be, but it's definitely something to consider.

I'm not sure how the lifecycle for gfx IPC stuff works, but this flag should probably be set somewhere in CanvasManagerChild, perhaps here.

We'd set this the same way we set it for PContent:

#if defined(XP_WIN) && defined(ACCESSIBILITY)
  GetIPCChannel()->SetChannelFlags(MessageChannel::REQUIRE_A11Y_REENTRY);
#endif

This is still an issue.
https://prnt.sc/tUESEZ7m8APf

Tested with:
Browser / Version: Firefox Nightly 103.0a1 (2022-06-26)
Operating System: Windows 10 Pro

still, actual on FF 102.0.1 (64-bit)
Build ID 20220705093820
Operating System: Windows 10 Pro

Flags: needinfo?(dschubert)

Please don't needinfo folks randomly, especially not in cases where we know that an issue still exists (see the previous comment), and when you don't actually need information from me.

Flags: needinfo?(dschubert)

Still present on 105.0.1 (64-bit, build 20220922151854) both OSX 12.6 and Windows 11

There is mention of force-enable this for testing - do we have such an option?
I mean, can I somehow force Meet to enable blur in FF? Even with very bad performance, if so

You might be able to spoof a non-Firefox UserAgent string, but I'm unsure if that would break anything else on the site.

Yes, I tried that and it fixes nothing and breaks additional things.
You mentioned a way to force-enable this for testing in comment 11, it would be a good thing if exists

Should not this be a higher priority bug? I know about a lot of people that have migrate to google chrome just because they use google meets for work and it is inconvenient to be changing browser just to have a meeting and come back.

Also, is there something i can do to help solve this bug? This one and the one from Bug 1558475 where the ones that always bugged me more related to web meetings...

Depends on: 1737192

Setting the UA string to Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 via general.useragent.override in about:config allows me to apply visual effects to my camera.

Firefox 113.0b7 (64-bit)

@harald Afraid for me switching here UA didn't work (Ubuntu on Intel laptop). Tried with Firefox 112 and joining call redirects to error page with Couldn't start the video call because of an error then with 113 beta a slightly different error You can't join this video call. Perhaps this is progress?

It really would be great if this could be made to work!

Webcompat Priority: --- → ?

Dennis, could you please take a look?

Flags: needinfo?(dschubert)

I have just tested visual effects on Google Meet using Firefox 113.0 from the beta channel, and the effects work very well. No noticeable issues and great performance. This was on macOS Monterey using a Chrome for macOS user-agent string.

Changing the user agent string triggers other bugs in Google Meet that break most of its UI, but the multimedia aspects work fine. To work around the broken UI, I entered the URL to an existing meeting and set the visual effects in the preview screen, before entering the room.

We are engaged with Google on how to get this enabled, and there's nothing else here we're blocked on at this time.

Setting this as a P1. There is nothing on our side to be done here at the moment, but it's an important issue that we get lots of reports for, so we'd like to keep this high on our list.

Webcompat Priority: ? → P1
Flags: needinfo?(dschubert)

(In reply to James Teh [:Jamie] from comment #43)

Right now (without our in-progress Cache the World refactor), a11y queries are often sync from the parent process. Content spends quite a bit of time in a sync IPDL call to PWebGL::ReadPixels. That would explain why the content process is blocked, which in turn explains why the parent process is blocked waiting for sync a11y queries to respond.

Cache the World (the new a11y architecture) is enabled by default as of Firefox 113, so a11y should no longer be a blocker here.

The severity field for this bug is set to S3. However, this bug has a P1 WebCompat priority.
:denschub, could you consider increasing the severity of this web compatibility bug?

For more information, please visit BugBot documentation.

Flags: needinfo?(dschubert)

Settings P1/S1 as per the bot's nag to match our webcompat-priority=P1. We might have to unset the release tracking flags in order to avoid people getting RelMan-nags, but let's leave them for now.

Just to be clear here, we have confirmation that there is nothing to be done on our end here. All known performance issues have been resolved, and we don't have no new known blockers at this time. If this changes, we'll update this bug accordingly.

Severity: S3 → S1
Flags: needinfo?(dschubert)
Priority: P2 → P1

I... did not mean to ask for release tracking. In fact, this was the exact opposite of what I wanted to do. Apologies.

I am just curious, why not just create an extension that inserts these background to the video feed, and not deal with the proprietary Google interface. Does this extension exist? I feel this rabbit hole is a waste of engineer resources (probably just me).

Is there any news about this? comment 56 filled me with hope.

Duplicate of this bug: 1791388

Yesterday, the "Visual effects" in a Google Meet were suddenly available in my Firefox, and it worked just fine.
Today, it got back to the old "This browser does not support visual effects".
I suspect Google have started A/B testing visual effects Firefox. Let's hope they release it for all clients soon.

Using Ubuntu-packaged FF 116.0.2 on Ubuntu 20.04.

(In reply to Nils Toedtmann from comment #65)

Yesterday, the "Visual effects" in a Google Meet were suddenly available in my Firefox, and it worked just fine.
Today, it got back to the old "This browser does not support visual effects".
I suspect Google have started A/B testing visual effects Firefox. Let's hope they release it for all clients soon.

Using Ubuntu-packaged FF 116.0.2 on Ubuntu 20.04.

This is correct, Google is currently rolling out a set of experiments. No major red flags thus far, so hopefully this will be in GA soon.

This is correct, Google is currently rolling out a set of experiments. No major red flags thus far, so hopefully this will be in GA soon.

That sounds very promising. Are there more information available online about these experiments? I like to learn more, but I wasn't able to find anything.

I haven't been able to find any information online about this change, but I have just seen these options enabled for me in Meet. They all seem to work flawlessly and smoothly without any impact on performance on my M2 13" MacBook Pro.

(In reply to barryvan from comment #68)

I haven't been able to find any information online about this change, but I have just seen these options enabled for me in Meet. They all seem to work flawlessly and smoothly without any impact on performance on my M2 13" MacBook Pro.

Can confirm the same under Dell Latitude 7520, Ubuntu 22.04, Firefox 116.0.3 via Snap

They are at 10% rollout to Firefox users, going to 50% later this week. Assuming no issues this will rollout to the complete release population over the next couple weeks.

Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED

This hit 100% last week. If anyone is missing the option in Meet in Fx 115 or higher, please let us know.

Depends on: 1344524
See Also: 1716386
See Also: 1737232
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: