chrome.webRequest

Açıklama

Trafiği gözlemlemek ve analiz etmek, ayrıca devam eden istekleri engellemek, değiştirmek veya bunlara müdahale etmek için chrome.webRequest API'sini kullanın.

İzinler

webRequest

Web isteği API'sini kullanmak için gerekli ana makine izinleriyle birlikte "webRequest" iznini uzantı manifestinde beyan etmeniz gerekir. Bir alt kaynak isteğini engellemek için uzantının hem istenen URL'ye hem de başlatıcısına erişmesi gerekir. Örneğin:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

webRequestBlocking

Engelleme etkinlik işleyicilerini kaydetmek için gereklidir. Manifest V3'ten itibaren bu özellik yalnızca politikayla yüklenen uzantılarda kullanılabilir.

webRequestAuthProvider

onAuthRequired yöntemini kullanmak için gereklidir. Kimlik doğrulama işlemleri başlıklı makaleyi inceleyin.

Kavramlar ve kullanım

İsteklerin yaşam döngüsü

Web isteği API'si, bir web isteğinin yaşam döngüsünü takip eden bir dizi etkinlik tanımlar. Trafiği gözlemlemek ve analiz etmek için bu etkinlikleri kullanabilirsiniz. Belirli senkron etkinlikler, bir isteği engellemenize, durdurmanıza veya değiştirmenize olanak tanır.

Başarılı istekler için etkinlik yaşam döngüsü burada gösterilmektedir. Ardından etkinlik tanımları verilmektedir:

Web isteği API'si açısından bir web isteğinin yaşam döngüsü

onBeforeRequest (isteğe bağlı olarak senkronize)
Bir istek gerçekleşmek üzereyken tetiklenir. Bu etkinlik, herhangi bir TCP bağlantısı kurulmadan önce gönderilir ve istekleri iptal etmek veya yönlendirmek için kullanılabilir.
onBeforeSendHeaders (isteğe bağlı olarak senkronize)
Bir istek gerçekleşmek üzereyken ve ilk başlıklar hazırlanmışken tetiklenir. Bu etkinlik, uzantıların istek başlıklarını eklemesine, değiştirmesine ve silmesine (*) olanak tanımak için tasarlanmıştır. onBeforeSendHeaders etkinliği tüm abonelere iletilir. Bu nedenle, farklı aboneler isteği değiştirmeye çalışabilir. Bunun nasıl ele alındığıyla ilgili bilgileri Uygulama ayrıntıları bölümünde bulabilirsiniz. Bu etkinlik, isteği iptal etmek için kullanılabilir.
onSendHeaders
Tüm uzantıların istek başlıklarını değiştirme fırsatı bulmasından sonra tetiklenir ve son (*) sürümü sunar. Etkinlik, üstbilgiler ağa gönderilmeden önce tetiklenir. Bu etkinlik bilgilendirme amaçlıdır ve eşzamansız olarak işlenir. İstek değiştirilemez veya iptal edilemez.
onHeadersReceived (isteğe bağlı olarak senkronize)
Bir HTTP(S) yanıt başlığı her alındığında tetiklenir. Yönlendirmeler ve kimlik doğrulama istekleri nedeniyle bu durum, istek başına birden fazla kez gerçekleşebilir. Bu etkinlik, uzantıların gelen Content-Type üstbilgileri gibi yanıt üstbilgilerini eklemesine, değiştirmesine ve silmesine olanak tanımayı amaçlar. Önbelleğe alma yönergeleri bu etkinlik tetiklenmeden önce işlenir. Bu nedenle, Cache-Control gibi başlıkların değiştirilmesi tarayıcının önbelleğini etkilemez. Ayrıca, isteği iptal etmenize veya yönlendirmenize de olanak tanır.
onAuthRequired (isteğe bağlı olarak senkronize)
Bir istekte kullanıcının kimliğinin doğrulanması gerektiğinde tetiklenir. Bu etkinlik, kimlik doğrulama kimlik bilgilerini sağlamak için eşzamanlı olarak işlenebilir. Uzantıların geçersiz kimlik bilgileri sağlayabileceğini unutmayın. Geçersiz kimlik bilgilerini tekrar tekrar girerek sonsuz döngüye girmemeye dikkat edin. Bu işlem, isteği iptal etmek için de kullanılabilir.
onBeforeRedirect
Yeniden yönlendirme işlemi gerçekleştirilmek üzereyken tetiklenir. Yönlendirme, bir HTTP yanıt kodu veya bir uzantı tarafından tetiklenebilir. Bu etkinlik bilgilendiricidir ve eşzamansız olarak işlenir. İsteği değiştirmenize veya iptal etmenize izin vermez.
onResponseStarted
Yanıt gövdesinin ilk baytı alındığında tetiklenir. HTTP istekleri için bu, durum satırının ve yanıt başlıklarının kullanılabilir olduğu anlamına gelir. Bu etkinlik bilgilendiricidir ve eşzamansız olarak işlenir. İsteğin değiştirilmesine veya iptal edilmesine izin verilmez.
onCompleted
Bir istek başarıyla işlendiğinde tetiklenir.
onErrorOccurred
Bir istek başarıyla işlenemediğinde tetiklenir.

Web isteği API'si, her istek için onCompleted veya onErrorOccurred etkinliklerinin son etkinlik olarak tetikleneceğini garanti eder. Tek bir istisna vardır: Bir istek data:// URL'sine yönlendirilirse onBeforeRedirect son bildirilen etkinlik olur.

* Web isteği API'sinin, ağ yığını için uzantıya bir soyutlama sunduğunu unutmayın. Dahili olarak, bir URL isteği birkaç HTTP isteğine bölünebilir (örneğin, büyük bir dosyadan tek tek bayt aralıklarını getirmek için) veya ağ ile iletişim kurmadan ağ yığını tarafından işlenebilir. Bu nedenle API, ağa gönderilen son HTTP üstbilgilerini sağlamaz. Örneğin, önbelleğe alma ile ilgili tüm üstbilgiler uzantı tarafından görünmez.

Aşağıdaki başlıklar şu anda onBeforeSendHeaders etkinliğine sağlanmamaktadır. Bu listenin eksiksiz veya kararlı olduğu garanti edilmez.

  • Yetkilendirme
  • Önbellek-Denetimi
  • Bağlantı
  • Content-Length
  • Ana makine
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Kısmi Veriler
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

Chrome 79'dan itibaren, istek üstbilgisi değişiklikleri Kaynaklar Arası Kaynak Paylaşımı (CORS) kontrollerini etkiler. Merkezler arası istekler için değiştirilmiş başlıklar ölçütleri karşılamıyorsa sunucuya bu tür başlıkların kabul edilip edilemeyeceğini soran bir CORS ön kontrolü gönderilir. Başlıkları CORS protokolünü ihlal edecek şekilde değiştirmeniz gerekiyorsa opt_extraInfoSpec içinde 'extraHeaders' değerini belirtmeniz gerekir. Diğer taraftan, yanıt başlığı değişiklikleri CORS kontrollerini yanıltmak için kullanılamaz. CORS protokolünü yanıltmanız gerekiyorsa yanıt değişiklikleri için 'extraHeaders' değerini de belirtmeniz gerekir.

Chrome 79'dan itibaren webRequest API, varsayılan olarak CORS ön kontrol isteklerini ve yanıtlarını engellemez. Bir istek URL'si için CORS ön kontrolü, istek URL'si için opt_extraInfoSpec içinde 'extraHeaders' belirtilmiş bir dinleyici varsa uzantı tarafından görülebilir. onBeforeRequest, Chrome 79'dan da 'extraHeaders' alabilir.

Chrome 79'dan itibaren aşağıdaki istek başlığı sağlanmaz ve opt_extraInfoSpec içinde 'extraHeaders' belirtilmeden değiştirilemez veya kaldırılamaz:

  • Köken

Chrome 72'den itibaren, Cross-Origin Read Blocking (CORB) yanıtı engellemeden önce yanıtları değiştirmeniz gerekiyorsa opt_extraInfoSpec içinde 'extraHeaders' belirtmeniz gerekir.

Chrome 72'den itibaren aşağıdaki istek başlıkları sağlanmaz ve opt_extraInfoSpec içinde 'extraHeaders' belirtilmeden değiştirilemez veya kaldırılamaz:

  • Accept-Language
  • Accept-Encoding
  • Başvuran
  • Çerez

Chrome 72'den itibaren Set-Cookie yanıt başlığı sağlanmaz ve opt_extraInfoSpec içinde 'extraHeaders' belirtilmeden değiştirilemez veya kaldırılamaz.

Chrome 89'dan itibaren X-Frame-Options yanıt başlığı, opt_extraInfoSpec içinde 'extraHeaders' belirtilmeden etkili bir şekilde değiştirilemez veya kaldırılamaz.

webRequest API, yalnızca uzantının ana makine izinleri nedeniyle görme izni olan istekleri gösterir. Ayrıca yalnızca şu şemalar erişilebilir: http://, https://, ftp://, file://, ws:// (Chrome 58'den itibaren), wss:// (Chrome 58'den itibaren), urn: (Chrome 91'den itibaren) veya chrome-extension://. Ayrıca, yukarıdaki şemalardan birini kullanan URL'lere sahip belirli istekler bile gizlenir. Bunlar arasında chrome-extension://other_extension_id (burada other_extension_id, isteği işleyecek uzantının kimliği değildir), https://www.google.com/chrome ve tarayıcı işlevselliği için temel olan diğer hassas istekler yer alır. Ayrıca, uzantınızdan gelen senkron XMLHttpRequests, kilitlenmeleri önlemek için engelleme etkinlik işleyicilerinden gizlenir. Desteklenen bazı şemalarda, ilgili protokolün yapısı nedeniyle kullanılabilen etkinliklerin sınırlı olabileceğini unutmayın. Örneğin, dosya: şeması için yalnızca onBeforeRequest, onResponseStarted, onCompleted ve onErrorOccurred gönderilebilir.

Chrome 58'den itibaren webRequest API, WebSocket el sıkışması isteğinin engellenmesini destekler. El sıkışma işlemi bir HTTP yükseltme isteğiyle yapıldığından akışı HTTP odaklı webRequest modeliyle uyumludur. API'nin kesmediğini unutmayın:

  • Oluşturulmuş bir WebSocket bağlantısı üzerinden gönderilen tek tek mesajlar.
  • WebSocket bağlantısı kapatılıyor.

WebSocket istekleri için yönlendirmeler desteklenmez.

Chrome 72'den itibaren bir uzantı, yalnızca hem istenen URL hem de istek başlatıcı için ana makine izinlerine sahipse isteği engelleyebilir.

Chrome 96'dan itibaren webRequest API, HTTP/3 üzerinden WebTransport el sıkışma isteğinin engellenmesini destekler. El sıkışma işlemi bir HTTP CONNECT isteğiyle yapıldığından akışı HTTP odaklı webRequest modeline uygundur. Unutmayın:

  • Oturum oluşturulduktan sonra uzantılar, webRequest API aracılığıyla oturumu gözlemleyemez veya oturuma müdahale edemez.
  • onBeforeSendHeaders içinde HTTP istek başlıklarının değiştirilmesi yoksayılır.
  • HTTP/3 üzerinden WebTransport'ta yönlendirmeler ve kimlik doğrulamalar desteklenmez.

İstek kimlikleri

Her istek, istek kimliğiyle tanımlanır. Bu kimlik, bir tarayıcı oturumu ve uzantı bağlamı içinde benzersizdir. İstek yaşam döngüsü boyunca sabit kalır ve aynı isteğe ait etkinlikleri eşleştirmek için kullanılabilir. HTTP yönlendirmesi veya HTTP kimlik doğrulaması durumunda, birden fazla HTTP isteğinin tek bir web isteğiyle eşlendiğini unutmayın.

Etkinlik işleyicilerini kaydetme

Bir web isteği için etkinlik dinleyici kaydetmek üzere normal addListener() işlevinin bir varyasyonunu kullanırsınız. Geri çağırma işlevi belirtmenin yanı sıra bir filtre bağımsız değişkeni de belirtmeniz gerekir. İsteğe bağlı olarak ek bilgi bağımsız değişkeni de belirtebilirsiniz.

Web isteği API'sinin addListener() üç bağımsız değişkeni aşağıdaki tanımlara sahiptir:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

onBeforeRequest etkinliğinin dinlenmesine dair bir örneği aşağıda görebilirsiniz:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

Her addListener() çağrısı, ilk parametre olarak zorunlu bir geri çağırma işlevi alır. Bu geri çağırma işlevine, geçerli URL isteğiyle ilgili bilgileri içeren bir sözlük iletilir. Bu sözlükteki bilgiler, belirli etkinlik türünün yanı sıra opt_extraInfoSpec içeriğine de bağlıdır.

İsteğe bağlı opt_extraInfoSpec dizisi 'blocking' dizesini içeriyorsa (yalnızca belirli etkinlikler için izin verilir) geri çağırma işlevi eşzamanlı olarak işlenir. Bu durumda, geri çağırma işlevi döndürülene kadar istek engellenir. Bu durumda geri çağırma, isteğin yaşam döngüsünü belirleyen bir webRequest.BlockingResponse döndürebilir. Bağlama bağlı olarak bu yanıt, bir isteğin iptal edilmesine veya yönlendirilmesine (onBeforeRequest), bir isteğin iptal edilmesine veya başlıkların değiştirilmesine (onBeforeSendHeaders, onHeadersReceived) ve bir isteğin iptal edilmesine ya da kimlik doğrulama kimlik bilgilerinin sağlanmasına (onAuthRequired) olanak tanır.

İsteğe bağlı opt_extraInfoSpec dizisi bunun yerine 'asyncBlocking' dizesini içeriyorsa (yalnızca onAuthRequired için izin verilir) uzantı, webRequest.BlockingResponse öğesini eşzamansız olarak oluşturabilir.

webRequest.RequestFilter filter, çeşitli boyutlarda hangi etkinliklerin tetikleneceğiyle ilgili isteklerin sınırlandırılmasına olanak tanır:

URL'ler
URL kalıpları (ör. *://www.google.com/foo*bar).
Türler
main_frame (üst düzey bir çerçeve için yüklenen bir belge), sub_frame (yerleştirilmiş bir çerçeve için yüklenen bir belge) ve image (bir web sitesindeki resim) gibi istek türleri. webRequest.RequestFilter sayfasına göz atın.
Sekme kimliği
Bir sekmenin tanımlayıcısı.
Pencere kimliği
Pencerenin tanımlayıcısı.

Etkinlik türüne bağlı olarak, istek hakkında ek bilgi istemek için opt_extraInfoSpec içinde dizeler belirtebilirsiniz. Bu, yalnızca açıkça istenmesi durumunda isteğin verileriyle ilgili ayrıntılı bilgi sağlamak için kullanılır.

Kimlik doğrulama işlemleri

HTTP kimlik doğrulama isteklerini işlemek için manifest dosyanıza "webRequestAuthProvider" iznini ekleyin:

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

Bu iznin, "webRequestBlocking" izniyle yüklenen politika uzantıları için gerekli olmadığını unutmayın.

Kimlik bilgilerini eşzamanlı olarak sağlamak için:

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

Kimlik bilgilerini eşzamansız olarak sağlamak için:

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

Uygulama ayrıntıları

Web isteği API'sini kullanan bir uzantı geliştirirken anlamanız gereken birkaç önemli uygulama ayrıntısı vardır:

web_accessible_resources

Bir uzantı, herkese açık kaynak isteğini webRequest API'lerini kullanarak web'de erişilemeyen bir kaynağa yönlendirdiğinde engellenir ve hataya neden olur. Bu durum, web'de erişilemeyen kaynak yönlendiren uzantıya ait olsa bile geçerlidir. Bildirimli Web İstekleri API'leriyle kullanılacak kaynakları bildirmek için "web_accessible_resources" dizisi, manifest dosyasında burada belgelendiği şekilde bildirilip doldurulmalıdır.

Çakışma çözümü

Web isteği API'sinin mevcut uygulamasında, en az bir uzantı isteğin iptal edilmesini isterse istek iptal edilmiş sayılır. Bir uzantı isteği iptal ederse tüm uzantılara onErrorOccurred etkinliğiyle bildirim gönderilir. Tek seferde yalnızca bir uzantı isteği yönlendirebilir veya başlığı değiştirebilir. İsteği birden fazla uzantı değiştirmeye çalışırsa en son yüklenen uzantı öncelikli olur ve diğer tüm uzantılar yoksayılır. Bir uzantının değiştirme veya yönlendirme talimatı yoksayıldığında uzantıya bildirim gönderilmez.

Önbelleğe alma

Chrome, iki önbellek kullanır: disk önbelleği ve çok hızlı bir bellek içi önbellek. Bellek içi önbelleğin ömrü, bir oluşturma işleminin ömrüne bağlıdır. Bu ömür kabaca bir sekmeye karşılık gelir. Bellek içi önbellekten yanıtlanan istekler, web isteği API'si tarafından görünmez. Bir istek işleyici davranışını değiştirirse (ör. isteklerin engellendiği davranış), basit bir sayfa yenileme işlemi bu değişen davranışa uymayabilir. Davranış değişikliğinin gerçekleşmesi için handlerBehaviorChanged() numaralı telefonu arayarak bellek içi önbelleği temizleyin. Ancak bunu sık sık yapmayın. Önbelleği temizlemek çok maliyetli bir işlemdir. Bir etkinlik işleyicisini kaydettikten veya kaydını iptal ettikten sonra handlerBehaviorChanged() işlevini çağırmanız gerekmez.

Zaman damgaları

Web isteği etkinliklerinin timestamp özelliği yalnızca dahili olarak tutarlı olduğu garanti edilir. Bir etkinliği başka bir etkinlikle karşılaştırdığınızda aralarındaki doğru farkı elde edersiniz ancak bunları uzantıdaki mevcut saatle karşılaştırdığınızda (örneğin, (new Date()).getTime() aracılığıyla) beklenmedik sonuçlar elde edebilirsiniz.

Hata işleme

Geçersiz bağımsız değişkenlerle bir etkinlik kaydetmeye çalışırsanız JavaScript hatası verilir ve etkinlik işleyici kaydedilmez. Bir etkinlik işlenirken hata oluşursa veya bir etkinlik işleyicisi geçersiz bir engelleme yanıtı döndürürse uzantınızın konsoluna bir hata mesajı kaydedilir ve işleyici, bu istek için yoksayılır.

Örnekler

Aşağıdaki örnekte, www.evil.com adresine yapılan tüm isteklerin nasıl engelleneceği gösterilmektedir:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

Bu işlev, engelleyici bir etkinlik işleyici kullandığından manifest dosyasında "webRequest" ve "webRequestBlocking" iznini gerektirir.

Aşağıdaki örnek, www.evil.com'yı hedeflemeyen isteklerin uzantıya iletilmesi gerekmediğinden aynı hedefi daha verimli bir şekilde gerçekleştirir:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

Aşağıdaki örnekte, User-Agent üstbilgisinin tüm isteklerden nasıl silineceği gösterilmektedir:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

chrome.webRequest API'sini denemek için chrome-extension-samples deposundan webRequest örneğini yükleyin.

Türler

BlockingResponse

"blocking" extraInfoSpec'i uygulanan etkinlik işleyicilerinin değerini döndürür. Etkinlik işleyicinin ağ isteklerini değiştirmesine izin verir.

Özellikler

  • authCredentials

    object isteğe bağlı

    Yalnızca onAuthRequired etkinliğine yanıt olarak kullanılır. Ayarlandıysa istek, sağlanan kimlik bilgileri kullanılarak yapılır.

    • şifre

      dize

    • kullanıcı adı

      dize

  • iptal

    boolean isteğe bağlı

    Doğruysa istek iptal edilir. Bu durum, isteğin gönderilmesini engeller. Bu, onBeforeRequest, onBeforeSendHeaders, onHeadersReceived ve onAuthRequired etkinliklerine yanıt olarak kullanılabilir.

  • redirectUrl

    dize isteğe bağlı

    Yalnızca onBeforeRequest ve onHeadersReceived etkinliklerine yanıt olarak kullanılır. Bu ayar belirlenirse orijinal isteğin gönderilmesi/tamamlanması engellenir ve bunun yerine belirtilen URL'ye yönlendirilir. data: gibi HTTP olmayan şemalara yönlendirmelere izin verilir. Bir yönlendirme işlemi tarafından başlatılan yönlendirmeler, yönlendirme için orijinal istek yöntemini kullanır. Ancak bir istisna vardır: Yönlendirme onHeadersReceived aşamasında başlatılırsa yönlendirme, GET yöntemi kullanılarak verilir. ws:// ve wss:// şemalarına sahip URL'lerden yapılan yönlendirmeler yoksayılır.

  • requestHeaders

    HttpHeaders isteğe bağlı

    Yalnızca onBeforeSendHeaders etkinliğine yanıt olarak kullanılır. Ayarlanırsa istek bunun yerine bu istek üstbilgileriyle yapılır.

  • responseHeaders

    HttpHeaders isteğe bağlı

    Yalnızca onHeadersReceived etkinliğine yanıt olarak kullanılır. Ayarlandıysa sunucunun bunun yerine bu yanıt üstbilgileriyle yanıt verdiği varsayılır. Yalnızca çakışma sayısını sınırlamak için başlıkları gerçekten değiştirmek istiyorsanız responseHeaders değerini döndürün (her istek için yalnızca bir uzantı responseHeaders değerini değiştirebilir).

FormDataItem

Chrome 66 veya daha yeni bir sürüm

Form verilerinde iletilen verileri içerir. URL kodlu formda, veriler UTF-8 dizesi ise dize olarak, aksi takdirde ArrayBuffer olarak depolanır. Form verileri için ArrayBuffer'dır. Form verileri, dosya yüklemeyi temsil ediyorsa dosya adı sağlanmışsa dosya adını içeren bir dizedir.

Enum

ArrayBuffer

dize

HttpHeaders

HTTP üstbilgileri dizisi. Her üstbilgi, name ve value veya binaryValue anahtarlarını içeren bir sözlük olarak gösterilir.

Tür

object[]

Özellikler

  • binaryValue

    number[] isteğe bağlı

    UTF-8 ile gösterilemeyen HTTP üstbilgisinin değeri, ayrı bayt değerleri (0..255) olarak depolanır.

  • ad

    dize

    HTTP üstbilgisinin adı.

  • value

    dize isteğe bağlı

    UTF-8 ile temsil edilebiliyorsa HTTP başlığının değeri.

IgnoredActionType

Chrome 70 veya daha yeni bir sürüm

Enum

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"responseHeaders"
Yanıt başlıklarının etkinliğe dahil edilmesi gerektiğini belirtir.

"blocking"
Geri çağırma işlevi döndürülene kadar isteğin engellendiğini belirtir.

"asyncBlocking"
Geri çağırma işlevinin eşzamansız olarak işlendiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnBeforeRedirectOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"responseHeaders"
Yanıt başlıklarının etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnBeforeRequestOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"blocking"
Geri çağırma işlevi döndürülene kadar isteğin engellendiğini belirtir.

"requestBody"
İstek gövdesinin etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnBeforeSendHeadersOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"requestHeaders"
İstek üstbilgisinin etkinliğe dahil edilmesi gerektiğini belirtir.

"blocking"
Geri çağırma işlevi döndürülene kadar isteğin engellendiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnCompletedOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"responseHeaders"
Yanıt başlıklarının etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnErrorOccurredOptions

Chrome 79 veya daha yeni bir sürüm

Değer

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"blocking"
Geri çağırma işlevi döndürülene kadar isteğin engellendiğini belirtir.

"responseHeaders"
Yanıt başlıklarının etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnResponseStartedOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"responseHeaders"
Yanıt başlıklarının etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

OnSendHeadersOptions

Chrome 44 veya daha yeni bir sürüm

Enum

"requestHeaders"
İstek üstbilgisinin etkinliğe dahil edilmesi gerektiğini belirtir.

"extraHeaders"
Başlıkların, merkezler arası kaynak paylaşımını (CORS) ihlal edebileceğini belirtir.

RequestFilter

WebRequest etkinliklerine uygulanacak filtreleri açıklayan bir nesne.

Özellikler

  • tabId

    number isteğe bağlı

  • türler

    ResourceType[] isteğe bağlı

    İstek türlerinin listesi. Türlerden herhangi biriyle eşleşemeyen istekler filtrelenir.

  • urller

    dize[]

    URL'lerin veya URL kalıplarının listesi. URL'lerden herhangi biriyle eşleşmeyen istekler filtrelenir.

  • windowId

    number isteğe bağlı

ResourceType

Chrome 44 veya daha yeni bir sürüm

Enum

"main_frame"
Kaynağı ana çerçeve olarak belirtir.

"sub_frame"
Kaynağı alt çerçeve olarak belirtir.

"stylesheet"
Kaynağı stil sayfası olarak belirtir.

"script"
Kaynağı komut dosyası olarak belirtir.

"image"
Kaynağı resim olarak belirtir.

"font"
Kaynağı yazı tipi olarak belirtir.

"object"
Kaynağı nesne olarak belirtir.

"xmlhttprequest"
Kaynağı XMLHttpRequest olarak belirtir.

"ping"
Kaynağı ping olarak belirtir.

"csp_report"
Kaynağı İçerik Güvenliği Politikası (İGP) raporu olarak belirtir.

"media"
Kaynağı bir medya nesnesi olarak belirtir.

"websocket"
Kaynağı WebSocket olarak belirtir.

"webbundle"
Kaynağı WebBundle olarak belirtir.

"other"
Kaynağı, listelenen türlere dahil olmayan bir tür olarak belirtir.

UploadData

URL isteğinde yüklenen verileri içerir.

Özellikler

  • bayt

    herhangi bir isteğe bağlı

    Verilerin kopyasını içeren bir ArrayBuffer.

  • dosya

    dize isteğe bağlı

    Dosyanın yolunu ve adını içeren bir dize.

Özellikler

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

10 dakikalık sürekli aralıkta handlerBehaviorChanged işlevinin çağrılabileceği maksimum sayı. handlerBehaviorChanged, sık sık çağrılmaması gereken maliyetli bir işlev çağrısıdır.

Değer

20

Yöntemler

handlerBehaviorChanged()

chrome.webRequest.handlerBehaviorChanged(): Promise<void>

WebRequest işleyicilerinin davranışı değiştiğinde, önbelleğe alma nedeniyle yanlış işlenmeyi önlemek için çağrılması gerekir. Bu işlev çağrısı maliyetlidir. Sık sık aramayın.

İadeler

  • Promise<void>

    Chrome 116 veya daha yeni bir sürüm

Etkinlikler

onActionIgnored

Chrome 70 veya daha yeni bir sürüm
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Bir uzantının ağ isteğinde yapmayı önerdiği değişiklik yoksayıldığında tetiklenir. Bu durum, diğer uzantılarla çakışma olduğunda meydana gelir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • Yoksayılan önerilen işlem.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

Kimlik doğrulama hatası alındığında tetiklenir. Dinleyicinin üç seçeneği vardır: Kimlik doğrulama kimlik bilgilerini sağlayabilir, isteği iptal edip hata sayfasını görüntüleyebilir veya sorguyla ilgili herhangi bir işlem yapmayabilir. Yanlış kullanıcı kimlik bilgileri sağlanırsa bu işlev, aynı istek için birden çok kez çağrılabilir. extraInfoSpec parametresinde yalnızca bir 'blocking' veya 'asyncBlocking' modunun belirtilmesi gerektiğini unutmayın.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • ayrıntılar

      nesne

      • meydan okuyan

        nesne

        Kimlik doğrulama isteyen sunucu.

        • düzenleyen

          dize

        • bağlantı noktası

          sayı

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • isProxy

        boolean

        Proxy-Authenticate için doğru, WWW-Authenticate için yanlış.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • erişim alanı

        dize isteğe bağlı

        Sunucu tarafından sağlanan kimlik doğrulama alanı (varsa).

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • responseHeaders

        HttpHeaders isteğe bağlı

        Bu yanıtla birlikte alınan HTTP yanıt başlıkları.

      • şema

        dize

        Kimlik doğrulama şeması (ör. Basic veya Digest).

      • statusCode

        sayı

        Chrome 43 veya daha yeni bir sürüm

        Sunucu tarafından döndürülen standart HTTP durum kodu.

      • statusLine

        dize

        Yanıtın HTTP durum satırı veya HTTP/0.9 yanıtları için "HTTP/0.9 200 OK" dizesi (ör. durum satırı olmayan yanıtlar) ya da başlık yoksa boş bir dize.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

    • asyncCallback

      işlev isteğe bağlı

      Chrome 58 veya daha yeni bir sürüm

      asyncCallback parametresi şu şekilde görünür:

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | undefined

      "extraInfoSpec" parametresinde "blocking" belirtilmişse etkinlik işleyici bu türde bir nesne döndürmelidir.

  • filtrele
  • extraInfoSpec

    OnAuthRequiredOptions[] isteğe bağlı

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

Sunucu tarafından başlatılan bir yönlendirme gerçekleşmek üzere olduğunda tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • fromCache

        boolean

        Bu yanıtın disk önbelleğinden getirilip getirilmediğini gösterir.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • ip

        dize isteğe bağlı

        İsteğin gerçekten gönderildiği sunucu IP adresi. Değerin gerçek bir IPv6 adresi olabileceğini unutmayın.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • redirectUrl

        dize

        Yeni URL.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • responseHeaders

        HttpHeaders isteğe bağlı

        Bu yönlendirmeyle birlikte alınan HTTP yanıt başlıkları.

      • statusCode

        sayı

        Sunucu tarafından döndürülen standart HTTP durum kodu.

      • statusLine

        dize

        Yanıtın HTTP durum satırı veya HTTP/0.9 yanıtları için "HTTP/0.9 200 OK" dizesi (ör. durum satırı olmayan yanıtlar) ya da başlık yoksa boş bir dize.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

  • filtrele
  • extraInfoSpec

    OnBeforeRedirectOptions[] isteğe bağlı

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

Bir istek gerçekleşmek üzereyken tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => BlockingResponse | undefined

    • ayrıntılar

      nesne

      • documentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • documentLifecycle
        Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • frameType

        extensionTypes.FrameType isteğe bağlı

        Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestBody

        object isteğe bağlı

        HTTP isteği gövde verilerini içerir. Yalnızca extraInfoSpec "requestBody" içeriyorsa sağlanır.

        • hata

          dize isteğe bağlı

          İstek gövdesi verileri alınırken hatalar oluştu.

        • formData

          object isteğe bağlı

          İstek yöntemi POST ise ve gövde, UTF8'de kodlanmış, multipart/form-data veya application/x-www-form-urlencoded olarak kodlanmış bir anahtar/değer çiftleri dizisiyse bu sözlük bulunur ve her anahtar için söz konusu anahtara ait tüm değerlerin listesini içerir. Veriler başka bir medya türündeyse veya hatalı biçimlendirilmişse sözlük mevcut değildir. Bu sözlüğün örnek değeri {'key': ['value1', 'value2']} şeklindedir.

        • ham

          UploadData[] isteğe bağlı

          İstek yöntemi PUT veya POST ise ve gövde formData'da ayrıştırılmamışsa ayrıştırılmamış istek gövdesi öğeleri bu dizide yer alır.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

    • returns

      BlockingResponse | undefined

      "extraInfoSpec" parametresinde "blocking" belirtilmişse etkinlik işleyici bu türde bir nesne döndürmelidir.

  • filtrele
  • extraInfoSpec

    OnBeforeRequestOptions[] isteğe bağlı

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

İstek başlıkları kullanılabilir olduğunda HTTP isteği gönderilmeden önce tetiklenir. Bu durum, sunucuyla TCP bağlantısı kurulduktan sonra ancak herhangi bir HTTP verisi gönderilmeden önce meydana gelebilir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => BlockingResponse | undefined

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestHeaders

        HttpHeaders isteğe bağlı

        Bu istekle birlikte gönderilecek HTTP isteği başlıkları.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

    • returns

      BlockingResponse | undefined

      "extraInfoSpec" parametresinde "blocking" belirtilmişse etkinlik işleyici bu türde bir nesne döndürmelidir.

  • filtrele
  • extraInfoSpec

    OnBeforeSendHeadersOptions[] isteğe bağlı

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

Bir istek tamamlandığında tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • fromCache

        boolean

        Bu yanıtın disk önbelleğinden getirilip getirilmediğini gösterir.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • ip

        dize isteğe bağlı

        İsteğin gerçekten gönderildiği sunucu IP adresi. Değerin gerçek bir IPv6 adresi olabileceğini unutmayın.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • responseHeaders

        HttpHeaders isteğe bağlı

        Bu yanıtla birlikte alınan HTTP yanıt başlıkları.

      • statusCode

        sayı

        Sunucu tarafından döndürülen standart HTTP durum kodu.

      • statusLine

        dize

        Yanıtın HTTP durum satırı veya HTTP/0.9 yanıtları için "HTTP/0.9 200 OK" dizesi (ör. durum satırı olmayan yanıtlar) ya da başlık yoksa boş bir dize.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

  • filtrele
  • extraInfoSpec

    OnCompletedOptions[] isteğe bağlı

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

Bir hata oluştuğunda tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si. İstek bir çerçevenin gezinmesi ise bu değer mevcut değildir.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • hata

        dize

        Hata açıklaması. Bu dizenin, sürümler arasında geriye dönük uyumluluğu koruyacağı garanti edilmez. İçeriğini ayrıştırmamalı ve içeriğine göre işlem yapmamalısınız.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • fromCache

        boolean

        Bu yanıtın disk önbelleğinden getirilip getirilmediğini gösterir.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • ip

        dize isteğe bağlı

        İsteğin gerçekten gönderildiği sunucu IP adresi. Değerin gerçek bir IPv6 adresi olabileceğini unutmayın.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

  • filtrele
  • extraInfoSpec

    OnErrorOccurredOptions[] isteğe bağlı

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

Bir isteğin HTTP yanıt üstbilgileri alındığında tetiklenir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => BlockingResponse | undefined

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • responseHeaders

        HttpHeaders isteğe bağlı

        Bu yanıtla birlikte alınan HTTP yanıtı üstbilgileri.

      • statusCode

        sayı

        Chrome 43 veya daha yeni bir sürüm

        Sunucu tarafından döndürülen standart HTTP durum kodu.

      • statusLine

        dize

        Yanıtın HTTP durum satırı veya HTTP/0.9 yanıtları için "HTTP/0.9 200 OK" dizesi (yani durum satırı olmayan yanıtlar).

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

    • returns

      BlockingResponse | undefined

      "extraInfoSpec" parametresinde "blocking" belirtilmişse etkinlik işleyici bu türde bir nesne döndürmelidir.

  • filtrele
  • extraInfoSpec

    OnHeadersReceivedOptions[] isteğe bağlı

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

Yanıt gövdesinin ilk baytı alındığında tetiklenir. HTTP istekleri için bu, durum satırının ve yanıt başlıklarının kullanılabilir olduğu anlamına gelir.

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • fromCache

        boolean

        Bu yanıtın disk önbelleğinden getirilip getirilmediğini gösterir.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • ip

        dize isteğe bağlı

        İsteğin gerçekten gönderildiği sunucu IP adresi. Değerin gerçek bir IPv6 adresi olabileceğini unutmayın.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • responseHeaders

        HttpHeaders isteğe bağlı

        Bu yanıtla birlikte alınan HTTP yanıt başlıkları.

      • statusCode

        sayı

        Sunucu tarafından döndürülen standart HTTP durum kodu.

      • statusLine

        dize

        Yanıtın HTTP durum satırı veya HTTP/0.9 yanıtları için "HTTP/0.9 200 OK" dizesi (ör. durum satırı olmayan yanıtlar) ya da başlık yoksa boş bir dize.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

  • filtrele
  • extraInfoSpec

    OnResponseStartedOptions[] isteğe bağlı

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

İstek sunucuya gönderilmeden hemen önce tetiklenir (önceki onBeforeSendHeaders geri çağırma işlemlerinde yapılan değişiklikler, onSendHeaders tetiklendiğinde görünür).

Parametreler

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (details: object) => void

    • ayrıntılar

      nesne

      • documentId

        dize

        Chrome 106 ve sonraki sürümler

        İsteği yapan dokümanın UUID'si.

      • Chrome 106 ve sonraki sürümler

        Belgenin bulunduğu yaşam döngüsü.

      • frameId

        sayı

        0 değeri, isteğin ana çerçevede gerçekleştiğini gösterir. Pozitif bir değer ise isteğin gerçekleştiği alt çerçevenin kimliğini gösterir. Bir (alt) çerçevenin dokümanı yüklendiyse (type main_frame veya sub_frame ise) frameId, dış çerçevenin kimliğini değil, bu çerçevenin kimliğini gösterir. Çerçeve kimlikleri, bir sekmede benzersizdir.

      • Chrome 106 ve sonraki sürümler

        İsteğin gerçekleştiği çerçevenin türü.

      • başlatan

        dize isteğe bağlı

        Chrome 63 veya daha yeni bir sürüm

        İsteğin başlatıldığı kaynak. Bu, yönlendirmelerle değişmez. Bu opak bir kaynaksa "null" dizesi kullanılır.

      • method

        dize

        Standart HTTP yöntemi.

      • parentDocumentId

        dize isteğe bağlı

        Chrome 106 ve sonraki sürümler

        Bu çerçeveye sahip üst dokümanın UUID'si. Üst öğe yoksa bu ayar belirlenmez.

      • parentFrameId

        sayı

        İsteği gönderen çerçeveyi sarmalayan çerçevenin kimliği. Üst çerçeve yoksa -1 olarak ayarlayın.

      • requestHeaders

        HttpHeaders isteğe bağlı

        Bu istekle birlikte gönderilen HTTP isteği başlıkları.

      • requestId

        dize

        İsteğin kimliği. İstek kimlikleri, tarayıcı oturumu içinde benzersizdir. Bu nedenle, aynı isteğin farklı etkinliklerini ilişkilendirmek için kullanılabilirler.

      • tabId

        sayı

        İsteğin gerçekleştiği sekmenin kimliği. İstek bir sekmeyle ilgili değilse -1 olarak ayarlayın.

      • timeStamp

        sayı

        Bu sinyalin tetiklendiği zaman (epoch'tan beri geçen milisaniye cinsinden).

      • İstenen kaynağın nasıl kullanılacağı.

      • url

        dize

  • filtrele
  • extraInfoSpec

    OnSendHeadersOptions[] isteğe bağlı