forked from pool/MozillaFirefox
Compare commits
66 Commits
Author | SHA256 | Date | |
---|---|---|---|
6b3fcc6ae1 | |||
|
613b2aa26a | ||
7b71e58f7a | |||
|
3d34ceee8d | ||
493f603b75 | |||
|
907f9ebbb3 | ||
331649180e | |||
|
f5de6987c8 | ||
948b5f39d0 | |||
|
c5d30293e2 | ||
d023218841 | |||
|
9865226fda | ||
5bc67424ee | |||
|
b0d93e7dae | ||
|
28a1a8f674 | ||
|
3dcfa7e476 | ||
1c009b84cc | |||
|
f01e196d71 | ||
|
de6e91879a | ||
e45d0d81d3 | |||
|
caf9625167 | ||
|
182cfeee26 | ||
5feeaece7b | |||
|
2bbe0a69a1 | ||
3ea69c38f1 | |||
|
4b366dac1f | ||
8c7ed61a97 | |||
|
c3f911d998 | ||
|
cbdfc3d65a | ||
|
0a09fb785c | ||
d432587fcf | |||
|
4f243df708 | ||
|
f256e053b0 | ||
b9550c87b0 | |||
|
b05d1b670d | ||
e1158ab5be | |||
|
55e8aca1ce | ||
46a01a1b5f | |||
|
55fe4a5056 | ||
baa820544d | |||
|
7f911f5ab4 | ||
1c477cbce0 | |||
|
f61f955454 | ||
666da69274 | |||
|
dbfcbec55a | ||
03fe740876 | |||
|
13e7b2ae0d | ||
d1d6a0968b | |||
|
9e86c649c9 | ||
|
a409d8adda | ||
78130d13f6 | |||
|
df90b62ed6 | ||
cd12b8e0e6 | |||
|
f50f411e72 | ||
|
944ffaaffb | ||
|
d5ecca7d59 | ||
446a0e7696 | |||
|
46b65f8c49 | ||
51bca241c8 | |||
|
fe2ab4d47d | ||
b292b641fd | |||
|
d873e57e81 | ||
e21c4e6bf7 | |||
|
4ad63c96a3 | ||
|
1b43cd3da8 | ||
|
f2f6b49a7f |
File diff suppressed because it is too large
Load Diff
@@ -1,39 +1,91 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
Name=%NAME
|
Name=Firefox
|
||||||
|
Name[ar]=فيَرفُكس
|
||||||
|
Name[be]=Firefox
|
||||||
|
Name[ca]=Firefox
|
||||||
|
Name[cs]=Firefox
|
||||||
|
Name[da]=Firefox
|
||||||
|
Name[de]=Firefox
|
||||||
|
Name[el]=Firefox
|
||||||
|
Name[es]=Firefox
|
||||||
|
Name[fi]=Firefox
|
||||||
|
Name[fr]=Firefox
|
||||||
|
Name[gl]=Firefox
|
||||||
|
Name[hu]=Firefox
|
||||||
|
Name[id]=Firefox
|
||||||
|
Name[it]=Firefox
|
||||||
|
Name[ja]=Firefox
|
||||||
|
Name[ka]=Firefox
|
||||||
|
Name[kab]=Firefox (tunigin tusligt)
|
||||||
|
Name[km]=Firefox
|
||||||
|
Name[lt]=Firefox
|
||||||
|
Name[nb]=Firefox
|
||||||
|
Name[nl]=Firefox
|
||||||
|
Name[pl]=Firefox
|
||||||
|
Name[pt]=Firefox
|
||||||
|
Name[pt_BR]=Firefox
|
||||||
|
Name[ro]=Firefox
|
||||||
|
Name[ru]=Firefox
|
||||||
|
Name[sk]=Firefox
|
||||||
|
Name[sv]=Firefox
|
||||||
|
Name[tr]=Firefox
|
||||||
|
Name[uk]=Firefox
|
||||||
|
Name[wa]=Firefox
|
||||||
|
Name[zh_CN]=火狐
|
||||||
|
Name[zh_TW]=Firefox
|
||||||
GenericName=Web Browser
|
GenericName=Web Browser
|
||||||
|
GenericName[ar]=متصفّح وِب
|
||||||
|
GenericName[be]=Вэб-браўзер
|
||||||
GenericName[ca]=Navegador web
|
GenericName[ca]=Navegador web
|
||||||
GenericName[cs]=Webový prohlížeč
|
GenericName[cs]=Webový prohlížeč
|
||||||
|
GenericName[da]=Webbrowser
|
||||||
|
GenericName[de]=Web-Browser
|
||||||
|
GenericName[el]=Περιηγητής ιστοσελίδων
|
||||||
GenericName[es]=Navegador web
|
GenericName[es]=Navegador web
|
||||||
|
GenericName[et]=Veebisirvik
|
||||||
GenericName[fa]=مرورگر اینترنتی
|
GenericName[fa]=مرورگر اینترنتی
|
||||||
GenericName[fi]=WWW-selain
|
GenericName[fi]=Verkkoselain
|
||||||
GenericName[fr]=Navigateur Web
|
GenericName[fr]=Navigateur Web
|
||||||
|
GenericName[gl]=Navegador Web
|
||||||
GenericName[hu]=Webböngésző
|
GenericName[hu]=Webböngésző
|
||||||
GenericName[it]=Browser Web
|
GenericName[id]=Peramban Web
|
||||||
GenericName[ja]=ウェブ・ブラウザ
|
GenericName[it]=Navigatore web
|
||||||
|
GenericName[ja]=Web ブラウザ
|
||||||
|
GenericName[ka]=ბრაუზერი
|
||||||
|
GenericName[kab]=Sekker iminig n web
|
||||||
|
GenericName[km]=កម្មវិធីរុករកបណ្ដាញ
|
||||||
GenericName[ko]=웹 브라우저
|
GenericName[ko]=웹 브라우저
|
||||||
|
GenericName[lt]=Žiniatinklio naršyklė
|
||||||
GenericName[nb]=Nettleser
|
GenericName[nb]=Nettleser
|
||||||
GenericName[nl]=Webbrowser
|
GenericName[nl]=Webbrowser
|
||||||
GenericName[nn]=Nettlesar
|
GenericName[nn]=Nettlesar
|
||||||
GenericName[no]=Nettleser
|
GenericName[no]=Nettleser
|
||||||
GenericName[pl]=Przeglądarka WWW
|
GenericName[pl]=Przeglądarka internetowa
|
||||||
GenericName[pt]=Navegador Web
|
GenericName[pt]=Navegador de internet
|
||||||
GenericName[pt_BR]=Navegador Web
|
GenericName[pt_BR]=Navegador Web
|
||||||
|
GenericName[ro]=Navigator de web
|
||||||
GenericName[ru]=Веб-браузер
|
GenericName[ru]=Веб-браузер
|
||||||
GenericName[sk]=Internetový prehliadač
|
GenericName[sk]=Webový prehliadač
|
||||||
GenericName[sv]=Webbläsare
|
GenericName[sv]=Webbläsare
|
||||||
GenericName[uk]=Веб-браузер
|
GenericName[tr]=Web Tarayıcı
|
||||||
|
GenericName[uk]=Навігатор Тенет
|
||||||
|
GenericName[wa]=Betchteu waibe
|
||||||
|
GenericName[zh_CN]=网页浏览器
|
||||||
|
GenericName[zh_TW]=網頁瀏覽器
|
||||||
Comment=Browse the Web
|
Comment=Browse the Web
|
||||||
Comment[ca]=Navegueu per el web
|
Comment[ca]=Navegueu per la xarxa
|
||||||
Comment[cs]=Prohlížení stránek World Wide Webu
|
Comment[cs]=Prohlížení stránek World Wide Webu
|
||||||
Comment[de]=Im Internet surfen
|
Comment[de]=Im Internet surfen
|
||||||
Comment[es]=Navegue por la web
|
Comment[es]=Navegue por la web
|
||||||
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||||
Comment[fi]=Selaa Internetin WWW-sivuja
|
Comment[fi]=Selaa Internetin WWW-sivuja
|
||||||
Comment[fr]=Navigue sur Internet
|
Comment[fr]=Navigue sur Internet
|
||||||
|
Comment[gl]=Navegue pola web
|
||||||
Comment[hu]=A világháló böngészése
|
Comment[hu]=A világháló böngészése
|
||||||
Comment[it]=Esplora il web
|
Comment[it]=Esplora il web
|
||||||
Comment[ja]=ウェブを閲覧します
|
Comment[ja]=Web を閲覧します
|
||||||
|
Comment[ka]=იმუშავეთ ინტერნეტში
|
||||||
Comment[ko]=웹을 돌아 다닙니다
|
Comment[ko]=웹을 돌아 다닙니다
|
||||||
Comment[nb]=Surf på nettet
|
Comment[nb]=Surf på nettet
|
||||||
Comment[nl]=Verken het internet
|
Comment[nl]=Verken het internet
|
||||||
@@ -43,14 +95,16 @@ Comment[pl]=Przeglądanie stron WWW
|
|||||||
Comment[pt]=Navegue na Internet
|
Comment[pt]=Navegue na Internet
|
||||||
Comment[pt_BR]=Navegue na Internet
|
Comment[pt_BR]=Navegue na Internet
|
||||||
Comment[ru]=Просмотр веб-страниц
|
Comment[ru]=Просмотр веб-страниц
|
||||||
Comment[sk]=Prehliadanie internetu
|
Comment[sk]=Prehľadávanie webu
|
||||||
Comment[sv]=Surfa på webben
|
Comment[sv]=Surfa på webben
|
||||||
|
Comment[tr]=Web'de gezinin
|
||||||
Comment[uk]=Перегляд веб-сторінок
|
Comment[uk]=Перегляд веб-сторінок
|
||||||
TryExec=%EXEC
|
TryExec=firefox
|
||||||
Exec=%EXEC %u
|
Exec=firefox %u
|
||||||
Icon=%ICON
|
Icon=firefox
|
||||||
Terminal=false
|
Terminal=false
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
Categories=Network;WebBrowser;GTK;
|
||||||
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|
||||||
@@ -67,8 +121,7 @@ Name[ast]=Ventana nueva
|
|||||||
Name[az]=Yeni Pəncərə
|
Name[az]=Yeni Pəncərə
|
||||||
Name[be]=Новае акно
|
Name[be]=Новае акно
|
||||||
Name[bg]=Нов прозорец
|
Name[bg]=Нов прозорец
|
||||||
Name[bn_BD]=নতুন উইন্ডো (N)
|
Name[bn]=নতুন উইন্ডো (N)
|
||||||
Name[bn_IN]=নতুন উইন্ডো
|
|
||||||
Name[br]=Prenestr nevez
|
Name[br]=Prenestr nevez
|
||||||
Name[brx]=गोदान उइन्ड'(N)
|
Name[brx]=गोदान उइन्ड'(N)
|
||||||
Name[bs]=Novi prozor
|
Name[bs]=Novi prozor
|
||||||
@@ -80,37 +133,30 @@ Name[da]=Nyt vindue
|
|||||||
Name[de]=Neues Fenster
|
Name[de]=Neues Fenster
|
||||||
Name[dsb]=Nowe wokno
|
Name[dsb]=Nowe wokno
|
||||||
Name[el]=Νέο παράθυρο
|
Name[el]=Νέο παράθυρο
|
||||||
Name[en_GB]=New Window
|
|
||||||
Name[en_US]=New Window
|
|
||||||
Name[en_ZA]=New Window
|
|
||||||
Name[eo]=Nova fenestro
|
Name[eo]=Nova fenestro
|
||||||
Name[es_AR]=Nueva ventana
|
Name[es]=Nueva Ventana
|
||||||
Name[es_CL]=Nueva ventana
|
|
||||||
Name[es_ES]=Nueva ventana
|
|
||||||
Name[es_MX]=Nueva ventana
|
|
||||||
Name[et]=Uus aken
|
Name[et]=Uus aken
|
||||||
Name[eu]=Leiho berria
|
Name[eu]=Leiho berria
|
||||||
Name[fa]=پنجره جدید
|
Name[fa]=پنجره جدید
|
||||||
Name[ff]=Henorde Hesere
|
Name[ff]=Henorde Hesere
|
||||||
Name[fi]=Uusi ikkuna
|
Name[fi]=Uusi ikkuna
|
||||||
Name[fr]=Nouvelle fenêtre
|
Name[fr]=Nouvelle fenêtre
|
||||||
Name[fy_NL]=Nij finster
|
Name[fy]=Nij finster
|
||||||
Name[ga_IE]=Fuinneog Nua
|
Name[ga]=Fuinneog Nua
|
||||||
Name[gd]=Uinneag ùr
|
Name[gd]=Uinneag ùr
|
||||||
Name[gl]=Nova xanela
|
Name[gl]=Nova xanela
|
||||||
Name[gn]=Ovetã pyahu
|
Name[gn]=Ovetã pyahu
|
||||||
Name[gu_IN]=નવી વિન્ડો
|
Name[gu]=નવી વિન્ડો
|
||||||
Name[he]=חלון חדש
|
Name[he]=חלון חדש
|
||||||
Name[hi_IN]=नया विंडो
|
Name[hi]=नया विंडो
|
||||||
Name[hr]=Novi prozor
|
Name[hr]=Novi prozor
|
||||||
Name[hsb]=Nowe wokno
|
Name[hsb]=Nowe wokno
|
||||||
Name[hu]=Új ablak
|
Name[hu]=Új ablak
|
||||||
Name[hy_AM]=Նոր Պատուհան
|
Name[hy]=Նոր Պատուհան
|
||||||
Name[id]=Jendela Baru
|
Name[id]=Jendela Baru
|
||||||
Name[is]=Nýr gluggi
|
Name[is]=Nýr gluggi
|
||||||
Name[it]=Nuova finestra
|
Name[it]=Nuova finestra
|
||||||
Name[ja]=新しいウィンドウ
|
Name[ja]=新しいウィンドウ
|
||||||
Name[ja_JP-mac]=新規ウインドウ
|
|
||||||
Name[ka]=ახალი ფანჯარა
|
Name[ka]=ახალი ფანჯარა
|
||||||
Name[kk]=Жаңа терезе
|
Name[kk]=Жаңа терезе
|
||||||
Name[km]=បង្អួចថ្មី
|
Name[km]=បង្អួចថ្មី
|
||||||
@@ -129,15 +175,14 @@ Name[ml]=പുതിയ ജാലകം
|
|||||||
Name[mr]=नवीन पटल
|
Name[mr]=नवीन पटल
|
||||||
Name[ms]=Tetingkap Baru
|
Name[ms]=Tetingkap Baru
|
||||||
Name[my]=ဝင်းဒိုးအသစ်
|
Name[my]=ဝင်းဒိုးအသစ်
|
||||||
Name[nb_NO]=Nytt vindu
|
Name[nb]=Nytt Vindu
|
||||||
Name[ne_NP]=नयाँ सञ्झ्याल
|
Name[ne]=नयाँ सञ्झ्याल
|
||||||
Name[nl]=Nieuw venster
|
Name[nl]=Nieuw venster
|
||||||
Name[nn_NO]=Nytt vindauge
|
Name[nn]=Nytt vindauge
|
||||||
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||||
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
|
||||||
Name[pl]=Nowe okno
|
Name[pl]=Nowe okno
|
||||||
|
Name[pt]=Nova janela
|
||||||
Name[pt_BR]=Nova janela
|
Name[pt_BR]=Nova janela
|
||||||
Name[pt_PT]=Nova janela
|
|
||||||
Name[rm]=Nova fanestra
|
Name[rm]=Nova fanestra
|
||||||
Name[ro]=Fereastră nouă
|
Name[ro]=Fereastră nouă
|
||||||
Name[ru]=Новое окно
|
Name[ru]=Новое окно
|
||||||
@@ -148,7 +193,7 @@ Name[sl]=Novo okno
|
|||||||
Name[son]=Zanfun taaga
|
Name[son]=Zanfun taaga
|
||||||
Name[sq]=Dritare e Re
|
Name[sq]=Dritare e Re
|
||||||
Name[sr]=Нови прозор
|
Name[sr]=Нови прозор
|
||||||
Name[sv_SE]=Nytt fönster
|
Name[sv]=Nytt fönster
|
||||||
Name[ta]=புதிய சாளரம்
|
Name[ta]=புதிய சாளரம்
|
||||||
Name[te]=కొత్త విండో
|
Name[te]=కొత్త విండో
|
||||||
Name[th]=หน้าต่างใหม่
|
Name[th]=หน้าต่างใหม่
|
||||||
@@ -162,25 +207,24 @@ Name[wo]=Palanteer bu bees
|
|||||||
Name[xh]=Ifestile entsha
|
Name[xh]=Ifestile entsha
|
||||||
Name[zh_CN]=新建窗口
|
Name[zh_CN]=新建窗口
|
||||||
Name[zh_TW]=開新視窗
|
Name[zh_TW]=開新視窗
|
||||||
Exec=%EXEC --new-window %u
|
Exec=firefox --new-window %u
|
||||||
|
|
||||||
[Desktop Action PrivateBrowsing]
|
[Desktop Action PrivateBrowsing]
|
||||||
Name=New Private Browsing Window
|
Name=New Private Browsing Window
|
||||||
Name[ach]=Dirica manyen me mung
|
Name[ach]=Dirica manyen me mung
|
||||||
Name[af]=Nuwe privaatvenster
|
Name[af]=Nuwe privaatvenster
|
||||||
Name[an]=Nueva finestra privada
|
Name[an]=Nueva finestra privada
|
||||||
Name[ar]=نافذة خاصة جديدة
|
Name[ar]=نافذة تصفح خاصة الجديدة
|
||||||
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
Name[ast]=Ventana privada nueva
|
Name[ast]=Ventana privada nueva
|
||||||
Name[az]=Yeni Məxfi Pəncərə
|
Name[az]=Yeni Məxfi Pəncərə
|
||||||
Name[be]=Новае акно адасаблення
|
Name[be]=Новае акно адасаблення
|
||||||
Name[bg]=Нов прозорец за поверително сърфиране
|
Name[bg]=Нов прозорец за поверително сърфиране
|
||||||
Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
Name[bn]=নতুন ব্যক্তিগত উইন্ডো
|
||||||
Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
|
||||||
Name[br]=Prenestr merdeiñ prevez nevez
|
Name[br]=Prenestr merdeiñ prevez nevez
|
||||||
Name[brx]=गोदान प्राइभेट उइन्ड'
|
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||||
Name[bs]=Novi privatni prozor
|
Name[bs]=Novi privatni prozor
|
||||||
Name[ca]=Finestra privada nova
|
Name[ca]=Finestra de navegació privada nova
|
||||||
Name[cak]=K'ak'a' ichinan tzuwäch
|
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||||
Name[cs]=Nové anonymní okno
|
Name[cs]=Nové anonymní okno
|
||||||
Name[cy]=Ffenestr Breifat Newydd
|
Name[cy]=Ffenestr Breifat Newydd
|
||||||
@@ -188,37 +232,30 @@ Name[da]=Nyt privat vindue
|
|||||||
Name[de]=Neues privates Fenster
|
Name[de]=Neues privates Fenster
|
||||||
Name[dsb]=Nowe priwatne wokno
|
Name[dsb]=Nowe priwatne wokno
|
||||||
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||||
Name[en_GB]=New Private Window
|
|
||||||
Name[en_US]=New Private Window
|
|
||||||
Name[en_ZA]=New Private Window
|
|
||||||
Name[eo]=Nova privata fenestro
|
Name[eo]=Nova privata fenestro
|
||||||
Name[es_AR]=Nueva ventana privada
|
Name[es]=Nueva Ventana de Navegación Privada
|
||||||
Name[es_CL]=Nueva ventana privada
|
|
||||||
Name[es_ES]=Nueva ventana privada
|
|
||||||
Name[es_MX]=Nueva ventana privada
|
|
||||||
Name[et]=Uus privaatne aken
|
Name[et]=Uus privaatne aken
|
||||||
Name[eu]=Leiho pribatu berria
|
Name[eu]=Leiho pribatu berria
|
||||||
Name[fa]=پنجره ناشناس جدید
|
Name[fa]=پنجره ناشناس جدید
|
||||||
Name[ff]=Henorde Suturo Hesere
|
Name[ff]=Henorde Suturo Hesere
|
||||||
Name[fi]=Uusi yksityinen ikkuna
|
Name[fi]=Uusi yksityinen ikkuna
|
||||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||||
Name[fy_NL]=Nij priveefinster
|
Name[fy]=Nij priveefinster
|
||||||
Name[ga_IE]=Fuinneog Nua Phríobháideach
|
Name[ga]=Fuinneog Nua Phríobháideach
|
||||||
Name[gd]=Uinneag phrìobhaideach ùr
|
Name[gd]=Uinneag phrìobhaideach ùr
|
||||||
Name[gl]=Nova xanela privada
|
Name[gl]=Nova xanela de navegación privada
|
||||||
Name[gn]=Ovetã ñemi pyahu
|
Name[gn]=Ovetã ñemi pyahu
|
||||||
Name[gu_IN]=નવી ખાનગી વિન્ડો
|
Name[gu]=નવી ખાનગી વિન્ડો
|
||||||
Name[he]=חלון פרטי חדש
|
Name[he]=חלון פרטי חדש
|
||||||
Name[hi_IN]=नयी निजी विंडो
|
Name[hi]=नयी निजी विंडो
|
||||||
Name[hr]=Novi privatni prozor
|
Name[hr]=Novi privatni prozor
|
||||||
Name[hsb]=Nowe priwatne wokno
|
Name[hsb]=Nowe priwatne wokno
|
||||||
Name[hu]=Új privát ablak
|
Name[hu]=Új privát ablak
|
||||||
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
Name[hy]=Սկսել Գաղտնի դիտարկում
|
||||||
Name[id]=Jendela Mode Pribadi Baru
|
Name[id]=Jendela Mode Pribadi Baru
|
||||||
Name[is]=Nýr huliðsgluggi
|
Name[is]=Nýr huliðsgluggi
|
||||||
Name[it]=Nuova finestra anonima
|
Name[it]=Nuova finestra anonima
|
||||||
Name[ja]=新しいプライベートウィンドウ
|
Name[ja]=新しいプライベートウィンドウ
|
||||||
Name[ja_JP-mac]=新規プライベートウインドウ
|
|
||||||
Name[ka]=ახალი პირადი ფანჯარა
|
Name[ka]=ახალი პირადი ფანჯარა
|
||||||
Name[kk]=Жаңа жекелік терезе
|
Name[kk]=Жаңа жекелік терезе
|
||||||
Name[km]=បង្អួចឯកជនថ្មី
|
Name[km]=បង្អួចឯកជនថ្មី
|
||||||
@@ -236,16 +273,14 @@ Name[mk]=Нов приватен прозорец
|
|||||||
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||||
Name[mr]=नवीन वैयक्तिक पटल
|
Name[mr]=नवीन वैयक्तिक पटल
|
||||||
Name[ms]=Tetingkap Persendirian Baharu
|
Name[ms]=Tetingkap Persendirian Baharu
|
||||||
Name[my]=New Private Window
|
Name[nb]=Nytt privat nettlesingsvindu
|
||||||
Name[nb_NO]=Nytt privat vindu
|
Name[ne]=नयाँ निजी सञ्झ्याल
|
||||||
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
|
||||||
Name[nl]=Nieuw privévenster
|
Name[nl]=Nieuw privévenster
|
||||||
Name[nn_NO]=Nytt privat vindauge
|
Name[nn]=Nytt privat vindauge
|
||||||
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||||
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
|
||||||
Name[pl]=Nowe okno prywatne
|
Name[pl]=Nowe okno prywatne
|
||||||
|
Name[pt]=Nova janela privada
|
||||||
Name[pt_BR]=Nova janela privativa
|
Name[pt_BR]=Nova janela privativa
|
||||||
Name[pt_PT]=Nova janela privada
|
|
||||||
Name[rm]=Nova fanestra privata
|
Name[rm]=Nova fanestra privata
|
||||||
Name[ro]=Fereastră privată nouă
|
Name[ro]=Fereastră privată nouă
|
||||||
Name[ru]=Новое приватное окно
|
Name[ru]=Новое приватное окно
|
||||||
@@ -256,7 +291,7 @@ Name[sl]=Novo zasebno okno
|
|||||||
Name[son]=Sutura zanfun taaga
|
Name[son]=Sutura zanfun taaga
|
||||||
Name[sq]=Dritare e Re Private
|
Name[sq]=Dritare e Re Private
|
||||||
Name[sr]=Нови приватан прозор
|
Name[sr]=Нови приватан прозор
|
||||||
Name[sv_SE]=Nytt privat fönster
|
Name[sv]=Nytt privat surfningsfönster
|
||||||
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||||
Name[te]=కొత్త ఆంతరంగిక విండో
|
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||||
Name[th]=หน้าต่างส่วนตัวใหม่
|
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||||
@@ -270,13 +305,22 @@ Name[wo]=Panlanteeru biir bu bees
|
|||||||
Name[xh]=Ifestile yangasese entsha
|
Name[xh]=Ifestile yangasese entsha
|
||||||
Name[zh_CN]=新建隐私浏览窗口
|
Name[zh_CN]=新建隐私浏览窗口
|
||||||
Name[zh_TW]=新增隱私視窗
|
Name[zh_TW]=新增隱私視窗
|
||||||
Exec=%EXEC --private-window %u
|
Exec=firefox --private-window %u
|
||||||
|
|
||||||
[Desktop Action ProfileManager]
|
[Desktop Action ProfileManager]
|
||||||
Name=Profile Manager
|
Name=Profile Manager
|
||||||
|
Name[ca]=Gestor de perfils
|
||||||
Name[cs]=Správa profilů
|
Name[cs]=Správa profilů
|
||||||
Name[de]=Profilmanager
|
Name[de]=Profilmanager
|
||||||
|
Name[es]=Gestor de Perfiles
|
||||||
Name[fr]=Gestionnaire de profil
|
Name[fr]=Gestionnaire de profil
|
||||||
|
Name[gl]=Xestor de perfís
|
||||||
|
Name[ja]=プロファイルマネージャ
|
||||||
|
Name[ka]=პროფილების მმართველი
|
||||||
|
Name[nb]=Profilbehandler
|
||||||
Name[ru]=Менеджер профилей
|
Name[ru]=Менеджер профилей
|
||||||
|
Name[sk]=Správca profilov
|
||||||
|
Name[sv]=Profilhanterare
|
||||||
|
Name[tr]=Profil Yöneticisi
|
||||||
Name[uk]=Менеджер профілів
|
Name[uk]=Менеджер профілів
|
||||||
Exec=%EXEC --ProfileManager
|
Exec=firefox --ProfileManager
|
||||||
|
27
MozillaFirefox.desktop.in.in
Normal file
27
MozillaFirefox.desktop.in.in
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
_Name=%NAME
|
||||||
|
_GenericName=Web Browser
|
||||||
|
_Comment=Browse the Web
|
||||||
|
TryExec=%EXEC
|
||||||
|
Exec=%EXEC %u
|
||||||
|
Icon=%ICON
|
||||||
|
Terminal=false
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=Network;WebBrowser;GTK;
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
Actions=new-window;PrivateBrowsing;ProfileManager
|
||||||
|
|
||||||
|
[Desktop Action new-window]
|
||||||
|
_Name=New Window
|
||||||
|
Exec=%EXEC --new-window %u
|
||||||
|
|
||||||
|
[Desktop Action PrivateBrowsing]
|
||||||
|
_Name=New Private Browsing Window
|
||||||
|
Exec=%EXEC --private-window %u
|
||||||
|
|
||||||
|
[Desktop Action ProfileManager]
|
||||||
|
_Name=Profile Manager
|
||||||
|
Exec=%EXEC --ProfileManager
|
@@ -1,8 +1,8 @@
|
|||||||
#
|
#
|
||||||
# spec file for package MozillaFirefox
|
# spec file for package MozillaFirefox
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC and contributors
|
||||||
# Copyright (c) 2006-2024 Wolfgang Rosenauer <wr@rosenauer.org>
|
# Copyright (c) 2006-2025 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
# orig_suffix b3
|
# orig_suffix b3
|
||||||
# major 69
|
# major 69
|
||||||
# mainver %%major.99
|
# mainver %%major.99
|
||||||
%define major 129
|
%define major 141
|
||||||
%define mainver %major.0.1
|
%define mainver %major.0.2
|
||||||
%define orig_version 129.0.1
|
%define orig_version 141.0.2
|
||||||
%define orig_suffix %{nil}
|
%define orig_suffix %{nil}
|
||||||
%define update_channel release
|
%define update_channel release
|
||||||
%define branding 1
|
%define branding 1
|
||||||
@@ -103,8 +103,8 @@ BuildRequires: gcc13-c++
|
|||||||
%else
|
%else
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: cargo1.78
|
BuildRequires: cargo1.86
|
||||||
BuildRequires: rust1.78
|
BuildRequires: rust1.86
|
||||||
%if 0%{useccache} != 0
|
%if 0%{useccache} != 0
|
||||||
BuildRequires: ccache
|
BuildRequires: ccache
|
||||||
%endif
|
%endif
|
||||||
@@ -113,8 +113,8 @@ BuildRequires: libcurl-devel
|
|||||||
BuildRequires: libiw-devel
|
BuildRequires: libiw-devel
|
||||||
BuildRequires: libproxy-devel
|
BuildRequires: libproxy-devel
|
||||||
BuildRequires: makeinfo
|
BuildRequires: makeinfo
|
||||||
BuildRequires: mozilla-nspr-devel >= 4.35
|
BuildRequires: mozilla-nspr-devel >= 4.36
|
||||||
BuildRequires: mozilla-nss-devel >= 3.102.1
|
BuildRequires: mozilla-nss-devel >= 3.113
|
||||||
BuildRequires: nasm >= 2.14
|
BuildRequires: nasm >= 2.14
|
||||||
BuildRequires: nodejs >= 12.22.12
|
BuildRequires: nodejs >= 12.22.12
|
||||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||||
@@ -138,8 +138,10 @@ BuildRequires: python3-devel
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: rust-cbindgen >= 0.26
|
BuildRequires: rust-cbindgen >= 0.26
|
||||||
|
%if 0%{?suse_version} > 1560
|
||||||
|
BuildRequires: translate-suse-desktop
|
||||||
|
%endif
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
BuildRequires: update-desktop-files
|
|
||||||
BuildRequires: xorg-x11-libXt-devel
|
BuildRequires: xorg-x11-libXt-devel
|
||||||
%if 0%{?do_profiling}
|
%if 0%{?do_profiling}
|
||||||
BuildRequires: xvfb-run
|
BuildRequires: xvfb-run
|
||||||
@@ -149,7 +151,11 @@ BuildRequires: zip
|
|||||||
%if 0%{?suse_version} < 1550
|
%if 0%{?suse_version} < 1550
|
||||||
BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1
|
BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?suse_version} < 1599
|
||||||
BuildRequires: clang15-devel
|
BuildRequires: clang15-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: clang-devel
|
||||||
|
%endif
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.22
|
BuildRequires: pkgconfig(glib-2.0) >= 2.22
|
||||||
BuildRequires: pkgconfig(gobject-2.0)
|
BuildRequires: pkgconfig(gobject-2.0)
|
||||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0
|
BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0
|
||||||
@@ -173,20 +179,19 @@ Provides: firefox = %{version}-%{release}
|
|||||||
Provides: web_browser
|
Provides: web_browser
|
||||||
Provides: appdata()
|
Provides: appdata()
|
||||||
Provides: appdata(firefox.appdata.xml)
|
Provides: appdata(firefox.appdata.xml)
|
||||||
# this is needed to match this package with the kde4 helper package without the main package
|
|
||||||
# having a hard requirement on the kde4 package
|
|
||||||
%define kde_helper_version 6
|
|
||||||
Provides: mozilla-kde4-version = %{kde_helper_version}
|
|
||||||
Summary: Mozilla %{appname} Web Browser
|
Summary: Mozilla %{appname} Web Browser
|
||||||
License: MPL-2.0
|
License: MPL-2.0
|
||||||
Group: Productivity/Networking/Web/Browsers
|
Group: Productivity/Networking/Web/Browsers
|
||||||
URL: http://www.mozilla.org/
|
URL: http://www.mozilla.org/
|
||||||
%if !%{with only_print_mozconfig}
|
%if !%{with only_print_mozconfig}
|
||||||
Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||||
Source1: MozillaFirefox.desktop
|
Source1: MozillaFirefox.desktop.in.in
|
||||||
Source2: MozillaFirefox-rpmlintrc
|
Source2: MozillaFirefox-rpmlintrc
|
||||||
Source3: mozilla.sh.in
|
Source3: mozilla.sh.in
|
||||||
Source4: tar_stamps
|
Source4: tar_stamps
|
||||||
|
# Ready made desktop file for products that don't support %%translate_suse_desktop.
|
||||||
|
# You can be prompted for the update during the Factory build.
|
||||||
|
Source5: MozillaFirefox.desktop
|
||||||
%if %{localize}
|
%if %{localize}
|
||||||
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
|
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
|
||||||
%endif
|
%endif
|
||||||
@@ -208,7 +213,6 @@ Source20: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig
|
|||||||
Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
|
Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
|
||||||
# Gecko/Toolkit
|
# Gecko/Toolkit
|
||||||
Patch1: mozilla-nongnome-proxies.patch
|
Patch1: mozilla-nongnome-proxies.patch
|
||||||
Patch2: mozilla-kde.patch
|
|
||||||
Patch3: mozilla-ntlm-full-path.patch
|
Patch3: mozilla-ntlm-full-path.patch
|
||||||
Patch4: mozilla-aarch64-startup-crash.patch
|
Patch4: mozilla-aarch64-startup-crash.patch
|
||||||
Patch6: mozilla-s390-context.patch
|
Patch6: mozilla-s390-context.patch
|
||||||
@@ -222,17 +226,15 @@ Patch18: mozilla-silence-no-return-type.patch
|
|||||||
Patch19: mozilla-bmo531915.patch
|
Patch19: mozilla-bmo531915.patch
|
||||||
Patch20: one_swizzle_to_rule_them_all.patch
|
Patch20: one_swizzle_to_rule_them_all.patch
|
||||||
Patch21: svg-rendering.patch
|
Patch21: svg-rendering.patch
|
||||||
Patch23: mozilla-rust-disable-future-incompat.patch
|
Patch24: mozilla-bmo1746799.patch
|
||||||
Patch25: mozilla-bmo1898476.patch
|
|
||||||
Patch26: mozilla-bmo1907511.patch
|
|
||||||
# Firefox/browser
|
# Firefox/browser
|
||||||
Patch101: firefox-kde.patch
|
|
||||||
Patch102: firefox-branded-icons.patch
|
Patch102: firefox-branded-icons.patch
|
||||||
%endif
|
%endif
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Requires(post): coreutils shared-mime-info desktop-file-utils
|
Requires(post): coreutils shared-mime-info desktop-file-utils
|
||||||
Requires(postun): shared-mime-info desktop-file-utils
|
Requires(postun): shared-mime-info desktop-file-utils
|
||||||
Requires: %{name}-branding >= 68
|
Requires: %{name}-branding >= 68
|
||||||
|
Requires: xdg-desktop-portal
|
||||||
%requires_ge mozilla-nspr
|
%requires_ge mozilla-nspr
|
||||||
%requires_ge mozilla-nss
|
%requires_ge mozilla-nss
|
||||||
%requires_ge libfreetype6
|
%requires_ge libfreetype6
|
||||||
@@ -331,11 +333,33 @@ fi
|
|||||||
%else
|
%else
|
||||||
%setup -q -n %{srcname}-%{orig_version}
|
%setup -q -n %{srcname}-%{orig_version}
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?suse_version} > 1560
|
||||||
|
cp %{SOURCE1} %{desktop_file_name}.desktop.in.in
|
||||||
|
%else
|
||||||
|
cp %{SOURCE5} %{desktop_file_name}.desktop
|
||||||
|
%endif
|
||||||
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
||||||
%autopatch -p1
|
%autopatch -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# desktop file
|
||||||
|
%if 0%{?suse_version} > 1560
|
||||||
|
sed "s:%%NAME:%{appname}:g
|
||||||
|
s:%%EXEC:%{progname}:g
|
||||||
|
s:%%ICON:%{progname}:g
|
||||||
|
s:%%WMCLASS:%{progname}%{major}:g" \
|
||||||
|
%{desktop_file_name}.desktop.in.in > %{desktop_file_name}.desktop.in
|
||||||
|
%translate_suse_desktop %{desktop_file_name}.desktop
|
||||||
|
if ! diff %{desktop_file_name}.desktop %{SOURCE5} ; then
|
||||||
|
cat <<EOF
|
||||||
|
A new version of desktop file exists. Please update MozillaFirefox.desktop
|
||||||
|
rpm source from $PWD/%{desktop_file_name}.desktop
|
||||||
|
to get translations to older products.
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
%if !%{with only_print_mozconfig}
|
%if !%{with only_print_mozconfig}
|
||||||
# no need to add build time to binaries
|
# no need to add build time to binaries
|
||||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{pkgname}.changes")"
|
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{pkgname}.changes")"
|
||||||
@@ -345,18 +369,11 @@ find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIM
|
|||||||
|
|
||||||
# SLE-12 provides python39, but that package does not provide a python3 binary
|
# SLE-12 provides python39, but that package does not provide a python3 binary
|
||||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||||
#sed -i "s/python3/python3.9/g" configure.in
|
|
||||||
sed -i "s|/usr/bin/env python3|/usr/bin/env python3.9|" mach
|
sed -i "s|/usr/bin/env python3|/usr/bin/env python3.9|" mach
|
||||||
sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.9.{i}\"|" mach
|
sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.9.{i}\"|" mach
|
||||||
export PYTHON3=/usr/bin/python3.9
|
export PYTHON3=/usr/bin/python3.9
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
|
|
||||||
if test "$kdehelperversion" != %{kde_helper_version}; then
|
|
||||||
echo fix kde helper version in the .spec file
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# When doing only_print_mozconfig, this file isn't necessarily available, so skip it
|
# When doing only_print_mozconfig, this file isn't necessarily available, so skip it
|
||||||
cp %{SOURCE4} .obsenv.sh
|
cp %{SOURCE4} .obsenv.sh
|
||||||
%else
|
%else
|
||||||
@@ -415,7 +432,7 @@ source ./.obsenv.sh
|
|||||||
cat << EOF > $MOZCONFIG
|
cat << EOF > $MOZCONFIG
|
||||||
mk_add_options MOZILLA_OFFICIAL=1
|
mk_add_options MOZILLA_OFFICIAL=1
|
||||||
mk_add_options BUILD_OFFICIAL=1
|
mk_add_options BUILD_OFFICIAL=1
|
||||||
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
|
mk_add_options MOZ_MAKE_FLAGS=%{?_smp_mflags}
|
||||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
||||||
. \$topsrcdir/browser/config/mozconfig
|
. \$topsrcdir/browser/config/mozconfig
|
||||||
ac_add_options --disable-bootstrap
|
ac_add_options --disable-bootstrap
|
||||||
@@ -533,7 +550,11 @@ ac_add_options --enable-official-branding
|
|||||||
%endif
|
%endif
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
%if 0%{?suse_version} >= 1600
|
||||||
|
%define njobs ${RPM_BUILD_NCPUS:-0}
|
||||||
|
%else
|
||||||
%define njobs 0%{?jobs:%jobs}
|
%define njobs 0%{?jobs:%jobs}
|
||||||
|
%endif
|
||||||
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
|
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
|
||||||
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
|
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
|
||||||
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
|
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
|
||||||
@@ -562,6 +583,7 @@ ccache -s
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
install -D -m 0644 %{desktop_file_name}.desktop %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||||
cd $RPM_BUILD_DIR/obj
|
cd $RPM_BUILD_DIR/obj
|
||||||
source %{SOURCE4}
|
source %{SOURCE4}
|
||||||
export MOZ_SOURCE_STAMP=$RELEASE_TAG
|
export MOZ_SOURCE_STAMP=$RELEASE_TAG
|
||||||
@@ -615,14 +637,6 @@ s:%%PROFILE:.mozilla/firefox:g" \
|
|||||||
%{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
|
%{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
|
||||||
chmod 755 %{buildroot}%{progdir}/%{progname}.sh
|
chmod 755 %{buildroot}%{progdir}/%{progname}.sh
|
||||||
ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
||||||
# desktop file
|
|
||||||
mkdir -p %{buildroot}%{_datadir}/applications
|
|
||||||
sed "s:%%NAME:%{appname}:g
|
|
||||||
s:%%EXEC:%{progname}:g
|
|
||||||
s:%%ICON:%{progname}:g
|
|
||||||
s:%%WMCLASS:%{progname}%{major}:g" \
|
|
||||||
%{SOURCE1} > %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
|
||||||
%suse_update_desktop_file %{desktop_file_name} Network WebBrowser GTK
|
|
||||||
# additional mime-types
|
# additional mime-types
|
||||||
mkdir -p %{buildroot}%{_datadir}/mime/packages
|
mkdir -p %{buildroot}%{_datadir}/mime/packages
|
||||||
cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
|
cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
|
||||||
@@ -706,7 +720,6 @@ exit 0
|
|||||||
%dir %{progdir}/browser/
|
%dir %{progdir}/browser/
|
||||||
%dir %{progdir}/browser/chrome/
|
%dir %{progdir}/browser/chrome/
|
||||||
%{progdir}/browser/defaults
|
%{progdir}/browser/defaults
|
||||||
%{progdir}/browser/features/
|
|
||||||
%{progdir}/browser/chrome/icons
|
%{progdir}/browser/chrome/icons
|
||||||
%{progdir}/browser/omni.ja
|
%{progdir}/browser/omni.ja
|
||||||
%dir %{progdir}/distribution/
|
%dir %{progdir}/distribution/
|
||||||
@@ -731,11 +744,12 @@ exit 0
|
|||||||
%{progdir}/pingsender
|
%{progdir}/pingsender
|
||||||
%{progdir}/platform.ini
|
%{progdir}/platform.ini
|
||||||
%if %crashreporter
|
%if %crashreporter
|
||||||
|
%{progdir}/crashhelper
|
||||||
%{progdir}/crashreporter
|
%{progdir}/crashreporter
|
||||||
#%{progdir}/crashreporter.ini
|
#%%{progdir}/crashreporter.ini
|
||||||
#%{progdir}/Throbber-small.gif
|
#%%{progdir}/Throbber-small.gif
|
||||||
%{progdir}/minidump-analyzer
|
#%%{progdir}/minidump-analyzer
|
||||||
#%{progdir}/browser/crashreporter-override.ini
|
#%%{progdir}/browser/crashreporter-override.ini
|
||||||
%endif
|
%endif
|
||||||
%{_datadir}/applications/%{desktop_file_name}.desktop
|
%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||||
%{_datadir}/mime/packages/%{progname}.xml
|
%{_datadir}/mime/packages/%{progname}.xml
|
||||||
|
21
_constraints
21
_constraints
@@ -41,7 +41,6 @@
|
|||||||
<overwrite>
|
<overwrite>
|
||||||
<conditions>
|
<conditions>
|
||||||
<arch>ppc64le</arch>
|
<arch>ppc64le</arch>
|
||||||
<arch>s390x</arch>
|
|
||||||
</conditions>
|
</conditions>
|
||||||
<hardware>
|
<hardware>
|
||||||
<physicalmemory>
|
<physicalmemory>
|
||||||
@@ -49,4 +48,24 @@
|
|||||||
</physicalmemory>
|
</physicalmemory>
|
||||||
</hardware>
|
</hardware>
|
||||||
</overwrite>
|
</overwrite>
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>s390x</arch>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<physicalmemory>
|
||||||
|
<size unit="G">15</size>
|
||||||
|
</physicalmemory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>riscv64</arch>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="G">25</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
</constraints>
|
</constraints>
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:9ddfe823e4c22167a77e47f56a8afde0d9621784a9e4e5dba4906e758175c073
|
|
||||||
size 561709736
|
|
@@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAma6BisACgkQ4207E/PZ
|
|
||||||
MnQlDxAAzavl3Tkgdnpvx7YADuS7u/JIGhI1e6OyeNVzvXtSY4cyIYrFNVpH3qXx
|
|
||||||
0vKdk2fyL2c3YYLkMP7BfNKgAhYQhALnvxoAVqocSRmVHRjGyewUM6iC3k/SpgIf
|
|
||||||
r700/XNrq/Y++5zpvWO6P2fgipzaYVARyy2i5YUtsdYrNkAgEYYP1Qm4SM8gHg6e
|
|
||||||
tyt99uEEyhiAHrW4m9cFm+BzsIg23JhreY0AA/4czTORIcd37Oj0r4CcH5Wkpa15
|
|
||||||
N1yU33A+xhIreeNaZHCf9NJjQuP+TLjqZV13940tqe7BJl1Loaj9P68+g51/SEfq
|
|
||||||
6ZuRQXQCMKPk/FJ7ZDZPMJpsI7ydvVHkBoWNBf6SeJqJblcguQucgL3q6KWkOauh
|
|
||||||
Msy7opz2p1kp8SYGpDoKA+KOHq+kl3/GQe6ACfkjqlqOzrJeAx3E2Cm4puYuqMQe
|
|
||||||
duCluu992WvzwDhEEkTaikWXw3MAeWe7wYCL+ya4rxRmjHptbde01XRM6LEXgb7f
|
|
||||||
d3HBkxJczEuwYsnYmgWf7leBSf30VLRyegi4k5oJK0qiUeJ5uFj+vV3/6kzcu6KE
|
|
||||||
gW6Z6Kr+IkrTGViQrj4z1qg5td6tO+rsfE983Sw2jjRMha9bRM+dGUHvFWXxt9Bo
|
|
||||||
vCwDJr5Y4k+MkgQ4L6Fi8hurst3eONIVJrGMgRQJAAeeMUVXjG8=
|
|
||||||
=mBRM
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
firefox-141.0.2.source.tar.xz
Normal file
3
firefox-141.0.2.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c33937fe2f6ad29af3de8f1a128c054afbd64821f702bf98d9f4079b97d37f3a
|
||||||
|
size 649165560
|
16
firefox-141.0.2.source.tar.xz.asc
Normal file
16
firefox-141.0.2.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEECb7tY/NGKi3/qzuHXstkl8GiAlYFAmiQuvcACgkQXstkl8Gi
|
||||||
|
AlYnLBAAt156r6IETZ4ZdSoKLIvpQGe04Py85rG/Kh+xlSBK0MRY/GRJeIMrJE+1
|
||||||
|
MAipv+uRePs3bnOK+PChZeVQ5gQe9LvbYmmT6F7nuyPgC56DnJ6d1OoZdTPzh6Q3
|
||||||
|
WhzoBDgi0lkYlBd4CF7PVhR/RGGJzTVnTTKkPWBSfD7Je3V2whu67q0LrLCHUR1o
|
||||||
|
qyfi6ZRQ8//3TZI6ALBJ9tYjg6jgKolOdptCSjHmLQH1gj5VB4JyDDYRzygNvBZD
|
||||||
|
O6DSShZHCOy3adHsfKy3H5d8fAP0cvUXTEUV9CRNlgIOkSS05idHEQthhaa9TAwP
|
||||||
|
rxs7fPn+jqsp/XSmPpVrF5pFDBgBAPguhZ5E9Sba1H0EDH28aCKmK6ASQju2+kkz
|
||||||
|
DehiWni7EZjr6A+Eh+q14YvdcHf62kD4nAIUyUzBX4km4Brf0URBxm8gYWHtY3gR
|
||||||
|
B/2I+NceGC5EzvIZ5FbmSYby80yB/I8+Rc2mEgRgHAvwiRLJQt5k4RArxgeYLVqa
|
||||||
|
vadXEtGIvoGnreXDziSQKj4HkNbOLWYbRltXj+iPWDJleCU0AhynrpnlhSMr8Lam
|
||||||
|
5hY8xPz9TYS9NdBL2d5U5XmQx56Fpk4pULcxfLqLgeKyoQfKpxMRgl/iy5fY64T1
|
||||||
|
z8b+0cBWdViDpwwguOgFRqgXYRuOcrE0vCv3UG6eXuatFI/NrIQ=
|
||||||
|
=CK8g
|
||||||
|
-----END PGP SIGNATURE-----
|
@@ -1,6 +1,6 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
||||||
# Parent ad547c5985d362e88a47ccbba0cc5fa07bd24e8b
|
# Parent 9309f1ac14b7173985576932c01874184be1dcf9
|
||||||
|
|
||||||
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
|
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
|
||||||
--- a/browser/branding/branding-common.mozbuild
|
--- a/browser/branding/branding-common.mozbuild
|
||||||
@@ -24,7 +24,7 @@ diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/brandi
|
|||||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||||
--- a/browser/installer/package-manifest.in
|
--- a/browser/installer/package-manifest.in
|
||||||
+++ b/browser/installer/package-manifest.in
|
+++ b/browser/installer/package-manifest.in
|
||||||
@@ -208,20 +208,23 @@
|
@@ -221,20 +221,23 @@
|
||||||
; [Browser Chrome Files]
|
; [Browser Chrome Files]
|
||||||
@RESPATH@/browser/chrome.manifest
|
@RESPATH@/browser/chrome.manifest
|
||||||
@RESPATH@/browser/chrome/browser@JAREXT@
|
@RESPATH@/browser/chrome/browser@JAREXT@
|
||||||
@@ -41,10 +41,10 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
|||||||
@RESPATH@/browser/chrome/icons/default/default128.png
|
@RESPATH@/browser/chrome/icons/default/default128.png
|
||||||
+@RESPATH@/browser/chrome/icons/default/default256.png
|
+@RESPATH@/browser/chrome/icons/default/default256.png
|
||||||
#endif
|
#endif
|
||||||
@RESPATH@/browser/features/*
|
|
||||||
|
|
||||||
; [DevTools Startup Files]
|
; [DevTools Startup Files]
|
||||||
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
|
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
|
||||||
@RESPATH@/browser/chrome/devtools-startup.manifest
|
@RESPATH@/browser/chrome/devtools-startup.manifest
|
||||||
|
|
||||||
; DevTools
|
; DevTools
|
||||||
|
@RESPATH@/browser/chrome/devtools@JAREXT@
|
||||||
|
@@ -1,302 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Martin Sirringhaus <msirringhaus@suse.de>
|
|
||||||
Date: Tue, 8 Aug 2023 16:18:24 +0300
|
|
||||||
Subject: [PATCH] Add KDE integration to Firefox
|
|
||||||
|
|
||||||
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
|
||||||
Bug: https://bugzilla.suse.com/show_bug.cgi?id=170055
|
|
||||||
|
|
||||||
How to apply this patch:
|
|
||||||
|
|
||||||
1. Import and apply it
|
|
||||||
2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
|
|
||||||
3. Find editBookmarkPanelDoneButton
|
|
||||||
4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style)
|
|
||||||
5. hg qrefresh
|
|
||||||
---
|
|
||||||
browser/components/preferences/main.js | 18 +++
|
|
||||||
browser/components/shell/moz.build | 2 +
|
|
||||||
.../components/shell/nsKDEShellService.cpp | 109 ++++++++++++++++++
|
|
||||||
browser/components/shell/nsKDEShellService.h | 32 +++++
|
|
||||||
.../components/shell/nsUnixShellService.cpp | 22 ++++
|
|
||||||
browser/components/shell/nsUnixShellService.h | 15 +++
|
|
||||||
6 files changed, 198 insertions(+)
|
|
||||||
create mode 100644 browser/components/shell/nsKDEShellService.cpp
|
|
||||||
create mode 100644 browser/components/shell/nsKDEShellService.h
|
|
||||||
create mode 100644 browser/components/shell/nsUnixShellService.cpp
|
|
||||||
create mode 100644 browser/components/shell/nsUnixShellService.h
|
|
||||||
|
|
||||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
|
||||||
--- a/browser/components/preferences/main.js
|
|
||||||
+++ b/browser/components/preferences/main.js
|
|
||||||
@@ -292,16 +292,23 @@ var gMainPane = {
|
|
||||||
}, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.setTimeout(() => {
|
|
||||||
window.requestIdleCallback(pollForDefaultBrowser);
|
|
||||||
}, backoffTimes[this._backoffIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ var env = Components.classes["@mozilla.org/process/environment;1"]
|
|
||||||
+ .getService(Components.interfaces.nsIEnvironment);
|
|
||||||
+ var kde_session = 0;
|
|
||||||
+ if (env.get('KDE_FULL_SESSION') == "true") {
|
|
||||||
+ kde_session = 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
this.initBrowserContainers();
|
|
||||||
this.buildContentProcessCountMenuList();
|
|
||||||
|
|
||||||
this.updateDefaultPerformanceSettingsPref();
|
|
||||||
|
|
||||||
let defaultPerformancePref = Preferences.get(
|
|
||||||
"browser.preferences.defaultPerformanceSettings.enabled"
|
|
||||||
);
|
|
||||||
@@ -1753,16 +1760,27 @@ var gMainPane = {
|
|
||||||
|
|
||||||
// Disable the set default button, so that the user doesn't try to hit it again
|
|
||||||
// while awaiting on setDefaultBrowser
|
|
||||||
let setDefaultButton = document.getElementById("setDefaultButton");
|
|
||||||
setDefaultButton.disabled = true;
|
|
||||||
|
|
||||||
try {
|
|
||||||
await shellSvc.setDefaultBrowser(false);
|
|
||||||
+ if (kde_session == 1) {
|
|
||||||
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
|
|
||||||
+ .createInstance(Components.interfaces.nsILocalFile);
|
|
||||||
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
|
|
||||||
+ var process = Components.classes["@mozilla.org/process/util;1"]
|
|
||||||
+ .createInstance(Components.interfaces.nsIProcess);
|
|
||||||
+ process.init(shellObj);
|
|
||||||
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
|
|
||||||
+ "BrowserApplication", "firefox"];
|
|
||||||
+ process.run(false, args, args.length);
|
|
||||||
+ }
|
|
||||||
} catch (ex) {
|
|
||||||
console.error(ex);
|
|
||||||
return;
|
|
||||||
} finally {
|
|
||||||
// Make sure to re-enable the default button when we're finished, regardless of the outcome
|
|
||||||
setDefaultButton.disabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
|
|
||||||
--- a/browser/components/shell/moz.build
|
|
||||||
+++ b/browser/components/shell/moz.build
|
|
||||||
@@ -31,16 +31,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco
|
|
||||||
]
|
|
||||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
|
||||||
XPIDL_SOURCES += [
|
|
||||||
"nsIGNOMEShellService.idl",
|
|
||||||
]
|
|
||||||
|
|
||||||
SOURCES += [
|
|
||||||
"nsGNOMEShellService.cpp",
|
|
||||||
+ "nsKDEShellService.cpp",
|
|
||||||
+ "nsUnixShellService.cpp",
|
|
||||||
]
|
|
||||||
if CONFIG["MOZ_ENABLE_DBUS"]:
|
|
||||||
SOURCES += [
|
|
||||||
"nsGNOMEShellDBusHelper.cpp",
|
|
||||||
"nsGNOMEShellSearchProvider.cpp",
|
|
||||||
]
|
|
||||||
include("/ipc/chromium/chromium-config.mozbuild")
|
|
||||||
|
|
||||||
diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/browser/components/shell/nsKDEShellService.cpp
|
|
||||||
@@ -0,0 +1,108 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#include "mozilla/ArrayUtils.h"
|
|
||||||
+
|
|
||||||
+#include "nsCOMPtr.h"
|
|
||||||
+#include "nsKDEShellService.h"
|
|
||||||
+#include "nsShellService.h"
|
|
||||||
+#include "nsKDEUtils.h"
|
|
||||||
+#include "nsIPrefService.h"
|
|
||||||
+#include "nsIProcess.h"
|
|
||||||
+#include "nsIFile.h"
|
|
||||||
+#include "nsServiceManagerUtils.h"
|
|
||||||
+#include "nsComponentManagerUtils.h"
|
|
||||||
+#include "nsIMutableArray.h"
|
|
||||||
+#include "nsISupportsPrimitives.h"
|
|
||||||
+#include "nsArrayUtils.h"
|
|
||||||
+
|
|
||||||
+using namespace mozilla;
|
|
||||||
+
|
|
||||||
+nsresult
|
|
||||||
+nsKDEShellService::Init()
|
|
||||||
+{
|
|
||||||
+ if( !nsKDEUtils::kdeSupport())
|
|
||||||
+ return NS_ERROR_NOT_AVAILABLE;
|
|
||||||
+ return NS_OK;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMPL_ISUPPORTS(nsKDEShellService, nsIGNOMEShellService, nsIShellService)
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::IsDefaultBrowser(bool aForAllTypes,
|
|
||||||
+ bool* aIsDefaultBrowser)
|
|
||||||
+{
|
|
||||||
+ *aIsDefaultBrowser = false;
|
|
||||||
+
|
|
||||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
||||||
+ if (!command)
|
|
||||||
+ return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
||||||
+ if (!str)
|
|
||||||
+ return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ str->SetData("ISDEFAULTBROWSER"_ns);
|
|
||||||
+ command->AppendElement( str );
|
|
||||||
+
|
|
||||||
+ if( nsKDEUtils::command( command ))
|
|
||||||
+ *aIsDefaultBrowser = true;
|
|
||||||
+ return NS_OK;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::SetDefaultBrowser(bool aForAllUsers)
|
|
||||||
+{
|
|
||||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
||||||
+ if (!command)
|
|
||||||
+ return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
||||||
+ nsCOMPtr<nsISupportsCString> paramstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
||||||
+ if (!cmdstr || !paramstr)
|
|
||||||
+ return NS_ERROR_FAILURE;
|
|
||||||
+
|
|
||||||
+ cmdstr->SetData("SETDEFAULTBROWSER"_ns);
|
|
||||||
+ command->AppendElement( cmdstr );
|
|
||||||
+
|
|
||||||
+ paramstr->SetData("ALLTYPES"_ns);
|
|
||||||
+ command->AppendElement( paramstr );
|
|
||||||
+
|
|
||||||
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::GetCanSetDesktopBackground(bool* aResult)
|
|
||||||
+{
|
|
||||||
+ *aResult = true;
|
|
||||||
+ return NS_OK;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::SetDesktopBackground(dom::Element* aElement,
|
|
||||||
+ int32_t aPosition,
|
|
||||||
+ const nsACString& aImageName)
|
|
||||||
+{
|
|
||||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor)
|
|
||||||
+{
|
|
||||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor)
|
|
||||||
+{
|
|
||||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsKDEShellService::IsDefaultForScheme(nsTSubstring<char> const& aScheme, bool* aIsDefaultBrowser)
|
|
||||||
+{
|
|
||||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/browser/components/shell/nsKDEShellService.h
|
|
||||||
@@ -0,0 +1,32 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#ifndef nskdeshellservice_h____
|
|
||||||
+#define nskdeshellservice_h____
|
|
||||||
+
|
|
||||||
+#include "nsIGNOMEShellService.h"
|
|
||||||
+#include "nsToolkitShellService.h"
|
|
||||||
+#include "nsString.h"
|
|
||||||
+#include "mozilla/Attributes.h"
|
|
||||||
+
|
|
||||||
+class nsKDEShellService final : public nsIGNOMEShellService,
|
|
||||||
+ public nsToolkitShellService
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ nsKDEShellService() : mCheckedThisSession(false) { }
|
|
||||||
+
|
|
||||||
+ NS_DECL_ISUPPORTS
|
|
||||||
+ NS_DECL_NSISHELLSERVICE
|
|
||||||
+ NS_DECL_NSIGNOMESHELLSERVICE
|
|
||||||
+
|
|
||||||
+ nsresult Init();
|
|
||||||
+
|
|
||||||
+private:
|
|
||||||
+ ~nsKDEShellService() {}
|
|
||||||
+
|
|
||||||
+ bool mCheckedThisSession;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#endif // nskdeshellservice_h____
|
|
||||||
diff --git a/browser/components/shell/nsUnixShellService.cpp b/browser/components/shell/nsUnixShellService.cpp
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/browser/components/shell/nsUnixShellService.cpp
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#include "nsUnixShellService.h"
|
|
||||||
+#include "nsGNOMEShellService.h"
|
|
||||||
+#include "nsKDEShellService.h"
|
|
||||||
+#include "nsKDEUtils.h"
|
|
||||||
+#include "mozilla/ModuleUtils.h"
|
|
||||||
+
|
|
||||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
|
||||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init)
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsUnixShellServiceConstructor(REFNSIID aIID, void **aResult)
|
|
||||||
+{
|
|
||||||
+ if( nsKDEUtils::kdeSupport())
|
|
||||||
+ return nsKDEShellServiceConstructor( aIID, aResult );
|
|
||||||
+ return nsGNOMEShellServiceConstructor( aIID, aResult );
|
|
||||||
+}
|
|
||||||
diff --git a/browser/components/shell/nsUnixShellService.h b/browser/components/shell/nsUnixShellService.h
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/browser/components/shell/nsUnixShellService.h
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifndef nsunixshellservice_h____
|
|
||||||
+#define nsunixshellservice_h____
|
|
||||||
+
|
|
||||||
+#include "nsIGNOMEShellService.h"
|
|
||||||
+
|
|
||||||
+NS_IMETHODIMP
|
|
||||||
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
|
|
||||||
+
|
|
||||||
+#endif // nsunixshellservice_h____
|
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:eeaffb7ee1447376e76ea12095541e6ec4e8d6148207c260da4da947b56d3ef6
|
|
||||||
size 34484384
|
|
3
l10n-141.0.2.tar.xz
Normal file
3
l10n-141.0.2.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:368365388ffd3e0df0ba01a1ce204f352cbb56a4e84169b74c9673e6e5cc40b0
|
||||||
|
size 38256992
|
@@ -1,11 +1,11 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 125a78208d2cef58191a0328ffe894dd14c6b146
|
# Parent e31f5228a09ed69d7ac3c84e54f0faa6a5910ae0
|
||||||
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
|
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
|
||||||
|
|
||||||
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
|
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
|
||||||
--- a/gfx/2d/DrawTargetSkia.cpp
|
--- a/gfx/2d/DrawTargetSkia.cpp
|
||||||
+++ b/gfx/2d/DrawTargetSkia.cpp
|
+++ b/gfx/2d/DrawTargetSkia.cpp
|
||||||
@@ -151,17 +151,18 @@ static IntRect CalculateSurfaceBounds(co
|
@@ -155,17 +155,18 @@ static IntRect CalculateSurfaceBounds(co
|
||||||
if (!sampledBounds.ToIntRect(&bounds)) {
|
if (!sampledBounds.ToIntRect(&bounds)) {
|
||||||
return surfaceBounds;
|
return surfaceBounds;
|
||||||
}
|
}
|
||||||
@@ -28,8 +28,8 @@ diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
|
|||||||
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
|
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
|
||||||
--- a/gfx/2d/Types.h
|
--- a/gfx/2d/Types.h
|
||||||
+++ b/gfx/2d/Types.h
|
+++ b/gfx/2d/Types.h
|
||||||
@@ -84,28 +84,21 @@ enum class SurfaceFormat : int8_t {
|
@@ -94,28 +94,21 @@ enum class SurfaceFormat : int8_t {
|
||||||
YUV422, // Single plane YUV 4:2:2 interleaved as Y`0 Cb Y`1 Cr.
|
// this format.
|
||||||
HSV,
|
HSV,
|
||||||
Lab,
|
Lab,
|
||||||
Depth,
|
Depth,
|
||||||
|
72
mozilla-bmo1746799.patch
Normal file
72
mozilla-bmo1746799.patch
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
From 535dc3c97fd19a30a329a188786998ae00cdf017 Mon Sep 17 00:00:00 2001
|
||||||
|
From: andrew <andrew@arobeia.co.uk>
|
||||||
|
Date: Thu, 23 Dec 2021 16:18:30 +0000
|
||||||
|
Subject: [PATCH] Map linearly from cubeb volume to pa volume
|
||||||
|
|
||||||
|
Fixes incorrect volume mapping.
|
||||||
|
|
||||||
|
Rebased to current SUSE sources and updated checksums Wed Sep 04 00:00:00 2024
|
||||||
|
|
||||||
|
diff --git a/third_party/rust/cubeb-pulse/.cargo-checksum.json b/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||||
|
--- a/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||||
|
+++ b/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||||
|
@@ -1,1 +1,1 @@
|
||||||
|
-{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"dfe5b747e100cae4aeae36cf2ebb9dc4715b411b4116721a40eec2944eb0ec23","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
|
||||||
|
\ No newline at end of file
|
||||||
|
+{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"2dfc61c4eac69624558756d87283496d01f56f44bf311119eff0f1d124cd88f3","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
|
||||||
|
diff --git a/third_party/rust/cubeb-pulse/src/backend/stream.rs b/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||||
|
--- a/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||||
|
+++ b/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||||
|
@@ -760,18 +760,18 @@ impl<'ctx> StreamOps for PulseStream<'ct
|
||||||
|
_ => pulse::SinkFlags::empty(),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if flags.contains(pulse::SinkFlags::FLAT_VOLUME) {
|
||||||
|
self.volume = volume;
|
||||||
|
} else {
|
||||||
|
let channels = stm.get_sample_spec().channels;
|
||||||
|
- let vol = pulse::sw_volume_from_linear(f64::from(volume));
|
||||||
|
- cvol.set(u32::from(channels), vol);
|
||||||
|
+ let vol = volume * (PA_VOLUME_NORM as f32);
|
||||||
|
+ cvol.set(u32::from(channels), vol as pa_volume_t);
|
||||||
|
|
||||||
|
let index = stm.get_index();
|
||||||
|
|
||||||
|
let context_ptr = self.context as *const _ as *mut _;
|
||||||
|
if let Ok(o) = context.set_sink_input_volume(
|
||||||
|
index,
|
||||||
|
&cvol,
|
||||||
|
context_success,
|
||||||
|
diff --git a/third_party/rust/pulse-ffi/.cargo-checksum.json b/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||||
|
--- a/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||||
|
+++ b/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||||
|
@@ -1,1 +1,1 @@
|
||||||
|
-{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"2ca56bc3638a40d331e53117a5dd175d0a6e102b1e0eccb9c2adc565c6861a33","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
|
||||||
|
\ No newline at end of file
|
||||||
|
+{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"f39a27712b17256583331f7ce5722413d0c7b51d73d8def8f50e839e23dfb411","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
|
||||||
|
diff --git a/third_party/rust/pulse-ffi/src/ffi_types.rs b/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||||
|
--- a/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||||
|
+++ b/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||||
|
@@ -17,16 +17,21 @@ pub const PA_SAMPLE_S32BE: c_int = 8;
|
||||||
|
pub const PA_SAMPLE_S24LE: c_int = 9;
|
||||||
|
pub const PA_SAMPLE_S24BE: c_int = 10;
|
||||||
|
pub const PA_SAMPLE_S24_32LE: c_int = 11;
|
||||||
|
pub const PA_SAMPLE_S24_32BE: c_int = 12;
|
||||||
|
pub const PA_SAMPLE_MAX: c_int = 13;
|
||||||
|
pub const PA_SAMPLE_INVALID: c_int = -1;
|
||||||
|
pub type pa_sample_format_t = c_int;
|
||||||
|
|
||||||
|
+pub const PA_VOLUME_MUTED: c_uint = 0;
|
||||||
|
+pub const PA_VOLUME_NORM: c_uint = 0x10000;
|
||||||
|
+pub const PA_VOLUME_MAX: c_uint = 0x7fffffff;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Copy, Clone, Debug)]
|
||||||
|
pub struct Struct_pa_sample_spec {
|
||||||
|
pub format: pa_sample_format_t,
|
||||||
|
pub rate: u32,
|
||||||
|
pub channels: u8,
|
||||||
|
}
|
||||||
|
|
@@ -1,401 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609192 0
|
|
||||||
# Node ID f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
|
||||||
# Parent 5afadee4e18fc5779d789d9371a3d2d67a29d1da
|
|
||||||
Bug 1898476 [Wayland] Move MozContainerSurfaceLock from MozContainerWayland to MozContainerSurfaceLock module r=emilio
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214883
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/widget/gtk/MozContainerSurfaceLock.cpp
|
|
||||||
@@ -0,0 +1,31 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
+#include "MozContainer.h"
|
|
||||||
+#include "WidgetUtilsGtk.h"
|
|
||||||
+
|
|
||||||
+using namespace mozilla::widget;
|
|
||||||
+
|
|
||||||
+MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ mContainer = aContainer;
|
|
||||||
+ if (GdkIsWaylandDisplay()) {
|
|
||||||
+ // mSurface can be nullptr if we lock hidden MozContainer and
|
|
||||||
+ // that's correct, MozContainer is still locked.
|
|
||||||
+ mSurface = moz_container_wayland_surface_lock(aContainer);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ if (GdkIsWaylandDisplay()) {
|
|
||||||
+ moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
|
||||||
diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h
|
|
||||||
new file mode 100644
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/widget/gtk/MozContainerSurfaceLock.h
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
+
|
|
||||||
+#ifndef widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
+#define widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
+
|
|
||||||
+struct wl_surface;
|
|
||||||
+struct _MozContainer;
|
|
||||||
+typedef struct _MozContainer MozContainer;
|
|
||||||
+
|
|
||||||
+class MozContainerSurfaceLock {
|
|
||||||
+ public:
|
|
||||||
+ explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
|
||||||
+ ~MozContainerSurfaceLock();
|
|
||||||
+
|
|
||||||
+ // wl_surface can be nullptr if we lock hidden MozContainer.
|
|
||||||
+ struct wl_surface* GetSurface();
|
|
||||||
+
|
|
||||||
+ private:
|
|
||||||
+#ifdef MOZ_WAYLAND
|
|
||||||
+ MozContainer* mContainer = nullptr;
|
|
||||||
+#endif
|
|
||||||
+ struct wl_surface* mSurface = nullptr;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#endif // widget_gtk_MozContainerSurfaceLock_h
|
|
||||||
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
|
|
||||||
--- a/widget/gtk/MozContainerWayland.cpp
|
|
||||||
+++ b/widget/gtk/MozContainerWayland.cpp
|
|
||||||
@@ -82,33 +82,16 @@ using namespace mozilla;
|
|
||||||
using namespace mozilla::widget;
|
|
||||||
|
|
||||||
static bool moz_container_wayland_surface_create_locked(
|
|
||||||
const MutexAutoLock& aProofOfLock, MozContainer* container);
|
|
||||||
static void moz_container_wayland_set_opaque_region_locked(
|
|
||||||
const MutexAutoLock& aProofOfLock, MozContainer* container,
|
|
||||||
const LayoutDeviceIntRegion&);
|
|
||||||
|
|
||||||
-// Lock mozcontainer and get wayland surface of it. You need to pair with
|
|
||||||
-// moz_container_wayland_surface_unlock() even
|
|
||||||
-// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
|
||||||
-static struct wl_surface* moz_container_wayland_surface_lock(
|
|
||||||
- MozContainer* container);
|
|
||||||
-static void moz_container_wayland_surface_unlock(MozContainer* container,
|
|
||||||
- struct wl_surface** surface);
|
|
||||||
-
|
|
||||||
-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
|
||||||
- mContainer = aContainer;
|
|
||||||
- mSurface = moz_container_wayland_surface_lock(aContainer);
|
|
||||||
-}
|
|
||||||
-MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
|
||||||
- moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
|
||||||
-}
|
|
||||||
-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
|
||||||
-
|
|
||||||
// Invalidate gtk wl_surface to commit changes to wl_subsurface.
|
|
||||||
// wl_subsurface changes are effective when parent surface is commited.
|
|
||||||
static void moz_container_wayland_invalidate(MozContainer* container) {
|
|
||||||
LOGWAYLAND("moz_container_wayland_invalidate [%p]\n",
|
|
||||||
(void*)moz_container_get_nsWindow(container));
|
|
||||||
|
|
||||||
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
|
|
||||||
if (!window) {
|
|
||||||
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
|
|
||||||
--- a/widget/gtk/MozContainerWayland.h
|
|
||||||
+++ b/widget/gtk/MozContainerWayland.h
|
|
||||||
@@ -8,16 +8,17 @@
|
|
||||||
#ifndef __MOZ_CONTAINER_WAYLAND_H__
|
|
||||||
#define __MOZ_CONTAINER_WAYLAND_H__
|
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <functional>
|
|
||||||
#include <vector>
|
|
||||||
#include "mozilla/Mutex.h"
|
|
||||||
#include "WindowSurface.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* MozContainer
|
|
||||||
*
|
|
||||||
* This class serves three purposes in the nsIWidget implementation.
|
|
||||||
*
|
|
||||||
* - It provides objects to receive signals from GTK for events on native
|
|
||||||
* windows.
|
|
||||||
@@ -56,25 +57,22 @@ struct MozContainerWayland {
|
|
||||||
mozilla::Mutex container_lock{"MozContainerWayland::container_lock"};
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MozContainer;
|
|
||||||
struct _MozContainerClass;
|
|
||||||
typedef struct _MozContainer MozContainer;
|
|
||||||
typedef struct _MozContainerClass MozContainerClass;
|
|
||||||
|
|
||||||
-class MozContainerSurfaceLock {
|
|
||||||
- MozContainer* mContainer;
|
|
||||||
- struct wl_surface* mSurface;
|
|
||||||
-
|
|
||||||
- public:
|
|
||||||
- explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
|
||||||
- ~MozContainerSurfaceLock();
|
|
||||||
- struct wl_surface* GetSurface();
|
|
||||||
-};
|
|
||||||
+// Lock mozcontainer and get wayland surface of it. You need to pair with
|
|
||||||
+// moz_container_wayland_surface_unlock() even
|
|
||||||
+// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
|
||||||
+struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container);
|
|
||||||
+void moz_container_wayland_surface_unlock(MozContainer* container,
|
|
||||||
+ struct wl_surface** surface);
|
|
||||||
|
|
||||||
void moz_container_wayland_map(GtkWidget*);
|
|
||||||
gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*);
|
|
||||||
void moz_container_wayland_size_allocate(GtkWidget*, GtkAllocation*);
|
|
||||||
void moz_container_wayland_unmap(GtkWidget*);
|
|
||||||
|
|
||||||
struct wl_egl_window* moz_container_wayland_get_egl_window(
|
|
||||||
MozContainer* container, double scale);
|
|
||||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
|
||||||
--- a/widget/gtk/moz.build
|
|
||||||
+++ b/widget/gtk/moz.build
|
|
||||||
@@ -28,16 +28,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
|
||||||
if CONFIG["MOZ_ENABLE_VAAPI"]:
|
|
||||||
DIRS += ["vaapitest"]
|
|
||||||
|
|
||||||
if CONFIG["MOZ_ENABLE_V4L2"]:
|
|
||||||
DIRS += ["v4l2test"]
|
|
||||||
|
|
||||||
EXPORTS += [
|
|
||||||
"MozContainer.h",
|
|
||||||
+ "MozContainerSurfaceLock.h",
|
|
||||||
"nsGTKToolkit.h",
|
|
||||||
"nsGtkUtils.h",
|
|
||||||
"nsImageToPixbuf.h",
|
|
||||||
]
|
|
||||||
|
|
||||||
EXPORTS.mozilla += [
|
|
||||||
"GfxInfo.h",
|
|
||||||
"GfxInfoUtils.h",
|
|
||||||
@@ -66,16 +67,17 @@ UNIFIED_SOURCES += [
|
|
||||||
"DMABufLibWrapper.cpp",
|
|
||||||
"DMABufSurface.cpp",
|
|
||||||
"GfxInfo.cpp",
|
|
||||||
"gtk3drawing.cpp",
|
|
||||||
"GtkCompositorWidget.cpp",
|
|
||||||
"IMContextWrapper.cpp",
|
|
||||||
"InProcessGtkCompositorWidget.cpp",
|
|
||||||
"MozContainer.cpp",
|
|
||||||
+ "MozContainerSurfaceLock.cpp",
|
|
||||||
"MPRISServiceHandler.cpp",
|
|
||||||
"NativeKeyBindings.cpp",
|
|
||||||
"NativeMenuGtk.cpp",
|
|
||||||
"NativeMenuSupport.cpp",
|
|
||||||
"nsApplicationChooser.cpp",
|
|
||||||
"nsAppShell.cpp",
|
|
||||||
"nsBidiKeyboard.cpp",
|
|
||||||
"nsClipboard.cpp",
|
|
||||||
@@ -109,16 +111,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
"MozContainerWayland.cpp",
|
|
||||||
"nsClipboardWayland.cpp",
|
|
||||||
"nsWaylandDisplay.cpp",
|
|
||||||
"WaylandBuffer.cpp",
|
|
||||||
"WindowSurfaceWaylandMultiBuffer.cpp",
|
|
||||||
]
|
|
||||||
EXPORTS.mozilla.widget += [
|
|
||||||
+ "MozContainerSurfaceLock.h",
|
|
||||||
"MozContainerWayland.h",
|
|
||||||
"nsWaylandDisplay.h",
|
|
||||||
"WaylandBuffer.h",
|
|
||||||
]
|
|
||||||
|
|
||||||
if CONFIG["MOZ_X11"]:
|
|
||||||
UNIFIED_SOURCES += [
|
|
||||||
"nsClipboardX11.cpp",
|
|
||||||
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609193 0
|
|
||||||
# Node ID a264ff9e9f6f87ca0520a884b29c4be90001533e
|
|
||||||
# Parent f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
|
||||||
Bug 1898476 [Wayland] Provide surface lock by GtkCompositorWidget r=emilio
|
|
||||||
|
|
||||||
Depends on D214883
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214884
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
@@ -206,10 +206,14 @@ void GtkCompositorWidget::SetRenderingSu
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
bool GtkCompositorWidget::IsPopup() {
|
|
||||||
return mWidget ? mWidget->IsPopup() : false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
|
||||||
+ return mWidget->LockSurface();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
} // namespace widget
|
|
||||||
} // namespace mozilla
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.h
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.h
|
|
||||||
@@ -5,16 +5,18 @@
|
|
||||||
|
|
||||||
#ifndef widget_gtk_GtkCompositorWidget_h
|
|
||||||
#define widget_gtk_GtkCompositorWidget_h
|
|
||||||
|
|
||||||
#include "GLDefs.h"
|
|
||||||
#include "mozilla/DataMutex.h"
|
|
||||||
#include "mozilla/widget/CompositorWidget.h"
|
|
||||||
#include "WindowSurfaceProvider.h"
|
|
||||||
+#include "mozilla/UniquePtr.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
|
|
||||||
class nsIWidget;
|
|
||||||
class nsWindow;
|
|
||||||
|
|
||||||
namespace mozilla {
|
|
||||||
|
|
||||||
namespace layers {
|
|
||||||
class NativeLayerRootWayland;
|
|
||||||
@@ -91,16 +93,18 @@ class GtkCompositorWidget : public Compo
|
|
||||||
RefPtr<mozilla::layers::NativeLayerRoot> GetNativeLayerRoot() override;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// PlatformCompositorWidgetDelegate Overrides
|
|
||||||
|
|
||||||
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
|
|
||||||
GtkCompositorWidget* AsGtkCompositorWidget() override { return this; }
|
|
||||||
|
|
||||||
+ UniquePtr<MozContainerSurfaceLock> LockSurface();
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
#if defined(MOZ_WAYLAND)
|
|
||||||
void ConfigureWaylandBackend();
|
|
||||||
#endif
|
|
||||||
#if defined(MOZ_X11)
|
|
||||||
void ConfigureX11Backend(Window aXWindow, bool aShaped);
|
|
||||||
#endif
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
|
||||||
--- a/widget/gtk/nsWindow.cpp
|
|
||||||
+++ b/widget/gtk/nsWindow.cpp
|
|
||||||
@@ -10271,8 +10271,15 @@ void nsWindow::SetDragSource(GdkDragCont
|
|
||||||
mSourceDragContext = aSourceDragContext;
|
|
||||||
if (IsPopup() &&
|
|
||||||
(widget::GdkIsWaylandDisplay() || widget::IsXWaylandProtocol())) {
|
|
||||||
if (auto* menuPopupFrame = GetMenuPopupFrame(GetFrame())) {
|
|
||||||
menuPopupFrame->SetIsDragSource(!!aSourceDragContext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+UniquePtr<MozContainerSurfaceLock> nsWindow::LockSurface() {
|
|
||||||
+ if (mIsDestroyed) {
|
|
||||||
+ return nullptr;
|
|
||||||
+ }
|
|
||||||
+ return MakeUnique<MozContainerSurfaceLock>(mContainer);
|
|
||||||
+}
|
|
||||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
|
||||||
--- a/widget/gtk/nsWindow.h
|
|
||||||
+++ b/widget/gtk/nsWindow.h
|
|
||||||
@@ -8,16 +8,17 @@
|
|
||||||
#ifndef __nsWindow_h__
|
|
||||||
#define __nsWindow_h__
|
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
#include "CompositorWidget.h"
|
|
||||||
#include "MozContainer.h"
|
|
||||||
+#include "MozContainerSurfaceLock.h"
|
|
||||||
#include "VsyncSource.h"
|
|
||||||
#include "mozilla/EventForwards.h"
|
|
||||||
#include "mozilla/Maybe.h"
|
|
||||||
#include "mozilla/RefPtr.h"
|
|
||||||
#include "mozilla/TouchEvents.h"
|
|
||||||
#include "mozilla/UniquePtr.h"
|
|
||||||
#include "mozilla/RWLock.h"
|
|
||||||
#include "mozilla/widget/WindowSurface.h"
|
|
||||||
@@ -416,16 +417,18 @@ class nsWindow final : public nsBaseWidg
|
|
||||||
static bool TitlebarUseShapeMask();
|
|
||||||
bool IsRemoteContent() { return HasRemoteContent(); }
|
|
||||||
void NativeMoveResizeWaylandPopupCallback(const GdkRectangle* aFinalSize,
|
|
||||||
bool aFlippedX, bool aFlippedY);
|
|
||||||
static bool IsToplevelWindowTransparent();
|
|
||||||
|
|
||||||
static nsWindow* GetFocusedWindow();
|
|
||||||
|
|
||||||
+ mozilla::UniquePtr<MozContainerSurfaceLock> LockSurface();
|
|
||||||
+
|
|
||||||
#ifdef MOZ_WAYLAND
|
|
||||||
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
|
|
||||||
static void TransferFocusToWaylandWindow(nsWindow* aWindow);
|
|
||||||
void FocusWaylandWindow(const char* aTokenID);
|
|
||||||
|
|
||||||
bool GetCSDDecorationOffset(int* aDx, int* aDy);
|
|
||||||
bool SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize);
|
|
||||||
void WaylandDragWorkaround(GdkEventButton* aEvent);
|
|
||||||
|
|
||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720609193 0
|
|
||||||
# Node ID eb230ecdf8eb26a9ed340873b58fe7b71f94f8e8
|
|
||||||
# Parent a264ff9e9f6f87ca0520a884b29c4be90001533e
|
|
||||||
Bug 1898476 [Wayland] Lock Wayland surface before Swap buffers in RenderCompositorEGL r=emilio
|
|
||||||
|
|
||||||
Depends on D214884
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D214885
|
|
||||||
|
|
||||||
diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
+++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
|
||||||
@@ -149,16 +149,26 @@ RenderedFrameId RenderCompositorEGL::End
|
|
||||||
const auto width = right - left;
|
|
||||||
const auto height = bottom - top;
|
|
||||||
|
|
||||||
bufferInvalid.OrWith(
|
|
||||||
gfx::IntRect(left, (GetBufferSize().height - bottom), width, height));
|
|
||||||
}
|
|
||||||
gl()->SetDamage(bufferInvalid);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+#ifdef MOZ_WIDGET_GTK
|
|
||||||
+ // Rendering on Wayland has to be atomic (buffer attach + commit) and
|
|
||||||
+ // wayland surface is also used by main thread so lock it before
|
|
||||||
+ // we paint at SwapBuffers().
|
|
||||||
+ UniquePtr<MozContainerSurfaceLock> lock;
|
|
||||||
+ if (auto* gtkWidget = mWidget->AsGTK()) {
|
|
||||||
+ lock = gtkWidget->LockSurface();
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
gl()->SwapBuffers();
|
|
||||||
return frameId;
|
|
||||||
}
|
|
||||||
|
|
||||||
void RenderCompositorEGL::Pause() { DestroyEGLSurface(); }
|
|
||||||
|
|
||||||
bool RenderCompositorEGL::Resume() {
|
|
||||||
if (kIsAndroid) {
|
|
||||||
|
|
@@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
# HG changeset patch
|
|
||||||
# User stransky <stransky@redhat.com>
|
|
||||||
# Date 1720807971 0
|
|
||||||
# Node ID d8a0164db5db7090fd7549b03dd0391f7151649c
|
|
||||||
# Parent e243955016ffa880296b8d82cf531887dfb3ac22
|
|
||||||
Bug 1907511 [Linux/X11] Check mWindow at GtkCompositorWidget::LockSurface() r=emilio
|
|
||||||
|
|
||||||
Differential Revision: https://phabricator.services.mozilla.com/D216380
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
|
||||||
@@ -207,13 +207,13 @@ void GtkCompositorWidget::SetRenderingSu
|
|
||||||
|
|
||||||
#ifdef MOZ_LOGGING
|
|
||||||
bool GtkCompositorWidget::IsPopup() {
|
|
||||||
return mWidget ? mWidget->IsPopup() : false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
|
||||||
- return mWidget->LockSurface();
|
|
||||||
+ return mWidget ? mWidget->LockSurface() : nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace widget
|
|
||||||
} // namespace mozilla
|
|
||||||
|
|
1774
mozilla-kde.patch
1774
mozilla-kde.patch
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,28 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# User Petr Cerny <pcerny@novell.com>
|
# User Petr Cerny <pcerny@novell.com>
|
||||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||||
# Parent 1c6a565013e4c5f3494f964269783939cd5ed0b8
|
# Parent 3399aced682c232525633755ff79b37a0be75548
|
||||||
Bug 634334 - call to the ntlm_auth helper fails
|
Bug 634334 - call to the ntlm_auth helper fails
|
||||||
|
|
||||||
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
||||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||||
@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
@@ -148,17 +148,17 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||||
const char* username = PR_GetEnv("USER");
|
}
|
||||||
if (!username) return NS_ERROR_FAILURE;
|
|
||||||
|
base::LaunchOptions options;
|
||||||
|
options.fds_to_remap.push_back(
|
||||||
|
std::pair{toChildPipeRead.get(), STDIN_FILENO});
|
||||||
|
options.fds_to_remap.push_back(
|
||||||
|
std::pair{fromChildPipeWrite.get(), STDOUT_FILENO});
|
||||||
|
|
||||||
|
- std::vector<std::string> argvVec{"ntlm_auth", "--helper-protocol",
|
||||||
|
+ std::vector<std::string> argvVec{"/usr/bin/ntlm_auth", "--helper-protocol",
|
||||||
|
"ntlmssp-client-1", "--use-cached-creds",
|
||||||
|
"--username", username};
|
||||||
|
|
||||||
|
auto result = base::LaunchApp(argvVec, std::move(options), &mChildPID);
|
||||||
|
if (result.isErr()) {
|
||||||
|
return NS_ERROR_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
- const char* const args[] = {"ntlm_auth",
|
|
||||||
+ const char* const args[] = {"/usr/bin/ntlm_auth",
|
|
||||||
"--helper-protocol",
|
|
||||||
"ntlmssp-client-1",
|
|
||||||
"--use-cached-creds",
|
|
||||||
|
@@ -1,16 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# Parent 83a5e219b271976ee9dfa46b74ecc1c1c6d49f94
|
|
||||||
|
|
||||||
Index: firefox-128.0/Cargo.toml
|
|
||||||
===================================================================
|
|
||||||
--- firefox-128.0.orig/Cargo.toml
|
|
||||||
+++ firefox-128.0/Cargo.toml
|
|
||||||
@@ -236,3 +236,8 @@ mio_0_8 = { package = "mio", git = "http
|
|
||||||
# Patch `gpu-descriptor` 0.3.0 to remove unnecessary `allocator-api2` dep.:
|
|
||||||
# Still waiting for the now-merged <https://github.com/zakarumych/gpu-descriptor/pull/40> to be released.
|
|
||||||
gpu-descriptor = { git = "https://github.com/zakarumych/gpu-descriptor", rev = "7b71a4e47c81903ad75e2c53deb5ab1310f6ff4d" }
|
|
||||||
+
|
|
||||||
+# Package code v0.1.4 uses code "that will be rejected by a future version of Rust"
|
|
||||||
+# Shut up such messages for now to make the build succeed
|
|
||||||
+[future-incompat-report]
|
|
||||||
+frequency = "never"
|
|
@@ -1,5 +1,5 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent ed4bafa3b0d1f1da83e0a81545a0144602530a80
|
# Parent df83073d2834936ee6a66cdb875fca6f63767297
|
||||||
|
|
||||||
diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||||
--- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
--- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||||
@@ -67,7 +67,7 @@ diff --git a/gfx/skia/skia/src/core/SkDescriptor.cpp b/gfx/skia/skia/src/core/Sk
|
|||||||
diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeometry.h
|
diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeometry.h
|
||||||
--- a/gfx/skia/skia/src/core/SkGeometry.h
|
--- a/gfx/skia/skia/src/core/SkGeometry.h
|
||||||
+++ b/gfx/skia/skia/src/core/SkGeometry.h
|
+++ b/gfx/skia/skia/src/core/SkGeometry.h
|
||||||
@@ -276,28 +276,30 @@ static inline bool SkCubicIsDegenerate(S
|
@@ -277,28 +277,30 @@ static inline bool SkCubicIsDegenerate(S
|
||||||
case SkCubicType::kLocalCusp:
|
case SkCubicType::kLocalCusp:
|
||||||
case SkCubicType::kCuspAtInfinity:
|
case SkCubicType::kCuspAtInfinity:
|
||||||
return false;
|
return false;
|
||||||
@@ -178,7 +178,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core
|
|||||||
const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
|
const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
|
||||||
{
|
{
|
||||||
return std::make_unique<SkScalerContextProxy>(
|
return std::make_unique<SkScalerContextProxy>(
|
||||||
sk_ref_sp(const_cast<SkTypefaceProxy*>(this)), effects, desc, fDiscardableManager);
|
*const_cast<SkTypefaceProxy*>(this), effects, desc, fDiscardableManager);
|
||||||
}
|
}
|
||||||
void onFilterRec(SkScalerContextRec* rec) const override {
|
void onFilterRec(SkScalerContextRec* rec) const override {
|
||||||
// The rec filtering is already applied by the server when generating
|
// The rec filtering is already applied by the server when generating
|
||||||
@@ -221,48 +221,6 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core
|
|||||||
const bool fIsLogging;
|
const bool fIsLogging;
|
||||||
const bool fGlyphMaskNeedsCurrentColor;
|
const bool fGlyphMaskNeedsCurrentColor;
|
||||||
sk_sp<SkStrikeClient::DiscardableHandleManager> fDiscardableManager;
|
sk_sp<SkStrikeClient::DiscardableHandleManager> fDiscardableManager;
|
||||||
diff --git a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
|
||||||
--- a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
|
||||||
+++ b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
|
||||||
@@ -794,16 +794,17 @@ sk_sp<SkSpecialImage> cpu_blur(const ski
|
|
||||||
SkASSERT(0 <= sigma && sigma <= 2183); // should be guaranteed after map_sigma
|
|
||||||
if (PassMaker* maker = GaussPass::MakeMaker(sigma, &alloc)) {
|
|
||||||
return maker;
|
|
||||||
}
|
|
||||||
if (PassMaker* maker = TentPass::MakeMaker(sigma, &alloc)) {
|
|
||||||
return maker;
|
|
||||||
}
|
|
||||||
SK_ABORT("Sigma is out of range.");
|
|
||||||
+ SkUNREACHABLE;
|
|
||||||
};
|
|
||||||
|
|
||||||
PassMaker* makerX = makeMaker(sigma.width());
|
|
||||||
PassMaker* makerY = makeMaker(sigma.height());
|
|
||||||
// A no-op blur should have been caught earlier in onFilterImage().
|
|
||||||
SkASSERT(makerX->window() > 1 || makerY->window() > 1);
|
|
||||||
|
|
||||||
SkBitmap src;
|
|
||||||
diff --git a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
|
||||||
--- a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
|
||||||
+++ b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
|
||||||
@@ -64,16 +64,17 @@ int SkFontMgr_Indirect::onCountFamilies(
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkFontMgr_Indirect::onGetFamilyName(int index, SkString* familyName) const {
|
|
||||||
SK_ABORT("Not implemented");
|
|
||||||
}
|
|
||||||
|
|
||||||
sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onCreateStyleSet(int index) const {
|
|
||||||
SK_ABORT("Not implemented");
|
|
||||||
+ SkUNREACHABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
|
|
||||||
return sk_sp<SkFontStyleSet>(new SkStyleSet_Indirect(this, -1, fProxy->matchName(familyName)));
|
|
||||||
}
|
|
||||||
|
|
||||||
sk_sp<SkTypeface> SkFontMgr_Indirect::createTypefaceFromFontId(const SkFontIdentity& id) const {
|
|
||||||
if (id.fDataId == SkFontIdentity::kInvalidDataId) {
|
|
||||||
diff --git a/gfx/skia/skia/src/sksl/SkSLOperator.cpp b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
diff --git a/gfx/skia/skia/src/sksl/SkSLOperator.cpp b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||||
--- a/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
--- a/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||||
+++ b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
+++ b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||||
@@ -309,7 +267,7 @@ diff --git a/gfx/skia/skia/src/sksl/ir/SkSLType.h b/gfx/skia/skia/src/sksl/ir/Sk
|
|||||||
diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||||
--- a/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
--- a/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||||
+++ b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
+++ b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||||
@@ -135,16 +135,17 @@ struct SpotVerticesFactory {
|
@@ -137,16 +137,17 @@ struct SpotVerticesFactory {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case OccluderType::kDirectional:
|
case OccluderType::kDirectional:
|
||||||
@@ -334,25 +292,25 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num
|
|||||||
}
|
}
|
||||||
|
|
||||||
FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) {
|
FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) {
|
||||||
FractionSignificantSettings settings;
|
FractionSignificantSettings settings{};
|
||||||
settings.fMinFrac = static_cast<digits_t>(minFrac);
|
settings.fMinFrac = static_cast<digits_t>(minFrac);
|
||||||
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
|
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
|
||||||
settings.fMinSig = -1;
|
settings.fMinSig = -1;
|
||||||
settings.fMaxSig = -1;
|
settings.fMaxSig = -1;
|
||||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||||
PrecisionUnion union_;
|
PrecisionUnion union_{};
|
||||||
union_.fracSig = settings;
|
union_.fracSig = settings;
|
||||||
return {RND_FRACTION, union_};
|
return {RND_FRACTION, union_};
|
||||||
}
|
}
|
||||||
|
|
||||||
Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) {
|
Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) {
|
||||||
FractionSignificantSettings settings;
|
FractionSignificantSettings settings{};
|
||||||
settings.fMinFrac = -1;
|
settings.fMinFrac = -1;
|
||||||
settings.fMaxFrac = -1;
|
settings.fMaxFrac = -1;
|
||||||
settings.fMinSig = static_cast<digits_t>(minSig);
|
settings.fMinSig = static_cast<digits_t>(minSig);
|
||||||
settings.fMaxSig = static_cast<digits_t>(maxSig);
|
settings.fMaxSig = static_cast<digits_t>(maxSig);
|
||||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||||
PrecisionUnion union_;
|
PrecisionUnion union_{};
|
||||||
union_.fracSig = settings;
|
union_.fracSig = settings;
|
||||||
return {RND_SIGNIFICANT, union_};
|
return {RND_SIGNIFICANT, union_};
|
||||||
}
|
}
|
||||||
@@ -363,7 +321,7 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num
|
|||||||
diff --git a/js/src/irregexp/imported/regexp-parser.cc b/js/src/irregexp/imported/regexp-parser.cc
|
diff --git a/js/src/irregexp/imported/regexp-parser.cc b/js/src/irregexp/imported/regexp-parser.cc
|
||||||
--- a/js/src/irregexp/imported/regexp-parser.cc
|
--- a/js/src/irregexp/imported/regexp-parser.cc
|
||||||
+++ b/js/src/irregexp/imported/regexp-parser.cc
|
+++ b/js/src/irregexp/imported/regexp-parser.cc
|
||||||
@@ -2776,16 +2776,17 @@ bool MayContainStrings(ClassSetOperandTy
|
@@ -2785,16 +2785,17 @@ bool MayContainStrings(ClassSetOperandTy
|
||||||
return false;
|
return false;
|
||||||
case ClassSetOperandType::kCharacterClassEscape:
|
case ClassSetOperandType::kCharacterClassEscape:
|
||||||
case ClassSetOperandType::kClassStringDisjunction:
|
case ClassSetOperandType::kClassStringDisjunction:
|
||||||
@@ -405,7 +363,7 @@ diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libw
|
|||||||
diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc/api/rtp_parameters.cc
|
diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc/api/rtp_parameters.cc
|
||||||
--- a/third_party/libwebrtc/api/rtp_parameters.cc
|
--- a/third_party/libwebrtc/api/rtp_parameters.cc
|
||||||
+++ b/third_party/libwebrtc/api/rtp_parameters.cc
|
+++ b/third_party/libwebrtc/api/rtp_parameters.cc
|
||||||
@@ -28,16 +28,17 @@ const char* DegradationPreferenceToStrin
|
@@ -32,16 +32,17 @@ const char* DegradationPreferenceToStrin
|
||||||
case DegradationPreference::MAINTAIN_FRAMERATE:
|
case DegradationPreference::MAINTAIN_FRAMERATE:
|
||||||
return "maintain-framerate";
|
return "maintain-framerate";
|
||||||
case DegradationPreference::MAINTAIN_RESOLUTION:
|
case DegradationPreference::MAINTAIN_RESOLUTION:
|
||||||
@@ -426,7 +384,7 @@ diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc
|
|||||||
diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||||
--- a/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
--- a/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||||
+++ b/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
+++ b/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||||
@@ -101,16 +101,18 @@ const char* VideoFrameBufferTypeToString
|
@@ -109,16 +109,18 @@ const char* VideoFrameBufferTypeToString
|
||||||
return "kI210";
|
return "kI210";
|
||||||
case VideoFrameBuffer::Type::kI410:
|
case VideoFrameBuffer::Type::kI410:
|
||||||
return "kI410";
|
return "kI410";
|
||||||
@@ -448,7 +406,7 @@ diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party
|
|||||||
diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||||
--- a/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
--- a/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||||
+++ b/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
+++ b/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||||
@@ -157,16 +157,17 @@ const char* CodecTypeToPayloadString(Vid
|
@@ -153,16 +153,17 @@ const char* CodecTypeToPayloadString(Vid
|
||||||
case kVideoCodecH264:
|
case kVideoCodecH264:
|
||||||
return kPayloadNameH264;
|
return kPayloadNameH264;
|
||||||
case kVideoCodecGeneric:
|
case kVideoCodecGeneric:
|
||||||
@@ -469,7 +427,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party
|
|||||||
diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||||
--- a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
--- a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||||
+++ b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
+++ b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||||
@@ -187,16 +187,17 @@ class VideoEncoderSoftwareFallbackWrappe
|
@@ -189,16 +189,17 @@ class VideoEncoderSoftwareFallbackWrappe
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
case EncoderState::kMainEncoderUsed:
|
case EncoderState::kMainEncoderUsed:
|
||||||
return encoder_.get();
|
return encoder_.get();
|
||||||
@@ -487,7 +445,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb
|
|||||||
|
|
||||||
// Settings used in the last InitEncode call and used if a dynamic fallback to
|
// Settings used in the last InitEncode call and used if a dynamic fallback to
|
||||||
// software is required.
|
// software is required.
|
||||||
@@ -382,16 +383,17 @@ int32_t VideoEncoderSoftwareFallbackWrap
|
@@ -387,16 +388,17 @@ int32_t VideoEncoderSoftwareFallbackWrap
|
||||||
case EncoderState::kMainEncoderUsed: {
|
case EncoderState::kMainEncoderUsed: {
|
||||||
return EncodeWithMainEncoder(frame, frame_types);
|
return EncodeWithMainEncoder(frame, frame_types);
|
||||||
}
|
}
|
||||||
@@ -508,7 +466,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb
|
|||||||
diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||||
--- a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
--- a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||||
+++ b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
+++ b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||||
@@ -164,16 +164,17 @@ const char* Adaptation::StatusToString(A
|
@@ -172,16 +172,17 @@ const char* Adaptation::StatusToString(A
|
||||||
case Status::kInsufficientInput:
|
case Status::kInsufficientInput:
|
||||||
return "kInsufficientInput";
|
return "kInsufficientInput";
|
||||||
case Status::kAdaptationDisabled:
|
case Status::kAdaptationDisabled:
|
||||||
@@ -526,7 +484,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
|
|||||||
VideoStreamInputState input_state)
|
VideoStreamInputState input_state)
|
||||||
: validation_id_(validation_id),
|
: validation_id_(validation_id),
|
||||||
status_(Status::kValid),
|
status_(Status::kValid),
|
||||||
@@ -386,16 +387,17 @@ VideoStreamAdapter::RestrictionsOrState
|
@@ -394,16 +395,17 @@ VideoStreamAdapter::RestrictionsOrState
|
||||||
case DegradationPreference::MAINTAIN_RESOLUTION: {
|
case DegradationPreference::MAINTAIN_RESOLUTION: {
|
||||||
// Scale up framerate.
|
// Scale up framerate.
|
||||||
return IncreaseFramerate(input_state, current_restrictions_);
|
return IncreaseFramerate(input_state, current_restrictions_);
|
||||||
@@ -544,7 +502,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
|
|||||||
++adaptation_validation_id_;
|
++adaptation_validation_id_;
|
||||||
RestrictionsOrState restrictions_or_state =
|
RestrictionsOrState restrictions_or_state =
|
||||||
GetAdaptationDownStep(input_state, current_restrictions_);
|
GetAdaptationDownStep(input_state, current_restrictions_);
|
||||||
@@ -468,16 +470,17 @@ VideoStreamAdapter::GetAdaptationDownSte
|
@@ -474,16 +476,17 @@ VideoStreamAdapter::GetAdaptationDownSte
|
||||||
}
|
}
|
||||||
case DegradationPreference::MAINTAIN_RESOLUTION: {
|
case DegradationPreference::MAINTAIN_RESOLUTION: {
|
||||||
return DecreaseFramerate(input_state, current_restrictions);
|
return DecreaseFramerate(input_state, current_restrictions);
|
||||||
@@ -562,7 +520,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
|
|||||||
int target_pixels =
|
int target_pixels =
|
||||||
GetLowerResolutionThan(input_state.frame_size_pixels().value());
|
GetLowerResolutionThan(input_state.frame_size_pixels().value());
|
||||||
// Use single active stream if set, this stream could be lower than the input.
|
// Use single active stream if set, this stream could be lower than the input.
|
||||||
@@ -621,16 +624,18 @@ Adaptation VideoStreamAdapter::GetAdaptD
|
@@ -627,16 +630,18 @@ Adaptation VideoStreamAdapter::GetAdaptD
|
||||||
case DegradationPreference::MAINTAIN_FRAMERATE:
|
case DegradationPreference::MAINTAIN_FRAMERATE:
|
||||||
return GetAdaptationDown();
|
return GetAdaptationDown();
|
||||||
case DegradationPreference::BALANCED: {
|
case DegradationPreference::BALANCED: {
|
||||||
@@ -580,20 +538,21 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
|
|||||||
const VideoStreamInputState& input_state) const {
|
const VideoStreamInputState& input_state) const {
|
||||||
// Adapt twice if the first adaptation did not decrease resolution.
|
// Adapt twice if the first adaptation did not decrease resolution.
|
||||||
auto first_step = GetAdaptationDownStep(input_state, current_restrictions_);
|
auto first_step = GetAdaptationDownStep(input_state, current_restrictions_);
|
||||||
if (!absl::holds_alternative<RestrictionsWithCounters>(first_step)) {
|
if (!std::holds_alternative<RestrictionsWithCounters>(first_step)) {
|
||||||
diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libwebrtc/call/rtp_payload_params.cc
|
diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||||
--- a/third_party/libwebrtc/call/rtp_payload_params.cc
|
--- a/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||||
+++ b/third_party/libwebrtc/call/rtp_payload_params.cc
|
+++ b/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||||
@@ -408,17 +408,17 @@ absl::optional<FrameDependencyStructure>
|
@@ -425,17 +425,18 @@ std::optional<FrameDependencyStructure>
|
||||||
}
|
|
||||||
return structure;
|
|
||||||
}
|
|
||||||
case VideoCodecType::kVideoCodecAV1:
|
|
||||||
case VideoCodecType::kVideoCodecH264:
|
case VideoCodecType::kVideoCodecH264:
|
||||||
|
return MinimalisticStructure(
|
||||||
|
/*num_spatial_layers=*/1,
|
||||||
|
/*num_temporal_layers=*/kMaxTemporalStreams);
|
||||||
|
case VideoCodecType::kVideoCodecAV1:
|
||||||
case VideoCodecType::kVideoCodecH265:
|
case VideoCodecType::kVideoCodecH265:
|
||||||
return absl::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
- RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
|
- RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
|
||||||
|
+ //RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
|
||||||
+ RTC_CHECK_NOTREACHED();
|
+ RTC_CHECK_NOTREACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,7 +565,7 @@ diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libw
|
|||||||
diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwebrtc/call/video_send_stream.cc
|
diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwebrtc/call/video_send_stream.cc
|
||||||
--- a/third_party/libwebrtc/call/video_send_stream.cc
|
--- a/third_party/libwebrtc/call/video_send_stream.cc
|
||||||
+++ b/third_party/libwebrtc/call/video_send_stream.cc
|
+++ b/third_party/libwebrtc/call/video_send_stream.cc
|
||||||
@@ -25,16 +25,17 @@ const char* StreamTypeToString(VideoSend
|
@@ -29,16 +29,17 @@ const char* StreamTypeToString(VideoSend
|
||||||
case VideoSendStream::StreamStats::StreamType::kMedia:
|
case VideoSendStream::StreamStats::StreamType::kMedia:
|
||||||
return "media";
|
return "media";
|
||||||
case VideoSendStream::StreamStats::StreamType::kRtx:
|
case VideoSendStream::StreamStats::StreamType::kRtx:
|
||||||
@@ -624,27 +583,27 @@ diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwe
|
|||||||
VideoSendStream::StreamStats::~StreamStats() = default;
|
VideoSendStream::StreamStats::~StreamStats() = default;
|
||||||
|
|
||||||
std::string VideoSendStream::StreamStats::ToString() const {
|
std::string VideoSendStream::StreamStats::ToString() const {
|
||||||
diff --git a/third_party/libwebrtc/media/base/codec.cc b/third_party/libwebrtc/media/base/codec.cc
|
diff --git a/third_party/libwebrtc/media/base/codec_comparators.cc b/third_party/libwebrtc/media/base/codec_comparators.cc
|
||||||
--- a/third_party/libwebrtc/media/base/codec.cc
|
--- a/third_party/libwebrtc/media/base/codec_comparators.cc
|
||||||
+++ b/third_party/libwebrtc/media/base/codec.cc
|
+++ b/third_party/libwebrtc/media/base/codec_comparators.cc
|
||||||
@@ -257,16 +257,17 @@ bool Codec::Matches(const Codec& codec)
|
@@ -334,16 +334,17 @@ bool MatchesWithCodecRules(const Codec&
|
||||||
(codec.bitrate == 0 || bitrate <= 0 ||
|
left_codec.bitrate == right_codec.bitrate) &&
|
||||||
bitrate == codec.bitrate) &&
|
((right_codec.channels < 2 && left_codec.channels < 2) ||
|
||||||
((codec.channels < 2 && channels < 2) ||
|
left_codec.channels == right_codec.channels);
|
||||||
channels == codec.channels);
|
|
||||||
|
|
||||||
case Type::kVideo:
|
case Codec::Type::kVideo:
|
||||||
return IsSameCodecSpecific(name, params, codec.name, codec.params);
|
return IsSameCodecSpecific(left_codec.name, left_codec.params,
|
||||||
|
right_codec.name, right_codec.params);
|
||||||
}
|
}
|
||||||
+ return false; // unreached
|
+ return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
return matches_id && matches_type_specific();
|
return matches_id && matches_type_specific();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Codec::MatchesRtpCodec(const webrtc::RtpCodec& codec_capability) const {
|
bool MatchesWithReferenceAttributes(const Codec& codec1, const Codec& codec2) {
|
||||||
webrtc::RtpCodecParameters codec_parameters = ToCodecParameters();
|
return MatchesWithReferenceAttributesAndComparator(
|
||||||
|
codec1, codec2, [](int a, int b) { return a == b; });
|
||||||
diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||||
--- a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
--- a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||||
+++ b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
+++ b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||||
@@ -679,7 +638,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_st
|
|||||||
|
|
||||||
metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
|
metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
|
||||||
char buffer[64];
|
char buffer[64];
|
||||||
rtc::SimpleStringBuilder builder(buffer);
|
SimpleStringBuilder builder(buffer);
|
||||||
builder << MetricNamePrefix(input_volume_type) << "OnChange";
|
builder << MetricNamePrefix(input_volume_type) << "OnChange";
|
||||||
return metrics::HistogramFactoryGetCountsLinear(/*name=*/builder.str(),
|
return metrics::HistogramFactoryGetCountsLinear(/*name=*/builder.str(),
|
||||||
/*min=*/1,
|
/*min=*/1,
|
||||||
@@ -687,7 +646,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.
|
|||||||
--- a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
--- a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||||
+++ b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
+++ b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||||
@@ -55,16 +55,18 @@ std::vector<float> PreprocessWeights(rtc
|
@@ -55,16 +55,18 @@ std::vector<float> PreprocessWeights(rtc
|
||||||
rtc::FunctionView<float(float)> GetActivationFunction(
|
FunctionView<float(float)> GetActivationFunction(
|
||||||
ActivationFunction activation_function) {
|
ActivationFunction activation_function) {
|
||||||
switch (activation_function) {
|
switch (activation_function) {
|
||||||
case ActivationFunction::kTansigApproximated:
|
case ActivationFunction::kTansigApproximated:
|
||||||
@@ -708,7 +667,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.
|
|||||||
diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||||
--- a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
--- a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||||
+++ b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
+++ b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||||
@@ -96,16 +96,17 @@ GainControl::Mode Agc1ConfigModeToInterf
|
@@ -94,16 +94,17 @@ GainControl::Mode Agc1ConfigModeToInterf
|
||||||
case Agc1Config::kAdaptiveAnalog:
|
case Agc1Config::kAdaptiveAnalog:
|
||||||
return GainControl::kAdaptiveAnalog;
|
return GainControl::kAdaptiveAnalog;
|
||||||
case Agc1Config::kAdaptiveDigital:
|
case Agc1Config::kAdaptiveDigital:
|
||||||
@@ -720,13 +679,13 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
|
|||||||
+ return GainControl::kAdaptiveAnalog;
|
+ return GainControl::kAdaptiveAnalog;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MinimizeProcessingForUnusedOutput() {
|
bool MinimizeProcessingForUnusedOutput(const FieldTrialsView& field_trials) {
|
||||||
return !field_trial::IsEnabled("WebRTC-MutedStateKillSwitch");
|
return !field_trials.IsEnabled("WebRTC-MutedStateKillSwitch");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maximum lengths that frame of samples being passed from the render side to
|
// Maximum lengths that frame of samples being passed from the render side to
|
||||||
// the capture side can have (does not apply to AEC3).
|
// the capture side can have (does not apply to AEC3).
|
||||||
@@ -163,17 +164,17 @@ int AudioFormatValidityToErrorCode(Audio
|
@@ -161,17 +162,17 @@ int AudioFormatValidityToErrorCode(Audio
|
||||||
case AudioFormatValidity::kValidAndSupported:
|
case AudioFormatValidity::kValidAndSupported:
|
||||||
return AudioProcessing::kNoError;
|
return AudioProcessing::kNoError;
|
||||||
case AudioFormatValidity::kValidButUnsupportedSampleRate: // fall-through
|
case AudioFormatValidity::kValidButUnsupportedSampleRate: // fall-through
|
||||||
@@ -745,7 +704,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
|
|||||||
const StreamConfig& input_config,
|
const StreamConfig& input_config,
|
||||||
const StreamConfig& output_config) {
|
const StreamConfig& output_config) {
|
||||||
AudioFormatValidity input_validity = ValidateAudioFormat(input_config);
|
AudioFormatValidity input_validity = ValidateAudioFormat(input_config);
|
||||||
@@ -2420,16 +2421,17 @@ void AudioProcessingImpl::InitializeNois
|
@@ -2062,16 +2063,17 @@ void AudioProcessingImpl::InitializeNois
|
||||||
case NoiseSuppresionConfig::kModerate:
|
case NoiseSuppresionConfig::kModerate:
|
||||||
return NsConfig::SuppressionLevel::k12dB;
|
return NsConfig::SuppressionLevel::k12dB;
|
||||||
case NoiseSuppresionConfig::kHigh:
|
case NoiseSuppresionConfig::kHigh:
|
||||||
@@ -763,65 +722,10 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
|
|||||||
cfg, proc_sample_rate_hz(), num_proc_channels());
|
cfg, proc_sample_rate_hz(), num_proc_channels());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
|
||||||
--- a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
|
||||||
+++ b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
|
||||||
@@ -27,28 +27,30 @@ std::string NoiseSuppressionLevelToStrin
|
|
||||||
case AudioProcessing::Config::NoiseSuppression::Level::kModerate:
|
|
||||||
return "Moderate";
|
|
||||||
case AudioProcessing::Config::NoiseSuppression::Level::kHigh:
|
|
||||||
return "High";
|
|
||||||
case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
|
|
||||||
return "VeryHigh";
|
|
||||||
}
|
|
||||||
RTC_CHECK_NOTREACHED();
|
|
||||||
+ return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string GainController1ModeToString(const Agc1Config::Mode& mode) {
|
|
||||||
switch (mode) {
|
|
||||||
case Agc1Config::Mode::kAdaptiveAnalog:
|
|
||||||
return "AdaptiveAnalog";
|
|
||||||
case Agc1Config::Mode::kAdaptiveDigital:
|
|
||||||
return "AdaptiveDigital";
|
|
||||||
case Agc1Config::Mode::kFixedDigital:
|
|
||||||
return "FixedDigital";
|
|
||||||
}
|
|
||||||
RTC_CHECK_NOTREACHED();
|
|
||||||
+ return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
constexpr int AudioProcessing::kNativeSampleRatesHz[];
|
|
||||||
|
|
||||||
void CustomProcessing::SetRuntimeSetting(
|
|
||||||
AudioProcessing::RuntimeSetting setting) {}
|
|
||||||
diff --git a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
|
||||||
--- a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
|
||||||
+++ b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
|
||||||
@@ -48,16 +48,17 @@ std::string GetVadModeLabel(TransientSup
|
|
||||||
switch (vad_mode) {
|
|
||||||
case TransientSuppressor::VadMode::kDefault:
|
|
||||||
return "default";
|
|
||||||
case TransientSuppressor::VadMode::kRnnVad:
|
|
||||||
return "RNN VAD";
|
|
||||||
case TransientSuppressor::VadMode::kNoVad:
|
|
||||||
return "no VAD";
|
|
||||||
}
|
|
||||||
+ RTC_CHECK_NOTREACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
TransientSuppressorImpl::TransientSuppressorImpl(VadMode vad_mode,
|
|
||||||
int sample_rate_hz,
|
|
||||||
int detector_rate_hz,
|
|
||||||
int num_channels)
|
|
||||||
diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||||
--- a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
--- a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||||
+++ b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
+++ b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||||
@@ -90,16 +90,18 @@ BandwidthLimitedCause GetBandwidthLimite
|
@@ -81,16 +81,18 @@ BandwidthLimitedCause GetBandwidthLimite
|
||||||
// Probes may not be sent in this state.
|
// Probes may not be sent in this state.
|
||||||
return BandwidthLimitedCause::kLossLimitedBwe;
|
return BandwidthLimitedCause::kLossLimitedBwe;
|
||||||
case LossBasedState::kIncreasing:
|
case LossBasedState::kIncreasing:
|
||||||
@@ -838,8 +742,8 @@ diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc
|
|||||||
|
|
||||||
GoogCcNetworkController::GoogCcNetworkController(NetworkControllerConfig config,
|
GoogCcNetworkController::GoogCcNetworkController(NetworkControllerConfig config,
|
||||||
GoogCcConfig goog_cc_config)
|
GoogCcConfig goog_cc_config)
|
||||||
: key_value_config_(config.key_value_config ? config.key_value_config
|
: env_(config.env),
|
||||||
: &trial_based_config_),
|
packet_feedback_only_(goog_cc_config.feedback_only),
|
||||||
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||||
--- a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
--- a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||||
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||||
@@ -864,7 +768,7 @@ diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screenc
|
|||||||
diff --git a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
diff --git a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||||
--- a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
--- a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||||
+++ b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
+++ b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||||
@@ -79,16 +79,17 @@ bool BitrateProber::ReadyToSetActiveStat
|
@@ -86,16 +86,17 @@ bool BitrateProber::ReadyToSetActiveStat
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// If config_.min_packet_size > 0, a "large enough" packet must be
|
// If config_.min_packet_size > 0, a "large enough" packet must be
|
||||||
@@ -898,10 +802,31 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depa
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
|
||||||
|
--- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
|
||||||
|
+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
|
||||||
|
@@ -108,16 +108,17 @@ uint16_t To2BitEcn(rtc::EcnMarking ecn_m
|
||||||
|
return 0;
|
||||||
|
case rtc::EcnMarking::kEct1:
|
||||||
|
return kEcnEct1 << 13;
|
||||||
|
case rtc::EcnMarking::kEct0:
|
||||||
|
return kEcnEct0 << 13;
|
||||||
|
case rtc::EcnMarking::kCe:
|
||||||
|
return kEcnCe << 13;
|
||||||
|
}
|
||||||
|
+ return 0; // should not be reached
|
||||||
|
}
|
||||||
|
|
||||||
|
rtc::EcnMarking ToEcnMarking(uint16_t receive_info) {
|
||||||
|
const uint16_t ecn = (receive_info >> 13) & 0b11;
|
||||||
|
if (ecn == kEcnEct1) {
|
||||||
|
return rtc::EcnMarking::kEct1;
|
||||||
|
}
|
||||||
|
if (ecn == kEcnEct0) {
|
||||||
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||||
--- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
--- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||||
+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||||
@@ -133,16 +133,17 @@ bool IsNonVolatile(RTPExtensionType type
|
@@ -145,16 +145,17 @@ bool IsNonVolatile(RTPExtensionType type
|
||||||
#if defined(WEBRTC_MOZILLA_BUILD)
|
#if defined(WEBRTC_MOZILLA_BUILD)
|
||||||
case kRtpExtensionCsrcAudioLevel:
|
case kRtpExtensionCsrcAudioLevel:
|
||||||
// TODO: Mozilla implement for CsrcAudioLevel
|
// TODO: Mozilla implement for CsrcAudioLevel
|
||||||
@@ -922,7 +847,7 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third
|
|||||||
diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||||
--- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
--- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||||
+++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
+++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||||
@@ -105,16 +105,17 @@ size_t BufferToIndex(Vp8BufferReference
|
@@ -104,16 +104,17 @@ size_t BufferToIndex(Vp8BufferReference
|
||||||
return 0;
|
return 0;
|
||||||
case Vp8FrameConfig::Vp8BufferReference::kGolden:
|
case Vp8FrameConfig::Vp8BufferReference::kGolden:
|
||||||
return 1;
|
return 1;
|
||||||
@@ -964,7 +889,7 @@ diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_laye
|
|||||||
diff --git a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
diff --git a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
||||||
--- a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
--- a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
||||||
+++ b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
+++ b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
|
||||||
@@ -66,16 +66,17 @@ bool BeginningOfIdr(const H26xPacketBuff
|
@@ -58,16 +58,17 @@ bool BeginningOfIdr(const H26xPacketBuff
|
||||||
case kH264StapA:
|
case kH264StapA:
|
||||||
case kH264SingleNalu: {
|
case kH264SingleNalu: {
|
||||||
return contains_idr_nalu;
|
return contains_idr_nalu;
|
||||||
@@ -978,10 +903,166 @@ diff --git a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc b/
|
|||||||
|
|
||||||
bool HasSps(const H26xPacketBuffer::Packet& packet) {
|
bool HasSps(const H26xPacketBuffer::Packet& packet) {
|
||||||
auto& h264_header =
|
auto& h264_header =
|
||||||
absl::get<RTPVideoHeaderH264>(packet.video_header.video_type_header);
|
std::get<RTPVideoHeaderH264>(packet.video_header.video_type_header);
|
||||||
return absl::c_any_of(GetNaluInfos(h264_header), [](const auto& nalu_info) {
|
return absl::c_any_of(h264_header.nalus, [](const auto& nalu_info) {
|
||||||
return nalu_info.type == H264::NaluType::kSps;
|
return nalu_info.type == H264::NaluType::kSps;
|
||||||
});
|
});
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc b/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
|
||||||
|
@@ -57,16 +57,17 @@ absl::string_view ToString(Reconfigurati
|
||||||
|
case ReconfigurationResponseParameter::Result::
|
||||||
|
kErrorRequestAlreadyInProgress:
|
||||||
|
return "Error: request already in progress";
|
||||||
|
case ReconfigurationResponseParameter::Result::kErrorBadSequenceNumber:
|
||||||
|
return "Error: bad sequence number";
|
||||||
|
case ReconfigurationResponseParameter::Result::kInProgress:
|
||||||
|
return "In progress";
|
||||||
|
}
|
||||||
|
+ return "Should never be reached";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::optional<ReconfigurationResponseParameter>
|
||||||
|
ReconfigurationResponseParameter::Parse(rtc::ArrayView<const uint8_t> data) {
|
||||||
|
std::optional<BoundedByteReader<kHeaderSize>> reader = ParseTLV(data);
|
||||||
|
if (!reader.has_value()) {
|
||||||
|
return std::nullopt;
|
||||||
|
}
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc b/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
|
||||||
|
@@ -38,16 +38,17 @@ constexpr absl::string_view HandoverUnre
|
||||||
|
return "RETRANSMISSION_QUEUE_FAST_RECOVERY";
|
||||||
|
case HandoverUnreadinessReason::kRetransmissionQueueNotEmpty:
|
||||||
|
return "RETRANSMISSION_QUEUE_NOT_EMPTY";
|
||||||
|
case HandoverUnreadinessReason::kPendingStreamReset:
|
||||||
|
return "PENDING_STREAM_RESET";
|
||||||
|
case HandoverUnreadinessReason::kPendingStreamResetRequest:
|
||||||
|
return "PENDING_STREAM_RESET_REQUEST";
|
||||||
|
}
|
||||||
|
+ return "NOTREACHED";
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
std::string HandoverReadinessStatus::ToString() const {
|
||||||
|
std::string result;
|
||||||
|
for (uint32_t bit = 1;
|
||||||
|
bit <= static_cast<uint32_t>(HandoverUnreadinessReason::kMax);
|
||||||
|
bit *= 2) {
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc b/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
|
||||||
|
@@ -354,16 +354,17 @@ absl::string_view DataTracker::ToString(
|
||||||
|
return "IDLE";
|
||||||
|
case AckState::kBecomingDelayed:
|
||||||
|
return "BECOMING_DELAYED";
|
||||||
|
case AckState::kDelayed:
|
||||||
|
return "DELAYED";
|
||||||
|
case AckState::kImmediate:
|
||||||
|
return "IMMEDIATE";
|
||||||
|
}
|
||||||
|
+ return "NOTREACHED";
|
||||||
|
}
|
||||||
|
|
||||||
|
HandoverReadinessStatus DataTracker::GetHandoverReadiness() const {
|
||||||
|
HandoverReadinessStatus status;
|
||||||
|
if (!additional_tsn_blocks_.empty()) {
|
||||||
|
status.Add(HandoverUnreadinessReason::kDataTrackerTsnBlocksPending);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc b/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
|
||||||
|
@@ -249,16 +249,17 @@ bool DcSctpSocket::IsConsistent() const
|
||||||
|
!t1_cookie_->is_running() && t2_shutdown_->is_running());
|
||||||
|
case State::kShutdownReceived:
|
||||||
|
return (tcb_ != nullptr && !t1_init_->is_running() &&
|
||||||
|
!t1_cookie_->is_running() && !t2_shutdown_->is_running());
|
||||||
|
case State::kShutdownAckSent:
|
||||||
|
return (tcb_ != nullptr && !t1_init_->is_running() &&
|
||||||
|
!t1_cookie_->is_running() && t2_shutdown_->is_running());
|
||||||
|
}
|
||||||
|
+ return false; // notreached
|
||||||
|
}
|
||||||
|
|
||||||
|
constexpr absl::string_view DcSctpSocket::ToString(DcSctpSocket::State state) {
|
||||||
|
switch (state) {
|
||||||
|
case DcSctpSocket::State::kClosed:
|
||||||
|
return "CLOSED";
|
||||||
|
case DcSctpSocket::State::kCookieWait:
|
||||||
|
return "COOKIE_WAIT";
|
||||||
|
@@ -270,16 +271,17 @@ constexpr absl::string_view DcSctpSocket
|
||||||
|
return "SHUTDOWN_PENDING";
|
||||||
|
case DcSctpSocket::State::kShutdownSent:
|
||||||
|
return "SHUTDOWN_SENT";
|
||||||
|
case DcSctpSocket::State::kShutdownReceived:
|
||||||
|
return "SHUTDOWN_RECEIVED";
|
||||||
|
case DcSctpSocket::State::kShutdownAckSent:
|
||||||
|
return "SHUTDOWN_ACK_SENT";
|
||||||
|
}
|
||||||
|
+ return "NOTREACHED";
|
||||||
|
}
|
||||||
|
|
||||||
|
void DcSctpSocket::SetState(State state, absl::string_view reason) {
|
||||||
|
if (state_ != state) {
|
||||||
|
RTC_DLOG(LS_VERBOSE) << log_prefix_ << "Socket state changed from "
|
||||||
|
<< ToString(state_) << " to " << ToString(state)
|
||||||
|
<< " due to " << reason;
|
||||||
|
state_ = state;
|
||||||
|
@@ -588,16 +590,17 @@ SocketState DcSctpSocket::state() const
|
||||||
|
case State::kEstablished:
|
||||||
|
return SocketState::kConnected;
|
||||||
|
case State::kShutdownPending:
|
||||||
|
case State::kShutdownSent:
|
||||||
|
case State::kShutdownReceived:
|
||||||
|
case State::kShutdownAckSent:
|
||||||
|
return SocketState::kShuttingDown;
|
||||||
|
}
|
||||||
|
+ return SocketState::kShuttingDown; // notreached
|
||||||
|
}
|
||||||
|
|
||||||
|
void DcSctpSocket::SetMaxMessageSize(size_t max_message_size) {
|
||||||
|
options_.max_message_size = max_message_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t DcSctpSocket::buffered_amount(StreamID stream_id) const {
|
||||||
|
return send_queue_.buffered_amount(stream_id);
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc b/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
|
||||||
|
@@ -39,10 +39,11 @@ bool PacketSender::Send(SctpPacket::Buil
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
case SendPacketStatus::kError: {
|
||||||
|
// Nothing that can be done.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ return false; // not reached
|
||||||
|
}
|
||||||
|
} // namespace dcsctp
|
||||||
|
diff --git a/third_party/libwebrtc/net/dcsctp/timer/timer.cc b/third_party/libwebrtc/net/dcsctp/timer/timer.cc
|
||||||
|
--- a/third_party/libwebrtc/net/dcsctp/timer/timer.cc
|
||||||
|
+++ b/third_party/libwebrtc/net/dcsctp/timer/timer.cc
|
||||||
|
@@ -44,16 +44,17 @@ TimeDelta GetBackoffDuration(const Timer
|
||||||
|
if (duration > options.max_backoff_duration) {
|
||||||
|
return options.max_backoff_duration;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TimeDelta(std::min(duration, Timer::kMaxTimerDuration));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ return base_duration; // fake nonreached
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
constexpr TimeDelta Timer::kMaxTimerDuration;
|
||||||
|
|
||||||
|
Timer::Timer(TimerID id,
|
||||||
|
absl::string_view name,
|
||||||
|
OnExpired on_expired,
|
||||||
diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||||
--- a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
--- a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||||
+++ b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
+++ b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||||
@@ -1003,3 +1084,24 @@ diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resourc
|
|||||||
flags.resize(codec.VP9().numberOfSpatialLayers);
|
flags.resize(codec.VP9().numberOfSpatialLayers);
|
||||||
for (size_t i = 0; i < flags.size(); ++i) {
|
for (size_t i = 0; i < flags.size(); ++i) {
|
||||||
flags[i] = codec.spatialLayers[i].active;
|
flags[i] = codec.spatialLayers[i].active;
|
||||||
|
diff --git a/third_party/libwebrtc/video/config/encoder_stream_factory.cc b/third_party/libwebrtc/video/config/encoder_stream_factory.cc
|
||||||
|
--- a/third_party/libwebrtc/video/config/encoder_stream_factory.cc
|
||||||
|
+++ b/third_party/libwebrtc/video/config/encoder_stream_factory.cc
|
||||||
|
@@ -105,16 +105,17 @@ int GetDefaultMaxQp(VideoCodecType codec
|
||||||
|
return cricket::kDefaultVideoMaxQpH26x;
|
||||||
|
case webrtc::kVideoCodecVP8:
|
||||||
|
case webrtc::kVideoCodecVP9:
|
||||||
|
case webrtc::kVideoCodecGeneric:
|
||||||
|
return cricket::kDefaultVideoMaxQpVpx;
|
||||||
|
case webrtc::kVideoCodecAV1:
|
||||||
|
return cricket::kDefaultVideoMaxQpAv1;
|
||||||
|
}
|
||||||
|
+ return cricket::kDefaultVideoMaxQpAv1; // fake return for hopefully not reached
|
||||||
|
}
|
||||||
|
|
||||||
|
// Round size to nearest simulcast-friendly size.
|
||||||
|
// Simulcast stream width and height must both be dividable by
|
||||||
|
// |2 ^ (simulcast_layers - 1)|.
|
||||||
|
int NormalizeSimulcastSize(const FieldTrialsView& field_trials,
|
||||||
|
int size,
|
||||||
|
size_t simulcast_layers) {
|
||||||
|
@@ -2,19 +2,20 @@ This file contains the public PGP key that is used to sign builds and
|
|||||||
artifacts of Mozilla projects (such as Firefox and Thunderbird).
|
artifacts of Mozilla projects (such as Firefox and Thunderbird).
|
||||||
|
|
||||||
Please realize that this file itself or the public key servers may be
|
Please realize that this file itself or the public key servers may be
|
||||||
compromised. You are encouraged to validate the authenticity of these keys in
|
compromised. You are encouraged to validate the authenticity of these
|
||||||
an out-of-band manner.
|
keys in an out-of-band manner.
|
||||||
|
|
||||||
Mozilla users: pgp < KEY
|
gpg --show-keys < KEY
|
||||||
|
|
||||||
pub rsa4096 2015-07-17 [SC]
|
pub rsa4096 2015-07-17 [SC]
|
||||||
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||||
uid [ full ] Mozilla Software Releases <release@mozilla.com>
|
uid Mozilla Software Releases <release@mozilla.com>
|
||||||
|
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
||||||
sub rsa4096 2015-07-17 [S] [expired: 2017-07-16]
|
sub rsa4096 2015-07-17 [S] [expired: 2017-07-16]
|
||||||
sub rsa4096 2017-06-22 [S] [expired: 2019-06-22]
|
sub rsa4096 2017-06-22 [S] [expired: 2019-06-22]
|
||||||
sub rsa4096 2019-05-30 [S] [expired: 2021-05-29]
|
sub rsa4096 2019-05-30 [S] [expired: 2021-05-29]
|
||||||
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
|
||||||
sub rsa4096 2023-05-05 [S] [expires: 2025-05-04]
|
sub rsa4096 2023-05-05 [S] [expires: 2025-05-04]
|
||||||
|
sub rsa4096 2025-03-13 [S] [expires: 2027-03-13]
|
||||||
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
@@ -400,6 +401,41 @@ W81ABx4ASBktXAf1IweRbbxqW8OgMhG6xHTeiEjjav7SmlD0XVOxjhI+qBoNPovW
|
|||||||
lChqONxablBkuh0Jd6kdNiaSEM9cd60kK3GT/dBMyv0yVhhLci6HQZ+Mf4cbn0Kt
|
lChqONxablBkuh0Jd6kdNiaSEM9cd60kK3GT/dBMyv0yVhhLci6HQZ+Mf4cbn0Kt
|
||||||
ayzuQLOcdRCN3FF/JNQH3v6LA1MdRfmJlgC4UdiepBb1uCgtVIPizRuXWDjyjzeP
|
ayzuQLOcdRCN3FF/JNQH3v6LA1MdRfmJlgC4UdiepBb1uCgtVIPizRuXWDjyjzeP
|
||||||
ZRN/AqaUbEoNBHhIz0nKhQGDbst4ugIzJWIX+6UokwPC3jvJqQQttccjAy6kXBmx
|
ZRN/AqaUbEoNBHhIz0nKhQGDbst4ugIzJWIX+6UokwPC3jvJqQQttccjAy6kXBmx
|
||||||
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS4=
|
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS65Ag0EZ9KQfQEQAOVIyh0sZPPFLWxo
|
||||||
=ZEQW
|
FT0WhPzHw8BhgnCBNdZAh9+SM0Apq2VcQKSjBjKiterOTtc6EVh0K2ikbGKHQ1Sv
|
||||||
|
wNdsYL01cSkJSJORig/1Du1eh+2nlo8nut7xT//V+2FQyWFCLDeQvLlAs3QHMrMY
|
||||||
|
xTcwNk3qi/z1Z5Q4e6Re2aKRU00LtSomD6CKWy9nAaqTRNzzdndJwIyCyshX4bbU
|
||||||
|
zAzE7Wbgh/E0/FgBGw87LYITqyU6US4lvoUXB+89XxwMxO9I74L118gXEyybz+JN
|
||||||
|
0/w87hXAKnaKjasSvobKE4mau8SXqmOO66MxiMaF4Xsmr3oIwo8q9W5d+hA+t225
|
||||||
|
ipq2rZZErmPL44deMCeKmepjLTa9CoxX2oVpDWGOYFRyJRkLDyyH4O3gCo/5qv4r
|
||||||
|
OTJqPFfKPtrjWFJKGf4P4UD0GSBX2Q+mOf2XHWsMJE4t8T7jxQCSAQUMwt6M18h1
|
||||||
|
auIqcfkuNvdJhcl2GvJyCMIbkA3AoiuKaSPgoVCmJdbc6Ao9ydmMUB5Q1rYpMNKC
|
||||||
|
MsuVP9OcX8FoHEVMXOvr0f6Wfj+iHytfO2VTqrw/cqoCyuPoSrgxjs1/cRSz5g9f
|
||||||
|
Z0zrOtQyNB5yJ3YPTG3va1/XLflrjPcT4ZUkej9nkFpCNWdEZVWD/z3vXBGSV11N
|
||||||
|
9Cdy60QbD4yZvDjV2GQ+dwAF1o1BABEBAAGJBHIEGAEKACYWIQQU8maC0JFs3YHj
|
||||||
|
e21ht7Um2Y8DUwUCZ9KQfQIbAgUJA8JnAAJACRBht7Um2Y8DU8F0IAQZAQoAHRYh
|
||||||
|
BAm+7WPzRiot/6s7h17LZJfBogJWBQJn0pB9AAoJEF7LZJfBogJW9I4QAJbv4Rhb
|
||||||
|
4x6Jl75x2Lfp46/e3fZVDhzUdLjK8A/acRF7JRBuJVJRaijJ5tngdknmlmbzfqly
|
||||||
|
zsMWUciAwVJRvijNFDeicet5zJpBRsXEUAug3iVCD1KlVvLzjCi9Eb9s6xCQjSJ8
|
||||||
|
DZE020s41wdqtb1nziDASAkg+YH2DzpTEaZVNM39uNDKbaJLYIjKA9MV1YHArqUl
|
||||||
|
dFsoofBe4zIZRFyvMD7Gmr7Xm0IWYLrfmnenm1JJYIkvGUeVoP8dEonAVhLVwvww
|
||||||
|
ufobV0qdtMfhZsgFwf1XSHI9MtD4yAVtBqBTkfFeRLnBjJK/ywYxGqbadt1b57I4
|
||||||
|
ywTQ16oXNrlTF1Su0I8i/fo0i/9ohNl3opN3LbaEbhT37M4xpy4MgL2Fthddc2gW
|
||||||
|
vF/8TFRaXw7LaLSR7HwO+Y0CpOtV/Ct4RzKEulY5DpV9b1JQJhpLcjMz+pBDAM3K
|
||||||
|
JuiV6Bcfoz5PZowFy74UmE02Vzk/oyuI/o4KMihy0UzWQVkOZTTu4eONktgGiZOn
|
||||||
|
RFdiLKVgeLEDXTLdhbuwGS2+wX3I7lLP9AWpK8Ahc81eUwU6MwdbfwfJ1ELtKaa/
|
||||||
|
JmMjaWkr5aGrp88d8ePR9jYA47Z2q0esB67pRJVe0McVJlu9GQGq05S7lZKs6mi9
|
||||||
|
dHTzeHwua//IXHMK0s3WhMU7vGwJ3E2+pTstf8AQALSwkezD3QchPV+5CAUYY7Cm
|
||||||
|
MXB6zzIU18wCS61Y8QdDvqmtWHdMVTp4xT14fS6cvB4uFzacGQJ7CVIWeZgwEFzZ
|
||||||
|
iev3dKpnUOGg0WQSwmQQA0JCg6/qS0AeUPINjhWtNcR7voCqAYeRcjo47UJclD/K
|
||||||
|
KNTCn27btHRaEmpTdTtC6sxiVElFObb3a9tHXqwLWp8gJ+NZ+6mlrvvH2hm1CAyQ
|
||||||
|
TDRYC7nN69QJrKHR8HA3AeR5figQHLwvmfQlV2erZE17GT+L5t0HxX/HKZCim91P
|
||||||
|
Apqa+7iY0eKPAG5iacABrBi9zzh/ex0ovvuxsBDKUFCSu7HIivnAVrdS/kbO1qJ5
|
||||||
|
I3MBMp0dlQ6PS6LeZIRhxts0aPPZedsXytoL7kFLISfJ55AuhJpskz+55uviJhp/
|
||||||
|
H3zNBYtQ+dmFmp4RRk/Nvu0zv6OGtaZy6M5X24Pbzb/OApBML84cEmb3iZie9J2Z
|
||||||
|
YW68/D96sP09x6GItCJlCIdQZkRcwmkQwgtq9sJDw92/vSGeYdRn+oCAxJ14eObC
|
||||||
|
sVwcfJARLt45btEnx+zRCAHAHQHpV6qTGT6nqg57XuM9iNNdyTGKRU+Iklgb9LRx
|
||||||
|
VAQfbn5uXYb5j2ox5pjxtbXTf9Lbo7RkygcWSKZPWmYgGsKS6jmXkDa/TyOlPxkb
|
||||||
|
aknpPbYMBztRT4Ju0VU4
|
||||||
|
=4Dnl
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
PRODUCT="firefox"
|
PRODUCT="firefox"
|
||||||
CHANNEL="release"
|
CHANNEL="release"
|
||||||
VERSION="129.0.1"
|
VERSION="141.0.2"
|
||||||
VERSION_SUFFIX=""
|
VERSION_SUFFIX=""
|
||||||
PREV_VERSION="129.0"
|
PREV_VERSION="141.0"
|
||||||
PREV_VERSION_SUFFIX=""
|
PREV_VERSION_SUFFIX=""
|
||||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
|
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
|
||||||
RELEASE_TAG="9a56b747aa5f53cb8784337f8c5d6a056d11c5e7"
|
RELEASE_TAG="45460851be2c4cdc6f397489275c2f7aa83443fc"
|
||||||
RELEASE_TIMESTAMP="20240812083845"
|
RELEASE_TIMESTAMP="20250804082849"
|
||||||
|
Reference in New Issue
Block a user