Loading Cargo.lock +2 −2 Original line number Diff line number Diff line Loading @@ -1455,9 +1455,9 @@ dependencies = [ [[package]] name = "dogear" version = "0.4.0" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "268360cf7696c0c2c83061edb6af090cfea85cbde7d1b8425d6e4ffe9f1c0ec9" checksum = "3f430ca247b6a905681a3cce3eb4f1a72062f3e8dc178e7660c1acd06c64ecce" dependencies = [ "log", "smallbitvec", Loading services/sync/modules/telemetry.js +4 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,10 @@ class ErrorSanitizer { // these in error messages. Note that JSON.stringified stuff comes through // here, so we explicitly ignore double-quotes as well. error = error.replace(/[^\s"]+:[^\s"]+/g, "<URL>"); // Anywhere that's normalized the guid in errors we can easily filter // to make it easier to aggregate these types of errors error = error.replace(/<guid: ([^>]+)>/g, "<GUID>"); return this.#cleanOSErrorMessage(error); } } Loading services/sync/tests/unit/test_telemetry.js +21 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,27 @@ add_task(async function test_clean_urls() { } }); // Test sanitizing guid-related errors with the pattern of <guid: {guid}> add_task(async function test_sanitize_bookmarks_guid() { let { ErrorSanitizer } = ChromeUtils.import( "resource://services-sync/telemetry.js" ); for (let [original, expected] of [ [ "Can't insert Bookmark <guid: sknD84IdnSY2> into Folder <guid: odfninDdi93_3>", "Can't insert Bookmark <GUID> into Folder <GUID>", ], [ "Merge Error: Item <guid: H6fmPA16gZs9> can't contain itself", "Merge Error: Item <GUID> can't contain itself", ], ]) { const sanitized = ErrorSanitizer.cleanErrorMessage(original); Assert.equal(sanitized, expected); } }); // Test sanitization of some hard-coded error strings. add_task(async function test_clean_errors() { let { ErrorSanitizer } = ChromeUtils.import( Loading supply-chain/audits.toml +6 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,12 @@ who = "Mike Hommey <mh+mozilla@glandium.org>" criteria = "safe-to-run" delta = "1.1.0 -> 1.1.1" [[audits.dogear]] who = "Sammy Khamis <skhamis@mozilla.com>" criteria = "safe-to-deploy" delta = "0.4.0 -> 0.5.0" notes = "The repository for this crate belongs in the Mozilla org." [[audits.getrandom]] who = "Mike Hommey <mh+mozilla@glandium.org>" criteria = "safe-to-deploy" Loading third_party/rust/dogear/.cargo-checksum.json +1 −1 Original line number Diff line number Diff line {"files":{"CODE_OF_CONDUCT.md":"e85149c44f478f164f7d5f55f6e66c9b5ae236d4a11107d5e2a93fe71dd874b9","Cargo.toml":"74a18824f821751da07620d4f05f3bf08726d77ef8c4fe55a8b2ed0619792e27","LICENSE":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","README.md":"303ea5ec53d4e86f2c321056e8158e31aa061353a99e52de3d76859d40919efc","src/driver.rs":"912c55a4fafc956fc69d7f0daab9ec2fa4a4af6fa9ad1164114e2c9fffa61226","src/error.rs":"d4ef0cba5c7fc54959ed62da166f10435548d705e0a817eed449fb001fe4e21d","src/guid.rs":"c82af64fba3ad87948a9b599241e48753d17587e8c642f610949163be3d499bf","src/lib.rs":"0606e69b235650bf404ae0b03a1e85c2063bb4b7147fa4d5e8ff2c128a757453","src/merge.rs":"376f83de1e2975d8877864ef671e5372574a4b39c66f1b5e02c7ea54bf3e0368","src/store.rs":"42db376d64a8fc53f59ba2825ebb697a9d3dd2340e7bfa98fd9000e8238d09eb","src/tests.rs":"b0ed59b180a434f3c01504ce326cbeb78138ef2bf33ae6fd73cb9ed46b91eaed","src/tree.rs":"0481b18a5542bda8b6ef14f46f910bc0b9d3aa3edd468ef2cac757b6cc8a14a3"},"package":"268360cf7696c0c2c83061edb6af090cfea85cbde7d1b8425d6e4ffe9f1c0ec9"} No newline at end of file {"files":{"CODE_OF_CONDUCT.md":"e85149c44f478f164f7d5f55f6e66c9b5ae236d4a11107d5e2a93fe71dd874b9","Cargo.toml":"ccce7edeb25f77186292488dfdb98c9fe7a32ea928c11bcc149dc798f6bcb6b4","LICENSE":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","README.md":"ec5eb7d274f54920b2a76c45aaf84833e8401342575b410f959fac3f8b7b8880","src/driver.rs":"912c55a4fafc956fc69d7f0daab9ec2fa4a4af6fa9ad1164114e2c9fffa61226","src/error.rs":"75b252b2ff3c20666a5500b6c1a33c660a4bd77b6432f590e2fbe45c1534b744","src/guid.rs":"c82af64fba3ad87948a9b599241e48753d17587e8c642f610949163be3d499bf","src/lib.rs":"0606e69b235650bf404ae0b03a1e85c2063bb4b7147fa4d5e8ff2c128a757453","src/merge.rs":"5550c249e069117bd539fc294d8721124a3b2d2a070acddbe157d8a03ed000db","src/store.rs":"42db376d64a8fc53f59ba2825ebb697a9d3dd2340e7bfa98fd9000e8238d09eb","src/tests.rs":"f2a2e8ef081c56942f787a7aeac51af8c29b7bc6a074534d1e055390e36b4d72","src/tree.rs":"92513236b2f38cb74a1035f8032408bd9ec65ad47cbb967cd9c02df64186e4c6"},"package":"3f430ca247b6a905681a3cce3eb4f1a72062f3e8dc178e7660c1acd06c64ecce"} No newline at end of file Loading
Cargo.lock +2 −2 Original line number Diff line number Diff line Loading @@ -1455,9 +1455,9 @@ dependencies = [ [[package]] name = "dogear" version = "0.4.0" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "268360cf7696c0c2c83061edb6af090cfea85cbde7d1b8425d6e4ffe9f1c0ec9" checksum = "3f430ca247b6a905681a3cce3eb4f1a72062f3e8dc178e7660c1acd06c64ecce" dependencies = [ "log", "smallbitvec", Loading
services/sync/modules/telemetry.js +4 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,10 @@ class ErrorSanitizer { // these in error messages. Note that JSON.stringified stuff comes through // here, so we explicitly ignore double-quotes as well. error = error.replace(/[^\s"]+:[^\s"]+/g, "<URL>"); // Anywhere that's normalized the guid in errors we can easily filter // to make it easier to aggregate these types of errors error = error.replace(/<guid: ([^>]+)>/g, "<GUID>"); return this.#cleanOSErrorMessage(error); } } Loading
services/sync/tests/unit/test_telemetry.js +21 −0 Original line number Diff line number Diff line Loading @@ -619,6 +619,27 @@ add_task(async function test_clean_urls() { } }); // Test sanitizing guid-related errors with the pattern of <guid: {guid}> add_task(async function test_sanitize_bookmarks_guid() { let { ErrorSanitizer } = ChromeUtils.import( "resource://services-sync/telemetry.js" ); for (let [original, expected] of [ [ "Can't insert Bookmark <guid: sknD84IdnSY2> into Folder <guid: odfninDdi93_3>", "Can't insert Bookmark <GUID> into Folder <GUID>", ], [ "Merge Error: Item <guid: H6fmPA16gZs9> can't contain itself", "Merge Error: Item <GUID> can't contain itself", ], ]) { const sanitized = ErrorSanitizer.cleanErrorMessage(original); Assert.equal(sanitized, expected); } }); // Test sanitization of some hard-coded error strings. add_task(async function test_clean_errors() { let { ErrorSanitizer } = ChromeUtils.import( Loading
supply-chain/audits.toml +6 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,12 @@ who = "Mike Hommey <mh+mozilla@glandium.org>" criteria = "safe-to-run" delta = "1.1.0 -> 1.1.1" [[audits.dogear]] who = "Sammy Khamis <skhamis@mozilla.com>" criteria = "safe-to-deploy" delta = "0.4.0 -> 0.5.0" notes = "The repository for this crate belongs in the Mozilla org." [[audits.getrandom]] who = "Mike Hommey <mh+mozilla@glandium.org>" criteria = "safe-to-deploy" Loading
third_party/rust/dogear/.cargo-checksum.json +1 −1 Original line number Diff line number Diff line {"files":{"CODE_OF_CONDUCT.md":"e85149c44f478f164f7d5f55f6e66c9b5ae236d4a11107d5e2a93fe71dd874b9","Cargo.toml":"74a18824f821751da07620d4f05f3bf08726d77ef8c4fe55a8b2ed0619792e27","LICENSE":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","README.md":"303ea5ec53d4e86f2c321056e8158e31aa061353a99e52de3d76859d40919efc","src/driver.rs":"912c55a4fafc956fc69d7f0daab9ec2fa4a4af6fa9ad1164114e2c9fffa61226","src/error.rs":"d4ef0cba5c7fc54959ed62da166f10435548d705e0a817eed449fb001fe4e21d","src/guid.rs":"c82af64fba3ad87948a9b599241e48753d17587e8c642f610949163be3d499bf","src/lib.rs":"0606e69b235650bf404ae0b03a1e85c2063bb4b7147fa4d5e8ff2c128a757453","src/merge.rs":"376f83de1e2975d8877864ef671e5372574a4b39c66f1b5e02c7ea54bf3e0368","src/store.rs":"42db376d64a8fc53f59ba2825ebb697a9d3dd2340e7bfa98fd9000e8238d09eb","src/tests.rs":"b0ed59b180a434f3c01504ce326cbeb78138ef2bf33ae6fd73cb9ed46b91eaed","src/tree.rs":"0481b18a5542bda8b6ef14f46f910bc0b9d3aa3edd468ef2cac757b6cc8a14a3"},"package":"268360cf7696c0c2c83061edb6af090cfea85cbde7d1b8425d6e4ffe9f1c0ec9"} No newline at end of file {"files":{"CODE_OF_CONDUCT.md":"e85149c44f478f164f7d5f55f6e66c9b5ae236d4a11107d5e2a93fe71dd874b9","Cargo.toml":"ccce7edeb25f77186292488dfdb98c9fe7a32ea928c11bcc149dc798f6bcb6b4","LICENSE":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","README.md":"ec5eb7d274f54920b2a76c45aaf84833e8401342575b410f959fac3f8b7b8880","src/driver.rs":"912c55a4fafc956fc69d7f0daab9ec2fa4a4af6fa9ad1164114e2c9fffa61226","src/error.rs":"75b252b2ff3c20666a5500b6c1a33c660a4bd77b6432f590e2fbe45c1534b744","src/guid.rs":"c82af64fba3ad87948a9b599241e48753d17587e8c642f610949163be3d499bf","src/lib.rs":"0606e69b235650bf404ae0b03a1e85c2063bb4b7147fa4d5e8ff2c128a757453","src/merge.rs":"5550c249e069117bd539fc294d8721124a3b2d2a070acddbe157d8a03ed000db","src/store.rs":"42db376d64a8fc53f59ba2825ebb697a9d3dd2340e7bfa98fd9000e8238d09eb","src/tests.rs":"f2a2e8ef081c56942f787a7aeac51af8c29b7bc6a074534d1e055390e36b4d72","src/tree.rs":"92513236b2f38cb74a1035f8032408bd9ec65ad47cbb967cd9c02df64186e4c6"},"package":"3f430ca247b6a905681a3cce3eb4f1a72062f3e8dc178e7660c1acd06c64ecce"} No newline at end of file