зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1881803 - convert Report Site Issue extension to event pages; r=robwu,webcompat-reviewers,ksenia
Differential Revision: https://phabricator.services.mozilla.com/D202602
This commit is contained in:
Родитель
c722636351
Коммит
dd33e85ad8
|
@ -18,24 +18,34 @@ const androidReporterConfig = {
|
||||||
utm_source: "android-components-reporter",
|
utm_source: "android-components-reporter",
|
||||||
};
|
};
|
||||||
|
|
||||||
let reporterConfig = desktopReporterConfig;
|
const getReporterConfig = (() => {
|
||||||
|
let promise;
|
||||||
(async () => {
|
return async () => {
|
||||||
const permissions = ["nativeMessaging"];
|
promise ??= new Promise(resolve => {
|
||||||
if (await browser.permissions.contains({ permissions })) {
|
browser.permissions
|
||||||
reporterConfig = androidReporterConfig;
|
.contains({ permissions: ["nativeMessaging"] })
|
||||||
|
.then(needProductName => {
|
||||||
const port = browser.runtime.connectNative("mozacWebcompatReporter");
|
if (needProductName) {
|
||||||
|
const port = browser.runtime.connectNative(
|
||||||
|
"mozacWebcompatReporter"
|
||||||
|
);
|
||||||
port.onMessage.addListener(message => {
|
port.onMessage.addListener(message => {
|
||||||
if ("productName" in message) {
|
if ("productName" in message) {
|
||||||
reporterConfig.productName = message.productName;
|
androidReporterConfig.productName = message.productName;
|
||||||
|
resolve(androidReporterConfig);
|
||||||
|
|
||||||
// For now, setting the productName is the only use for this port, and that's only happening
|
// For now, setting the productName is the only use for this port, and that's only happening
|
||||||
// once after startup, so let's disconnect the port when we're done.
|
// once after startup, so let's disconnect the port when we're done.
|
||||||
port.disconnect();
|
port.disconnect();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
resolve(desktopReporterConfig);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return promise;
|
||||||
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
async function loadTab(url) {
|
async function loadTab(url) {
|
||||||
|
@ -60,6 +70,7 @@ async function captureAndSendReport(tab) {
|
||||||
try {
|
try {
|
||||||
const { endpointUrl, webcompatInfo } =
|
const { endpointUrl, webcompatInfo } =
|
||||||
await browser.tabExtras.getWebcompatInfo(id);
|
await browser.tabExtras.getWebcompatInfo(id);
|
||||||
|
const reporterConfig = await getReporterConfig();
|
||||||
const dataToSend = {
|
const dataToSend = {
|
||||||
endpointUrl,
|
endpointUrl,
|
||||||
reportUrl: url,
|
reportUrl: url,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"name": "WebCompat Reporter",
|
"name": "WebCompat Reporter",
|
||||||
"description": "Report site compatibility issues on webcompat.com",
|
"description": "Report site compatibility issues on webcompat.com",
|
||||||
"author": "Thomas Wisniewski <twisniewski@mozilla.com>",
|
"author": "Thomas Wisniewski <twisniewski@mozilla.com>",
|
||||||
"version": "2.0.0",
|
"version": "2.1.0",
|
||||||
"homepage_url": "https://github.com/mozilla/webcompat-reporter",
|
"homepage_url": "https://github.com/mozilla/webcompat-reporter",
|
||||||
"browser_specific_settings": {
|
"browser_specific_settings": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
|
@ -37,6 +37,8 @@
|
||||||
},
|
},
|
||||||
"permissions": ["tabs", "<all_urls>"],
|
"permissions": ["tabs", "<all_urls>"],
|
||||||
"background": {
|
"background": {
|
||||||
|
"persistent": false,
|
||||||
|
"type": "module",
|
||||||
"scripts": ["background.js"]
|
"scripts": ["background.js"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче