2016-04-08 17 views
1

Yeni yer imleri eklemesi gereken bir Firefox Eklentisi yazıyorum. Mozilla Firefox tarayıcısında mevcut olan bazı işlevleri kullanıyorum. Anladığım kadarıyla, Firefox tarayıcısı XUL ile yazılmıştır ve kod açık kaynaklıdır. Belirli bir eylemi gerçekleştiren kodu nasıl bulabilirim, bu durumda "Bu bağlantıya yer işareti ekle" bağlam menüsünü tıklattığımda "Yeni Yer İşareti" penceresi açılır, bu pencereyi açan kodu nasıl bulabilirim?"Yeni yer imi ekle" penceresini açan Firefox kodunu nasıl bulabilirim?

Teşekkür ederiz!

cevap

2

Bkz. Viewing and searching Mozilla source code online - Şu anda Mozilla'nın kodunda arama yapmak için iki çevrimiçi araç var: DXR ve MXR. Eski, daha yeni ve daha gelişmiş, ikincisi daha basit ve daha olgun. Kullanılması Bunlardan herhangi:

aradığınız etiket için
  1. Arama: "Bookmark this link"
  2. insan tarafından okunabilir etikete bir iç adını eşleyen bir yerelleştirme dosyası (genellikle .dtd veya .properties), bul, içinde Bu durumda: browser/locales/en-US/chrome/browser/browser.dtd: iç adı için

    ENTITY bookmarkThisLinkCmd.label  "Bookmark This Link"> 
    
  3. Search bulundu: bookmarkThisLinkCmd.label

  4. Kullanıcı arabiriminde görüntülenen kodu, genellikle .xul veya .js*, bu durumda browser/base/content/browser-context.inc - önişlemci aracılığıyla bir dizi XUL dosyasına dahil edilen bir dosya. (DXR ayrıca obj-x86_64-pc-linux-gnu altında size sonuçların bir demet gösterdiğine dikkat edin - bunlar inşa sırasında oluşturulan sonuçlar ve orijinal kaynak kodu vardır ve genellikle göz ardı edilmelidir.)

    <menuitem id="context-bookmarklink" 
         label="&bookmarkThisLinkCmd.label;" 
         accesskey="&bookmarkThisLinkCmd.accesskey;" 
         oncommand="gContextMenu.bookmarkLink();"/> 
    
  5. gContextMenu tanımını bulun: browser/base/content/nsContextMenu.js#1690

0123: - regexp:gContextMenu[^A-Za-z.] hepsi Nihayet .bookmarkLink tanımını bulmak
gContextMenu = new nsContextMenu(this, event.shiftKey); 
  • yapıyor, hit bir demet var
  • +0

    Çok teşekkürler, Nickolay! Bu harika bir cevap. Kendi başıma tanımlamak bana yaşları getirirdi. – GreenBear