Add chrome.pageAction.onClicked event 42/158742/2
authoryh106.jung <yh106.jung@samsung.com>
Fri, 3 Nov 2017 00:33:25 +0000 (09:33 +0900)
committeryh106.jung <yh106.jung@samsung.com>
Fri, 3 Nov 2017 00:43:38 +0000 (09:43 +0900)
This patch adds chrome.pageAction.onClicked event which is fired by
BrowserWindow.requestExtionsionPageAction method.

Change-Id: I5924381c704d90bb189f07617e073b58b24eaebb
Signed-off-by: yh106.jung <yh106.jung@samsung.com>
lib/browser/chrome-extension.js
lib/renderer/chrome-api.js

index 0f1c7d4137b1713bac81d01ced7724efbdd4a44c..b9d61a08af41d0505e1865222141d6ecd5cae73e 100644 (file)
@@ -424,4 +424,13 @@ app.once('ready', function () {
     })
     return devExtensions
   }
+
+  BrowserWindow.requestExtensionPageAction = function (name) {
+    const manifest = manifestNameMap[name]
+    if (!manifest) return
+    const page = backgroundPages[manifest.extensionId]
+    if (!page) return
+      page.webContents.sendToAll(`CHROME_PAGEACTION_ONCLICKED_${manifest.extensionId}`, webContents.Id);
+  }
+
 })
index 4bd69d0be168fb9d794efe1494dc30bf9548c025..3976ec55295952881387602c14c67a72b28c4c75 100644 (file)
@@ -79,6 +79,10 @@ exports.injectTo = function (extensionId, isBackgroundPage, context) {
     chrome.tabs.onRemoved.emit(tabId)
   })
 
+  ipcRenderer.on(`CHROME_PAGEACTION_ONCLICKED_${extensionId}`, (event, tabId) => {
+    chrome.pageAction.onClicked.emit(new Tab(tabId))
+  })
+
   chrome.runtime = {
     id: extensionId,
 
@@ -182,7 +186,9 @@ exports.injectTo = function (extensionId, isBackgroundPage, context) {
     getTitle () {},
     setIcon () {},
     setPopup () {},
-    getPopup () {}
+    getPopup () {},
+
+    onClicked: new Event()
   }
 
   chrome.i18n = require('./extensions/i18n').setup(extensionId)