LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

Скорее всего Firefox делает так:

Firefox:     > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/10870202/, свободен?
Firefox:     > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/")
Gecko:       > Firefox, хорошо. Запрос принял, начинаю обработку...
Gecko:       > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем!
Gecko:       > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif».
Gecko:       > call NS_System->getFontInfo(«Sans-serif»)
System:      > Font-Name is: MS Serif Font; 
System:      > Font-type: Windows Bitmap Fonts;
Gecko:       > Битмапный шрифт? Странно.
Gecko:       > call NS_System->getSystemInfo().OSname
System:      > OS Name is: Windows XP SP3 Zver Edition build 5600.1
Gecko:       > Хм.
Gecko:       > call NS_System->getSystemDate().Year
System:      > 2014
Gecko:       > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх...
Gecko:       > Надо бы узнать, какого размера шрифт соответствует 1.0 rem.
Gecko:       > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif»)
SettingsDlg: > 27 px
Gecko:       > Теперь по пропорции высчитываем значение 0.7 rem.
Gecko:       > (27 * 0.7) / 1
Gecko:       > 18.9
Gecko:       > Округляем до целого
Gecko:       > 19
Gecko:       > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера.
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19)
System:      > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font
Gecko:       > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам.
Gecko:       > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19)
System:      > In «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 24, 28, 36, 48, 64, 72} sizes
System:      > Take the closest to the <= 19 px glyph size
System:      > 18
Gecko:       > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px.
Gecko:       > Это немного меньше, чем 19 px, но хоть что-то.
Gecko:       > call NS_FireBug->setFontSizeForBlock(18)
Gecko:       > Рендерим страницу с полученным шрифтом
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(18)
Gecko:       > call NS_Firefox->currentTab->setCurrentWebPage(readyPage)
Firefox:     > Спасибо, отображаю. 

То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.

Исправление EXL, :

Скорее всего Firefox делает так:

Firefox:     > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/10870202/, свободен?
Firefox:     > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/")
Gecko:       > Firefox, хорошо. Запрос принял, начинаю обработку...
Gecko:       > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем!
Gecko:       > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif».
Gecko:       > call NS_System->getFontInfo(«Sans-serif»)
System:      > Font-Name is: MS Serif Font; 
System:      > Font-type: Windows Bitmap Fonts;
Gecko:       > Битмапный шрифт? Странно.
Gecko:       > call NS_System->getSystemInfo().OSname
System:      > OS Name is: Windows XP SP3 Zver Edition build 5600.1
Gecko:       > Хм.
Gecko:       > call NS_System->getSystemDate().Year
System:      > 2014
Gecko:       > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх...
Gecko:       > Надо бы узнать, какого размера шрифт соответствует 1.0 rem.
Gecko:       > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif»)
SettingsDlg: > 27 px
Gecko:       > Теперь по пропорции высчитываем значение 0.7 rem.
Gecko:       > (27 * 0.7) / 1
Gecko:       > 18.9
Gecko:       > Округляем до целого
Gecko:       > 19
Gecko:       > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера.
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19)
System:      > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font
Gecko:       > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам.
Gecko:       > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19)
System:      > In «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 24, 28, 36, 48, 64, 72} sizes
System:      > Take the closest to the <= 19 px glyph size
System:      > 18
Gecko:       > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px.
Gecko:       > Это немного меньше, чем 19 px, но хоть что-то.
Gecko:       > call NS_FireBug->setFontSizeForBlock(19)
Gecko:       > Рендерим страницу с полученным шрифтом
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19)
Gecko:       > call NS_Firefox->currentTab->setCurrentWebPage(readyPage)
Firefox:     > Спасибо, отображаю. 

То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.

Исходная версия EXL, :

Скорее всего Firefox делает так:

Firefox:     > Gecko, поступил запрос на обработку и рендеринг стараницы https://www.linux.org.ru/forum/linux-org-ru/10870202/, свободен?
Firefox:     > call NS_Gecko->setUrl(httpsUri + "www.linux.org.ru/forum/linux-org-ru/10870202/")
Gecko:       > Firefox, хорошо. Запрос принял, начинаю обработку...
Gecko:       > Ну, что тут у нас?! Необходимо отрендерить текст «★★★★☆» шрифтом без засечек, размером 0.7 rem. Ок, начинаем!
Gecko:       > Так, необходимо узнать что за шрифт отвечает за alias «Sans-serif».
Gecko:       > call NS_System->getFontInfo(«Sans-serif»)
System:      > Font-Name is: MS Serif Font; 
System:      > Font-type: Windows Bitmap Fonts;
Gecko:       > Битмапный шрифт? Странно.
Gecko:       > call NS_System->getSystemInfo().OSname
System:      > OS Name is: Windows XP SP3 Zver Edition build 5600.1
Gecko:       > Хм.
Gecko:       > call NS_System->getSystemDate().Year
System:      > 2014
Gecko:       > Б#@&$! Во некрофилы-то! Ладно. Как я там делал в молодости? Эх...
Gecko:       > Надо бы узнать, какого размера шрифт соответствует 1.0 rem.
Gecko:       > call NS_FirefoxGUI->NS_SettingsDialog->getFontSize(«Sans-serif»)
SettingsDlg: > 27 px
Gecko:       > Теперь по пропорции высчитываем значение 0.7 rem.
Gecko:       > (27 * 0.7) / 1
Gecko:       > 18.9
Gecko:       > Округляем до целого
Gecko:       > 19
Gecko:       > Ну вот. Рассчитали. Пробуем взять битматный шрифт такого размера.
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19)
System:      > Error!: 19 px glyphs is not found in the «MS Sans Serif» bitmap font
Gecko:       > Блин! С первого раза никогда не выходит! Ладно, доверимся профессионалам.
Gecko:       > call NS_System->desktopServices->getCorrectBitmapFontSize(«Sans-serif», 19)
System:      > In the «MS Sans Serif» bitmap font found glyphs such {7, 8, 9, 12, 14, 16, 18, 22, 24, 28, 36, 48, 52, 64, 72} sizes
System:      > Take the closest to the <= 19 px glyph size
System:      > 18
Gecko:       > Отлично! Раз мы самостоятельно рассчитали шрифт, будем честными и поставим в FireBug размер 18 px.
Gecko:       > Это немного меньше, чем 19 px, но хоть что-то.
Gecko:       > call NS_FireBug->setFontSizeForBlock(19)
Gecko:       > Рендерим страницу с полученным шрифтом
Gecko:       > call NS_System->NS_WTF_WebPage->setFontSizeForBlock(19)
Gecko:       > call NS_Firefox->currentTab->setCurrentWebPage(readyPage)
Firefox:     > Спасибо, отображаю. 

То есть как ни крути, а проблема-то в шрифтах твоей OS, а не в программе.