Skip to content

Commit da20453

Browse files
committed
separate password and bookmark flow
1 parent 800a240 commit da20453

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

injected/src/features/autofill-password-import.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const BACKGROUND_COLOR_START = 'rgba(85, 127, 243, 0.10)';
77
export const BACKGROUND_COLOR_END = 'rgba(85, 127, 243, 0.25)';
88
export const OVERLAY_ID = 'ddg-password-import-overlay';
99
export const DELAY_BEFORE_ANIMATION = 300;
10+
const BOOKMARK_IMPORT_DOMAIN = 'takeout.google.com';
1011

1112
/**
1213
* @typedef ButtonAnimationStyle
@@ -403,23 +404,40 @@ export default class AutofillPasswordImport extends ContentFeature {
403404
return [this.#exportButtonSettings?.path, this.#settingsButtonSettings?.path, this.#signInButtonSettings?.path].includes(path);
404405
}
405406

406-
async handlePath(path) {
407+
async handlePasswordManagerPath(pathname) {
408+
console.log('DEEP DEBUG autofill-password-import: handlePasswordManagerPath', pathname);
407409
this.removeOverlayIfNeeded();
408-
if (this.isSupportedPath(path)) {
410+
if (this.isSupportedPath(pathname)) {
409411
try {
410-
this.setCurrentElementConfig(await this.getElementAndStyleFromPath(path));
412+
this.setCurrentElementConfig(await this.getElementAndStyleFromPath(pathname));
411413
if (this.currentElementConfig?.element && !this.#tappedElements.has(this.currentElementConfig?.element)) {
412414
await this.animateOrTapElement();
413415
if (this.currentElementConfig?.shouldTap && this.currentElementConfig?.tapOnce) {
414416
this.#tappedElements.add(this.currentElementConfig.element);
415417
}
416418
}
417419
} catch {
418-
console.error('password-import: failed for path:', path);
420+
console.error('password-import: failed for path:', pathname);
419421
}
420422
}
421423
}
422424

425+
handleBookmarkImportPath(pathname) {
426+
console.log('DEEP DEBUG autofill-password-import: handleBookmarkImportPath', pathname);
427+
}
428+
429+
/**
430+
* @param {Location} location
431+
*/
432+
async handleLocation(location) {
433+
const { pathname, hostname } = location;
434+
if (hostname === BOOKMARK_IMPORT_DOMAIN) {
435+
this.handleBookmarkImportPath(pathname);
436+
} else {
437+
await this.handlePasswordManagerPath(pathname);
438+
}
439+
}
440+
423441
/**
424442
* Based on the current element config, animates the element or taps it.
425443
* If the element should be watched for removal, it sets up a mutation observer.
@@ -491,16 +509,17 @@ export default class AutofillPasswordImport extends ContentFeature {
491509
}
492510

493511
urlChanged() {
494-
this.handlePath(window.location.pathname);
512+
this.handleLocation(window.location);
495513
}
496514

497515
init() {
516+
console.log('DEEP DEBUG autofill-password-import: init');
498517
if (isBeingFramed()) {
499518
return;
500519
}
501-
this.setButtonSettings();
502520

503-
const handlePath = this.handlePath.bind(this);
521+
this.setButtonSettings();
522+
const handleLocation = this.handleLocation.bind(this);
504523

505524
this.#domLoaded = new Promise((resolve) => {
506525
if (document.readyState !== 'loading') {
@@ -514,8 +533,7 @@ export default class AutofillPasswordImport extends ContentFeature {
514533
async () => {
515534
// @ts-expect-error - caller doesn't expect a value here
516535
resolve();
517-
const path = window.location.pathname;
518-
await handlePath(path);
536+
await handleLocation(window.location);
519537
},
520538
{ once: true },
521539
);

0 commit comments

Comments
 (0)