#Bugzilla
Done fooooor Bugzilla!! 🐛✨
November 5, 2026 at 4:34 PM
How to Deploy #Bugzilla on #Ubuntu #VPS (5-Minute Quick-Start Guide) This article provides a step-by-step guide detailing how to deploy Bugzilla on Ubuntu VPS.
What is Bugzilla?
Bugzilla is an ...
Continued 👉 #opensource #bugtracking #selfhosting #letsencrypt #selfhosted #issuemanagement
How to Deploy Bugzilla on Ubuntu VPS (5-Minute Quick-Start Guide)
blog.radwebhosting.com
November 6, 2026 at 2:30 AM
A wire changing voltage can carry a conversation.

PulseView is an open-source signal viewer with protocol decoders that turn captured signals into readable events.

Useful when the waveform is visible but the message is still a mystery.

github.com/sigrokprojec...
GitHub - sigrokproject/pulseview: Read-only mirror of the official repo at git://sigrok.org/pulseview. Pull requests welcome. Please file bugreports at sigrok.org/bugzilla.
Read-only mirror of the official repo at git://sigrok.org/pulseview. Pull requests welcome. Please file bugreports at sigrok.org/bugzilla. - sigrokproject/pulseview
github.com
November 6, 2026 at 1:42 PM
DigiCert、顧客の個人情報流出を確認 身分証明書やパスポートも対象

DigiCertは、アーカイブされた顧客情報(本人確認書類を含む)を保管する社内業務システムに対し、不正アクセスがあったことを確認しました。 Mozilla Bugzillaによると、同認証局は、流出した記録には主に氏名、業務用メールアドレス、電話番号、事業所の住所が含まれていたと説明しています。 ごく一部の顧客アカ
DigiCert、顧客の個人情報流出を確認 身分証明書やパスポートも対象
DigiCertは、アーカイブされた顧客情報(本人確認書類を含む)を保管する社内業務システムに対し、不正アクセスがあったことを確認しました。 Mozilla Bugzillaによると、同認証局は、流出した記録には主に氏名、業務用メールアドレス、電話番号、事業所の住所が含まれていたと説明しています。 ごく一部の顧客アカ
blackhatnews.tokyo
November 7, 2026 at 10:17 AM
Alright I think we're getting close to a release candidate here. Integration testing by setting up a bunch of FOSS applications that use an apache style web server to make sure it's a drop in replacement in practice for places people normally use apache2.
November 5, 2026 at 9:05 AM
認証局のDigiCert、法人顧客の情報が関与するデータ侵害を報告

インターネットセキュリティ企業のDigiCertは、社内の業務システムが外部に公開された状態となり、最終的に社外の何者かにアクセスされたとして、データ侵害を報告しました。 米ユタ州に本社を置く同社はコメントの求めに応じませんでしたが、Mozillaの不具合管理プラットフォーム「Bugzilla」に、経緯を説明する詳
認証局のDigiCert、法人顧客の情報が関与するデータ侵害を報告
インターネットセキュリティ企業のDigiCertは、社内の業務システムが外部に公開された状態となり、最終的に社外の何者かにアクセスされたとして、データ侵害を報告しました。 米ユタ州に本社を置く同社はコメントの求めに応じませんでしたが、Mozillaの不具合管理プラットフォーム「Bugzilla」に、経緯を説明する詳
blackhatnews.tokyo
November 8, 2026 at 1:38 AM
New Release: Tor Browser 16.0
Tor Browser 16.0 is now available for Desktop and Android. This is our first stable release based on Firefox ESR 153, incorporating a year's worth of changes that have been shipped upstream in Firefox. As part of this process, we've also completed our annual ESR transition audit, where we reviewed and addressed over 270 Bugzilla issues covering changes in Firefox that could negatively affect the privacy and security of Tor Browser users. The ongoing development of Tor Browser is made possible thanks to the support of our community. Every donation helps power the tools that let people browse freely and privately. Consider joining thousands of others who have already made a small contribution towards building a better internet for everyone. ## What's new for Desktop? ### Redesigned Settings Tor Browser connects millions of people to the Tor network (and by extension, the free and open internet) out of the box. However, for those who need to circumvent advanced censorship, boost their security level, or tailor their browsing experience, clear and easy-to-use Settings are essential. To that end, Tor Browser 16.0 introduces a complete redesign of the Settings experience based on a parallel redesign shipped in Firefox in June. Improvements include a cleaner layout, updated navigation, and clearer labels and descriptions aimed at making settings easier to find, understand, and manage. Other noteworthy changes include: * The long-standing "General" page has been retired, with its contents distributed across new pages for Appearance, Downloads, Tabs and browsing, Accessibility and Languages. * Pages and components that are unique to Tor browser like Connection and Security Level have been rebuilt from scratch using Firefox's new components so they look and feel consistent with the rest of Settings. * Some settings that, if enabled, could compromise your privacy or make your browser easier to fingerprint have either been hidden or feature clear warnings. Fear not: your existing preferences will remain saved even if the original setting has moved or changed, and you can use the search bar at the top of Settings to find anything you're struggling to track down. ### Generic window titles Another new addition to Settings is the option to use generic window titles, which can be found under Privacy and security → Protections from third-party applications. Like most browsers, Tor Browser uses the title of the page you're currently viewing for the names of its windows. However, other applications on your computer or your operating system itself can read these titles without special permissions. When enabled, this option simply replaces all window titles with "Tor Browser" — preventing other software from snooping on your browsing history. As always, for more comprehensive protection from third-party applications on your device, we recommend using Tails. For now, this option is strictly opt-in, as we did not have sufficient time during this release cycle to properly evaluate potential side-effects for users. In particular, we worry that enabling this setting may reduce the browser's usability for those who rely on accessibility tools (e.g. screen-readers) or those with highly customized systems (e.g. less-popular desktop managers, application switchers, etc). If you are one of these users, we would ask that you try using this setting, and report back any bugs or usability issues you find! 📣 Generic window titles have also been upstreamed to Firefox as part of the Tor Uplift Project. Advanced Firefox users can enable this feature by opening `about:config` and setting `privacy.exposeContentTitleInWindow` (for normal windows) and `privacy.exposeContentTitleInWindow.pbm` (for private browsing windows) to `false`. ### New user manual The Tor Browser manual, which can be found by visiting `about:manual` or through the application menu (☰) → Help → Tor Browser manual, has also received a complete revamp. Since the release of our new Support portal in 2025, the team has had to maintain two sets of documentation: one for the traditional manual that's available to read in Tor Browser, and another for the new Support site. With this release, we've solved that problem by replacing the older material in the Tor Browser manual with our latest and greatest help content from the new Support site. Like the previous iteration of the manual, the new version is bundled with Tor Browser for Desktop so it can be read offline, which comes in particularly handy when troubleshooting issues that prevent you from connecting to the Tor network. ### Linux on ARM Finally, after a year of testing, Tor Browser 16.0 now features native support for Linux computers with 64-bit ARM (AArch64) processors, such as Raspberry Pis and Apple Silicon Macs running Linux. If you have been relying on Tor Browser Alpha for support for these devices, we recommend switching over to the stable release channel unless you plan to continue testing Alpha releases. Meanwhile, Tor Browser 16.0 follows Firefox in ending support for 32-bit x86 Linux computers. Fortunately, very few people should be affected, as we currently receive around 200 update checks from this platform a day, down from a peak of around 4,000 in 2019. Most remaining 32-bit users should be able to switch to the 64-bit version unless they're running outdated hardware or versions of Linux. ## What's new for Android? Tor Browser for Android has also benefited from Mozilla's ongoing work to modernize Firefox, as seen in the Settings redesign on desktop. Over the past year, Firefox has been gradually transitioning to Jetpack Compose — Google's newest framework for building native Android interfaces. In this release, we've made significant progress applying the same changes to Tor Browser. As a result, large swaths of Tor Browser's user interface has been updated to Material Design 3 — the latest iteration of Google's design language for Android — with more yet to come in future releases. Google Play limits the size of apps distributed as APKs to 100 MB. Since Firefox for Android continues to grow with each release, keeping Tor Browser within this limit has been an ongoing challenge — for example, this issue has prevented us from bundling Tor Browser's manual on Android so that it can be accessed offline. Nevertheless, we've found various ways to reduce the size of our Android package over the years and stay within the limit. Most recently, this involved carefully and creatively compressing some of the built-in resources Firefox uses to display its interface. ## What's in the works? Tor Browser users can expect additional improvements over the next few months as we continue to refine the new Settings experience for desktop and Material Design 3 for Android. If you find a bug or have a suggestion for how we could improve this release, we'd love to hear your feedback. The team is also working hard on a new and improved circuit display, coming soon to Tor Browser Alpha, which integrates site information directly into the circuit panel and can visualize more complex multi-path circuits. Multi-path circuits use additional relays to split your traffic into two paths that converge on a single exit, improving both connection speed and reliability. These circuits already exist for regular websites (but not onion sites) and are randomly assigned based on network availability. Although Tor Browser's traditional circuit display can only show a single path at a time, you have likely benefited from a multi-path circuit without even knowing it. What's more, this exciting update will mark the debut of the circuit display on Tor Browser for Android, which has been exclusive to desktop until now. ## Contributions <3 Thanks to all of the teams across Tor, and the wider community, who contributed to this release. In particular, we'd like to extend our gratitude to the following volunteers who have contributed their expertise, labor, and time: * NoisyCoil * Soni If you would like to contribute to a future release, please see our guide for new contributors to get started. ## Full changelog The full changelog since Tor Browser 15.0.26 is: * All Platforms * Updated NoScript to 13.6.37.1984 * Updated tor to 0.4.9.15 * Bug tor-browser#43857: Review in-source TODOs * Bug tor-browser#43858: Clean out deprecated or unused methods in TorConnect * Bug tor-browser#44118: Decide how to deal with upstream feature gates in a RR world * Bug tor-browser#44251: Drop pt_config.json meek-azure migration logic * Bug tor-browser#44257: Disable locale-based font rules as a defense-in-depth * Bug tor-browser#44280: Test stream isolation * Bug tor-browser#44420: Drop "rights" from components.conf * Bug tor-browser#44492: Fix python linting warnings in our test files * Bug tor-browser#44562: Set the new online Suggest prefs to false * Bug tor-browser#44571: Disable restrict_to_adults for potential fingerprintability * Bug tor-browser#44580: Registers NoScript to check for updates on first run * Bug tor-browser#44619: Add custom logs to Tor logs * Bug tor-browser#44621: Move about:torconnect back to browser * Bug tor-browser#44647: Clean up patch for `SearchEngineSelector.sys.mjs`. * Bug tor-browser#44663: NoScript behavior on “Safer” security level prevents integrity checks for dynamically loaded javascript * Bug tor-browser#44687: Expect javascript.options.asmjs to be false for all security levels * Bug tor-browser#44701: Unexpected change to `netwerk/url-classifier/components.conf` * Bug tor-browser#44720: Migrate New Identity commit to Tor Browser * Bug tor-browser#44753: Drop TorProvider.isBootstrapDone * Bug tor-browser#44755: Trusted Types (Firefox 148 and above) + Web Workers broken on Safer Level * Bug tor-browser#44763: Disable WebGPU until audited * Bug tor-browser#44764: Hide some AI settings using browser.ai.control.default * Bug tor-browser#44767: Safer Level's worker patching throws on new about:blank frames with Trusted Types * Bug tor-browser#44778: Safer Level: xray causes patched TrustedTypePolicy instances to be unusable by content. * Bug tor-browser#44795: Revert BB 27604 patch as not needed anymore * Bug tor-browser#44796: Adjust TorProviderBuilder to report the provider state to consumers * Bug tor-browser#44801: Redact onion origins from Location.ancestorOrigins. * Bug tor-browser#44811: Remove the lock on pdfjs.disable. * Bug tor-browser#44814: Disable trustpanel until our new designs are ready * Bug tor-browser#44815: Disable harmful addon URL blocking * Bug tor-browser#44828: Remove browser module references from toolkit/modules/ActorManagerParent.sys.mjs * Bug tor-browser#44841: TorDomainIsolator proxy filter returns null on exception instead of preserving SOCKS proxy * Bug tor-browser#44857: Drop `browser.display.use_system_colors` from our preference list * Bug tor-browser#44865: Block chrome://_/locale/_ to content * Bug tor-browser#44870: Remove legacy branch from gitlab templates * Bug tor-browser#44896: Drop privacy.partition.network_state * Bug tor-browser#44990: CI failing due to dubious ownership of cached repo * Bug tor-browser#45037: Potential runtime errors in the search service when changing JS status * Bug tor-browser#45047: Cross-site oracle via worklet rejection error in Safer Mode * Bug tor-browser#45072: Disable XSLT already for 16.0 * Bug tor-browser#45073: Review preference changes between Firefox 141 and 153 * Bug tor-browser#45080: Keep the Reporting API disabled. * Bug tor-browser#45131: Security level is using an unsafe getBoolPref * Bug tor-browser#45161: Drop TorProviderBuilder.firstWindowLoaded * Bug tor-browser#45333: Disable the fast-path to skip proxy resolution * Bug tor-browser#45336: Pass --disable-proxy-direct-failover in our mozconfigs * Bug tor-browser#45410: Incomplete Safer Level propagation to nested workers * Bug mullvad-browser#483: Add the "No AI" version of DuckDuckGo to available search engines * Bug tor-browser-build#41686: Copy more build artifacts to the artifacts directory * Bug tor-browser-build#41713: Try to find a component for bugs found with commits in triage spreadsheets * Bug tor-browser-build#41780: Create sha256sums-unsigned-build.txt in artifacts/$platform directories * Bug tor-browser-build#41846: Sign alpha releases using new gpg subkey * Windows + macOS + Linux * Updated Firefox to 153.6.0esr * Bug tor-browser#34319: Remove symlink support from the updater * Bug tor-browser#42065: Security exception warning and button for Onion Services with self-signed certificates * Bug tor-browser#42664: Use mozilla token sizes in CSS * Bug tor-browser#43560: Add "UTC" to the end of the timestamp on tor logs (Desktop) * Bug tor-browser#43570: Report errors in about:torconnect when tor daemon crashes (Desktop) * Bug tor-browser#43640: Poor screen reader experience when opening preferences and scrolling to element * Bug tor-browser#43824: Switch resource:// modules to use moz-src: * Bug tor-browser#43939: Update Bridge settings when connection failed * Bug tor-browser#44247: Adapt Tor Browser manual to use the new support pages * Bug tor-browser#44289: RFPHelper console error when `--toolbar-field-color` is set to `inherit` * Bug tor-browser#44302: Fix the flags of some about pages * Bug tor-browser#44343: Hide the default browser settings again after MozBug 1969949 * Bug tor-browser#44411: DownloadsTorWarning.sys.mjs fails to load * Bug tor-browser#44419: Re-add the moz-toggle title attribute patch * Bug tor-browser#44439: Remove translate action from urlbar * Bug tor-browser#44458: Fix the "Connect" and ".onion available" button height * Bug tor-browser#44459: Letterboxing content alignment setting is missing styling * Bug tor-browser#44460: Payment methods and addresses setting headings are visible in settings * Bug tor-browser#44511: Make sure new search suggest features are disabled for 16.0 * Bug tor-browser#44520: Make sure "Firefox labs" is hidden by default * Bug tor-browser#44522: Move common changes to about dialog to base-browser * Bug tor-browser#44528: Make sure desktop IP Protection is disabled on desktop * Bug tor-browser#44535: Letterboxing background colour is no longer used * Bug tor-browser#44560: Customize the flags for alternate 'Application Data' directories * Bug tor-browser#44629: Add a search suggestion warning in the settings * Bug tor-browser#44630: Use settings config to hide settings, rather than data-hidden-from-search or commenting out * Bug tor-browser#44682: Wrong pid in the exit log * Bug tor-browser#44685: Use border radius for letterboxing * Bug tor-browser#44706: creating a new profiles causes crash ENOTTY * Bug tor-browser#44709: Hide the AI settings panel * Bug tor-browser#44710: Hide about:preferences#translations * Bug tor-browser#44765: Restore the limited sidebar description * Bug tor-browser#44781: Use a static page title for about:torconnect * Bug tor-browser#44793: `privacy.spoof_english` console error in about:preferences * Bug tor-browser#44797: Clean up `about:torconnect` styling * Bug tor-browser#44798: Don't load `about:torconnect` into iframes * Bug tor-browser#44799: Onionize toggle in `about:tor` uses blue text color * Bug tor-browser#44802: Hide the "safe browsing" settings * Bug tor-browser#44829: Hide the settings privacy card * Bug tor-browser#44830: Migrate our home page adjustments to the settings config * Bug tor-browser#44831: Misleading banner in "Search engine suggestions" settings * Bug tor-browser#44832: Hide the Firefox mascot in about:neterror * Bug tor-browser#44844: Use new urlbar CSS variables * Bug tor-browser#44846: about:torconnect redirect doesn't work with the new neterror page * Bug tor-browser#44847: Drop letterboxing sidebar rounded corner logic * Bug tor-browser#44855: Use `ariaNotify` for bridge updates * Bug tor-browser#44883: Remove urlbar quick action for labs * Bug tor-browser#44888: Use `--button-opacity-disabled` for disabled styling. * Bug tor-browser#44902: Error in privacy preference initialisation due to missing `dataCollectionViewProfilesMultiProfileBackupWarning` * Bug tor-browser#44903: Use the `support-page` instead of `tor-manual-page` in `moz-support-link` * Bug tor-browser#44904: Use settings config for onion site settings * Bug tor-browser#44952: TOR_PROVIDER=none throws an error at launch * Bug tor-browser#44955: Use `context-fill` for `about-wordmark.svg` * Bug tor-browser#44956: Switch colours in letterboxing setting icons to match the tab-alignment icons * Bug tor-browser#44959: Integrate the new Tor Browser manual into Tor Browser * Bug tor-browser#44991: Improve the no-authentication handling on the control port * Bug tor-browser#44998: Remove Firefox branding from about:preferences * Bug tor-browser#45005: Rename arrowpanel CSS variable * Bug tor-browser#45029: Convert connection status settings to new design and config approach * Bug tor-browser#45039: Make it easier to test ProfileDataUpgrader customization * Bug tor-browser#45051: Show a separate Tor error prompt for users who do not see about:torconnect (desktop) * Bug tor-browser#45055: Rename --color-gray-05 to --color-gray-0 * Bug tor-browser#45058: Convert bridge settings to new design and config approach * Bug tor-browser#45059: Convert advanced connection settings to new design and config approach * Bug tor-browser#45079: Move letterboxing to the appearance setting pane * Bug tor-browser#45081: Use the new "Acorn" icons on desktop * Bug tor-browser#45083: Error in about:preferences due to ipprotection missing * Bug tor-browser#45112: Rename border colour tokens * Bug tor-browser#45123: Disable profile backup for 16.0 * Bug tor-browser#45125: Tidy up bridge emoji widget * Bug tor-browser#45132: nsAppFileLocationProvider.cpp: use of undeclared identifier 'XRE_EXECUTABLE_FILE' * Bug tor-browser#45133: Disable `browser.toolbars.share-button.enabled` * Bug tor-browser#45143: Modify moz-fieldset to allow focusing the heading * Bug tor-browser#45156: Remove "Firefox Home" from the appearance settings * Bug tor-browser#45157: Grant "access local files" permission to NoScript * Bug tor-browser#45168: Hide the history search option, again * Bug tor-browser#45169: Cannot open history sidebar in private browsing window * Bug tor-browser#45171: Disable split view for 16.0 * Bug tor-browser#45176: Add "Request English" to the website language config * Bug tor-browser#45177: Remove websiteSpoofEnglishControl * Bug tor-browser#45178: Change support URLs in new settings * Bug tor-browser#45179: Update the feedback URL to point to the new support page. * Bug tor-browser#45180: Also show download warning in download settings * Bug tor-browser#45185: Disable network also in the Rust implementation of the remote settings client * Bug tor-browser#45186: Remove duplicate alert roles in moz-message-bar * Bug tor-browser#45187: Disable private browsing "delete downloaded files" feature * Bug tor-browser#45190: New circuit urlbar icon button is squished * Bug tor-browser#45192: Some URLs trigger `The proxy server is refusing connections` rather than about:torconnect prior to bootstrap * Bug tor-browser#45194: Hard code the "Your bridges" background colour * Bug tor-browser#45195: Modify our calls to openPreferences to work with the new settings * Bug tor-browser#45196: Replace old connection settings with setting-group widgets * Bug tor-browser#45197: Hide password settings by default * Bug tor-browser#45200: Include onion authentication in the new password settings * Bug tor-browser#45201: Convert security level settings to the new config * Bug tor-browser#45208: Switch on the setting redesign * Bug tor-browser#45209: Remove mention of "sync" from new settings * Bug tor-browser#45211: Add settings for protections from third party applications * Bug tor-browser#45214: Keep megalist (contextual password manager) disabled for 16.0 * Bug tor-browser#45226: Stylelint issues on browser/components/torpreferences/content/torPreferences.css * Bug tor-browser#45228: Drop browser.urlbar.update2.engineAliasRefresh * Bug tor-browser#45232: Spoof picture-in-picture sizes under RFP * Bug tor-browser#45236: Resolve miscellaneous accessibility issues in about:torconnect * Bug tor-browser#45249: Remove the duplicate "Verified by" from the old site identity panel * Bug tor-browser#45262: Disable reset PBM burn button and related UI migration * Bug tor-browser#45277: Change setting icon for About Tor Browser * Bug tor-browser#45278: Explicitly disable WebXR * Bug tor-browser#45343: Hide verifier and the related error for self-signed onion cert case * Bug tor-browser#45360: Port our language preference customization to the new settings design * Bug tor-browser#45403: Ensure RemoteSetting dumps are loaded ASAP * Bug tor-browser-build#41800: Create a script that adapts the Tor Browser manual HTMLs to work in Tor Browser * Windows + Linux * Bug tor-browser-build#40892: Move torrc-defaults, geoip and geoip6 on Windows and Linux * Windows + Android * Bug tor-browser#44513: Backport Bugzilla 2059471: Do not spoof screen orientation when it is locked * Windows * Bug tor-browser#44461: Window controls are missing on Windows * Bug tor-browser#44513: Backport Bugzilla 2059471: Do not spoof screen orientation when it is locked * Bug tor-browser#44633: Move D3D11 function from local webrtc changes to tbb webrtc patches * Bug tor-browser#44745: Change how we hide SSO setting for windows * Bug tor-browser#44862: Fontvis is missing Segoe MDL2 Assets * Bug tor-browser#45144: Do not offer to make the browser a PDF viewer when in portable mode * Bug tor-browser#45243: Disable taskbar tabs * Bug tor-browser#45293: Set widget.windows.tablet_detection_override to -1 * macOS * Bug tor-browser#44728: Bundled fonts are broken on macOS when the GPU process is enabled * Bug tor-browser#44850: Wrong path for bootstrapped tor daemon on macOS * Bug tor-browser#45108: Artifact generation fails due to missing .DS_Store in the branding directories * Bug tor-browser#45163: Consistently do not disable app group container support * Bug tor-browser-build#41476: Since 13.5-legacy is not longer supported, remove tools/signing/wrappers/sign-rcodesign * Linux * Bug tor-browser#44050: Change the domain in DBus interfaces * Bug tor-browser#44410: Use system's size for UI font on Linux * Bug tor-browser#44521: Disable widget.wayland.fractional-scale.enabled * Bug tor-browser#44887: Drop Linux 32-bit deprecation notice * Android * Updated GeckoView to 153.6.0esr * Bug 40627: [Android] "share" selected text only works once [tor-browser] * Bug tor-browser#41758: Don't allow PDFs to be opened by 3rd party apps * Bug tor-browser#43349: Add user feedback for when Tor connects (Android) * Bug tor-browser#43403: Add "UTC" to the end of the timestamp on tor logs (Android) * Bug tor-browser#43543: Make the dev icon distinct from the nightly one * Bug tor-browser#43571: Implement improved error handling and tor restart flow (Android) * Bug tor-browser#43790: Address "Various android workarounds" commit introduced in the 138 rebase * Bug tor-browser#43819: Show custom security level on android * Bug tor-browser#43820: Use SecurityLevel integration on Android * Bug tor-browser#43856: Fix onBackPressed() deprecation * Bug tor-browser#44054: Remove "open" button from download snackbar; second line defense for shouldShowAppDownloaderDialog * Bug tor-browser#44057: Drop about:torconnect from android * Bug tor-browser#44091: Add frequent regions to tor connection assist for Android * Bug tor-browser#44155: Always enable LNA on Android as a defense-in-depth * Bug tor-browser#44157: Remove secret setting toggle for Tab Management Redesign * Bug tor-browser#44175: Remove all default browser functionality (Android) * Bug tor-browser#44210: Drop shouldDisableNormalMode setting * Bug tor-browser#44211: Disable "Shake it up. Skip the scroll." * Bug tor-browser#44226: Disable all link sharing functionality * Bug tor-browser#44274: Re-add Screenshot setting * Bug tor-browser#44303: Fix extension update job on first launch on Android * Bug tor-browser#44323: Audit Android Settings changes from 128 to 140 * Bug tor-browser#44324: Refactor the NSS no proxy-bypass patch on A-S to avoid -Wunreachable-code * Bug tor-browser#44448: Trivialise unused assets rather than delete them * Bug tor-browser#44506: Remove more sync * Bug tor-browser#44507: Drop the dependency on Sentry * Bug tor-browser#44548: Remove "Passwords" UI from Android * Bug tor-browser#44581: Cleanup new Android compose tab-strip feature introduced in Firefox 147 * Bug tor-browser#44582: Fix or remove new settings search functionality on Android * Bug tor-browser#44615: Remove ability to "Rate/Review in Google Play" in app * Bug tor-browser#44653: Disable "Allow search suggestions in private sessions" prompt presented in RR 148 android * Bug tor-browser#44694: Remove new "Tab bar" feature on Android * Bug tor-browser#44698: Clean up comments in AccountSettingsFragment.kt. FIXME: Update A-S * Bug tor-browser#44700: Untracked change to `HomepageHeader.kt` * Bug tor-browser#44718: Fix splash screen branding and other issues in RR * Bug tor-browser#44721: Android build failure in nightlyOssLicensesTask: missing dependencies.json file * Bug tor-browser#44751: NoScript (and likely any extension) can be accidentally turned off * Bug tor-browser#44752: Remove new expanded toolbar option on Android due to fingerprintability * Bug tor-browser#44758: Disable email mask feature * Bug tor-browser#44769: TBA crash screen has Firefox asset as well as a "Send crash report" button * Bug tor-browser#44788: Extensions are unreachable via 3 dot menu in alpha (android) * Bug tor-browser#44789: Icon of "New Circuit" is not centered but lies in top left corner * Bug tor-browser#44827: Always enable NoScript for Android * Bug tor-browser#44842: Replace instances of SwitchPreference with SwitchPreferenceCompat * Bug tor-browser#44848: Do not overwrite Android toolchains on default mozconfigs * Bug tor-browser#44881: Remove link sharing setting on Android * Bug tor-browser#44913: Fully disable custom download location * Bug tor-browser#44917: Disable Ads client for all channels * Bug tor-browser#44921: Disable Google Lens feature * Bug tor-browser#44935: Remove incorrectly shown "Open in App" notification dot on settings button * Bug tor-browser#44936: Search widget icon is too small * Bug tor-browser#45031: Disable AI features for Android * Bug tor-browser#45045: Remove moz asset in Downloads screen * Bug tor-browser#45049: Opening a pdf from outside TBA crashes TBA after bootstrapping it not already bootstrapped * Bug tor-browser#45052: Initialise Tor modules on Android in the same order as desktop * Bug tor-browser#45085: Disable GooglePlay Integrity * Bug tor-browser#45098: Share link button shows in landscape mode on android despite being removed elsewhere * Bug tor-browser#45103: Disable broken "tab management" * Bug tor-browser#45109: No value passed for parameter 'jsEnabled' * Bug tor-browser#45118: Audit and disable Mozilla VPN promo * Bug tor-browser#45130: Clean up TorHomePage padding * Bug tor-browser#45159: Fix Android Padlock security pane colors * Bug tor-browser#45170: Tab Switcher shows Firefox's private browsing mask badge on tab switcher icon * Bug tor-browser#45172: Move our "Connect to Tor before opening links" code from the deprecated openToBrowserAndLoad to the recommended loadUrlOrSearch * Bug tor-browser#45173: Disable Search Optimizations for Android * Bug tor-browser#45221: Remove "Manage downloads with another app" setting from TBA download settings * Bug tor-browser#45225: Remove "Share" and "Translate" options from "Settings" -> "Customize" -> "Toolbar shortcut" * Bug tor-browser#45227: Remove "Default search engine for Standard Mode" * Bug tor-browser#45234: Do not spoof secondary screen orientations if they were requested by a lock * Bug tor-browser#45250: Remove "Privacy report" in tabs settings in Android * Bug tor-browser#45251: Turn off and hide the remote improvements UI * Bug tor-browser#45252: Remove the change wallpaper menu item * Bug tor-browser#45261: Add linter check: only `MAIN+LAUNCHER` components may be exported="true" * Bug tor-browser#45269: Completely disable search suggestion feature * Bug tor-browser#45275: Drop clearOnShutdown on Android-specific profile * Bug tor-browser#45280: about:config broken on Android * Bug tor-browser#45281: Fix screen lock to hide Tor Browser tabs feature * Bug tor-browser#45363: Disable import bookmarks in Android * Bug tor-browser-build#28595: Remove the need to update var/gradle_dependencies_version * Build System * All Platforms * Bug tor-browser#43180: Remove translation CI 13.5 legacy extension * Bug tor-browser#43951: Include product with the component in triage CSVs * Bug tor-browser#44452: Improve tb-dev range-diff and diff-diff * Bug tor-browser#44498: Update translations CI to account for 1.0 version gap between alpha and stable * Bug tor-browser#45224: Enable Rust linter in CI * Bug tor-browser#45334: Update marionette harness to accept multiple tags * Bug tor-browser-build#31860: Start using LTO for firefox project * Bug tor-browser-build#40903: Make xz multi-threaded * Bug tor-browser-build#41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv * Bug tor-browser-build#41591: Remove support for old mar filenames when 13.5 legacy branch is EOL * Bug tor-browser-build#41607: Fix regression from #41373 in tools/count-mar-downloads * Bug tor-browser-build#41608: Add per-platform numbers for incrementals in count-mar-downloads * Bug tor-browser-build#41647: Add a XZ_DEFAULTS to set_default_env * Bug tor-browser-build#41648: Add a mozconfig to projects/geckoview * Bug tor-browser-build#41660: Add a Firefox target to build unpatched Firefox in tor-browser-build * Bug tor-browser-build#41664: Investigate and fix issue with unexpected build_id changes * Bug tor-browser-build#41668: Build mozharness.zip when building dev artifacts * Bug tor-browser-build#41671: Update tools/signing/linux-signer-sign-android-apks to check for v3 signatures instead of v1 * Bug tor-browser-build#41678: use set -u and set -o pipefail * Bug tor-browser-build#41685: Add henry to list of taggers in relevant projects. * Bug tor-browser-build#41687: Add single `make list_toolchain_updates` command to list all toolchain updates * Bug tor-browser-build#41690: Merge list_toolchain_updates-firefox-* commands into one * Bug tor-browser-build#41693: Drop base-browser targets * Bug tor-browser-build#41705: Remove unnecessary workaround in projects/go/build * Bug tor-browser-build#41707: firefox-l10n fails to build with `fetch_locale: 1: set: Illegal option -o pipefail` * Bug tor-browser-build#41726: Check in list_toolchain_updates that the sha512sum we have for the macOS SDK is the same as Mozilla * Bug tor-browser-build#41727: Split the list_toolchain_updates_checks script in two * Bug tor-browser-build#41728: Update projects/application-services/list_toolchain_updates_checks to check nss sha256sum * Bug tor-browser-build#41753: Allow running custom commands when vendoring Go dependencies * Bug tor-browser-build#41766: Use gzip for all platforms for Go vendoring * Bug tor-browser-build#41778: Remove base-browser from protected-branches.py * Bug tor-browser-build#41780: Create sha256sums-unsigned-build.txt in artifacts/$platform directories * Bug tor-browser-build#41786: Add comment to rbm.local.conf.example warning about potential recursive loops in tmp_dir definition * Bug tor-browser-build#41806: `make list_toolchain_updates` should check var/firefox_platform_version * Bug tor-browser-build#41807: Incorrectly generated Bugzilla query link in generate-bugzilla-triage-csv.py * Bug tor-browser-build#41813: Disable build artifacts in `make generate_gradle_dependencies_list-geckoview` * Bug tor-browser-build#41823: Add versions information to the toolchain list update * Bug tor-browser-build#41844: Add scripts to backup/deploy signing keys on signing machines * Bug tor-browser-build#41860: Change GCC sources mirror to https://gcc.gnu.org * Bug tor-browser-build#41867: Update tails-dev email address in release prep templates * Bug tor-browser-build#41896: Update Lyrebird to 0.9.0 * Bug tor-browser-build#41898: Separate MB and TB toolchain archives in https://nightlies.tbb.torproject.org/nightly-builds/toolchains/ * Bug rbm#40093: Make it easy to get the sha256sum of an input_files file * Bug rbm#40096: `container extract` is showing confusing error when target directory already exists * Bug rbm#40100: The GZIP variable makes set -u fail * Bug rbm#40103: Allow having multiple tmp_dir values * Bug rbm#40106: Improve error message in case of recursive definition * Windows + macOS + Linux * Bug tor-browser-build#41427: Drop the openURL property from the update * Bug tor-browser-build#41662: Add python-zstandard to desktop containers * Bug tor-browser-build#41711: Update our manual machinery for its new home * Bug tor-browser-build#41759: Remove references to legacy release in tor-browser-build * Windows + Linux + Android * Updated Go to 1.26.10 * Bug tor-browser-build#41770: Update Go to 1.26.x * Windows + macOS * Bug tor-browser-build#41535: Update macOS and Windows containers to Debian trixie * Windows * Bug tor-browser#44853: Update target in mozconfig-windows-x86_64 and mozconfig-windows-i686 * Bug tor-browser-build#41810: Define GetAddrInfoExCancel on mingw * Bug tor-browser-build#41877: `make list_toolchain_updates` is not checking windows-app-sdk * Bug tor-browser-build#41878: Update the Windows app SDK and add some additional DLLs * macOS * Bug tor-browser-build#41665: Update macos signing wrapper for new executable gpu-helper.app * Bug tor-browser-build#41773: Change the position of -mindepth when creating the dmg * Bug tor-browser-build#41793: Stop copying permissions from .mar in dmg2mar * Linux * Bug tor-browser#44555: Remove mozconfig-linux-i686 * Bug tor-browser-build#41601: Upstream dropped Linux i686 support * Bug tor-browser-build#41627: Firefox build system needs a more recent version of OpenSSL on Linux * Bug tor-browser-build#41632: Ship Linux aarch64 builds in Alpha Release Channel * Bug tor-browser-build#41639: Remove linux-arm target * Bug tor-browser-build#41640: Clean the GCC config file * Android * Bug tor-browser#44360: Patch the vendored Gradle Nimbus plugin * Bug tor-browser#44370: Always produce target.maven.zip * Bug tor-browser#44508: Drop clearkey also on Android * Bug tor-browser#44848: Do not overwrite Android toolchains on default mozconfigs * Bug tor-browser#45086: Compress omni.ja with xz on Android * Bug tor-browser-build#32200: only include required bits of OpenSSL in Android builds * Bug tor-browser-build#41485: Retire get_gradle_dependencies_list and create a simple way to update gradle deps * Bug tor-browser-build#41573: Remove Android x86 support * Bug tor-browser-build#41621: Remove support using older android build tools when signing 14.5 releases in tools/signing/wrappers/sign-apk * Bug tor-browser-build#41628: android_ndk_version and revision can be grouped together * Bug tor-browser-build#41636: Update the scripts to manage Gradle dependencies * Bug tor-browser-build#41666: Normalize the path to tor-expert-bundle.aar * Bug tor-browser-build#41684: Use only the NDK as var/compiler on Android * Bug tor-browser-build#41699: Delete prefs specific to other architectures in omni.ja * Bug tor-browser-build#41702: Replace uglifyjs with terser * Bug tor-browser-build#41719: Enable network when var/generate_gradle_dependencies_list is set in geckoview * Bug tor-browser-build#41736: Add generate_gradle_dependencies_list-$project makefile targets * Bug tor-browser-build#41737: Remove comment from gen-gradle-deps-file.py saying var/gradle_dependencies_version should be updated * Bug tor-browser-build#41743: Make an error if gradle-dependencies-list is missing in the input files * Bug tor-browser-build#41744: Reduce duplication between projects/geckoview/build and projects/geckoview/build_apk * Bug tor-browser-build#41745: Add .sh file extension to included build_* scripts in projects/geckoview * Bug tor-browser-build#41751: Fix the NDK path * Bug tor-browser-build#41801: Hardlink artifacts in fix_gradle_deps.py * Bug tor-browser-build#41830: Update the browser project to change omni.ja.xz * Bug tor-browser-build#41843: Remove unused universal apk from geckoview * Bug tor-browser-build#41876: Add missing firefox_platform_version.txt file in android artifacts directories * applications * releases
blog.torproject.org
October 29, 2026 at 5:16 PM
New Release: Tor Browser 16.0
Tor Browser 16.0 is now available for Desktop and Android. This is our first stable release based on Firefox ESR 153, incorporating a year's worth of changes that have been shipped upstream in Firefox. As part of this process, we've also completed our annual ESR transition audit, where we reviewed and addressed over 270 Bugzilla issues covering changes in Firefox that could negatively affect the privacy and security of Tor Browser users. The ongoing development of Tor Browser is made possible thanks to the support of our community. Every donation helps power the tools that let people browse freely and privately. Consider joining thousands of others who have already made a small contribution towards building a better internet for everyone. ## What's new for Desktop? ### Redesigned Settings Tor Browser connects millions of people to the Tor network (and by extension, the free and open internet) out of the box. However, for those who need to circumvent advanced censorship, boost their security level, or tailor their browsing experience, clear and easy-to-use Settings are essential. To that end, Tor Browser 16.0 introduces a complete redesign of the Settings experience based on a parallel redesign shipped in Firefox in June. Improvements include a cleaner layout, updated navigation, and clearer labels and descriptions aimed at making settings easier to find, understand, and manage. Other noteworthy changes include: * The long-standing "General" page has been retired, with its contents distributed across new pages for Appearance, Downloads, Tabs and browsing, Accessibility and Languages. * Pages and components that are unique to Tor browser like Connection and Security Level have been rebuilt from scratch using Firefox's new components so they look and feel consistent with the rest of Settings. * Some settings that, if enabled, could compromise your privacy or make your browser easier to fingerprint have either been hidden or feature clear warnings. Fear not: your existing preferences will remain saved even if the original setting has moved or changed, and you can use the search bar at the top of Settings to find anything you're struggling to track down. ### Generic window titles Another new addition to Settings is the option to use generic window titles, which can be found under Privacy and security → Protections from third-party applications. Like most browsers, Tor Browser uses the title of the page you're currently viewing for the names of its windows. However, other applications on your computer or your operating system itself can read these titles without special permissions. When enabled, this option simply replaces all window titles with "Tor Browser" — preventing other software from snooping on your browsing history. As always, for more comprehensive protection from third-party applications on your device, we recommend using Tails. For now, this option is strictly opt-in, as we did not have sufficient time during this release cycle to properly evaluate potential side-effects for users. In particular, we worry that enabling this setting may reduce the browser's usability for those who rely on accessibility tools (e.g. screen-readers) or those with highly customized systems (e.g. less-popular desktop managers, application switchers, etc). If you are one of these users, we would ask that you try using this setting, and report back any bugs or usability issues you find! 📣 Generic window titles have also been upstreamed to Firefox as part of the Tor Uplift Project. Advanced Firefox users can enable this feature by opening `about:config` and setting `privacy.exposeContentTitleInWindow` (for normal windows) and `privacy.exposeContentTitleInWindow.pbm` (for private browsing windows) to `false`. ### New user manual The Tor Browser manual, which can be found by visiting `about:manual` or through the application menu (☰) → Help → Tor Browser manual, has also received a complete revamp. Since the release of our new Support portal in 2025, the team has had to maintain two sets of documentation: one for the traditional manual that's available to read in Tor Browser, and another for the new Support site. With this release, we've solved that problem by replacing the older material in the Tor Browser manual with our latest and greatest help content from the new Support site. Like the previous iteration of the manual, the new version is bundled with Tor Browser for Desktop so it can be read offline, which comes in particularly handy when troubleshooting issues that prevent you from connecting to the Tor network. ### Linux on ARM Finally, after a year of testing, Tor Browser 16.0 now features native support for Linux computers with 64-bit ARM (AArch64) processors, such as Raspberry Pis and Apple Silicon Macs running Linux. If you have been relying on Tor Browser Alpha for support for these devices, we recommend switching over to the stable release channel unless you plan to continue testing Alpha releases. Meanwhile, Tor Browser 16.0 follows Firefox in ending support for 32-bit x86 Linux computers. Fortunately, very few people should be affected, as we currently receive around 200 update checks from this platform a day, down from a peak of around 4,000 in 2019. Most remaining 32-bit users should be able to switch to the 64-bit version unless they're running outdated hardware or versions of Linux. ## What's new for Android? Tor Browser for Android has also benefited from Mozilla's ongoing work to modernize Firefox, as seen in the Settings redesign on desktop. Over the past year, Firefox has been gradually transitioning to Jetpack Compose — Google's newest framework for building native Android interfaces. In this release, we've made significant progress applying the same changes to Tor Browser. As a result, large swaths of Tor Browser's user interface has been updated to Material Design 3 — the latest iteration of Google's design language for Android — with more yet to come in future releases. Google Play limits the size of apps distributed as APKs to 100 MB. Since Firefox for Android continues to grow with each release, keeping Tor Browser within this limit has been an ongoing challenge — for example, this issue has prevented us from bundling Tor Browser's manual on Android so that it can be accessed offline. Nevertheless, we've found various ways to reduce the size of our Android package over the years and stay within the limit. Most recently, this involved carefully and creatively compressing some of the built-in resources Firefox uses to display its interface. ## What's in the works? Tor Browser users can expect additional improvements over the next few months as we continue to refine the new Settings experience for desktop and Material Design 3 for Android. If you find a bug or have a suggestion for how we could improve this release, we'd love to hear your feedback. The team is also working hard on a new and improved circuit display, coming soon to Tor Browser Alpha, which integrates site information directly into the circuit panel and can visualize more complex multi-path circuits. Multi-path circuits use additional relays to split your traffic into two paths that converge on a single exit, improving both connection speed and reliability. These circuits already exist for regular websites (but not onion sites) and are randomly assigned based on network availability. Although Tor Browser's traditional circuit display can only show a single path at a time, you have likely benefited from a multi-path circuit without even knowing it. What's more, this exciting update will mark the debut of the circuit display on Tor Browser for Android, which has been exclusive to desktop until now. ## Contributions <3 Thanks to all of the teams across Tor, and the wider community, who contributed to this release. In particular, we'd like to extend our gratitude to the following volunteers who have contributed their expertise, labor, and time: * NoisyCoil * Soni If you would like to contribute to a future release, please see our guide for new contributors to get started. ## Full changelog The full changelog since Tor Browser 15.0.26 is: * All Platforms * Updated NoScript to 13.6.37.1984 * Updated tor to 0.4.9.15 * Bug tor-browser#43857: Review in-source TODOs * Bug tor-browser#43858: Clean out deprecated or unused methods in TorConnect * Bug tor-browser#44118: Decide how to deal with upstream feature gates in a RR world * Bug tor-browser#44251: Drop pt_config.json meek-azure migration logic * Bug tor-browser#44257: Disable locale-based font rules as a defense-in-depth * Bug tor-browser#44280: Test stream isolation * Bug tor-browser#44420: Drop "rights" from components.conf * Bug tor-browser#44492: Fix python linting warnings in our test files * Bug tor-browser#44562: Set the new online Suggest prefs to false * Bug tor-browser#44571: Disable restrict_to_adults for potential fingerprintability * Bug tor-browser#44580: Registers NoScript to check for updates on first run * Bug tor-browser#44619: Add custom logs to Tor logs * Bug tor-browser#44621: Move about:torconnect back to browser * Bug tor-browser#44647: Clean up patch for `SearchEngineSelector.sys.mjs`. * Bug tor-browser#44663: NoScript behavior on “Safer” security level prevents integrity checks for dynamically loaded javascript * Bug tor-browser#44687: Expect javascript.options.asmjs to be false for all security levels * Bug tor-browser#44701: Unexpected change to `netwerk/url-classifier/components.conf` * Bug tor-browser#44720: Migrate New Identity commit to Tor Browser * Bug tor-browser#44753: Drop TorProvider.isBootstrapDone * Bug tor-browser#44755: Trusted Types (Firefox 148 and above) + Web Workers broken on Safer Level * Bug tor-browser#44763: Disable WebGPU until audited * Bug tor-browser#44764: Hide some AI settings using browser.ai.control.default * Bug tor-browser#44767: Safer Level's worker patching throws on new about:blank frames with Trusted Types * Bug tor-browser#44778: Safer Level: xray causes patched TrustedTypePolicy instances to be unusable by content. * Bug tor-browser#44795: Revert BB 27604 patch as not needed anymore * Bug tor-browser#44796: Adjust TorProviderBuilder to report the provider state to consumers * Bug tor-browser#44801: Redact onion origins from Location.ancestorOrigins. * Bug tor-browser#44811: Remove the lock on pdfjs.disable. * Bug tor-browser#44814: Disable trustpanel until our new designs are ready * Bug tor-browser#44815: Disable harmful addon URL blocking * Bug tor-browser#44828: Remove browser module references from toolkit/modules/ActorManagerParent.sys.mjs * Bug tor-browser#44841: TorDomainIsolator proxy filter returns null on exception instead of preserving SOCKS proxy * Bug tor-browser#44857: Drop `browser.display.use_system_colors` from our preference list * Bug tor-browser#44865: Block chrome://_/locale/_ to content * Bug tor-browser#44870: Remove legacy branch from gitlab templates * Bug tor-browser#44896: Drop privacy.partition.network_state * Bug tor-browser#44990: CI failing due to dubious ownership of cached repo * Bug tor-browser#45037: Potential runtime errors in the search service when changing JS status * Bug tor-browser#45047: Cross-site oracle via worklet rejection error in Safer Mode * Bug tor-browser#45072: Disable XSLT already for 16.0 * Bug tor-browser#45073: Review preference changes between Firefox 141 and 153 * Bug tor-browser#45080: Keep the Reporting API disabled. * Bug tor-browser#45131: Security level is using an unsafe getBoolPref * Bug tor-browser#45161: Drop TorProviderBuilder.firstWindowLoaded * Bug tor-browser#45333: Disable the fast-path to skip proxy resolution * Bug tor-browser#45336: Pass --disable-proxy-direct-failover in our mozconfigs * Bug tor-browser#45410: Incomplete Safer Level propagation to nested workers * Bug mullvad-browser#483: Add the "No AI" version of DuckDuckGo to available search engines * Bug tor-browser-build#41686: Copy more build artifacts to the artifacts directory * Bug tor-browser-build#41713: Try to find a component for bugs found with commits in triage spreadsheets * Bug tor-browser-build#41780: Create sha256sums-unsigned-build.txt in artifacts/$platform directories * Bug tor-browser-build#41846: Sign alpha releases using new gpg subkey * Windows + macOS + Linux * Updated Firefox to 153.6.0esr * Bug tor-browser#34319: Remove symlink support from the updater * Bug tor-browser#42065: Security exception warning and button for Onion Services with self-signed certificates * Bug tor-browser#42664: Use mozilla token sizes in CSS * Bug tor-browser#43560: Add "UTC" to the end of the timestamp on tor logs (Desktop) * Bug tor-browser#43570: Report errors in about:torconnect when tor daemon crashes (Desktop) * Bug tor-browser#43640: Poor screen reader experience when opening preferences and scrolling to element * Bug tor-browser#43824: Switch resource:// modules to use moz-src: * Bug tor-browser#43939: Update Bridge settings when connection failed * Bug tor-browser#44247: Adapt Tor Browser manual to use the new support pages * Bug tor-browser#44289: RFPHelper console error when `--toolbar-field-color` is set to `inherit` * Bug tor-browser#44302: Fix the flags of some about pages * Bug tor-browser#44343: Hide the default browser settings again after MozBug 1969949 * Bug tor-browser#44411: DownloadsTorWarning.sys.mjs fails to load * Bug tor-browser#44419: Re-add the moz-toggle title attribute patch * Bug tor-browser#44439: Remove translate action from urlbar * Bug tor-browser#44458: Fix the "Connect" and ".onion available" button height * Bug tor-browser#44459: Letterboxing content alignment setting is missing styling * Bug tor-browser#44460: Payment methods and addresses setting headings are visible in settings * Bug tor-browser#44511: Make sure new search suggest features are disabled for 16.0 * Bug tor-browser#44520: Make sure "Firefox labs" is hidden by default * Bug tor-browser#44522: Move common changes to about dialog to base-browser * Bug tor-browser#44528: Make sure desktop IP Protection is disabled on desktop * Bug tor-browser#44535: Letterboxing background colour is no longer used * Bug tor-browser#44560: Customize the flags for alternate 'Application Data' directories * Bug tor-browser#44629: Add a search suggestion warning in the settings * Bug tor-browser#44630: Use settings config to hide settings, rather than data-hidden-from-search or commenting out * Bug tor-browser#44682: Wrong pid in the exit log * Bug tor-browser#44685: Use border radius for letterboxing * Bug tor-browser#44706: creating a new profiles causes crash ENOTTY * Bug tor-browser#44709: Hide the AI settings panel * Bug tor-browser#44710: Hide about:preferences#translations * Bug tor-browser#44765: Restore the limited sidebar description * Bug tor-browser#44781: Use a static page title for about:torconnect * Bug tor-browser#44793: `privacy.spoof_english` console error in about:preferences * Bug tor-browser#44797: Clean up `about:torconnect` styling * Bug tor-browser#44798: Don't load `about:torconnect` into iframes * Bug tor-browser#44799: Onionize toggle in `about:tor` uses blue text color * Bug tor-browser#44802: Hide the "safe browsing" settings * Bug tor-browser#44829: Hide the settings privacy card * Bug tor-browser#44830: Migrate our home page adjustments to the settings config * Bug tor-browser#44831: Misleading banner in "Search engine suggestions" settings * Bug tor-browser#44832: Hide the Firefox mascot in about:neterror * Bug tor-browser#44844: Use new urlbar CSS variables * Bug tor-browser#44846: about:torconnect redirect doesn't work with the new neterror page * Bug tor-browser#44847: Drop letterboxing sidebar rounded corner logic * Bug tor-browser#44855: Use `ariaNotify` for bridge updates * Bug tor-browser#44883: Remove urlbar quick action for labs * Bug tor-browser#44888: Use `--button-opacity-disabled` for disabled styling. * Bug tor-browser#44902: Error in privacy preference initialisation due to missing `dataCollectionViewProfilesMultiProfileBackupWarning` * Bug tor-browser#44903: Use the `support-page` instead of `tor-manual-page` in `moz-support-link` * Bug tor-browser#44904: Use settings config for onion site settings * Bug tor-browser#44952: TOR_PROVIDER=none throws an error at launch * Bug tor-browser#44955: Use `context-fill` for `about-wordmark.svg` * Bug tor-browser#44956: Switch colours in letterboxing setting icons to match the tab-alignment icons * Bug tor-browser#44959: Integrate the new Tor Browser manual into Tor Browser * Bug tor-browser#44991: Improve the no-authentication handling on the control port * Bug tor-browser#44998: Remove Firefox branding from about:preferences * Bug tor-browser#45005: Rename arrowpanel CSS variable * Bug tor-browser#45029: Convert connection status settings to new design and config approach * Bug tor-browser#45039: Make it easier to test ProfileDataUpgrader customization * Bug tor-browser#45051: Show a separate Tor error prompt for users who do not see about:torconnect (desktop) * Bug tor-browser#45055: Rename --color-gray-05 to --color-gray-0 * Bug tor-browser#45058: Convert bridge settings to new design and config approach * Bug tor-browser#45059: Convert advanced connection settings to new design and config approach * Bug tor-browser#45079: Move letterboxing to the appearance setting pane * Bug tor-browser#45081: Use the new "Acorn" icons on desktop * Bug tor-browser#45083: Error in about:preferences due to ipprotection missing * Bug tor-browser#45112: Rename border colour tokens * Bug tor-browser#45123: Disable profile backup for 16.0 * Bug tor-browser#45125: Tidy up bridge emoji widget * Bug tor-browser#45132: nsAppFileLocationProvider.cpp: use of undeclared identifier 'XRE_EXECUTABLE_FILE' * Bug tor-browser#45133: Disable `browser.toolbars.share-button.enabled` * Bug tor-browser#45143: Modify moz-fieldset to allow focusing the heading * Bug tor-browser#45156: Remove "Firefox Home" from the appearance settings * Bug tor-browser#45157: Grant "access local files" permission to NoScript * Bug tor-browser#45168: Hide the history search option, again * Bug tor-browser#45169: Cannot open history sidebar in private browsing window * Bug tor-browser#45171: Disable split view for 16.0 * Bug tor-browser#45176: Add "Request English" to the website language config * Bug tor-browser#45177: Remove websiteSpoofEnglishControl * Bug tor-browser#45178: Change support URLs in new settings * Bug tor-browser#45179: Update the feedback URL to point to the new support page. * Bug tor-browser#45180: Also show download warning in download settings * Bug tor-browser#45185: Disable network also in the Rust implementation of the remote settings client * Bug tor-browser#45186: Remove duplicate alert roles in moz-message-bar * Bug tor-browser#45187: Disable private browsing "delete downloaded files" feature * Bug tor-browser#45190: New circuit urlbar icon button is squished * Bug tor-browser#45192: Some URLs trigger `The proxy server is refusing connections` rather than about:torconnect prior to bootstrap * Bug tor-browser#45194: Hard code the "Your bridges" background colour * Bug tor-browser#45195: Modify our calls to openPreferences to work with the new settings * Bug tor-browser#45196: Replace old connection settings with setting-group widgets * Bug tor-browser#45197: Hide password settings by default * Bug tor-browser#45200: Include onion authentication in the new password settings * Bug tor-browser#45201: Convert security level settings to the new config * Bug tor-browser#45208: Switch on the setting redesign * Bug tor-browser#45209: Remove mention of "sync" from new settings * Bug tor-browser#45211: Add settings for protections from third party applications * Bug tor-browser#45214: Keep megalist (contextual password manager) disabled for 16.0 * Bug tor-browser#45226: Stylelint issues on browser/components/torpreferences/content/torPreferences.css * Bug tor-browser#45228: Drop browser.urlbar.update2.engineAliasRefresh * Bug tor-browser#45232: Spoof picture-in-picture sizes under RFP * Bug tor-browser#45236: Resolve miscellaneous accessibility issues in about:torconnect * Bug tor-browser#45249: Remove the duplicate "Verified by" from the old site identity panel * Bug tor-browser#45262: Disable reset PBM burn button and related UI migration * Bug tor-browser#45277: Change setting icon for About Tor Browser * Bug tor-browser#45278: Explicitly disable WebXR * Bug tor-browser#45343: Hide verifier and the related error for self-signed onion cert case * Bug tor-browser#45360: Port our language preference customization to the new settings design * Bug tor-browser#45403: Ensure RemoteSetting dumps are loaded ASAP * Bug tor-browser-build#41800: Create a script that adapts the Tor Browser manual HTMLs to work in Tor Browser * Windows + Linux * Bug tor-browser-build#40892: Move torrc-defaults, geoip and geoip6 on Windows and Linux * Windows + Android * Bug tor-browser#44513: Backport Bugzilla 2059471: Do not spoof screen orientation when it is locked * Windows * Bug tor-browser#44461: Window controls are missing on Windows * Bug tor-browser#44513: Backport Bugzilla 2059471: Do not spoof screen orientation when it is locked * Bug tor-browser#44633: Move D3D11 function from local webrtc changes to tbb webrtc patches * Bug tor-browser#44745: Change how we hide SSO setting for windows * Bug tor-browser#44862: Fontvis is missing Segoe MDL2 Assets * Bug tor-browser#45144: Do not offer to make the browser a PDF viewer when in portable mode * Bug tor-browser#45243: Disable taskbar tabs * Bug tor-browser#45293: Set widget.windows.tablet_detection_override to -1 * macOS * Bug tor-browser#44728: Bundled fonts are broken on macOS when the GPU process is enabled * Bug tor-browser#44850: Wrong path for bootstrapped tor daemon on macOS * Bug tor-browser#45108: Artifact generation fails due to missing .DS_Store in the branding directories * Bug tor-browser#45163: Consistently do not disable app group container support * Bug tor-browser-build#41476: Since 13.5-legacy is not longer supported, remove tools/signing/wrappers/sign-rcodesign * Linux * Bug tor-browser#44050: Change the domain in DBus interfaces * Bug tor-browser#44410: Use system's size for UI font on Linux * Bug tor-browser#44521: Disable widget.wayland.fractional-scale.enabled * Bug tor-browser#44887: Drop Linux 32-bit deprecation notice * Android * Updated GeckoView to 153.6.0esr * Bug 40627: [Android] "share" selected text only works once [tor-browser] * Bug tor-browser#41758: Don't allow PDFs to be opened by 3rd party apps * Bug tor-browser#43349: Add user feedback for when Tor connects (Android) * Bug tor-browser#43403: Add "UTC" to the end of the timestamp on tor logs (Android) * Bug tor-browser#43543: Make the dev icon distinct from the nightly one * Bug tor-browser#43571: Implement improved error handling and tor restart flow (Android) * Bug tor-browser#43790: Address "Various android workarounds" commit introduced in the 138 rebase * Bug tor-browser#43819: Show custom security level on android * Bug tor-browser#43820: Use SecurityLevel integration on Android * Bug tor-browser#43856: Fix onBackPressed() deprecation * Bug tor-browser#44054: Remove "open" button from download snackbar; second line defense for shouldShowAppDownloaderDialog * Bug tor-browser#44057: Drop about:torconnect from android * Bug tor-browser#44091: Add frequent regions to tor connection assist for Android * Bug tor-browser#44155: Always enable LNA on Android as a defense-in-depth * Bug tor-browser#44157: Remove secret setting toggle for Tab Management Redesign * Bug tor-browser#44175: Remove all default browser functionality (Android) * Bug tor-browser#44210: Drop shouldDisableNormalMode setting * Bug tor-browser#44211: Disable "Shake it up. Skip the scroll." * Bug tor-browser#44226: Disable all link sharing functionality * Bug tor-browser#44274: Re-add Screenshot setting * Bug tor-browser#44303: Fix extension update job on first launch on Android * Bug tor-browser#44323: Audit Android Settings changes from 128 to 140 * Bug tor-browser#44324: Refactor the NSS no proxy-bypass patch on A-S to avoid -Wunreachable-code * Bug tor-browser#44448: Trivialise unused assets rather than delete them * Bug tor-browser#44506: Remove more sync * Bug tor-browser#44507: Drop the dependency on Sentry * Bug tor-browser#44548: Remove "Passwords" UI from Android * Bug tor-browser#44581: Cleanup new Android compose tab-strip feature introduced in Firefox 147 * Bug tor-browser#44582: Fix or remove new settings search functionality on Android * Bug tor-browser#44615: Remove ability to "Rate/Review in Google Play" in app * Bug tor-browser#44653: Disable "Allow search suggestions in private sessions" prompt presented in RR 148 android * Bug tor-browser#44694: Remove new "Tab bar" feature on Android * Bug tor-browser#44698: Clean up comments in AccountSettingsFragment.kt. FIXME: Update A-S * Bug tor-browser#44700: Untracked change to `HomepageHeader.kt` * Bug tor-browser#44718: Fix splash screen branding and other issues in RR * Bug tor-browser#44721: Android build failure in nightlyOssLicensesTask: missing dependencies.json file * Bug tor-browser#44751: NoScript (and likely any extension) can be accidentally turned off * Bug tor-browser#44752: Remove new expanded toolbar option on Android due to fingerprintability * Bug tor-browser#44758: Disable email mask feature * Bug tor-browser#44769: TBA crash screen has Firefox asset as well as a "Send crash report" button * Bug tor-browser#44788: Extensions are unreachable via 3 dot menu in alpha (android) * Bug tor-browser#44789: Icon of "New Circuit" is not centered but lies in top left corner * Bug tor-browser#44827: Always enable NoScript for Android * Bug tor-browser#44842: Replace instances of SwitchPreference with SwitchPreferenceCompat * Bug tor-browser#44848: Do not overwrite Android toolchains on default mozconfigs * Bug tor-browser#44881: Remove link sharing setting on Android * Bug tor-browser#44913: Fully disable custom download location * Bug tor-browser#44917: Disable Ads client for all channels * Bug tor-browser#44921: Disable Google Lens feature * Bug tor-browser#44935: Remove incorrectly shown "Open in App" notification dot on settings button * Bug tor-browser#44936: Search widget icon is too small * Bug tor-browser#45031: Disable AI features for Android * Bug tor-browser#45045: Remove moz asset in Downloads screen * Bug tor-browser#45049: Opening a pdf from outside TBA crashes TBA after bootstrapping it not already bootstrapped * Bug tor-browser#45052: Initialise Tor modules on Android in the same order as desktop * Bug tor-browser#45085: Disable GooglePlay Integrity * Bug tor-browser#45098: Share link button shows in landscape mode on android despite being removed elsewhere * Bug tor-browser#45103: Disable broken "tab management" * Bug tor-browser#45109: No value passed for parameter 'jsEnabled' * Bug tor-browser#45118: Audit and disable Mozilla VPN promo * Bug tor-browser#45130: Clean up TorHomePage padding * Bug tor-browser#45159: Fix Android Padlock security pane colors * Bug tor-browser#45170: Tab Switcher shows Firefox's private browsing mask badge on tab switcher icon * Bug tor-browser#45172: Move our "Connect to Tor before opening links" code from the deprecated openToBrowserAndLoad to the recommended loadUrlOrSearch * Bug tor-browser#45173: Disable Search Optimizations for Android * Bug tor-browser#45221: Remove "Manage downloads with another app" setting from TBA download settings * Bug tor-browser#45225: Remove "Share" and "Translate" options from "Settings" -> "Customize" -> "Toolbar shortcut" * Bug tor-browser#45227: Remove "Default search engine for Standard Mode" * Bug tor-browser#45234: Do not spoof secondary screen orientations if they were requested by a lock * Bug tor-browser#45250: Remove "Privacy report" in tabs settings in Android * Bug tor-browser#45251: Turn off and hide the remote improvements UI * Bug tor-browser#45252: Remove the change wallpaper menu item * Bug tor-browser#45261: Add linter check: only `MAIN+LAUNCHER` components may be exported="true" * Bug tor-browser#45269: Completely disable search suggestion feature * Bug tor-browser#45275: Drop clearOnShutdown on Android-specific profile * Bug tor-browser#45280: about:config broken on Android * Bug tor-browser#45281: Fix screen lock to hide Tor Browser tabs feature * Bug tor-browser#45363: Disable import bookmarks in Android * Bug tor-browser-build#28595: Remove the need to update var/gradle_dependencies_version * Build System * All Platforms * Bug tor-browser#43180: Remove translation CI 13.5 legacy extension * Bug tor-browser#43951: Include product with the component in triage CSVs * Bug tor-browser#44452: Improve tb-dev range-diff and diff-diff * Bug tor-browser#44498: Update translations CI to account for 1.0 version gap between alpha and stable * Bug tor-browser#45224: Enable Rust linter in CI * Bug tor-browser#45334: Update marionette harness to accept multiple tags * Bug tor-browser-build#31860: Start using LTO for firefox project * Bug tor-browser-build#40903: Make xz multi-threaded * Bug tor-browser-build#41445: Better handle bugzilla "Web Compatibility" issues in generate-bugzilla-triage-csv * Bug tor-browser-build#41591: Remove support for old mar filenames when 13.5 legacy branch is EOL * Bug tor-browser-build#41607: Fix regression from #41373 in tools/count-mar-downloads * Bug tor-browser-build#41608: Add per-platform numbers for incrementals in count-mar-downloads * Bug tor-browser-build#41647: Add a XZ_DEFAULTS to set_default_env * Bug tor-browser-build#41648: Add a mozconfig to projects/geckoview * Bug tor-browser-build#41660: Add a Firefox target to build unpatched Firefox in tor-browser-build * Bug tor-browser-build#41664: Investigate and fix issue with unexpected build_id changes * Bug tor-browser-build#41668: Build mozharness.zip when building dev artifacts * Bug tor-browser-build#41671: Update tools/signing/linux-signer-sign-android-apks to check for v3 signatures instead of v1 * Bug tor-browser-build#41678: use set -u and set -o pipefail * Bug tor-browser-build#41685: Add henry to list of taggers in relevant projects. * Bug tor-browser-build#41687: Add single `make list_toolchain_updates` command to list all toolchain updates * Bug tor-browser-build#41690: Merge list_toolchain_updates-firefox-* commands into one * Bug tor-browser-build#41693: Drop base-browser targets * Bug tor-browser-build#41705: Remove unnecessary workaround in projects/go/build * Bug tor-browser-build#41707: firefox-l10n fails to build with `fetch_locale: 1: set: Illegal option -o pipefail` * Bug tor-browser-build#41726: Check in list_toolchain_updates that the sha512sum we have for the macOS SDK is the same as Mozilla * Bug tor-browser-build#41727: Split the list_toolchain_updates_checks script in two * Bug tor-browser-build#41728: Update projects/application-services/list_toolchain_updates_checks to check nss sha256sum * Bug tor-browser-build#41753: Allow running custom commands when vendoring Go dependencies * Bug tor-browser-build#41766: Use gzip for all platforms for Go vendoring * Bug tor-browser-build#41778: Remove base-browser from protected-branches.py * Bug tor-browser-build#41780: Create sha256sums-unsigned-build.txt in artifacts/$platform directories * Bug tor-browser-build#41786: Add comment to rbm.local.conf.example warning about potential recursive loops in tmp_dir definition * Bug tor-browser-build#41806: `make list_toolchain_updates` should check var/firefox_platform_version * Bug tor-browser-build#41807: Incorrectly generated Bugzilla query link in generate-bugzilla-triage-csv.py * Bug tor-browser-build#41813: Disable build artifacts in `make generate_gradle_dependencies_list-geckoview` * Bug tor-browser-build#41823: Add versions information to the toolchain list update * Bug tor-browser-build#41844: Add scripts to backup/deploy signing keys on signing machines * Bug tor-browser-build#41860: Change GCC sources mirror to https://gcc.gnu.org * Bug tor-browser-build#41867: Update tails-dev email address in release prep templates * Bug tor-browser-build#41896: Update Lyrebird to 0.9.0 * Bug tor-browser-build#41898: Separate MB and TB toolchain archives in https://nightlies.tbb.torproject.org/nightly-builds/toolchains/ * Bug rbm#40093: Make it easy to get the sha256sum of an input_files file * Bug rbm#40096: `container extract` is showing confusing error when target directory already exists * Bug rbm#40100: The GZIP variable makes set -u fail * Bug rbm#40103: Allow having multiple tmp_dir values * Bug rbm#40106: Improve error message in case of recursive definition * Windows + macOS + Linux * Bug tor-browser-build#41427: Drop the openURL property from the update * Bug tor-browser-build#41662: Add python-zstandard to desktop containers * Bug tor-browser-build#41711: Update our manual machinery for its new home * Bug tor-browser-build#41759: Remove references to legacy release in tor-browser-build * Windows + Linux + Android * Updated Go to 1.26.10 * Bug tor-browser-build#41770: Update Go to 1.26.x * Windows + macOS * Bug tor-browser-build#41535: Update macOS and Windows containers to Debian trixie * Windows * Bug tor-browser#44853: Update target in mozconfig-windows-x86_64 and mozconfig-windows-i686 * Bug tor-browser-build#41810: Define GetAddrInfoExCancel on mingw * Bug tor-browser-build#41877: `make list_toolchain_updates` is not checking windows-app-sdk * Bug tor-browser-build#41878: Update the Windows app SDK and add some additional DLLs * macOS * Bug tor-browser-build#41665: Update macos signing wrapper for new executable gpu-helper.app * Bug tor-browser-build#41773: Change the position of -mindepth when creating the dmg * Bug tor-browser-build#41793: Stop copying permissions from .mar in dmg2mar * Linux * Bug tor-browser#44555: Remove mozconfig-linux-i686 * Bug tor-browser-build#41601: Upstream dropped Linux i686 support * Bug tor-browser-build#41627: Firefox build system needs a more recent version of OpenSSL on Linux * Bug tor-browser-build#41632: Ship Linux aarch64 builds in Alpha Release Channel * Bug tor-browser-build#41639: Remove linux-arm target * Bug tor-browser-build#41640: Clean the GCC config file * Android * Bug tor-browser#44360: Patch the vendored Gradle Nimbus plugin * Bug tor-browser#44370: Always produce target.maven.zip * Bug tor-browser#44508: Drop clearkey also on Android * Bug tor-browser#44848: Do not overwrite Android toolchains on default mozconfigs * Bug tor-browser#45086: Compress omni.ja with xz on Android * Bug tor-browser-build#32200: only include required bits of OpenSSL in Android builds * Bug tor-browser-build#41485: Retire get_gradle_dependencies_list and create a simple way to update gradle deps * Bug tor-browser-build#41573: Remove Android x86 support * Bug tor-browser-build#41621: Remove support using older android build tools when signing 14.5 releases in tools/signing/wrappers/sign-apk * Bug tor-browser-build#41628: android_ndk_version and revision can be grouped together * Bug tor-browser-build#41636: Update the scripts to manage Gradle dependencies * Bug tor-browser-build#41666: Normalize the path to tor-expert-bundle.aar * Bug tor-browser-build#41684: Use only the NDK as var/compiler on Android * Bug tor-browser-build#41699: Delete prefs specific to other architectures in omni.ja * Bug tor-browser-build#41702: Replace uglifyjs with terser * Bug tor-browser-build#41719: Enable network when var/generate_gradle_dependencies_list is set in geckoview * Bug tor-browser-build#41736: Add generate_gradle_dependencies_list-$project makefile targets * Bug tor-browser-build#41737: Remove comment from gen-gradle-deps-file.py saying var/gradle_dependencies_version should be updated * Bug tor-browser-build#41743: Make an error if gradle-dependencies-list is missing in the input files * Bug tor-browser-build#41744: Reduce duplication between projects/geckoview/build and projects/geckoview/build_apk * Bug tor-browser-build#41745: Add .sh file extension to included build_* scripts in projects/geckoview * Bug tor-browser-build#41751: Fix the NDK path * Bug tor-browser-build#41801: Hardlink artifacts in fix_gradle_deps.py * Bug tor-browser-build#41830: Update the browser project to change omni.ja.xz * Bug tor-browser-build#41843: Remove unused universal apk from geckoview * Bug tor-browser-build#41876: Add missing firefox_platform_version.txt file in android artifacts directories * applications * releases
blog.torproject.org
October 30, 2026 at 4:30 PM
How to Deploy #Bugzilla on #Ubuntu #VPS (5-Minute Quick-Start Guide) This article provides a step-by-step guide detailing how to deploy Bugzilla on Ubuntu VPS.
What is Bugzilla?
Bugzilla is an ...
Continued 👉 #selfhosted #letsencrypt #selfhosting #bugtracking #issuemanagement #opensource
How to Deploy Bugzilla on Ubuntu VPS (5-Minute Quick-Start Guide)
blog.radwebhosting.com
October 25, 2026 at 1:30 PM
here's the version that spams a bunch of `[[clang::always_inline]]`: https://godbolt.org/z/Kq81a9co7
Compiler Explorer - C++
// GCC 13 has false positive warnings around stringop-overflow and array-bounds. // The layout of a BoundedVector triggers these warnings. Suppress them // until this is fixed in upstream gcc. See // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114758 for more details. #if defined(__GNUC__) && !defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-overflow" #pragma GCC diagnostic ignored "-Warray-bounds" #endif namespace rosidl_runtime_cpp { /// A container based on std::vector but with an upper bound. /** * Meets the same requirements as std::vector. * * \param Tp Type of element * \param UpperBound The upper bound for the number of elements * \param Alloc Allocator type, defaults to std::allocator */ template> class BoundedVector : protected std::vector { using Base = std::vector; public: using typename Base::value_type; using typename Base::pointer; using typename Base::const_pointer; using typename Base::reference; using typename Base::const_reference; using typename Base::iterator; using typename Base::const_iterator; using typename Base::const_reverse_iterator; using typename Base::reverse_iterator; using typename Base::size_type; using typename Base::difference_type; using typename Base::allocator_type; /// Create a %BoundedVector with no elements. BoundedVector() noexcept (std::is_nothrow_default_constructible::value) : Base() {} /// Creates a %BoundedVector with no elements. /** * \param a An allocator object */ explicit BoundedVector( const typename Base::allocator_type & a) noexcept : Base(a) {} /// Create a %BoundedVector with default constructed elements. /** * This constructor fills the %BoundedVector with @a n default * constructed elements. * * \param n The number of elements to initially create * \param a An allocator */ explicit BoundedVector( typename Base::size_type n, const typename Base::allocator_type & a = allocator_type()) : Base(n, a) { if (n > UpperBound) { throw std::length_error("Exceeded upper bound"); } } /// Create a %BoundedVector with copies of an exemplar element. /** * This constructor fills the %BoundedVector with @a n copies of @a value. * * \param n The number of elements to initially create * \param value An element to copy * \param a An allocator */ BoundedVector( typename Base::size_type n, const typename Base::value_type & value, const typename Base::allocator_type & a = allocator_type()) : Base(n, value, a) { if (n > UpperBound) { throw std::length_error("Exceeded upper bound"); } } /// %BoundedVector copy constructor. /** * The newly-created %BoundedVector uses a copy of the allocation * object used by @a x. * All the elements of @a x are copied, but any extra memory in * @a x (for fast expansion) will not be copied. * * \param x A %BoundedVector of identical element and allocator types */ BoundedVector( const BoundedVector & x) : Base(x) {} /// %BoundedVector move constructor. /** * The newly-created %BoundedVector contains the exact contents of @a x. * The contents of @a x are a valid, but unspecified %BoundedVector. * * \param x A %BoundedVector of identical element and allocator types */ BoundedVector(BoundedVector && x) noexcept : Base(std::move(x)) {} /// Copy constructor with alternative allocator BoundedVector(const BoundedVector & x, const typename Base::allocator_type & a) : Base(x, a) {} /// Build a %BoundedVector from an initializer list. /** * Create a %BoundedVector consisting of copies of the elements in the * initializer_list @a l. * * This will call the element type's copy constructor N times * (where N is @a l.size()) and do no memory reallocation. * * \param l An initializer_list * \param a An allocator */ BoundedVector( std::initializer_list l, const typename Base::allocator_type & a = typename Base::allocator_type()) : Base(l, a) { if (l.size() > UpperBound) { throw std::length_error("Exceeded upper bound"); } } /// Build a %BoundedVector from a range. /** * Create a %BoundedVector consisting of copies of the elements from * [first,last). * * If the iterators are forward, bidirectional, or random-access, then * this will call the elements' copy constructor N times (where N is * distance(first,last)) and do no memory reallocation. * But if only input iterators are used, then this will do at most 2N * calls to the copy constructor, and logN memory reallocations. * * \param first An input iterator * \param last An input iterator * \param a An allocator */ template< typename InputIterator > BoundedVector( InputIterator first, InputIterator last, const typename Base::allocator_type & a = allocator_type()) : Base(first, last, a) { if (size() > UpperBound) { throw std::length_error("Exceeded upper bound"); } } /// The dtor only erases the elements. /** * Note that if the elements themselves are pointers, the pointed-to * memory is not touched in any way. * Managing the pointer is the user's responsibility. */ ~BoundedVector() noexcept {} /// %BoundedVector assignment operator. /** * All the elements of @a x are copied, but any extra memory in * @a x (for fast expansion) will not be copied. * Unlike the copy constructor, the allocator object is not copied. * * \param x A %BoundedVector of identical element and allocator types */ BoundedVector & operator=(const BoundedVector & x) { (void)Base::operator=(x); return *this; } /// %BoundedVector move assignment operator /** * \param x A %BoundedVector of identical element and allocator types. */ BoundedVector & operator=(BoundedVector && x) { (void)Base::operator=(std::move(x)); return *this; } /// %BoundedVector list assignment operator. /** * This function fills a %BoundedVector with copies of the elements in * the initializer list @a l. * * Note that the assignment completely changes the %BoundedVector and * that the resulting %BoundedVector's size is the same as the number * of elements assigned. * Old data may be lost. * * \param l An initializer_list */ BoundedVector & operator=(std::initializer_list l) { if (l.size() > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::operator=(l); return *this; } /// Assign a given value to a %BoundedVector. /** * This function fills a %BoundedVector with @a n copies of the * given value. * Note that the assignment completely changes the %BoundedVector and * that the resulting %BoundedVector's size is the same as the number * of elements assigned. * Old data may be lost. * * \param n Number of elements to be assigned * \param val Value to be assigned */ void assign( typename Base::size_type n, const typename Base::value_type & val) { if (n > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::assign(n, val); } /// Assign a range to a %BoundedVector. /** * This function fills a %BoundedVector with copies of the elements in * the range [first,last). * * Note that the assignment completely changes the %BoundedVector and * that the resulting %BoundedVector's size is the same as the number * of elements assigned. * Old data may be lost. * * \param first An input iterator * \param last An input iterator */ template< typename InputIterator > void assign(InputIterator first, InputIterator last) { using cat = typename std::iterator_traits::iterator_category; do_assign(first, last, cat()); } /// Assign an initializer list to a %BoundedVector. /** * This function fills a %BoundedVector with copies of the elements in * the initializer list @a l. * * Note that the assignment completely changes the %BoundedVector and * that the resulting %BoundedVector's size is the same as the number * of elements assigned. * Old data may be lost. * * \param l An initializer_list */ void assign(std::initializer_list l) { if (l.size() > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::assign(l); } using Base::begin; using Base::end; using Base::rbegin; using Base::rend; using Base::cbegin; using Base::cend; using Base::crbegin; using Base::crend; using Base::size; /** Returns the size() of the largest possible %BoundedVector. */ typename Base::size_type max_size() const noexcept { return std::min(UpperBound, Base::max_size()); } /// Resize the %BoundedVector to the specified number of elements. /** * This function will %resize the %BoundedVector to the specified * number of elements. * If the number is smaller than the %BoundedVector's current size the * %BoundedVector is truncated, otherwise default constructed elements * are appended. * * \param new_size Number of elements the %BoundedVector should contain */ void resize(typename Base::size_type new_size) { if (new_size > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::resize(new_size); } /// Resize the %BoundedVector to the specified number of elements. /** * This function will %resize the %BoundedVector to the specified * number of elements. * If the number is smaller than the %BoundedVector's current size the * %BoundedVector is truncated, otherwise the %BoundedVector is * extended and new elements are populated with given data. * * \param new_size Number of elements the %BoundedVector should contain * \param x Data with which new elements should be populated */ void resize( typename Base::size_type new_size, const typename Base::value_type & x) { if (new_size > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::resize(new_size, x); } using Base::shrink_to_fit; using Base::capacity; using Base::empty; /// Attempt to preallocate enough memory for specified number of elements. /** * This function attempts to reserve enough memory for the * %BoundedVector to hold the specified number of elements. * If the number requested is more than max_size(), length_error is * thrown. * * The advantage of this function is that if optimal code is a * necessity and the user can determine the number of elements that * will be required, the user can reserve the memory in %advance, and * thus prevent a possible reallocation of memory and copying of * %BoundedVector data. * * \param n Number of elements required * @throw std::length_error If @a n exceeds @c max_size() */ void reserve(typename Base::size_type n) { if (n > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::reserve(n); } using Base::operator[]; using Base::at; using Base::front; using Base::back; /// Return a pointer such that [data(), data() + size()) is a valid range. /** * For a non-empty %BoundedVector, data() == &front;(). */ template< typename T, typename std::enable_if< !std::is_same::value && !std::is_same::value >::type * = nullptr > T * data() noexcept { return Base::data(); } template< typename T, typename std::enable_if< !std::is_same::value && !std::is_same::value >::type * = nullptr > const T * data() const noexcept { return Base::data(); } /// Add data to the end of the %BoundedVector. /** * This is a typical stack operation. * The function creates an element at the end of the %BoundedVector * and assigns the given data to it. * Due to the nature of a %BoundedVector this operation can be done in * constant time if the %BoundedVector has preallocated space * available. * * \param x Data to be added */ void push_back(const typename Base::value_type & x) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::push_back(x); } void push_back(typename Base::value_type && x) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::push_back(x); } /// Add data to the end of the %BoundedVector. /** * This is a typical stack operation. * The function creates an element at the end of the %BoundedVector * and assigns the given data to it. * Due to the nature of a %BoundedVector this operation can be done in * constant time if the %BoundedVector has preallocated space * available. * * \param args Arguments to be forwarded to the constructor of Tp */ template typename Base::reference emplace_back(Args && ... args) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::emplace_back(std::forward(args)...); } /// Insert an object in %BoundedVector before specified iterator. /** * This function will insert an object of type T constructed with * T(std::forward(args)...) before the specified location. * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position A const_iterator into the %BoundedVector * \param args Arguments * \return An iterator that points to the inserted data */ template typename Base::iterator emplace( typename Base::const_iterator position, Args && ... args) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::emplace(position, std::forward(args) ...); } /// Insert given value into %BoundedVector before specified iterator. /** * This function will insert a copy of the given value before the * specified location. * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position A const_iterator into the %BoundedVector * \param x Data to be inserted * \return An iterator that points to the inserted data */ typename Base::iterator insert( typename Base::const_iterator position, const typename Base::value_type & x) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::insert(position, x); } /// Insert given rvalue into %BoundedVector before specified iterator. /** * This function will insert a copy of the given rvalue before the * specified location. * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position A const_iterator into the %BoundedVector * \param x Data to be inserted * \return An iterator that points to the inserted data */ typename Base::iterator insert( typename Base::const_iterator position, typename Base::value_type && x) { if (size() >= UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::insert(position, x); } /// Insert an initializer_list into the %BoundedVector. /** * This function will insert copies of the data in the * initializer_list @a l into the %BoundedVector before the location * specified by @a position. * * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position An iterator into the %BoundedVector * \param l An initializer_list */ typename Base::iterator insert( typename Base::const_iterator position, std::initializer_list l) { if (size() + l.size() > UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::insert(position, l); } /// Insert a number of copies of given data into the %BoundedVector. /** * This function will insert a specified number of copies of the given * data before the location specified by @a position. * * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position A const_iterator into the %BoundedVector * \param n Number of elements to be inserted * \param x Data to be inserted * \return An iterator that points to the inserted data */ typename Base::iterator insert( typename Base::const_iterator position, typename Base::size_type n, const typename Base::value_type & x) { if (size() + n > UpperBound) { throw std::length_error("Exceeded upper bound"); } return Base::insert(position, n, x); } /// Insert a range into the %BoundedVector. /** * This function will insert copies of the data in the range * [first,last) into the %BoundedVector before the location * specified by @a pos. * * Note that this kind of operation could be expensive for a * %BoundedVector and if it is frequently used the user should * consider using std::list. * * \param position A const_iterator into the %BoundedVector * \param first An input iterator * \param last An input iterator * \return An iterator that points to the inserted data */ template< typename InputIterator > typename Base::iterator insert( typename Base::const_iterator position, InputIterator first, InputIterator last) { using cat = typename std::iterator_traits::iterator_category; return do_insert(position, first, last, cat()); } using Base::erase; using Base::pop_back; using Base::clear; private: /// Assign elements from an input range. template< typename InputIterator > void do_assign(InputIterator first, InputIterator last, std::input_iterator_tag) { BoundedVector(first, last).swap(*this); } /// Assign elements from a forward range. template< typename FwdIterator > void do_assign(FwdIterator first, FwdIterator last, std::forward_iterator_tag) { if (static_cast(std::distance(first, last)) > UpperBound) { throw std::length_error("Exceeded upper bound"); } Base::assign(first, last); } // Insert each value at the end and then rotate them to the desired position. // If the bound is exceeded, the inserted elements are removed again. template< typename InputIterator > typename Base::iterator do_insert( typename Base::const_iterator position, InputIterator first, InputIterator last, std::input_iterator_tag) { const auto orig_size = size(); const auto idx = position - cbegin(); try { while (first != last) { push_back(*first++); } } catch (const std::length_error &) { Base::resize(orig_size); throw; } auto pos = begin() + idx; std::rotate(pos, begin() + orig_size, end()); return begin() + idx; } template< typename FwdIterator > typename Base::iterator do_insert( typename Base::const_iterator position, FwdIterator first, FwdIterator last, std::forward_iterator_tag) { auto dist = std::distance(first, last); if ((dist < 0) || (size() + static_cast(dist) > UpperBound)) { throw std::length_error("Exceeded upper bound"); } return Base::insert(position, first, last); } /// Vector equality comparison. /** * This is an equivalence relation. * It is linear in the size of the vectors. * Vectors are considered equivalent if their sizes are equal, and if * corresponding elements compare equal. * * \param x A %BoundedVector * \param y A %BoundedVector of the same type as @a x * \return True if the size and elements of the vectors are equal */ friend bool operator==( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) == static_cast(y); } /// Vector ordering relation. /** * This is a total ordering relation. * It is linear in the size of the vectors. * The elements must be comparable with @c <. * * See std::lexicographical_compare() for how the determination is made. * * \param x A %BoundedVector * \param y A %BoundedVector of the same type as @a x * @return True if @a x is lexicographically less than @a y */ friend bool operator<( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) < static_cast(y); } /// Based on operator== friend bool operator!=( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) != static_cast(y); } /// Based on operator< friend bool operator>( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) > static_cast(y); } /// Based on operator< friend bool operator<=( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) <= static_cast(y); } /// Based on operator< friend bool operator>=( const BoundedVector & x, const BoundedVector & y) { return static_cast(x) >= static_cast(y); } }; /// See rosidl_runtime_cpp::BoundedVector::swap(). template inline void swap(BoundedVector & x, BoundedVector & y) { x.swap(y); } } // namespace rosidl_runtime_cpp #if defined(__GNUC__) && !defined(__clang__) #pragma GCC diagnostic pop #endif enum rosidl_runtime_c__message_initialization { // Initialize all fields of the message, either with the default value // (if the field has one), or with an empty value (generally 0 or an // empty string). ROSIDL_RUNTIME_C_MSG_INIT_ALL, // Skip initialization of all fields of the message. It is up to the user to // ensure that all fields are initialized before use. ROSIDL_RUNTIME_C_MSG_INIT_SKIP, // Initialize all fields of the message to an empty value (generally 0 or an // empty string). ROSIDL_RUNTIME_C_MSG_INIT_ZERO, // Initialize all fields of the message that have defaults; all other fields // are left untouched. ROSIDL_RUNTIME_C_MSG_INIT_DEFAULTS_ONLY, }; namespace rosidl_runtime_cpp { /// Enum utilized in rosidl generated sources for describing how members are initialized. /** * See the documentation for the `rosidl_runtime_c__message_initialization` enum for more information. */ enum class MessageInitialization { ALL = ROSIDL_RUNTIME_C_MSG_INIT_ALL, SKIP = ROSIDL_RUNTIME_C_MSG_INIT_SKIP, ZERO = ROSIDL_RUNTIME_C_MSG_INIT_ZERO, DEFAULTS_ONLY = ROSIDL_RUNTIME_C_MSG_INIT_DEFAULTS_ONLY, }; } // namespace rosidl_runtime_cpp // Include directives for member types // Member 'header' // Include directives for member types // Member 'stamp' #ifndef _WIN32 # define DEPRECATED__builtin_interfaces__msg__Time __attribute__((deprecated)) #else # define DEPRECATED__builtin_interfaces__msg__Time __declspec(deprecated) #endif namespace builtin_interfaces { namespace msg { // message struct template struct Time_ { using Type = Time_; explicit Time_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->sec = 0l; this->nanosec = 0ul; } } explicit Time_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { (void)_alloc; if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->sec = 0l; this->nanosec = 0ul; } } // field types and members using _sec_type = int32_t; _sec_type sec; using _nanosec_type = uint32_t; _nanosec_type nanosec; // setters for named parameter idiom Type & set__sec( const int32_t & _arg) { this->sec = _arg; return *this; } Type & set__nanosec( const uint32_t & _arg) { this->nanosec = _arg; return *this; } // constant declarations // pointer types using RawPtr = builtin_interfaces::msg::Time_ *; using ConstRawPtr = const builtin_interfaces::msg::Time_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__builtin_interfaces__msg__Time std::shared_ptr> Ptr; typedef DEPRECATED__builtin_interfaces__msg__Time std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const Time_ & other) const { if (this->sec != other.sec) { return false; } if (this->nanosec != other.nanosec) { return false; } return true; } bool operator!=(const Time_ & other) const { return !this->operator==(other); } }; // struct Time_ // alias to use template instance with default allocator using Time = builtin_interfaces::msg::Time_>; // constant definitions } // namespace msg } // namespace builtin_interfaces #ifndef _WIN32 # define DEPRECATED__std_msgs__msg__Header __attribute__((deprecated)) #else # define DEPRECATED__std_msgs__msg__Header __declspec(deprecated) #endif namespace std_msgs { namespace msg { // message struct template struct Header_ { using Type = Header_; explicit Header_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : stamp(_init) { if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->frame_id = ""; } } explicit Header_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : stamp(_alloc, _init), frame_id(_alloc) { if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->frame_id = ""; } } // field types and members using _stamp_type = builtin_interfaces::msg::Time_; _stamp_type stamp; using _frame_id_type = std::basic_string, typename std::allocator_traits::template rebind_alloc>; _frame_id_type frame_id; // setters for named parameter idiom Type & set__stamp( const builtin_interfaces::msg::Time_ & _arg) { this->stamp = _arg; return *this; } Type & set__frame_id( const std::basic_string, typename std::allocator_traits::template rebind_alloc> & _arg) { this->frame_id = _arg; return *this; } // constant declarations // pointer types using RawPtr = std_msgs::msg::Header_ *; using ConstRawPtr = const std_msgs::msg::Header_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__std_msgs__msg__Header std::shared_ptr> Ptr; typedef DEPRECATED__std_msgs__msg__Header std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const Header_ & other) const { if (this->stamp != other.stamp) { return false; } if (this->frame_id != other.frame_id) { return false; } return true; } bool operator!=(const Header_ & other) const { return !this->operator==(other); } }; // struct Header_ // alias to use template instance with default allocator using Header = std_msgs::msg::Header_>; // constant definitions } // namespace msg } // namespace std_msgs // Member 'pose' // Include directives for member types // Member 'position' #ifndef _WIN32 # define DEPRECATED__geometry_msgs__msg__Point __attribute__((deprecated)) #else # define DEPRECATED__geometry_msgs__msg__Point __declspec(deprecated) #endif namespace geometry_msgs { namespace msg { // message struct template struct Point_ { using Type = Point_; explicit Point_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; } } explicit Point_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { (void)_alloc; if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; } } // field types and members using _x_type = double; _x_type x; using _y_type = double; _y_type y; using _z_type = double; _z_type z; // setters for named parameter idiom Type & set__x( const double & _arg) { this->x = _arg; return *this; } Type & set__y( const double & _arg) { this->y = _arg; return *this; } Type & set__z( const double & _arg) { this->z = _arg; return *this; } // constant declarations // pointer types using RawPtr = geometry_msgs::msg::Point_ *; using ConstRawPtr = const geometry_msgs::msg::Point_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__geometry_msgs__msg__Point std::shared_ptr> Ptr; typedef DEPRECATED__geometry_msgs__msg__Point std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const Point_ & other) const { if (this->x != other.x) { return false; } if (this->y != other.y) { return false; } if (this->z != other.z) { return false; } return true; } bool operator!=(const Point_ & other) const { return !this->operator==(other); } }; // struct Point_ // alias to use template instance with default allocator using Point = geometry_msgs::msg::Point_>; // constant definitions } // namespace msg } // namespace geometry_msgs // Member 'orientation' #ifndef _WIN32 # define DEPRECATED__geometry_msgs__msg__Quaternion __attribute__((deprecated)) #else # define DEPRECATED__geometry_msgs__msg__Quaternion __declspec(deprecated) #endif namespace geometry_msgs { namespace msg { // message struct template struct Quaternion_ { using Type = Quaternion_; explicit Quaternion_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::DEFAULTS_ONLY == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; this->w = 1.0; } else if (rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; this->w = 0.0; } } explicit Quaternion_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) { (void)_alloc; if (rosidl_runtime_cpp::MessageInitialization::ALL == _init || rosidl_runtime_cpp::MessageInitialization::DEFAULTS_ONLY == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; this->w = 1.0; } else if (rosidl_runtime_cpp::MessageInitialization::ZERO == _init) { this->x = 0.0; this->y = 0.0; this->z = 0.0; this->w = 0.0; } } // field types and members using _x_type = double; _x_type x; using _y_type = double; _y_type y; using _z_type = double; _z_type z; using _w_type = double; _w_type w; // setters for named parameter idiom Type & set__x( const double & _arg) { this->x = _arg; return *this; } Type & set__y( const double & _arg) { this->y = _arg; return *this; } Type & set__z( const double & _arg) { this->z = _arg; return *this; } Type & set__w( const double & _arg) { this->w = _arg; return *this; } // constant declarations // pointer types using RawPtr = geometry_msgs::msg::Quaternion_ *; using ConstRawPtr = const geometry_msgs::msg::Quaternion_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__geometry_msgs__msg__Quaternion std::shared_ptr> Ptr; typedef DEPRECATED__geometry_msgs__msg__Quaternion std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const Quaternion_ & other) const { if (this->x != other.x) { return false; } if (this->y != other.y) { return false; } if (this->z != other.z) { return false; } if (this->w != other.w) { return false; } return true; } bool operator!=(const Quaternion_ & other) const { return !this->operator==(other); } }; // struct Quaternion_ // alias to use template instance with default allocator using Quaternion = geometry_msgs::msg::Quaternion_>; // constant definitions } // namespace msg } // namespace geometry_msgs #ifndef _WIN32 # define DEPRECATED__geometry_msgs__msg__Pose __attribute__((deprecated)) #else # define DEPRECATED__geometry_msgs__msg__Pose __declspec(deprecated) #endif namespace geometry_msgs { namespace msg { // message struct template struct Pose_ { using Type = Pose_; explicit Pose_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : position(_init), orientation(_init) { (void)_init; } explicit Pose_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : position(_alloc, _init), orientation(_alloc, _init) { (void)_init; } // field types and members using _position_type = geometry_msgs::msg::Point_; _position_type position; using _orientation_type = geometry_msgs::msg::Quaternion_; _orientation_type orientation; // setters for named parameter idiom Type & set__position( const geometry_msgs::msg::Point_ & _arg) { this->position = _arg; return *this; } Type & set__orientation( const geometry_msgs::msg::Quaternion_ & _arg) { this->orientation = _arg; return *this; } // constant declarations // pointer types using RawPtr = geometry_msgs::msg::Pose_ *; using ConstRawPtr = const geometry_msgs::msg::Pose_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__geometry_msgs__msg__Pose std::shared_ptr> Ptr; typedef DEPRECATED__geometry_msgs__msg__Pose std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const Pose_ & other) const { if (this->position != other.position) { return false; } if (this->orientation != other.orientation) { return false; } return true; } bool operator!=(const Pose_ & other) const { return !this->operator==(other); } }; // struct Pose_ // alias to use template instance with default allocator using Pose = geometry_msgs::msg::Pose_>; // constant definitions } // namespace msg } // namespace geometry_msgs #ifndef _WIN32 # define DEPRECATED__geometry_msgs__msg__PoseStamped __attribute__((deprecated)) #else # define DEPRECATED__geometry_msgs__msg__PoseStamped __declspec(deprecated) #endif namespace geometry_msgs { namespace msg { // message struct template struct PoseStamped_ { using Type = PoseStamped_; explicit PoseStamped_(rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : header(_init), pose(_init) { (void)_init; } explicit PoseStamped_(const ContainerAllocator & _alloc, rosidl_runtime_cpp::MessageInitialization _init = rosidl_runtime_cpp::MessageInitialization::ALL) : header(_alloc, _init), pose(_alloc, _init) { (void)_init; } // field types and members using _header_type = std_msgs::msg::Header_; _header_type header; using _pose_type = geometry_msgs::msg::Pose_; _pose_type pose; // setters for named parameter idiom Type & set__header( const std_msgs::msg::Header_ & _arg) { this->header = _arg; return *this; } Type & set__pose( const geometry_msgs::msg::Pose_ & _arg) { this->pose = _arg; return *this; } // constant declarations // pointer types using RawPtr = geometry_msgs::msg::PoseStamped_ *; using ConstRawPtr = const geometry_msgs::msg::PoseStamped_ *; using SharedPtr = std::shared_ptr>; using ConstSharedPtr = std::shared_ptr const>; template>> using UniquePtrWithDeleter = std::unique_ptr, Deleter>; using UniquePtr = UniquePtrWithDeleter<>; template>> using ConstUniquePtrWithDeleter = std::unique_ptr const, Deleter>; using ConstUniquePtr = ConstUniquePtrWithDeleter<>; using WeakPtr = std::weak_ptr>; using ConstWeakPtr = std::weak_ptr const>; // pointer types similar to ROS 1, use SharedPtr / ConstSharedPtr instead // NOTE: Can't use 'using' here because GNU C++ can't parse attributes properly typedef DEPRECATED__geometry_msgs__msg__PoseStamped std::shared_ptr> Ptr; typedef DEPRECATED__geometry_msgs__msg__PoseStamped std::shared_ptr const> ConstPtr; // comparison operators bool operator==(const PoseStamped_ & other) const { if (this->header != other.header) { return false; } if (this->pose != other.pose) { return false; } return true; } bool operator!=(const PoseStamped_ & other) const { return !this->operator==(other); } }; // struct PoseStamped_ // alias to use template instance with default allocator using PoseStamped = geometry_msgs::msg::PoseStamped_>; // constant definitions } // namespace msg } // namespace geometry_msgs namespace geometry_msgs { namespace msg { namespace builder { class Init_PoseStamped_pose { public: explicit Init_PoseStamped_pose(::geometry_msgs::msg::PoseStamped & msg) : msg_(msg) {} [[clang::always_inline]] ::geometry_msgs::msg::PoseStamped pose(::geometry_msgs::msg::PoseStamped::_pose_type arg) { msg_.pose = std::move(arg); return std::move(msg_); } private: ::geometry_msgs::msg::PoseStamped msg_; }; class Init_PoseStamped_header { public: Init_PoseStamped_header() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} [[clang::always_inline]] Init_PoseStamped_pose header(::geometry_msgs::msg::PoseStamped::_header_type arg) { msg_.header = std::move(arg); return Init_PoseStamped_pose(msg_); } private: ::geometry_msgs::msg::PoseStamped msg_; }; } // namespace builder } // namespace msg template auto build(); template<> [[clang::always_inline]] inline auto build<::geometry_msgs::msg::PoseStamped>() { return geometry_msgs::msg::builder::Init_PoseStamped_header(); } } // namespace geometry_msgs namespace builtin_interfaces { namespace msg { namespace builder { class Init_Time_nanosec { public: explicit Init_Time_nanosec(::builtin_interfaces::msg::Time & msg) : msg_(msg) {} [[clang::always_inline]] ::builtin_interfaces::msg::Time nanosec(::builtin_interfaces::msg::Time::_nanosec_type arg) { msg_.nanosec = std::move(arg); return std::move(msg_); } private: ::builtin_interfaces::msg::Time msg_; }; class Init_Time_sec { public: Init_Time_sec() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} [[clang::always_inline]] Init_Time_nanosec sec(::builtin_interfaces::msg::Time::_sec_type arg) { msg_.sec = std::move(arg); return Init_Time_nanosec(msg_); } private: ::builtin_interfaces::msg::Time msg_; }; } // namespace builder } // namespace msg template auto build(); template<> [[clang::always_inline]] inline auto build<::builtin_interfaces::msg::Time>() { return builtin_interfaces::msg::builder::Init_Time_sec(); } } // namespace builtin_interfaces namespace std_msgs { namespace msg { namespace builder { class Init_Header_frame_id { public: explicit Init_Header_frame_id(::std_msgs::msg::Header & msg) : msg_(msg) {} [[clang::always_inline]] ::std_msgs::msg::Header frame_id(::std_msgs::msg::Header::_frame_id_type arg) { msg_.frame_id = std::move(arg); return std::move(msg_); } private: ::std_msgs::msg::Header msg_; }; class Init_Header_stamp { public: Init_Header_stamp() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} [[clang::always_inline]] Init_Header_frame_id stamp(::std_msgs::msg::Header::_stamp_type arg) { msg_.stamp = std::move(arg); return Init_Header_frame_id(msg_); } private: ::std_msgs::msg::Header msg_; }; } // namespace builder } // namespace msg template auto build(); template<> [[clang::always_inline]] inline auto build<::std_msgs::msg::Header>() { return std_msgs::msg::builder::Init_Header_stamp(); } } // namespace std_msgs namespace geometry_msgs { namespace msg { namespace builder { class Init_Point_z { public: explicit Init_Point_z(::geometry_msgs::msg::Point & msg) : msg_(msg) {} [[clang::always_inline]] ::geometry_msgs::msg::Point z(::geometry_msgs::msg::Point::_z_type arg) { msg_.z = std::move(arg); return std::move(msg_); } private: ::geometry_msgs::msg::Point msg_; }; class Init_Point_y { public: explicit Init_Point_y(::geometry_msgs::msg::Point & msg) : msg_(msg) {} [[clang::always_inline]] Init_Point_z y(::geometry_msgs::msg::Point::_y_type arg) { msg_.y = std::move(arg); return Init_Point_z(msg_); } private: ::geometry_msgs::msg::Point msg_; }; class Init_Point_x { public: Init_Point_x() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} [[clang::always_inline]] Init_Point_y x(::geometry_msgs::msg::Point::_x_type arg) { msg_.x = std::move(arg); return Init_Point_y(msg_); } private: ::geometry_msgs::msg::Point msg_; }; } // namespace builder } // namespace msg template auto build(); template<> [[clang::always_inline]] inline auto build<::geometry_msgs::msg::Point>() { return geometry_msgs::msg::builder::Init_Point_x(); } } // namespace geometry_msgs namespace geometry_msgs { namespace msg { namespace builder { class Init_Quaternion_w { public: explicit Init_Quaternion_w(::geometry_msgs::msg::Quaternion & msg) : msg_(msg) {} ::geometry_msgs::msg::Quaternion w(::geometry_msgs::msg::Quaternion::_w_type arg) { msg_.w = std::move(arg); return std::move(msg_); } private: ::geometry_msgs::msg::Quaternion msg_; }; class Init_Quaternion_z { public: explicit Init_Quaternion_z(::geometry_msgs::msg::Quaternion & msg) : msg_(msg) {} Init_Quaternion_w z(::geometry_msgs::msg::Quaternion::_z_type arg) { msg_.z = std::move(arg); return Init_Quaternion_w(msg_); } private: ::geometry_msgs::msg::Quaternion msg_; }; class Init_Quaternion_y { public: explicit Init_Quaternion_y(::geometry_msgs::msg::Quaternion & msg) : msg_(msg) {} Init_Quaternion_z y(::geometry_msgs::msg::Quaternion::_y_type arg) { msg_.y = std::move(arg); return Init_Quaternion_z(msg_); } private: ::geometry_msgs::msg::Quaternion msg_; }; class Init_Quaternion_x { public: Init_Quaternion_x() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} Init_Quaternion_y x(::geometry_msgs::msg::Quaternion::_x_type arg) { msg_.x = std::move(arg); return Init_Quaternion_y(msg_); } private: ::geometry_msgs::msg::Quaternion msg_; }; } // namespace builder } // namespace msg template auto build(); template<> inline auto build<::geometry_msgs::msg::Quaternion>() { return geometry_msgs::msg::builder::Init_Quaternion_x(); } } // namespace geometry_msgs namespace geometry_msgs { namespace msg { namespace builder { class Init_Pose_orientation { public: explicit Init_Pose_orientation(::geometry_msgs::msg::Pose & msg) : msg_(msg) {} [[clang::always_inline]] ::geometry_msgs::msg::Pose orientation(::geometry_msgs::msg::Pose::_orientation_type arg) { msg_.orientation = std::move(arg); return std::move(msg_); } private: ::geometry_msgs::msg::Pose msg_; }; class Init_Pose_position { public: Init_Pose_position() : msg_(::rosidl_runtime_cpp::MessageInitialization::SKIP) {} [[clang::always_inline]] Init_Pose_orientation position(::geometry_msgs::msg::Pose::_position_type arg) { msg_.position = std::move(arg); return Init_Pose_orientation(msg_); } private: ::geometry_msgs::msg::Pose msg_; }; } // namespace builder } // namespace msg template auto build(); template<> [[clang::always_inline]] inline auto build<::geometry_msgs::msg::Pose>() { return geometry_msgs::msg::builder::Init_Pose_position(); } } // namespace geometry_msgs // IGNORE EVERYTHING ABOVE HERE using geometry_msgs::msg::PoseStamped; using builtin_interfaces::msg::Time; using std_msgs::msg::Header; using geometry_msgs::msg::Point; using geometry_msgs::msg::Quaternion; using geometry_msgs::msg::Pose; PoseStamped test1() { const auto stamp = builtin_interfaces::build() .sec(1337) .nanosec(1234); const auto header = std_msgs::build() .stamp(stamp) .frame_id("test_frame"); const auto point = geometry_msgs::build().x(1).y(2).z(3); const auto quat = geometry_msgs::build().x(1).y(2).z(3).w(4); const auto pose = geometry_msgs::build() .position(point) .orientation(quat); const auto pose_stamped = geometry_msgs::build() .header(header) .pose(pose); return pose_stamped; } PoseStamped test2() { Time time; time.sec = 1337; time.nanosec = 1234; Header header; header.stamp = time; header.frame_id = "test_frame"; Point point; point.x = 1; point.y = 2; point.z = 3; Quaternion quat; quat.x = 1; quat.y = 2; quat.z = 3; quat.w = 4; Pose pose; pose.position = point; pose.orientation = quat; PoseStamped pose_stamped; pose_stamped.header = header; pose_stamped.pose = pose; return pose_stamped; } PoseStamped test3() { PoseStamped pose_stamped; pose_stamped.header.stamp.sec = 1337; pose_stamped.header.stamp.nanosec = 1234; pose_stamped.header.frame_id = "test_frame"; pose_stamped.pose.position.x = 1; pose_stamped.pose.position.y = 2; pose_stamped.pose.position.z = 3; pose_stamped.pose.orientation.x = 1; pose_stamped.pose.orientation.y = 2; pose_stamped.pose.orientation.z = 3; pose_stamped.pose.orientation.w = 4; return pose_stamped; }
godbolt.org
October 29, 2026 at 1:30 AM
I would have never figured this out if I hadn't found an old bug report on the iwlwifi bugzilla of someone having similar errors knowing they had bad noise. I wish the driver somehow communicated this outside crashing with a misleading backtrack but oh well. Also watch where your video cables end up
October 27, 2026 at 8:04 AM
Place your bets: OpenAI "gone rogue" or OpenAI "cybersecurity wunderkind"
October 26, 2026 at 10:52 PM
FWIW that's not the wildest thing that's happened on the CA/B Forum Bugzilla. There was a thing recently around interpreting the Baseline Requirements and it got to the point that someone was making analogies with deli sandwiches.
October 25, 2026 at 1:07 PM
Things like this are why I like to read CA Compliance bugzilla sometimes just for fun.
October 24, 2026 at 9:38 AM
And we add more residents to the Potemkin village that is cyber every single day, now.

Bugzilla ticket: https://bugzilla.mozilla.org/show_bug.cgi?id=2082703 https://infosec.exchange/@testssl/117500582336651505
2082703 - GoDaddy: Subscriber Certificate Profiles Did Not Conform to CP/CPS
ASSIGNED (rwhite4) in CA Program - CA Certificate Compliance. Last updated 2026-10-21.
bugzilla.mozilla.org
October 25, 2026 at 2:59 PM
never before have i read bugzilla like the newspaper
October 22, 2026 at 1:08 PM
oh my god I'm reading the eMudhra bugzilla thread and wow watching this global supply chain risk shit unfold live is kinda rad
October 22, 2026 at 8:05 AM
the bugzilla is ON FIRE

I think this is the comment that made eMudhra get out of the CA business
2083449 - eMudhra: Private key compromise of Intermediate Certificates
ASSIGNED (naveen.ml) in CA Program - CA Certificate Compliance. Last updated 2026-10-22.
bugzilla.mozilla.org
October 22, 2026 at 11:11 PM
the eMudhra bugzilla thread is something else, the comments are heating up significantly lollll
October 24, 2026 at 4:52 PM
Have you seen the most recent set of questions for them on the Bugzilla thread? Chrome team is not having any of it
October 22, 2026 at 12:45 PM