Commit Graph

73 Commits

Author SHA1 Message Date
Mark Banner
0666077666 Bug 1826062 - Automatic fixes for upgrading Prettier to 2.8.8. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,calu
Differential Revision: https://phabricator.services.mozilla.com/D177027
2023-05-20 12:26:53 +00:00
Mark Banner
91fde42f7b Bug 1826062 - Automatic fixes for Prettier 2.0.5 upgrade. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,owlish
Differential Revision: https://phabricator.services.mozilla.com/D177025
2023-05-20 12:26:49 +00:00
anwar
1d2e079021 Bug 1829673 - Put all mochitest test manifest files under browser/components into alphabetical order. r=mconley,extension-reviewers,credential-management-reviewers,dimi,robwu
Differential Revision: https://phabricator.services.mozilla.com/D176459
2023-05-02 16:13:24 +00:00
CanadaHonk
de0de3489c Bug 1801379 - Migrate Sinon.jsm to an ES module r=extension-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,fxview-reviewers,devtools-reviewers,Standard8,nchevobbe,sclements,dimi,mconley,bytesized,robwu
Migrated `testing/modules/Sinon.sys.mjs` to an ES module.

`testing` should now be 100% ESM 🎉

Differential Revision: https://phabricator.services.mozilla.com/D173643
2023-03-29 07:34:10 +00:00
William Durand
1b34df1849 Bug 1819997 - Allow dlsource in attribution data. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D173429
2023-03-28 19:41:36 +00:00
Robin Steuber
c7f37da43c Bug 1821189 - Associate provenance attribution with installation.first_seen event r=nalexander
We can't add the provenance data to the `installation.first_seen` extra data because it is already at its maximum number of keys. So instead we will add the `installation.first_seen_prov_ext` event which will be sent at the same time as `installation.first_seen` and will contain provenance attribution data in its extras object.

Differential Revision: https://phabricator.services.mozilla.com/D172520
2023-03-14 18:08:16 +00:00
Robin Steuber
70d26915bc Bug 1821406 - testProvenance calls should be awaited upon r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D172074
2023-03-09 17:28:37 +00:00
Robin Steuber
5eabcd66a1 Bug 1815023 - Add support for sending attribution provenance data via telemetry r=nalexander,chutten
Add a function that sets scalars to convey what kind of data is present in the :Zone.Identifier Alternate Data Stream. Also adds testing that the scalars get set correctly.

Does not actually call the function that sends the telemetry. This will be done in the next patch since we need to call it in some slightly different places than we usually would since we want to be sure it is included in the `new-profile` ping and in the ping with the `installation.first_seen` event.

Differential Revision: https://phabricator.services.mozilla.com/D171818
2023-03-08 22:25:07 +00:00
Robin Steuber
b8b2f03a55 Bug 1815021 - Update AttributionCode.jsm to read provenance data r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D171817
2023-03-08 22:25:06 +00:00
elephanteatsapple
0ad4eadcd9 Bug 1812141 - Convert JSMs in browser/components/attribution to ESMs. r=mconley,kpatenio,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D167730
2023-02-15 21:40:30 +00:00
Marian-Vasile Laza
4f6b335406 Backed out changeset 0d0223fcdc02 (bug 1812141) for xpcshelll failures on test_ClientEnvironment.js. CLOSED TREE 2023-02-13 20:34:22 +02:00
elephanteatsapple
62845ac0d3 Bug 1812141 - Convert JSMs in browser/components/attribution to ESMs. r=mconley,kpatenio,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D167730
2023-02-13 16:32:41 +00:00
Ben Hearsum
91a47e1267 Bug 1807924: make attribution tests work against MSIX builds r=nalexander
Two notable things here:
- Small refactor of AttributionCode.jsm to make it more testable (allowing `getCampaignId` to be easily stubbed out)
- An ugly skip of one of the "invalid" attribution code tests -- for reasons noted in the comments. Ultimately, this points to maybe a refactor or larger change being needed, but I don't think it's worth blocking getting these tests on.

Differential Revision: https://phabricator.services.mozilla.com/D166688
2023-01-16 19:32:05 +00:00
Ben Hearsum
01f485b050 Bug 1805919: disable tests that are currently failing against MSIX packages. r=jmaher,necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D165754
2023-01-11 14:45:03 +00:00
Mark Banner
df47c60747 Bug 1806359 - Convert telemetry imports to direct ES imports. r=necko-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,janerik,mconley,sgalich,bytesized,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D165002
2022-12-23 12:37:07 +00:00
Ben Hearsum
c167bcedb4 Bug 1804894: Don't write postSigningData in MSIX builds r=nalexander
This is only done by the Return-to-AMO flow, which is not supported in MSIX anyways.

Also, disable the RTAMO test for MSIX builds while we're here.

Differential Revision: https://phabricator.services.mozilla.com/D164666
2022-12-15 14:30:09 +00:00
Iulian Moraru
929d19c3de Backed out 11 changesets (bug 1804903, bug 1804902, bug 1804900, bug 1804899, bug 1712329, bug 1804898, bug 1804894, bug 1804904, bug 1804896, bug 1804905) for breaking gecko decision task. CLOSED TREE
Backed out changeset 9e7813271e6b (bug 1712329)
Backed out changeset 29aa1d032dd3 (bug 1804903)
Backed out changeset 22ef0b00cc99 (bug 1804905)
Backed out changeset 8fad832a574e (bug 1804904)
Backed out changeset 60f185a3a485 (bug 1804902)
Backed out changeset 8b69824de6e2 (bug 1804900)
Backed out changeset 140f75f3f919 (bug 1804899)
Backed out changeset f4da44b1a219 (bug 1804898)
Backed out changeset 7cf946ae8295 (bug 1804896)
Backed out changeset 07d62af0767f (bug 1804894)
Backed out changeset 1e3e02cc3b1f (bug 1712329)
2022-12-15 03:16:41 +02:00
Ben Hearsum
20e93dfd50 Bug 1804894: Don't write postSigningData in MSIX builds r=nalexander
This is only done by the Return-to-AMO flow, which is not supported in MSIX anyways.

Also, disable the RTAMO test for MSIX builds while we're here.

Differential Revision: https://phabricator.services.mozilla.com/D164666
2022-12-15 00:45:13 +00:00
Barret Rennie
d1a2566d45 Bug 1541508 - Use Services.env in browser/ r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D160136
2022-11-25 19:09:06 +00:00
Cristian Tuns
c3ffdd5df6 Backed out 19 changesets (bug 1541508) for causing xpcshell failures on test_notHeadlessByDefault.js CLOSED TREE
Backed out changeset 08476fa2bc27 (bug 1541508)
Backed out changeset 0bf7514845db (bug 1541508)
Backed out changeset aa612a5e9ef7 (bug 1541508)
Backed out changeset 6bb9360473f7 (bug 1541508)
Backed out changeset b3d8e92f50c2 (bug 1541508)
Backed out changeset fa40dded133e (bug 1541508)
Backed out changeset 2e7db4aa8d4f (bug 1541508)
Backed out changeset 6098e2eb62ea (bug 1541508)
Backed out changeset 2c599ee639c4 (bug 1541508)
Backed out changeset 7d44f6e2644c (bug 1541508)
Backed out changeset c1279c3d674c (bug 1541508)
Backed out changeset 8bd08a62a590 (bug 1541508)
Backed out changeset 740010cb005c (bug 1541508)
Backed out changeset 0bfc7dd85c62 (bug 1541508)
Backed out changeset c4374a351356 (bug 1541508)
Backed out changeset 44ccfeca7364 (bug 1541508)
Backed out changeset e944e706a523 (bug 1541508)
Backed out changeset 2c59d66f43e4 (bug 1541508)
Backed out changeset a1896eacb6f1 (bug 1541508)
2022-11-01 22:38:52 -04:00
Barret Rennie
813aae1553 Bug 1541508 - Use Services.env in browser/ r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D160136
2022-11-02 02:08:53 +00:00
Mark Banner
5407bdffa8 Bug 1792341 - Migrate more toolkit/modules consumers to use direct ES module import. r=Gijs,webdriver-reviewers,perftest-reviewers,necko-reviewers,geckoview-reviewers,preferences-reviewers,application-update-reviewers,pip-reviewers,credential-management-reviewers,sgalich,owlish,bytesized,AlexandruIonescu,whimboo,mconley,mixedpuppy
Mainly automated changes. Some manual ESLint fixes and whitespace cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D158452
2022-10-18 11:21:26 +00:00
Mark Banner
19b7fb742e Bug 1782659 - Enable ESlint rule no-unused-vars on the global scope for browser/ xpcshell-tests. r=mak
Differential Revision: https://phabricator.services.mozilla.com/D153433
2022-08-05 08:38:50 +00:00
Tooru Fujisawa
48c568867c Bug 1667455 - Part 5: Stop importing Services.jsm from chrome-priv JS code, top-level single-line cases. r=kmag,webdriver-reviewers,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,extension-reviewers,application-update-reviewers,pip-reviewers,twisniewski,m_kato,jdescottes,mconley,AlexandruIonescu,mossop
Differential Revision: https://phabricator.services.mozilla.com/D150894
2022-07-11 12:41:50 +00:00
Ben Hearsum
0b34b1b5bb Bug 1766479: don't run Windows only attribution tests on Mac r=aryx
Differential Revision: https://phabricator.services.mozilla.com/D144729
2022-04-26 19:20:13 +00:00
Ben Hearsum
c3b0ed7d3d Bug 1756209: send Windows Store Campaign ID as attribution code r=nalexander
Nearly all the complexity here is abstracted away in the previous patch, so this is quite straightforward other than the one oddity noted in the comments.

Differential Revision: https://phabricator.services.mozilla.com/D143112
2022-04-26 15:55:34 +00:00
Gijs Kruitbosch
edda40141b Bug 1753696 - Automatic rewrite: replace add_task(setup with add_setup in browser mochitest, r=Standard8,webcompat-reviewers,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D141437
2022-03-30 16:16:42 +00:00
Norisz Fay
e1d7571cc8 Backed out 2 changesets (bug 1753696) for causing multiple dt and bc failures CLOSED TREE
Backed out changeset 67fd9edfbcea (bug 1753696)
Backed out changeset a9d957ea887b (bug 1753696)
2022-03-30 12:17:55 +03:00
Gijs Kruitbosch
1214ac636b Bug 1753696 - Automatic rewrite: replace add_task(setup with add_setup in browser mochitest, r=Standard8,webcompat-reviewers,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D141437
2022-03-30 08:18:51 +00:00
Barret Rennie
e7af55cb78 Bug 1745356 - Remove osfile.jsm from browser/components/attribution r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D133840
2021-12-25 20:59:24 +00:00
Barret Rennie
64954f7ded Bug 1745356 - Remove osfile.jsm from Mac Attribution r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D133838
2021-12-25 20:59:24 +00:00
Evgenia Kotovich
fad1ce4207 Bug 1733535 - Replace OS.File with IOUtils in the attribution code. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D128715
2021-10-25 08:38:52 +00:00
Norisz Fay
85ec9d324c Backed out changeset d63aab4e0688 (bug 1733535) for causing mochitest failures on browser_AttributionCode_telemetry.js CLOSED TREE 2021-10-22 16:32:43 +03:00
Evgenia Kotovich
af2f958525 Bug 1733535 - Replace OS.File with IOUtils in the attribution code. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D128715
2021-10-22 11:57:44 +00:00
Mark Banner
1817e82737 Bug 1602940 - Automated replacements to use Services.uuid. r=Gijs,necko-reviewers,preferences-reviewers,kershaw
Depends on D124391

Differential Revision: https://phabricator.services.mozilla.com/D124392
2021-09-06 09:53:52 +00:00
Kirk Steuber
7718339187 Bug 1677497 - Add support for the attribution parameter: dltoken r=nalexander,Mardak
Differential Revision: https://phabricator.services.mozilla.com/D100969
2021-01-20 01:08:43 +00:00
Nick Alexander
6eadb91247 Bug 1525076 - Part 4: Cache attribution code on macOS. r=mixedpuppy
Querying the macOS system quarantine database is relatively slow, so
we'd like to do it only once.  This is relevant because the Telemetry
subsystem causes the attribution data to be fetched relatively early
during startup.  By caching, we accept additional disk activity but
don't have to invoke an external process, query a database, etc.

We must make BROWSER_ATTRIBUTION_ERRORS histogram apply to macOS as
well as Windows.  We add error codes to capture macOS-specific
detalis.  And we push this out to a later cycle, since there's no
reason to revisit this immediately.

Differential Revision: https://phabricator.services.mozilla.com/D92695
2020-10-11 18:20:11 +00:00
Nick Alexander
11c100d5ee Bug 1525076 - Part 3: Add method to serialize attribution data. r=mixedpuppy
On Windows, we parse the attribution data as if it was the
`URL.search` parameter.  On macOS, we parse a URL slightly
differently: we parse it like `URL.searchParams` and we deduplicate
parameters.

For caching on macOS we need to serialize the parsed data.  We could
use either approach but we elect to write the code serialized as it
would be on Windows, since that is the one that is getting actively
tested in the wild.

Differential Revision: https://phabricator.services.mozilla.com/D92694
2020-10-11 18:19:22 +00:00
Nick Alexander
100c897d26 Bug 1525076 - Part 2: Add AttributionCode.writeAttributionFile. r=mixedpuppy
The next step is to have the cached attribution file location vary
depending on the platform, and to have the tests run on additional
platforms.

Differential Revision: https://phabricator.services.mozilla.com/D84264
2020-10-11 18:19:04 +00:00
Nick Alexander
5e69ce9766 Bug 1525076 - Part 1: Fix macOS native getReferrerUrl by invoking system sqlite binary (from JS). r=mixedpuppy
The issue this is addresses is that
[`CFURLCopyResourcePropertyForKey`](https://searchfox.org/mozilla-central/rev/ea7f70dac1c5fd18400f6d2a92679777d4b21492/xpcom/io/CocoaFileUtils.mm#212)
does not return quarantine data when launched as a GUI App.  What
happens is that launching via the GUI requires the user to override
GateKeeper by going to Security & Privacy > Open Anyway.  Doing that
updates the GateKeeper flags, and then the macOS API denies access:
once the GK flags reach some state, quarantine information is not
returned.  This is not documented (as far as I can see) but moons ago,
[somebody else on the internet witnessed the same
thing](https://cocoa-dev.apple.narkive.com/kkYeAC8o/is-it-possible-to-read-your-own-quarantine-info-after-launch).

To work around, we run the system SQLite binary, to fish the relevant
information out of the per-user quarantine database.  (SQLite is
installed by default on all relevant macOS versions.)

The most significant security concern I see is whether we can trust
this binary (in /usr/bin/sqlite3). Some discussion within the
Install/Update team suggested that an attacker who could corrupt or
modify that binary already had write access to the disk, which is an
attack vector equal to a totally compromised Firefox. If we determine
that we can't use the system SQLite binary, then we could use
Firefox's compiled copy of SQLite, but we might see versioning
issues. The system SQLite binary feels more robust.

This is implemented as a JS component for convenience, mostly: there
is no API for capturing output from `nsIProcess`.  It would be
possible to maintain the existing XPCOM contract by renaming the
existing contract and adding a contract with a JS implementation that
passes through to the renamed implementation, but it doesn't seem
worth the effort.

In the next commits, we will generalize the existing caching mechanism
form Windows to also apply to macOS. This is mostly a performance
optimization, so that we sniff a single well-known location rather
than launching a process at each startup, although there is a
correctness argument here as well, since the quarantine database is
dynamic and the attribution URL could expire.

Differential Revision: https://phabricator.services.mozilla.com/D92693
2020-10-11 18:18:36 +00:00
Nick Alexander
39987ecf12 Bug 1525076 - Part 0: Test more scenarios on macOS; handle URI component encoding. r=mixedpuppy
The existing code handles Windows and macOS quite differently.  On
macOS, the tests were not as comprehensive; this patch brings them
level and makes the form of the attribution data uniform on Windows
and macOS.  In particular, attribution data fields will now be URI
coded, just as they are on Windows.

This will allow us to re-use the parsing machinery we have on Windows
when we cache attribution codes on macOS.

Differential Revision: https://phabricator.services.mozilla.com/D92692
2020-10-11 18:18:11 +00:00
Razvan Maries
a84b6385b0 Backed out 6 changesets (bug 1525076) for perma failures on browser_startup_mainthreadio.js. CLOSED TREE
Backed out changeset a425e504ae7e (bug 1525076)
Backed out changeset 5163df5430c1 (bug 1525076)
Backed out changeset 4313cfb9dfcb (bug 1525076)
Backed out changeset 9178ebc95da2 (bug 1525076)
Backed out changeset 7bde7f6ccbd8 (bug 1525076)
Backed out changeset 6c2c2e07b95f (bug 1525076)
2020-10-09 22:51:36 +03:00
Nick Alexander
ca42485113 Bug 1525076 - Part 4: Cache attribution code on macOS. r=mixedpuppy
Querying the macOS system quarantine database is relatively slow, so
we'd like to do it only once.  This is relevant because the Telemetry
subsystem causes the attribution data to be fetched relatively early
during startup.  By caching, we accept additional disk activity but
don't have to invoke an external process, query a database, etc.

We must make BROWSER_ATTRIBUTION_ERRORS histogram apply to macOS as
well as Windows.  We add error codes to capture macOS-specific
detalis.  And we push this out to a later cycle, since there's no
reason to revisit this immediately.

Differential Revision: https://phabricator.services.mozilla.com/D92695
2020-10-09 17:28:51 +00:00
Nick Alexander
c5125585cf Bug 1525076 - Part 3: Add method to serialize attribution data. r=mixedpuppy
On Windows, we parse the attribution data as if it was the
`URL.search` parameter.  On macOS, we parse a URL slightly
differently: we parse it like `URL.searchParams` and we deduplicate
parameters.

For caching on macOS we need to serialize the parsed data.  We could
use either approach but we elect to write the code serialized as it
would be on Windows, since that is the one that is getting actively
tested in the wild.

Differential Revision: https://phabricator.services.mozilla.com/D92694
2020-10-09 17:28:48 +00:00
Nick Alexander
8d7760c5a7 Bug 1525076 - Part 2: Add AttributionCode.writeAttributionFile. r=mixedpuppy
The next step is to have the cached attribution file location vary
depending on the platform, and to have the tests run on additional
platforms.

Differential Revision: https://phabricator.services.mozilla.com/D84264
2020-10-09 17:28:46 +00:00
Nick Alexander
eb1a1d0a4d Bug 1525076 - Part 1: Fix macOS native getReferrerUrl by invoking system sqlite binary (from JS). r=mixedpuppy
The issue this is addresses is that
[`CFURLCopyResourcePropertyForKey`](https://searchfox.org/mozilla-central/rev/ea7f70dac1c5fd18400f6d2a92679777d4b21492/xpcom/io/CocoaFileUtils.mm#212)
does not return quarantine data when launched as a GUI App.  What
happens is that launching via the GUI requires the user to override
GateKeeper by going to Security & Privacy > Open Anyway.  Doing that
updates the GateKeeper flags, and then the macOS API denies access:
once the GK flags reach some state, quarantine information is not
returned.  This is not documented (as far as I can see) but moons ago,
[somebody else on the internet witnessed the same
thing](https://cocoa-dev.apple.narkive.com/kkYeAC8o/is-it-possible-to-read-your-own-quarantine-info-after-launch).

To work around, we run the system SQLite binary, to fish the relevant
information out of the per-user quarantine database.  (SQLite is
installed by default on all relevant macOS versions.)

The most significant security concern I see is whether we can trust
this binary (in /usr/bin/sqlite3). Some discussion within the
Install/Update team suggested that an attacker who could corrupt or
modify that binary already had write access to the disk, which is an
attack vector equal to a totally compromised Firefox. If we determine
that we can't use the system SQLite binary, then we could use
Firefox's compiled copy of SQLite, but we might see versioning
issues. The system SQLite binary feels more robust.

This is implemented as a JS component for convenience, mostly: there
is no API for capturing output from `nsIProcess`.  It would be
possible to maintain the existing XPCOM contract by renaming the
existing contract and adding a contract with a JS implementation that
passes through to the renamed implementation, but it doesn't seem
worth the effort.

In the next commits, we will generalize the existing caching mechanism
form Windows to also apply to macOS. This is mostly a performance
optimization, so that we sniff a single well-known location rather
than launching a process at each startup, although there is a
correctness argument here as well, since the quarantine database is
dynamic and the attribution URL could expire.

Differential Revision: https://phabricator.services.mozilla.com/D92693
2020-10-09 17:27:13 +00:00
Nick Alexander
2326bf8eb4 Bug 1525076 - Part 0: Test more scenarios on macOS; handle URI component encoding. r=mixedpuppy
The existing code handles Windows and macOS quite differently.  On
macOS, the tests were not as comprehensive; this patch brings them
level and makes the form of the attribution data uniform on Windows
and macOS.  In particular, attribution data fields will now be URI
coded, just as they are on Windows.

This will allow us to re-use the parsing machinery we have on Windows
when we cache attribution codes on macOS.

Differential Revision: https://phabricator.services.mozilla.com/D92692
2020-10-09 17:26:38 +00:00
Razvan Maries
8cb537bb4d Backed out 6 changesets (bug 1525076) for ES Lint failure. CLOSED TREE
Backed out changeset 912fcc3cb274 (bug 1525076)
Backed out changeset 690d730341c6 (bug 1525076)
Backed out changeset 5dd08176812c (bug 1525076)
Backed out changeset 963c8d33d779 (bug 1525076)
Backed out changeset f7d26b270884 (bug 1525076)
Backed out changeset 95fd52531439 (bug 1525076)
2020-10-09 20:17:23 +03:00
Nick Alexander
d639721f77 Bug 1525076 - Part 4: Cache attribution code on macOS. r=mixedpuppy
Querying the macOS system quarantine database is relatively slow, so
we'd like to do it only once.  This is relevant because the Telemetry
subsystem causes the attribution data to be fetched relatively early
during startup.  By caching, we accept additional disk activity but
don't have to invoke an external process, query a database, etc.

We must make BROWSER_ATTRIBUTION_ERRORS histogram apply to macOS as
well as Windows.  We add error codes to capture macOS-specific
detalis.  And we push this out to a later cycle, since there's no
reason to revisit this immediately.

Differential Revision: https://phabricator.services.mozilla.com/D92695
2020-10-09 16:52:26 +00:00
Nick Alexander
72e12d93f7 Bug 1525076 - Part 3: Add method to serialize attribution data. r=mixedpuppy
On Windows, we parse the attribution data as if it was the
`URL.search` parameter.  On macOS, we parse a URL slightly
differently: we parse it like `URL.searchParams` and we deduplicate
parameters.

For caching on macOS we need to serialize the parsed data.  We could
use either approach but we elect to write the code serialized as it
would be on Windows, since that is the one that is getting actively
tested in the wild.

Differential Revision: https://phabricator.services.mozilla.com/D92694
2020-10-09 16:51:48 +00:00