gecko-dev/browser/actors
James Teow e34021c721 Bug 1864214 - Observe actions on single page application search engine providers - r=Standard8
updateTrackingSinglePageApp() contains the core logic for when we observe same document loads.
Based on conditions, it may record telemetry (engagement/abandonment), and dispatch events
to the appropriate SearchSERPTelemetry actor.

SearchSERPTelemetryChild had to be modified to allow for manual dispatching of events, especially
unloading event listeners in the case where a user navigates to a non-default search page, like
Images or Shopping.

One complication in observing clicks is we're storing search pages based on the URL at the time
of load, and then looking them up again using the originURL, but it might be different from
the currentURL due to the way single page apps work. So this could cause confusion if multiple SERPs
are open and different from their originURL, hence the usage of recovering the correct state map by
first using the browser object and defaulting back to the originURL if the WeakMap doesn't
contain any of the browser objects.

I also created a mock SPA html file that when given a search query parameter, shows mock results.
The helper file head-spa.js contains a class that navigates the pages in tests.

The tests are broken out into the following:
- When a single search provider is opened in a single tab
- When a single search provider is has multiple tabs open
- When multiple providers are open at the same time
- Event listeners on in-content elements are unloaded properly when navigating away from the page

Differential Revision: https://phabricator.services.mozilla.com/D193320
2024-01-31 12:51:54 +00:00
..
test/browser Bug 1856530 - run file-whitespace on toml files r=linter-reviewers,Standard8 2023-10-03 09:22:18 +00:00
AboutNewTabChild.sys.mjs Bug 1834204 - Update more consumers to import ES modules directly. r=kpatenio,geckoview-reviewers,whimboo,m_kato 2023-05-26 11:36:33 +00:00
AboutNewTabParent.sys.mjs Bug 1868838 - Move ASRouter into browser/components/asrouter/modules. r=pdahiya,pip-reviewers,fxview-reviewers,sclements 2024-01-29 18:52:20 +00:00
AboutPocketChild.sys.mjs
AboutPocketParent.sys.mjs
AboutPrivateBrowsingChild.sys.mjs Bug 1862983 - Send up Felt Privacy exposure event on PBM new tab r=mhowell 2023-11-20 16:14:55 +00:00
AboutPrivateBrowsingParent.sys.mjs Bug 1868838 - Move ASRouter into browser/components/asrouter/modules. r=pdahiya,pip-reviewers,fxview-reviewers,sclements 2024-01-29 18:52:20 +00:00
AboutProtectionsChild.sys.mjs
AboutProtectionsParent.sys.mjs Bug 1865790 - Part 1: Aggregate suspicious fingerprinter number to fingerprinter category on the protection dashboard. r=anti-tracking-reviewers,pbz 2023-12-08 15:24:21 +00:00
AboutReaderChild.sys.mjs
AboutReaderParent.sys.mjs Bug 1857101 - Add pageActionInUrlbar ASRouter trigger. r=omc-reviewers,pip-reviewers,mhowell,jprickett 2023-10-21 00:14:13 +00:00
AboutTabCrashedChild.sys.mjs
AboutTabCrashedParent.sys.mjs Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
BlockedSiteChild.sys.mjs Bug 1826062 - Automatic fixes for Prettier 2.0.5 upgrade. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,owlish 2023-05-20 12:26:49 +00:00
BlockedSiteParent.sys.mjs
BrowserProcessChild.sys.mjs Bug 1854781 - Convert AboutNewTabService to an ES module. r=amy 2023-09-26 07:57:59 +00:00
BrowserTabChild.sys.mjs
ClickHandlerChild.sys.mjs Bug 1826062 - Automatic fixes for upgrading Prettier to 2.8.8. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,calu 2023-05-20 12:26:53 +00:00
ClickHandlerParent.sys.mjs Bug 1824612 - Convert consumers of toolkit/components/extensions to ES modules. r=robwu,webcompat-reviewers,geckoview-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,cookie-reviewers,twisniewski,sgalich,valentin,nalexander,mconley,m_kato 2023-05-31 15:27:03 +00:00
ContentSearchChild.sys.mjs
ContentSearchParent.sys.mjs Bug 1870644 - Pass a preferred width rather than width and height when getting search engine icon urls. r=search-reviewers,mcheang 2023-12-20 13:28:24 +00:00
ContextMenuChild.sys.mjs Bug 1866011 p2. Rename nsIDocShell.contentViewer. r=emilio,credential-management-reviewers,devtools-reviewers,sgalich 2023-11-24 09:10:52 +00:00
ContextMenuParent.sys.mjs
DecoderDoctorChild.sys.mjs
DecoderDoctorParent.sys.mjs Bug 1845311 - Use ChromeUtils.defineLazyGetter in more places r=arai,webdriver-reviewers,geckoview-reviewers,extension-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,anti-tracking-reviewers,sessionstore-reviewers,pbz,joschmidt,robwu,issammani,bytesized,owlish,dao 2023-07-26 16:28:11 +00:00
DOMFullscreenChild.sys.mjs
DOMFullscreenParent.sys.mjs
EncryptedMediaChild.sys.mjs
EncryptedMediaParent.sys.mjs Bug 1845311 - Use ChromeUtils.defineLazyGetter in more places r=arai,webdriver-reviewers,geckoview-reviewers,extension-reviewers,application-update-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,anti-tracking-reviewers,sessionstore-reviewers,pbz,joschmidt,robwu,issammani,bytesized,owlish,dao 2023-07-26 16:28:11 +00:00
FormValidationChild.sys.mjs
FormValidationParent.sys.mjs Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
LightweightThemeChild.sys.mjs
LinkHandlerChild.sys.mjs Bug 1834831 - update imports of browser/modules JSMs r=webdriver-reviewers,perftest-reviewers,zeid,extension-reviewers,settings-reviewers,pip-reviewers,credential-management-reviewers,devtools-reviewers,fxview-reviewers,sessionstore-reviewers,tabbrowser-reviewers,whimboo,mhowell,sgalich,robwu,sparky,Standard8,mconley,dao,sclements 2023-06-19 18:44:48 +00:00
LinkHandlerParent.sys.mjs Bug 1874693 - Setting favicon repeatedly causes flicker. r=dao,tabbrowser-reviewers 2024-01-22 08:52:45 +00:00
moz.build Bug 747301 - remove about:plugins and some other unused plugin-related code, r=mossop,handyman,fluent-reviewers,extension-reviewers,desktop-theme-reviewers,bolsson,dao,geckoview-reviewers,owlish,robwu 2023-10-31 09:11:30 +00:00
PageInfoChild.sys.mjs Bug 1842283 - make the image info collected in ContextMenuChild and PageInfoChild match better to have 'View Image Info' work more often, r=mconley. 2023-08-29 02:53:38 +00:00
PageStyleChild.sys.mjs Bug 1866011 p2. Rename nsIDocShell.contentViewer. r=emilio,credential-management-reviewers,devtools-reviewers,sgalich 2023-11-24 09:10:52 +00:00
PageStyleParent.sys.mjs Bug 1842141 - fix page style no style menu checked state after reloads or same-origin navigations, r=mconley 2023-07-11 22:36:31 +00:00
PluginChild.sys.mjs Bug 1826062 - Automatic fixes for upgrading Prettier to 2.8.8. r=mossop,perftest-reviewers,webcompat-reviewers,geckoview-reviewers,denschub,devtools-reviewers,sparky,calu 2023-05-20 12:26:53 +00:00
PluginParent.sys.mjs Bug 1845150 - Use moz-message-bar instead of message-bar in notificationbox.js r=webdriver-reviewers,desktop-theme-reviewers,media-playback-reviewers,karlt,whimboo,tgiles,dao,devtools-reviewers 2024-01-10 18:55:29 +00:00
PointerLockChild.sys.mjs
PointerLockParent.sys.mjs
PromptParent.sys.mjs Bug 1871187: prompt() goes through content analysis r=Gijs 2024-01-09 13:53:31 +00:00
RefreshBlockerChild.sys.mjs
RefreshBlockerParent.sys.mjs
RFPHelperChild.sys.mjs
RFPHelperParent.sys.mjs
ScreenshotsComponentChild.sys.mjs Bug 1873882 - Canceling screenshots selected state should go to crosshairs state. r=sfoster 2024-01-17 01:18:08 +00:00
SearchSERPTelemetryChild.sys.mjs Bug 1864214 - Observe actions on single page application search engine providers - r=Standard8 2024-01-31 12:51:54 +00:00
SearchSERPTelemetryParent.sys.mjs Bug 1846357 - Extract domains for basic SERP links. r=jteow 2023-09-05 16:49:53 +00:00
SpeechDispatcherChild.sys.mjs Bug 1432719 - Notify user on speechd errors r=eeejay,fluent-reviewers,flod 2023-06-06 06:28:14 +00:00
SpeechDispatcherParent.sys.mjs Bug 1432719 - Notify user on speechd errors r=eeejay,fluent-reviewers,flod 2023-06-06 06:28:14 +00:00
SwitchDocumentDirectionChild.sys.mjs
WebRTCChild.sys.mjs Bug 1697151 - Remove permissions.delegation.enabled pref r=pbz 2023-08-11 15:15:54 +00:00
WebRTCParent.sys.mjs Bug 801066 - s/Unknown Origin/this local file/ in permission prompts when scheme is file. r=pbz,fluent-reviewers,bolsson 2024-01-22 17:02:28 +00:00