Chrome extensionsによるjsの無効化のバグ

windows10/Brave 1.76.74 Chromium: 134.0.6998.89

chrome.contentSettings.javascript.set({
prinamaryPattern: “https://brave.com/*”, // any
value: “block”
});

  1. このコードは、primaryPatternにマッチしたサイトのjsを無効にします。
  2. コードを実行 & primaryPatternにマッチするサイト(この場合 https://brave.com)のShildsをOffにする。
  3. ShieldsはOffになるが、chrome extensionsによって、サイトのjsを無効にしたはずが、有効になってしまう(jsがリクエストされる)。

このバグを至急改善して欲しいです。

@anpanchi こんにちは。

担当部署に調査依頼するにあたって以下の情報をご提供いただけますでしょうか。

  • 再現操作手順
  • 実際の操作結果
  • 想定していた操作結果
  • 再現頻度
  • エビデンス的なもの(スクリーンショット)など

以上、よろしくお願いいたします。

再現操作手順

  1. フォルダの作成: フォルダ名: test
  2. test配下に2つのファイルを作成する
    ファイル名: manifest.json
    テキスト:
    {
    “name”: “test”,
    “manifest_version”: 3,
    “version”: “0”,
    “permissions”: [
    “contentSettings”
    ],
    “background”: {
    “service_worker”: “bg.js”
    }
    }

ファイル名: bg.js
// 前回の質問のコードに不備があるため、訂正します
テキスト:
chrome.contentSettings.javascript.set({
primaryPattern: “https://brave.com/*”,
setting: “block”
});

  1. brave://extensions/ からデベロッパーモードを有効にする。
  2. パッケージ化されいない拡張機能を読み込むをクリックし、1で作成したフォルダを選択する。
  3. 新しいタブを開いて、F12で開発者ツール起動後,Networkをクリックする。
  4. https://brave.comにアクセスする
  5. 開発者ツールのNetworkを見たとき、拡張機能によってjavascriptが無効化されているため、.jsファイルにリクエストがされないことを確認してください。この動作はアドレスバーのBrave Shieldsが有効であることが条件です。これは正常な動作であり問題ありません。

  1. brave.comを開いている状態で、アドレスバーの最も右にあるBrave Shieldsから"次のサイトでシールドオン"をオフにする。
  2. 開発者ツールを起動してある状態で、F5で再度brave.comにアクセスする。
  3. 開発者ツールのNetworkを見たとき、拡張機能によってjavascriptが無効にされているはずが、.jsファイルにリクエストしてため、正常な動作ではありません。期待する動作は.jsファイルにリクエストしません。

補足:
アドレスバーの最も左にあるボタンから、拡張機能によるjsが有効かどうか確認できます。primaryPatternはhttps://brave.com/* としましたが、ここは、有効なURLPatternなら何でも構いません。またsettingの値は"block"から"allow”にして、拡張機能を再読み込みすれば、javascriptを有効にすることができます

@anpanchi こんにちは。

詳細を追記いただき、まことにありがとうございます。まず、このスクリプト自体はBraveでも動作しますが、Braveにおいては Shieldsの設定をカスタマイズするスクリプトとして動作します。

  1. Brave Shieldsはデフォルトではスクリプトブロックは無効です。
  2. ご提示の拡張機能が無効のままbrave.comにアクセスをした際に、スクリプトブロックが無効になっていることを確認します。
  3. 拡張機能を有効にします。
  4. 再度brave.comをリロードすると設定変更はしていないにも関わらず、スクリプトブロックが有効になっていることが確認できます。この設定変更が、スクリプトによって制御されたものになります。
  5. スクリプトはあくまでもShieldsの設定の制御として機能しているため、Shieldsを無効にするとスクリプトブロック自体も無効になります。
  6. Shields有効の状態で拡張機能を無効にすると、スクリプトブロックは無効の状態に戻ります。

参考までに、Shieldsとは別に拡張機能によってスクリプトブロックを行う必要がある理由があれば教えていただけますでしょうか。ユーザーフィードバックとして担当部署に共有させていただきます。