diff --git a/src/background.js b/src/background.js index 9168140..b677259 100644 --- a/src/background.js +++ b/src/background.js @@ -104,6 +104,13 @@ async function start() { requestHeaders, }; }, { urls: [`${SERP_BASE_URL}/login*`]}, ["blocking", "requestHeaders"]); + + browser.runtime.onMessage.addListener(({ action }) => { + if (action === 'getTokenCount') { + return Promise.resolve(tokenPool.tokens.length); + } + return false; + }) } start(); \ No newline at end of file diff --git a/src/content/login-cta.js b/src/content/login-cta.js new file mode 100644 index 0000000..a629b76 --- /dev/null +++ b/src/content/login-cta.js @@ -0,0 +1,16 @@ +"use strict" + +const loginButton = document.querySelector('#login-button'); +const signInTemplate = document.querySelector('#signin-button-template'); + +browser.runtime.sendMessage({ + action: 'getTokenCount' +}).then((result) => { + if (loginButton && signInTemplate && result === 0) { + while (loginButton.firstChild) { + loginButton.firstChild.remove(); + } + const signIn = signInTemplate.content.cloneNode(true); + loginButton.appendChild(signIn); + } +}); diff --git a/src/manifest.json b/src/manifest.json index 53c1e0e..f4d6b04 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -14,6 +14,13 @@ "choice-screen.js" ] }, + "content_scripts": [{ + "matches": [ + "https://*.ghosterysearch.com/", + "http://localhost/*" + ], + "js": ["content/login-cta.js"] + }], "manifest_version": 2, "name": "Ghostery Search", "permissions": [