条件に従ってコンテキストメニューを表示したい

拡張機能の開発に関するフォーラムです。

モデレータ: Forum Moderators

mitsugu
記事: 138
登録日時: 2007年1月14日(日) 14:24
お住まい: Osaka,Japan
連絡する:

条件に従ってコンテキストメニューを表示したい

投稿記事 by mitsugu »

 WebExtensions 対応の拡張を書いています。

 特定のウインドウ上 ( popup/main.html ) でのみコンテキストメニューの項目を表示したいため以下のようなコードを background script に書いたところ、コンテキストメニューが表示されません。Google Chrome では問題なく表示されています。どのようにすれば該当ウインドウ上 ( popup/main.html ) でのみコンテキストメニューを表示できるでしょうか

 なお、コンソールに次の気になるエラーメッセージが出ています ( Google Chrome ではでません ) 。

コード: 全て選択

Invalid match pattern: 'moz-extension://08fa658a-09e0-4911-b8e7-63815bf9f8c3/popup/main.html' MatchPattern.jsm:52

コード: 全て選択

  browser.windows.getCurrent({populate: true},function(win){
    windowId=win.id;
    createContextMenu();
  });

  function createContextMenu(){
    var parentId= browser.contextMenus.create({
      "title":"Hütte Nippon 2",
      "type":"normal",
      "contexts":["all"],
      "documentUrlPatterns":[browser.extension.getURL("popup/main.html")]
    });
        [略]
  });
 なお

コード: 全て選択

  function createContextMenu(){
    var parentId= browser.contextMenus.create({
      "title":"Hütte Nippon 2",
      "type":"normal",
      "contexts":["all"]
    });
とすれば常時コンテキストメニューが表示されますので困ります。

OS は Ubuntu MATE 16.04
ブラウザは Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
ビルド ID は Build ID 20170102004004
mitsugu
記事: 138
登録日時: 2007年1月14日(日) 14:24
お住まい: Osaka,Japan
連絡する:

Re: 条件に従ってコンテキストメニューを表示したい

投稿記事 by mitsugu »

 Bug1271354 - Support moz-extension: urls in MatchPattern として登録されてました。Google Chrome と同仕様にするようです。

 https://bugzilla.mozilla.org/show_bug.cgi?id=1271354
返信する