WebView 3.15: no more static buffers for parsing tag, some fixes, update page not found

git-svn-id: svn://kolibrios.org@8445 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2020-12-18 15:39:38 +00:00
parent 408000706a
commit 1b9dbc2232
5 changed files with 33 additions and 51 deletions

View File

@ -35,7 +35,7 @@ VIDINTEL запускается автоматически, его функци
Драйверы ATIKMS и i915 портированы из Линукса. Они дают поддержку аппаратного курсора мыши, смену видеорежимов через утилиту <a href="/kolibrios/utils/vmode">VMODE</a> и акселерацию двумерной графики. Драйверы ATIKMS и i915 портированы из Линукса. Они дают поддержку аппаратного курсора мыши, смену видеорежимов через утилиту <a href="/kolibrios/utils/vmode">VMODE</a> и акселерацию двумерной графики.
Без использования данных драйверов выбор разрешения экрана возможен лишь на этапе загрузки, но не в процессе работы системы. Без использования данных драйверов выбор разрешения экрана возможен лишь на этапе загрузки, но не в процессе работы системы.
<h2>Аудио</h2> <h2 name="audio">Аудио</h2>
Поддерживаются большинство аудиокарт стандарта AC97, HDAudio и SB16. Поддерживаются большинство аудиокарт стандарта AC97, HDAudio и SB16.
Список конкретных поддерживаемых карт есть на вики. Список конкретных поддерживаемых карт есть на вики.
Также поддерживается вывод звука на наушники. Также поддерживается вывод звука на наушники.
@ -54,7 +54,7 @@ HDD - Поддерживается ядром чтение и запись в р
Поддерживаются USB 1.1 и 2.0 (UHCI, OHCI and EHCI). Также есть поддержка хабов. Поддерживаются USB 1.1 и 2.0 (UHCI, OHCI and EHCI). Также есть поддержка хабов.
USB 3.0 (XHCI) не поддерживается. USB 3.0 (XHCI) не поддерживается.
<h2>Сеть</h2> <h2 name="net">Сеть</h2>
<b>Wi-Fi</b> не поддерживается. <b>Wi-Fi</b> не поддерживается.
<b>Ethernet</b> cетевые контроллеры поддерживаются драйверами в составе ядра ОС, но ведётся активная работа по выносу кода в динамически подгружаемые драйвера. В таблице ниже перечислены поддерживаемые системой в настоящее время. <b>Ethernet</b> cетевые контроллеры поддерживаются драйверами в составе ядра ОС, но ведётся активная работа по выносу кода в динамически подгружаемые драйвера. В таблице ниже перечислены поддерживаемые системой в настоящее время.
@ -76,7 +76,7 @@ rtl8169 Realtek 8110/8111/8167/8168/8169
sis900 SiS900, 7016 sis900 SiS900, 7016
* - в разработке * - в разработке
<h2>Устройства ввода и вывода</h2> <h2 name="io">Устройства ввода и вывода</h2>
<b>COM-мышь</b> поддерживается драйвером, см. SYSPANEL &gt; <a href="/sys/tinypad|/sys/settings/autorun.dat">AUTORUN</a>. <b>COM-мышь</b> поддерживается драйвером, см. SYSPANEL &gt; <a href="/sys/tinypad|/sys/settings/autorun.dat">AUTORUN</a>.
<b>Встроенный динамик</b> поддерживается ядром ОС, по-умолчанию выключен. Включается в программе SYSPANEL &gt; <a href="/sys/setup">SETUP</a>. <b>Встроенный динамик</b> поддерживается ядром ОС, по-умолчанию выключен. Включается в программе SYSPANEL &gt; <a href="/sys/setup">SETUP</a>.
<b>HDMI</b> ограниченная поддержка, смотрите документацию к видео-драйверам ATIKMS и i915. <b>HDMI</b> ограниченная поддержка, смотрите документацию к видео-драйверам ATIKMS и i915.

View File

@ -121,7 +121,7 @@ dword _tag::get_next_param(dword ps, pe)
// "q" - quote char // "q" - quote char
char q = NULL; char q = NULL;
dword fixeq; dword fixeq;
unsigned char val[6000]; dword val;
dword attr; dword attr;
if (ESBYTE[pe] == '/') pe--; if (ESBYTE[pe] == '/') pe--;
@ -136,9 +136,9 @@ dword _tag::get_next_param(dword ps, pe)
//find VAL start and copy //find VAL start and copy
pe = strrchr(ps, q) + ps; pe = strrchr(ps, q) + ps;
strlcpy(#val, pe, sizeof(val)-1); val = pe;
ESBYTE[pe] = '\0';
pe--; pe--;
ESBYTE[pe] = '\0';
//find ATTR end //find ATTR end
while (pe > ps) && (ESBYTE[pe] != '=') pe--; while (pe > ps) && (ESBYTE[pe] != '=') pe--;
@ -148,7 +148,7 @@ dword _tag::get_next_param(dword ps, pe)
{ {
//find VAL start and copy //find VAL start and copy
while (pe > ps) && (ESBYTE[pe] != '=') pe--; while (pe > ps) && (ESBYTE[pe] != '=') pe--;
strlcpy(#val, pe+1, sizeof(val)-1); val = pe+1;
ESBYTE[pe] = '\0'; ESBYTE[pe] = '\0';
//already have ATTR end //already have ATTR end
} }
@ -157,22 +157,25 @@ dword _tag::get_next_param(dword ps, pe)
while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--; while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--;
attr = pe + 1; attr = pe + 1;
ESBYTE[pe] = '\0'; ESBYTE[pe] = '\0';
//fix case: src=./images/KolibriOS_logo2.jpg?sid=e8ece8b38b // Fix case: src=./images/logo?sid=e8ece8b38b
// Exchange '=' and '\0' position.
// attr: src=./images/logo?sid => src
// val: e8ece8b38b => ./images/logo?sid=e8ece8b38b
fixeq = strchr(attr,'='); fixeq = strchr(attr,'=');
if (!q) && (fixeq) { if (!q) && (fixeq) {
strlcpy(#val, fixeq+1, sizeof(val)-1); ESBYTE[val-1] >< ESBYTE[fixeq];
ESBYTE[fixeq+1] = '\0'; val = fixeq+1;
} }
strlwr(attr); strlwr(attr);
strrtrim(#val); strrtrim(val);
attributes.add(attr); attributes.add(attr);
values.add(#val); values.add(val);
if (debug_mode) { if (debug_mode) {
debug("atr: "); debugln(attr); debug("atr: "); debugln(attr);
debug("val: "); debugln(#val); debug("val: "); debugln(val);
debugch('\n'); debugch('\n');
} }

View File

@ -41,7 +41,7 @@
// DATA // // DATA //
// // // //
//===================================================// //===================================================//
char version[]="WebView 3.14"; char version[]="WebView 3.15";
#define DEFAULT_URL URL_SERVICE_HOMEPAGE #define DEFAULT_URL URL_SERVICE_HOMEPAGE
@ -75,7 +75,7 @@ proc_info Form;
dword cur_img_url; dword cur_img_url;
dword shared_url; dword shared_url;
dword http_get_type; dword http_get_type=PAGE;
dword render_start_time; dword render_start_time;
int menu_id=NULL; int menu_id=NULL;
@ -723,7 +723,7 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){
} else { } else {
WB1.DrawPage(); WB1.DrawPage();
} }
if (WB1.img_url.count) GetImg(true); if (WB1.img_url.count) { GetImg(true); DrawOmnibox(); }
} }
} }

View File

@ -1,27 +1,16 @@
<html> <html>
<head> <head><title>Page not found</title></head>
<meta http-equiv="content-type" content="text/html; charset=cp-866" />
<title>Page not found</title>
</head>
<body> <body>
<h1>&nbsp;Webpage Not Available</h1> <h1>&nbsp;Webpage Not Available</h1>
<h2>&nbsp;What could be done:</h2> <h2>&nbsp;What could be done:</h2>
<ul> <ul>
<li> <li>Make sure that evetything fine with Internet connection.<br>
Make sure that evetything fine with Internet connection.<br>
Open <a href="/sys/network/netcfg">Netcfg</a> network diagnostic tool.<br> Open <a href="/sys/network/netcfg">Netcfg</a> network diagnostic tool.<br>
</li> <li>Check page address, there may have been made a typo.<br>
<li> <li>Server is temporarily unavailable.<br>
Check page address, there may have been made a typo.<br>
</li>
<li>
Server is temporarily unavailable.<br>
Refresh the page.<br> Refresh the page.<br>
</li> <li>Browser doesn't handled properly server's response.<br>
<li>
Browser doesn't handled properly server's response.<br>
Please, report an error.<br> Please, report an error.<br>
</li>
</ul> </ul>
</body> </body>
</html> </html>

View File

@ -4,24 +4,14 @@
<title>‘âà ­¨æ  ­¥ ­ ©¤¥­ </title> <title>‘âà ­¨æ  ­¥ ­ ©¤¥­ </title>
</head> </head>
<body> <body>
<h1>&nbsp;‚¥¡-áâà ­¨æ  ­¥¤®áâ㯭 </h1> <h1>&nbsp;‚¥¡-áâà ­¨æ  ­¥¤®áâ㯭  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAdCAMAAAD8QJ61AAAAIVBMVEUBAAAAAAAAgAAAgIAAAIAAAP+AgICZmZnAwMD/mZn///8vq9FJAAAAAXRSTlMAQObYZgAAAORJREFUeNpiGHQAUCcZoEgMwzAQyXbj9f8ffMJp7xz2Om2dgAaUQLF5j8vKBPAS5xWk6eM/iuKqcD7gK6+rjMEXAwqvkX61ICuSwo2uR5jjKBBkCA1ZJDiFrEqahzMIaAgnMG9AjwyBtdAVdO1uwVSQln0GCQvdsU4hkg2WgFhDSBl5DaEZgmVF1ZlPA2kxG0pjL4/QxnWZbQE9ekHHWJHRUMLns260ldA27RCw+m1BGwg+wu5odsM9LYZx3gF7hocwCYFfjr9Vhh5juBb3EQp0rYKgN91/Cu34iGdBHwT729V/8Q+bbAkSfuA/hwAAAABJRU5ErkJggg=="></h1>
<h2>&nbsp;—â® ¬®¦­® ᤥ« âì:</h2>
<ul> <ul>
<li> <li><EFBFBD>஢¥àì⥠ ¤à¥áá áâà ­¨æë, ¢®§¬®¦­®, ¡ë«  ᤥ« ­  ®¯¥ç âª .<br>
“¡¥¤¨â¥áì, çâ® ¥áâì ¯®¤ª«î祭¨¥ ª á¥â¨ ˆ­â¥à­¥â.<br> <li>‘¥à¢¥à ¢à¥¬¥­­® ­¥¤®áâ㯥­. ˜â®è ¯®¤¥« âì...<br>
Žâªà®©â¥ <a href="/sys/network/netcfg">Netcfg</a> ¤«ï ¤¨ £­®á⨪¨ á¥â¨.<br> <li>“¡¥¤¨â¥áì, çâ® ¥áâì ¯®¤ª«î祭¨¥ ª á¥â¨ ˆ­â¥à­¥â.<br>
</li> Š®«¨¡à¨ ¯®¤¤¥à¦¨¢ ¥âáï ⮫쪮 ¯®¤ª«î祭¨¥ ¯® ª ¡¥«î (WiFi ­¥ à ¡®â ¥â). …᫨ ª ¡¥«ì ¯®¤ª«î祭, ¯à®¢¥àì⥠ãáâ ­®¢«¥­ «¨ ¤à ©¢¥à á¥â¥¢®© ª àâë. „«ï í⮣® ®âªà®©â¥ <a href="/sys/network/netcfg">Netcfg</a> ¨ ã¡¥¤¨â¥áì, çâ® ¢ ª®«®­ª¥ DRIVER 㪠§ ­® ¨¬ï ¤¢ ©¢¥à .<br>
<li> ‘¯¨á®ª ¯®¤¤¥à¦¨¢ ¥¬ëå á¥â¥¢ëå ª àâ <a target="_blank" href="/kolibrios/res/guide/hardware_support.htm#net">âãâ</a>.<br>
<09>஢¥àì⥠ ¤à¥áá áâà ­¨æë, ¢®§¬®¦­®, ¡ë«  ᤥ« ­  ®¯¥ç âª .<br> <li>’¥ªáâ®¢ë© ¡à ã§¥à ­¥ ¯à ¢¨«ì­® ®¡à ¡®â « ®â¢¥â á¥à¢¥à .<br>
</li>
<li>
‘¥à¢¥à ¢à¥¬¥­­® ­¥¤®áâ㯥­. <br>
Ž¡­®¢¨â¥ áâà ­¨æã.<br>
</li>
<li>
’¥ªáâ®¢ë© ¡à ã§¥à ­¥ ¯à ¢¨«ì­® ®¡à ¡®â « ®â¢¥â á¥à¢¥à .<br>
‘®®¡é¨â¥ ®¡ ®è¨¡ª¥.<br> ‘®®¡é¨â¥ ®¡ ®è¨¡ª¥.<br>
</li>
</ul> </ul>
</body>
</html>