2013-07-24 3 views
5

例としては、内線番号overrides the newtab pageがあり、ユーザーがnewtabページも上書きする別の内線番号をインストールするとします。現在のところ、newtabという拡張子が1つしか表示されず、通常は私のものではありません。別のChrome拡張機能が同じページを上書きするタイミングを検出する方法

このような競合が発生したことを検出してユーザーに通知するには、どうすればよいですか?

management APIは、拡張機能によってページが上書きされるかどうかはわかりません。そのため、私は残念ながらそれを使用できません。

答えて

4

これはAPIの本来の機能ではないようです。 http://crbug.comでバグを開くことをお勧めします。

あなたは(私がテストしていない)、次の厄介なハックを行うことができ、それに失敗:

  1. は、あなたの新しいタブページを持っている、それはロードするたびに、あなたの背景ページにメッセージを送信します。 webNavigationは、ブラウザの負荷chrome://newtabを見ていますが、その後まもなく、あなたの背景ページにメッセージが表示されない場合は、新しいタブページは、おそらくです

    chrome.webNavigation.onBeforeNavigate.addListener(function(details) { 
        /* send message */ 
    }, { url: [{ urlEquals: 'chrome://newtab/' }] }); 
    
  2. chrome://newtabに対処chrome.webNavigation.onBeforeNavigateイベントをリッスン使用されていません。そこから、通知を送信するか、通知付きの別のタブ/ウィンドウを開くことができます。

残念ながら、これはあなたの拡張機能がそうでなければ、それを必要としない場合は残念ですwebNavigation許可が必要です。それが実行する警告(「この拡張機能はあなたのタブと閲覧活動にアクセスできます」)は、潜在的なユーザーを怖がらせる可能性があります。あなたの拡張機能が現在tabs APIを使用している場合は、すでにこの通知が送信されています。

+2

['chrome.webNavigation'](https://developer.chrome.com/extensions/webNavigation.html)APIは' tabs' APIよりも適しています。このAPIを使用すると、フィルタを宣言できます(例: {chrome:// newtab/'}}}); 'chrome.webNavigation.onBeforeNavigate.addListener(function(details){/ *何か* /} –

関連する問題