Skip to content

Commit 7f89756

Browse files
committed
Code cleanup
1 parent fc5f1b8 commit 7f89756

File tree

5 files changed

+86
-172
lines changed

5 files changed

+86
-172
lines changed

injected/src/features/duck-player-native.js

Lines changed: 54 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@ import ContentFeature from '../content-feature.js';
22
import { isBeingFramed } from '../utils.js';
33
import { DuckPlayerNativeMessages } from './duckplayer-native/messages.js';
44
import { mockTransport } from './duckplayer-native/mock-transport.js';
5-
import { setupDuckPlayerForEverything, setupDuckPlayerForNoCookie, setupDuckPlayerForSerp, setupDuckPlayerForYouTube } from './duckplayer-native/duckplayer-native.js';
5+
import { setupDuckPlayerForNoCookie, setupDuckPlayerForSerp, setupDuckPlayerForYouTube } from './duckplayer-native/duckplayer-native.js';
66
import { Environment } from './duckplayer-native/environment.js';
77

8-
/** @import {DuckPlayerNative} from './duckplayer-native/duckplayer-native.js' */
8+
/**
9+
* @import {DuckPlayerNative} from './duckplayer-native/duckplayer-native.js'
10+
* @import {DuckPlayerNativeSettings} from '@duckduckgo/privacy-configuration/schema/features/duckplayer-native.js'
11+
* @import {UrlChangeSettings} from './duckplayer-native/messages.js'
12+
*/
913

1014
/**
1115
* @typedef InitialSettings - The initial payload used to communicate render-blocking information
1216
* @property {string} locale - UI locale
17+
* @property {UrlChangeSettings['pageType']} pageType - The type of the current page
1318
*/
1419

1520
export class DuckPlayerNativeFeature extends ContentFeature {
@@ -25,9 +30,6 @@ export class DuckPlayerNativeFeature extends ContentFeature {
2530
*/
2631
if (isBeingFramed()) return;
2732

28-
/**
29-
* @type {import("@duckduckgo/privacy-configuration/schema/features/duckplayer-native.js").DuckPlayerNativeSettings['selectors']}
30-
*/
3133
const selectors = this.getFeatureSetting('selectors');
3234
console.log('DUCK PLAYER NATIVE SELECTORS', selectors);
3335

@@ -46,56 +48,68 @@ export class DuckPlayerNativeFeature extends ContentFeature {
4648
this.messaging.transport = mockTransport();
4749
}
4850

49-
const comms = new DuckPlayerNativeMessages(this.messaging);
50-
const settings = { selectors };
51-
52-
comms.subscribeToURLChange(({ pageType }) => {
51+
const messages = new DuckPlayerNativeMessages(this.messaging);
52+
messages.subscribeToURLChange(({ pageType }) => {
5353
console.log('GOT PAGE TYPE', pageType);
54-
let next;
55-
56-
switch (pageType) {
57-
case 'NOCOOKIE':
58-
next = setupDuckPlayerForNoCookie(settings, env, comms);
59-
break;
60-
case 'YOUTUBE':
61-
next = setupDuckPlayerForYouTube(settings, env, comms);
62-
break;
63-
case 'SERP':
64-
next = setupDuckPlayerForSerp(settings, env, comms);
65-
break;
66-
case 'UNKNOWN':
67-
default:
68-
console.warn('No known pageType');
69-
}
70-
71-
// const next = setupDuckPlayerForEverything(settings, env, comms);
72-
73-
if (next) {
74-
console.log('LOADING NEXT INSTANCE', this.current, next);
75-
if (this.current) {
76-
this.current.destroy();
77-
}
78-
next.init();
79-
this.current = next;
80-
}
54+
this.urlChangeHandler(pageType, selectors, env, messages);
8155
});
8256

8357
/** @type {InitialSettings} */
8458
let initialSetup;
8559

8660
// TODO: This seems to get initted twice. Check with Daniel
8761
try {
88-
initialSetup = await comms.initialSetup();
62+
initialSetup = await messages.initialSetup();
8963
} catch (e) {
9064
console.error(e);
9165
return;
9266
}
9367

9468
console.log('INITIAL SETUP', initialSetup);
9569

96-
comms.notifyFeatureIsReady();
97-
// this.current = setupDuckPlayerForEverything(settings, env, comms);
98-
// this.current.init();
70+
if (initialSetup.pageType) {
71+
console.log('GOT INITIAL PAGE TYPE', initialSetup.pageType);
72+
this.urlChangeHandler(initialSetup.pageType, selectors, env, messages);
73+
}
74+
75+
messages.notifyFeatureIsReady();
76+
}
77+
78+
/**
79+
*
80+
* @param {UrlChangeSettings['pageType']} pageType
81+
* @param {DuckPlayerNativeSettings['selectors']} selectors
82+
* @param {Environment} env
83+
* @param {DuckPlayerNativeMessages} messages
84+
*/
85+
urlChangeHandler(pageType, selectors, env, messages) {
86+
let next;
87+
88+
switch (pageType) {
89+
case 'NOCOOKIE':
90+
next = setupDuckPlayerForNoCookie(selectors, env, messages);
91+
break;
92+
case 'YOUTUBE':
93+
next = setupDuckPlayerForYouTube(selectors, env, messages);
94+
break;
95+
case 'SERP':
96+
next = setupDuckPlayerForSerp(selectors, env, messages);
97+
break;
98+
case 'UNKNOWN':
99+
default:
100+
console.warn('No known pageType');
101+
}
102+
103+
if (this.current) {
104+
console.log('DESTROYING CURRENT INSTANCE', this.current);
105+
this.current.destroy();
106+
}
107+
108+
if (next) {
109+
console.log('LOADING NEXT INSTANCE', next);
110+
next.init();
111+
this.current = next;
112+
}
99113
}
100114
}
101115

injected/src/features/duck-player.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ export default class DuckPlayerFeature extends ContentFeature {
6868
/**
6969
* TODO: Remove this when ready to re-enable Duck Player classic
7070
*/
71-
console.warn('Not initializing Duck Player classic');
72-
return;
71+
// console.warn('Not initializing Duck Player classic');
72+
// return;
7373

7474
/**
7575
* Just the 'overlays' part of the settings object.

0 commit comments

Comments
 (0)