зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1507595) for Android build bustages, missing aboutSupport.dtd CLOSED TREE
Backed out changeset 485ea25a3b82 (bug 1507595) Backed out changeset 28805dd1b97a (bug 1507595)
This commit is contained in:
Родитель
ba62a9414a
Коммит
1923fc319e
|
@ -8,20 +8,25 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|||
|
||||
add_task(async function() {
|
||||
await BrowserTestUtils.withNewTab({ gBrowser, url: "about:support" }, async function(browser) {
|
||||
const strings = Services.strings.createBundle(
|
||||
"chrome://global/locale/aboutSupport.properties");
|
||||
let allowedStates = [strings.GetStringFromName("found"),
|
||||
strings.GetStringFromName("missing")];
|
||||
|
||||
let keyGoogleStatus = await ContentTask.spawn(browser, null, async function() {
|
||||
let textBox = content.document.getElementById("key-google-box");
|
||||
await ContentTaskUtils.waitForCondition(() => document.l10n.getAttributes(textBox).id,
|
||||
await ContentTaskUtils.waitForCondition(() => textBox.textContent.trim(),
|
||||
"Google API key status loaded");
|
||||
return document.l10n.getAttributes(textBox).id;
|
||||
return textBox.textContent;
|
||||
});
|
||||
ok(keyGoogleStatus, "Google API key status shown");
|
||||
ok(allowedStates.includes(keyGoogleStatus), "Google API key status shown");
|
||||
|
||||
let keyMozillaStatus = await ContentTask.spawn(browser, null, async function() {
|
||||
let textBox = content.document.getElementById("key-mozilla-box");
|
||||
await ContentTaskUtils.waitForCondition(() => document.l10n.getAttributes(textBox).id,
|
||||
await ContentTaskUtils.waitForCondition(() => textBox.textContent.trim(),
|
||||
"Mozilla API key status loaded");
|
||||
return document.l10n.getAttributes(textBox).id;
|
||||
return textBox.textContent;
|
||||
});
|
||||
ok(keyMozillaStatus, "Mozilla API key status shown");
|
||||
ok(allowedStates.includes(keyMozillaStatus), "Mozilla API key status shown");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,426 +0,0 @@
|
|||
# coding=utf8
|
||||
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
from __future__ import absolute_import
|
||||
import fluent.syntax.ast as FTL
|
||||
from fluent.migrate import COPY
|
||||
from fluent.migrate import CONCAT
|
||||
from fluent.migrate import REPLACE
|
||||
from fluent.migrate.helpers import transforms_from
|
||||
from fluent.migrate.helpers import TERM_REFERENCE
|
||||
from fluent.migrate.helpers import VARIABLE_REFERENCE
|
||||
from fluent.migrate.transforms import PLURALS, REPLACE_IN_TEXT
|
||||
|
||||
def migrate(ctx):
|
||||
"""Bug 1507595 - Migrate about:support messages to use Fluent for localization, part {index}."""
|
||||
|
||||
ctx.add_transforms(
|
||||
"toolkit/toolkit/about/aboutSupport.ftl",
|
||||
"toolkit/toolkit/about/aboutSupport.ftl",
|
||||
transforms_from(
|
||||
"""
|
||||
page-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.pageTitle")}
|
||||
crashes-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.crashes.title")}
|
||||
crashes-id = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.crashes.id")}
|
||||
crashes-send-date = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.crashes.sendDate")}
|
||||
crashes-all-reports = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.crashes.allReports")}
|
||||
crashes-no-config = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.crashes.noConfig")}
|
||||
extensions-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.extensionsTitle")}
|
||||
extensions-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.extensionName")}
|
||||
extensions-enabled = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.extensionEnabled")}
|
||||
extensions-version = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.extensionVersion")}
|
||||
extensions-id = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.extensionId")}
|
||||
security-software-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareTitle")}
|
||||
security-software-type = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareType")}
|
||||
security-software-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareName")}
|
||||
security-software-antivirus = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareAntivirus")}
|
||||
security-software-antispyware = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareAntiSpyware")}
|
||||
security-software-firewall = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.securitySoftwareFirewall")}
|
||||
features-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.featureName")}
|
||||
features-version = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.featureVersion")}
|
||||
features-id = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.featureId")}
|
||||
app-basics-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsTitle")}
|
||||
app-basics-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsName")}
|
||||
app-basics-version = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsVersion")}
|
||||
app-basics-build-id = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsBuildID")}
|
||||
app-basics-update-channel = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsUpdateChannel")}
|
||||
app-basics-update-history = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsUpdateHistory")}
|
||||
app-basics-show-update-history = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsShowUpdateHistory")}
|
||||
app-basics-enabled-plugins = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsEnabledPlugins")}
|
||||
app-basics-build-config = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsBuildConfig")}
|
||||
app-basics-user-agent = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsUserAgent")}
|
||||
app-basics-os = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsOS")}
|
||||
app-basics-memory-use = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsMemoryUse")}
|
||||
app-basics-performance = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsPerformance")}
|
||||
app-basics-service-workers = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsServiceWorkers")}
|
||||
app-basics-profiles = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsProfiles")}
|
||||
app-basics-multi-process-support = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsMultiProcessSupport")}
|
||||
app-basics-process-count = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsProcessCount")}
|
||||
app-basics-enterprise-policies = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.enterprisePolicies")}
|
||||
app-basics-key-google = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsKeyGoogle")}
|
||||
app-basics-key-mozilla = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsKeyMozilla")}
|
||||
app-basics-safe-mode = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.appBasicsSafeMode")}
|
||||
modified-key-prefs-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.modifiedKeyPrefsTitle")}
|
||||
modified-prefs-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.modifiedPrefsName")}
|
||||
modified-prefs-value = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.modifiedPrefsValue")}
|
||||
user-js-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.userJSTitle")}
|
||||
locked-key-prefs-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.lockedKeyPrefsTitle")}
|
||||
locked-prefs-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.lockedPrefsName")}
|
||||
locked-prefs-value = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.lockedPrefsValue")}
|
||||
graphics-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsTitle")}
|
||||
graphics-features-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsFeaturesTitle")}
|
||||
graphics-diagnostics-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsDiagnosticsTitle")}
|
||||
graphics-failure-log-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsFailureLogTitle")}
|
||||
graphics-gpu1-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsGPU1Title")}
|
||||
graphics-gpu2-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsGPU2Title")}
|
||||
graphics-decision-log-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsDecisionLogTitle")}
|
||||
graphics-crash-guards-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsCrashGuardsTitle")}
|
||||
graphics-workarounds-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.graphicsWorkaroundsTitle")}
|
||||
place-database-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.placeDatabaseTitle")}
|
||||
place-database-integrity = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.placeDatabaseIntegrity")}
|
||||
place-database-verify-integrity = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.placeDatabaseVerifyIntegrity")}
|
||||
js-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.jsTitle")}
|
||||
js-incremental-gc = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.jsIncrementalGC")}
|
||||
a11y-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.a11yTitle")}
|
||||
a11y-activated = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.a11yActivated")}
|
||||
a11y-force-disabled = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.a11yForceDisabled")}
|
||||
a11y-handler-used = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.a11yHandlerUsed")}
|
||||
a11y-instantiator = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.a11yInstantiator")}
|
||||
library-version-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.libraryVersionsTitle")}
|
||||
copy-text-to-clipboard-label = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.copyTextToClipboard.label")}
|
||||
copy-raw-data-to-clipboard-label = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.copyRawDataToClipboard.label")}
|
||||
sandbox-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxTitle")}
|
||||
sandbox-sys-call-log-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallLogTitle")}
|
||||
sandbox-sys-call-index = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallIndex")}
|
||||
sandbox-sys-call-age = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallAge")}
|
||||
sandbox-sys-call-pid = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallPID")}
|
||||
sandbox-sys-call-tid = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallTID")}
|
||||
sandbox-sys-call-proc-type = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallProcType")}
|
||||
sandbox-sys-call-number = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallNumber")}
|
||||
sandbox-sys-call-args = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.sandboxSyscallArgs")}
|
||||
safe-mode-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.safeModeTitle")}
|
||||
restart-in-safe-mode-label = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.restartInSafeMode.label")}
|
||||
media-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaTitle")}
|
||||
media-output-devices-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaOutputDevicesTitle")}
|
||||
media-input-devices-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaInputDevicesTitle")}
|
||||
media-device-name = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceName")}
|
||||
media-device-group = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceGroup")}
|
||||
media-device-vendor = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceVendor")}
|
||||
media-device-state = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceState")}
|
||||
media-device-preferred = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDevicePreferred")}
|
||||
media-device-format = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceFormat")}
|
||||
media-device-channels = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceChannels")}
|
||||
media-device-rate = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceRate")}
|
||||
media-device-latency = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.mediaDeviceLatency")}
|
||||
intl-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlTitle")}
|
||||
intl-app-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlAppTitle")}
|
||||
intl-locales-requested = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlLocalesRequested")}
|
||||
intl-locales-available = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlLocalesAvailable")}
|
||||
intl-locales-supported = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlLocalesSupported")}
|
||||
intl-locales-default = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlLocalesDefault")}
|
||||
intl-os-title = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlOSTitle")}
|
||||
intl-os-prefs-system-locales = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlOSPrefsSystemLocales")}
|
||||
intl-regional-prefs = { COPY("toolkit/chrome/global/aboutSupport.dtd", "aboutSupport.intlRegionalPrefs")}
|
||||
raw-data-copied = { COPY("toolkit/chrome/global/aboutSupport.properties", "rawDataCopied")}
|
||||
text-copied = { COPY("toolkit/chrome/global/aboutSupport.properties", "textCopied")}
|
||||
clear-type-parameters = { COPY("toolkit/chrome/global/aboutSupport.properties", "clearTypeParameters")}
|
||||
compositing = { COPY("toolkit/chrome/global/aboutSupport.properties", "compositing")}
|
||||
hardware-h264 = { COPY("toolkit/chrome/global/aboutSupport.properties", "hardwareH264")}
|
||||
main-thread-no-omtc = { COPY("toolkit/chrome/global/aboutSupport.properties", "mainThreadNoOMTC")}
|
||||
yes = { COPY("toolkit/chrome/global/aboutSupport.properties", "yes")}
|
||||
no = { COPY("toolkit/chrome/global/aboutSupport.properties", "no")}
|
||||
found = { COPY("toolkit/chrome/global/aboutSupport.properties", "found")}
|
||||
missing = { COPY("toolkit/chrome/global/aboutSupport.properties", "missing")}
|
||||
gpu-description = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDescription")}
|
||||
gpu-vendor-id = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuVendorID")}
|
||||
gpu-device-id = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDeviceID")}
|
||||
gpu-subsys-id = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuSubsysID")}
|
||||
gpu-drivers = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDrivers")}
|
||||
gpu-ram = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuRAM")}
|
||||
gpu-driver-version = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDriverVersion")}
|
||||
gpu-driver-date = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDriverDate")}
|
||||
gpu-active = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuActive")}
|
||||
webgl1-wsiinfo = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl1WSIInfo")}
|
||||
webgl1-renderer = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl1Renderer")}
|
||||
webgl1-version = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl1Version")}
|
||||
webgl1-driver-extensions = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl1DriverExtensions")}
|
||||
webgl1-extensions = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl1Extensions")}
|
||||
webgl2-wsiinfo = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl2WSIInfo")}
|
||||
webgl2-renderer = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl2Renderer")}
|
||||
webgl2-version = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl2Version")}
|
||||
webgl2-driver-extensions = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl2DriverExtensions")}
|
||||
webgl2-extensions = { COPY("toolkit/chrome/global/aboutSupport.properties", "webgl2Extensions")}
|
||||
blocklisted-bug = { COPY("toolkit/chrome/global/aboutSupport.properties", "blocklistedBug")}
|
||||
d3d11layers-crash-guard = { COPY("toolkit/chrome/global/aboutSupport.properties", "d3d11layersCrashGuard")}
|
||||
d3d11video-crash-guard = { COPY("toolkit/chrome/global/aboutSupport.properties", "d3d11videoCrashGuard")}
|
||||
d3d9video-crash-buard = { COPY("toolkit/chrome/global/aboutSupport.properties", "d3d9videoCrashGuard")}
|
||||
glcontext-crash-guard = { COPY("toolkit/chrome/global/aboutSupport.properties", "glcontextCrashGuard")}
|
||||
reset-on-next-restart = { COPY("toolkit/chrome/global/aboutSupport.properties", "resetOnNextRestart")}
|
||||
gpu-process-kill-button = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuProcessKillButton")}
|
||||
gpu-device-reset-button = { COPY("toolkit/chrome/global/aboutSupport.properties", "gpuDeviceResetButton")}
|
||||
uses-tiling = { COPY("toolkit/chrome/global/aboutSupport.properties", "usesTiling")}
|
||||
content-uses-tiling = { COPY("toolkit/chrome/global/aboutSupport.properties", "contentUsesTiling")}
|
||||
off-main-thread-paint-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "offMainThreadPaintEnabled")}
|
||||
off-main-thread-paint-worker-count = { COPY("toolkit/chrome/global/aboutSupport.properties", "offMainThreadPaintWorkerCount")}
|
||||
audio-backend = { COPY("toolkit/chrome/global/aboutSupport.properties", "audioBackend")}
|
||||
max-audio-channels = { COPY("toolkit/chrome/global/aboutSupport.properties", "maxAudioChannels")}
|
||||
channel-layout = { COPY("toolkit/chrome/global/aboutSupport.properties", "channelLayout")}
|
||||
sample-rate = { COPY("toolkit/chrome/global/aboutSupport.properties", "sampleRate")}
|
||||
min-lib-versions = { COPY("toolkit/chrome/global/aboutSupport.properties", "minLibVersions")}
|
||||
loaded-lib-versions = { COPY("toolkit/chrome/global/aboutSupport.properties", "loadedLibVersions")}
|
||||
has-seccomp-bpf = { COPY("toolkit/chrome/global/aboutSupport.properties", "hasSeccompBPF")}
|
||||
has-seccomp-tsync = { COPY("toolkit/chrome/global/aboutSupport.properties", "hasSeccompTSync")}
|
||||
has-user-namespaces = { COPY("toolkit/chrome/global/aboutSupport.properties", "hasUserNamespaces")}
|
||||
has-privileged-user-namespaces = { COPY("toolkit/chrome/global/aboutSupport.properties", "hasPrivilegedUserNamespaces")}
|
||||
can-sandbox-content = { COPY("toolkit/chrome/global/aboutSupport.properties", "canSandboxContent")}
|
||||
can-sandbox-media = { COPY("toolkit/chrome/global/aboutSupport.properties", "canSandboxMedia")}
|
||||
content-sandbox-level = { COPY("toolkit/chrome/global/aboutSupport.properties", "contentSandboxLevel")}
|
||||
effective-content-sandbox-level = { COPY("toolkit/chrome/global/aboutSupport.properties", "effectiveContentSandboxLevel")}
|
||||
sandbox-proc-type-content = { COPY("toolkit/chrome/global/aboutSupport.properties", "sandboxProcType.content")}
|
||||
sandbox-proc-type-file = { COPY("toolkit/chrome/global/aboutSupport.properties", "sandboxProcType.file")}
|
||||
sandbox-proc-type-media-plugin = { COPY("toolkit/chrome/global/aboutSupport.properties", "sandboxProcType.mediaPlugin")}
|
||||
multi-process-status-0 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.0")}
|
||||
multi-process-status-1 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.1")}
|
||||
multi-process-status-2 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.2")}
|
||||
multi-process-status-4 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.4")}
|
||||
multi-process-status-6 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.6")}
|
||||
multi-process-status-7 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.7")}
|
||||
multi-process-status-8 = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.8")}
|
||||
multi-process-status-unknown = { COPY("toolkit/chrome/global/aboutSupport.properties", "multiProcessStatus.unknown")}
|
||||
async-pan-zoom = { COPY("toolkit/chrome/global/aboutSupport.properties", "asyncPanZoom")}
|
||||
apz-none = { COPY("toolkit/chrome/global/aboutSupport.properties", "apzNone")}
|
||||
wheel-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "wheelEnabled")}
|
||||
touch-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "touchEnabled")}
|
||||
drag-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "dragEnabled")}
|
||||
keyboard-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "keyboardEnabled")}
|
||||
autoscroll-enabled = { COPY("toolkit/chrome/global/aboutSupport.properties", "autoscrollEnabled")}
|
||||
policies-inactive = { COPY("toolkit/chrome/global/aboutSupport.properties", "policies.inactive")}
|
||||
policies-active = { COPY("toolkit/chrome/global/aboutSupport.properties", "policies.active")}
|
||||
policies-error = { COPY("toolkit/chrome/global/aboutSupport.properties", "policies.error")}
|
||||
multi-process-windows = { $remoteWindows }/{ $totalWindows }
|
||||
""")
|
||||
)
|
||||
|
||||
ctx.add_transforms(
|
||||
"toolkit/toolkit/about/aboutSupport.ftl",
|
||||
"toolkit/toolkit/about/aboutSupport.ftl",
|
||||
[
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("page-subtitle"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.pageSubtitle",
|
||||
{
|
||||
"&brandShortName;": TERM_REFERENCE("-brand-short-name"),
|
||||
"<a id='supportLink'>": FTL.TextElement('<a data-l10n-name="support-link">'),
|
||||
},
|
||||
trim=True
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("features-title"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.featuresTitle",
|
||||
{
|
||||
"&brandShortName;": TERM_REFERENCE("-brand-short-name"),
|
||||
},
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("app-basics-profile-dir"),
|
||||
value=FTL.Pattern(
|
||||
elements=[
|
||||
FTL.Placeable(
|
||||
expression=FTL.SelectExpression(
|
||||
selector=FTL.CallExpression(
|
||||
callee=FTL.Function("PLATFORM")
|
||||
),
|
||||
variants=[
|
||||
FTL.Variant(
|
||||
key=FTL.Identifier("linux"),
|
||||
default=False,
|
||||
value=COPY(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.appBasicsProfileDir"
|
||||
)
|
||||
),
|
||||
FTL.Variant(
|
||||
key=FTL.Identifier("other"),
|
||||
default=True,
|
||||
value=COPY(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.appBasicsProfileDirWinMac"
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("show-dir-label"),
|
||||
value=FTL.Pattern(
|
||||
elements=[
|
||||
FTL.Placeable(
|
||||
expression=FTL.SelectExpression(
|
||||
selector=FTL.CallExpression(
|
||||
callee=FTL.Function("PLATFORM")
|
||||
),
|
||||
variants=[
|
||||
FTL.Variant(
|
||||
key=FTL.Identifier("macos"),
|
||||
default=False,
|
||||
value=COPY(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.showMac.label"
|
||||
)
|
||||
),
|
||||
FTL.Variant(
|
||||
key=FTL.Identifier("windows"),
|
||||
default=False,
|
||||
value=COPY(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.showWin2.label"
|
||||
)
|
||||
),
|
||||
FTL.Variant(
|
||||
key=FTL.Identifier("other"),
|
||||
default=True,
|
||||
value=COPY(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.showDir.label"
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("user-js-description"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.dtd",
|
||||
"aboutSupport.userJSDescription",
|
||||
{
|
||||
"<a id='prefs-user-js-link'>": FTL.TextElement('<a data-l10n-name="user-js-link">'),
|
||||
"&brandShortName;": TERM_REFERENCE("-brand-short-name"),
|
||||
},
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("report-crash-for-days"),
|
||||
value=PLURALS(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"crashesTitle",
|
||||
VARIABLE_REFERENCE("days"),
|
||||
lambda text: REPLACE_IN_TEXT(
|
||||
text,
|
||||
{
|
||||
"#1": VARIABLE_REFERENCE("days")
|
||||
}
|
||||
)
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("crashes-time-minutes"),
|
||||
value=PLURALS(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"crashesTimeMinutes",
|
||||
VARIABLE_REFERENCE("minutes"),
|
||||
lambda text: REPLACE_IN_TEXT(
|
||||
text,
|
||||
{
|
||||
"#1": VARIABLE_REFERENCE("minutes")
|
||||
}
|
||||
)
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("crashes-time-hours"),
|
||||
value=PLURALS(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"crashesTimeHours",
|
||||
VARIABLE_REFERENCE("hours"),
|
||||
lambda text: REPLACE_IN_TEXT(
|
||||
text,
|
||||
{
|
||||
"#1": VARIABLE_REFERENCE("hours")
|
||||
}
|
||||
)
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("crashes-time-days"),
|
||||
value=PLURALS(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"crashesTimeDays",
|
||||
VARIABLE_REFERENCE("days"),
|
||||
lambda text: REPLACE_IN_TEXT(
|
||||
text,
|
||||
{
|
||||
"#1": VARIABLE_REFERENCE("days")
|
||||
}
|
||||
)
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("pending-reports"),
|
||||
value=PLURALS(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"pendingReports",
|
||||
VARIABLE_REFERENCE("reports"),
|
||||
lambda text: REPLACE_IN_TEXT(
|
||||
text,
|
||||
{
|
||||
"#1": VARIABLE_REFERENCE("reports")
|
||||
}
|
||||
)
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("bug-link"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"bugLink",
|
||||
{
|
||||
"%1$S": VARIABLE_REFERENCE("bugNumber"),
|
||||
},
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("unknown-failure"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"unknownFailure",
|
||||
{
|
||||
"%1$S": VARIABLE_REFERENCE("failureCode"),
|
||||
},
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("wheel-warning"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"wheelWarning",
|
||||
{
|
||||
"%S": VARIABLE_REFERENCE("preferenceKey"),
|
||||
},
|
||||
)
|
||||
),
|
||||
FTL.Message(
|
||||
id=FTL.Identifier("touch-warning"),
|
||||
value=REPLACE(
|
||||
"toolkit/chrome/global/aboutSupport.properties",
|
||||
"touchWarning",
|
||||
{
|
||||
"%S": VARIABLE_REFERENCE("preferenceKey"),
|
||||
},
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
|
@ -17,30 +17,25 @@ ChromeUtils.defineModuleGetter(this, "PlacesDBUtils",
|
|||
|
||||
window.addEventListener("load", function onload(event) {
|
||||
try {
|
||||
window.removeEventListener("load", onload);
|
||||
Troubleshoot.snapshot(async function(snapshot) {
|
||||
for (let prop in snapshotFormatters)
|
||||
await snapshotFormatters[prop](snapshot[prop]);
|
||||
});
|
||||
populateActionBox();
|
||||
setupEventListeners();
|
||||
window.removeEventListener("load", onload);
|
||||
Troubleshoot.snapshot(function(snapshot) {
|
||||
for (let prop in snapshotFormatters)
|
||||
snapshotFormatters[prop](snapshot[prop]);
|
||||
});
|
||||
populateActionBox();
|
||||
setupEventListeners();
|
||||
} catch (e) {
|
||||
Cu.reportError("stack of load error for about:support: " + e + ": " + e.stack);
|
||||
}
|
||||
});
|
||||
|
||||
// Fluent uses lisp-case IDs so this converts
|
||||
// the SentenceCase info IDs to lisp-case.
|
||||
function toFluentID(str) {
|
||||
return str.toString().replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
||||
}
|
||||
|
||||
// Each property in this object corresponds to a property in Troubleshoot.jsm's
|
||||
// snapshot data. Each function is passed its property's corresponding data,
|
||||
// and it's the function's job to update the page with it.
|
||||
var snapshotFormatters = {
|
||||
|
||||
async application(data) {
|
||||
application: function application(data) {
|
||||
let strings = stringBundle();
|
||||
$("application-box").textContent = data.name;
|
||||
$("useragent-box").textContent = data.userAgent;
|
||||
$("os-box").textContent = data.osVersion;
|
||||
|
@ -54,7 +49,7 @@ var snapshotFormatters = {
|
|||
$("updatechannel-box").textContent = data.updateChannel;
|
||||
$("profile-dir-box").textContent = Services.dirsvc.get("ProfD", Ci.nsIFile).path;
|
||||
|
||||
let statusTextId = "multi-process-status-unknown";
|
||||
let statusText = strings.GetStringFromName("multiProcessStatus.unknown");
|
||||
|
||||
// Whitelist of known values with string descriptions:
|
||||
switch (data.autoStartStatus) {
|
||||
|
@ -65,17 +60,12 @@ var snapshotFormatters = {
|
|||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
statusTextId = "multi-process-status-" + data.autoStartStatus;
|
||||
statusText = strings.GetStringFromName("multiProcessStatus." + data.autoStartStatus);
|
||||
break;
|
||||
}
|
||||
|
||||
document.l10n.setAttributes($("multiprocess-box-process-count"),
|
||||
"multi-process-windows",
|
||||
{
|
||||
remoteWindows: data.numRemoteWindows,
|
||||
totalWindows: data.numTotalWindows,
|
||||
});
|
||||
document.l10n.setAttributes($("multiprocess-box-status"), statusTextId);
|
||||
$("multiprocess-box").textContent = strings.formatStringFromName("multiProcessWindows",
|
||||
[data.numRemoteWindows, data.numTotalWindows, statusText], 3);
|
||||
|
||||
if (data.remoteAutoStart) {
|
||||
$("contentprocesses-box").textContent = data.currentContentProcesses +
|
||||
|
@ -86,52 +76,52 @@ var snapshotFormatters = {
|
|||
}
|
||||
|
||||
if (Services.policies) {
|
||||
let policiesStrId = "";
|
||||
let policiesText = "";
|
||||
let aboutPolicies = "about:policies";
|
||||
switch (data.policiesStatus) {
|
||||
case Services.policies.INACTIVE:
|
||||
policiesStrId = "policies-inactive";
|
||||
policiesText = strings.GetStringFromName("policies.inactive");
|
||||
break;
|
||||
|
||||
case Services.policies.ACTIVE:
|
||||
policiesStrId = "policies-active";
|
||||
policiesText = strings.GetStringFromName("policies.active");
|
||||
aboutPolicies += "#active";
|
||||
break;
|
||||
|
||||
default:
|
||||
policiesStrId = "policies-error";
|
||||
policiesText = strings.GetStringFromName("policies.error");
|
||||
aboutPolicies += "#errors";
|
||||
break;
|
||||
}
|
||||
|
||||
if (data.policiesStatus != Services.policies.INACTIVE) {
|
||||
let activePolicies = $.new("a", null, null, {
|
||||
"data-l10n-id": policiesStrId,
|
||||
href: aboutPolicies,
|
||||
});
|
||||
let activePolicies = $.new("a", policiesText, null, {href: aboutPolicies});
|
||||
$("policies-status").appendChild(activePolicies);
|
||||
} else {
|
||||
document.l10n.setAttributes($("policies-status"), policiesStrId);
|
||||
$("policies-status").textContent = policiesText;
|
||||
}
|
||||
} else {
|
||||
$("policies-status-row").hidden = true;
|
||||
}
|
||||
|
||||
let keyGoogleFound = data.keyGoogleFound ? "found" : "missing";
|
||||
document.l10n.setAttributes($("key-google-box"), keyGoogleFound);
|
||||
$("key-google-box").textContent = strings.GetStringFromName(keyGoogleFound);
|
||||
|
||||
let keyMozillaFound = data.keyMozillaFound ? "found" : "missing";
|
||||
document.l10n.setAttributes($("key-mozilla-box"), keyMozillaFound);
|
||||
$("key-mozilla-box").textContent = strings.GetStringFromName(keyMozillaFound);
|
||||
|
||||
$("safemode-box").textContent = data.safeMode;
|
||||
},
|
||||
|
||||
crashes(data) {
|
||||
crashes: function crashes(data) {
|
||||
if (!AppConstants.MOZ_CRASHREPORTER)
|
||||
return;
|
||||
|
||||
let strings = stringBundle();
|
||||
let daysRange = Troubleshoot.kMaxCrashAge / (24 * 60 * 60 * 1000);
|
||||
document.l10n.setAttributes($("crashes-title"), "report-crash-for-days", { days: daysRange });
|
||||
$("crashes-title").textContent =
|
||||
PluralForm.get(daysRange, strings.GetStringFromName("crashesTitle"))
|
||||
.replace("#1", daysRange);
|
||||
let reportURL;
|
||||
try {
|
||||
reportURL = Services.prefs.getCharPref("breakpad.reportURL");
|
||||
|
@ -148,38 +138,42 @@ var snapshotFormatters = {
|
|||
$("crashes-allReports").classList.remove("no-copy");
|
||||
|
||||
if (data.pending > 0) {
|
||||
document.l10n.setAttributes($("crashes-allReportsWithPending"), "pending-reports", { reports: data.pending });
|
||||
$("crashes-allReportsWithPending").textContent =
|
||||
PluralForm.get(data.pending, strings.GetStringFromName("pendingReports"))
|
||||
.replace("#1", data.pending);
|
||||
}
|
||||
|
||||
let dateNow = new Date();
|
||||
$.append($("crashes-tbody"), data.submitted.map(function(crash) {
|
||||
let date = new Date(crash.date);
|
||||
let timePassed = dateNow - date;
|
||||
let formattedDateStrId;
|
||||
let formattedDateStrArgs;
|
||||
let formattedDate;
|
||||
if (timePassed >= 24 * 60 * 60 * 1000) {
|
||||
let daysPassed = Math.round(timePassed / (24 * 60 * 60 * 1000));
|
||||
formattedDateStrId = "crashes-time-days";
|
||||
formattedDateStrArgs = { days: daysPassed };
|
||||
let daysPassedString = strings.GetStringFromName("crashesTimeDays");
|
||||
formattedDate = PluralForm.get(daysPassed, daysPassedString)
|
||||
.replace("#1", daysPassed);
|
||||
} else if (timePassed >= 60 * 60 * 1000) {
|
||||
let hoursPassed = Math.round(timePassed / (60 * 60 * 1000));
|
||||
formattedDateStrId = "crashes-time-hours";
|
||||
formattedDateStrArgs = { hours: hoursPassed };
|
||||
let hoursPassedString = strings.GetStringFromName("crashesTimeHours");
|
||||
formattedDate = PluralForm.get(hoursPassed, hoursPassedString)
|
||||
.replace("#1", hoursPassed);
|
||||
} else {
|
||||
let minutesPassed = Math.max(Math.round(timePassed / (60 * 1000)), 1);
|
||||
formattedDateStrId = "crashes-time-minutes";
|
||||
formattedDateStrArgs = { minutes: minutesPassed };
|
||||
let minutesPassedString = strings.GetStringFromName("crashesTimeMinutes");
|
||||
formattedDate = PluralForm.get(minutesPassed, minutesPassedString)
|
||||
.replace("#1", minutesPassed);
|
||||
}
|
||||
return $.new("tr", [
|
||||
$.new("td", [
|
||||
$.new("a", crash.id, null, {href: reportURL + crash.id}),
|
||||
]),
|
||||
$.new("td", null, null, {"data-l10n-id": formattedDateStrId, "data-l10n-args": formattedDateStrArgs}),
|
||||
$.new("td", formattedDate),
|
||||
]);
|
||||
}));
|
||||
},
|
||||
|
||||
extensions(data) {
|
||||
extensions: function extensions(data) {
|
||||
$.append($("extensions-tbody"), data.map(function(extension) {
|
||||
return $.new("tr", [
|
||||
$.new("td", extension.name),
|
||||
|
@ -190,7 +184,7 @@ var snapshotFormatters = {
|
|||
}));
|
||||
},
|
||||
|
||||
securitySoftware(data) {
|
||||
securitySoftware: function securitySoftware(data) {
|
||||
if (!AppConstants.isPlatformAndVersionAtLeast("win", "6.2")) {
|
||||
$("security-software-title").hidden = true;
|
||||
$("security-software-table").hidden = true;
|
||||
|
@ -202,7 +196,7 @@ var snapshotFormatters = {
|
|||
$("security-software-firewall").textContent = data.registeredFirewall;
|
||||
},
|
||||
|
||||
features(data) {
|
||||
features: function features(data) {
|
||||
$.append($("features-tbody"), data.map(function(feature) {
|
||||
return $.new("tr", [
|
||||
$.new("td", feature.name),
|
||||
|
@ -212,7 +206,7 @@ var snapshotFormatters = {
|
|||
}));
|
||||
},
|
||||
|
||||
modifiedPreferences(data) {
|
||||
modifiedPreferences: function modifiedPreferences(data) {
|
||||
$.append($("prefs-tbody"), sortedArrayFromObject(data).map(
|
||||
function([name, value]) {
|
||||
return $.new("tr", [
|
||||
|
@ -226,7 +220,7 @@ var snapshotFormatters = {
|
|||
));
|
||||
},
|
||||
|
||||
lockedPreferences(data) {
|
||||
lockedPreferences: function lockedPreferences(data) {
|
||||
$.append($("locked-prefs-tbody"), sortedArrayFromObject(data).map(
|
||||
function([name, value]) {
|
||||
return $.new("tr", [
|
||||
|
@ -237,10 +231,31 @@ var snapshotFormatters = {
|
|||
));
|
||||
},
|
||||
|
||||
async graphics(data) {
|
||||
function localizedMsg(msg) {
|
||||
let msgId = toFluentID(msg);
|
||||
return document.l10n.formatValue(msgId);
|
||||
graphics: function graphics(data) {
|
||||
let strings = stringBundle();
|
||||
|
||||
function localizedMsg(msgArray) {
|
||||
let nameOrMsg = msgArray.shift();
|
||||
if (msgArray.length) {
|
||||
// formatStringFromName logs an NS_ASSERTION failure otherwise that says
|
||||
// "use GetStringFromName". Lame.
|
||||
try {
|
||||
return strings.formatStringFromName(nameOrMsg, msgArray,
|
||||
msgArray.length);
|
||||
} catch (err) {
|
||||
// Throws if nameOrMsg is not a name in the bundle. This shouldn't
|
||||
// actually happen though, since msgArray.length > 1 => nameOrMsg is a
|
||||
// name in the bundle, not a message, and the remaining msgArray
|
||||
// elements are parameters.
|
||||
return nameOrMsg;
|
||||
}
|
||||
}
|
||||
try {
|
||||
return strings.GetStringFromName(nameOrMsg);
|
||||
} catch (err) {
|
||||
// Throws if nameOrMsg is not a name in the bundle.
|
||||
}
|
||||
return nameOrMsg;
|
||||
}
|
||||
|
||||
// Read APZ info out of data.info, stripping it out in the process.
|
||||
|
@ -255,7 +270,8 @@ var snapshotFormatters = {
|
|||
|
||||
delete info[key];
|
||||
|
||||
out.push(toFluentID(type.toLowerCase() + "Enabled"));
|
||||
let message = localizedMsg([type.toLowerCase() + "Enabled"]);
|
||||
out.push(message);
|
||||
}
|
||||
|
||||
return out;
|
||||
|
@ -266,14 +282,21 @@ var snapshotFormatters = {
|
|||
// @key Text in the key column. Localized automatically, unless starts with "#".
|
||||
// @value Text in the value column. Not localized.
|
||||
function buildRow(key, value) {
|
||||
let title = key[0] == "#" ? key.substr(1) : key;
|
||||
let keyStrId = toFluentID(key);
|
||||
let valueStrId = Array.isArray(value) ? null : toFluentID(value);
|
||||
let td = $.new("td", value, null, {"data-l10n-id": valueStrId});
|
||||
let title;
|
||||
if (key[0] == "#") {
|
||||
title = key.substr(1);
|
||||
} else {
|
||||
try {
|
||||
title = strings.GetStringFromName(key);
|
||||
} catch (e) {
|
||||
title = key;
|
||||
}
|
||||
}
|
||||
let td = $.new("td", value);
|
||||
td.style["white-space"] = "pre-wrap";
|
||||
|
||||
return $.new("tr", [
|
||||
$.new("th", title, "column", {"data-l10n-id": keyStrId}),
|
||||
$.new("th", title, "column"),
|
||||
td,
|
||||
]);
|
||||
}
|
||||
|
@ -291,7 +314,7 @@ var snapshotFormatters = {
|
|||
addRows(where, [buildRow(key, value)]);
|
||||
}
|
||||
if (data.clearTypeParameters !== undefined) {
|
||||
addRow("diagnostics", "clear-type-parameters", data.clearTypeParameters);
|
||||
addRow("diagnostics", "clearTypeParameters", data.clearTypeParameters);
|
||||
}
|
||||
if ("info" in data) {
|
||||
apzInfo = formatApzInfo(data.info);
|
||||
|
@ -319,7 +342,7 @@ var snapshotFormatters = {
|
|||
windowUtils.terminateGPUProcess();
|
||||
});
|
||||
|
||||
document.l10n.setAttributes(gpuProcessKillButton, "gpu-process-kill-button");
|
||||
gpuProcessKillButton.textContent = strings.GetStringFromName("gpuProcessKillButton");
|
||||
}
|
||||
|
||||
addRow("diagnostics", "GPUProcessPid", gpuProcessPid);
|
||||
|
@ -335,7 +358,7 @@ var snapshotFormatters = {
|
|||
windowUtils.triggerDeviceReset();
|
||||
});
|
||||
|
||||
document.l10n.setAttributes(gpuDeviceResetButton, "gpu-device-reset-button");
|
||||
gpuDeviceResetButton.textContent = strings.GetStringFromName("gpuDeviceResetButton");
|
||||
addRow("diagnostics", "Device Reset", [gpuDeviceResetButton]);
|
||||
}
|
||||
|
||||
|
@ -376,7 +399,7 @@ var snapshotFormatters = {
|
|||
// @where Table section to add to.
|
||||
// @key Data key to use.
|
||||
// @colKey The localization key to use, if different from key.
|
||||
async function addRowFromKey(where, key, colKey) {
|
||||
function addRowFromKey(where, key, colKey) {
|
||||
if (!(key in data))
|
||||
return;
|
||||
colKey = colKey || key;
|
||||
|
@ -384,7 +407,7 @@ var snapshotFormatters = {
|
|||
let value;
|
||||
let messageKey = key + "Message";
|
||||
if (messageKey in data) {
|
||||
value = await localizedMsg(data[messageKey]);
|
||||
value = localizedMsg(data[messageKey]);
|
||||
delete data[messageKey];
|
||||
} else {
|
||||
value = data[key];
|
||||
|
@ -404,8 +427,7 @@ var snapshotFormatters = {
|
|||
compositor += " (Advanced Layers)";
|
||||
}
|
||||
} else {
|
||||
let noOMTCString = await document.l10n.formatValue("main-thread-no-omtc");
|
||||
compositor = "BasicLayers (" + noOMTCString + ")";
|
||||
compositor = "BasicLayers (" + strings.GetStringFromName("mainThreadNoOMTC") + ")";
|
||||
}
|
||||
addRow("features", "compositing", compositor);
|
||||
delete data.windowLayerManagerRemote;
|
||||
|
@ -417,53 +439,44 @@ var snapshotFormatters = {
|
|||
|
||||
addRow("features", "asyncPanZoom",
|
||||
apzInfo.length
|
||||
? (await document.l10n.formatValues(apzInfo.map(id => { return {id}; }))).join("; ")
|
||||
: await localizedMsg("apz-none"));
|
||||
let featureKeys = [
|
||||
"webgl1WSIInfo",
|
||||
"webgl1Renderer",
|
||||
"webgl1Version",
|
||||
"webgl1DriverExtensions",
|
||||
"webgl1Extensions",
|
||||
"webgl2WSIInfo",
|
||||
"webgl2Renderer",
|
||||
"webgl2Version",
|
||||
"webgl2DriverExtensions",
|
||||
"webgl2Extensions",
|
||||
["supportsHardwareH264", "hardware-h264"],
|
||||
["direct2DEnabled", "#Direct2D"],
|
||||
"usesTiling",
|
||||
"contentUsesTiling",
|
||||
"offMainThreadPaintEnabled",
|
||||
"offMainThreadPaintWorkerCount",
|
||||
];
|
||||
for (let feature of featureKeys) {
|
||||
if (Array.isArray(feature)) {
|
||||
await addRowFromKey("features", feature[0], feature[1]);
|
||||
continue;
|
||||
}
|
||||
await addRowFromKey("features", feature);
|
||||
}
|
||||
? apzInfo.join("; ")
|
||||
: localizedMsg(["apzNone"]));
|
||||
addRowFromKey("features", "webgl1WSIInfo");
|
||||
addRowFromKey("features", "webgl1Renderer");
|
||||
addRowFromKey("features", "webgl1Version");
|
||||
addRowFromKey("features", "webgl1DriverExtensions");
|
||||
addRowFromKey("features", "webgl1Extensions");
|
||||
addRowFromKey("features", "webgl2WSIInfo");
|
||||
addRowFromKey("features", "webgl2Renderer");
|
||||
addRowFromKey("features", "webgl2Version");
|
||||
addRowFromKey("features", "webgl2DriverExtensions");
|
||||
addRowFromKey("features", "webgl2Extensions");
|
||||
addRowFromKey("features", "supportsHardwareH264", "hardwareH264");
|
||||
addRowFromKey("features", "direct2DEnabled", "#Direct2D");
|
||||
addRowFromKey("features", "usesTiling");
|
||||
addRowFromKey("features", "contentUsesTiling");
|
||||
addRowFromKey("features", "offMainThreadPaintEnabled");
|
||||
addRowFromKey("features", "offMainThreadPaintWorkerCount");
|
||||
|
||||
if ("directWriteEnabled" in data) {
|
||||
let message = data.directWriteEnabled;
|
||||
if ("directWriteVersion" in data)
|
||||
message += " (" + data.directWriteVersion + ")";
|
||||
await addRow("features", "#DirectWrite", message);
|
||||
addRow("features", "#DirectWrite", message);
|
||||
delete data.directWriteEnabled;
|
||||
delete data.directWriteVersion;
|
||||
}
|
||||
|
||||
// Adapter tbodies.
|
||||
let adapterKeys = [
|
||||
["adapterDescription", "gpu-description"],
|
||||
["adapterVendorID", "gpu-vendor-id"],
|
||||
["adapterDeviceID", "gpu-device-id"],
|
||||
["driverVersion", "gpu-driver-version"],
|
||||
["driverDate", "gpu-driver-date"],
|
||||
["adapterDrivers", "gpu-drivers"],
|
||||
["adapterSubsysID", "gpu-subsys-id"],
|
||||
["adapterRAM", "gpu-ram"],
|
||||
["adapterDescription", "gpuDescription"],
|
||||
["adapterVendorID", "gpuVendorID"],
|
||||
["adapterDeviceID", "gpuDeviceID"],
|
||||
["driverVersion", "gpuDriverVersion"],
|
||||
["driverDate", "gpuDriverDate"],
|
||||
["adapterDrivers", "gpuDrivers"],
|
||||
["adapterSubsysID", "gpuSubsysID"],
|
||||
["adapterRAM", "gpuRAM"],
|
||||
];
|
||||
|
||||
function showGpu(id, suffix) {
|
||||
|
@ -488,8 +501,7 @@ var snapshotFormatters = {
|
|||
if ("isGPU2Active" in data && ((suffix == "2") != data.isGPU2Active)) {
|
||||
active = "no";
|
||||
}
|
||||
|
||||
addRow(id, "gpu-active", active);
|
||||
addRow(id, "gpuActive", strings.GetStringFromName(active));
|
||||
addRows(id, trs);
|
||||
}
|
||||
showGpu("gpu-1", "");
|
||||
|
@ -527,17 +539,16 @@ var snapshotFormatters = {
|
|||
let m = /#BLOCKLIST_FEATURE_FAILURE_BUG_(\d+)/.exec(entry.message);
|
||||
if (m) {
|
||||
let bugSpan = $.new("span");
|
||||
document.l10n.setAttributes(bugSpan, "blocklisted-bug");
|
||||
bugSpan.textContent = strings.GetStringFromName("blocklistedBug") + "; ";
|
||||
|
||||
let bugHref = $.new("a");
|
||||
bugHref.href = "https://bugzilla.mozilla.org/show_bug.cgi?id=" + m[1];
|
||||
document.l10n.setAttributes(bugHref, "bug-link", { bugNumber: m[1]});
|
||||
bugHref.textContent = strings.formatStringFromName("bugLink", [m[1]], 1);
|
||||
|
||||
contents = [bugSpan, bugHref];
|
||||
} else {
|
||||
let unknownFailure = $.new("span");
|
||||
document.l10n.setAttributes(unknownFailure, "unknown-failure", { failureCode: entry.message.substr(1) });
|
||||
contents = [unknownFailure];
|
||||
contents = strings.formatStringFromName(
|
||||
"unknownFailure", [entry.message.substr(1)], 1);
|
||||
}
|
||||
} else {
|
||||
contents = entry.status + " by " + entry.type + ": " + entry.message;
|
||||
|
@ -573,7 +584,7 @@ var snapshotFormatters = {
|
|||
resetButton.disabled = true;
|
||||
};
|
||||
|
||||
document.l10n.setAttributes(resetButton, "reset-on-next-restart");
|
||||
resetButton.textContent = strings.GetStringFromName("resetOnNextRestart");
|
||||
resetButton.addEventListener("click", onClickReset);
|
||||
|
||||
addRow("crashguards", guard.type + "CrashGuard", [resetButton]);
|
||||
|
@ -586,14 +597,19 @@ var snapshotFormatters = {
|
|||
// the diagnostics section.
|
||||
for (let key in data) {
|
||||
let value = data[key];
|
||||
if (Array.isArray(value)) {
|
||||
value = localizedMsg(value);
|
||||
}
|
||||
addRow("diagnostics", key, value);
|
||||
}
|
||||
},
|
||||
|
||||
media(data) {
|
||||
media: function media(data) {
|
||||
let strings = stringBundle();
|
||||
|
||||
function insertBasicInfo(key, value) {
|
||||
function createRow(key, value) {
|
||||
let th = $.new("th", null, "column", {"data-l10n-id": key});
|
||||
let th = $.new("th", strings.GetStringFromName(key), "column");
|
||||
let td = $.new("td", value);
|
||||
td.style["white-space"] = "pre-wrap";
|
||||
td.colSpan = 8;
|
||||
|
@ -682,9 +698,9 @@ var snapshotFormatters = {
|
|||
}
|
||||
|
||||
// Basic information
|
||||
insertBasicInfo("audio-backend", data.currentAudioBackend);
|
||||
insertBasicInfo("max-audio-channels", data.currentMaxAudioChannels);
|
||||
insertBasicInfo("sample-rate", data.currentPreferredSampleRate);
|
||||
insertBasicInfo("audioBackend", data.currentAudioBackend);
|
||||
insertBasicInfo("maxAudioChannels", data.currentMaxAudioChannels);
|
||||
insertBasicInfo("sampleRate", data.currentPreferredSampleRate);
|
||||
|
||||
// Output devices information
|
||||
insertDeviceInfo("output", data.audioOutputDevices);
|
||||
|
@ -693,11 +709,11 @@ var snapshotFormatters = {
|
|||
insertDeviceInfo("input", data.audioInputDevices);
|
||||
},
|
||||
|
||||
javaScript(data) {
|
||||
javaScript: function javaScript(data) {
|
||||
$("javascript-incremental-gc").textContent = data.incrementalGCEnabled;
|
||||
},
|
||||
|
||||
accessibility(data) {
|
||||
accessibility: function accessibility(data) {
|
||||
$("a11y-activated").textContent = data.isActive;
|
||||
$("a11y-force-disabled").textContent = data.forceDisabled || 0;
|
||||
|
||||
|
@ -712,12 +728,13 @@ var snapshotFormatters = {
|
|||
}
|
||||
},
|
||||
|
||||
libraryVersions(data) {
|
||||
libraryVersions: function libraryVersions(data) {
|
||||
let strings = stringBundle();
|
||||
let trs = [
|
||||
$.new("tr", [
|
||||
$.new("th", ""),
|
||||
$.new("th", null, null, {"data-l10n-id": "min-lib-versions"}),
|
||||
$.new("th", null, null, {"data-l10n-id": "loaded-lib-versions"}),
|
||||
$.new("th", strings.GetStringFromName("minLibVersions")),
|
||||
$.new("th", strings.GetStringFromName("loadedLibVersions")),
|
||||
]),
|
||||
];
|
||||
sortedArrayFromObject(data).forEach(
|
||||
|
@ -732,7 +749,7 @@ var snapshotFormatters = {
|
|||
$.append($("libversions-tbody"), trs);
|
||||
},
|
||||
|
||||
userJS(data) {
|
||||
userJS: function userJS(data) {
|
||||
if (!data.exists)
|
||||
return;
|
||||
let userJSFile = Services.dirsvc.get("PrefD", Ci.nsIFile);
|
||||
|
@ -743,10 +760,11 @@ var snapshotFormatters = {
|
|||
$("prefs-user-js-section").className = "";
|
||||
},
|
||||
|
||||
sandbox(data) {
|
||||
sandbox: function sandbox(data) {
|
||||
if (!AppConstants.MOZ_SANDBOX)
|
||||
return;
|
||||
|
||||
let strings = stringBundle();
|
||||
let tbody = $("sandbox-tbody");
|
||||
for (let key in data) {
|
||||
// Simplify the display a little in the common case.
|
||||
|
@ -758,9 +776,8 @@ var snapshotFormatters = {
|
|||
// Not in this table.
|
||||
continue;
|
||||
}
|
||||
let keyStrId = toFluentID(key);
|
||||
tbody.appendChild($.new("tr", [
|
||||
$.new("th", null, "column", {"data-l10n-id": keyStrId}),
|
||||
$.new("th", strings.GetStringFromName(key), "column"),
|
||||
$.new("td", data[key]),
|
||||
]));
|
||||
}
|
||||
|
@ -772,13 +789,13 @@ var snapshotFormatters = {
|
|||
if (argsHead.colSpan < syscall.args.length) {
|
||||
argsHead.colSpan = syscall.args.length;
|
||||
}
|
||||
let procTypeStrId = toFluentID(syscall.procType);
|
||||
let cells = [
|
||||
$.new("td", syscall.index, "integer"),
|
||||
$.new("td", syscall.msecAgo / 1000),
|
||||
$.new("td", syscall.pid, "integer"),
|
||||
$.new("td", syscall.tid, "integer"),
|
||||
$.new("td", null, null, {"data-l10n-id": "sandbox-proc-type-" + procTypeStrId}),
|
||||
$.new("td", strings.GetStringFromName("sandboxProcType." +
|
||||
syscall.procType)),
|
||||
$.new("td", syscall.syscall, "integer"),
|
||||
];
|
||||
for (let arg of syscall.args) {
|
||||
|
@ -789,7 +806,7 @@ var snapshotFormatters = {
|
|||
}
|
||||
},
|
||||
|
||||
intl(data) {
|
||||
intl: function intl(data) {
|
||||
$("intl-locale-requested").textContent =
|
||||
JSON.stringify(data.localeService.requested);
|
||||
$("intl-locale-available").textContent =
|
||||
|
@ -812,29 +829,16 @@ var $ = document.getElementById.bind(document);
|
|||
|
||||
$.new = function $_new(tag, textContentOrChildren, className, attributes) {
|
||||
let elt = document.createElement(tag);
|
||||
if (className) {
|
||||
if (className)
|
||||
elt.className = className;
|
||||
}
|
||||
if (attributes) {
|
||||
if (attributes["data-l10n-id"]) {
|
||||
document.l10n.setAttributes(elt,
|
||||
attributes["data-l10n-id"],
|
||||
attributes["data-l10n-args"]);
|
||||
delete attributes["data-l10n-id"];
|
||||
if (attributes["data-l10n-args"]) {
|
||||
delete attributes["data-l10n-args"];
|
||||
}
|
||||
}
|
||||
|
||||
for (let attrName in attributes) {
|
||||
for (let attrName in attributes)
|
||||
elt.setAttribute(attrName, attributes[attrName]);
|
||||
}
|
||||
}
|
||||
if (Array.isArray(textContentOrChildren)) {
|
||||
if (Array.isArray(textContentOrChildren))
|
||||
this.append(elt, textContentOrChildren);
|
||||
} else if (textContentOrChildren) {
|
||||
else
|
||||
elt.textContent = String(textContentOrChildren);
|
||||
}
|
||||
return elt;
|
||||
};
|
||||
|
||||
|
@ -842,6 +846,11 @@ $.append = function $_append(parent, children) {
|
|||
children.forEach(c => parent.appendChild(c));
|
||||
};
|
||||
|
||||
function stringBundle() {
|
||||
return Services.strings.createBundle(
|
||||
"chrome://global/locale/aboutSupport.properties");
|
||||
}
|
||||
|
||||
function assembleFromGraphicsFailure(i, data) {
|
||||
// Only cover the cases we have today; for example, we do not have
|
||||
// log failures that assert and we assume the log level is 1/error.
|
||||
|
@ -879,7 +888,7 @@ function copyRawDataToClipboard(button) {
|
|||
if (button)
|
||||
button.disabled = true;
|
||||
try {
|
||||
Troubleshoot.snapshot(async function(snapshot) {
|
||||
Troubleshoot.snapshot(function(snapshot) {
|
||||
if (button)
|
||||
button.disabled = false;
|
||||
let str = Cc["@mozilla.org/supports-string;1"].
|
||||
|
@ -894,8 +903,8 @@ function copyRawDataToClipboard(button) {
|
|||
if (AppConstants.platform == "android") {
|
||||
// Present a snackbar notification.
|
||||
ChromeUtils.import("resource://gre/modules/Snackbars.jsm");
|
||||
let rawDataCopiedString = await document.l10n.formatValue("raw-data-copied");
|
||||
Snackbars.show(rawDataCopiedString, Snackbars.LENGTH_SHORT);
|
||||
Snackbars.show(stringBundle().GetStringFromName("rawDataCopied"),
|
||||
Snackbars.LENGTH_SHORT);
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
|
@ -909,7 +918,7 @@ function getLoadContext() {
|
|||
return window.docShell.QueryInterface(Ci.nsILoadContext);
|
||||
}
|
||||
|
||||
async function copyContentsToClipboard() {
|
||||
function copyContentsToClipboard() {
|
||||
// Get the HTML and text representations for the important part of the page.
|
||||
let contentsDiv = $("contents");
|
||||
let dataHtml = contentsDiv.innerHTML;
|
||||
|
@ -940,8 +949,8 @@ async function copyContentsToClipboard() {
|
|||
if (AppConstants.platform == "android") {
|
||||
// Present a snackbar notification.
|
||||
ChromeUtils.import("resource://gre/modules/Snackbars.jsm");
|
||||
let textCopiedString = await document.l10n.formatValue("text-copied");
|
||||
Snackbars.show(textCopiedString, Snackbars.LENGTH_SHORT);
|
||||
Snackbars.show(stringBundle().GetStringFromName("textCopied"),
|
||||
Snackbars.LENGTH_SHORT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,13 +6,15 @@
|
|||
|
||||
<!DOCTYPE html [
|
||||
<!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> %htmlDTD;
|
||||
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> %globalDTD;
|
||||
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd"> %brandDTD;
|
||||
<!ENTITY % aboutSupportDTD SYSTEM "chrome://global/locale/aboutSupport.dtd"> %aboutSupportDTD;
|
||||
<!ENTITY % resetProfileDTD SYSTEM "chrome://global/locale/resetProfile.dtd"> %resetProfileDTD;
|
||||
]>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title data-l10n-id="page-title"/>
|
||||
<title>&aboutSupport.pageTitle;</title>
|
||||
|
||||
<link rel="icon" type="image/png" id="favicon"
|
||||
href="chrome://branding/content/icon32.png"/>
|
||||
|
@ -21,11 +23,9 @@
|
|||
|
||||
<script type="application/javascript"
|
||||
src="chrome://global/content/aboutSupport.js"/>
|
||||
<link rel="localization" href="branding/brand.ftl"/>
|
||||
<link rel="localization" href="toolkit/about/aboutSupport.ftl"/>
|
||||
</head>
|
||||
|
||||
<body class="wide-container">
|
||||
<body dir="&locale.dir;" class="wide-container">
|
||||
|
||||
#ifndef ANDROID
|
||||
<div id="action-box" class="notice-box">
|
||||
|
@ -36,57 +36,77 @@
|
|||
</button>
|
||||
</div>
|
||||
<div id="safe-mode-box">
|
||||
<h3 data-l10n-id="safe-mode-title"/>
|
||||
<button id="restart-in-safe-mode-button" data-l10n-id="restart-in-safe-mode-label"/>
|
||||
<h3>&aboutSupport.safeModeTitle;</h3>
|
||||
<button id="restart-in-safe-mode-button">
|
||||
&aboutSupport.restartInSafeMode.label;
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
#endif
|
||||
|
||||
<h1 data-l10n-id="page-title"/>
|
||||
<h1>
|
||||
&aboutSupport.pageTitle;
|
||||
</h1>
|
||||
|
||||
<div class="page-subtitle" data-l10n-id="page-subtitle">
|
||||
<a id="supportLink" data-l10n-name="support-link"></a>
|
||||
<div class="page-subtitle">
|
||||
&aboutSupport.pageSubtitle;
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button id="copy-raw-data-to-clipboard" data-l10n-id="copy-raw-data-to-clipboard-label"/>
|
||||
<button id="copy-to-clipboard" data-l10n-id="copy-text-to-clipboard-label"/>
|
||||
<button id="copy-raw-data-to-clipboard">
|
||||
&aboutSupport.copyRawDataToClipboard.label;
|
||||
</button>
|
||||
<button id="copy-to-clipboard">
|
||||
&aboutSupport.copyTextToClipboard.label;
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="contents">
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="app-basics-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.appBasicsTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-name"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsName;
|
||||
</th>
|
||||
|
||||
<td id="application-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-version"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsVersion;
|
||||
</th>
|
||||
|
||||
<td id="version-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-build-id"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsBuildID;
|
||||
</th>
|
||||
<td id="buildid-box"></td>
|
||||
</tr>
|
||||
|
||||
#ifndef ANDROID
|
||||
#ifdef MOZ_UPDATER
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-update-history"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsUpdateHistory;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<button id="show-update-history-button" data-l10n-id="app-basics-show-update-history"/>
|
||||
<button id="show-update-history-button">
|
||||
&aboutSupport.appBasicsShowUpdateHistory;
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
#endif
|
||||
|
@ -94,37 +114,65 @@
|
|||
|
||||
#ifdef MOZ_UPDATER
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-update-channel"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsUpdateChannel;
|
||||
</th>
|
||||
<td id="updatechannel-box"></td>
|
||||
</tr>
|
||||
#endif
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-user-agent"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsUserAgent;
|
||||
</th>
|
||||
|
||||
<td id="useragent-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-os"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsOS;
|
||||
</th>
|
||||
|
||||
<td id="os-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="profile-row" class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-profile-dir"/>
|
||||
<th class="column">
|
||||
#ifdef XP_WIN
|
||||
&aboutSupport.appBasicsProfileDirWinMac;
|
||||
#else
|
||||
#ifdef XP_MACOSX
|
||||
&aboutSupport.appBasicsProfileDirWinMac;
|
||||
#else
|
||||
&aboutSupport.appBasicsProfileDir;
|
||||
#endif
|
||||
#endif
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<button id="profile-dir-button" data-l10n-id="show-dir-label"/>
|
||||
<button id="profile-dir-button">
|
||||
#ifdef XP_WIN
|
||||
&aboutSupport.showWin2.label;
|
||||
#else
|
||||
#ifdef XP_MACOSX
|
||||
&aboutSupport.showMac.label;
|
||||
#else
|
||||
&aboutSupport.showDir.label;
|
||||
#endif
|
||||
#endif
|
||||
</button>
|
||||
<span id="profile-dir-box">
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-enabled-plugins"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsEnabledPlugins;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:plugins">about:plugins</a>
|
||||
|
@ -132,7 +180,9 @@
|
|||
</tr>
|
||||
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-build-config"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsBuildConfig;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:buildconfig">about:buildconfig</a>
|
||||
|
@ -140,7 +190,9 @@
|
|||
</tr>
|
||||
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-memory-use"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsMemoryUse;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:memory">about:memory</a>
|
||||
|
@ -148,7 +200,9 @@
|
|||
</tr>
|
||||
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-performance"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsPerformance;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:performance">about:performance</a>
|
||||
|
@ -156,7 +210,9 @@
|
|||
</tr>
|
||||
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-service-workers"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsServiceWorkers;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:serviceworkers">about:serviceworkers</a>
|
||||
|
@ -164,44 +220,54 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-multi-process-support"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsMultiProcessSupport;
|
||||
</th>
|
||||
|
||||
<td id="multiprocess-box">
|
||||
<span id="multiprocess-box-process-count"/>
|
||||
<span id="multiprocess-box-status" data-l10n-id="multi-process-status-unknown"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="contentprocesses-row">
|
||||
<th class="column" data-l10n-id="app-basics-process-count"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsProcessCount;
|
||||
</th>
|
||||
|
||||
<td id="contentprocesses-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="policies-status-row">
|
||||
<th class="column" data-l10n-id="app-basics-enterprise-policies"/>
|
||||
<th class="column">
|
||||
&aboutSupport.enterprisePolicies;
|
||||
</th>
|
||||
|
||||
<td id="policies-status">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-key-google"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsKeyGoogle;
|
||||
</th>
|
||||
|
||||
<td id="key-google-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-key-mozilla"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsKeyMozilla;
|
||||
</th>
|
||||
|
||||
<td id="key-mozilla-box">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="app-basics-safe-mode"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsSafeMode;
|
||||
</th>
|
||||
|
||||
<td id="safemode-box">
|
||||
</td>
|
||||
|
@ -209,7 +275,9 @@
|
|||
|
||||
#ifndef ANDROID
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="app-basics-profiles"/>
|
||||
<th class="column">
|
||||
&aboutSupport.appBasicsProfiles;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<a href="about:profiles">about:profiles</a>
|
||||
|
@ -223,35 +291,48 @@
|
|||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
|
||||
<h2 class="major-section" id="crashes-title" data-l10n-id="crashes-title"/>
|
||||
<h2 class="major-section" id="crashes-title">
|
||||
&aboutSupport.crashes.title;
|
||||
</h2>
|
||||
|
||||
<table id="crashes-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-l10n-id="crashes-id"/>
|
||||
<th data-l10n-id="crashes-send-date"/>
|
||||
<th>
|
||||
&aboutSupport.crashes.id;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.crashes.sendDate;
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="crashes-tbody">
|
||||
</tbody>
|
||||
</table>
|
||||
<p id="crashes-allReports" class="hidden no-copy">
|
||||
<a href="about:crashes" id="crashes-allReportsWithPending"
|
||||
class="block" data-l10n-id="crashes-all-reports"/>
|
||||
<a href="about:crashes" id="crashes-allReportsWithPending" class="block">&aboutSupport.crashes.allReports;</a>
|
||||
</p>
|
||||
<p id="crashes-noConfig" class="hidden no-copy" data-l10n-id="crashes-no-config"/>
|
||||
<p id="crashes-noConfig" class="hidden no-copy">&aboutSupport.crashes.noConfig;</p>
|
||||
|
||||
#endif
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="features-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.featuresTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-l10n-id="features-name"/>
|
||||
<th data-l10n-id="features-version"/>
|
||||
<th data-l10n-id="features-id"/>
|
||||
<th>
|
||||
&aboutSupport.featureName;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.featureVersion;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.featureId;
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="features-tbody">
|
||||
|
@ -260,15 +341,25 @@
|
|||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="extensions-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.extensionsTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-l10n-id="extensions-name"/>
|
||||
<th data-l10n-id="extensions-version"/>
|
||||
<th data-l10n-id="extensions-enabled"/>
|
||||
<th data-l10n-id="extensions-id"/>
|
||||
<th>
|
||||
&aboutSupport.extensionName;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.extensionVersion;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.extensionEnabled;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.extensionId;
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="extensions-tbody">
|
||||
|
@ -277,32 +368,44 @@
|
|||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" id="security-software-title" data-l10n-id="security-software-title"/>
|
||||
<h2 class="major-section" id="security-software-title">
|
||||
&aboutSupport.securitySoftwareTitle;
|
||||
</h2>
|
||||
|
||||
<table id="security-software-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-l10n-id="security-software-type"/>
|
||||
<th data-l10n-id="security-software-name"/>
|
||||
<th>
|
||||
&aboutSupport.securitySoftwareType;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.securitySoftwareName;
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="security-software-antivirus"/>
|
||||
<th class="column">
|
||||
&aboutSupport.securitySoftwareAntivirus;
|
||||
</th>
|
||||
|
||||
<td id="security-software-antivirus">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="security-software-antispyware"/>
|
||||
<th class="column">
|
||||
&aboutSupport.securitySoftwareAntiSpyware;
|
||||
</th>
|
||||
|
||||
<td id="security-software-antispyware">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="security-software-firewall"/>
|
||||
<th class="column">
|
||||
&aboutSupport.securitySoftwareFirewall;
|
||||
</th>
|
||||
|
||||
<td id="security-software-firewall">
|
||||
</td>
|
||||
|
@ -312,12 +415,16 @@
|
|||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="graphics-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.graphicsTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody id="graphics-features-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-features-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsFeaturesTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
|
@ -326,85 +433,141 @@
|
|||
|
||||
<tbody id="graphics-gpu-1-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-gpu1-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsGPU1Title;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-gpu-2-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-gpu2-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsGPU2Title;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-diagnostics-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-diagnostics-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsDiagnosticsTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-decisions-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-decision-log-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsDecisionLogTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-crashguards-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-crash-guards-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsCrashGuardsTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-workarounds-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-workarounds-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsWorkaroundsTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="graphics-failures-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="graphics-failure-log-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.graphicsFailureLogTitle;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="media-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.mediaTitle;
|
||||
</h2>
|
||||
<table>
|
||||
<tbody id="media-info-tbody">
|
||||
</tbody>
|
||||
|
||||
<tbody id="media-output-devices-tbody">
|
||||
<tr>
|
||||
<th colspan="9" class="title-column" data-l10n-id="media-output-devices-title"/>
|
||||
<th colspan="9" class="title-column">
|
||||
&aboutSupport.mediaOutputDevicesTitle;
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th data-l10n-id="media-device-name"/>
|
||||
<th data-l10n-id="media-device-group"/>
|
||||
<th data-l10n-id="media-device-vendor"/>
|
||||
<th data-l10n-id="media-device-state"/>
|
||||
<th data-l10n-id="media-device-preferred"/>
|
||||
<th data-l10n-id="media-device-format"/>
|
||||
<th data-l10n-id="media-device-channels"/>
|
||||
<th data-l10n-id="media-device-rate"/>
|
||||
<th data-l10n-id="media-device-latency"/>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceName;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceGroup;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceVendor;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceState;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDevicePreferred;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceFormat;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceChannels;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceRate;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceLatency;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tbody id="media-input-devices-tbody">
|
||||
<tr>
|
||||
<th colspan="9" class="title-column" data-l10n-id="media-input-devices-title"/>
|
||||
<th colspan="9" class="title-column">
|
||||
&aboutSupport.mediaInputDevicesTitle;
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th data-l10n-id="media-device-name"/>
|
||||
<th data-l10n-id="media-device-group"/>
|
||||
<th data-l10n-id="media-device-vendor"/>
|
||||
<th data-l10n-id="media-device-state"/>
|
||||
<th data-l10n-id="media-device-preferred"/>
|
||||
<th data-l10n-id="media-device-format"/>
|
||||
<th data-l10n-id="media-device-channels"/>
|
||||
<th data-l10n-id="media-device-rate"/>
|
||||
<th data-l10n-id="media-device-latency"/>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceName;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceGroup;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceVendor;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceState;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDevicePreferred;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceFormat;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceChannels;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceRate;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.mediaDeviceLatency;
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
|
@ -412,13 +575,19 @@
|
|||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="modified-key-prefs-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.modifiedKeyPrefsTitle;
|
||||
</h2>
|
||||
|
||||
<table class="prefs-table">
|
||||
<thead class="no-copy">
|
||||
<th class="name" data-l10n-id="modified-prefs-name"/>
|
||||
<th class="name">
|
||||
&aboutSupport.modifiedPrefsName;
|
||||
</th>
|
||||
|
||||
<th class="value" data-l10n-id="modified-prefs-value"/>
|
||||
<th class="value">
|
||||
&aboutSupport.modifiedPrefsValue;
|
||||
</th>
|
||||
</thead>
|
||||
|
||||
<tbody id="prefs-tbody">
|
||||
|
@ -426,21 +595,25 @@
|
|||
</table>
|
||||
|
||||
<section id="prefs-user-js-section" class="hidden no-copy">
|
||||
<h3 data-l10n-id="user-js-title"/>
|
||||
<p data-l10n-id="user-js-description">
|
||||
<a id="prefs-user-js-link" data-l10n-name="user-js-link"></a>
|
||||
</p>
|
||||
<h3>&aboutSupport.userJSTitle;</h3>
|
||||
<p>&aboutSupport.userJSDescription;</p>
|
||||
</section>
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="locked-key-prefs-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.lockedKeyPrefsTitle;
|
||||
</h2>
|
||||
|
||||
<table class="prefs-table">
|
||||
<thead class="no-copy">
|
||||
<th class="name" data-l10n-id="locked-prefs-name"/>
|
||||
<th class="name">
|
||||
&aboutSupport.lockedPrefsName;
|
||||
</th>
|
||||
|
||||
<th class="value" data-l10n-id="locked-prefs-value"/>
|
||||
<th class="value">
|
||||
&aboutSupport.lockedPrefsValue;
|
||||
</th>
|
||||
</thead>
|
||||
|
||||
<tbody id="locked-prefs-tbody">
|
||||
|
@ -450,14 +623,20 @@
|
|||
#ifndef ANDROID
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<h2 class="major-section" data-l10n-id="place-database-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.placeDatabaseTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tr class="no-copy">
|
||||
<th class="column" data-l10n-id="place-database-integrity"/>
|
||||
<th class="column">
|
||||
&aboutSupport.placeDatabaseIntegrity;
|
||||
</th>
|
||||
|
||||
<td>
|
||||
<button id="verify-place-integrity-button" data-l10n-id="place-database-verify-integrity"/>
|
||||
<button id="verify-place-integrity-button">
|
||||
&aboutSupport.placeDatabaseVerifyIntegrity;
|
||||
</button>
|
||||
<pre id="verify-place-result" class="hidden no-copy"></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -465,12 +644,16 @@
|
|||
#endif
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
<h2 class="major-section" data-l10n-id="js-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.jsTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="js-incremental-gc"/>
|
||||
<th class="column">
|
||||
&aboutSupport.jsIncrementalGC;
|
||||
</th>
|
||||
|
||||
<td id="javascript-incremental-gc">
|
||||
</td>
|
||||
|
@ -479,32 +662,42 @@
|
|||
</table>
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
<h2 class="major-section" data-l10n-id="a11y-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.a11yTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="a11y-activated"/>
|
||||
<th class="column">
|
||||
&aboutSupport.a11yActivated;
|
||||
</th>
|
||||
|
||||
<td id="a11y-activated">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="a11y-force-disabled"/>
|
||||
<th class="column">
|
||||
&aboutSupport.a11yForceDisabled;
|
||||
</th>
|
||||
|
||||
<td id="a11y-force-disabled">
|
||||
</td>
|
||||
</tr>
|
||||
#if defined(XP_WIN)
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="a11y-handler-used"/>
|
||||
<th class="column">
|
||||
&aboutSupport.a11yHandlerUsed;
|
||||
</th>
|
||||
|
||||
<td id="a11y-handler-used">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="a11y-instantiator"/>
|
||||
<th class="column">
|
||||
&aboutSupport.a11yInstantiator;
|
||||
</th>
|
||||
|
||||
<td id="a11y-instantiator">
|
||||
</td>
|
||||
|
@ -514,7 +707,9 @@
|
|||
</table>
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
<h2 class="major-section" data-l10n-id="library-version-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.libraryVersionsTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody id="libversions-tbody">
|
||||
|
@ -524,7 +719,9 @@
|
|||
<!-- - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
#if defined(MOZ_SANDBOX)
|
||||
<h2 class="major-section" id="sandbox" data-l10n-id="sandbox-title"/>
|
||||
<h2 class="major-section" id="sandbox">
|
||||
&aboutSupport.sandboxTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody id="sandbox-tbody">
|
||||
|
@ -532,17 +729,31 @@
|
|||
</table>
|
||||
|
||||
#if defined(XP_LINUX)
|
||||
<h4 data-l10n-id="sandbox-sys-call-log-title"/>
|
||||
<h4>&aboutSupport.sandboxSyscallLogTitle;</h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-l10n-id="sandbox-sys-call-index"/>
|
||||
<th data-l10n-id="sandbox-sys-call-age"/>
|
||||
<th data-l10n-id="sandbox-sys-call-pid"/>
|
||||
<th data-l10n-id="sandbox-sys-call-tid"/>
|
||||
<th data-l10n-id="sandbox-sys-call-proc-type"/>
|
||||
<th data-l10n-id="sandbox-sys-call-number"/>
|
||||
<th id="sandbox-syscalls-argshead" data-l10n-id="sandbox-sys-call-args"/>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallIndex;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallAge;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallPID;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallTID;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallProcType;
|
||||
</th>
|
||||
<th>
|
||||
&aboutSupport.sandboxSyscallNumber;
|
||||
</th>
|
||||
<th id="sandbox-syscalls-argshead">
|
||||
&aboutSupport.sandboxSyscallArgs;
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="sandbox-syscalls-tbody">
|
||||
|
@ -551,50 +762,70 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
<h2 class="major-section" data-l10n-id="intl-title"/>
|
||||
<h2 class="major-section">
|
||||
&aboutSupport.intlTitle;
|
||||
</h2>
|
||||
|
||||
<table>
|
||||
<tbody id="intl-localeservice-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="intl-app-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.intlAppTitle;
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-locales-requested"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlLocalesRequested;
|
||||
</th>
|
||||
<td id="intl-locale-requested">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-locales-available"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlLocalesAvailable;
|
||||
</th>
|
||||
<td id="intl-locale-available">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-locales-supported"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlLocalesSupported;
|
||||
</th>
|
||||
<td id="intl-locale-supported">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-regional-prefs"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlRegionalPrefs;
|
||||
</th>
|
||||
<td id="intl-locale-regionalprefs">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-locales-default"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlLocalesDefault;
|
||||
</th>
|
||||
<td id="intl-locale-default">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody id="intl-ospreferences-tbody">
|
||||
<tr>
|
||||
<th colspan="2" class="title-column" data-l10n-id="intl-os-title"/>
|
||||
<th colspan="2" class="title-column">
|
||||
&aboutSupport.intlOSTitle;
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-os-prefs-system-locales"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlOSPrefsSystemLocales;
|
||||
</th>
|
||||
<td id="intl-osprefs-systemlocales">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="column" data-l10n-id="intl-regional-prefs"/>
|
||||
<th class="column">
|
||||
&aboutSupport.intlRegionalPrefs;
|
||||
</th>
|
||||
<td id="intl-osprefs-regionalprefs">
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
<!-- 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/. -->
|
||||
|
||||
<!ENTITY aboutSupport.pageTitle "Troubleshooting Information">
|
||||
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.pageSubtitle): don't change the 'supportLink' id. -->
|
||||
<!ENTITY aboutSupport.pageSubtitle "
|
||||
This page contains technical information that might be useful when you’re
|
||||
trying to solve a problem. If you are looking for answers to common questions
|
||||
about &brandShortName;, check out our <a id='supportLink'>support website</a>.
|
||||
">
|
||||
|
||||
<!ENTITY aboutSupport.crashes.title "Crash Reports">
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.crashes.id):
|
||||
This is likely the same like id.heading in aboutcrashes.ftl. -->
|
||||
<!ENTITY aboutSupport.crashes.id "Report ID">
|
||||
<!ENTITY aboutSupport.crashes.sendDate "Submitted">
|
||||
<!ENTITY aboutSupport.crashes.allReports "All Crash Reports">
|
||||
<!ENTITY aboutSupport.crashes.noConfig "This application has not been configured to display crash reports.">
|
||||
|
||||
<!ENTITY aboutSupport.extensionsTitle "Extensions">
|
||||
<!ENTITY aboutSupport.extensionName "Name">
|
||||
<!ENTITY aboutSupport.extensionEnabled "Enabled">
|
||||
<!ENTITY aboutSupport.extensionVersion "Version">
|
||||
<!ENTITY aboutSupport.extensionId "ID">
|
||||
|
||||
<!ENTITY aboutSupport.securitySoftwareTitle "Security Software">
|
||||
<!ENTITY aboutSupport.securitySoftwareType "Type">
|
||||
<!ENTITY aboutSupport.securitySoftwareName "Name">
|
||||
<!ENTITY aboutSupport.securitySoftwareAntivirus "Antivirus">
|
||||
<!ENTITY aboutSupport.securitySoftwareAntiSpyware "Antispyware">
|
||||
<!ENTITY aboutSupport.securitySoftwareFirewall "Firewall">
|
||||
|
||||
<!ENTITY aboutSupport.featuresTitle "&brandShortName; Features">
|
||||
<!ENTITY aboutSupport.featureName "Name">
|
||||
<!ENTITY aboutSupport.featureVersion "Version">
|
||||
<!ENTITY aboutSupport.featureId "ID">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsTitle "Application Basics">
|
||||
<!ENTITY aboutSupport.appBasicsName "Name">
|
||||
<!ENTITY aboutSupport.appBasicsVersion "Version">
|
||||
<!ENTITY aboutSupport.appBasicsBuildID "Build ID">
|
||||
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.appBasicsUpdateChannel, aboutSupport.appBasicsUpdateHistory, aboutSupport.appBasicsShowUpdateHistory):
|
||||
"Update" is a noun here, not a verb. -->
|
||||
<!ENTITY aboutSupport.appBasicsUpdateChannel "Update Channel">
|
||||
<!ENTITY aboutSupport.appBasicsUpdateHistory "Update History">
|
||||
<!ENTITY aboutSupport.appBasicsShowUpdateHistory "Show Update History">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsProfileDir "Profile Directory">
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.appBasicsProfileDirWinMac):
|
||||
This is the Windows- and Mac-specific variant of aboutSupport.appBasicsProfileDir.
|
||||
Windows/Mac use the term "Folder" instead of "Directory" -->
|
||||
<!ENTITY aboutSupport.appBasicsProfileDirWinMac "Profile Folder">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsEnabledPlugins "Enabled Plugins">
|
||||
<!ENTITY aboutSupport.appBasicsBuildConfig "Build Configuration">
|
||||
<!ENTITY aboutSupport.appBasicsUserAgent "User Agent">
|
||||
<!ENTITY aboutSupport.appBasicsOS "OS">
|
||||
<!ENTITY aboutSupport.appBasicsMemoryUse "Memory Use">
|
||||
<!ENTITY aboutSupport.appBasicsPerformance "Performance">
|
||||
|
||||
<!-- LOCALIZATION NOTE the term "Service Workers" should not be translated. -->
|
||||
<!ENTITY aboutSupport.appBasicsServiceWorkers "Registered Service Workers">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsProfiles "Profiles">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsMultiProcessSupport "Multiprocess Windows">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsProcessCount "Web Content Processes">
|
||||
|
||||
<!ENTITY aboutSupport.enterprisePolicies "Enterprise Policies">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsKeyGoogle "Google Key">
|
||||
<!ENTITY aboutSupport.appBasicsKeyMozilla "Mozilla Location Service Key">
|
||||
|
||||
<!ENTITY aboutSupport.appBasicsSafeMode "Safe Mode">
|
||||
|
||||
<!ENTITY aboutSupport.showDir.label "Open Directory">
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.showMac.label): This is the Mac-specific
|
||||
variant of aboutSupport.showDir.label. This allows us to use the preferred
|
||||
"Finder" terminology on Mac. -->
|
||||
<!ENTITY aboutSupport.showMac.label "Show in Finder">
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.showWin2.label): This is the Windows-specific
|
||||
variant of aboutSupport.showDir.label. -->
|
||||
<!ENTITY aboutSupport.showWin2.label "Open Folder">
|
||||
|
||||
<!ENTITY aboutSupport.modifiedKeyPrefsTitle "Important Modified Preferences">
|
||||
<!ENTITY aboutSupport.modifiedPrefsName "Name">
|
||||
<!ENTITY aboutSupport.modifiedPrefsValue "Value">
|
||||
|
||||
<!-- LOCALIZATION NOTE (aboutSupport.userJSTitle, aboutSupport.userJSDescription): user.js is the name of the preference override file being checked. -->
|
||||
<!ENTITY aboutSupport.userJSTitle "user.js Preferences">
|
||||
<!ENTITY aboutSupport.userJSDescription "Your profile folder contains a <a id='prefs-user-js-link'>user.js file</a>, which includes preferences that were not created by &brandShortName;.">
|
||||
|
||||
<!ENTITY aboutSupport.lockedKeyPrefsTitle "Important Locked Preferences">
|
||||
<!ENTITY aboutSupport.lockedPrefsName "Name">
|
||||
<!ENTITY aboutSupport.lockedPrefsValue "Value">
|
||||
|
||||
<!ENTITY aboutSupport.graphicsTitle "Graphics">
|
||||
|
||||
<!ENTITY aboutSupport.placeDatabaseTitle "Places Database">
|
||||
<!ENTITY aboutSupport.placeDatabaseIntegrity "Integrity">
|
||||
<!ENTITY aboutSupport.placeDatabaseVerifyIntegrity "Verify Integrity">
|
||||
|
||||
<!ENTITY aboutSupport.jsTitle "JavaScript">
|
||||
<!ENTITY aboutSupport.jsIncrementalGC "Incremental GC">
|
||||
|
||||
<!ENTITY aboutSupport.a11yTitle "Accessibility">
|
||||
<!ENTITY aboutSupport.a11yActivated "Activated">
|
||||
<!ENTITY aboutSupport.a11yForceDisabled "Prevent Accessibility">
|
||||
<!ENTITY aboutSupport.a11yHandlerUsed "Accessible Handler Used">
|
||||
<!ENTITY aboutSupport.a11yInstantiator "Accessibility Instantiator">
|
||||
|
||||
<!ENTITY aboutSupport.libraryVersionsTitle "Library Versions">
|
||||
|
||||
<!ENTITY aboutSupport.installationHistoryTitle "Installation History">
|
||||
<!ENTITY aboutSupport.updateHistoryTitle "Update History">
|
||||
|
||||
<!ENTITY aboutSupport.copyTextToClipboard.label "Copy text to clipboard">
|
||||
<!ENTITY aboutSupport.copyRawDataToClipboard.label "Copy raw data to clipboard">
|
||||
|
||||
<!ENTITY aboutSupport.sandboxTitle "Sandbox">
|
||||
<!ENTITY aboutSupport.sandboxSyscallLogTitle "Rejected System Calls">
|
||||
<!ENTITY aboutSupport.sandboxSyscallIndex "#">
|
||||
<!ENTITY aboutSupport.sandboxSyscallAge "Seconds Ago">
|
||||
<!ENTITY aboutSupport.sandboxSyscallPID "PID">
|
||||
<!ENTITY aboutSupport.sandboxSyscallTID "TID">
|
||||
<!ENTITY aboutSupport.sandboxSyscallProcType "Process Type">
|
||||
<!ENTITY aboutSupport.sandboxSyscallNumber "Syscall">
|
||||
<!ENTITY aboutSupport.sandboxSyscallArgs "Arguments">
|
||||
|
||||
<!ENTITY aboutSupport.safeModeTitle "Try Safe Mode">
|
||||
<!ENTITY aboutSupport.restartInSafeMode.label "Restart with Add-ons Disabled…">
|
||||
|
||||
<!ENTITY aboutSupport.graphicsFeaturesTitle "Features">
|
||||
<!ENTITY aboutSupport.graphicsDiagnosticsTitle "Diagnostics">
|
||||
<!ENTITY aboutSupport.graphicsFailureLogTitle "Failure Log">
|
||||
<!ENTITY aboutSupport.graphicsGPU1Title "GPU #1">
|
||||
<!ENTITY aboutSupport.graphicsGPU2Title "GPU #2">
|
||||
<!ENTITY aboutSupport.graphicsDecisionLogTitle "Decision Log">
|
||||
<!ENTITY aboutSupport.graphicsCrashGuardsTitle "Crash Guard Disabled Features">
|
||||
<!ENTITY aboutSupport.graphicsWorkaroundsTitle "Workarounds">
|
||||
|
||||
<!ENTITY aboutSupport.mediaTitle "Media">
|
||||
<!ENTITY aboutSupport.mediaOutputDevicesTitle "Output Devices">
|
||||
<!ENTITY aboutSupport.mediaInputDevicesTitle "Input Devices">
|
||||
<!ENTITY aboutSupport.mediaDeviceName "Name">
|
||||
<!ENTITY aboutSupport.mediaDeviceGroup "Group">
|
||||
<!ENTITY aboutSupport.mediaDeviceVendor "Vendor">
|
||||
<!ENTITY aboutSupport.mediaDeviceState "State">
|
||||
<!ENTITY aboutSupport.mediaDevicePreferred "Preferred">
|
||||
<!ENTITY aboutSupport.mediaDeviceFormat "Format">
|
||||
<!ENTITY aboutSupport.mediaDeviceChannels "Channels">
|
||||
<!ENTITY aboutSupport.mediaDeviceRate "Rate">
|
||||
<!ENTITY aboutSupport.mediaDeviceLatency "Latency">
|
||||
|
||||
<!ENTITY aboutSupport.intlTitle "Internationalization & Localization">
|
||||
<!ENTITY aboutSupport.intlAppTitle "Application Settings">
|
||||
<!ENTITY aboutSupport.intlLocalesRequested "Requested Locales">
|
||||
<!ENTITY aboutSupport.intlLocalesAvailable "Available Locales">
|
||||
<!ENTITY aboutSupport.intlLocalesSupported "App Locales">
|
||||
<!ENTITY aboutSupport.intlLocalesDefault "Default Locale">
|
||||
<!ENTITY aboutSupport.intlOSTitle "Operating System">
|
||||
<!ENTITY aboutSupport.intlOSPrefsSystemLocales "System Locales">
|
||||
<!ENTITY aboutSupport.intlRegionalPrefs "Regional Preferences">
|
|
@ -2,6 +2,39 @@
|
|||
# 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/.
|
||||
|
||||
# LOCALIZATION NOTE (crashesTitle): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of relevant days with crash reports
|
||||
crashesTitle=Crash Reports for the Last #1 Day;Crash Reports for the Last #1 Days
|
||||
|
||||
# LOCALIZATION NOTE (crashesTimeMinutes): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of minutes (between 1 and 59) which have passed since the crash
|
||||
crashesTimeMinutes=#1 minute ago;#1 minutes ago
|
||||
|
||||
# LOCALIZATION NOTE (crashesTimeHours): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of hours (between 1 and 23) which have passed since the crash
|
||||
crashesTimeHours=#1 hour ago;#1 hours ago
|
||||
|
||||
# LOCALIZATION NOTE (crashesTimeDays): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of days (1 or more) which have passed since the crash
|
||||
crashesTimeDays=#1 day ago;#1 days ago
|
||||
|
||||
# LOCALIZATION NOTE (pendingReports): Semi-colon list of plural forms.
|
||||
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of pending crash reports
|
||||
pendingReports=All Crash Reports (including #1 pending crash in the given time range);All Crash Reports (including #1 pending crashes in the given time range)
|
||||
|
||||
# LOCALIZATION NOTE (rawDataCopied) Text displayed in a mobile "Toast" to user when the
|
||||
# raw data is successfully copied to the clipboard via button press.
|
||||
rawDataCopied=Raw data copied to clipboard
|
||||
|
||||
# LOCALIZATION NOTE (textCopied) Text displayed in a mobile "Toast" to user when the
|
||||
# text is successfully copied to the clipboard via button press.
|
||||
textCopied=Text copied to clipboard
|
||||
|
||||
# LOCALIZATION NOTE The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
|
||||
blockedDriver = Blocked for your graphics driver version.
|
||||
|
||||
|
@ -16,3 +49,110 @@ blockedOSVersion = Blocked for your operating system version.
|
|||
|
||||
# LOCALIZATION NOTE The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
|
||||
blockedMismatchedVersion = Blocked for your graphics driver version mismatch between registry and DLL.
|
||||
|
||||
# LOCALIZATION NOTE In the following strings, "Direct2D", "DirectWrite" and "ClearType"
|
||||
# are proper nouns and should not be translated. Feel free to leave english strings if
|
||||
# there are no good translations, these are only used in about:support
|
||||
clearTypeParameters = ClearType Parameters
|
||||
|
||||
compositing = Compositing
|
||||
hardwareH264 = Hardware H264 Decoding
|
||||
mainThreadNoOMTC = main thread, no OMTC
|
||||
yes = Yes
|
||||
no = No
|
||||
# LOCALIZATION NOTE The following strings indicate if an API key has been found.
|
||||
# In some development versions, it's expected for some API keys that they are
|
||||
# not found.
|
||||
found = Found
|
||||
missing = Missing
|
||||
|
||||
gpuDescription = Description
|
||||
gpuVendorID = Vendor ID
|
||||
gpuDeviceID = Device ID
|
||||
gpuSubsysID = Subsys ID
|
||||
gpuDrivers = Drivers
|
||||
gpuRAM = RAM
|
||||
gpuDriverVersion = Driver Version
|
||||
gpuDriverDate = Driver Date
|
||||
gpuActive = Active
|
||||
webgl1WSIInfo = WebGL 1 Driver WSI Info
|
||||
webgl1Renderer = WebGL 1 Driver Renderer
|
||||
webgl1Version = WebGL 1 Driver Version
|
||||
webgl1DriverExtensions = WebGL 1 Driver Extensions
|
||||
webgl1Extensions = WebGL 1 Extensions
|
||||
webgl2WSIInfo = WebGL 2 Driver WSI Info
|
||||
webgl2Renderer = WebGL 2 Driver Renderer
|
||||
webgl2Version = WebGL 2 Driver Version
|
||||
webgl2DriverExtensions = WebGL 2 Driver Extensions
|
||||
webgl2Extensions = WebGL 2 Extensions
|
||||
GPU1 = GPU #1
|
||||
GPU2 = GPU #2
|
||||
blocklistedBug = Blocklisted due to known issues
|
||||
# LOCALIZATION NOTE %1$S will be replaced with a bug number string.
|
||||
bugLink = bug %1$S
|
||||
# LOCALIZATION NOTE %1$S will be replaced with an arbitrary identifier
|
||||
# string that can be searched on DXR/MXR or grepped in the source tree.
|
||||
unknownFailure = Blocklisted; failure code %1$S
|
||||
d3d11layersCrashGuard = D3D11 Compositor
|
||||
d3d11videoCrashGuard = D3D11 Video Decoder
|
||||
d3d9videoCrashGuard = D3D9 Video Decoder
|
||||
glcontextCrashGuard = OpenGL
|
||||
resetOnNextRestart = Reset on Next Restart
|
||||
gpuProcessKillButton = Terminate GPU Process
|
||||
gpuDeviceResetButton = Trigger Device Reset
|
||||
usesTiling = Uses Tiling
|
||||
contentUsesTiling = Uses Tiling (Content)
|
||||
offMainThreadPaintEnabled = Off Main Thread Painting Enabled
|
||||
offMainThreadPaintWorkerCount = Off Main Thread Painting Worker Count
|
||||
|
||||
audioBackend = Audio Backend
|
||||
maxAudioChannels = Max Channels
|
||||
channelLayout = Preferred Channel Layout
|
||||
sampleRate = Preferred Sample Rate
|
||||
|
||||
minLibVersions = Expected minimum version
|
||||
loadedLibVersions = Version in use
|
||||
|
||||
hasSeccompBPF = Seccomp-BPF (System Call Filtering)
|
||||
hasSeccompTSync = Seccomp Thread Synchronization
|
||||
hasUserNamespaces = User Namespaces
|
||||
hasPrivilegedUserNamespaces = User Namespaces for privileged processes
|
||||
canSandboxContent = Content Process Sandboxing
|
||||
canSandboxMedia = Media Plugin Sandboxing
|
||||
contentSandboxLevel = Content Process Sandbox Level
|
||||
effectiveContentSandboxLevel = Effective Content Process Sandbox Level
|
||||
sandboxProcType.content = content
|
||||
sandboxProcType.file = file content
|
||||
sandboxProcType.mediaPlugin = media plugin
|
||||
|
||||
# LOCALIZATION NOTE %1$S and %2$S will be replaced with the number of remote and the total number
|
||||
# of windows, respectively, while %3$S will be replaced with one of the status strings below,
|
||||
# which contains a description of the multi-process preference and status.
|
||||
# Note: multiProcessStatus.3 doesn't exist because status=3 was deprecated.
|
||||
multiProcessWindows = %1$S/%2$S (%3$S)
|
||||
multiProcessStatus.0 = Enabled by user
|
||||
multiProcessStatus.1 = Enabled by default
|
||||
multiProcessStatus.2 = Disabled
|
||||
multiProcessStatus.4 = Disabled by accessibility tools
|
||||
multiProcessStatus.5 = Disabled by lack of graphics hardware acceleration on Mac OS X
|
||||
multiProcessStatus.6 = Disabled by unsupported text input
|
||||
multiProcessStatus.7 = Disabled by add-ons
|
||||
multiProcessStatus.8 = Disabled forcibly
|
||||
multiProcessStatus.unknown = Unknown status
|
||||
|
||||
asyncPanZoom = Asynchronous Pan/Zoom
|
||||
apzNone = none
|
||||
wheelEnabled = wheel input enabled
|
||||
touchEnabled = touch input enabled
|
||||
dragEnabled = scrollbar drag enabled
|
||||
keyboardEnabled = keyboard enabled
|
||||
autoscrollEnabled = autoscroll enabled
|
||||
|
||||
# LOCALIZATION NOTE %1 will be replaced with the key of a preference.
|
||||
wheelWarning = async wheel input disabled due to unsupported pref: %S
|
||||
touchWarning = async touch input disabled due to unsupported pref: %S
|
||||
|
||||
# LOCALIZATION NOTE Strings representing the status of the Enterprise Policies engine.
|
||||
policies.inactive = Inactive
|
||||
policies.active = Active
|
||||
policies.error = Error
|
||||
|
|
|
@ -1,276 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
page-title = Troubleshooting Information
|
||||
page-subtitle =
|
||||
This page contains technical information that might be useful when you’re
|
||||
trying to solve a problem. If you are looking for answers to common questions
|
||||
about { -brand-short-name }, check out our <a data-l10n-name="support-link">support website</a>.
|
||||
|
||||
crashes-title = Crash Reports
|
||||
crashes-id = Report ID
|
||||
crashes-send-date = Submitted
|
||||
crashes-all-reports = All Crash Reports
|
||||
crashes-no-config = This application has not been configured to display crash reports.
|
||||
extensions-title = Extensions
|
||||
extensions-name = Name
|
||||
extensions-enabled = Enabled
|
||||
extensions-version = Version
|
||||
extensions-id = ID
|
||||
security-software-title = Security Software
|
||||
security-software-type = Type
|
||||
security-software-name = Name
|
||||
security-software-antivirus = Antivirus
|
||||
security-software-antispyware = Antispyware
|
||||
security-software-firewall = Firewall
|
||||
features-title = { -brand-short-name } Features
|
||||
features-name = Name
|
||||
features-version = Version
|
||||
features-id = ID
|
||||
app-basics-title = Application Basics
|
||||
app-basics-name = Name
|
||||
app-basics-version = Version
|
||||
app-basics-build-id = Build ID
|
||||
app-basics-update-channel = Update Channel
|
||||
app-basics-update-history = Update History
|
||||
app-basics-show-update-history = Show Update History
|
||||
app-basics-profile-dir =
|
||||
{ PLATFORM() ->
|
||||
[linux] Profile Directory
|
||||
*[other] Profile Folder
|
||||
}
|
||||
app-basics-enabled-plugins = Enabled Plugins
|
||||
app-basics-build-config = Build Configuration
|
||||
app-basics-user-agent = User Agent
|
||||
app-basics-os = OS
|
||||
app-basics-memory-use = Memory Use
|
||||
app-basics-performance = Performance
|
||||
app-basics-service-workers = Registered Service Workers
|
||||
app-basics-profiles = Profiles
|
||||
app-basics-multi-process-support = Multiprocess Windows
|
||||
app-basics-process-count = Web Content Processes
|
||||
app-basics-enterprise-policies = Enterprise Policies
|
||||
app-basics-key-google = Google Key
|
||||
app-basics-key-mozilla = Mozilla Location Service Key
|
||||
app-basics-safe-mode = Safe Mode
|
||||
show-dir-label =
|
||||
{ PLATFORM() ->
|
||||
[macos] Show in Finder
|
||||
[windows] Open Folder
|
||||
*[other] Open Directory
|
||||
}
|
||||
modified-key-prefs-title = Important Modified Preferences
|
||||
modified-prefs-name = Name
|
||||
modified-prefs-value = Value
|
||||
user-js-title = user.js Preferences
|
||||
user-js-description = Your profile folder contains a <a data-l10n-name="user-js-link">user.js file</a>, which includes preferences that were not created by { -brand-short-name }.
|
||||
locked-key-prefs-title = Important Locked Preferences
|
||||
locked-prefs-name = Name
|
||||
locked-prefs-value = Value
|
||||
graphics-title = Graphics
|
||||
graphics-features-title = Features
|
||||
graphics-diagnostics-title = Diagnostics
|
||||
graphics-failure-log-title = Failure Log
|
||||
graphics-gpu1-title = GPU #1
|
||||
graphics-gpu2-title = GPU #2
|
||||
graphics-decision-log-title = Decision Log
|
||||
graphics-crash-guards-title = Crash Guard Disabled Features
|
||||
graphics-workarounds-title = Workarounds
|
||||
place-database-title = Places Database
|
||||
place-database-integrity = Integrity
|
||||
place-database-verify-integrity = Verify Integrity
|
||||
js-title = JavaScript
|
||||
js-incremental-gc = Incremental GC
|
||||
a11y-title = Accessibility
|
||||
a11y-activated = Activated
|
||||
a11y-force-disabled = Prevent Accessibility
|
||||
a11y-handler-used = Accessible Handler Used
|
||||
a11y-instantiator = Accessibility Instantiator
|
||||
library-version-title = Library Versions
|
||||
copy-text-to-clipboard-label = Copy text to clipboard
|
||||
copy-raw-data-to-clipboard-label = Copy raw data to clipboard
|
||||
sandbox-title = Sandbox
|
||||
sandbox-sys-call-log-title = Rejected System Calls
|
||||
sandbox-sys-call-index = #
|
||||
sandbox-sys-call-age = Seconds Ago
|
||||
sandbox-sys-call-pid = PID
|
||||
sandbox-sys-call-tid = TID
|
||||
sandbox-sys-call-proc-type = Process Type
|
||||
sandbox-sys-call-number = Syscall
|
||||
sandbox-sys-call-args = Arguments
|
||||
safe-mode-title = Try Safe Mode
|
||||
restart-in-safe-mode-label = Restart with Add-ons Disabled…
|
||||
media-title = Media
|
||||
media-output-devices-title = Output Devices
|
||||
media-input-devices-title = Input Devices
|
||||
media-device-name = Name
|
||||
media-device-group = Group
|
||||
media-device-vendor = Vendor
|
||||
media-device-state = State
|
||||
media-device-preferred = Preferred
|
||||
media-device-format = Format
|
||||
media-device-channels = Channels
|
||||
media-device-rate = Rate
|
||||
media-device-latency = Latency
|
||||
intl-title = Internationalization & Localization
|
||||
intl-app-title = Application Settings
|
||||
intl-locales-requested = Requested Locales
|
||||
intl-locales-available = Available Locales
|
||||
intl-locales-supported = App Locales
|
||||
intl-locales-default = Default Locale
|
||||
intl-os-title = Operating System
|
||||
intl-os-prefs-system-locales = System Locales
|
||||
intl-regional-prefs = Regional Preferences
|
||||
|
||||
# Variables
|
||||
# $days (Integer) - Number of days of crashes to log
|
||||
report-crash-for-days =
|
||||
{ $days ->
|
||||
[one] Crash Reports for the Last { $days } Day
|
||||
*[other] Crash Reports for the Last { $days } Days
|
||||
}
|
||||
|
||||
# Variables
|
||||
# $minutes (integer) - Number of minutes since crash
|
||||
crashes-time-minutes =
|
||||
{ $minutes ->
|
||||
[one] { $minutes } minute ago
|
||||
*[other] { $minutes } minutes ago
|
||||
}
|
||||
|
||||
# Variables
|
||||
# $hours (integer) - Number of hours since crash
|
||||
crashes-time-hours =
|
||||
{ $hours ->
|
||||
[one] { $hours } hour ago
|
||||
*[other] { $hours } hours ago
|
||||
}
|
||||
|
||||
# Variables
|
||||
# $days (integer) - Number of days since crash
|
||||
crashes-time-days =
|
||||
{ $days ->
|
||||
[one] { $days } day ago
|
||||
*[other] { $days } days ago
|
||||
}
|
||||
|
||||
# Variables
|
||||
# $reports (integer) - Number of pending reports
|
||||
pending-reports =
|
||||
{ $reports ->
|
||||
[one] All Crash Reports (including { $reports } pending crash in the given time range)
|
||||
*[other] All Crash Reports (including { $reports } pending crashes in the given time range)
|
||||
}
|
||||
|
||||
raw-data-copied = Raw data copied to clipboard
|
||||
text-copied = Text copied to clipboard
|
||||
|
||||
# "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
|
||||
# there are no good translations, these are only used in about:support
|
||||
clear-type-parameters = ClearType Parameters
|
||||
|
||||
compositing = Compositing
|
||||
hardware-h264 = Hardware H264 Decoding
|
||||
main-thread-no-omtc = main thread, no OMTC
|
||||
yes = Yes
|
||||
no = No
|
||||
|
||||
## The following strings indicate if an API key has been found.
|
||||
## In some development versions, it's expected for some API keys that they are
|
||||
## not found.
|
||||
found = Found
|
||||
missing = Missing
|
||||
|
||||
gpu-description = Description
|
||||
gpu-vendor-id = Vendor ID
|
||||
gpu-device-id = Device ID
|
||||
gpu-subsys-id = Subsys ID
|
||||
gpu-drivers = Drivers
|
||||
gpu-ram = RAM
|
||||
gpu-driver-version = Driver Version
|
||||
gpu-driver-date = Driver Date
|
||||
gpu-active = Active
|
||||
webgl1-wsiinfo = WebGL 1 Driver WSI Info
|
||||
webgl1-renderer = WebGL 1 Driver Renderer
|
||||
webgl1-version = WebGL 1 Driver Version
|
||||
webgl1-driver-extensions = WebGL 1 Driver Extensions
|
||||
webgl1-extensions = WebGL 1 Extensions
|
||||
webgl2-wsiinfo = WebGL 2 Driver WSI Info
|
||||
webgl2-renderer = WebGL 2 Driver Renderer
|
||||
webgl2-version = WebGL 2 Driver Version
|
||||
webgl2-driver-extensions = WebGL 2 Driver Extensions
|
||||
webgl2-extensions = WebGL 2 Extensions
|
||||
blocklisted-bug = Blocklisted due to known issues
|
||||
|
||||
# Variables
|
||||
# $bugNumber (string) - String of bug number from Bugzilla
|
||||
bug-link = bug { $bugNumber }
|
||||
|
||||
# Variables
|
||||
# $failureCode (string) - String that can be searched in the source tree.
|
||||
unknown-failure = Blocklisted; failure code { $failureCode }
|
||||
|
||||
d3d11layers-crash-guard = D3D11 Compositor
|
||||
d3d11video-crash-guard = D3D11 Video Decoder
|
||||
d3d9video-crash-buard = D3D9 Video Decoder
|
||||
glcontext-crash-guard = OpenGL
|
||||
|
||||
reset-on-next-restart = Reset on Next Restart
|
||||
gpu-process-kill-button = Terminate GPU Process
|
||||
gpu-device-reset-button = Trigger Device Reset
|
||||
uses-tiling = Uses Tiling
|
||||
content-uses-tiling = Uses Tiling (Content)
|
||||
off-main-thread-paint-enabled = Off Main Thread Painting Enabled
|
||||
off-main-thread-paint-worker-count = Off Main Thread Painting Worker Count
|
||||
|
||||
audio-backend = Audio Backend
|
||||
max-audio-channels = Max Channels
|
||||
channel-layout = Preferred Channel Layout
|
||||
sample-rate = Preferred Sample Rate
|
||||
|
||||
min-lib-versions = Expected minimum version
|
||||
loaded-lib-versions = Version in use
|
||||
|
||||
has-seccomp-bpf = Seccomp-BPF (System Call Filtering)
|
||||
has-seccomp-tsync = Seccomp Thread Synchronization
|
||||
has-user-namespaces = User Namespaces
|
||||
has-privileged-user-namespaces = User Namespaces for privileged processes
|
||||
can-sandbox-content = Content Process Sandboxing
|
||||
can-sandbox-media = Media Plugin Sandboxing
|
||||
content-sandbox-level = Content Process Sandbox Level
|
||||
effective-content-sandbox-level = Effective Content Process Sandbox Level
|
||||
sandbox-proc-type-content = content
|
||||
sandbox-proc-type-file = file content
|
||||
sandbox-proc-type-media-plugin = media plugin
|
||||
|
||||
# Variables
|
||||
# $remoteWindows (integer) - Number of remote windows
|
||||
# $totalWindows (integer) - Number of total windows
|
||||
multi-process-windows = { $remoteWindows }/{ $totalWindows }
|
||||
multi-process-status-0 = Enabled by user
|
||||
multi-process-status-1 = Enabled by default
|
||||
multi-process-status-2 = Disabled
|
||||
multi-process-status-4 = Disabled by accessibility tools
|
||||
multi-process-status-6 = Disabled by unsupported text input
|
||||
multi-process-status-7 = Disabled by add-ons
|
||||
multi-process-status-8 = Disabled forcibly
|
||||
multi-process-status-unknown = Unknown status
|
||||
|
||||
async-pan-zoom = Asynchronous Pan/Zoom
|
||||
apz-none = none
|
||||
wheel-enabled = wheel input enabled
|
||||
touch-enabled = touch input enabled
|
||||
drag-enabled = scrollbar drag enabled
|
||||
keyboard-enabled = keyboard enabled
|
||||
autoscroll-enabled = autoscroll enabled
|
||||
|
||||
## Variables
|
||||
## $preferenceKey (string) - String ID of preference
|
||||
wheel-warning = async wheel input disabled due to unsupported pref: { $preferenceKey }
|
||||
touch-warning = async touch input disabled due to unsupported pref: { $preferenceKey }
|
||||
|
||||
## Strings representing the status of the Enterprise Policies engine.
|
||||
policies-inactive = Inactive
|
||||
policies-active = Active
|
||||
policies-error = Error
|
|
@ -12,6 +12,7 @@
|
|||
locale/@AB_CD@/global/aboutReader.properties (%chrome/global/aboutReader.properties)
|
||||
locale/@AB_CD@/global/aboutRights.dtd (%chrome/global/aboutRights.dtd)
|
||||
locale/@AB_CD@/global/aboutStudies.properties (%chrome/global/aboutStudies.properties)
|
||||
locale/@AB_CD@/global/aboutSupport.dtd (%chrome/global/aboutSupport.dtd)
|
||||
locale/@AB_CD@/global/aboutSupport.properties (%chrome/global/aboutSupport.properties)
|
||||
locale/@AB_CD@/global/aboutTelemetry.dtd (%chrome/global/aboutTelemetry.dtd)
|
||||
locale/@AB_CD@/global/aboutTelemetry.properties (%chrome/global/aboutTelemetry.properties)
|
||||
|
|
Загрузка…
Ссылка в новой задаче