2

Я уже сделал несколько дополнений для Firefox и расширений для Chrome, но теперь у меня была сумасшедшая идея и Я хотел бы узнать, могу ли я отключить компоненты Firefox/Chrome из аддона/расширения.Могу ли я отключить компоненты Firefox/Chrome из аддона/расширения?

Когда я говорю отключить компоненты, я имею в виду что-то вроде (в основном FF примеры):

  • Firefox Привет
  • карманный (Firefox теперь имеет интеграцию по умолчанию с карманом)
  • История
  • Избранное
  • Другие установленные расширения
  • Ресурсы, такие как «Печать» и «Инструменты для разработчиков»
  • Etc.

Я искал весь Firefox Addon Developer Hub, и я не нашел, если я могу сделать что-то подобное. Если вы знаете ответ, как я могу это сделать или почему я не могу?

Вам не нужно описывать, почему это (или нет), и как я могу это достичь, но в этом случае предоставляют полезные и интересные ссылки.

+0

Что такое «настоящая» цель? Как пользователь, так и разработчик, я был бы довольно прав, если бы расширение отключило мою печать, инструменты для разработчиков, историю, закладки и т. Д., Если не для достойной причины, которая явно подчеркнута. Я ожидал бы потока в подавляющем большинстве негативные отзывы к вашему продлению. – scunliffe

ответ

1

Из Firefox очень легко отключить другие вещи.

Это, например, отключает аддон по идентификатору:

//this checks to see if AdBlock Plus is enabled 
AddonManager.getAddonsByIDs(["{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}"], function ([aAddon1]) { 
    console.log(aAddon1); 
    var isAddonEnabled = aAddon1.isActive; 
    alert('AdBlock plus enabled = ' + isAddonEnabled) 
    //for other properties see here: https://developer.mozilla.org/en-US/Add-ons/Add-on_Manager/Addon#Required_properties 
}); 

Компоненты сделали немного по-другому, вы должны использовать nsICategoryManager, это отключает считыватель по умолчанию PDF:

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsICategoryManager#Remarks

var CONTENT_TYPE = 'application/pdf'; 

// Update the category manager in case the plugins are already loaded. 
let categoryManager = Cc['@mozilla.org/categorymanager;1']; 
categoryManager.getService(Ci.nsICategoryManager).deleteCategoryEntry('Gecko-Content-Viewers', CONTENT_TYPE, false); 

// Update pref manager to prevent plugins from loading in future 
var stringTypes = ''; 
var types = []; 

var PREF_DISABLED_PLUGIN_TYPES = 'plugin.disable_full_page_plugin_for_types'; 
if (Services.prefs.prefHasUserValue(PREF_DISABLED_PLUGIN_TYPES)) { 
    stringTypes = Services.prefs.getCharPref(PREF_DISABLED_PLUGIN_TYPES); 
} 
if (stringTypes !== '') { 
    types = stringTypes.split(','); 
} 

if (types.indexOf(CONTENT_TYPE) === -1) { 
    types.push(CONTENT_TYPE); 
} 
Services.prefs.setCharPref(PREF_DISABLED_PLUGIN_TYPES, types.join(',')); 
+0

У вас есть ссылка на общую документацию об отключении компонентов Firefox? Я имею в виду, кажется, что вы дали очень конкретный, нет? Можете ли вы дать мне пример того, как я могу отключить Историю или Избранное, например? Хорошо документированные ссылки также очень приветствуются, если у вас нет времени, чтобы дать полный ответ. Большое вам спасибо за быстрый ответ, но мне нужно спать сейчас (завтрашние экзамены):/ – Paladini

+1

Удачи вам на экзаменах @FernandoPaladini, эти примеры специфичны, но страницы, которые я связал, чтобы поговорить об общем использовании. :) первая ссылка в комментарии в коде :) – Noitidart

+1

Первая ссылка может использоваться для повторения и просмотра всех установленных аддонов, и вы можете отключить ее. Вторая ссылка для плагинов показывает, как вы можете отключить что-либо на основе contentType. Затем, если вы хотите не отключить contentType. Изучение этих ссылок должно показать вам, как получить список плагинов тоже :) Если вы не можете сообщить мне, и мы будем работать над этим – Noitidart

-3

Я думаю, что для этого уже существует специальный параметр настроек браузера, поэтому расширение не принесет пользы.

+0

Это, конечно, не очень хороший ответ. К сожалению:/ – Paladini