-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.js
61 lines (59 loc) · 1.75 KB
/
background.js
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const services = [
{
tabId: -1,
url: 'https://www.pexels.com/search/%q/'
},
{
tabId: -1,
url: 'https://unsplash.com/s/photos/%q'
},
{
tabId: -1,
url: 'https://pixabay.com/en/photos/%q/'
},
{
tabId: -1,
url: 'https://www.canva.com/photos/search/%q/'
},
{
tabId: -1,
url: 'https://stocksnap.io/search/%q'
},
{
tabId: -1,
url: 'https://burst.shopify.com/photos/search?q=%q'
}
];
browser.omnibox.setDefaultSuggestion({
description: `Please enter a keyword or phrase you want to search for.`
});
browser.omnibox.onInputEntered.addListener((text) => {
var noTabsExists = true;
services.forEach(function(service) {
let searchUrl = service.url.replace('%q', text);
if (service.tabId !== -1) {
browser.tabs.get(service.tabId).then(
function() {
browser.tabs.update(service.tabId, {url : searchUrl}).then(function(updatedTab) {
service.tabId = updatedTab.id;
});
},
function() {
browser.tabs.create({url : searchUrl}).then(function(createdTab) {
service.tabId = createdTab.id;
});
});
} else {
if (noTabsExists) {
noTabsExists = false;
browser.tabs.update({url : searchUrl}).then(function(updatedTab) {
service.tabId = updatedTab.id;
});
} else {
browser.tabs.create({url : searchUrl}).then(function(createdTab) {
service.tabId = createdTab.id;
});
}
}
});
});