2012-11-23 2 views
1

Je travaille sur une extension google chrome qui a un bouton et une superposition popup. À l'intérieur de cette extension, je définis et supprime les cookies pour l'utilisateur. Au cours du développement, l'extension envoie des requêtes à localhost: 8080 et (je suppose) les cookies sont définis avec localhost comme domaine.Comment voir les cookies mis en extension par google chrome?

Le problème est, je ne peux pas comprendre comment afficher ces cookies dans une liste à partir de Chrome. Firefox a une fonction simple pour afficher tous les cookies définis par différents noms d'hôtes et Chrome semble également (même si je suis moins familier avec les outils de développement dans Chrome). Mais dans la liste des cookies de Chrome, je ne trouve aucun cookie défini pour localhost, ni aucun cookie pour mon extension, quel qu'il soit. J'ai aussi essayé quelques extensions de cookies tierces - pas de chance non plus.

Est-ce que les cookies définis par des extensions apparaîtront au même endroit que les cookies mis en place par des sites Web normaux? Si oui, pourquoi ne les vois-je pas? Aide appréciée. Merci!

Répondre

1

Oui, ils apparaissent dans l'endroit de l'échantillon .. J'ai écrit un exemple d'extension pour la démonstration; Capture d'écran prise après avoir testé ce pour le domaine de developer.chrome.com

enter image description here

Extension de l'échantillon:

manifest.json

{ 
    "name" : "Cookie API Demo", 
    "version" : "1", 
    "description" : "This is demonstration of Cookie API", 
    "permissions": [ "cookies","<all_urls>"], 
    "browser_action": { 
    "default_icon": "screen.png", 
    "default_popup":"popup.html" 
    }, 
    "manifest_version": 2 
} 

popup.html

<html> 
<head> 
<script src="popup.js"></script> 
</head> 
<body> 
</body> 
</html> 

popup.js

function cookieinfo(){ 
    chrome.cookies.getAll({},function (cookie){ 
     console.log(cookie.length); 
     for(i=0;i<cookie.length;i++){ 
      console.log(JSON.stringify(cookie[i])); 
     } 
    }); 
    chrome.cookies.getAllCookieStores(function (cookiestores){ 
     for(i=0;i<cookiestores.length;i++){ 
      console.log(JSON.stringify(cookiestores[i])); 
     } 
    }); 
    chrome.cookies.set({"name":"Sample1","url":"http://developer.chrome.com/extensions/cookies.html","value":"Dummy Data"},function (cookie){ 
     console.log(JSON.stringify(cookie)); 
     console.log(chrome.extension.lastError); 
     console.log(chrome.runtime.lastError); 
    }); 
    chrome.cookies.onChanged.addListener(function (changeInfo){ 
     console.log(JSON.stringify(changeInfo)); 
    }); 
} 
window.onload=cookieinfo; 
0

Eh bien, je compris. C'est un slapper sur le front, mais je posterai la réponse ici au cas où d'autres auraient besoin d'aide.

Les cookies pour l'extension de superposition n'apparaissent que dans les "outils de développement" si vous inspectez l'élément de superposition. C'est-à-dire, si vous fermez la superposition et cliquez sur le bouton clé, les outils de développement, les ressources, les cookies, la seule chose que vous verrez, c'est qu'il y a des cookies pour la page sous-jacente.

Afin de voir les cookies pour une extension de superposition, cliquez avec le bouton droit de la souris sur l'incrustation et "inspecter l'élément". Les cookies apparaissent ici, et le "domaine" auquel ils sont attachés est l'identifiant unique de l'extension (kackjckjckjckjjjjjjcjkcjckcj ou what-have-you). Note au hasard: Au moment d'écrire ces lignes, le plugin Jquery cookies tue toujours vos cookies à la session, peu importe ce que vous définissez l'expiration. Pour que mes cookies persistent (survivent) au-delà de la fermeture du navigateur, j'ai dû inclure les bonnes fonctions setCookie() et getCookie() et me débarrasser des cookies Jquery.

0

Dans votre navigateur - visitez:

chrome://settings/cookies 

Je viens de le définir comme l'adresse d'un signet en chrome - puis il suffit de cliquer mes favoris quand je veux voir les biscuits

Questions connexes