Update On Thu Nov 24 19:49:15 CET 2022
This commit is contained in:
parent
f01fc410ae
commit
026b94f1af
1945 changed files with 125255 additions and 50193 deletions
2
CLOBBER
2
CLOBBER
|
@ -23,4 +23,4 @@
|
|||
# don't change CLOBBER for WebIDL changes any more.
|
||||
|
||||
|
||||
Modified build files in third_party/libwebrtc - Bug 1790097 - Vendor libwebrtc from c05a1be5b4
|
||||
Bug 1792775 - Update to ICU 72 requires clobber
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
|
||||
import buildconfig
|
||||
import mozpack.path as mozpath
|
||||
|
||||
from xpidl import xpidl
|
||||
|
||||
# Load the webidl configuration file.
|
||||
|
|
|
@ -73,6 +73,9 @@ pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extensi
|
|||
// Enable extensionStorage storage actor by default
|
||||
pref("devtools.storage.extensionStorage.enabled", true);
|
||||
|
||||
// Enable the unified extensions UI by default.
|
||||
pref("extensions.unifiedExtensions.enabled", true);
|
||||
|
||||
// Dictionary download preference
|
||||
pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/");
|
||||
|
||||
|
|
|
@ -164,10 +164,6 @@
|
|||
|
||||
#include fullscreen-and-pointerlock.inc.xhtml
|
||||
|
||||
<vbox id="browser-bottombox" layer="true">
|
||||
<!-- gNotificationBox will be added here lazily. -->
|
||||
</vbox>
|
||||
|
||||
<html:div id="a11y-announcement" role="alert"/>
|
||||
|
||||
<!-- Put it at the very end to make sure it's not covered by anything. -->
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</vbox>
|
||||
<hbox class="tab-content" align="center">
|
||||
<stack class="tab-icon-stack">
|
||||
<hbox class="tab-throbber" layer="true"/>
|
||||
<hbox class="tab-throbber"/>
|
||||
<hbox class="tab-icon-pending"/>
|
||||
<html:img class="tab-icon-image" role="presentation" decoding="sync" />
|
||||
<image class="tab-sharing-icon-overlay" role="presentation"/>
|
||||
|
|
|
@ -5,22 +5,18 @@
|
|||
<hbox class="titlebar-buttonbox-container" skipintoolbarset="true">
|
||||
<hbox class="titlebar-buttonbox titlebar-color">
|
||||
<toolbarbutton class="titlebar-button titlebar-min"
|
||||
titlebar-btn="min"
|
||||
oncommand="window.minimize();"
|
||||
data-l10n-id="browser-window-minimize-button"
|
||||
/>
|
||||
<toolbarbutton class="titlebar-button titlebar-max"
|
||||
titlebar-btn="max"
|
||||
oncommand="window.maximize();"
|
||||
data-l10n-id="browser-window-maximize-button"
|
||||
/>
|
||||
<toolbarbutton class="titlebar-button titlebar-restore"
|
||||
titlebar-btn="max"
|
||||
oncommand="window.fullScreen ? BrowserFullScreen() : window.restore();"
|
||||
data-l10n-id="browser-window-restore-down-button"
|
||||
/>
|
||||
<toolbarbutton class="titlebar-button titlebar-close"
|
||||
titlebar-btn="close"
|
||||
command="cmd_closeWindow"
|
||||
data-l10n-id="browser-window-close-button"
|
||||
/>
|
||||
|
|
|
@ -124,7 +124,6 @@ const clickUnifiedExtensionsItem = async (
|
|||
await popupHidden;
|
||||
};
|
||||
|
||||
let extensionsCreated = 0;
|
||||
const createExtensions = (
|
||||
arrayOfManifestData,
|
||||
{ useAddonManager = true, incognitoOverride } = {}
|
||||
|
@ -133,11 +132,6 @@ const createExtensions = (
|
|||
ExtensionTestUtils.loadExtension({
|
||||
manifest: {
|
||||
name: "default-extension-name",
|
||||
browser_specific_settings: {
|
||||
// We prefix the ID with a timestamp to have unique extension IDs
|
||||
// between different test files.
|
||||
gecko: { id: `${Date.now()}@ext-${extensionsCreated++}` },
|
||||
},
|
||||
...manifestData,
|
||||
},
|
||||
useAddonManager: useAddonManager ? "temporary" : undefined,
|
||||
|
|
|
@ -165,7 +165,6 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "MultiStageAboutWelcome": () => (/* binding */ MultiStageAboutWelcome),
|
||||
/* harmony export */ "SecondaryCTA": () => (/* binding */ SecondaryCTA),
|
||||
/* harmony export */ "OnboardingVideo": () => (/* binding */ OnboardingVideo),
|
||||
/* harmony export */ "StepsIndicator": () => (/* binding */ StepsIndicator),
|
||||
/* harmony export */ "WelcomeScreen": () => (/* binding */ WelcomeScreen)
|
||||
/* harmony export */ });
|
||||
|
@ -175,7 +174,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
|
||||
/* harmony import */ var _MultiStageProtonScreen__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
|
||||
/* harmony import */ var _LanguageSwitcher__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11);
|
||||
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
|
||||
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
|
||||
/* 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/. */
|
||||
|
@ -382,31 +381,6 @@ const SecondaryCTA = props => {
|
|||
onClick: props.handleAction
|
||||
})));
|
||||
};
|
||||
const OnboardingVideo = props => {
|
||||
const vidUrl = props.content.video_url;
|
||||
const autoplay = props.content.autoPlay;
|
||||
|
||||
const handleVideoAction = event => {
|
||||
props.handleAction({
|
||||
currentTarget: {
|
||||
value: event
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("video", {
|
||||
// eslint-disable-line jsx-a11y/media-has-caption
|
||||
controls: true,
|
||||
autoPlay: autoplay,
|
||||
src: vidUrl,
|
||||
width: "604px",
|
||||
height: "340px",
|
||||
onPlay: () => handleVideoAction("video_start"),
|
||||
onEnded: () => handleVideoAction("video_end")
|
||||
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("source", {
|
||||
src: vidUrl
|
||||
})));
|
||||
};
|
||||
const StepsIndicator = props => {
|
||||
let steps = [];
|
||||
|
||||
|
@ -670,6 +644,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var _LanguageSwitcher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);
|
||||
/* harmony import */ var _CTAParagraph__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12);
|
||||
/* harmony import */ var _HeroImage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
|
||||
/* harmony import */ var _OnboardingVideo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14);
|
||||
/* 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/. */
|
||||
|
@ -683,6 +658,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
|
||||
|
||||
|
||||
|
||||
const MultiStageProtonScreen = props => {
|
||||
const {
|
||||
autoAdvance,
|
||||
|
@ -965,7 +941,7 @@ class ProtonScreen extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCom
|
|||
})), content.cta_paragraph ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_CTAParagraph__WEBPACK_IMPORTED_MODULE_8__.CTAParagraph, {
|
||||
content: content.cta_paragraph,
|
||||
handleAction: this.props.handleAction
|
||||
}) : null), content.video_container ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_MultiStageAboutWelcome__WEBPACK_IMPORTED_MODULE_6__.OnboardingVideo, {
|
||||
}) : null), content.video_container ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_OnboardingVideo__WEBPACK_IMPORTED_MODULE_10__.OnboardingVideo, {
|
||||
content: content.video_container,
|
||||
handleAction: this.props.handleAction
|
||||
}) : null, this.renderContentTiles(), this.renderLanguageSwitcher(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ProtonScreenActionButtons, {
|
||||
|
@ -1672,6 +1648,46 @@ const HeroImage = props => {
|
|||
/* 14 */
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "OnboardingVideo": () => (/* binding */ OnboardingVideo)
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
|
||||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_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/. */
|
||||
|
||||
const OnboardingVideo = props => {
|
||||
const vidUrl = props.content.video_url;
|
||||
const autoplay = props.content.autoPlay;
|
||||
|
||||
const handleVideoAction = event => {
|
||||
props.handleAction({
|
||||
currentTarget: {
|
||||
value: event
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("video", {
|
||||
// eslint-disable-line jsx-a11y/media-has-caption
|
||||
controls: true,
|
||||
autoPlay: autoplay,
|
||||
src: vidUrl,
|
||||
width: "604px",
|
||||
height: "340px",
|
||||
onPlay: () => handleVideoAction("video_start"),
|
||||
onEnded: () => handleVideoAction("video_end")
|
||||
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("source", {
|
||||
src: vidUrl
|
||||
})));
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 15 */
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "BASE_PARAMS": () => (/* binding */ BASE_PARAMS),
|
||||
|
@ -1711,7 +1727,7 @@ function addUtmParams(url, utmTerm) {
|
|||
}
|
||||
|
||||
/***/ }),
|
||||
/* 15 */
|
||||
/* 16 */
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
|
@ -1722,7 +1738,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
|
||||
/* harmony import */ var _MultiStageProtonScreen__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
|
||||
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
|
||||
/* harmony import */ var _asrouter_templates_FirstRun_addUtmParams__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
|
||||
/* 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/. */
|
||||
|
@ -1917,7 +1933,7 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony import */ var _lib_aboutwelcome_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
|
||||
/* harmony import */ var _components_MultiStageAboutWelcome__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
|
||||
/* harmony import */ var _components_ReturnToAMO__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
|
||||
/* harmony import */ var _components_ReturnToAMO__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
|
||||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
|
|
|
@ -252,35 +252,6 @@ export const SecondaryCTA = props => {
|
|||
);
|
||||
};
|
||||
|
||||
export const OnboardingVideo = props => {
|
||||
const vidUrl = props.content.video_url;
|
||||
const autoplay = props.content.autoPlay;
|
||||
|
||||
const handleVideoAction = event => {
|
||||
props.handleAction({
|
||||
currentTarget: {
|
||||
value: event,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<video // eslint-disable-line jsx-a11y/media-has-caption
|
||||
controls={true}
|
||||
autoPlay={autoplay}
|
||||
src={vidUrl}
|
||||
width="604px"
|
||||
height="340px"
|
||||
onPlay={() => handleVideoAction("video_start")}
|
||||
onEnded={() => handleVideoAction("video_end")}
|
||||
>
|
||||
<source src={vidUrl}></source>
|
||||
</video>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export const StepsIndicator = props => {
|
||||
let steps = [];
|
||||
for (let i = 0; i < props.totalNumberOfScreens; i++) {
|
||||
|
|
|
@ -8,14 +8,11 @@ import { Colorways } from "./MRColorways";
|
|||
import { MobileDownloads } from "./MobileDownloads";
|
||||
import { MultiSelect } from "./MultiSelect";
|
||||
import { Themes } from "./Themes";
|
||||
import {
|
||||
OnboardingVideo,
|
||||
SecondaryCTA,
|
||||
StepsIndicator,
|
||||
} from "./MultiStageAboutWelcome";
|
||||
import { SecondaryCTA, StepsIndicator } from "./MultiStageAboutWelcome";
|
||||
import { LanguageSwitcher } from "./LanguageSwitcher";
|
||||
import { CTAParagraph } from "./CTAParagraph";
|
||||
import { HeroImage } from "./HeroImage";
|
||||
import { OnboardingVideo } from "./OnboardingVideo";
|
||||
|
||||
export const MultiStageProtonScreen = props => {
|
||||
const { autoAdvance, handleAction, order } = props;
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/* 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/. */
|
||||
|
||||
import React from "react";
|
||||
|
||||
export const OnboardingVideo = props => {
|
||||
const vidUrl = props.content.video_url;
|
||||
const autoplay = props.content.autoPlay;
|
||||
|
||||
const handleVideoAction = event => {
|
||||
props.handleAction({
|
||||
currentTarget: {
|
||||
value: event,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<video // eslint-disable-line jsx-a11y/media-has-caption
|
||||
controls={true}
|
||||
autoPlay={autoplay}
|
||||
src={vidUrl}
|
||||
width="604px"
|
||||
height="340px"
|
||||
onPlay={() => handleVideoAction("video_start")}
|
||||
onEnded={() => handleVideoAction("video_end")}
|
||||
>
|
||||
<source src={vidUrl}></source>
|
||||
</video>
|
||||
</div>
|
||||
);
|
||||
};
|
|
@ -4,7 +4,6 @@ import {
|
|||
SecondaryCTA,
|
||||
StepsIndicator,
|
||||
WelcomeScreen,
|
||||
OnboardingVideo,
|
||||
} from "content-src/aboutwelcome/components/MultiStageAboutWelcome";
|
||||
import { Themes } from "content-src/aboutwelcome/components/Themes";
|
||||
import React from "react";
|
||||
|
@ -489,34 +488,6 @@ describe("MultiStageAboutWelcome module", () => {
|
|||
},
|
||||
});
|
||||
});
|
||||
it("should handle video_start action when video is played", () => {
|
||||
SCREEN_PROPS = {
|
||||
content: {
|
||||
title: "Test title",
|
||||
video_container: {
|
||||
video_url: "test url",
|
||||
},
|
||||
},
|
||||
};
|
||||
const handleAction = sandbox.stub();
|
||||
const wrapper = mount(
|
||||
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
|
||||
);
|
||||
wrapper.find("video").simulate("play");
|
||||
assert.calledWith(handleAction, {
|
||||
currentTarget: { value: "video_start" },
|
||||
});
|
||||
});
|
||||
it("should handle video_end action when video has completed playing", () => {
|
||||
const handleAction = sandbox.stub();
|
||||
const wrapper = mount(
|
||||
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
|
||||
);
|
||||
wrapper.find("video").simulate("ended");
|
||||
assert.calledWith(handleAction, {
|
||||
currentTarget: { value: "video_end" },
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
import React from "react";
|
||||
import { mount } from "enzyme";
|
||||
import { OnboardingVideo } from "content-src/aboutwelcome/components/OnboardingVideo";
|
||||
|
||||
describe("OnboardingVideo component", () => {
|
||||
let sandbox;
|
||||
|
||||
beforeEach(async () => {
|
||||
sandbox = sinon.createSandbox();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
sandbox.restore();
|
||||
});
|
||||
|
||||
const SCREEN_PROPS = {
|
||||
content: {
|
||||
title: "Test title",
|
||||
video_container: {
|
||||
video_url: "test url",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
it("should handle video_start action when video is played", () => {
|
||||
const handleAction = sandbox.stub();
|
||||
const wrapper = mount(
|
||||
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
|
||||
);
|
||||
wrapper.find("video").simulate("play");
|
||||
assert.calledWith(handleAction, {
|
||||
currentTarget: { value: "video_start" },
|
||||
});
|
||||
});
|
||||
it("should handle video_end action when video has completed playing", () => {
|
||||
const handleAction = sandbox.stub();
|
||||
const wrapper = mount(
|
||||
<OnboardingVideo handleAction={handleAction} {...SCREEN_PROPS} />
|
||||
);
|
||||
wrapper.find("video").simulate("ended");
|
||||
assert.calledWith(handleAction, {
|
||||
currentTarget: { value: "video_end" },
|
||||
});
|
||||
});
|
||||
});
|
|
@ -269,7 +269,7 @@ class BrowserSearchTelemetryHandler {
|
|||
_recordSearch(browser, engine, url, source, action = null) {
|
||||
if (url) {
|
||||
lazy.PartnerLinkAttribution.makeSearchEngineRequest(engine, url).catch(
|
||||
Cu.reportError
|
||||
console.error
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -397,7 +397,7 @@ export class SearchOneOffs {
|
|||
try {
|
||||
await this.__rebuild();
|
||||
} catch (ex) {
|
||||
Cu.reportError("Search-one-offs::_rebuild() error: " + ex);
|
||||
console.error("Search-one-offs::_rebuild() error: " + ex);
|
||||
} finally {
|
||||
this._rebuilding = false;
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ class TelemetryHandler {
|
|||
*/
|
||||
handleEvent(event) {
|
||||
if (event.type != "TabClose") {
|
||||
Cu.reportError(`Received unexpected event type ${event.type}`);
|
||||
console.error(`Received unexpected event type ${event.type}`);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -783,7 +783,7 @@ class ContentHandler {
|
|||
});
|
||||
}
|
||||
} catch (e) {
|
||||
Cu.reportError(e);
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
}
|
||||
|
||||
// Show the current default engine in the top header of the panel.
|
||||
this.updateHeader().catch(Cu.reportError);
|
||||
this.updateHeader().catch(console.error);
|
||||
|
||||
this._oneOffButtons.addEventListener(
|
||||
"SelectedOneOffButtonChanged",
|
||||
|
@ -275,7 +275,7 @@
|
|||
let engine =
|
||||
this.oneOffButtons.selectedButton &&
|
||||
this.oneOffButtons.selectedButton.engine;
|
||||
this.updateHeader(engine).catch(Cu.reportError);
|
||||
this.updateHeader(engine).catch(console.error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@
|
|||
BrowserSearch.updateOpenSearchBadge();
|
||||
})
|
||||
.catch(status =>
|
||||
Cu.reportError(
|
||||
console.error(
|
||||
"Cannot initialize search service, bailing out: " + status
|
||||
)
|
||||
);
|
||||
|
@ -408,7 +408,7 @@
|
|||
value: aData,
|
||||
source: engine.name,
|
||||
}).catch(error =>
|
||||
Cu.reportError(
|
||||
console.error(
|
||||
"Saving search to form history failed: " + error.message
|
||||
)
|
||||
);
|
||||
|
|
|
@ -332,15 +332,15 @@ const TEST_DATA = [
|
|||
{ queryString: "0 utc in utc", expected: "00:00 UTC" },
|
||||
{ queryString: "0 utc = utc", expected: "00:00 UTC" },
|
||||
{ queryString: "0 UTC=UTC", expected: "00:00 UTC" },
|
||||
{ queryString: "11 pm utc to utc", expected: "11:00 PM UTC" },
|
||||
{ queryString: "11 am utc to utc", expected: "11:00 AM UTC" },
|
||||
{ queryString: "11 pm utc to utc", expected: "11:00\u{202F}PM UTC" },
|
||||
{ queryString: "11 am utc to utc", expected: "11:00\u{202F}AM UTC" },
|
||||
{ queryString: "11:30 utc to utc", expected: "11:30 UTC" },
|
||||
{ queryString: "11:30 PM utc to utc", expected: "11:30 PM UTC" },
|
||||
{ queryString: "11:30 PM utc to utc", expected: "11:30\u{202F}PM UTC" },
|
||||
{ queryString: "1 utc to idlw", expected: "13:00 IDLW" },
|
||||
{ queryString: "1 pm utc to idlw", expected: "1:00 AM IDLW" },
|
||||
{ queryString: "1 am utc to idlw", expected: "1:00 PM IDLW" },
|
||||
{ queryString: "1 pm utc to idlw", expected: "1:00\u{202F}AM IDLW" },
|
||||
{ queryString: "1 am utc to idlw", expected: "1:00\u{202F}PM IDLW" },
|
||||
{ queryString: "1 utc to idlw", expected: "13:00 IDLW" },
|
||||
{ queryString: "1 PM utc to idlw", expected: "1:00 AM IDLW" },
|
||||
{ queryString: "1 PM utc to idlw", expected: "1:00\u{202F}AM IDLW" },
|
||||
{ queryString: "0 utc to nt", expected: "13:00 NT" },
|
||||
{ queryString: "0 utc to hst", expected: "14:00 HST" },
|
||||
{ queryString: "0 utc to akst", expected: "15:00 AKST" },
|
||||
|
@ -385,14 +385,14 @@ const TEST_DATA = [
|
|||
{ queryString: "0 utc to nzd", expected: "13:00 NZD" },
|
||||
{ queryString: "9:00 jst to utc", expected: "00:00 UTC" },
|
||||
{ queryString: "8:00 jst to utc", expected: "23:00 UTC" },
|
||||
{ queryString: "8:00 am jst to utc", expected: "11:00 PM UTC" },
|
||||
{ queryString: "8:00 am jst to utc", expected: "11:00\u{202F}PM UTC" },
|
||||
{ queryString: "9:00 jst to pdt", expected: "17:00 PDT" },
|
||||
{ queryString: "12 pm pst to cet", expected: "9:00 PM CET" },
|
||||
{ queryString: "12 am pst to cet", expected: "9:00 AM CET" },
|
||||
{ queryString: "12:30 pm pst to cet", expected: "9:30 PM CET" },
|
||||
{ queryString: "12:30 am pst to cet", expected: "9:30 AM CET" },
|
||||
{ queryString: "23 pm pst to cet", expected: "8:00 AM CET" },
|
||||
{ queryString: "23:30 pm pst to cet", expected: "8:30 AM CET" },
|
||||
{ queryString: "12 pm pst to cet", expected: "9:00\u{202F}PM CET" },
|
||||
{ queryString: "12 am pst to cet", expected: "9:00\u{202F}AM CET" },
|
||||
{ queryString: "12:30 pm pst to cet", expected: "9:30\u{202F}PM CET" },
|
||||
{ queryString: "12:30 am pst to cet", expected: "9:30\u{202F}AM CET" },
|
||||
{ queryString: "23 pm pst to cet", expected: "8:00\u{202F}AM CET" },
|
||||
{ queryString: "23:30 pm pst to cet", expected: "8:30\u{202F}AM CET" },
|
||||
{
|
||||
queryString: "10:00 JST to here",
|
||||
timezone: "UTC",
|
||||
|
@ -406,7 +406,7 @@ const TEST_DATA = [
|
|||
{
|
||||
queryString: "1 am to JST",
|
||||
timezone: "UTC",
|
||||
expected: "10:00 AM JST",
|
||||
expected: "10:00\u{202F}AM JST",
|
||||
},
|
||||
{
|
||||
queryString: "now to JST",
|
||||
|
|
|
@ -189,7 +189,7 @@ const AVAILABLE_SHIMS = [
|
|||
onlyIfBlockedByETP: true,
|
||||
},
|
||||
{
|
||||
id: "AdvertisingDotCom",
|
||||
id: "AdvertisingCom",
|
||||
platform: "all",
|
||||
name: "advertising.com",
|
||||
bug: "1701685",
|
||||
|
@ -213,7 +213,7 @@ const AVAILABLE_SHIMS = [
|
|||
onlyIfBlockedByETP: true,
|
||||
},
|
||||
{
|
||||
patterns: ["https://redirect.firefox.etp/adsafeprotected_pixel"],
|
||||
patterns: ["https://redirect.firefox.etp/advertisingdotcom_pixel"],
|
||||
target: "tracking-pixel.png",
|
||||
types: ["image", "imageset", "xmlhttprequest"],
|
||||
},
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"manifest_version": 2,
|
||||
"name": "Web Compatibility Interventions",
|
||||
"description": "Urgent post-release fixes for web compatibility.",
|
||||
"version": "108.1.0",
|
||||
"version": "108.2.0",
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "webcompat@mozilla.org",
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "6b6bb3e99a9bc934d433a392f07e914a48b9fb03"
|
||||
"revision": "6697737655bfe6f04122974375149bd5fee80c09"
|
||||
},
|
||||
"bg": {
|
||||
"pin": false,
|
||||
|
@ -339,7 +339,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "a5d31d88356b246348fa58fcacdce4e7fa73d0bd"
|
||||
"revision": "cd620ebed1eaf7351173e9fa857d952d18749353"
|
||||
},
|
||||
"da": {
|
||||
"pin": false,
|
||||
|
@ -663,7 +663,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "1e6d10dc44c1f803bd01d483471ac55e02611366"
|
||||
"revision": "eb293a8289019b1a7b76c4042ae85847f306ae11"
|
||||
},
|
||||
"ga-IE": {
|
||||
"pin": false,
|
||||
|
@ -735,7 +735,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "24a07ffea48950b6150940a078ec819e6fe66ffc"
|
||||
"revision": "f5554755095621a859dec668defde53c8597f79e"
|
||||
},
|
||||
"gu-IN": {
|
||||
"pin": false,
|
||||
|
@ -771,7 +771,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "aef2c23e3653540cdf9385af7b1503f98fdb67a2"
|
||||
"revision": "f8412db317596c5de64e8b25c830932c096c8d24"
|
||||
},
|
||||
"hi-IN": {
|
||||
"pin": false,
|
||||
|
@ -915,7 +915,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "c36b66a02c9ec41092efd0ecbc51edb0980152fd"
|
||||
"revision": "e5bb8a2bf8e81381db1260fe11c47ee897b26d2e"
|
||||
},
|
||||
"is": {
|
||||
"pin": false,
|
||||
|
@ -1029,7 +1029,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "53c494e2b749e7395c1a3cb037c8bf83ef2b17d4"
|
||||
"revision": "f143464d3db190b13a5af83850a312e0e1e13a61"
|
||||
},
|
||||
"km": {
|
||||
"pin": false,
|
||||
|
@ -1083,7 +1083,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "eb4d734f6f336bb7385d24be131548252711524a"
|
||||
"revision": "e83d874f1401b56562a2c1b96bd6d25f00c56134"
|
||||
},
|
||||
"lij": {
|
||||
"pin": false,
|
||||
|
@ -1281,7 +1281,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "bc3f09bcc7674c1803902b7875ff2ac3cff4d1d8"
|
||||
"revision": "846bca95023e2033ec4c81a17ef0aaf91cd6f707"
|
||||
},
|
||||
"ne-NP": {
|
||||
"pin": false,
|
||||
|
@ -1299,7 +1299,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "8c2eccb12fd509326bd228b2d2d7e09acdc1ac40"
|
||||
"revision": "42274ea9cc3b2488e5cf833b9fceb5d78086dea7"
|
||||
},
|
||||
"nl": {
|
||||
"pin": false,
|
||||
|
@ -1317,7 +1317,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "f656471497d2fb6d5275513b726ce858b7a434f9"
|
||||
"revision": "afc882e62bbf4af74c2213fec221c2c406a61b47"
|
||||
},
|
||||
"nn-NO": {
|
||||
"pin": false,
|
||||
|
@ -1335,7 +1335,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "e9487bcdb5282342218b4a2105a09b9862593964"
|
||||
"revision": "895bf9c224a1449050fa9ebb420898eee0bdee50"
|
||||
},
|
||||
"oc": {
|
||||
"pin": false,
|
||||
|
@ -1353,7 +1353,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "608b566c3e1da6336a4e5915c247b648ef161b58"
|
||||
"revision": "808109d3c0b921071b857edcd9adeb6b822a4bd7"
|
||||
},
|
||||
"pa-IN": {
|
||||
"pin": false,
|
||||
|
@ -1371,7 +1371,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "187e54a1985e6262d5b7f62c5d5f4b7ee860e197"
|
||||
"revision": "41e159df855ef2860af336bf94ec815ee45c5261"
|
||||
},
|
||||
"pl": {
|
||||
"pin": false,
|
||||
|
@ -1389,7 +1389,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "ef231623591e36a7a6b1da3bb82097027c7c489e"
|
||||
"revision": "c1b7e036331c59e2f50390b916a6644c8ef67a5a"
|
||||
},
|
||||
"pt-BR": {
|
||||
"pin": false,
|
||||
|
@ -1407,7 +1407,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "43471f203e276143ecd59b4bff4d0b2da8825f66"
|
||||
"revision": "8dead75f9afeb34e57a3bcd24ed4a564db9e762d"
|
||||
},
|
||||
"pt-PT": {
|
||||
"pin": false,
|
||||
|
@ -1425,7 +1425,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "22b0ba23e8ab1c8160f89de74512d1a26f059637"
|
||||
"revision": "e2004dd62601de421adba549123e28cf12667900"
|
||||
},
|
||||
"rm": {
|
||||
"pin": false,
|
||||
|
@ -1443,7 +1443,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "83890367d61fd84d3f1b4ee79f3caf07fd5629a2"
|
||||
"revision": "9aab30ed3488612383a6375e29710c65aa20839c"
|
||||
},
|
||||
"ro": {
|
||||
"pin": false,
|
||||
|
@ -1461,7 +1461,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "9ffbc2ceb6181fb4bbdd1120aab4d214fa0e4d1e"
|
||||
"revision": "eb15422dff28cc0d0508087b5f1c0a3f2a162810"
|
||||
},
|
||||
"ru": {
|
||||
"pin": false,
|
||||
|
@ -1479,7 +1479,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "99899c8f4061537fffe36a7277b1ac28e2db5130"
|
||||
"revision": "4f72f42aebcdf1f10e37ab944e68d9f99248e301"
|
||||
},
|
||||
"sat": {
|
||||
"pin": false,
|
||||
|
@ -1497,7 +1497,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "82acb8f4a6af85a5bb1af3c7830eb6ab7cc63174"
|
||||
"revision": "cf2deb96e3f4b97388ac68e37b0fe77aa8ca5ccb"
|
||||
},
|
||||
"sc": {
|
||||
"pin": false,
|
||||
|
@ -1515,7 +1515,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "a387aeadfa4fce84450c59014f2eaa11a1d40119"
|
||||
"revision": "4edb194a09f972b9f845ae54200eee27c2b2b463"
|
||||
},
|
||||
"scn": {
|
||||
"pin": false,
|
||||
|
@ -1533,7 +1533,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "92402878c982b800e4ae6306a782db7c4739acda"
|
||||
"revision": "283982fa0bf0d263ebe5e794d591606d925a85f0"
|
||||
},
|
||||
"sco": {
|
||||
"pin": false,
|
||||
|
@ -1551,7 +1551,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "23d508718e2eec29ca022904846521667f27e7f7"
|
||||
"revision": "7286fdcb8d91a9a29a438c618fffd0bdb1cb5b0a"
|
||||
},
|
||||
"si": {
|
||||
"pin": false,
|
||||
|
@ -1569,7 +1569,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "eb10989dbc2a562d470213dfb85744eacd0957a4"
|
||||
"revision": "6a2812646d45d14201ebfcd909c7279804bfdffc"
|
||||
},
|
||||
"sk": {
|
||||
"pin": false,
|
||||
|
@ -1587,7 +1587,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "3ea03ba5ed56c5112a0a8505bfe0589c7830e08c"
|
||||
"revision": "bd460eecadaae22035a8634d68a68c3d384ea62e"
|
||||
},
|
||||
"sl": {
|
||||
"pin": false,
|
||||
|
@ -1605,7 +1605,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "81098ca9a8ea2157ba2f4981dbf47e67ce73ef50"
|
||||
"revision": "9dbe217e692e7a95d465bcb03e5696548c8d9068"
|
||||
},
|
||||
"son": {
|
||||
"pin": false,
|
||||
|
@ -1623,7 +1623,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "18e4d2bf56103d1392933fd4ef5a4a6ac4fbae0e"
|
||||
"revision": "ece161c6f98dc74b9ceecccaeffc7021d2674cfd"
|
||||
},
|
||||
"sq": {
|
||||
"pin": false,
|
||||
|
@ -1641,7 +1641,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "9af8f028a63b109a642f82a26c6eab1afcc87049"
|
||||
"revision": "a0b37bb9492563a6c4bf0f861609fd0ad04efbee"
|
||||
},
|
||||
"sr": {
|
||||
"pin": false,
|
||||
|
@ -1659,7 +1659,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "6cf6af5731711ea94b8a16927e6db32cc0959b31"
|
||||
"revision": "83c23500f949ffece0043bd3d9ad7d8dca477fee"
|
||||
},
|
||||
"sv-SE": {
|
||||
"pin": false,
|
||||
|
@ -1677,7 +1677,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "9c0e606c4f0c3571151a2ca5aae8178ab6e6711f"
|
||||
"revision": "da22e7cc6743fffcd865376a6e03d4d6fe440e0f"
|
||||
},
|
||||
"szl": {
|
||||
"pin": false,
|
||||
|
@ -1695,7 +1695,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "a9531db9ab5bbb46292c64979282ccac3b1a0b56"
|
||||
"revision": "288ce9f945ed54282721c3fcbc73136521f61acd"
|
||||
},
|
||||
"ta": {
|
||||
"pin": false,
|
||||
|
@ -1713,7 +1713,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "a00973956b73f7248d768f4be88bdc0610f18ff8"
|
||||
"revision": "8e8d7e7e882623a79e617fe9015e83aeb8b374bb"
|
||||
},
|
||||
"te": {
|
||||
"pin": false,
|
||||
|
@ -1731,7 +1731,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "f9a331922d7b737e4f0c71254cbc300560fa578e"
|
||||
"revision": "24148539eedf61dbfeecf8caed406af43378d7b0"
|
||||
},
|
||||
"tg": {
|
||||
"pin": false,
|
||||
|
@ -1749,7 +1749,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "3bae4022d3d8bdccc9bc2150d120167842c68848"
|
||||
"revision": "a69d98b8a5a43c6b93aae80a26671d05c1757a63"
|
||||
},
|
||||
"th": {
|
||||
"pin": false,
|
||||
|
@ -1767,7 +1767,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "ae483a12ad0065451ee37d2222b512612a30e5b7"
|
||||
"revision": "03d6c6fe98e05db98bfed25a0b24a72bfdeea4c8"
|
||||
},
|
||||
"tl": {
|
||||
"pin": false,
|
||||
|
@ -1785,7 +1785,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "1ff57d72c34403b2477b10aafe3d1aba2b5f6c59"
|
||||
"revision": "7622da9019fbe7c83a37fdd4ce38ce0281b8db88"
|
||||
},
|
||||
"tr": {
|
||||
"pin": false,
|
||||
|
@ -1803,7 +1803,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "9a06daccd2a70434fbfc41864e4527f1f79a3f77"
|
||||
"revision": "8b56fdc7d226a359747095054358cc0808438b8e"
|
||||
},
|
||||
"trs": {
|
||||
"pin": false,
|
||||
|
@ -1821,7 +1821,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "38f72295b089a6eff1ccf5a44abde9ad9f058f59"
|
||||
"revision": "9051ef497149dcd0e93aa756194bae624948b0c0"
|
||||
},
|
||||
"uk": {
|
||||
"pin": false,
|
||||
|
@ -1839,7 +1839,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "04febdf4c48eb19b46f193d09a083b2f232beba8"
|
||||
"revision": "114c255e8bfb8cb6ef52f24063c9600d1696fe74"
|
||||
},
|
||||
"ur": {
|
||||
"pin": false,
|
||||
|
@ -1857,7 +1857,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "4a7f40ce682b741453ff49f8d68ce6c147f73240"
|
||||
"revision": "571c8f23ca554cf45fb08099702934fd714bc487"
|
||||
},
|
||||
"uz": {
|
||||
"pin": false,
|
||||
|
@ -1875,7 +1875,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "6d54028735d77700733ac34876a48d27abdc3839"
|
||||
"revision": "a3b642a27582d2e30170d9fff35abe3447e71ac2"
|
||||
},
|
||||
"vi": {
|
||||
"pin": false,
|
||||
|
@ -1893,7 +1893,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "697a024184c9de467240023461919c3db1abeaca"
|
||||
"revision": "dcc6eed4c4cf39b0405f4f01fdc2734571c6951b"
|
||||
},
|
||||
"wo": {
|
||||
"pin": false,
|
||||
|
@ -1911,7 +1911,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "9fed112206ec06d6c0300c2a161757c8dd2a37df"
|
||||
"revision": "8c57aedad9503f34bf3d72908376020e91ac7f88"
|
||||
},
|
||||
"xh": {
|
||||
"pin": false,
|
||||
|
@ -1929,7 +1929,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "03a37c88fc96d14a5a180e96eb126619239a00a0"
|
||||
"revision": "5f571f2c741c6eab39c6eb4492484c9afeab1cb7"
|
||||
},
|
||||
"zh-CN": {
|
||||
"pin": false,
|
||||
|
@ -1947,7 +1947,7 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "98d5326a18d4aa83d4e4c9ea6554f355b9f0171b"
|
||||
"revision": "b9c1eb440d8d9b10fb00d1dbdc33c1d5270b92f1"
|
||||
},
|
||||
"zh-TW": {
|
||||
"pin": false,
|
||||
|
@ -1965,6 +1965,6 @@
|
|||
"win64-aarch64-devedition",
|
||||
"win64-devedition"
|
||||
],
|
||||
"revision": "1b8c1abc4662f9caddee0cc69be6ffc20a0c7787"
|
||||
"revision": "71359b8934fdeabf50cf125214373e3a1b408960"
|
||||
}
|
||||
}
|
|
@ -80,7 +80,7 @@ with Files("ProcessHangMonitor.jsm"):
|
|||
BUG_COMPONENT = ("Core", "DOM: Content Processes")
|
||||
|
||||
with Files("Sanitizer.sys.mjs"):
|
||||
BUG_COMPONENT = ("Firefox", "Settings UI")
|
||||
BUG_COMPONENT = ("Toolkit", "Data Sanitization")
|
||||
|
||||
with Files("SelectionChangedMenulist.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Settings UI")
|
||||
|
|
|
@ -68,11 +68,6 @@
|
|||
position: relative;
|
||||
}
|
||||
|
||||
#browser-bottombox {
|
||||
/* opaque for layers optimization */
|
||||
background-color: -moz-Dialog;
|
||||
}
|
||||
|
||||
/* Bookmark menus */
|
||||
menu.bookmark-item,
|
||||
menuitem.bookmark-item {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
}
|
||||
|
||||
@media (-moz-windows-compositor) {
|
||||
:root:is([sizemode="maximized"], [sizemode="fullscreen"]) .titlebar-buttonbox {
|
||||
:root[sizemode="maximized"] .titlebar-buttonbox {
|
||||
appearance: auto;
|
||||
-moz-default-appearance: -moz-window-button-box-maximized;
|
||||
}
|
||||
|
|
|
@ -172,10 +172,6 @@
|
|||
-moz-default-appearance: toolbox;
|
||||
}
|
||||
|
||||
#browser-bottombox:not(:-moz-lwtheme) {
|
||||
background-color: -moz-dialog;
|
||||
}
|
||||
|
||||
/* Titlebar */
|
||||
|
||||
:root[tabsintitlebar][sizemode="normal"] #titlebar {
|
||||
|
|
|
@ -14,10 +14,3 @@ menupopup::part(drop-indicator) {
|
|||
toolbarbutton menupopup[placespopup] {
|
||||
--nested-margin: calc(-1 * (var(--arrowpanel-menuitem-padding-inline) + var(--panel-shadow-margin)));
|
||||
}
|
||||
|
||||
/* Add border-radius on Windows 7 */
|
||||
@media (-moz-platform: windows-win7) {
|
||||
toolbarbutton menupopup[placespopup]::part(content) {
|
||||
border-radius: 3.5px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"cxx": "{MOZ_FETCHES_DIR}/clang/bin/clang++",
|
||||
"as": "{MOZ_FETCHES_DIR}/clang/bin/clang",
|
||||
"patches": [
|
||||
"clang_include_cleaner.patch",
|
||||
"clang-tidy-ci.patch"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
"libtool": "{MOZ_FETCHES_DIR}/cctools/bin/x86_64-apple-darwin-libtool",
|
||||
"ld": "{MOZ_FETCHES_DIR}/clang/bin/clang",
|
||||
"patches": [
|
||||
"clang_include_cleaner.patch",
|
||||
"clang-tidy-ci.patch"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"cxx": "cl.exe",
|
||||
"ml": "ml64.exe",
|
||||
"patches": [
|
||||
"clang_include_cleaner.patch",
|
||||
"clang-tidy-ci.patch"
|
||||
]
|
||||
}
|
||||
|
|
2235
build/build-clang/clang_include_cleaner.patch
Normal file
2235
build/build-clang/clang_include_cleaner.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -118,9 +118,11 @@ def _maybe_activate_mozillabuild_environment():
|
|||
|
||||
paths_to_add = [mozillabuild_msys_tools_path, mozillabuild / "bin"]
|
||||
existing_paths = [Path(p) for p in os.environ.get("PATH", "").split(os.pathsep)]
|
||||
# It's important that we prepend to the path rather than append,
|
||||
# in case mach is getting called from another msys2 environment.
|
||||
for new_path in paths_to_add:
|
||||
if new_path not in existing_paths:
|
||||
os.environ["PATH"] += f"{os.pathsep}{new_path}"
|
||||
os.environ["PATH"] = f"{new_path}{os.pathsep}" + os.environ["PATH"]
|
||||
|
||||
|
||||
def initialize(topsrcdir):
|
||||
|
|
|
@ -32,6 +32,7 @@ endif
|
|||
|
||||
MOZ_MAKE = $(MAKE) $(MOZ_MAKE_FLAGS) -C $(OBJDIR)
|
||||
|
||||
ifdef MOZBUILD_MANAGE_SCCACHE_DAEMON
|
||||
# In automation, manage an sccache daemon. The starting of the server
|
||||
# needs to be in a make file so sccache inherits the jobserver.
|
||||
SCCACHE_STOP = $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --stop-server
|
||||
|
@ -42,6 +43,7 @@ SCCACHE_STOP = $(MOZBUILD_MANAGE_SCCACHE_DAEMON) --stop-server
|
|||
# However, we also need to preserve the command's exit code, thus the
|
||||
# gymnastics.
|
||||
SCCACHE_STOP_ON_FAILURE = || (x=$$?; $(SCCACHE_STOP) || true; exit $$x)
|
||||
endif
|
||||
|
||||
# The default rule is build
|
||||
build:
|
||||
|
|
Binary file not shown.
4
config/external/icu/i18n/sources.mozbuild
vendored
4
config/external/icu/i18n/sources.mozbuild
vendored
|
@ -42,6 +42,7 @@ sources = [
|
|||
'/intl/icu/source/i18n/decContext.cpp',
|
||||
'/intl/icu/source/i18n/decimfmt.cpp',
|
||||
'/intl/icu/source/i18n/decNumber.cpp',
|
||||
'/intl/icu/source/i18n/displayoptions.cpp',
|
||||
'/intl/icu/source/i18n/double-conversion-bignum-dtoa.cpp',
|
||||
'/intl/icu/source/i18n/double-conversion-bignum.cpp',
|
||||
'/intl/icu/source/i18n/double-conversion-cached-powers.cpp',
|
||||
|
@ -257,6 +258,7 @@ EXPORTS.unicode += [
|
|||
'/intl/icu/source/i18n/unicode/datefmt.h',
|
||||
'/intl/icu/source/i18n/unicode/dcfmtsym.h',
|
||||
'/intl/icu/source/i18n/unicode/decimfmt.h',
|
||||
'/intl/icu/source/i18n/unicode/displayoptions.h',
|
||||
'/intl/icu/source/i18n/unicode/dtfmtsym.h',
|
||||
'/intl/icu/source/i18n/unicode/dtitvfmt.h',
|
||||
'/intl/icu/source/i18n/unicode/dtitvinf.h',
|
||||
|
@ -310,6 +312,7 @@ EXPORTS.unicode += [
|
|||
'/intl/icu/source/i18n/unicode/udat.h',
|
||||
'/intl/icu/source/i18n/unicode/udateintervalformat.h',
|
||||
'/intl/icu/source/i18n/unicode/udatpg.h',
|
||||
'/intl/icu/source/i18n/unicode/udisplayoptions.h',
|
||||
'/intl/icu/source/i18n/unicode/ufieldpositer.h',
|
||||
'/intl/icu/source/i18n/unicode/uformattable.h',
|
||||
'/intl/icu/source/i18n/unicode/uformattedvalue.h',
|
||||
|
@ -318,7 +321,6 @@ EXPORTS.unicode += [
|
|||
'/intl/icu/source/i18n/unicode/ulocdata.h',
|
||||
'/intl/icu/source/i18n/unicode/umsg.h',
|
||||
'/intl/icu/source/i18n/unicode/unirepl.h',
|
||||
'/intl/icu/source/i18n/unicode/unounclass.h',
|
||||
'/intl/icu/source/i18n/unicode/unum.h',
|
||||
'/intl/icu/source/i18n/unicode/unumberformatter.h',
|
||||
'/intl/icu/source/i18n/unicode/unumberrangeformatter.h',
|
||||
|
|
|
@ -22,7 +22,6 @@ vendoring:
|
|||
|
||||
exclude:
|
||||
# dirs
|
||||
- .github
|
||||
- test
|
||||
# files
|
||||
- .clang-format
|
||||
|
|
|
@ -24,7 +24,6 @@ vendoring:
|
|||
# so just explicitly exclude what we don't want for now
|
||||
exclude:
|
||||
# dirs
|
||||
- .github
|
||||
- cmake
|
||||
- docs
|
||||
- fuzz-in
|
||||
|
|
|
@ -487,9 +487,9 @@ ifeq (WINNT_,$(HOST_OS_ARCH)_$(GNU_CC))
|
|||
$(HOST_LINKER) -OUT:$@ -PDB:$(HOST_PDBFILE) $($(notdir $@)_OBJS) $(WIN32_EXE_LDFLAGS) $(HOST_LDFLAGS) $(HOST_LINKER_LIBPATHS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
|
||||
else
|
||||
ifneq (,$(HOST_CPPSRCS)$(USE_HOST_CXX))
|
||||
$(HOST_CXX) $(HOST_OUTOPTION)$@ $(HOST_CXX_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
|
||||
$(HOST_CXX) $(HOST_OUTOPTION)$@ $(HOST_CXX_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
|
||||
else
|
||||
$(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
|
||||
$(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
|
||||
endif
|
||||
endif
|
||||
ifndef CROSS_COMPILE
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
from mod_pywebsocket import msgutil
|
||||
|
||||
|
||||
|
|
|
@ -222,9 +222,6 @@ exports.CSS_PROPERTIES = {
|
|||
"-moz-window-button-maximize",
|
||||
"-moz-window-button-minimize",
|
||||
"-moz-window-button-restore",
|
||||
"-moz-window-frame-bottom",
|
||||
"-moz-window-frame-left",
|
||||
"-moz-window-frame-right",
|
||||
"-moz-window-titlebar",
|
||||
"-moz-window-titlebar-maximized",
|
||||
"auto",
|
||||
|
@ -1496,9 +1493,6 @@ exports.CSS_PROPERTIES = {
|
|||
"-moz-window-button-maximize",
|
||||
"-moz-window-button-minimize",
|
||||
"-moz-window-button-restore",
|
||||
"-moz-window-frame-bottom",
|
||||
"-moz-window-frame-left",
|
||||
"-moz-window-frame-right",
|
||||
"-moz-window-titlebar",
|
||||
"-moz-window-titlebar-maximized",
|
||||
"auto",
|
||||
|
@ -1922,6 +1916,34 @@ exports.CSS_PROPERTIES = {
|
|||
"unset"
|
||||
]
|
||||
},
|
||||
"-webkit-clip-path": {
|
||||
"isInherited": false,
|
||||
"subproperties": [
|
||||
"clip-path"
|
||||
],
|
||||
"supports": [],
|
||||
"values": [
|
||||
"border-box",
|
||||
"circle",
|
||||
"content-box",
|
||||
"ellipse",
|
||||
"fill-box",
|
||||
"inherit",
|
||||
"initial",
|
||||
"inset",
|
||||
"margin-box",
|
||||
"none",
|
||||
"padding-box",
|
||||
"path",
|
||||
"polygon",
|
||||
"revert",
|
||||
"revert-layer",
|
||||
"stroke-box",
|
||||
"unset",
|
||||
"url",
|
||||
"view-box"
|
||||
]
|
||||
},
|
||||
"-webkit-filter": {
|
||||
"isInherited": false,
|
||||
"subproperties": [
|
||||
|
@ -3476,9 +3498,6 @@ exports.CSS_PROPERTIES = {
|
|||
"-moz-window-button-maximize",
|
||||
"-moz-window-button-minimize",
|
||||
"-moz-window-button-restore",
|
||||
"-moz-window-frame-bottom",
|
||||
"-moz-window-frame-left",
|
||||
"-moz-window-frame-right",
|
||||
"-moz-window-titlebar",
|
||||
"-moz-window-titlebar-maximized",
|
||||
"auto",
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
# 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/.
|
||||
|
||||
from sphinx.transforms import SphinxTransform
|
||||
from docutils.nodes import reference, Text, paragraph
|
||||
import re
|
||||
|
||||
from docutils.nodes import Text, paragraph, reference
|
||||
from sphinx.transforms import SphinxTransform
|
||||
|
||||
|
||||
class ConvertBugsToLinks(SphinxTransform):
|
||||
# Convert text entries in paragraphs that are in the style of "bug xxxxx"
|
||||
|
|
|
@ -3587,7 +3587,7 @@ The profile system and startup process before the front-end launches.
|
|||
|
||||
Telemetry
|
||||
=========
|
||||
The core infrastructure in the Firefox client to send back Telemetry and FHR data. Includes the common mechanism to record, view and submit data like histograms, the Telemetry environment and custom pings. This module does ''not'' include responsibility for every piece of submitted Telemetry data. Each team/module is responsible for their own measurements (histograms, scalars, other ping submissions, etc.).
|
||||
The core infrastructure in the Firefox client to send back telemetry data. Includes the common mechanisms to record, view and submit data: Legacy Telemetry and Glean (via Firefox on Glean (FOG)). This module does ''not'' include responsibility for every piece of submitted Telemetry data. Each team/module is responsible for their own measurements (histograms, scalars, other ping submissions, etc.).
|
||||
|
||||
|
||||
.. list-table::
|
||||
|
@ -3601,10 +3601,13 @@ The core infrastructure in the Firefox client to send back Telemetry and FHR dat
|
|||
-
|
||||
| `aplacitelli <https://people.mozilla.org/s?query=aplacitelli>`__
|
||||
| `Jan-Erik Rediger (janerik) <https://people.mozilla.org/s?query=janerik>`__
|
||||
| `Perry McManis (perrym) <https://people.mozilla.org/s?query=perrym>`__
|
||||
| `Travis Long (travis_) <https://people.mozilla.org/s?query=travis_>`__
|
||||
* - Owner(s) Emeritus
|
||||
- Georg Fritzsche
|
||||
* - Includes
|
||||
-
|
||||
| `toolkit/components/glean/\*\*/\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/components/glean/\*\*/\*>`__
|
||||
| `toolkit/components/telemetry/\*\*/\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/components/telemetry/\*\*/\*>`__
|
||||
| `toolkit/content/aboutTelemetry.\* <https://searchfox.org/mozilla-central/search?q=&path=toolkit/content/aboutTelemetry.\*>`__
|
||||
* - Group
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!--
|
||||
user_pref("dom.webcomponents.enabled", true);
|
||||
-->
|
||||
<script>
|
||||
|
||||
function boom() {
|
||||
var x = document.createElementNS("http://www.mozilla.org/xbl", "children");
|
||||
x.appendChild(document.createTextNode("t"));
|
||||
document.body.attachShadow({ mode: "open" }).appendChild(x);
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="boom();"></body>
|
||||
</html>
|
|
@ -1,15 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<script>
|
||||
addEventListener("DOMContentLoaded", function(){
|
||||
let o_0 = document.createElement("span").attachShadow({ mode: "open" });
|
||||
let o_1 = document.createElementNS("http://www.mozilla.org/xbl", "binding");
|
||||
let o_2 = document.createElementNS("http://www.mozilla.org/xbl", "children");
|
||||
let o_3 = document.createTextNode("");
|
||||
o_0.appendChild(o_1);
|
||||
o_1.appendChild(o_2);
|
||||
o_2.appendChild(o_3);
|
||||
o_2.removeChild(o_3);
|
||||
});
|
||||
</script>
|
||||
</html>
|
|
@ -1 +0,0 @@
|
|||
<bindings xmlns="http://www.mozilla.org/xbl"><binding id="foo"><content><span xmlns="http://www.w3.org/1999/xhtml"><children xmlns="http://www.mozilla.org/xbl"/></span></content></binding></bindings>
|
|
@ -1,56 +0,0 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script>
|
||||
<![CDATA[
|
||||
|
||||
var i = 0;
|
||||
|
||||
function init()
|
||||
{
|
||||
targetWindow = window.frames[0];
|
||||
targetDocument = targetWindow.document;
|
||||
targetDocument.body.appendChild(targetDocument.importNode(document.getElementById('rootish'), true));
|
||||
targetDocument.designMode = 'on';
|
||||
setTimeout(boom, 30);
|
||||
}
|
||||
|
||||
function boom()
|
||||
{
|
||||
var r = targetDocument.createRange();
|
||||
r.setStart(targetDocument.getElementById("bar"), 0);
|
||||
r.setEnd(targetDocument.getElementById("baz").firstChild, 0);
|
||||
targetWindow.getSelection().addRange(r);
|
||||
targetDocument.execCommand("indent", false, null);
|
||||
setTimeout(whack, 300);
|
||||
}
|
||||
|
||||
function whack()
|
||||
{
|
||||
if (++i > 100) return;
|
||||
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n<\/content><\/binding><\/bindings>\n") + '")';
|
||||
setTimeout(bonk, 10);
|
||||
}
|
||||
|
||||
function bonk()
|
||||
{
|
||||
document.getElementById("i").style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n\n<\/content><\/binding><\/bindings>\n") + '")';
|
||||
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content><iframe xmlns=\"http://www.w3.org/1999/xhtml\" src=\"data:text/html,\" style=\"width: 95%; height: 500px;\"><\/iframe><\/content><\/binding><\/bindings>\n") + '")';
|
||||
setTimeout(whack, 10);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
|
||||
<iframe id="i" src="data:text/html," style="width: 95%; height: 500px;"/>
|
||||
|
||||
<div id="rootish">
|
||||
<div>Foo</div>
|
||||
<div id="bar">Bar</div>
|
||||
<div><select><option id="baz">baz</option></select></div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,12 +0,0 @@
|
|||
<html class="reftest-wait">
|
||||
<head>
|
||||
<script>
|
||||
function finish() {
|
||||
document.documentElement.removeAttribute("class");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="setTimeout(finish, 5000)">
|
||||
<iframe src="561981-1-iframe.xhtml"></iframe>
|
||||
</body>
|
||||
</html>
|
|
@ -1,38 +0,0 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script>
|
||||
<![CDATA[
|
||||
|
||||
var i = 0;
|
||||
|
||||
function init()
|
||||
{
|
||||
targetWindow = window.frames[0];
|
||||
targetDocument = targetWindow.document;
|
||||
targetDocument.designMode = 'on';
|
||||
setTimeout(whack, 30);
|
||||
}
|
||||
|
||||
function whack()
|
||||
{
|
||||
if (++i > 100) return;
|
||||
document.documentElement.style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n<\/content><\/binding><\/bindings>\n") + '")';
|
||||
setTimeout(bonk, 10);
|
||||
}
|
||||
|
||||
function bonk()
|
||||
{
|
||||
document.getElementById("i").style.MozBinding = 'url("data:text/xml,' + encodeURIComponent("<bindings xmlns=\"http://www.mozilla.org/xbl\"><binding id=\"foo\" g=\""+Math.random()+"\"><content>\n\n<\/content><\/binding><\/bindings>\n") + '")';
|
||||
setTimeout(whack, 10);
|
||||
}
|
||||
|
||||
]]>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
|
||||
<iframe id="i" src="data:text/html," style="width: 95%; height: 500px;"/>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,12 +0,0 @@
|
|||
<html class="reftest-wait">
|
||||
<head>
|
||||
<script>
|
||||
function finish() {
|
||||
document.documentElement.removeAttribute("class");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="setTimeout(finish, 5000)">
|
||||
<iframe src="561981-2-iframe.xhtml"></iframe>
|
||||
</body>
|
||||
</html>
|
|
@ -85,8 +85,6 @@ load 551631-1.html
|
|||
load 552651.html
|
||||
load 554230-1.xhtml
|
||||
load 558973.html
|
||||
load 561981-1.html
|
||||
load 561981-2.html
|
||||
load 564079-1.html
|
||||
load 564114.html
|
||||
load 565125-1.html
|
||||
|
@ -193,10 +191,8 @@ load 1228882.html
|
|||
load 1230422.html
|
||||
load 1251361.html
|
||||
load 1281715.html
|
||||
load 1281745.html
|
||||
load 1304437.html
|
||||
load 1324209.html
|
||||
load 1324463.html
|
||||
load 1324500.html
|
||||
load 1326194-1.html
|
||||
load 1326194-2.html
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<bindings xmlns="http://www.mozilla.org/xbl"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<binding id="test">
|
||||
<content>
|
||||
<svg:g><svg:circle><xhtml:div xml:base="#shesellsseashellsbytheseashore"/></svg:circle><children/></svg:g>
|
||||
</content>
|
||||
</binding>
|
||||
</bindings>
|
|
@ -111,19 +111,25 @@ add_task(async function() {
|
|||
info(`Test keycode ${key} (${keyCodeValue})`);
|
||||
|
||||
info("Enter fullscreen");
|
||||
let state = await SpecialPowers.spawn(browser, [], () => {
|
||||
return new Promise(resolve => {
|
||||
content.document.addEventListener(
|
||||
"fullscreenchange",
|
||||
() => {
|
||||
resolve(!!content.document.fullscreenElement);
|
||||
},
|
||||
{ once: true }
|
||||
);
|
||||
content.document.body.requestFullscreen();
|
||||
});
|
||||
let state = new Promise(resolve => {
|
||||
let removeFun = BrowserTestUtils.addContentEventListener(
|
||||
browser,
|
||||
"fullscreenchange",
|
||||
async () => {
|
||||
removeFun();
|
||||
resolve(
|
||||
await SpecialPowers.spawn(browser, [], () => {
|
||||
return !!content.document.fullscreenElement;
|
||||
})
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
ok(state, "The content should have entered fullscreen");
|
||||
// request fullscreen
|
||||
SpecialPowers.spawn(browser, [], () => {
|
||||
content.document.body.requestFullscreen();
|
||||
});
|
||||
ok(await state, "The content should have entered fullscreen");
|
||||
ok(document.fullscreenElement, "The chrome should also be in fullscreen");
|
||||
|
||||
is(
|
||||
|
@ -156,16 +162,19 @@ add_task(async function() {
|
|||
|
||||
info("Send trusted key events");
|
||||
|
||||
let fullScreenPromise = SpecialPowers.spawn(browser, [], () => {
|
||||
return new Promise(resolve => {
|
||||
content.document.addEventListener(
|
||||
"fullscreenchange",
|
||||
() => {
|
||||
resolve(!!content.document.fullscreenElement);
|
||||
},
|
||||
{ once: true }
|
||||
);
|
||||
});
|
||||
state = new Promise(resolve => {
|
||||
let removeFun = BrowserTestUtils.addContentEventListener(
|
||||
browser,
|
||||
"fullscreenchange",
|
||||
async () => {
|
||||
removeFun();
|
||||
resolve(
|
||||
await SpecialPowers.spawn(browser, [], () => {
|
||||
return !!content.document.fullscreenElement;
|
||||
})
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
promiseExpectedKeyEvents = suppressed
|
||||
|
@ -176,8 +185,7 @@ add_task(async function() {
|
|||
EventUtils.synthesizeKey("KEY_" + key);
|
||||
await promiseExpectedKeyEvents;
|
||||
|
||||
state = await fullScreenPromise;
|
||||
ok(!state, "The content should have exited fullscreen");
|
||||
ok(!(await state), "The content should have exited fullscreen");
|
||||
ok(
|
||||
!document.fullscreenElement,
|
||||
"The chrome should also have exited fullscreen"
|
||||
|
|
|
@ -67,7 +67,6 @@ support-files =
|
|||
eventsource_redirect_to.resource
|
||||
eventsource_redirect_to.resource^headers^
|
||||
eventsource_worker.js
|
||||
file_base_xbl.xml
|
||||
file_bug1091883_frame.html
|
||||
file_bug1091883_subframe.html
|
||||
file_bug1091883_target.html
|
||||
|
|
|
@ -47,6 +47,9 @@ void FileSystemManagerParent::AssertIsOnIOTarget() const {
|
|||
|
||||
const RefPtr<fs::data::FileSystemDataManager>&
|
||||
FileSystemManagerParent::DataManagerStrongRef() const {
|
||||
MOZ_ASSERT(!mActorDestroyed);
|
||||
MOZ_ASSERT(mDataManager);
|
||||
|
||||
return mDataManager;
|
||||
}
|
||||
|
||||
|
@ -464,30 +467,13 @@ void FileSystemManagerParent::RequestAllowToClose() {
|
|||
});
|
||||
}
|
||||
|
||||
void FileSystemManagerParent::OnChannelClose() {
|
||||
void FileSystemManagerParent::ActorDestroy(ActorDestroyReason aWhy) {
|
||||
AssertIsOnIOTarget();
|
||||
MOZ_ASSERT(!mActorDestroyed);
|
||||
|
||||
if (!mAllowedToClose) {
|
||||
AllowToClose();
|
||||
}
|
||||
|
||||
PFileSystemManagerParent::OnChannelClose();
|
||||
}
|
||||
|
||||
void FileSystemManagerParent::OnChannelError() {
|
||||
AssertIsOnIOTarget();
|
||||
|
||||
if (!mAllowedToClose) {
|
||||
AllowToClose();
|
||||
}
|
||||
|
||||
PFileSystemManagerParent::OnChannelError();
|
||||
}
|
||||
|
||||
void FileSystemManagerParent::AllowToClose() {
|
||||
AssertIsOnIOTarget();
|
||||
|
||||
mAllowedToClose.Flip();
|
||||
#ifdef DEBUG
|
||||
mActorDestroyed = true;
|
||||
#endif
|
||||
|
||||
InvokeAsync(mDataManager->MutableBackgroundTargetPtr(), __func__,
|
||||
[self = RefPtr<FileSystemManagerParent>(this)]() {
|
||||
|
|
|
@ -27,6 +27,7 @@ class FileSystemManagerParent : public PFileSystemManagerParent {
|
|||
|
||||
void AssertIsOnIOTarget() const;
|
||||
|
||||
// Safe to call while the actor is live.
|
||||
const RefPtr<fs::data::FileSystemDataManager>& DataManagerStrongRef() const;
|
||||
|
||||
mozilla::ipc::IPCResult RecvGetRootHandle(GetRootHandleResolver&& aResolver);
|
||||
|
@ -68,22 +69,21 @@ class FileSystemManagerParent : public PFileSystemManagerParent {
|
|||
|
||||
void RequestAllowToClose();
|
||||
|
||||
void OnChannelClose() override;
|
||||
|
||||
void OnChannelError() override;
|
||||
void ActorDestroy(ActorDestroyReason aWhy) override;
|
||||
|
||||
protected:
|
||||
virtual ~FileSystemManagerParent();
|
||||
|
||||
void AllowToClose();
|
||||
|
||||
private:
|
||||
RefPtr<fs::data::FileSystemDataManager> mDataManager;
|
||||
|
||||
FileSystemGetHandleResponse mRootResponse;
|
||||
|
||||
FlippedOnce<false> mRequestedAllowToClose;
|
||||
FlippedOnce<false> mAllowedToClose;
|
||||
|
||||
#ifdef DEBUG
|
||||
bool mActorDestroyed = false;
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace mozilla::dom
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<binding id="xbl" inheritstyle="false">
|
||||
<content>
|
||||
<html:form id="g" observes="b"/>
|
||||
</content>
|
||||
</binding>
|
||||
</bindings>
|
|
@ -1,26 +0,0 @@
|
|||
<xht:table xmlns:xht="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xbl="http://www.mozilla.org/xbl">
|
||||
<xht:script type="text/javascript">// <![CDATA[
|
||||
function boom() {
|
||||
var topRight = document.getElementById('topRight');
|
||||
topRight.appendChild(document.createElement("g"));
|
||||
}
|
||||
//]]> </xht:script>
|
||||
|
||||
<xbl:bindings>
|
||||
<xbl:binding>
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
onload="setTimeout(boom, 0)">
|
||||
<defs>
|
||||
<g id="markerGroup">
|
||||
<g id="topLeft"/>
|
||||
<g id="topRight"/>
|
||||
<set xlink:href="#topLeft" attributeName="fill" to="green" dur="1s"/>
|
||||
</g>
|
||||
</defs>
|
||||
<use xlink:href="#markerGroup"/>
|
||||
</svg>
|
||||
</xbl:binding>
|
||||
</xbl:bindings>
|
||||
</xht:table>
|
|
@ -22,7 +22,6 @@ load 572938-4.svg
|
|||
load 588287-1.svg
|
||||
load 588287-2.svg
|
||||
load 590425-1.html
|
||||
load 592477-1.xhtml
|
||||
load 594653-1.svg
|
||||
load 596796-1.svg
|
||||
load 605345-1.svg
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xbl="http://www.mozilla.org/xbl"
|
||||
onload="document.documentElement.style.MozBinding = 'url(#tsw)';">
|
||||
|
||||
<xbl:bindings><xbl:binding id="tsw"><xbl:content>
|
||||
<text stroke-width="50%"><xbl:children/></text>
|
||||
</xbl:content></xbl:binding></xbl:bindings>
|
||||
|
||||
</svg>
|
Before Width: | Height: | Size: 309 B |
|
@ -30,7 +30,6 @@ load 409811-1.html
|
|||
load 410659-1.svg
|
||||
load 410659-2.svg
|
||||
load 410659-3.svg
|
||||
load 412104-1.svg
|
||||
load 413174-1.svg
|
||||
load 414188-1.svg
|
||||
load 427325-1.svg
|
||||
|
|
|
@ -1258,22 +1258,22 @@ bool ScriptExecutorRunnable::WorkerRun(JSContext* aCx,
|
|||
if (mScriptLoader->CleanedUp()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// We must be on the same worker as we started on.
|
||||
MOZ_ASSERT(
|
||||
mScriptLoader->mSyncLoopTarget == mSyncLoopTarget,
|
||||
"Unexpected SyncLoopTarget. Check if the sync loop was closed early");
|
||||
// We must be on the same worker as we started on.
|
||||
MOZ_ASSERT(
|
||||
mScriptLoader->mSyncLoopTarget == mSyncLoopTarget,
|
||||
"Unexpected SyncLoopTarget. Check if the sync loop was closed early");
|
||||
|
||||
for (const auto& requestHandle : mLoadedRequests) {
|
||||
// The request must be valid.
|
||||
MOZ_ASSERT(!requestHandle->IsEmpty());
|
||||
for (const auto& requestHandle : mLoadedRequests) {
|
||||
// The request must be valid.
|
||||
MOZ_ASSERT(!requestHandle->IsEmpty());
|
||||
|
||||
// Release the request to the worker. From this point on, the Request Handle
|
||||
// is empty.
|
||||
RefPtr<ScriptLoadRequest> request = requestHandle->ReleaseRequest();
|
||||
// Release the request to the worker. From this point on, the Request
|
||||
// Handle is empty.
|
||||
RefPtr<ScriptLoadRequest> request = requestHandle->ReleaseRequest();
|
||||
|
||||
mScriptLoader->MaybeMoveToLoadedList(request);
|
||||
mScriptLoader->MaybeMoveToLoadedList(request);
|
||||
}
|
||||
}
|
||||
return mScriptLoader->ProcessPendingRequests(aCx);
|
||||
}
|
||||
|
|
|
@ -261,7 +261,11 @@ class WorkletFetchHandler final : public PromiseNativeHandler,
|
|||
virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,
|
||||
ErrorResult& aRv) override {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
RejectPromises(NS_ERROR_DOM_NETWORK_ERR);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/worklets.html#dom-worklet-addmodule
|
||||
// Step 6.4.1. If script is null, then:
|
||||
// Step 1.1.2. Reject promise with an "AbortError" DOMException.
|
||||
RejectPromises(NS_ERROR_DOM_ABORT_ERR);
|
||||
}
|
||||
|
||||
const nsCString& URL() const { return mURL; }
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
<bindings xmlns="http://www.mozilla.org/xbl"><binding id="foo"><content>
|
||||
<a xmlns="http://www.w3.org/1999/xhtml" href="http://www.mozilla.org/" id="mlink">Foo<children xmlns="http://www.mozilla.org/xbl"/></a>
|
||||
</content></binding></bindings>
|
|
@ -682,6 +682,8 @@ void gfxPlatformMac::GetCommonFallbackFonts(uint32_t aCh, Script aRunScript,
|
|||
case Script::TANGSA:
|
||||
case Script::TOTO:
|
||||
case Script::VITHKUQI:
|
||||
case Script::KAWI:
|
||||
case Script::NAG_MUNDARI:
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ TEST(IntlDateIntervalFormat, TryFormatDateTime)
|
|||
spanResult = formatted.ToSpan();
|
||||
ASSERT_TRUE(spanResult.isOk());
|
||||
ASSERT_EQ(spanResult.unwrap(),
|
||||
MakeStringSpan(u"01/03, 00:00 – 01/05, 00:00"));
|
||||
MakeStringSpan(u"01/03, 00:00\u2009–\u200901/05, 00:00"));
|
||||
}
|
||||
|
||||
TEST(IntlDateIntervalFormat, TryFormatCalendar)
|
||||
|
@ -104,7 +104,7 @@ TEST(IntlDateIntervalFormat, TryFormatCalendar)
|
|||
spanResult = formatted.ToSpan();
|
||||
ASSERT_TRUE(spanResult.isOk());
|
||||
ASSERT_EQ(spanResult.unwrap(),
|
||||
MakeStringSpan(u"01/03, 00:00 – 01/05, 00:00"));
|
||||
MakeStringSpan(u"01/03, 00:00\u2009–\u200901/05, 00:00"));
|
||||
}
|
||||
|
||||
TEST(IntlDateIntervalFormat, TryFormattedToParts)
|
||||
|
@ -123,7 +123,8 @@ TEST(IntlDateIntervalFormat, TryFormattedToParts)
|
|||
ASSERT_FALSE(equal);
|
||||
|
||||
Span<const char16_t> formattedSpan = formatted.ToSpan().unwrap();
|
||||
ASSERT_EQ(formattedSpan, MakeStringSpan(u"01/03, 00:00 – 01/05, 00:00"));
|
||||
ASSERT_EQ(formattedSpan,
|
||||
MakeStringSpan(u"01/03, 00:00\u2009–\u200901/05, 00:00"));
|
||||
|
||||
mozilla::intl::DateTimePartVector parts;
|
||||
result = dif->TryFormattedToParts(formatted, parts);
|
||||
|
@ -164,7 +165,7 @@ TEST(IntlDateIntervalFormat, TryFormattedToParts)
|
|||
ASSERT_EQ(parts[6].mSource, DateTimePartSource::StartRange);
|
||||
|
||||
ASSERT_EQ(parts[7].mType, DateTimePartType::Literal);
|
||||
ASSERT_EQ(getSubSpan(7), MakeStringSpan(u" – "));
|
||||
ASSERT_EQ(getSubSpan(7), MakeStringSpan(u"\u2009–\u2009"));
|
||||
ASSERT_EQ(parts[7].mSource, DateTimePartSource::Shared);
|
||||
|
||||
ASSERT_EQ(parts[8].mType, DateTimePartType::Month);
|
||||
|
|
|
@ -38,7 +38,7 @@ TEST(IntlDateTimeFormat, Style_enUS_utf8)
|
|||
TestBuffer<char> buffer;
|
||||
dtFormat->TryFormat(DATE, buffer).unwrap();
|
||||
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, Style_enUS_utf16)
|
||||
|
@ -51,7 +51,7 @@ TEST(IntlDateTimeFormat, Style_enUS_utf16)
|
|||
TestBuffer<char16_t> buffer;
|
||||
dtFormat->TryFormat(DATE, buffer).unwrap();
|
||||
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"Sep 23, 2002, 8:07:30 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"Sep 23, 2002, 8:07:30\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, Style_ar_utf8)
|
||||
|
@ -86,7 +86,7 @@ TEST(IntlDateTimeFormat, Style_enUS_fallback_to_default_styles)
|
|||
TestBuffer<char> buffer;
|
||||
dtFormat->TryFormat(DATE, buffer).unwrap();
|
||||
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 8:07:30\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, Time_zone_IANA_identifier)
|
||||
|
@ -103,7 +103,7 @@ TEST(IntlDateTimeFormat, Time_zone_IANA_identifier)
|
|||
.unwrap();
|
||||
TestBuffer<char> buffer;
|
||||
dtFormat->TryFormat(DATE, buffer).unwrap();
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 12:07:30 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches("Sep 23, 2002, 12:07:30\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, GetAllowedHourCycles)
|
||||
|
@ -191,7 +191,7 @@ TEST(IntlDateTimeFormat, Components)
|
|||
|
||||
TestBuffer<char16_t> buffer;
|
||||
ASSERT_TRUE(FormatComponents(buffer, components));
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"9/23/2002, 8:07:30 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"9/23/2002, 8:07:30\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, Components_es_ES)
|
||||
|
@ -246,7 +246,7 @@ TEST(IntlDateTimeFormat, ComponentsHour12Default)
|
|||
|
||||
TestBuffer<char16_t> buffer;
|
||||
ASSERT_TRUE(FormatComponents(buffer, components));
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"8:07 PM"));
|
||||
ASSERT_TRUE(buffer.verboseMatches(u"8:07\u202FPM"));
|
||||
}
|
||||
|
||||
TEST(IntlDateTimeFormat, ComponentsHour24)
|
||||
|
|
|
@ -108,10 +108,8 @@ static bool IsStandaloneMonth(UDateFormatSymbolType symbolType) {
|
|||
case UDAT_ZODIAC_NAMES_WIDE:
|
||||
case UDAT_ZODIAC_NAMES_ABBREVIATED:
|
||||
case UDAT_ZODIAC_NAMES_NARROW:
|
||||
# ifndef U_HIDE_DRAFT_API
|
||||
case UDAT_NARROW_QUARTERS:
|
||||
case UDAT_STANDALONE_NARROW_QUARTERS:
|
||||
# endif
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -820,11 +820,7 @@ class DisplayNames final {
|
|||
break;
|
||||
|
||||
case DisplayNames::Style::Narrow:
|
||||
#ifndef U_HIDE_DRAFT_API
|
||||
symbolType = UDAT_STANDALONE_NARROW_QUARTERS;
|
||||
#else
|
||||
symbolType = UDAT_STANDALONE_SHORT_QUARTERS;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Generated by make_intl_data.py. DO NOT EDIT.
|
||||
// Version: CLDR-41
|
||||
// URL: https://unicode.org/Public/cldr/41/core.zip
|
||||
// Version: CLDR-42
|
||||
// URL: https://unicode.org/Public/cldr/42/core.zip
|
||||
|
||||
#include "mozilla/Assertions.h"
|
||||
#include "mozilla/Span.h"
|
||||
|
@ -99,8 +99,8 @@ static bool IsCanonicallyCasedTransformType(mozilla::Span<const char> type) {
|
|||
#endif
|
||||
|
||||
// Mappings from language subtags to preferred values.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
|
||||
MOZ_ASSERT(IsStructurallyValidLanguageTag(language.Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(language.Span()));
|
||||
|
@ -121,91 +121,91 @@ bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
|
|||
}
|
||||
|
||||
if (language.Length() == 3) {
|
||||
static const char languages[404][4] = {
|
||||
"aam", "aar", "abk", "adp", "afr", "agp", "ais", "aju", "aka", "alb",
|
||||
"als", "amh", "ara", "arb", "arg", "arm", "asd", "asm", "aue", "ava",
|
||||
"ave", "aym", "ayr", "ayx", "aze", "azj", "bak", "bam", "baq", "baz",
|
||||
"bcc", "bcl", "bel", "ben", "bgm", "bhk", "bic", "bih", "bis", "bjd",
|
||||
"bjq", "bkb", "blg", "bod", "bos", "bre", "btb", "bul", "bur", "bxk",
|
||||
"bxr", "cat", "ccq", "ces", "cha", "che", "chi", "chu", "chv", "cjr",
|
||||
"cka", "cld", "cmk", "cmn", "cor", "cos", "coy", "cqu", "cre", "cwd",
|
||||
"cym", "cze", "daf", "dan", "dap", "deu", "dgo", "dhd", "dik", "diq",
|
||||
"dit", "div", "djl", "dkl", "drh", "drr", "dud", "duj", "dut", "dwl",
|
||||
"dzo", "ekk", "ell", "elp", "emk", "eng", "epo", "esk", "est", "eus",
|
||||
"ewe", "fao", "fas", "fat", "fij", "fin", "fra", "fre", "fry", "fuc",
|
||||
"ful", "gav", "gaz", "gbc", "gbo", "geo", "ger", "gfx", "ggn", "ggo",
|
||||
"ggr", "gio", "gla", "gle", "glg", "gli", "glv", "gno", "gre", "grn",
|
||||
"gti", "gug", "guj", "guv", "gya", "hat", "hau", "hdn", "hea", "heb",
|
||||
"her", "him", "hin", "hmo", "hrr", "hrv", "hun", "hye", "ibi", "ibo",
|
||||
"ice", "ido", "iii", "ike", "iku", "ile", "ill", "ilw", "ina", "ind",
|
||||
"ipk", "isl", "ita", "izi", "jar", "jav", "jeg", "jpn", "kal", "kan",
|
||||
"kas", "kat", "kau", "kaz", "kdv", "kgc", "kgd", "kgh", "khk", "khm",
|
||||
"kik", "kin", "kir", "kmr", "knc", "kng", "knn", "koj", "kom", "kon",
|
||||
"kor", "kpp", "kpv", "krm", "ktr", "kua", "kur", "kvs", "kwq", "kxe",
|
||||
"kxl", "kzh", "kzj", "kzt", "lao", "lat", "lav", "lbk", "leg", "lii",
|
||||
"lim", "lin", "lit", "llo", "lmm", "ltz", "lub", "lug", "lvs", "mac",
|
||||
"mah", "mal", "mao", "mar", "may", "meg", "mgx", "mhr", "mkd", "mlg",
|
||||
"mlt", "mnk", "mnt", "mof", "mol", "mon", "mri", "msa", "mst", "mup",
|
||||
"mwd", "mwj", "mya", "myd", "myt", "nad", "nau", "nav", "nbf", "nbl",
|
||||
"nbx", "ncp", "nde", "ndo", "nep", "nld", "nln", "nlr", "nno", "nns",
|
||||
"nnx", "nob", "noo", "nor", "npi", "nts", "nxu", "nya", "oci", "ojg",
|
||||
"oji", "ori", "orm", "ory", "oss", "oun", "pan", "pat", "pbu", "pcr",
|
||||
"per", "pes", "pli", "plt", "pmc", "pmu", "pnb", "pol", "por", "ppa",
|
||||
"ppr", "pry", "pus", "puz", "que", "quz", "rmr", "rmy", "roh", "ron",
|
||||
"rum", "run", "rus", "sag", "san", "sap", "sca", "scc", "scr", "sgl",
|
||||
"sin", "skk", "slk", "slo", "slv", "sme", "smo", "sna", "snd", "som",
|
||||
"sot", "spa", "spy", "sqi", "src", "srd", "srp", "ssw", "sul", "sum",
|
||||
"sun", "swa", "swe", "swh", "tah", "tam", "tat", "tdu", "tel", "tgg",
|
||||
"tgk", "tgl", "tha", "thc", "thw", "thx", "tib", "tid", "tie", "tir",
|
||||
"tkk", "tlw", "tmp", "tne", "ton", "tsf", "tsn", "tso", "ttq", "tuk",
|
||||
"tur", "twi", "uig", "ukr", "umu", "unp", "uok", "urd", "uzb", "uzn",
|
||||
"ven", "vie", "vol", "wel", "wgw", "wit", "wiw", "wln", "wol", "xba",
|
||||
"xho", "xia", "xkh", "xpe", "xrq", "xsj", "xsl", "ybd", "ydd", "yen",
|
||||
"yid", "yiy", "yma", "ymt", "yor", "yos", "yuu", "zai", "zha", "zho",
|
||||
"zir", "zsm", "zul", "zyb",
|
||||
static const char languages[408][4] = {
|
||||
"aam", "aar", "abk", "adp", "afr", "agp", "ais", "ajt", "aju", "aka",
|
||||
"alb", "als", "amh", "ara", "arb", "arg", "arm", "asd", "asm", "aue",
|
||||
"ava", "ave", "aym", "ayr", "ayx", "aze", "azj", "bak", "bam", "baq",
|
||||
"baz", "bcc", "bcl", "bel", "ben", "bgm", "bhk", "bic", "bih", "bis",
|
||||
"bjd", "bjq", "bkb", "blg", "bod", "bos", "bre", "btb", "bul", "bur",
|
||||
"bxk", "bxr", "cat", "ccq", "ces", "cha", "che", "chi", "chu", "chv",
|
||||
"cjr", "cka", "cld", "cmk", "cmn", "cor", "cos", "coy", "cqu", "cre",
|
||||
"cwd", "cym", "cze", "daf", "dan", "dap", "deu", "dgo", "dhd", "dik",
|
||||
"diq", "dit", "div", "djl", "dkl", "drh", "drr", "dud", "duj", "dut",
|
||||
"dwl", "dzo", "ekk", "ell", "elp", "emk", "eng", "epo", "esk", "est",
|
||||
"eus", "ewe", "fao", "fas", "fat", "fij", "fin", "fra", "fre", "fry",
|
||||
"fuc", "ful", "gav", "gaz", "gbc", "gbo", "geo", "ger", "gfx", "ggn",
|
||||
"ggo", "ggr", "gio", "gla", "gle", "glg", "gli", "glv", "gno", "gre",
|
||||
"grn", "gti", "gug", "guj", "guv", "gya", "hat", "hau", "hdn", "hea",
|
||||
"heb", "her", "him", "hin", "hmo", "hrr", "hrv", "hun", "hye", "ibi",
|
||||
"ibo", "ice", "ido", "iii", "ike", "iku", "ile", "ill", "ilw", "ina",
|
||||
"ind", "ipk", "isl", "ita", "izi", "jar", "jav", "jeg", "jpn", "kal",
|
||||
"kan", "kas", "kat", "kau", "kaz", "kdv", "kgc", "kgd", "kgh", "khk",
|
||||
"khm", "kik", "kin", "kir", "kmr", "knc", "kng", "knn", "koj", "kom",
|
||||
"kon", "kor", "kpp", "kpv", "krm", "ktr", "kua", "kur", "kvs", "kwq",
|
||||
"kxe", "kxl", "kzh", "kzj", "kzt", "lak", "lao", "lat", "lav", "lbk",
|
||||
"leg", "lii", "lim", "lin", "lit", "llo", "lmm", "ltz", "lub", "lug",
|
||||
"lvs", "mac", "mah", "mal", "mao", "mar", "may", "meg", "mgx", "mhr",
|
||||
"mkd", "mlg", "mlt", "mnk", "mnt", "mof", "mol", "mon", "mri", "msa",
|
||||
"mst", "mup", "mwd", "mwj", "mya", "myd", "myt", "nad", "nau", "nav",
|
||||
"nbf", "nbl", "nbx", "ncp", "nde", "ndo", "nep", "nld", "nln", "nlr",
|
||||
"nno", "nns", "nnx", "nob", "noo", "nor", "npi", "nts", "nxu", "nya",
|
||||
"oci", "ojg", "oji", "ori", "orm", "ory", "oss", "oun", "pan", "pat",
|
||||
"pbu", "pcr", "per", "pes", "pli", "plt", "pmc", "pmu", "pnb", "pol",
|
||||
"por", "ppa", "ppr", "pry", "pus", "puz", "que", "quz", "rmr", "rmy",
|
||||
"roh", "ron", "rum", "run", "rus", "sag", "san", "sap", "sca", "scc",
|
||||
"scr", "sgl", "sin", "skk", "slk", "slo", "slv", "smd", "sme", "smo",
|
||||
"sna", "snb", "snd", "som", "sot", "spa", "spy", "sqi", "src", "srd",
|
||||
"srp", "ssw", "sul", "sum", "sun", "swa", "swe", "swh", "tah", "tam",
|
||||
"tat", "tdu", "tel", "tgg", "tgk", "tgl", "tha", "thc", "thw", "thx",
|
||||
"tib", "tid", "tie", "tir", "tkk", "tlw", "tmp", "tne", "ton", "tsf",
|
||||
"tsn", "tso", "ttq", "tuk", "tur", "twi", "uig", "ukr", "umu", "unp",
|
||||
"uok", "urd", "uzb", "uzn", "ven", "vie", "vol", "wel", "wgw", "wit",
|
||||
"wiw", "wln", "wol", "xba", "xho", "xia", "xkh", "xpe", "xrq", "xsj",
|
||||
"xsl", "ybd", "ydd", "yen", "yid", "yiy", "yma", "ymt", "yor", "yos",
|
||||
"yuu", "zai", "zha", "zho", "zir", "zsm", "zul", "zyb",
|
||||
};
|
||||
static const char* aliases[404] = {
|
||||
"aas", "aa", "ab", "dz", "af", "apf", "ami", "jrb", "ak", "sq",
|
||||
"sq", "am", "ar", "ar", "an", "hy", "snz", "as", "ktz", "av",
|
||||
"ae", "ay", "ay", "nun", "az", "az", "ba", "bm", "eu", "nvo",
|
||||
"bal", "bik", "be", "bn", "bcg", "fbl", "bir", "bho", "bi", "drl",
|
||||
"bzc", "ebk", "iba", "bo", "bs", "br", "beb", "bg", "my", "luy",
|
||||
"bua", "ca", "rki", "cs", "ch", "ce", "zh", "cu", "cv", "mom",
|
||||
"cmr", "syr", "xch", "zh", "kw", "co", "pij", "quh", "cr", "cr",
|
||||
"cy", "cs", "dnj", "da", "njz", "de", "doi", "mwr", "din", "zza",
|
||||
"dif", "dv", "dze", "aqd", "mn", "kzk", "uth", "dwu", "nl", "dbt",
|
||||
"dz", "et", "el", "amq", "man", "en", "eo", "ik", "et", "eu",
|
||||
"ee", "fo", "fa", "ak", "fj", "fi", "fr", "fr", "fy", "ff",
|
||||
"ff", "dev", "om", "wny", "grb", "ka", "de", "vaj", "gvr", "esg",
|
||||
"gtu", "aou", "gd", "ga", "gl", "kzk", "gv", "gon", "el", "gn",
|
||||
"nyc", "gn", "gu", "duz", "gba", "ht", "ha", "hai", "hmn", "he",
|
||||
"hz", "srx", "hi", "ho", "jal", "hr", "hu", "hy", "opa", "ig",
|
||||
"is", "io", "ii", "iu", "iu", "ie", "ilm", "gal", "ia", "id",
|
||||
"ik", "is", "it", "eza", "jgk", "jv", "oyb", "ja", "kl", "kn",
|
||||
"ks", "ka", "kr", "kk", "zkd", "tdf", "ncq", "kml", "mn", "km",
|
||||
"ki", "rw", "ky", "ku", "kr", "kg", "kok", "kwv", "kv", "kg",
|
||||
"ko", "jkm", "kv", "bmf", "dtp", "kj", "ku", "gdj", "yam", "tvd",
|
||||
"kru", "dgl", "dtp", "dtp", "lo", "la", "lv", "bnc", "enl", "raq",
|
||||
"li", "ln", "lt", "ngt", "rmx", "lb", "lu", "lg", "lv", "mk",
|
||||
"mh", "ml", "mi", "mr", "ms", "cir", "jbk", "chm", "mk", "mg",
|
||||
"mt", "man", "wnn", "xnt", "ro", "mn", "mi", "ms", "mry", "raj",
|
||||
"dmw", "vaj", "my", "aog", "mry", "xny", "na", "nv", "nru", "nr",
|
||||
"ekc", "kdz", "nd", "ng", "ne", "nl", "azd", "nrk", "nn", "nbr",
|
||||
"ngv", "nb", "dtd", "no", "ne", "pij", "bpp", "ny", "oc", "oj",
|
||||
"oj", "or", "om", "or", "os", "vaj", "pa", "kxr", "ps", "adx",
|
||||
"fa", "fa", "pi", "mg", "huw", "phr", "lah", "pl", "pt", "bfy",
|
||||
"lcq", "prt", "ps", "pub", "qu", "qu", "emx", "rom", "rm", "ro",
|
||||
"ro", "rn", "ru", "sg", "sa", "aqt", "hle", "sr", "hr", "isk",
|
||||
"si", "oyb", "sk", "sk", "sl", "se", "sm", "sn", "sd", "so",
|
||||
"st", "es", "kln", "sq", "sc", "sc", "sr", "ss", "sgd", "ulw",
|
||||
"su", "sw", "sv", "sw", "ty", "ta", "tt", "dtp", "te", "bjp",
|
||||
"tg", "fil", "th", "tpo", "ola", "oyb", "bo", "itd", "ras", "ti",
|
||||
"twm", "weo", "tyj", "kak", "to", "taj", "tn", "ts", "tmh", "tk",
|
||||
"tr", "ak", "ug", "uk", "del", "wro", "ema", "ur", "uz", "uz",
|
||||
"ve", "vi", "vo", "cy", "wgb", "nol", "nwo", "wa", "wo", "cax",
|
||||
"xh", "acn", "waw", "kpe", "dmw", "suj", "den", "rki", "yi", "ynq",
|
||||
"yi", "yrm", "lrr", "mtm", "yo", "zom", "yug", "zap", "za", "zh",
|
||||
"scv", "ms", "zu", "za",
|
||||
static const char* aliases[408] = {
|
||||
"aas", "aa", "ab", "dz", "af", "apf", "ami", "aeb", "jrb", "ak",
|
||||
"sq", "sq", "am", "ar", "ar", "an", "hy", "snz", "as", "ktz",
|
||||
"av", "ae", "ay", "ay", "nun", "az", "az", "ba", "bm", "eu",
|
||||
"nvo", "bal", "bik", "be", "bn", "bcg", "fbl", "bir", "bho", "bi",
|
||||
"drl", "bzc", "ebk", "iba", "bo", "bs", "br", "beb", "bg", "my",
|
||||
"luy", "bua", "ca", "rki", "cs", "ch", "ce", "zh", "cu", "cv",
|
||||
"mom", "cmr", "syr", "xch", "zh", "kw", "co", "pij", "quh", "cr",
|
||||
"cr", "cy", "cs", "dnj", "da", "njz", "de", "doi", "mwr", "din",
|
||||
"zza", "dif", "dv", "dze", "aqd", "mn", "kzk", "uth", "dwu", "nl",
|
||||
"dbt", "dz", "et", "el", "amq", "man", "en", "eo", "ik", "et",
|
||||
"eu", "ee", "fo", "fa", "ak", "fj", "fi", "fr", "fr", "fy",
|
||||
"ff", "ff", "dev", "om", "wny", "grb", "ka", "de", "vaj", "gvr",
|
||||
"esg", "gtu", "aou", "gd", "ga", "gl", "kzk", "gv", "gon", "el",
|
||||
"gn", "nyc", "gn", "gu", "duz", "gba", "ht", "ha", "hai", "hmn",
|
||||
"he", "hz", "srx", "hi", "ho", "jal", "hr", "hu", "hy", "opa",
|
||||
"ig", "is", "io", "ii", "iu", "iu", "ie", "ilm", "gal", "ia",
|
||||
"id", "ik", "is", "it", "eza", "jgk", "jv", "oyb", "ja", "kl",
|
||||
"kn", "ks", "ka", "kr", "kk", "zkd", "tdf", "ncq", "kml", "mn",
|
||||
"km", "ki", "rw", "ky", "ku", "kr", "kg", "kok", "kwv", "kv",
|
||||
"kg", "ko", "jkm", "kv", "bmf", "dtp", "kj", "ku", "gdj", "yam",
|
||||
"tvd", "kru", "dgl", "dtp", "dtp", "ksp", "lo", "la", "lv", "bnc",
|
||||
"enl", "raq", "li", "ln", "lt", "ngt", "rmx", "lb", "lu", "lg",
|
||||
"lv", "mk", "mh", "ml", "mi", "mr", "ms", "cir", "jbk", "chm",
|
||||
"mk", "mg", "mt", "man", "wnn", "xnt", "ro", "mn", "mi", "ms",
|
||||
"mry", "raj", "dmw", "vaj", "my", "aog", "mry", "xny", "na", "nv",
|
||||
"nru", "nr", "ekc", "kdz", "nd", "ng", "ne", "nl", "azd", "nrk",
|
||||
"nn", "nbr", "ngv", "nb", "dtd", "no", "ne", "pij", "bpp", "ny",
|
||||
"oc", "oj", "oj", "or", "om", "or", "os", "vaj", "pa", "kxr",
|
||||
"ps", "adx", "fa", "fa", "pi", "mg", "huw", "phr", "lah", "pl",
|
||||
"pt", "bfy", "lcq", "prt", "ps", "pub", "qu", "qu", "emx", "rom",
|
||||
"rm", "ro", "ro", "rn", "ru", "sg", "sa", "aqt", "hle", "sr",
|
||||
"hr", "isk", "si", "oyb", "sk", "sk", "sl", "kmb", "se", "sm",
|
||||
"sn", "iba", "sd", "so", "st", "es", "kln", "sq", "sc", "sc",
|
||||
"sr", "ss", "sgd", "ulw", "su", "sw", "sv", "sw", "ty", "ta",
|
||||
"tt", "dtp", "te", "bjp", "tg", "fil", "th", "tpo", "ola", "oyb",
|
||||
"bo", "itd", "ras", "ti", "twm", "weo", "tyj", "kak", "to", "taj",
|
||||
"tn", "ts", "tmh", "tk", "tr", "ak", "ug", "uk", "del", "wro",
|
||||
"ema", "ur", "uz", "uz", "ve", "vi", "vo", "cy", "wgb", "nol",
|
||||
"nwo", "wa", "wo", "cax", "xh", "acn", "waw", "kpe", "dmw", "suj",
|
||||
"den", "rki", "yi", "ynq", "yi", "yrm", "lrr", "mtm", "yo", "zom",
|
||||
"yug", "zap", "za", "zh", "scv", "ms", "zu", "za",
|
||||
};
|
||||
|
||||
if (const char* replacement = SearchReplacement(languages, aliases, language)) {
|
||||
|
@ -219,8 +219,8 @@ bool mozilla::intl::Locale::LanguageMapping(LanguageSubtag& language) {
|
|||
}
|
||||
|
||||
// Language subtags with complex mappings.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::ComplexLanguageMapping(const LanguageSubtag& language) {
|
||||
MOZ_ASSERT(IsStructurallyValidLanguageTag(language.Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(language.Span()));
|
||||
|
@ -241,8 +241,8 @@ bool mozilla::intl::Locale::ComplexLanguageMapping(const LanguageSubtag& languag
|
|||
}
|
||||
|
||||
// Mappings from script subtags to preferred values.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::ScriptMapping(ScriptSubtag& script) {
|
||||
MOZ_ASSERT(IsStructurallyValidScriptTag(script.Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedScriptTag(script.Span()));
|
||||
|
@ -257,8 +257,8 @@ bool mozilla::intl::Locale::ScriptMapping(ScriptSubtag& script) {
|
|||
}
|
||||
|
||||
// Mappings from region subtags to preferred values.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::RegionMapping(RegionSubtag& region) {
|
||||
MOZ_ASSERT(IsStructurallyValidRegionTag(region.Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedRegionTag(region.Span()));
|
||||
|
@ -357,8 +357,8 @@ bool mozilla::intl::Locale::RegionMapping(RegionSubtag& region) {
|
|||
}
|
||||
|
||||
// Region subtags with complex mappings.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::ComplexRegionMapping(const RegionSubtag& region) {
|
||||
MOZ_ASSERT(IsStructurallyValidRegionTag(region.Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedRegionTag(region.Span()));
|
||||
|
@ -380,8 +380,8 @@ bool mozilla::intl::Locale::ComplexRegionMapping(const RegionSubtag& region) {
|
|||
}
|
||||
|
||||
// Language subtags with complex mappings.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
void mozilla::intl::Locale::PerformComplexLanguageMappings() {
|
||||
MOZ_ASSERT(IsStructurallyValidLanguageTag(Language().Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(Language().Span()));
|
||||
|
@ -416,8 +416,8 @@ void mozilla::intl::Locale::PerformComplexLanguageMappings() {
|
|||
}
|
||||
|
||||
// Region subtags with complex mappings.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
void mozilla::intl::Locale::PerformComplexRegionMappings() {
|
||||
MOZ_ASSERT(IsStructurallyValidLanguageTag(Language().Span()));
|
||||
MOZ_ASSERT(IsCanonicallyCasedLanguageTag(Language().Span()));
|
||||
|
@ -643,8 +643,8 @@ static bool IsLessThan(const T& a, const U& b) {
|
|||
}
|
||||
|
||||
// Mappings from variant subtags to preferred values.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::PerformVariantMappings() {
|
||||
// The variant subtags need to be sorted for binary search.
|
||||
MOZ_ASSERT(std::is_sorted(mVariants.begin(), mVariants.end(),
|
||||
|
@ -707,8 +707,8 @@ bool mozilla::intl::Locale::PerformVariantMappings() {
|
|||
}
|
||||
|
||||
// Canonicalize legacy locale identifiers.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::UpdateLegacyMappings() {
|
||||
// We're mapping legacy tags to non-legacy form here.
|
||||
// Other tags remain unchanged.
|
||||
|
@ -865,8 +865,8 @@ bool mozilla::intl::Locale::UpdateLegacyMappings() {
|
|||
}
|
||||
|
||||
// Mappings from legacy sign languages.
|
||||
// Derived from CLDR Supplemental Data, version 41.
|
||||
// https://unicode.org/Public/cldr/41/core.zip
|
||||
// Derived from CLDR Supplemental Data, version 42.
|
||||
// https://unicode.org/Public/cldr/42/core.zip
|
||||
bool mozilla::intl::Locale::SignLanguageMapping(LanguageSubtag& language,
|
||||
const RegionSubtag& region) {
|
||||
MOZ_ASSERT(language.EqualTo("sgn"));
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
* Created on Thu Dec 2 15:20:26 2021 from UCD data files with version info:
|
||||
* Created on Tue Oct 25 06:53:25 2022 from UCD data files with version info:
|
||||
*
|
||||
|
||||
# Unicode Character Database
|
||||
# Date: 2021-09-10, 17:22:00 GMT [KW]
|
||||
# © 2021 Unicode®, Inc.
|
||||
# Date: 2022-09-02
|
||||
# © 2022 Unicode®, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
|
@ -24,17 +24,17 @@
|
|||
# UAX #44, "Unicode Character Database"
|
||||
# UTS #51, "Unicode Emoji"
|
||||
#
|
||||
# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode14.0.0/
|
||||
# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode15.0.0/
|
||||
|
||||
This directory contains the final data files
|
||||
for the Unicode Character Database, for Version 14.0.0 of the Unicode Standard.
|
||||
for the Unicode Character Database, for Version 15.0.0 of the Unicode Standard.
|
||||
|
||||
# IdentifierStatus.txt
|
||||
# Date: 2021-08-12, 01:13:34 GMT
|
||||
# Date: 2022-08-26, 16:49:09 GMT
|
||||
|
||||
#
|
||||
# Unihan_Variants.txt
|
||||
# Date: 2021-08-06 16:32:36 GMT [JHJ]
|
||||
# Date: 2022-08-01 16:36:07 GMT [JHJ]
|
||||
|
||||
# VerticalOrientation-17.txt
|
||||
# Date: 2016-10-20, 07:00:00 GMT [EM, KI, LI]
|
||||
|
@ -246,8 +246,10 @@ enum class Script : int16_t {
|
|||
TANGSA = 195,
|
||||
TOTO = 196,
|
||||
VITHKUQI = 197,
|
||||
KAWI = 198,
|
||||
NAG_MUNDARI = 199,
|
||||
|
||||
NUM_SCRIPT_CODES = 198,
|
||||
NUM_SCRIPT_CODES = 200,
|
||||
|
||||
INVALID = -1
|
||||
};
|
||||
|
|
|
@ -1,22 +1,19 @@
|
|||
diff --git a/intl/icu/source/data/locales/dsb.txt b/intl/icu/source/data/locales/dsb.txt
|
||||
--- a/intl/icu/source/data/locales/dsb.txt
|
||||
+++ b/intl/icu/source/data/locales/dsb.txt
|
||||
@@ -532,25 +532,29 @@ dsb{
|
||||
few{"'tyźeń' W MMMM"}
|
||||
one{"'tyźeń' W MMMM"}
|
||||
other{"'tyźeń' W MMMM"}
|
||||
two{"'tyźeń' W MMMM"}
|
||||
@@ -547,23 +547,27 @@ dsb{
|
||||
other{"W. 'tyźeń' MMMM"}
|
||||
two{"W. 'tyźeń' MMMM"}
|
||||
}
|
||||
- MMMMd{"d MMMM"}
|
||||
+ MMMMd{"d. MMMM"}
|
||||
MMMMd{"d. MMMM"}
|
||||
MMMd{"d. MMM"}
|
||||
+ MMd{"d. MM"}
|
||||
+ MMdd{"dd. MM"}
|
||||
Md{"d.M."}
|
||||
d{"d"}
|
||||
h{"h a"}
|
||||
hm{"h:mm a"}
|
||||
hms{"h:mm:ss a"}
|
||||
d{"d."}
|
||||
h{"h a"}
|
||||
hm{"h:mm a"}
|
||||
hms{"h:mm:ss a"}
|
||||
ms{"mm:ss"}
|
||||
y{"y"}
|
||||
yM{"M.y"}
|
||||
|
@ -31,26 +28,23 @@ diff --git a/intl/icu/source/data/locales/dsb.txt b/intl/icu/source/data/locales
|
|||
yQQQ{"QQQ y"}
|
||||
yQQQQ{"QQQQ y"}
|
||||
yw{
|
||||
few{"'tyźeń' w 'lěta' Y"}
|
||||
few{"w. 'tyźeń' 'lěta' Y"}
|
||||
diff --git a/intl/icu/source/data/locales/hsb.txt b/intl/icu/source/data/locales/hsb.txt
|
||||
--- a/intl/icu/source/data/locales/hsb.txt
|
||||
+++ b/intl/icu/source/data/locales/hsb.txt
|
||||
@@ -531,25 +531,29 @@ hsb{
|
||||
few{"'tydźeń' W MMMM"}
|
||||
one{"'tydźeń' W MMMM"}
|
||||
other{"'tydźeń' W MMMM"}
|
||||
two{"'tydźeń' W MMMM"}
|
||||
@@ -546,23 +546,27 @@ hsb{
|
||||
other{"W. 'tydźeń' MMMM"}
|
||||
two{"W. 'tydźeń' MMMM"}
|
||||
}
|
||||
- MMMMd{"d MMMM"}
|
||||
+ MMMMd{"d. MMMM"}
|
||||
MMMMd{"d. MMMM"}
|
||||
MMMd{"d. MMM"}
|
||||
+ MMd{"d. MM"}
|
||||
+ MMdd{"dd. MM"}
|
||||
Md{"d.M."}
|
||||
d{"d"}
|
||||
h{"h a"}
|
||||
hm{"h:mm a"}
|
||||
hms{"h:mm:ss a"}
|
||||
d{"d."}
|
||||
h{"h a"}
|
||||
hm{"h:mm a"}
|
||||
hms{"h:mm:ss a"}
|
||||
ms{"mm:ss"}
|
||||
y{"y"}
|
||||
yM{"M.y"}
|
||||
|
@ -65,4 +59,4 @@ diff --git a/intl/icu/source/data/locales/hsb.txt b/intl/icu/source/data/locales
|
|||
yQQQ{"QQQ y"}
|
||||
yQQQQ{"QQQQ y"}
|
||||
yw{
|
||||
few{"'tydźeń' w 'lěta' Y"}
|
||||
few{"w. 'tydźeń' 'lěta' Y"}
|
||||
|
|
|
@ -282,15 +282,17 @@ index 8d76b3f..c1a58db 100644
|
|||
|
||||
|
||||
diff --git a/intl/icu/source/common/unifiedcache.cpp b/intl/icu/source/common/unifiedcache.cpp
|
||||
index 493ab79..a13eed8 100644
|
||||
--- a/intl/icu/source/common/unifiedcache.cpp
|
||||
+++ b/intl/icu/source/common/unifiedcache.cpp
|
||||
@@ -13,15 +13,19 @@
|
||||
@@ -11,19 +11,23 @@
|
||||
*/
|
||||
|
||||
#include "unifiedcache.h"
|
||||
|
||||
#include <algorithm> // For std::max()
|
||||
-#include <mutex>
|
||||
+#ifndef __wasi__
|
||||
#include <mutex>
|
||||
+ #include <mutex>
|
||||
+#endif
|
||||
|
||||
#include "uassert.h"
|
||||
|
@ -302,10 +304,14 @@ index 493ab79..a13eed8 100644
|
|||
static std::mutex *gCacheMutex = nullptr;
|
||||
static std::condition_variable *gInProgressValueAddedCond;
|
||||
+#endif
|
||||
static icu::UInitOnce gCacheInitOnce = U_INITONCE_INITIALIZER;
|
||||
static icu::UInitOnce gCacheInitOnce {};
|
||||
|
||||
static const int32_t MAX_EVICT_ITERATIONS = 10;
|
||||
@@ -34,10 +38,12 @@ static UBool U_CALLCONV unifiedcache_cleanup() {
|
||||
static const int32_t DEFAULT_MAX_UNUSED = 1000;
|
||||
static const int32_t DEFAULT_PERCENTAGE_OF_IN_USE = 100;
|
||||
@@ -32,14 +36,16 @@ static const int32_t DEFAULT_PERCENTAGE_OF_IN_USE = 100;
|
||||
U_CDECL_BEGIN
|
||||
static UBool U_CALLCONV unifiedcache_cleanup() {
|
||||
gCacheInitOnce.reset();
|
||||
delete gCache;
|
||||
gCache = nullptr;
|
||||
|
@ -315,10 +321,14 @@ index 493ab79..a13eed8 100644
|
|||
gInProgressValueAddedCond->~condition_variable();
|
||||
gInProgressValueAddedCond = nullptr;
|
||||
+#endif
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
U_CDECL_END
|
||||
@@ -72,8 +78,10 @@ static void U_CALLCONV cacheInit(UErrorCode &status) {
|
||||
|
||||
|
||||
@@ -70,12 +76,14 @@ CacheKeyBase::~CacheKeyBase() {
|
||||
static void U_CALLCONV cacheInit(UErrorCode &status) {
|
||||
U_ASSERT(gCache == NULL);
|
||||
ucln_common_registerCleanup(
|
||||
UCLN_COMMON_UNIFIED_CACHE, unifiedcache_cleanup);
|
||||
|
||||
|
@ -329,7 +339,11 @@ index 493ab79..a13eed8 100644
|
|||
gCache = new UnifiedCache(status);
|
||||
if (gCache == NULL) {
|
||||
status = U_MEMORY_ALLOCATION_ERROR;
|
||||
@@ -135,28 +143,38 @@ void UnifiedCache::setEvictionPolicy(
|
||||
}
|
||||
if (U_FAILURE(status)) {
|
||||
@@ -133,41 +141,53 @@ void UnifiedCache::setEvictionPolicy(
|
||||
}
|
||||
if (count < 0 || percentageOfInUseItems < 0) {
|
||||
status = U_ILLEGAL_ARGUMENT_ERROR;
|
||||
return;
|
||||
}
|
||||
|
@ -368,7 +382,8 @@ index 493ab79..a13eed8 100644
|
|||
|
||||
// Use a loop in case cache items that are flushed held hard references to
|
||||
// other cache items making those additional cache items eligible for
|
||||
@@ -165,7 +183,9 @@ void UnifiedCache::flush() const {
|
||||
// flushing.
|
||||
while (_flush(false));
|
||||
}
|
||||
|
||||
void UnifiedCache::handleUnreferencedObject() const {
|
||||
|
@ -378,7 +393,11 @@ index 493ab79..a13eed8 100644
|
|||
--fNumValuesInUse;
|
||||
_runEvictionSlice();
|
||||
}
|
||||
@@ -184,7 +204,9 @@ void UnifiedCache::dump() {
|
||||
|
||||
#ifdef UNIFIED_CACHE_DEBUG
|
||||
@@ -182,11 +202,13 @@ void UnifiedCache::dump() {
|
||||
}
|
||||
cache->dumpContents();
|
||||
}
|
||||
|
||||
void UnifiedCache::dumpContents() const {
|
||||
|
@ -388,17 +407,25 @@ index 493ab79..a13eed8 100644
|
|||
_dumpContents();
|
||||
}
|
||||
|
||||
@@ -224,7 +246,9 @@ UnifiedCache::~UnifiedCache() {
|
||||
// Dumps content of cache.
|
||||
// On entry, gCacheMutex must be held.
|
||||
@@ -222,11 +244,13 @@ UnifiedCache::~UnifiedCache() {
|
||||
flush();
|
||||
{
|
||||
// Now all that should be left in the cache are entries that refer to
|
||||
// each other and entries with hard references from outside the cache.
|
||||
// Nothing we can do about these so proceed to wipe out the cache.
|
||||
+#ifndef __wasi__
|
||||
std::lock_guard<std::mutex> lock(*gCacheMutex);
|
||||
+#endif
|
||||
_flush(TRUE);
|
||||
_flush(true);
|
||||
}
|
||||
uhash_close(fHashtable);
|
||||
@@ -325,7 +349,9 @@ void UnifiedCache::_putIfAbsentAndGet(
|
||||
fHashtable = nullptr;
|
||||
delete fNoValue;
|
||||
@@ -323,11 +347,13 @@ void UnifiedCache::_putNew(
|
||||
|
||||
void UnifiedCache::_putIfAbsentAndGet(
|
||||
const CacheKeyBase &key,
|
||||
const SharedObject *&value,
|
||||
UErrorCode &status) const {
|
||||
|
@ -408,7 +435,11 @@ index 493ab79..a13eed8 100644
|
|||
const UHashElement *element = uhash_find(fHashtable, &key);
|
||||
if (element != NULL && !_inProgress(element)) {
|
||||
_fetch(element, value, status);
|
||||
@@ -350,14 +376,18 @@ UBool UnifiedCache::_poll(
|
||||
return;
|
||||
}
|
||||
@@ -348,18 +374,22 @@ UBool UnifiedCache::_poll(
|
||||
const CacheKeyBase &key,
|
||||
const SharedObject *&value,
|
||||
UErrorCode &status) const {
|
||||
U_ASSERT(value == NULL);
|
||||
U_ASSERT(status == U_ZERO_ERROR);
|
||||
|
@ -427,7 +458,11 @@ index 493ab79..a13eed8 100644
|
|||
element = uhash_find(fHashtable, &key);
|
||||
}
|
||||
|
||||
@@ -428,9 +458,11 @@ void UnifiedCache::_put(
|
||||
// If the hash table contains an entry for the key,
|
||||
// fetch out the contents and return them.
|
||||
@@ -426,13 +456,15 @@ void UnifiedCache::_put(
|
||||
UHashElement *ptr = const_cast<UHashElement *>(element);
|
||||
ptr->value.pointer = (void *) value;
|
||||
U_ASSERT(oldValue == fNoValue);
|
||||
removeSoftRef(oldValue);
|
||||
|
||||
|
@ -439,6 +474,8 @@ index 493ab79..a13eed8 100644
|
|||
}
|
||||
|
||||
void UnifiedCache::_fetch(
|
||||
const UHashElement *element,
|
||||
const SharedObject *&value,
|
||||
diff --git a/intl/icu/source/i18n/decContext.h b/intl/icu/source/i18n/decContext.h
|
||||
index 59ab65e..20f3526 100644
|
||||
--- a/intl/icu/source/i18n/decContext.h
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
# https://github.com/unicode-org/icu/pull/2067
|
||||
# https://github.com/unicode-org/icu/pull/2067.diff
|
||||
#
|
||||
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-21994
|
||||
|
||||
diff --git a/intl/icu/source/common/locid.cpp b/intl/icu/source/common/locid.cpp
|
||||
index 73bb8d8aec1..96d3851804d 100644
|
||||
--- a/intl/icu/source/common/locid.cpp
|
||||
+++ b/intl/icu/source/common/locid.cpp
|
||||
@@ -716,20 +716,19 @@ AliasDataBuilder::readAlias(
|
||||
status = U_MEMORY_ALLOCATION_ERROR;
|
||||
return;
|
||||
}
|
||||
- int i = 0;
|
||||
- while (ures_hasNext(alias)) {
|
||||
+ for (int i = 0; U_SUCCESS(status) && ures_hasNext(alias); i++) {
|
||||
LocalUResourceBundlePointer res(
|
||||
ures_getNextResource(alias, nullptr, &status));
|
||||
const char* aliasFrom = ures_getKey(res.getAlias());
|
||||
UnicodeString aliasTo =
|
||||
ures_getUnicodeStringByKey(res.getAlias(), "replacement", &status);
|
||||
+ if (U_FAILURE(status)) return;
|
||||
|
||||
checkType(aliasFrom);
|
||||
checkReplacement(aliasTo);
|
||||
|
||||
rawTypes[i] = aliasFrom;
|
||||
rawIndexes[i] = strings->add(aliasTo, status);
|
||||
- i++;
|
||||
}
|
||||
}
|
||||
|
19
intl/icu-patches/bug-1792775-ICU-22198.diff
Normal file
19
intl/icu-patches/bug-1792775-ICU-22198.diff
Normal file
|
@ -0,0 +1,19 @@
|
|||
# https://github.com/unicode-org/icu/pull/2248
|
||||
# https://github.com/unicode-org/icu/pull/2248.diff
|
||||
#
|
||||
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-22198
|
||||
|
||||
diff --git a/intl/icu/source/common/uresbund.cpp b/intl/icu/source/common/uresbund.cpp
|
||||
index 17c0177a05c..81fb90e1384 100644
|
||||
--- a/intl/icu/source/common/uresbund.cpp
|
||||
+++ b/intl/icu/source/common/uresbund.cpp
|
||||
@@ -202,7 +202,8 @@ typedef enum UResOpenType UResOpenType;
|
||||
*/
|
||||
static bool getParentLocaleID(char *name, const char *origName, UResOpenType openType) {
|
||||
// early out if the locale ID has a variant code or ends with _
|
||||
- if (name[uprv_strlen(name) - 1] == '_' || hasVariant(name)) {
|
||||
+ size_t nameLen = uprv_strlen(name);
|
||||
+ if (!nameLen || name[nameLen - 1] == '_' || hasVariant(name)) {
|
||||
return chopLocale(name);
|
||||
}
|
||||
|
351
intl/icu-patches/bug-1792775-ICU-22206.diff
Normal file
351
intl/icu-patches/bug-1792775-ICU-22206.diff
Normal file
|
@ -0,0 +1,351 @@
|
|||
# https://github.com/unicode-org/icu/pull/2255
|
||||
# https://github.com/unicode-org/icu/pull/2255.diff
|
||||
#
|
||||
# ICU bug: https://unicode-org.atlassian.net/browse/ICU-22206
|
||||
|
||||
diff --git a/intl/icu/source/common/rbbiscan.cpp b/intl/icu/source/common/rbbiscan.cpp
|
||||
index 8232bd94e47..87d31f8af40 100644
|
||||
--- a/intl/icu/source/common/rbbiscan.cpp
|
||||
+++ b/intl/icu/source/common/rbbiscan.cpp
|
||||
@@ -918,7 +918,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) {
|
||||
// Toggle quoting mode.
|
||||
// Return either '(' or ')', because quotes cause a grouping of the quoted text.
|
||||
fQuoteMode = !fQuoteMode;
|
||||
- if (fQuoteMode == true) {
|
||||
+ if (fQuoteMode) {
|
||||
c.fChar = chLParen;
|
||||
} else {
|
||||
c.fChar = chRParen;
|
||||
diff --git a/intl/icu/source/common/ucnvisci.cpp b/intl/icu/source/common/ucnvisci.cpp
|
||||
index 4d747e1ff84..839f7ff9c62 100644
|
||||
--- a/intl/icu/source/common/ucnvisci.cpp
|
||||
+++ b/intl/icu/source/common/ucnvisci.cpp
|
||||
@@ -1472,7 +1472,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo
|
||||
if (targetUniChar != missingCharMarker) {
|
||||
/* now save the targetUniChar for delayed write */
|
||||
*toUnicodeStatus = (UChar) targetUniChar;
|
||||
- if (data->resetToDefaultToUnicode==true) {
|
||||
+ if (data->resetToDefaultToUnicode) {
|
||||
data->currentDeltaToUnicode = data->defDeltaToUnicode;
|
||||
data->currentMaskToUnicode = data->defMaskToUnicode;
|
||||
data->resetToDefaultToUnicode=false;
|
||||
diff --git a/intl/icu/source/common/udata.cpp b/intl/icu/source/common/udata.cpp
|
||||
index 2bc74c97898..c5d0a9feb7b 100644
|
||||
--- a/intl/icu/source/common/udata.cpp
|
||||
+++ b/intl/icu/source/common/udata.cpp
|
||||
@@ -568,7 +568,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
|
||||
/* check for .dat files */
|
||||
pathBasename = findBasename(pathBuffer.data());
|
||||
|
||||
- if(checkLastFour == true &&
|
||||
+ if(checkLastFour &&
|
||||
(pathLen>=4) &&
|
||||
uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
|
||||
uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */
|
||||
diff --git a/intl/icu/source/common/uidna.cpp b/intl/icu/source/common/uidna.cpp
|
||||
index 1cbdeec3272..7135a166f21 100644
|
||||
--- a/intl/icu/source/common/uidna.cpp
|
||||
+++ b/intl/icu/source/common/uidna.cpp
|
||||
@@ -287,7 +287,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength,
|
||||
failPos = j;
|
||||
}
|
||||
}
|
||||
- if(useSTD3ASCIIRules == true){
|
||||
+ if(useSTD3ASCIIRules){
|
||||
// verify 3a and 3b
|
||||
// 3(a) Verify the absence of non-LDH ASCII code points; that is, the
|
||||
// absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F.
|
||||
@@ -731,7 +731,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength,
|
||||
remainingDestCapacity = 0;
|
||||
}
|
||||
|
||||
- if(done == true){
|
||||
+ if(done){
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -829,7 +829,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
|
||||
remainingDestCapacity = 0;
|
||||
}
|
||||
|
||||
- if(done == true){
|
||||
+ if(done){
|
||||
break;
|
||||
}
|
||||
|
||||
diff --git a/intl/icu/source/common/uresbund.cpp b/intl/icu/source/common/uresbund.cpp
|
||||
index 17c0177a05c..c065387bdae 100644
|
||||
--- a/intl/icu/source/common/uresbund.cpp
|
||||
+++ b/intl/icu/source/common/uresbund.cpp
|
||||
@@ -2448,7 +2448,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con
|
||||
res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key);
|
||||
if(res == RES_BOGUS) {
|
||||
key = inKey;
|
||||
- if(resB->fHasFallback == true) {
|
||||
+ if(resB->fHasFallback) {
|
||||
dataEntry = getFallbackData(resB, &key, &res, status);
|
||||
if(U_SUCCESS(*status)) {
|
||||
/* check if resB->fResPath gives the right name here */
|
||||
@@ -2503,7 +2503,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c
|
||||
|
||||
if(res == RES_BOGUS) {
|
||||
key = inKey;
|
||||
- if(resB->fHasFallback == true) {
|
||||
+ if(resB->fHasFallback) {
|
||||
dataEntry = getFallbackData(resB, &key, &res, status);
|
||||
if(U_SUCCESS(*status)) {
|
||||
switch (RES_GET_TYPE(res)) {
|
||||
diff --git a/intl/icu/source/common/usprep.cpp b/intl/icu/source/common/usprep.cpp
|
||||
index 50d16081d1d..8175dc7fa82 100644
|
||||
--- a/intl/icu/source/common/usprep.cpp
|
||||
+++ b/intl/icu/source/common/usprep.cpp
|
||||
@@ -160,7 +160,7 @@ usprep_internal_flushCache(UBool noRefCount){
|
||||
key = (UStringPrepKey *) e->key.pointer;
|
||||
|
||||
if ((noRefCount== false && profile->refCount == 0) ||
|
||||
- noRefCount== true) {
|
||||
+ noRefCount) {
|
||||
deletedNum++;
|
||||
uhash_removeElement(SHARED_DATA_HASHTABLE, e);
|
||||
|
||||
@@ -746,16 +746,16 @@ usprep_prepare( const UStringPrepProfile* profile,
|
||||
}
|
||||
}
|
||||
}
|
||||
- if(profile->checkBiDi == true){
|
||||
+ if(profile->checkBiDi){
|
||||
// satisfy 2
|
||||
- if( leftToRight == true && rightToLeft == true){
|
||||
+ if( leftToRight && rightToLeft){
|
||||
*status = U_STRINGPREP_CHECK_BIDI_ERROR;
|
||||
uprv_syntaxError(b2,(rtlPos>ltrPos) ? rtlPos : ltrPos, b2Len, parseError);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//satisfy 3
|
||||
- if( rightToLeft == true &&
|
||||
+ if( rightToLeft &&
|
||||
!((firstCharDir == U_RIGHT_TO_LEFT || firstCharDir == U_RIGHT_TO_LEFT_ARABIC) &&
|
||||
(direction == U_RIGHT_TO_LEFT || direction == U_RIGHT_TO_LEFT_ARABIC))
|
||||
){
|
||||
diff --git a/intl/icu/source/common/utext.cpp b/intl/icu/source/common/utext.cpp
|
||||
index 548e6a60f31..89e3d669f6e 100644
|
||||
--- a/intl/icu/source/common/utext.cpp
|
||||
+++ b/intl/icu/source/common/utext.cpp
|
||||
@@ -223,7 +223,7 @@ utext_current32(UText *ut) {
|
||||
trail = ut->chunkContents[ut->chunkOffset];
|
||||
}
|
||||
UBool r = ut->pFuncs->access(ut, nativePosition, false); // reverse iteration flag loads preceding chunk
|
||||
- U_ASSERT(r==true);
|
||||
+ U_ASSERT(r);
|
||||
ut->chunkOffset = originalOffset;
|
||||
if(!r) {
|
||||
return U_SENTINEL;
|
||||
diff --git a/intl/icu/source/i18n/calendar.cpp b/intl/icu/source/i18n/calendar.cpp
|
||||
index f5a40e48395..5431d87bdd2 100644
|
||||
--- a/intl/icu/source/i18n/calendar.cpp
|
||||
+++ b/intl/icu/source/i18n/calendar.cpp
|
||||
@@ -3510,7 +3510,7 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w
|
||||
switch(bestField) {
|
||||
case UCAL_WEEK_OF_YEAR:
|
||||
if(woy == 1) {
|
||||
- if(jan1InPrevYear == true) {
|
||||
+ if(jan1InPrevYear) {
|
||||
// the first week of January is in the previous year
|
||||
// therefore WOY1 is always solidly within yearWoy
|
||||
return yearWoy;
|
||||
diff --git a/intl/icu/source/i18n/dcfmtsym.cpp b/intl/icu/source/i18n/dcfmtsym.cpp
|
||||
index 5d06c189fbe..fa5920aaa50 100644
|
||||
--- a/intl/icu/source/i18n/dcfmtsym.cpp
|
||||
+++ b/intl/icu/source/i18n/dcfmtsym.cpp
|
||||
@@ -329,11 +329,13 @@ struct CurrencySpacingSink : public ResourceSink {
|
||||
// both beforeCurrency and afterCurrency were found in CLDR.
|
||||
static const char* defaults[] = { "[:letter:]", "[:digit:]", " " };
|
||||
if (!hasBeforeCurrency || !hasAfterCurrency) {
|
||||
- for (UBool beforeCurrency = 0; beforeCurrency <= true; beforeCurrency++) {
|
||||
- for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
|
||||
- dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
|
||||
- beforeCurrency, UnicodeString(defaults[pattern], -1, US_INV));
|
||||
- }
|
||||
+ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
|
||||
+ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
|
||||
+ false, UnicodeString(defaults[pattern], -1, US_INV));
|
||||
+ }
|
||||
+ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
|
||||
+ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
|
||||
+ true, UnicodeString(defaults[pattern], -1, US_INV));
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/intl/icu/source/i18n/dtitvinf.cpp b/intl/icu/source/i18n/dtitvinf.cpp
|
||||
index f5fb86ce581..0a30cf14419 100644
|
||||
--- a/intl/icu/source/i18n/dtitvinf.cpp
|
||||
+++ b/intl/icu/source/i18n/dtitvinf.cpp
|
||||
@@ -504,7 +504,7 @@ DateIntervalInfo::setIntervalPatternInternally(const UnicodeString& skeleton,
|
||||
}
|
||||
|
||||
patternsOfOneSkeleton[index] = intervalPattern;
|
||||
- if ( emptyHash == true ) {
|
||||
+ if ( emptyHash ) {
|
||||
fIntervalPatterns->put(skeleton, patternsOfOneSkeleton, status);
|
||||
}
|
||||
}
|
||||
@@ -748,7 +748,7 @@ U_CALLCONV dtitvinfHashTableValueComparator(UHashTok val1, UHashTok val2) {
|
||||
const UnicodeString* pattern2 = (UnicodeString*)val2.pointer;
|
||||
UBool ret = true;
|
||||
int8_t i;
|
||||
- for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret == true; ++i ) {
|
||||
+ for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret ; ++i ) {
|
||||
ret = (pattern1[i] == pattern2[i]);
|
||||
}
|
||||
return ret;
|
||||
diff --git a/intl/icu/source/i18n/gregocal.cpp b/intl/icu/source/i18n/gregocal.cpp
|
||||
index 882d25b4a2a..0e00127e314 100644
|
||||
--- a/intl/icu/source/i18n/gregocal.cpp
|
||||
+++ b/intl/icu/source/i18n/gregocal.cpp
|
||||
@@ -487,7 +487,7 @@ int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
|
||||
// The following check handles portions of the cutover year BEFORE the
|
||||
// cutover itself happens.
|
||||
//if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
|
||||
- if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
|
||||
+ if ((fIsGregorian) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
|
||||
#if defined (U_DEBUG_CAL)
|
||||
fprintf(stderr, "%s:%d: jd [invert] %d\n",
|
||||
__FILE__, __LINE__, jd);
|
||||
diff --git a/intl/icu/source/i18n/regexcmp.cpp b/intl/icu/source/i18n/regexcmp.cpp
|
||||
index 4b507002d63..adc8f700c7f 100644
|
||||
--- a/intl/icu/source/i18n/regexcmp.cpp
|
||||
+++ b/intl/icu/source/i18n/regexcmp.cpp
|
||||
@@ -4065,7 +4065,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) {
|
||||
if (c.fChar == (UChar32)-1) {
|
||||
break; // End of Input
|
||||
}
|
||||
- if (c.fChar == chPound && fEOLComments == true) {
|
||||
+ if (c.fChar == chPound && fEOLComments) {
|
||||
// Start of a comment. Consume the rest of it, until EOF or a new line
|
||||
for (;;) {
|
||||
c.fChar = nextCharLL();
|
||||
diff --git a/intl/icu/source/i18n/search.cpp b/intl/icu/source/i18n/search.cpp
|
||||
index 56d9b744098..d55902bfa7b 100644
|
||||
--- a/intl/icu/source/i18n/search.cpp
|
||||
+++ b/intl/icu/source/i18n/search.cpp
|
||||
@@ -81,10 +81,9 @@ USearchAttributeValue SearchIterator::getAttribute(
|
||||
{
|
||||
switch (attribute) {
|
||||
case USEARCH_OVERLAP :
|
||||
- return (m_search_->isOverlap == true ? USEARCH_ON : USEARCH_OFF);
|
||||
+ return (m_search_->isOverlap ? USEARCH_ON : USEARCH_OFF);
|
||||
case USEARCH_CANONICAL_MATCH :
|
||||
- return (m_search_->isCanonicalMatch == true ? USEARCH_ON :
|
||||
- USEARCH_OFF);
|
||||
+ return (m_search_->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
|
||||
case USEARCH_ELEMENT_COMPARISON :
|
||||
{
|
||||
int16_t value = m_search_->elementComparisonType;
|
||||
@@ -242,7 +241,7 @@ int32_t SearchIterator::next(UErrorCode &status)
|
||||
int32_t matchindex = m_search_->matchedIndex;
|
||||
int32_t matchlength = m_search_->matchedLength;
|
||||
m_search_->reset = false;
|
||||
- if (m_search_->isForwardSearching == true) {
|
||||
+ if (m_search_->isForwardSearching) {
|
||||
int32_t textlength = m_search_->textLength;
|
||||
if (offset == textlength || matchindex == textlength ||
|
||||
(matchindex != USEARCH_DONE &&
|
||||
@@ -295,7 +294,7 @@ int32_t SearchIterator::previous(UErrorCode &status)
|
||||
}
|
||||
|
||||
int32_t matchindex = m_search_->matchedIndex;
|
||||
- if (m_search_->isForwardSearching == true) {
|
||||
+ if (m_search_->isForwardSearching) {
|
||||
// switching direction.
|
||||
// if matchedIndex == USEARCH_DONE, it means that either a
|
||||
// setOffset has been called or that next ran off the text
|
||||
diff --git a/intl/icu/source/i18n/usearch.cpp b/intl/icu/source/i18n/usearch.cpp
|
||||
index 0fecd709e74..39f76a1b985 100644
|
||||
--- a/intl/icu/source/i18n/usearch.cpp
|
||||
+++ b/intl/icu/source/i18n/usearch.cpp
|
||||
@@ -819,11 +819,9 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
|
||||
if (strsrch) {
|
||||
switch (attribute) {
|
||||
case USEARCH_OVERLAP :
|
||||
- return (strsrch->search->isOverlap == true ? USEARCH_ON :
|
||||
- USEARCH_OFF);
|
||||
+ return (strsrch->search->isOverlap ? USEARCH_ON : USEARCH_OFF);
|
||||
case USEARCH_CANONICAL_MATCH :
|
||||
- return (strsrch->search->isCanonicalMatch == true ? USEARCH_ON :
|
||||
- USEARCH_OFF);
|
||||
+ return (strsrch->search->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
|
||||
case USEARCH_ELEMENT_COMPARISON :
|
||||
{
|
||||
int16_t value = strsrch->search->elementComparisonType;
|
||||
@@ -1249,7 +1247,7 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
|
||||
}
|
||||
|
||||
int32_t matchedindex = search->matchedIndex;
|
||||
- if (search->isForwardSearching == true) {
|
||||
+ if (search->isForwardSearching) {
|
||||
// switching direction.
|
||||
// if matchedIndex == USEARCH_DONE, it means that either a
|
||||
// setOffset has been called or that next ran off the text
|
||||
diff --git a/intl/icu/source/i18n/uspoof_conf.cpp b/intl/icu/source/i18n/uspoof_conf.cpp
|
||||
index 5ecc59c12a8..376ac64e3ce 100644
|
||||
--- a/intl/icu/source/i18n/uspoof_conf.cpp
|
||||
+++ b/intl/icu/source/i18n/uspoof_conf.cpp
|
||||
@@ -407,7 +407,7 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL
|
||||
//
|
||||
void ConfusabledataBuilder::outputData(UErrorCode &status) {
|
||||
|
||||
- U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned == true);
|
||||
+ U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned);
|
||||
|
||||
// The Key Table
|
||||
// While copying the keys to the runtime array,
|
||||
diff --git a/intl/icu/source/io/uscanf_p.cpp b/intl/icu/source/io/uscanf_p.cpp
|
||||
index 9b27e2ebf8d..26a790dd9b6 100644
|
||||
--- a/intl/icu/source/io/uscanf_p.cpp
|
||||
+++ b/intl/icu/source/io/uscanf_p.cpp
|
||||
@@ -323,7 +323,7 @@ u_scanf_skip_leading_ws(UFILE *input,
|
||||
UBool isNotEOF;
|
||||
|
||||
/* skip all leading ws in the input */
|
||||
- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (c == pad || u_isWhitespace(c)) )
|
||||
+ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (c == pad || u_isWhitespace(c)) )
|
||||
{
|
||||
count++;
|
||||
}
|
||||
@@ -357,7 +357,7 @@ u_scanf_skip_leading_positive_sign(UFILE *input,
|
||||
|
||||
if (U_SUCCESS(localStatus)) {
|
||||
/* skip all leading ws in the input */
|
||||
- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (count < symbolLen && c == plusSymbol[count]) )
|
||||
+ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (count < symbolLen && c == plusSymbol[count]) )
|
||||
{
|
||||
count++;
|
||||
}
|
||||
@@ -868,7 +868,7 @@ u_scanf_string_handler(UFILE *input,
|
||||
return -1;
|
||||
|
||||
while( (info->fWidth == -1 || count < info->fWidth)
|
||||
- && ((isNotEOF = ufile_getch(input, &c)) == true)
|
||||
+ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
|
||||
&& (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
|
||||
{
|
||||
|
||||
@@ -959,7 +959,7 @@ u_scanf_ustring_handler(UFILE *input,
|
||||
count = 0;
|
||||
|
||||
while( (info->fWidth == -1 || count < info->fWidth)
|
||||
- && ((isNotEOF = ufile_getch(input, &c)) == true)
|
||||
+ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
|
||||
&& (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
|
||||
{
|
||||
|
||||
@@ -1262,7 +1262,7 @@ u_scanf_scanset_handler(UFILE *input,
|
||||
|
||||
/* grab characters one at a time and make sure they are in the scanset */
|
||||
while(chLeft > 0) {
|
||||
- if ( ((isNotEOF = ufile_getch32(input, &c)) == true) && uset_contains(scanset, c) ) {
|
||||
+ if ( ((isNotEOF = ufile_getch32(input, &c))==(UBool)true) && uset_contains(scanset, c) ) {
|
||||
readCharacter = true;
|
||||
if (!info->fSkipArg) {
|
||||
int32_t idx = 0;
|
|
@ -1,5 +1,5 @@
|
|||
commit c205e7ee49a7086a28b9c275fcfdac9ca3dc815d
|
||||
Author: yumaoka <y.umaoka@gmail.com>
|
||||
Date: Wed Mar 30 14:47:46 2022 -0400
|
||||
commit ff3514f257ea10afe7e710e9f946f68d256704b1
|
||||
Author: Peter Edberg <pedberg@unicode.org>
|
||||
Date: Thu Oct 13 13:44:35 2022 -0700
|
||||
|
||||
ICU-21971 Added a new numeric currecny code SLE/695 for Sierra Leone Leone.
|
||||
ICU-21958 integrate CLDR release-42-beta5 to ICU main for 72
|
||||
|
|
|
@ -202,7 +202,8 @@
|
|||
"-/fields/sun",
|
||||
"-/fields/sun-narrow",
|
||||
"-/fields/sun-short",
|
||||
"-/measurementSystemNames"
|
||||
"-/measurementSystemNames",
|
||||
"-/personNames"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -341,7 +341,7 @@ $(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config
|
|||
chmod u+w $@
|
||||
@echo "# Following from icu/icu4c/source/config/Makefile.inc" >> $@
|
||||
LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
|
||||
@echo "# Following from @platform_make_fragment@" >> $@
|
||||
@echo "# Following from @platform_make_fragment_name@" >> $@
|
||||
LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
|
||||
cat $(top_srcdir)/config/icu-config-bottom >> $@
|
||||
chmod u-w $@
|
||||
|
@ -375,7 +375,7 @@ icu4j-data-install icu4j-data: all tests
|
|||
|
||||
# For updating Windows makefiles
|
||||
|
||||
WINDOWS_UPDATEFILES=$(srcdir)/data/makedata.mak $(shell find $(srcdir) -name '*.vcproj' -o -name '*.vcxproj')
|
||||
WINDOWS_UPDATEFILES=$(srcdir)/data/makedata.mak $(srcdir)/allinone/Build.Windows.IcuVersion.props
|
||||
|
||||
WINDOWS_UPDATEFILES_SED=config/windows-update.sed
|
||||
|
||||
|
|
8
intl/icu/source/allinone/Build.Windows.IcuVersion.props
Normal file
8
intl/icu/source/allinone/Build.Windows.IcuVersion.props
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- This file is used to set the ICU Major Version number, which is used as a suffix on various file names in other Visual Studio projects. -->
|
||||
<PropertyGroup>
|
||||
<IcuMajorVersion>72</IcuMajorVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -9,14 +9,16 @@
|
|||
<BuildToolVersion>$(VisualStudioVersion)</BuildToolVersion>
|
||||
<!-- Only use the MSBuildToolsVersion if we don't have the VisualStudioVersion and MSBuildToolsVersion is set to something other than Current. -->
|
||||
<BuildToolVersion Condition="'$(BuildToolVersion)'=='' and '$(MSBuildToolsVersion)' != 'Current'">$(MSBuildToolsVersion)</BuildToolVersion>
|
||||
<!-- Note:
|
||||
<!-- Version Note:
|
||||
v140 is the Visual Studio 2015 toolset. (14.0)
|
||||
v141 is the Visual Studio 2017 toolset. (15.0)
|
||||
v142 is the Visual Studio 2019 toolset. (16.0)
|
||||
v143 is the Visual Studio 2022 toolset. (17.0)
|
||||
-->
|
||||
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='14.0'">v140</AutoDetectedPlatformToolset>
|
||||
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='15.0'">v141</AutoDetectedPlatformToolset>
|
||||
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='16.0'">v142</AutoDetectedPlatformToolset>
|
||||
<AutoDetectedPlatformToolset Condition="'$(BuildToolVersion)'=='17.0'">v143</AutoDetectedPlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="EmptyDefaultPlatformToolset">
|
||||
<DefaultPlatformToolset Condition=" '$(DefaultPlatformToolset)' == '' ">$(AutoDetectedPlatformToolset)</DefaultPlatformToolset>
|
||||
|
@ -30,11 +32,11 @@
|
|||
If not already set, use the latest installed version of the Windows 10 SDK.
|
||||
The Windows 10 SDK is backwards compatible to Windows 7, as long as WINVER and _WIN32_WINNT are set before compiling.
|
||||
Note:
|
||||
- With VS2019, using a value of "10.0" means that it will use the latest installed version.
|
||||
- With VS2019, VS2022 using a value of "10.0" means that it will use the latest installed version.
|
||||
- With VS2017, we need to manually detect the latest SDK version from the registry.
|
||||
- With VS2015, use the Windows 8.1 SDK.
|
||||
-->
|
||||
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and '$(PlatformToolset)'=='v142'">
|
||||
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and ('$(PlatformToolset)'=='v142' or '$(PlatformToolset)'=='v143')">
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' and ('$(PlatformToolset)'=='v141' or '$(AutodetectWin10SDK)'=='true')">
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
|
||||
<!-- The following import will set the ICU Major Version number. -->
|
||||
<Import Project="Build.Windows.IcuVersion.props" />
|
||||
<!-- These are the default project configurations for building. -->
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- The following import will set the ICU Major Version number. -->
|
||||
<Import Project="Build.Windows.IcuVersion.props" />
|
||||
<!-- This file is used to set common configuration options for all *_uwp projects. -->
|
||||
<PropertyGroup>
|
||||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
|
|
|
@ -37,23 +37,23 @@ Appendable::appendString(const UChar *s, int32_t length) {
|
|||
UChar c;
|
||||
while((c=*s++)!=0) {
|
||||
if(!appendCodeUnit(c)) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if(length>0) {
|
||||
const UChar *limit=s+length;
|
||||
do {
|
||||
if(!appendCodeUnit(*s++)) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} while(s<limit);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
UBool
|
||||
Appendable::reserveAppendCapacity(int32_t /*appendCapacity*/) {
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
UChar *
|
||||
|
|
|
@ -309,9 +309,9 @@ BMPSet::contains(UChar32 c) const {
|
|||
// surrogate or supplementary code point
|
||||
return containsSlow(c, list4kStarts[0xd], list4kStarts[0x11]);
|
||||
} else {
|
||||
// Out-of-range code points get FALSE, consistent with long-standing
|
||||
// Out-of-range code points get false, consistent with long-standing
|
||||
// behavior of UnicodeSet::contains(c).
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -261,10 +261,10 @@ ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) {
|
|||
const UChar *extStart = u_memrchr(dictfname, 0x002e, dictnlength); // last dot
|
||||
if (extStart != NULL) {
|
||||
int32_t len = (int32_t)(extStart - dictfname);
|
||||
ext.appendInvariantChars(UnicodeString(FALSE, extStart + 1, dictnlength - len - 1), status);
|
||||
ext.appendInvariantChars(UnicodeString(false, extStart + 1, dictnlength - len - 1), status);
|
||||
dictnlength = len;
|
||||
}
|
||||
dictnbuf.appendInvariantChars(UnicodeString(FALSE, dictfname, dictnlength), status);
|
||||
dictnbuf.appendInvariantChars(UnicodeString(false, dictfname, dictnlength), status);
|
||||
ures_close(b);
|
||||
|
||||
UDataMemory *file = udata_open(U_ICUDATA_BRKITR, ext.data(), dictnbuf.data(), &status);
|
||||
|
|
|
@ -279,7 +279,7 @@ ICUBreakIteratorService::~ICUBreakIteratorService() {}
|
|||
// defined in ucln_cmn.h
|
||||
U_NAMESPACE_END
|
||||
|
||||
static icu::UInitOnce gInitOnceBrkiter = U_INITONCE_INITIALIZER;
|
||||
static icu::UInitOnce gInitOnceBrkiter {};
|
||||
static icu::ICULocaleService* gService = NULL;
|
||||
|
||||
|
||||
|
@ -296,7 +296,7 @@ static UBool U_CALLCONV breakiterator_cleanup(void) {
|
|||
}
|
||||
gInitOnceBrkiter.reset();
|
||||
#endif
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
U_CDECL_END
|
||||
U_NAMESPACE_BEGIN
|
||||
|
@ -347,7 +347,7 @@ BreakIterator::unregister(URegistryKey key, UErrorCode& status)
|
|||
}
|
||||
status = U_MEMORY_ALLOCATION_ERROR;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
// -------------------------------------
|
||||
|
|
|
@ -20,7 +20,7 @@ U_NAMESPACE_BEGIN
|
|||
UBool
|
||||
ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Length,
|
||||
ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
|
||||
if (U_FAILURE(errorCode)) { return FALSE; }
|
||||
if (U_FAILURE(errorCode)) { return false; }
|
||||
char scratch[200];
|
||||
int32_t s8Length = 0;
|
||||
for (int32_t i = 0; i < s16Length;) {
|
||||
|
@ -44,7 +44,7 @@ ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Lengt
|
|||
}
|
||||
if (j > (INT32_MAX - s8Length)) {
|
||||
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
sink.Append(buffer, j);
|
||||
s8Length += j;
|
||||
|
@ -52,17 +52,17 @@ ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Lengt
|
|||
if (edits != nullptr) {
|
||||
edits->addReplace(length, s8Length);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
UBool
|
||||
ByteSinkUtil::appendChange(const uint8_t *s, const uint8_t *limit,
|
||||
const char16_t *s16, int32_t s16Length,
|
||||
ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
|
||||
if (U_FAILURE(errorCode)) { return FALSE; }
|
||||
if (U_FAILURE(errorCode)) { return false; }
|
||||
if ((limit - s) > INT32_MAX) {
|
||||
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode);
|
||||
}
|
||||
|
@ -109,16 +109,16 @@ UBool
|
|||
ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
|
||||
ByteSink &sink, uint32_t options, Edits *edits,
|
||||
UErrorCode &errorCode) {
|
||||
if (U_FAILURE(errorCode)) { return FALSE; }
|
||||
if (U_FAILURE(errorCode)) { return false; }
|
||||
if ((limit - s) > INT32_MAX) {
|
||||
errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
int32_t length = (int32_t)(limit - s);
|
||||
if (length > 0) {
|
||||
appendNonEmptyUnchanged(s, length, sink, options, edits);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) {
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
// bytesinkutil.h
|
||||
// created: 2017sep14 Markus W. Scherer
|
||||
|
||||
#ifndef BYTESINKUTIL_H
|
||||
#define BYTESINKUTIL_H
|
||||
|
||||
#include "unicode/utypes.h"
|
||||
#include "unicode/bytestream.h"
|
||||
#include "unicode/edits.h"
|
||||
|
@ -81,3 +84,5 @@ private:
|
|||
};
|
||||
|
||||
U_NAMESPACE_END
|
||||
|
||||
#endif //BYTESINKUTIL_H
|
||||
|
|
|
@ -30,14 +30,14 @@ void ByteSink::Flush() {}
|
|||
|
||||
CheckedArrayByteSink::CheckedArrayByteSink(char* outbuf, int32_t capacity)
|
||||
: outbuf_(outbuf), capacity_(capacity < 0 ? 0 : capacity),
|
||||
size_(0), appended_(0), overflowed_(FALSE) {
|
||||
size_(0), appended_(0), overflowed_(false) {
|
||||
}
|
||||
|
||||
CheckedArrayByteSink::~CheckedArrayByteSink() {}
|
||||
|
||||
CheckedArrayByteSink& CheckedArrayByteSink::Reset() {
|
||||
size_ = appended_ = 0;
|
||||
overflowed_ = FALSE;
|
||||
overflowed_ = false;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -48,14 +48,14 @@ void CheckedArrayByteSink::Append(const char* bytes, int32_t n) {
|
|||
if (n > (INT32_MAX - appended_)) {
|
||||
// TODO: Report as integer overflow, not merely buffer overflow.
|
||||
appended_ = INT32_MAX;
|
||||
overflowed_ = TRUE;
|
||||
overflowed_ = true;
|
||||
return;
|
||||
}
|
||||
appended_ += n;
|
||||
int32_t available = capacity_ - size_;
|
||||
if (n > available) {
|
||||
n = available;
|
||||
overflowed_ = TRUE;
|
||||
overflowed_ = true;
|
||||
}
|
||||
if (n > 0 && bytes != (outbuf_ + size_)) {
|
||||
uprv_memcpy(outbuf_ + size_, bytes, n);
|
||||
|
|
|
@ -337,13 +337,13 @@ BytesTrie::findUniqueValueFromBranch(const uint8_t *pos, int32_t length,
|
|||
}
|
||||
} else {
|
||||
uniqueValue=value;
|
||||
haveUniqueValue=TRUE;
|
||||
haveUniqueValue=true;
|
||||
}
|
||||
} else {
|
||||
if(!findUniqueValue(pos+value, haveUniqueValue, uniqueValue)) {
|
||||
return NULL;
|
||||
}
|
||||
haveUniqueValue=TRUE;
|
||||
haveUniqueValue=true;
|
||||
}
|
||||
} while(--length>1);
|
||||
return pos+1; // ignore the last comparison byte
|
||||
|
@ -359,9 +359,9 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u
|
|||
}
|
||||
pos=findUniqueValueFromBranch(pos, node+1, haveUniqueValue, uniqueValue);
|
||||
if(pos==NULL) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
haveUniqueValue=TRUE;
|
||||
haveUniqueValue=true;
|
||||
} else if(node<kMinValueLead) {
|
||||
// linear-match node
|
||||
pos+=node-kMinLinearMatch+1; // Ignore the match bytes.
|
||||
|
@ -370,14 +370,14 @@ BytesTrie::findUniqueValue(const uint8_t *pos, UBool haveUniqueValue, int32_t &u
|
|||
int32_t value=readValue(pos, node>>1);
|
||||
if(haveUniqueValue) {
|
||||
if(value!=uniqueValue) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
uniqueValue=value;
|
||||
haveUniqueValue=TRUE;
|
||||
haveUniqueValue=true;
|
||||
}
|
||||
if(isFinal) {
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
pos=skipValue(pos, node);
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ BytesTrieBuilder::buildBytes(UStringTrieBuildOption buildOption, UErrorCode &err
|
|||
}
|
||||
uprv_sortArray(elements, elementsLength, (int32_t)sizeof(BytesTrieElement),
|
||||
compareElementStrings, strings,
|
||||
FALSE, // need not be a stable sort
|
||||
false, // need not be a stable sort
|
||||
&errorCode);
|
||||
if(U_FAILURE(errorCode)) {
|
||||
return;
|
||||
|
@ -375,7 +375,7 @@ BytesTrieBuilder::createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t le
|
|||
UBool
|
||||
BytesTrieBuilder::ensureCapacity(int32_t length) {
|
||||
if(bytes==NULL) {
|
||||
return FALSE; // previous memory allocation had failed
|
||||
return false; // previous memory allocation had failed
|
||||
}
|
||||
if(length>bytesCapacity) {
|
||||
int32_t newCapacity=bytesCapacity;
|
||||
|
@ -388,7 +388,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) {
|
|||
uprv_free(bytes);
|
||||
bytes=NULL;
|
||||
bytesCapacity=0;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
uprv_memcpy(newBytes+(newCapacity-bytesLength),
|
||||
bytes+(bytesCapacity-bytesLength), bytesLength);
|
||||
|
@ -396,7 +396,7 @@ BytesTrieBuilder::ensureCapacity(int32_t length) {
|
|||
bytes=newBytes;
|
||||
bytesCapacity=newCapacity;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
int32_t
|
||||
|
@ -463,7 +463,7 @@ int32_t
|
|||
BytesTrieBuilder::writeValueAndType(UBool hasValue, int32_t value, int32_t node) {
|
||||
int32_t offset=write(node);
|
||||
if(hasValue) {
|
||||
offset=writeValueAndFinal(value, FALSE);
|
||||
offset=writeValueAndFinal(value, false);
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
|
|
@ -101,12 +101,12 @@ BytesTrie::Iterator::hasNext() const { return pos_!=NULL || !stack_->isEmpty();
|
|||
UBool
|
||||
BytesTrie::Iterator::next(UErrorCode &errorCode) {
|
||||
if(U_FAILURE(errorCode)) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
const uint8_t *pos=pos_;
|
||||
if(pos==NULL) {
|
||||
if(stack_->isEmpty()) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
// Pop the state off the stack and continue with the next outbound edge of
|
||||
// the branch node.
|
||||
|
@ -119,7 +119,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
|
|||
if(length>1) {
|
||||
pos=branchNext(pos, length, errorCode);
|
||||
if(pos==NULL) {
|
||||
return TRUE; // Reached a final value.
|
||||
return true; // Reached a final value.
|
||||
}
|
||||
} else {
|
||||
str_->append((char)*pos++, errorCode);
|
||||
|
@ -141,7 +141,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
|
|||
} else {
|
||||
pos_=skipValue(pos, node);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
if(maxLength_>0 && str_->length()==maxLength_) {
|
||||
return truncateAndStop();
|
||||
|
@ -152,7 +152,7 @@ BytesTrie::Iterator::next(UErrorCode &errorCode) {
|
|||
}
|
||||
pos=branchNext(pos, node+1, errorCode);
|
||||
if(pos==NULL) {
|
||||
return TRUE; // Reached a final value.
|
||||
return true; // Reached a final value.
|
||||
}
|
||||
} else {
|
||||
// Linear-match node, append length bytes to str_.
|
||||
|
@ -177,7 +177,7 @@ UBool
|
|||
BytesTrie::Iterator::truncateAndStop() {
|
||||
pos_=NULL;
|
||||
value_=-1; // no real value for str
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Branch node, needs to take the first outbound edge and push state for the rest.
|
||||
|
|
|
@ -119,7 +119,7 @@ UnicodeString CanonicalIterator::getSource() {
|
|||
* Resets the iterator so that one can start again from the beginning.
|
||||
*/
|
||||
void CanonicalIterator::reset() {
|
||||
done = FALSE;
|
||||
done = false;
|
||||
for (int i = 0; i < current_length; ++i) {
|
||||
current[i] = 0;
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ UnicodeString CanonicalIterator::next() {
|
|||
|
||||
for (i = current_length - 1; ; --i) {
|
||||
if (i < 0) {
|
||||
done = TRUE;
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
current[i]++;
|
||||
|
@ -176,7 +176,7 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st
|
|||
if(U_FAILURE(status)) {
|
||||
return;
|
||||
}
|
||||
done = FALSE;
|
||||
done = false;
|
||||
|
||||
cleanPieces();
|
||||
|
||||
|
@ -521,7 +521,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con
|
|||
int32_t decompLen=decompString.length();
|
||||
|
||||
// See if it matches the start of segment (at segmentPos)
|
||||
UBool ok = FALSE;
|
||||
UBool ok = false;
|
||||
UChar32 cp;
|
||||
int32_t decompPos = 0;
|
||||
UChar32 decompCp;
|
||||
|
@ -537,7 +537,7 @@ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, con
|
|||
|
||||
if (decompPos == decompLen) { // done, have all decomp characters!
|
||||
temp.append(segment+i, segLen-i);
|
||||
ok = TRUE;
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
U16_NEXT(decomp, decompPos, decompLen, decompCp);
|
||||
|
|
|
@ -36,11 +36,11 @@ namespace {
|
|||
|
||||
UBool U_CALLCONV characterproperties_cleanup();
|
||||
|
||||
constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + UCHAR_INT_LIMIT - UCHAR_INT_START;
|
||||
constexpr int32_t NUM_INCLUSIONS = UPROPS_SRC_COUNT + (UCHAR_INT_LIMIT - UCHAR_INT_START);
|
||||
|
||||
struct Inclusion {
|
||||
UnicodeSet *fSet = nullptr;
|
||||
UInitOnce fInitOnce = U_INITONCE_INITIALIZER;
|
||||
UInitOnce fInitOnce {};
|
||||
};
|
||||
Inclusion gInclusions[NUM_INCLUSIONS]; // cached getInclusions()
|
||||
|
||||
|
@ -85,7 +85,7 @@ UBool U_CALLCONV characterproperties_cleanup() {
|
|||
ucptrie_close(reinterpret_cast<UCPTrie *>(maps[i]));
|
||||
maps[i] = nullptr;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) {
|
||||
|
@ -210,7 +210,7 @@ const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorC
|
|||
void U_CALLCONV initIntPropInclusion(UProperty prop, UErrorCode &errorCode) {
|
||||
// This function is invoked only via umtx_initOnce().
|
||||
U_ASSERT(UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT);
|
||||
int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START;
|
||||
int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START);
|
||||
U_ASSERT(gInclusions[inclIndex].fSet == nullptr);
|
||||
UPropertySource src = uprops_getSource(prop);
|
||||
const UnicodeSet *incl = getInclusionsForSource(src, errorCode);
|
||||
|
@ -255,7 +255,7 @@ const UnicodeSet *CharacterProperties::getInclusionsForProperty(
|
|||
UProperty prop, UErrorCode &errorCode) {
|
||||
if (U_FAILURE(errorCode)) { return nullptr; }
|
||||
if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) {
|
||||
int32_t inclIndex = UPROPS_SRC_COUNT + prop - UCHAR_INT_START;
|
||||
int32_t inclIndex = UPROPS_SRC_COUNT + (prop - UCHAR_INT_START);
|
||||
Inclusion &i = gInclusions[inclIndex];
|
||||
umtx_initOnce(i.fInitOnce, &initIntPropInclusion, prop, errorCode);
|
||||
return i.fSet;
|
||||
|
|
|
@ -220,7 +220,7 @@ UBool CharString::ensureCapacity(int32_t capacity,
|
|||
int32_t desiredCapacityHint,
|
||||
UErrorCode &errorCode) {
|
||||
if(U_FAILURE(errorCode)) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if(capacity>buffer.getCapacity()) {
|
||||
if(desiredCapacityHint==0) {
|
||||
|
@ -230,10 +230,10 @@ UBool CharString::ensureCapacity(int32_t capacity,
|
|||
buffer.resize(capacity, len+1)==NULL
|
||||
) {
|
||||
errorCode=U_MEMORY_ALLOCATION_ERROR;
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
CharString &CharString::appendPathPart(StringPiece s, UErrorCode &errorCode) {
|
||||
|
|
|
@ -177,8 +177,8 @@ private:
|
|||
|
||||
UBool ensureCapacity(int32_t capacity, int32_t desiredCapacityHint, UErrorCode &errorCode);
|
||||
|
||||
CharString(const CharString &other); // forbid copying of this class
|
||||
CharString &operator=(const CharString &other); // forbid copying of this class
|
||||
CharString(const CharString &other) = delete; // forbid copying of this class
|
||||
CharString &operator=(const CharString &other) = delete; // forbid copying of this class
|
||||
|
||||
/**
|
||||
* Returns U_FILE_ALT_SEP_CHAR if found in string, and U_FILE_SEP_CHAR is not found.
|
||||
|
|
|
@ -134,5 +134,5 @@ U_CFUNC UBool cmemory_cleanup(void) {
|
|||
pAlloc = NULL;
|
||||
pRealloc = NULL;
|
||||
pFree = NULL;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71d.dll</OutputFile>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion)d.dll</OutputFile>
|
||||
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuucd.pdb</ProgramDatabaseFile>
|
||||
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuucd.lib</ImportLibrary>
|
||||
</Link>
|
||||
|
@ -70,7 +70,7 @@
|
|||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71.dll</OutputFile>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion).dll</OutputFile>
|
||||
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuuc.pdb</ProgramDatabaseFile>
|
||||
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuuc.lib</ImportLibrary>
|
||||
</Link>
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
<Link>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>vccorlib.lib;msvcrt.lib;vcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71.dll</OutputFile>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion).dll</OutputFile>
|
||||
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuuc.pdb</ProgramDatabaseFile>
|
||||
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuuc.lib</ImportLibrary>
|
||||
</Link>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>vccorlibd.lib;msvcrtd.lib;vcruntimed.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc71d.dll</OutputFile>
|
||||
<OutputFile>..\..\$(IcuBinOutputDir)\icuuc$(IcuMajorVersion)d.dll</OutputFile>
|
||||
<ProgramDatabaseFile>.\..\..\$(IcuLibOutputDir)\icuucd.pdb</ProgramDatabaseFile>
|
||||
<ImportLibrary>..\..\$(IcuLibOutputDir)\icuucd.lib</ImportLibrary>
|
||||
</Link>
|
||||
|
|
|
@ -51,8 +51,8 @@ class U_COMMON_API CStr : public UMemory {
|
|||
|
||||
private:
|
||||
CharString s;
|
||||
CStr(const CStr &other); // Forbid copying of this class.
|
||||
CStr &operator =(const CStr &other); // Forbid assignment.
|
||||
CStr(const CStr &other) = delete; // Forbid copying of this class.
|
||||
CStr &operator =(const CStr &other) = delete; // Forbid assignment.
|
||||
};
|
||||
|
||||
U_NAMESPACE_END
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue