Pertanyaan Firefox WebExtensions: tidak dapat membatalkan permintaan data


Saat bermain dengan Firefox WebExtensions, saya telah membuat pengaya sederhana yang membatalkan permintaan POST tertentu dan membaca paramsnya:

manifest.json

{
  "description": "Canceled webRequests data",
  "manifest_version": 2,
  "name": "webRequest-demo",
  "version": "1.0",

  "permissions": [
    "webRequest",
    "webRequestBlocking",
    "http://kamil.hism.ru/pocs/*"
  ],

  "background": {
    "scripts": ["background.js"]
  }
}

background.js

var pattern = "http://kamil.hism.ru/pocs/simple_form_action";

function cancel(requestDetails) {
  console.log("Canceling: " + requestDetails.url);
  console.log(requestDetails.requestBody.formData.some_field)
  // debugger
  return { cancel: true };
}

browser.webRequest.onBeforeRequest.addListener(
  cancel,
  { urls:[pattern] },
  ["requestBody", "blocking"]
);

Halaman target dengan form ada di sini: http://kamil.hism.ru/pocs/simple_form.html

requestDetails mengandung requestBody yang seharusnya mengandung formData objek dengan semua data yang dilewati. Di Chrome, ini berfungsi dengan baik, tetapi di Firefox requestBody hanya berisi raw array dengan objek ArrayBuffer. Saya sudah mencoba mengubahnya menjadi string menggunakan String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0]));, tetapi mengembalikan string kosong.

Jadi, pertanyaannya adalah: apakah ada yang tahu cara mengatasi masalah itu dan mendapatkan semua data dari permintaan dibatalkan menggunakan add-on Firefox WebExtension? Mungkin itu beberapa bug dalam implementasi Mozilla WebExtensions?


5
2018-01-07 14:25


asal


Jawaban:


Dengan membantu komunitas Mozilla ternyata ini sebenarnya bug di Firefox WebExtensions. Meskipun saya tidak dapat menemukan catatan rilis yang tepat atau bug di bugzilla yang terkait dengannya, Firefox Nightly build (53.0a) tidak memiliki masalah ini:

enter image description here 

Semoga segera perubahan dari Nightly akan digabung menjadi saluran Rilis.


1
2018-01-10 15:19