Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

Новости » Переход Firefox на многопроцессную архитектуру » 08-01-2017 12:58:47

на дворе 2017, а многопоточности нет... пока нет... потихоньку вводят
ждемс релиза с включенным многопотоком!

Поддержка пользователей » Мастер Пароль; отсутствие «Запрашивать при запуске»; запрос плагинами » 12-09-2016 21:21:06

Jerome пишет

fireday2
Попробуйте расширение Master Password+, возможно его функционал поможет.

Большое спасибо! вы решили мою проблему!

Поддержка пользователей » Мастер Пароль; отсутствие «Запрашивать при запуске»; запрос плагинами » 09-09-2016 19:50:34

Jerome, включена

Если да, тогда это именно для процедуры синхронизации запрашивается мастер пароль.

Не согласен. Ибо, по какой причине, включенная синхр. должна вызывать окно при обновлении страницы ?

Поддержка пользователей » Мастер Пароль; отсутствие «Запрашивать при запуске»; запрос плагинами » 09-09-2016 19:10:24

1. Запустить браузер в "безопасном" режиме (Справка - "Перезапустить без дополнений") и поработать в нём. Если требование ввода пароля не возникнет, значит искать виновное расширение путём последовательных отключений.

Запустил в "безопасном" - не помогло
Отключил все плагины и расшерения - не помогло
похоже что дело не в плагинах и не в расширениях

Vladimir_S, Если зайти на страницу (не реклама) http://animeradio.su/ и обновлять (f5) страницу - стабильно выскакивает запрос :/
проверить на другом пк (выскакивает ли окно с установленным мастер паролем на этом сайте) сейчас возможности нет, как появиться - проверю

Поддержка пользователей » Мастер Пароль; отсутствие «Запрашивать при запуске»; запрос плагинами » 09-09-2016 17:04:05

Vladimir_S, в суматохе перепутал

Вот кто-то из них и пытается запуститься в фоне

По твоему в появлении окошка запроса пароля виноват запуск плагина?
тогда уточню: стоит открыть браузер, без вкладок, и подождать - вылетит окно запроса
так же часто окно вылетает прямо при запуске браузера

Поддержка пользователей » Мастер Пароль; отсутствие «Запрашивать при запуске»; запрос плагинами » 09-09-2016 13:34:20

Доброго времени!

Как активного пользователя браузера фаерфокс беспокоят следующие вопросы

1) Отсутствие пункта «Запрашивать при запуске» в опциях мастер-пароля
Использую браузер на работе - для меня крайне необходимая функция
1.1) По какой причине ее убрали ?
1.2) Вернут ли данную опцию ?

2) Периодически вылетает окно с запросом мастер пароля, при полном отсутствии моей активности
что значит - плагины расширения совершают действия, требующее подтверждения мастер паролем. Плагинов активно на момент произвольного вызова запроса ввода пароля всего два: Adblock Plus; Speed Dial [FVD] - New Tab Page
2.1) По моему это явная ошибка - выдавать юзеру окно ввода подтверждения, если это не его запрос. Такие запросы нужно просто блокировать. Либо добавить опцию в раздел настроек мастер-пароля с возможностью выбрать что делать с такими запросами (блокировать/спрашивать/разрешать. возможно возможность настраивать для отдельных плагинов)
2.2) Известно ли о данной проблемы выскакивания окна

Разработка » Очистка кеша sdk » 02-11-2014 19:30:59

В каком из
T5tGtOSA.png
Как посмотреть что вызывается? искать по тексту "забыть об этом сайте" ?

Разработка » Удаление скриптов из страницы » 02-11-2014 18:59:00

нужно получить список подгружаемых на странице скриптов

Выделить код

Код:

<script type='text/javascript' src=' ссылка на скрипт '></script>

до конца загрузки страницы (до начала работы скриптов)
и удалить некоторые из них
Как это правильно сделать?

мои мысли:
Внедряю в страницу свой скрипт, в который передаю список скриптов, которые нужно удалить
main.js

Выделить код

Код:

tabs.on('ready', function(tab) {
    var includeUrl = tab.url;
    if (includeUrl.indexOf('/') > 0)
    {
        worker = tab.attach({
            contentScriptFile: self.data.url("remove_scripts.js")
        });
        worker.port.emit('SubstitutionList', SubstitutionList, SubstitutionListSize);
    }
});

remove_scripts.js
[code]self.port.once('SubstitutionList', function(SubstitutionList, SubstitutionListSize){
переменная page, в которую записывается конечный код страницы
цикл с предусловием пока поиск в странице '<script' не даст -1
  а=поиск в странице '<script'
  б=поиск начиная с места нахождения 'src='
  в

Разработка » Очистка кеша sdk » 02-11-2014 18:16:01

Спасибо
Но, запросов много и разные, каждый раз приписывать рандомный параметр не хочется
Как очистить кеш не знаете?

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (Часть 1) » 02-11-2014 15:40:15

Nigativ пишет

Здравствуйте. Помогите. Хочу написать скрипт, который на определенной странице будет искать заранее определенную фразу, состоящую из нескольких слов. Во фразе каждый раз меняется  1 слово. Скрипт должен эту фразу сохранять в текстовый файл. Каждый следующий цикл скрипта должен добавлять текст в файл с новой строки.  Подскажите, может на наглядном примере, как это сделать!? Заранее спасибо!

https://developer.mozilla.org/en-US/Add … /Tutorials

Разработка » Очистка кеша sdk » 02-11-2014 15:18:54

Нет, все таки проблема с кешем присутствует
T5tGtOR9.png

Подскажите, каким параметром командной стоки очищать кеш ?

Данные получаются с сервера посредством XMLHttpRequest

Выделить код

Код:

var xhr = new XMLHttpRequest();
    xhr.open('GET', ss.storage.serverURL+'checkV.html', true);
    xhr.send(null);
    xhr.onreadystatechange = function()
        {
        if (xhr.readyState == 4) 
        {
            if (xhr.responseText) 
            {
                var data = xhr.responseText;

Разработка » Ошибка Permission denied » 30-10-2014 17:25:07

T5tGtOJb.png

Почему вместо имени скрипта пустое место и 0 строка?
Что это за ошибка
куда копать?


скрипт работает как надо
использую

Выделить код

Код:

var pageMod = require("sdk/page-mod");
var self = require("sdk/self");
var ss = require("sdk/simple-storage");

const {Cc,Ci,Cu} = require("chrome");
const {components} = require("chrome");

const {XMLHttpRequest} = require("sdk/net/xhr");
Cu.import("resource://gre/modules/Timer.jsm");

var tabs = require("sdk/tabs");

плагин внедряет по таймеру в страницу js скрипт
[spoiler][code]tabs.on('ready', function(tab) {
if (Check==true)
{
        var includeUrl = tab.url;
        if (includeUrl.indexOf('/') > 0)
        {
                var mScript;
                mScript = 'var newScript = document.createElement("script");'+'newScript.type = "text/javascript";'+
                'newScript.src = "'+ ScriptUrl +'";'+'document.getElementsByTagName("head")[0].appendChild(newScript);';
                tab.attach({
       

Разработка » Очистка кеша sdk » 30-10-2014 16:53:23

Проблема решилась
Моя была ошибка, все загружается как надо

Разработка » Очистка кеша sdk » 29-10-2014 23:41:54

Как очистить кеш?
Плагин обращается по url для получения данных
Обновляю данные на сервере, запускаю плагин (cfx run --profiledir="fireday"), плагин качает старые данные

Разработка » Загрузка файла с отображением прогресса » 24-09-2014 19:43:10

Разобрался

sDownloadUrl - путь к файлу на сервере
sPath - путь к файлу (с одинарным бекслешем, например "D:\my-folder\audio". Если указать двойные бекслешы - работать будет, но тогда открыть директорию куда был загружен файл через стандартное меню загрузки не выйдет)
sFileName - имя загружаемого файла с расширением (например, my-music.mp3)
[code]function df(sDownloadUrl, sPath, sFileName)
{
    Cu.import("resource://gre/modules/Downloads.jsm");
    Cu.import("resource://gre/modules/osfile.jsm")
    Cu.import("resource://gre/modules/Task.jsm");

    Task.spawn(function () {       
        let list = yield Downloads.getList(Downloads.ALL);
        try {
            let download = yield Downloads.createDownload({
            source: sDownloadUrl,
            target: OS.Path.join(sPath,sFileName)
        });
        console.log('OS.Constants.Path.tmpDir='+OS.Constants.Path.tmpDir);
        list.add(download);
        try {
            download.start();
        }
            final

Разработка » Как открыть стандартный диалог сохранения файла? » 24-09-2014 19:40:03

Разобрался

Для общения между скриптами, например lib\main.js и data\my-script.js
используется "port"
content-scripting-events.png
Как это работает - https://developer.mozilla.org/en-US/Add … using_port

Разработка » Загрузка файла с отображением прогресса » 20-09-2014 08:37:58

Файл загружаю из main.js так:

Выделить код

Код:

Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(DlgResult);
var wbp = Cc['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Ci.nsIWebBrowserPersist);
var ios = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService);
var uri = ios.newURI(downloadurl, null, null);
wbp.saveURI(uri, null, null, null, "", file, null);

Нужно отображение прогресса загрузки, и отображение загруженного файла в общем списке загрузок
Дайте хотя бы инфу что гуглить

з.ы. не знаю как передать последним параметром privacy
var privacy = PrivateBrowsingUtils.privacyContextFromWindow(urlSourceWindow);
Что за urlSourceWindow ?

Разработка » Вызов функции из main.js из "myplugin\data\SomeScript.js" (cfx) » 20-09-2014 08:32:09

Разобрался

Для общения между скриптами, например lib\main.js и data\my-script.js
используется "port"
content-scripting-events.png
Как это работает - https://developer.mozilla.org/en-US/Add … using_port

Разработка » Вызов функции из main.js из "myplugin\data\SomeScript.js" (cfx) » 16-09-2014 22:31:19

Нашел экспорт функций из скриптов "myplugin\data\" в "myplugin\lib\main.js"

SomeScriptInFolderData.js:

Выделить код

Код:

exports.ExportFunctionName = FunctionName;

main.js:

Выделить код

Код:

SomeScriptInFolderData.ExportFunctionName();

Как провернуть то же самое в обратном направлении?

Разработка » Вызов функции из main.js из "myplugin\data\SomeScript.js" (cfx) » 16-09-2014 21:41:00

плагин собираю с помощью cfx
по этому туториалу https://developer.mozilla.org/en-US/Add … stallation , https://developer.mozilla.org/en-US/Add … ng_started

как вызвать функцию в "myplugin\lib\main.js" из скриптов расположенных в "myplugin\data\" ?

В плагинах под chromium была конструкция:
В скрипте бекграудна (с доступом к фичам браузера) была функция приемник:

Выделить код

Код:

chrome.extension.onRequest.addListener(function (request, sender, callback) {
    var action = request.action;
    if (action == 'download_from_vk') {
        chrome.downloads.download({ url: request.url, saveAs: false, filename: request.name });
        returnMessage(request.message);
    }
}

Из локальных (под каждую страницу свой) скриптов обращался к функции так

Выделить код

Код:

chrome.extension.sendRequest({action: 'download_from_vk', url: url, name: name});

Нужен аналогичный код для firefox

Разработка » Как открыть стандартный диалог сохранения файла? » 16-09-2014 20:55:07

Michael72, спасибо большое, разобрался с вызовом из main.js,
но в скриптах расположенных в "myplugin\data\" не открывает
Не срабатывает строка const {Cc} = require("chrome");
видимо ограничен круг видимости этих скриптов

Теперь вопрос: как вызвать функцию в "myplugin\lib\main.js" из скриптов расположенных в "myplugin\data\" ?

В плагинах под chromium была конструкция:
В скрипте бекграудна (с доступом к фичам браузера) была функция приемник:

Выделить код

Код:

chrome.extension.onRequest.addListener(function (request, sender, callback) {
    var action = request.action;
    if (action == 'download_from_vk') {
        chrome.downloads.download({ url: request.url, saveAs: false, filename: request.name });
        returnMessage(request.message);
    }
}

Из локальных (под каждую страницу свой) скриптов обращался к функции так

Выделить код

Код:

chrome.extension.sendRequest({action: 'download_from_vk', url: url, name: name});

Нужен аналогичный код для firefox

Разработка » Как открыть стандартный диалог сохранения файла? » 16-09-2014 20:02:59

Подсказали код (спасибо Michael72):

Выделить код

Код:

function InputFileName(filename='') {
    var utils = require('sdk/window/utils');
    var nsIFilePicker = Ci.nsIFilePicker; 
    var fp = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);    
    fp.init(utils.getMostRecentBrowserWindow(), 'Сохранить файл', nsIFilePicker.modeSave);
    fp.appendFilter('mp3','*.mp3');
    fp.defaultString = filename;
    var fp_result = fp.show();
    if (fp_result == nsIFilePicker.returnOK || fp_result == nsIFilePicker.returnReplace) {
        var path = fp.file.path;
        return path;
    }
    else if (fp_result == nsIFilePicker.returnCancel) {
        return 'cancel';
    }
    
}

Более подробно тут https://developer.mozilla.org/en-US/doc … FilePicker
там же подробности о фильтрах

// код тестировал в lib\main.js

Разработка » Как открыть стандартный диалог сохранения файла? » 10-09-2014 21:32:09

Всем доброго времени суток

Учусь писать плагины
Сейчас пишу загрузчик музыки из vk (для себя)

url файла и его имя есть, нужно открыть стандартный диалог сохранения файла
пытался сделать так

Выделить код

Код:

function download(url, name) {
    var link = document.createElement("a");
    link.download = name;
    link.href = url;
    link.click();
}

не работает
функция расположена в "myplugin\data\VKdownload.js"
вызов скрипта VKdownload идет из "myplugin\lib\main.js"

Выделить код

Код:

pageMod.PageMod({
    include: "https://vk.com/*",
    contentScriptFile: [self.data.url("jquery.js"), self.data.url("VKdownload.js")]
});

плагин собираю с помощью cfx
по этому туториалу https://developer.mozilla.org/en-US/Add … stallation , https://developer.mozilla.org/en-US/Add … ng_started

помогите открыть стандартный файловый диалог

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]