bifurcation/mint 192
A Minimal TLS 1.3 Implementation in Go
A Simple WebRTC demo
Internet-Drafts that make up the base QUIC specification
Create sequence diagrams from textual descriptions.
Digital signature micro-service
pull request commentmozilla/mp4parse-rust
Add support for AMR-NB and AMR-WB.
Do you mean the changes on pr-277 branch will not be used by Firefox (I mean https://github.com/mozilla/gecko-dev/tree/master/third_party/rust/mp4parse and https://github.com/mozilla/gecko-dev/tree/master/third_party/rust/mp4parse_capi)? Will pr-277 branch also be maintained when master branch updating?
I created the
pr-277
branch merely as an example of one way to put the code in your PR behind a feature so that we can accept it into the main development branch of this repo without having to include code in Firefox which isn't used. Does that make sense?However, you're the author of this code and I didn't want to assume the way I did it was exactly what you'd want, so feel free to take whatever you like from the
pr-277
branch, or do it some other way that makes sense to you. Also, feel free to use a different name for the feature if there's one that you find more appropriate than3gpp
. The only requirement we have is that the code is behind some feature since we don't want to include it in Firefox, which doesn't need this functionality right now.For people who have projects base on gecko-dev and also need the features on pr-277 branch , it's a shame that the merging effort of mp4parse-rust could not be reduced if they would like to keep merging the latest version of gecko-dev. I know this might not be the main concern from Firefox's point of view, but do you have any suggestion for this scenario?
The intention is to merge your PR into the main development branch of this repo and eventually the published crate. That way, if someone wants to use it in a fork of
geko-dev
(or any other rust project) they can enable the3gpp
feature (or whatever you want to call it if you have a name you like better) in the Cargo.toml which adds themp4parse
ormp4parse_capi
dependencies.For
gecko-dev
in particular, it would be necessary to make some additions to thisswitch
statement to handle the newMP4PARSE_CODEC_AMRNB
andMP4PARSE_CODEC_AMRWB
cases, but otherwise I think it would just be a matter of turning on the feature in the themp4parse_capi
dependency for gecko.I tested this out and realized we'll want to have a C/C++ define corresponding to the rust feature for the sake of the generated FFI headers. I've updated the
pr-277
branch to show where the change needs to be for cbindgen to generate the appropriate headers, but as I mentioned before, if you want to call the feature something else, feel free.
Really thanks for such detailed explanation! Yes, I understand and agree the intention of pr-277 branch. And I have no concern about this approach. Thanks a again!
I'll continue to complete this PR, thanks.
comment created time in a minute
push eventmozilla/fxa-pairing-channel
commit sha cee3fd504b4bcc46d75635319a0837b55de32ce0
Update CircleCI config to keep vaguely with the times.
push time in 3 minutes
push eventmozilla/addons-linter
commit sha 2f7fc336d5bea879f91753045693acde9e362e63
chore(deps): lock file maintenance (#3606) Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit sha 0749e4a14aab6389310f421383adf94092c864bb
chore(deps): update dependency webpack to v5.24.4
push time in 3 minutes
push eventmozilla/addons-linter
commit sha 2f7fc336d5bea879f91753045693acde9e362e63
chore(deps): lock file maintenance (#3606) Co-authored-by: Renovate Bot <bot@renovateapp.com>
commit sha 332137fc1b6dd8410760de1b06bbd389d478fab6
chore(deps): update babel monorepo to v7.13.10
push time in 4 minutes
push eventmozilla/addons-linter
commit sha 2f7fc336d5bea879f91753045693acde9e362e63
chore(deps): lock file maintenance (#3606) Co-authored-by: Renovate Bot <bot@renovateapp.com>
push time in 5 minutes
delete branch mozilla/addons-linter
delete branch : renovate/lock-file-maintenance
delete time in 5 minutes
PR merged mozilla/addons-linter
This PR contains the following updates:
Update | Change |
---|---|
lockFileMaintenance | All locks refreshed |
:wrench: This Pull Request updates lock files to use the latest dependency versions.
Renovate configuration
:date: Schedule: "before 8am on Tuesday" in timezone UTC.
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:ghost: Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
This PR has been generated by WhiteSource Renovate. View repository job log here.
pr closed time in 5 minutes
PR opened mozilla/reticulum
Currently, CachedFile
records are vacuum
ed separately from their underlying assets (in the expiring
storage directory). This change:
- Moves
CachedFile
s from anexpiring
storage directory to acached
directory. - Adds an
accessed_at
field toCachedFile
s which is bumped up to once each day - Ties the
vacuum
task ofCachedFile
to also remove the files from thecached
directory.
TODO: Any files in the expiring
storage directory will not be accessible. One way to solve this is to add code to fallback to check the expiring
storage directory if the cached
file directory doesn't have the desired asset. That way, existing assets do not become inaccessible.
pr created time in 6 minutes
push eventmozilla/fxa-pairing-channel
commit sha 8525fab0e03a82326715d2f645034bfa1126b140
Update CircleCI config to keep vaguely with the times.
push time in 6 minutes
push eventmozilla/reticulum
commit sha b492a958b6e8b8710b2bb4ff3f7113249eba9a5e
Fix CachedFile access from file_controller
push time in 8 minutes
PR opened letsencrypt/boulder
- Add
bouldernext
docker-compose alias - Drop and create database on every test run
- Symlink combined current db schema to
sa/_db-next/migrations
pr created time in 9 minutes
push eventmozilla/fxa-pairing-channel
commit sha c29c3c5e67efb82bb7f58dde3cb68676e7112df6
Update CircleCI config to keep vaguely with the times.
push time in 10 minutes
issue openedmozilla/TTS
Resuming transfer learning causes previous learning to be lost
Just completed 1,000 iterations of transfer learning from the LJSpeech Tacotron DDC data set via this command:
python ./TTS/bin/train_tacotron.py --restore_path /home/guy/my_project/Models/ljspeech-tac2-June-23-2020_01+32PM-ccba431/checkpoint_130000.pth.tar --config_path ./my_project/config.json
Then I tried continuing training with:
python ./TTS/bin/train_tacotron.py --continue_path /home/guy/my_project/Models/my_project/ddc-March-07-2021_11+23AM-547bfc4/
But, instead of continuing from where we left off, it started all over again from the LJSpeech data set, losing the last several hours of training (bad on me for not backing it up...).
Looking at the config.json
file, I think I see the problem:
{
"github_branch":"* dev",
"restore_path":"/home/guy/my_project/Models/my_project/ddc-March-07-2021_11+23AM-547bfc4/best_model.pth.tar",
"characters":{"pad": "_", "eos": "~", "bos": "^", "characters": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!'(),-.:;? ", "punctuations": "!'(),-.:;? ", "phonemes": "iyɨʉɯuɪʏʊeøɘəɵɤoɛœɜɞʌɔæɐaɶɑɒᵻʘɓǀɗǃʄǂɠǁʛpbtdʈɖcɟkɡqɢʔɴŋɲɳnɱmʙrʀⱱɾɽɸβfvθðszʃʒʂʐçʝxɣχʁħʕhɦɬɮʋɹɻjɰlɭʎʟˈˌːˑʍwɥʜʢʡɕʑɺɧʲɚ˞ɫ"},
"github_branch":"* dev",
"restore_path":"/home/guy/my_project/Models/ljspeech-tac2-June-23-2020_01+32PM-ccba431/checkpoint_130000.pth.tar",
...
}
It looks like the restore_path from the original LJSpeech file is overwriting the restore_path for the project. Consequently, we lose the data unless we manually edit the file.
created time in 13 minutes
push eventmozilla/reticulum
commit sha aea006d058ef788fca05862fa1f590ac06918115
Coordinate expiration of CachedFiles and underlying storage
push time in 18 minutes
Pull request review commentmozilla/mp4parse-rust
Add support for AMR-NB and AMR-WB.
box_database!( H263SpecificBox 0x6432_3633, // "d263" MP4AudioSampleEntry 0x6d70_3461, // "mp4a" MP4VideoSampleEntry 0x6d70_3476, // "mp4v"+ AMRNBSampleEntry 0x7361_6d72, // "samr" - AMR narrow-band+ AMRWBSampleEntry 0x7361_7762, // "sawb" - AMR wide-band+ AMRSpecificBox 0x6461_6d72, // "damr"
Ok, I'll rebase and add the feature gate, thanks!
comment created time in 19 minutes
PR opened mozilla/fxa-pairing-channel
These appear to work without any code or config changes, which is good news...
pr created time in 37 minutes
Pull request review commentmozilla/fxa-pairing-channel
Update some dependencies with known (but benign) security issues.
"karma-firefox-launcher": "~1.1.0", "karma-mocha": "^2.0.1", "karma-sinon": "^1.0.5",- "mocha": "^8.0.1",+ "mocha": "^8.3.1", "sinon": "^7.2.3",- "webpack": "~4.27.1",- "webpack-cli": "^3.3.11"+ "webpack": "^4.46.0",
This is the latest release in the webpack v4 series. There is a webpack v5 series, but upgrading to it seems to generate a suspiciously big diff in dist/FxAccountsPairingChannel.js
so I don't think we should do that right now.
comment created time in 43 minutes
push eventmozilla/fxa-pairing-channel
commit sha 2b625f6e5ae6aed973431df446fe50f7a1f4f459
Update some dependencies with known (but benign) security issues.
push time in an hour
push eventmozilla/fxa-pairing-channel
commit sha ea467b5ecb0eb8e7dac0b362b57629d57f8e768e
Update some dependencies with known (but benign) security issues.
push time in an hour
push eventmozilla/fxa-pairing-channel
commit sha 8a1c846139aa970fda733b15f528da30d669615e
Update some dependencies with known (but benign) security issues.
push time in an hour
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
++++// # Firefox Accounts Client+//+// The fxa-client component lets applications integrate with the+// [Firefox Accounts](https://mozilla.github.io/ecosystem-platform/docs/features/firefox-accounts/fxa-overview)+// identity service. The shape of a typical integration would look+// something like:+//+// * Out-of-band, register your application with the Firefox Accounts service,+// providing an OAuth `redirect_uri` controlled by your application and+// obtaining an OAuth `client_id`.+//+// * On application startup, create a [`FirefoxAccount`] object to represent the+// signed-in state of the application.+// * On first startup, a new [`FirefoxAccount`] can be created by calling+// [`FirefoxAccount::new`] and passing the application's `client_id`.+// * For subsequent startups the object can be persisted using the+// [`to_json`](FirefoxAccount::to_json) method and re-created by+// calling [`FirefoxAccount::from_json`].+//+// * When the user wants to sign in to your application, direct them through+// a web-based OAuth flow using [`begin_oauth_flow`](FirefoxAccount::begin_oauth_flow)+// or [`begin_pairing_flow`](FirefoxAccount::begin_pairing_flow); when they return+// to your registered `redirect_uri`, pass the resulting authorization state back to+// [`complete_oauth_flow`](FirefoxAccount::complete_oauth_flow) to sign them in.+//+// * Display information about the signed-in user by using the data from+// [`get_profile`](FirefoxAccount::get_profile).+//+// * Access account-related services on behalf of the user by obtaining OAuth+// access tokens via [`get_access_token`](FirefoxAccount::get_access_token).+//+// * If the user opts to sign out of the application, calling [`disconnect`](FirefoxAccount::disconnect)+// and then discarding any persisted account data.++namespace fxa_client {+ +};++++// Generic error type thrown by many [`FirefoxAccount`] operations.+//+// Precise details of the error are hidden from consumers, mostly due to limitations of+// how we expose this API to other languages. The type of the error indicates how the+// calling code should respond.+//+//+// `Authentication`:
Any reason to not put the comments for each error next to the definition?
comment created time in an hour
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
package mozilla.appservices.fxaclient import android.util.Log-import com.sun.jna.Native-import com.sun.jna.Pointer-import mozilla.appservices.fxaclient.rust.FxaHandle-import mozilla.appservices.fxaclient.rust.LibFxAFFI-import mozilla.appservices.fxaclient.rust.RustError-import mozilla.appservices.support.native.toNioDirectBuffer-import java.util.concurrent.atomic.AtomicLong import org.json.JSONObject /**- * FirefoxAccount represents the authentication state of a client.+ * PersistedFirefoxAccount represents the authentication state of a client.+ *+ * This is a thin wrapper around the `FirefoxAccount` object exposed from Rust.+ * Its main job is to transparently manage persistence of the account state by+ * calling the provided callback at appropriate times.+ *+ * In future it would be nice to push this logic down into the Rust code,+ * once UniFFI's support for callback interfaces is a little more battle-tested.+ * */-class FirefoxAccount(handle: FxaHandle, persistCallback: PersistCallback?) : AutoCloseable {- private var handle: AtomicLong = AtomicLong(handle)+class PersistedFirefoxAccount(inner: FirefoxAccount, persistCallback: PersistCallback?) : AutoCloseable {+ private var inner: FirefoxAccount = inner private var persistCallback: PersistCallback? = persistCallback /**- * Create a FirefoxAccount using the given config.+ * Create a PersistedFirefoxAccount using the given config. * * This does not make network requests, and can be used on the main thread. */- constructor(config: Config, persistCallback: PersistCallback? = null) :- this(rustCall { e ->- LibFxAFFI.INSTANCE.fxa_new(- config.contentUrl,- config.clientId,- config.redirectUri,- config.tokenServerUrlOverride,- e- )- }, persistCallback) {+ constructor(config: Config, persistCallback: PersistCallback? = null) : this(FirefoxAccount(+ config.contentUrl,
Maybe add the essence of this as comment?
comment created time in 3 hours
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
class FxAccountManagerTests: XCTestCase { func testAccountRestorationEnsureCapabilitiesNonAuthError() { class MockAccount: MockFxAccount { override func ensureCapabilities(supportedCapabilities _: [DeviceCapability]) throws {- throw FirefoxAccountError.network(message: "The WiFi cable is detached.")+ throw FxaError.Network(message: "The WiFi cable is detached.")
lol @ this error message - I've never seen it before
comment created time in an hour
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
impl From<StateV1> for Result<StateV2> { } } -// `StateV1` was a previous state schema.-//-// The below is sufficient to read existing state data serialized in this form, but should not-// be used to create new data using that schema, so it is deliberately private and deliberately-// does not derive(Serialize).-//-// If you find yourself modifying this code, you're almost certainly creating a potential data-migration-// problem and should reconsider.-+/// `StateV1` was a previous state schema.
Does this need to exist still? It looks like it's very old and we will never hit this case in the wild. (OTOH, no need to block - maybe another ticket which could be good for onboarding?)
comment created time in an hour
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
+# Firefox Accounts Client++The fxa-client component lets applications integrate with the+[Firefox Accounts](https://mozilla.github.io/ecosystem-platform/docs/features/firefox-accounts/fxa-overview)+identity service.++* [Features](#features)+* [Using the Firefox Accounts client](#using-the-firefox-accounts-client)+* [Working on the Firefox Accounts client](#working-on-the-firefox-accounts-client)++## Features++The fxa-client component offers support for:++1. Letting users sign in to your app,+ using either an email-and-password-based OAuth flow+ or a QR-code-based pairing flow.+1. Accessing basic profile information about the signed-in user,+ such as email address and display name.+1. Obtaining OAuth access tokens and client-side encryption keys.+ in order to access account-enabled services such as Firefox Sync.+1. Listing and managing other applications connected to the+ user's account.+ 1. Sending tabs to other applications that are capable+ of receiving them.
indentation looks odd here (not clear if it matters when rendered, so feel free to ignore if not)
comment created time in 3 hours
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
+/* This Source Code Form is subject to the terms of the Mozilla Public+ * License, v. 2.0. If a copy of the MPL was not distributed with this+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */++import Foundation++/// This class inherits from the Rust `FirefoxAccount` and adds:+/// - Automatic state persistence through `PersistCallback`.+/// - Auth error signaling through observer notifications.+/// - Some convenience higher-level datatypes, such as URLs rather than plain Strings.+///+/// Eventually we'd like to move all of this into the underlying Rust code, once UniFFI+/// grows support for these extra features:+/// - Callback interfaces in Swift: https://github.com/mozilla/uniffi-rs/issues/353+/// - Higher-level data types: https://github.com/mozilla/uniffi-rs/issues/348+///+/// It's not yet clear how we might integrate with observer notifications in+/// a cross-platform way, though.+///+class PersistedFirefoxAccount {+ private var persistCallback: PersistCallback?+ private var inner: FirefoxAccount++ init(inner: FirefoxAccount) {+ self.inner = inner+ }++ public convenience init(config: FxAConfig) {+ self.init(inner: FirefoxAccount(contentUrl: config.contentUrl,+ clientId: config.clientId,+ redirectUri: config.redirectUri,+ tokenServerUrlOverride: config.tokenServerUrlOverride))+ }++ /// Registers a persistance callback. The callback will get called every time+ /// the `FxAccounts` state needs to be saved. The callback must+ /// persist the passed string in a secure location (like the keychain).+ public func registerPersistCallback(_ cb: PersistCallback) {+ persistCallback = cb+ }++ /// Unregisters a persistance callback.+ public func unregisterPersistCallback() {+ persistCallback = nil+ }++ public static func fromJSON(data: String) throws -> PersistedFirefoxAccount {+ return PersistedFirefoxAccount(inner: try FirefoxAccount.fromJson(data: data))+ }++ public func toJSON() throws -> String {+ try inner.toJson()+ }++ public func beginOAuthFlow(+ scopes: [String],+ entrypoint: String,+ metrics: MetricsParams = MetricsParams(parameters: [:])+ ) throws -> URL {+ return try notifyAuthErrors {+ URL(string: try self.inner.beginOauthFlow(+ scopes: scopes,+ entrypoint: entrypoint,+ metrics: metrics+ ))!+ }+ }++ public func getPairingAuthorityURL() throws -> URL {+ return URL(string: try inner.getPairingAuthorityUrl())!+ }++ public func beginPairingFlow(+ pairingUrl: String,+ scopes: [String],+ entrypoint: String,+ metrics: MetricsParams = MetricsParams(parameters: [:])+ ) throws -> URL {+ return try notifyAuthErrors {+ URL(string: try self.inner.beginPairingFlow(pairingUrl: pairingUrl,+ scopes: scopes,+ entrypoint: entrypoint,+ metrics: metrics))!+ }+ }++ public func completeOAuthFlow(code: String, state: String) throws {+ defer { tryPersistState() }
I noticed above that the kotlin bindings previously did tryPersistState()
before the call and now do it after - which I thought a little strange, but assumed doing it after was easier to rationalize about, so shrugged. However, here we are doing it before, which seems an unfortunate inconsistency.
comment created time in 2 hours
Pull request review commentmozilla/application-services
Restructure, UniFFI, and document the fxa-client crate.
+# Firefox Accounts Client++The fxa-client component lets applications integrate with the+[Firefox Accounts](https://mozilla.github.io/ecosystem-platform/docs/features/firefox-accounts/fxa-overview)+identity service.++* [Features](#features)+* [Using the Firefox Accounts client](#using-the-firefox-accounts-client)+* [Working on the Firefox Accounts client](#working-on-the-firefox-accounts-client)++## Features++The fxa-client component offers support for:++1. Letting users sign in to your app,+ using either an email-and-password-based OAuth flow+ or a QR-code-based pairing flow.+1. Accessing basic profile information about the signed-in user,+ such as email address and display name.+1. Obtaining OAuth access tokens and client-side encryption keys.
nit: stray trailing period.
comment created time in 3 hours
push eventmozilla/fxa-pairing-channel
commit sha 102c5afd05af715f7135b0e5ca6872c9b28493ef
Update some dependencies with known (but benign) security issues.
push time in an hour