Skip to content

Commit 32a61eb

Browse files
Add global site object to load
1 parent 453a26a commit 32a61eb

File tree

9 files changed

+34
-10
lines changed

9 files changed

+34
-10
lines changed

inject/android.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @category Content Scope Scripts Integrations
44
*/
55
import { load, init, update } from '../src/content-scope-features.js'
6-
import { processConfig, isGloballyDisabled } from './../src/utils'
6+
import { processConfig, isGloballyDisabled, computeLimitedSiteObject } from './../src/utils'
77
import { isTrackerOrigin } from '../src/trackers'
88

99
const allowedMessages = [
@@ -25,7 +25,8 @@ function initCode () {
2525
load({
2626
platform: processedConfig.platform,
2727
trackerLookup: processedConfig.trackerLookup,
28-
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup)
28+
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup),
29+
site: computeLimitedSiteObject()
2930
})
3031

3132
const messageSecret = processedConfig.messageSecret

inject/apple.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @category Content Scope Scripts Integrations
44
*/
55
import { load, init } from '../src/content-scope-features.js'
6-
import { processConfig, isGloballyDisabled } from './../src/utils'
6+
import { processConfig, isGloballyDisabled, computeLimitedSiteObject } from './../src/utils'
77
import { isTrackerOrigin } from '../src/trackers'
88

99
function initCode () {
@@ -16,7 +16,8 @@ function initCode () {
1616
load({
1717
platform: processedConfig.platform,
1818
trackerLookup: processedConfig.trackerLookup,
19-
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup)
19+
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup),
20+
site: computeLimitedSiteObject()
2021
})
2122

2223
init(processedConfig)

inject/chrome-mv3.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
import { load, init, update } from '../src/content-scope-features.js'
66
import { isTrackerOrigin } from '../src/trackers'
7+
import { computeLimitedSiteObject } from '../src/utils.js'
78

89
const secret = (crypto.getRandomValues(new Uint32Array(1))[0] / 2 ** 32).toString().replace('0.', '')
910

@@ -15,6 +16,7 @@ load({
1516
},
1617
trackerLookup,
1718
documentOriginIsTracker: isTrackerOrigin(trackerLookup),
19+
site: computeLimitedSiteObject(),
1820
// @ts-expect-error https://app.asana.com/0/1201614831475344/1203979574128023/f
1921
bundledConfig: $BUNDLED_CONFIG$
2022
})

inject/chrome.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* @category Content Scope Scripts Integrations
44
*/
55
import { isTrackerOrigin } from '../src/trackers'
6+
import { computeLimitedSiteObject } from '../src/utils'
67

78
/**
89
* Inject all the overwrites into the page.
@@ -46,13 +47,15 @@ function init () {
4647
const randomPassword = '_p' + randomString()
4748
const reusableMethodName = '_rm' + randomString()
4849
const reusableSecret = '_r' + randomString()
50+
const siteObject = computeLimitedSiteObject()
4951
const initialScript = `
5052
/* global contentScopeFeatures */
5153
contentScopeFeatures.load({
5254
platform: {
5355
name: 'extension'
5456
},
5557
trackerLookup: ${JSON.stringify(trackerLookup)},
58+
site: ${JSON.stringify(siteObject)},
5659
documentOriginIsTracker: ${documentOriginIsTracker},
5760
bundledConfig: ${JSON.stringify(bundledConfig)}
5861
})

inject/integration.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ async function initCode () {
7676
load({
7777
platform: processedConfig.platform,
7878
trackerLookup: processedConfig.trackerLookup,
79-
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup)
79+
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup),
80+
site: processedConfig.site
8081
})
8182

8283
// mark this phase as loaded

inject/mozilla.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
import { load, init, update } from '../src/content-scope-features.js'
66
import { isTrackerOrigin } from '../src/trackers'
7+
import { computeLimitedSiteObject } from '../src/utils.js'
78

89
const allowedMessages = [
910
'getClickToLoadState',
@@ -28,6 +29,7 @@ function initCode () {
2829
},
2930
trackerLookup,
3031
documentOriginIsTracker: isTrackerOrigin(trackerLookup),
32+
site: computeLimitedSiteObject(),
3133
// @ts-expect-error https://app.asana.com/0/1201614831475344/1203979574128023/f
3234
bundledConfig: $BUNDLED_CONFIG$
3335
})

inject/windows.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* @category Content Scope Scripts Integrations
44
*/
55
import { load, init } from '../src/content-scope-features.js'
6-
import { processConfig, isGloballyDisabled, windowsSpecificFeatures } from './../src/utils'
6+
import { processConfig, isGloballyDisabled, windowsSpecificFeatures, computeLimitedSiteObject } from './../src/utils'
77
import { isTrackerOrigin } from '../src/trackers'
88

99
function initCode () {
@@ -16,7 +16,8 @@ function initCode () {
1616
load({
1717
platform: processedConfig.platform,
1818
trackerLookup: processedConfig.trackerLookup,
19-
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup)
19+
documentOriginIsTracker: isTrackerOrigin(processedConfig.trackerLookup),
20+
site: computeLimitedSiteObject()
2021
})
2122

2223
init(processedConfig)

src/content-scope-features.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const performanceMonitor = new PerformanceMonitor()
2525

2626
/**
2727
* @typedef {object} LoadArgs
28+
* @property {object} site
2829
* @property {object} platform
2930
* @property {string} platform.name
3031
* @property {string} [platform.version]

src/utils.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,16 @@ export function isUnprotectedDomain (topLevelHostname, featureList) {
506506
* @property {string} sessionKey
507507
*/
508508

509+
/**
510+
* Used to inialize extension code in the load phase
511+
*/
512+
export function computeLimitedSiteObject () {
513+
const topLevelHostname = getTabHostname()
514+
return {
515+
domain: topLevelHostname
516+
}
517+
}
518+
509519
/**
510520
* Expansion point to add platform specific versioning logic
511521
* @param {UserPreferences} preferences
@@ -576,7 +586,10 @@ function isSupportedVersion (minSupportedVersion, currentVersion) {
576586
*/
577587
export function processConfig (data, userList, preferences, platformSpecificFeatures = []) {
578588
const topLevelHostname = getTabHostname()
589+
const site = computeLimitedSiteObject()
579590
const allowlisted = userList.filter(domain => domain === topLevelHostname).length > 0
591+
const remoteFeatureNames = Object.keys(data.features)
592+
const platformSpecificFeaturesNotInRemoteConfig = platformSpecificFeatures.filter((featureName) => !remoteFeatureNames.includes(featureName))
580593
/** @type {Record<string, any>} */
581594
const output = { ...preferences }
582595
if (output.platform) {
@@ -587,12 +600,11 @@ export function processConfig (data, userList, preferences, platformSpecificFeat
587600
}
588601
const enabledFeatures = computeEnabledFeatures(data, topLevelHostname, preferences.platform?.version, platformSpecificFeatures)
589602
const isBroken = isUnprotectedDomain(topLevelHostname, data.unprotectedTemporary)
590-
output.site = {
591-
domain: topLevelHostname,
603+
output.site = Object.assign(site, {
592604
isBroken,
593605
allowlisted,
594606
enabledFeatures
595-
}
607+
})
596608
// TODO
597609
output.cookie = {}
598610

0 commit comments

Comments
 (0)