質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

Q&A

2回答

499閲覧

Chrome 履歴を削除する拡張機能の作り方

hopstepjump1234

総合スコア0

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

0グッド

2クリップ

投稿2024/02/08 05:21

編集2024/02/08 05:36

実現したいこと

chromeの履歴を削除する拡張機能を作りたいです。https://developer.chrome.com/docs/extensions/reference/api/browsingData?hl=ja
を参考にして、確かに履歴やcokkieを削除する拡張機能のスクリプトを作ることができました。

background.js

1chrome.action.onClicked.addListener(function () { 2 chrome.browsingData.remove({ 3 since: 0 4 }, { 5 appcache: true, 6 cache: true, 7 cacheStorage: true, 8 cookies: true, 9 downloads: true, 10 fileSystems: true, 11 formData: true, 12 history: true, 13 indexedDB: true, 14 localStorage: true, 15 passwords: false, 16 serviceWorkers: true, 17 webSQL: true 18 }); 19 chrome.windows.getAll(function (windows) { 20 for (let i = 0; i < windows.length; i++) { 21 chrome.windows.remove(windows[i].id); 22 } 23 }); 24});

しかしながら、サイトの通知を許可したり、サイトのカメラへのアクセス権限は残ったままでした。chromeのapiをいろいろしらべてみましたが、該当するものが見当たりません。
しかしながら、chromeの履歴を削除するときに、これらがリセットされるので、どこかからはこれらを削除することができるはずだと思います。
どのようにすればこれらをスクリプトで削除できるようになるのか教えていただきたいです。

発生している問題・分からないこと

上記のスクリプトでは
chrome://settings/content/all
の通知の設定などを削除できない。
別の方法として、chrome://settings/clearBrowserDataからclearBrowsingDataConfirmというidのボタンをクリックする方法を考えたが、なぜかそのようなbuttonは見つからないとなる。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

chromeのapiの一覧を見たが、サイトの権限に関するものがどれかわからなかった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

chrome.browsingDataAPIを利用します。
Chromium、Firefoxどちらでも互換性があります。
https://developer.chrome.com/docs/extensions/reference/api/browsingData?hl=ja
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData

PS.
下の回答者は見るからにAIコピペの間違った回答をしていて何がしたいんだか...笑

追記

申し訳ありません。下の人のAIコピペ回答にイラっときてしまい質問文を最後まで読まずに回答してしまいました。
特定の権限の許可・拒否を拡張機能側で決定したい場合はchrome.contentSettings.権限名.set()メソッドを利用できます。
ただしこちらの場合、ユーザーが設定した許可設定を直接変更するものではないため、質問者さんの意図するものとは少し異なります。またFirefoxでは「chrome.contentSettings」はサポートされていません。

質問者さんが意図することを実行したい場合、私の知る限り、現在はJavascript側だけでは利用できるAPIはないため、少々強引な方法を利用する必要があります。
chrome.runtime.connectNative()メソッドを利用すればChrome拡張からネイティブアプリケーションを呼び出すことができますので、呼び出されたアプリケーション側でブラウザのユーザープロファイルを編集すれば質問者さんが実現したいことが達成できるかと思います。
サイトの許可設定はブラウザプロファイル内の次のファイルに格納されています。

  • Chromium
/path/to/profile/Preferences
  • Firefox
/path/to/profile/permissions.sqlite

まとめると少々面倒ですが、まずブラウザプロファイルを直接書き換えるネイティブアプリケーションを作成し、chrome.runtime.connectNative()を利用してそれを拡張機能側から呼び出すといった形で実現できるかと思います。

投稿2024/09/13 13:39

編集2024/09/14 03:28
FoxRefire

総合スコア146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2024/09/14 01:10

横からすみません。質問者ではないのですがわからなかったので教えてください。 chrome.browsingData のどのメソッドで『サイトの通知を許可したり、サイトのカメラへのアクセス権限』を削除することができますか? permission などの言葉でページ内検索をしてみたのですが、見当たらず……
FoxRefire

2024/09/14 03:28

申し訳ありません。下の人のAIコピペ回答にイラっときてしまい質問文を最後まで読まずに回答してしまいました。 回答を追記しましたのでご確認ください。
Lhankor_Mhy

2024/09/14 03:37

ご対応ありがとうございます! なるほど、公開する機能拡張ではなかなか難しい、というかできないと考えた方がいいのですね。
guest

0

間違っていたらすみません。
Chrome拡張機能を使用して履歴を削除する場合、その他のデータ(通知の許可、カメラへのアクセス権限など)をリセットするための直接的なAPIは存在しません。通知の許可やカメラへのアクセス権限は、ブラウザがサイトごとに管理しているため、拡張機能から直接削除することはできません。

通知の許可やカメラへのアクセス権限など、ユーザーの設定に関する情報はChromeの「Content Settings」に保存されています。これらの設定をリセットするためには、Chromeの設定ページにアクセスし、該当するサイトの設定を手動でリセットする必要があります。

しかし、拡張機能がユーザーのプライバシーを尊重するために、通知の許可やカメラへのアクセス権限などの情報にアクセスし、それらを削除することはできません。ユーザーの設定や許可を拡張機能が勝手に変更することは適切ではないためです。

ユーザーがプライバシーに関する設定を変更したい場合、ユーザーが自分で設定を管理し、必要に応じて変更することが重要です。

投稿2024/02/08 06:07

shoshinsha123

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hopstepjump1234

2024/02/08 06:28

なるほどですね、そのようなapiは存在しないのですね。 しかしながら、手動で削除するのも非常に面倒な作業なのですが、何か他に方法はないでしょうか? pyautoguiなどで自動化してもよいですが、できればブラウザ内で完結したいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問