Расширение Firefox dev: соблюдение настроек, избегание множественных уведомлений - PullRequest
2 голосов
/ 10 мая 2010

Допустим, у моего расширения Firefox есть несколько предпочтений, но некоторые из них сгруппированы, например, интервал проверки, интервал повторных попыток, URL назначения. Они используются только в одной функции.

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

Я хочу, чтобы observe вызывался только один раз для группы предпочтений. Say

extensions.myextension.interval1
extensions.myextension.site
extensions.myextension.retry

, поэтому, если один или все эти параметры изменены, я получу только 1 уведомление об этом. Другими словами, независимо от того, сколько предпочтений изменилось в ветви, я хочу, чтобы обратный вызов observe был вызван один раз.

1 Ответ

0 голосов
/ 10 мая 2010

Когда вы регистрируете привилегированного наблюдателя на ветке (в вашем случае extensions.myextension), он будет уведомлять вас о каждом изменении предпочтений. Нет способа заставить вас рассказать вам об изменениях в ветке только один раз. Когда вызывается ваш метод наблюдения, вы получаете имя изменяемого предпочтения (это третий параметр). Вы должны будете отфильтровать ваши обратные вызовы на основе этого.

...