Recientemente me molestó la cantidad de sitios de agregación que siguen apareciendo en los resultados de búsqueda de Google. No ofrecen (a mí) nada útil y oscurecen los sitios valiosos. Desafortunadamente, Google eliminó su oferta de ignorar/omitir sitios en los resultados hace un tiempo. Estoy empezando a trabajar en una extensión de Chrome para filtrarlos de los resultados de búsqueda y me encontré con un gran inconveniente.
Lo primero que probé fue webRequest.onBeforeRequest , pero encontré problemas con las diferencias en Manifest v3. Me di cuenta de que lo que buscaba podría no ser posible y pensé en comprobarlo.
Lo único que quiero poder hacer es modificar las solicitudes de búsqueda de Google para incluir una lista de sitios excluidos, usando la sintaxis -site:<url> que admite Google. Por ejemplo, una búsqueda de "yargs vs comandante" podría convertirse en "yargs vs comandante -sitio: npmtrends.com", suponiendo que el usuario haya puesto npmtrends.com en la lista negra.
Sin embargo, no estoy seguro de si esto es posible con las extensiones de Chrome. Si es así, ¿la pantalla de búsqueda resultante también incluirá -site:npmtrends.com (es decir, en la barra del navegador)? Si es así, ¿podría simplemente filtrarlo nuevamente en ese punto (ya que se agregará nuevamente para futuras solicitudes)?
He estado usando el trabajo de la API declarativeNetRequest (Manifest v3), junto con una regla de redirect . Sin embargo, aunque un regexFilter como [?&]q=[^&#]+ y regexSubstitution como \\0+-site%3Anpmtrends.com funcionan, también dan como resultado un bucle de redirección infinito (ya que la condición siempre es verdadera). La sintaxis de expresiones regulares de Google no parece ser compatible con lookbehinds/lookaheads, lo que limita significativamente las posibilidades.
Es bastante frustrante que Manifest v3 parezca ser un paso atrás en el poder con respecto a las solicitudes de URL, ya que esto sería fácil si se usa JS (ya que requiere varias comprobaciones en toda la cadena)...
¡Agradecemos cualquier comentario/recomendación!
EDITAR: Aparentemente olvidé (para mi vergüenza) incluir ejemplos/enlaces a mis intentos... ¡mis disculpas! No puedo actualizar con ejemplos en este momento, pero tengo un enlace de GitHub (por el poco valor que contiene).