Bonjour,

Je suis entrain de développer une extension et bloque sur la communication entre les différents éléments.

L'objectif est d'afficher une popup dans la page visitée (qui contient des éléments de la page elle même) et de remonter à l'extension les actions menées sur cette popup.

Voici mon manifest.json
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
{
   "manifest_version": 2,

   "name" :"test",
   "version" :"0.1",
   "browser_action": {
      "default_icon": "test.png",
      "default_popup": "test.html",
      "default_title": "titre"
   },
   "permissions": [
      "activeTab",
      "tabs",
      "storage",
      "webRequest",
      "webRequestBlocking",
      "background"
   ],
   "background": {
      "scripts": ["background.js"]
   },
   "content_scripts": [{
      "matches": ["*://*/*"],
      "css": ["content.css"],
      "js": ["jQuery.min.js", "lib.js", "content.js"]
   }]
}

La partie du content_script permettant de communiquer vers le background : dans content.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
chrome.runtime.sendMessage({function: "sendInfo", info: "text"}, function(response) {
            console.log("reponse")
            console.log(response.farewell)
         })
La partie permettant de recevoir le message dans background.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.greeting == "sendInfo")
      sendResponse({farewell: "info reçues"});
  });
Jusque là ca fonctionne bien : la communication entre le background et le content script se fait !


Par contre je n'arrive pas à faire communiquer l'extension avec le background : test.js (appelé par le test.html)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
   chrome.tabs.sendMessage(tabs[0].id, {greeting: "sendInfo"}, function(response) {
     console.log(response.farewell);
     authorizedTrackers = JSON.parse(response.farewell)
  })
})
A cet endroit, j'ai response qui est non définit :'(

Je me suis beaucoup appuyé sur cette doc :
https://developer.chrome.com/extensi...ssaging#simple

Auriez vous une idée de ce qui ne va pas ?
Merci pour votre aide.