All streams
Search
Write a publication
Pull to refresh
26
0
Send message
Ассоциативно:
– Доктор, но отрезая мне ногу, вы говорили, что спасаете от гангрены!
– Да, ногу еще можно спасти, а в остальном теле гангрена.
© какой-то выпуск «Городка»
Наверное, даже не проблема, а особенность: все расширения Firefox для построения интерфейса используют XUL, а в Chrome используют HTML.
Не обязательно:
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
	xmlns:html="http://www.w3.org/1999/xhtml">
	...
	<html:div id="sc_drag_area_protector">
		...
	</html:div>
	...
</overlay>
Или так:
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	...
	<div xmlns="http://www.w3.org/1999/xhtml" id="sc_drag_area_protector">
		...
	</div>
	...
</overlay>

Другое дело, что лучше делать единообразно с другими элементами интерфейса, а XUL как раз для этого и предназначен. Те же кнопки ОК/Отмена я бы сделал стандартными кнопками – как минимум, они без дополнительных усилий доступны с клавиатуры.

А вот
Object.defineProperty(window, "localStorage", ...
не стоит делать вообще никогда – все это попадет в глобальную область видимости.
Старая консоль пока что на месте (во всяком случае, на свежей 29.0a1): chrome://global/content/console.xul
Можно включить devtools.errorconsole.enabled = true в about:config, тогда появится соответствующий пункт в меню про веб-разработку.
Ну, и можно Console² поставить.
Или чем-нибудь вроде Custom Buttons (обновленная версия доступна по ссылке «Показать всю историю версий») запускать нечто вроде вот этого:
var win = Services.wm.getMostRecentWindow("global:console");
if(win)
	win.focus();
else
	window.openDialog("chrome://global/content/console.xul", "_blank", "chrome,all,dialog=0");
Такая опция есть в расширении FindBar Tweak:
General – [ ] Findbar starts closed in new tabs
Названо как-то не про это, но, вроде, если снять галочку, ведет себя именно «как раньше».
а вот у Qiang Xue, архитектора Yii, наверное, рекорд
Longest Streak: 177 days
:)

Я бы, впрочем, предпочел видеть данные по неделям. То есть не за последние 7 дней, а вот прямо по неделям, чтобы с чистой совестью валять пень отдыхать в выходные.
На требование сделать «как на картинке» очень хочется эту картинку и вывести. :)
Если создать новый профиль и выполнить в консоли ошибок
top.opener.Services.prefs.getBranch("").getChildList("").length
, у меня в Firefox 22.0 пишет 2003.
Прямо все 2 тысячи в advanced пихать (и передавать пламенный привет переводчикам)? :)

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

Другое дело, что я не люблю, когда сначала удаляют, а потом думают понимают, что это было нужно веб-разработчиками или еще кому. Так что конкретно настройки JavaScript я бы перенес в отдельный раздел с соответствующим предупреждением.
Вот сейчас на свежем Firefox 25.0a1 настроек про скрипты и загрузку изображений уже нет, а в Developer Tools появилась только галочка про скрипты.

P.S. Опять я слишком долго ответ сочинял. :)
Ну, а вот так уже все в порядке:
function F(i) {
	this.i = i;
}
F.prototype = {
	get lazy() {
		var value = "Lazy: " + this.i;
		Object.defineProperty(this, "lazy", {
			value: value,
			writable: true,
			enumerable: true
		});
		return value;
	}
};
var f1 = new F(1);
var f2 = new F(2);
alert(f1.lazy + "\n" + f2.lazy);
f1.i = f2.i = 3;
alert(f1.lazy + "\n" + f2.lazy);
Геттер так не удаляется. А если бы и удалился – это сломало бы прототип (и все будущие и еще не инициализированные экземпляры).
function F(i) {
	this.i = i;
}
F.prototype = {
	get lazy() {
		delete this.lazy;
		return this.lazy = "Lazy: " + this.i;
	}
};
var f1 = new F(1);
var f2 = new F(2);
alert(f1.lazy + "\n" + f2.lazy); // 1 и 2
f1.i = f2.i = 3;
alert(f1.lazy + "\n" + f2.lazy); // 3 и 3


А еще в Firefox 3.6 и более старых выдавало ошибку
setting a property that has only a getter
:)
Мне больше вот так нравится:
var obj = {
	get lazy() {
		delete this.lazy;
		return this.lazy = "Лениво инициализированное свойство " + this.name;
	},
	//set lazy(value) {
	//	delete this.lazy;
	//	return this.lazy = value;
	//},
	name: "БезИмени"
};

(лично мне set ни разу не был нужен)
Но, к сожалению, такое нельзя использовать в прототипах.
Дело вкуса и привычек, конечно, но у меня эти ленты ассоциируются с ящиками стола: вроде, и разложено аккуратно все, и найти нужное обычно не проблема, да только одно «но» – почему-то нельзя разложить все нужные инструменты на столе, так и лезешь то в верхний ящик, то в нижний. А если не повезло, и логика разработчиков оказалась чуть другой – то и во все ящики подряд.
По-моему, это называется «скажите спасибо, что ribbon не вкрутили». :)
В Firefox можно включить browser.ctrlTab.previews = true в about:config.
Изменится, правда, не только порядок переключения. :)
Причем переключение в порядке расположения останется по Ctrl+PageUp/PageDown.
Это все слова. А мне хотелось проверить, кто же действительно был первым.
Four years later, in 1994, BookLink Technologies featured tabbed windows in its InternetWorks browser.
Это по уже упомянутой ссылке. А теперь открываем en.wikipedia.org/wiki/Opera_browser
Initial release late 1994
Там сразу был MDI?
А, вижу, что да. Но все равно остается неопределенность.
В той статье интереснее другое:
and Opera in 2000 (with the release of version 4 — although a MDI interface was supported before then)
Не понятно, насколько before и насколько этот их MDI был похож на вкладчатый TDI. У меня, к сожалению, во времена тех старых версий никаких интернетов не было и в помине.
Это именно они придумали вкладки
Хм, https://en.wikipedia.org/wiki/Tab_(GUI)#History.
Количества скачиваний так не будет, к сожалению.
Упс, меня опередили.
Чем-то похоже на XBL.
Глобальные стили, правда, там не отключить – можно только добавить «местные».
Жаль, в веб оно так и не пошло, а потом – так и вообще отключили по умолчанию вместе с remote XUL.

Information

Rating
Does not participate
Registered
Activity