0Pricing
Browser Extensions Development (Chrome & Edge) · Lección

Bloqueo de solicitudes de red

Aprenda a definir reglas para bloquear solicitudes de red no deseadas, como anuncios o scripts de seguimiento, mediante `declarativeNetRequest`.

Bloqueo de solicitudes de red es una lección gratuita de Browser Extensions Development (Chrome & Edge) en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Browser Extensions Development (Chrome & Edge), y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Browser Extensions Development (Chrome & Edge) incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Intro to Blocking Requests

Welcome to modifying web requests! This lesson introduces declarativeNetRequest, a powerful API for controlling network requests in your browser extension.

You'll learn how to define rules to block unwanted content like ads, tracking scripts, or specific resources, making web browsing cleaner and faster.

Why Block Network Requests?

Blocking network requests isn't just about privacy; it's also about performance and user experience.

  • Remove Ads: Block requests to ad servers.
  • Stop Trackers: Prevent tracking scripts from loading.
  • Improve Performance: Less data downloaded means faster page loads.
  • Enhance Security: Block malicious domains or content.

Declarative vs. Imperative

Traditional ad blockers often use imperative logic: JavaScript code that runs on every page to detect and block elements.

declarativeNetRequest is declarative. You define rules, and the browser handles the blocking efficiently, often without waking up your extension's JavaScript. This is faster and more resource-friendly!

Manifest Permission for Blocking

To use declarativeNetRequest, your extension needs to declare the permission in its manifest.json file.

This tells the browser your extension intends to modify network requests.

{
  "manifest_version": 3,
  "name": "My Blocker",
  "version": "1.0",
  "permissions": [
    "declarativeNetRequest"
  ]
}

Structure of a Blocking Rule

A blocking rule is an object with an id, an action, and a condition. The browser checks these conditions against every network request.

  • id: A unique number for the rule.
  • action: What to do (e.g., 'block', 'redirect').
  • condition: When to apply the action (e.g., 'urlFilter', 'resourceTypes').

The 'Block' Action Type

For this lesson, we'll focus on the "block" action. When a request matches a rule with this action, the browser simply prevents that request from completing.

The action part of your rule will look like this:

{
  "action": {
    "type": "block"
  }
}

Conditions: `urlFilter`

The urlFilter property in a rule's condition allows you to specify a pattern for URLs to match. It's like a mini-regex.

  • "*://*.example.com/*" matches any subdomain of example.com.
  • "*://ads.google.com/*" specifically targets Google ads.
  • "*track*" matches URLs containing 'track'.

Conditions: `resourceTypes`

You can also specify which types of resources to block using resourceTypes. This helps you target specific content like images, scripts, or fonts.

Common types include "script", "image", "stylesheet", "media", and "font".

Adding Dynamic Blocking Rules

Rules can be added dynamically by your extension using chrome.declarativeNetRequest.updateDynamicRules(). This is often done in your background script.

This example adds a rule to block requests containing "adserver" in their URL, specifically for scripts and images.

console.log("Background script running.");

const BLOCK_RULE_ID = 1;

chrome.runtime.onInstalled.addListener(() => {
  chrome.declarativeNetRequest.updateDynamicRules({
    removeRuleIds: [BLOCK_RULE_ID], // Remove if already exists
    addRules: [{
      id: BLOCK_RULE_ID,
      priority: 1,
      action: { type: "block" },
      condition: {
        urlFilter: "*://*adserver*/*",
        resourceTypes: ["script", "image"]
      }
    }]
  }, () => {
    if (chrome.runtime.lastError) {
      console.error("Error updating rules: ", chrome.runtime.lastError);
    } else {
      console.log("Blocking rule added!");
    }
  });
});

// To test, visit a page with 'adserver' in script/image URLs.

Quick Check: Rule Matching

Consider the following blocking rule:

{ "id": 2, "priority": 1, "action": { "type": "block" }, "condition": { "urlFilter": "*://*.tracker.com/*", "resourceTypes": ["script", "image"] } }

Which of these requests would be blocked?

Recap: Blocking Requests

Great job! You've learned the basics of blocking network requests with declarativeNetRequest.

  • It's a powerful, performant, and privacy-friendly API.
  • Rules consist of an id, action (e.g., "block"), and condition.
  • urlFilter and resourceTypes are key for defining conditions.
  • Dynamic rules can be added and managed using updateDynamicRules().

Next, you'll explore modifying headers!

Preguntas frecuentes

¿La lección «Bloqueo de solicitudes de red» es gratis?

Sí — el texto completo de «Bloqueo de solicitudes de red» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Browser Extensions Development (Chrome & Edge), actualiza a CoddyKit PRO. El curso de Browser Extensions Development (Chrome & Edge) incluye 4 lecciones en total.

¿Qué aprenderé en «Bloqueo de solicitudes de red»?

Aprenda a definir reglas para bloquear solicitudes de red no deseadas, como anuncios o scripts de seguimiento, mediante `declarativeNetRequest`. Practicas Browser Extensions Development (Chrome & Edge) con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Browser Extensions Development (Chrome & Edge)?

No se requiere experiencia previa. Browser Extensions Development (Chrome & Edge) en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Bloqueo de solicitudes de red»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Browser Extensions Development (Chrome & Edge)?

Sí. Cada lección de Browser Extensions Development (Chrome & Edge) incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Bloqueo de solicitudes de red
  2. Modificación de encabezados de solicitudes
  3. Redirección y reescritura de URL
  4. Reglas dinámicas y depuración de declarativeNetRequest
← Volver a Browser Extensions Development (Chrome & Edge)