2011-03-28 19 views
6

Quiero eliminar una cookie (según algunos criterios) desde dentro de una extensión de Chrome. De acuerdo con documentation de chrome.cookies.remove, espera un objeto con los campos url (La URL asociada a la cookie) y name (El nombre de la cookie para eliminar).Eliminar una cookie de una extensión de Chrome

Ahora, un cookie tiene los siguientes campos: name, value, domain, hostOnly, path, secure, httpOnly, session, expirationDate, storeId pero sin url. ¿Cómo obtengo la URL de una cookie específica para poder eliminarla?

Como referencia una de mis galletas se parece a esto:

domain: ".google.com" 
expirationDate: 1364393586 
hostOnly: false 
httpOnly: false 
name: "PREF" 
path: "/" 
secure: false 
session: false 
storeId: "0" 
value: "ID=8<snip>u" 

Respuesta

5

Después de algún ensayo y error aquí es cómo consigo la URL, esto parece funcionar para todo (excepto, quizás, file://)

function extrapolateUrlFromCookie(cookie) { 
    var prefix = cookie.secure ? "https://" : "http://"; 
    if (cookie.domain.charAt(0) == ".") 
     prefix += "www"; 

    return prefix + cookie.domain + cookie.path; 
} 
1

me pasó http://www.google.com como URL y funcionó. Tal vez solo quiera cualquier url que coincida con el patrón domain.

chrome.cookies.remove({url:"http://www.google.com", name: "PREF"}); 

(que también es necesario tener el permiso de dominio para google.com)

+0

Gracias parece que funciona (aunque no en las cookies 'httpOnly' ...) – Motti

Cuestiones relacionadas