blob: 4773be633e946b7f9d1a36858897b97a192b19eb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import Operator from "../Operator";
import TabPresenter from "../../presenters/TabPresenter";
import BrowserSettingRepository from "../../repositories/BrowserSettingRepository";
export default class OpenHomeOperator implements Operator {
constructor(
private readonly tabPresenter: TabPresenter,
private readonly browserSettingRepository: BrowserSettingRepository,
private readonly newTab: boolean
) {}
async run(): Promise<void> {
const tab = await this.tabPresenter.getCurrent();
const urls = await this.browserSettingRepository.getHomepageUrls();
if (urls.length === 1 && urls[0] === "about:home") {
// eslint-disable-next-line max-len
throw new Error(
"Cannot open Firefox Home (about:home) by WebExtensions, set your custom URLs"
);
}
if (urls.length === 1 && !this.newTab) {
await this.tabPresenter.open(urls[0], tab.id);
return;
}
for (const url of urls) {
await this.tabPresenter.create(url);
}
}
}
|