forked from GoogleChrome/chrome-extensions-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.js
32 lines (29 loc) · 1.85 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
// Extension event listeners are a little different from the patterns you may have seen in DOM or
// Node.js APIs. The below event listener registration can be broken in to 4 distinct parts:
//
// * chrome - the global namespace for Chrome's extension APIs
// * runtime – the namespace of the specific API we want to use
// * onInstalled - the event we want to subscribe to
// * addListener - what we want to do with this event
//
// See https://developer.chrome.com/docs/extensions/reference/events/ for additional details.
chrome.runtime.onInstalled.addListener(async () => {
// While we could have used `let url = "hello.html"`, using runtime.getURL is a bit more robust as
// it returns a full URL rather than just a path that Chrome needs to be resolved contextually at
// runtime.
let url = chrome.runtime.getURL("hello.html");
// Open a new tab pointing at our page's URL using JavaScript's object initializer shorthand.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#new_notations_in_ecmascript_2015
//
// Many of the extension platform's APIs are asynchronous and can either take a callback argument
// or return a promise. Since we're inside an async function, we can await the resolution of the
// promise returned by the tabs.create call. See the following link for more info on async/await.
// https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
let tab = await chrome.tabs.create({ url });
// Finally, let's log the ID of the newly created tab using a template literal.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
//
// To view this log message, open chrome://extensions, find "Hello, World!", and click the
// "service worker" link in the card to open DevTools.
console.log(`Created tab ${tab.id}`);
});