ugrás a tartalomhoz

CPU terhelő a WLContribute kiterjesztés

zsepi · 2005. Okt. 19. (Sze), 17.22
Nem tudom, egyedül vagyok-e a problémával, de a kiterjesztés néha felzabálja az összes CPU-mat és task managerből kell kilőni a foxot. Valaki megnézné, azt megköszönném

szoftver, verziók, stb.:

windows xp sp1 meg egy halom windows patch
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

ZsP
 
1

Biztos?

Bártházi András · 2005. Okt. 19. (Sze), 20.26
Honnan állapítottad meg, hogy ezzel a kiterjesztéssel van gond? Ez könnyen előfordulhat persze, csak kiváncsiskodom, mert különben nem nagyon tudjuk debuggolni.

-boogie-
3

semmi sem biztos, de valószínű :)

zsepi · 2005. Okt. 20. (Cs), 09.51
Mert amikor a kicsi zöld wl ikonra kattintok, hogy blogmark beküldése, akkor kifehérül az egész FF képernyő, s nem válaszol, s task managerből is csak a folyamatok fül alól tudom kilőni a firefox.exe-t :)
5

érdekes

Hojtsy Gábor · 2005. Okt. 20. (Cs), 17.54
A blogmark submitnál lehet tapasztalni processzor terhelést, mert az valóban bénán van megírva, amíg nem fogadja el a szerver a blogmarkot (nem ad választ), addig eléggé terheli a gépet (nálam: UbuntuLinux), de még nem volt időm belenézni. Az, hogy már az ikonra kattintásra is gond legyen, elég érdekesen hangzik, hiszen csak lokális dolgokat igényel.
6

pontatlan voltam

zsepi · 2005. Okt. 21. (P), 09.45
konkrétan nem az ikonra kattintásnál, hanem tényleg akkor, amikor a beküldés/ok gombot nyomom meg - tehát akkor valószínű, hogy az a gond, amit írtál
10

logikus

Hojtsy Gábor · 2005. Okt. 23. (V), 15.12
Na így már más. Arról van szó, hogy szinkron (blokkoló) HTTP kérést végez, amitől nem tudod a Firefox más részeit használni. Aszinkront (nem blokkolót) kellene :) Még nem volt időm belenézni, pedig én sem szeretem, hogy ezt csinálja.

A lényeges rész (chrome/content/wlcontributeBlogmark.js):
request = new XMLHttpRequest();
request.open('GET', url, false);
request.send('');
Namost a false miatt itt szinkron lekérdezés van, ami blokkoló, a send() csak akkor tér vissza, ha megvan a válasz (ha lassú a szerver vagy a kapcsolat, akkor sokáig kell várni). Ha viszont hagynánk, hogy visszatérjen, akkor a dialógus bezáródna (ez egy olyan eseménykezelőben van, ami az OK lenyomására, az ablak bezárása előtt fut le).

Tehát nekünk az kellene, hogy aszinkron lekérdezés legyen, akár adjuk vissza az irányítást felhasználónak, de azért adjunk valamilyen visszajelzést, hogy sikeres a beküldés, vagy nem. Ezutóbbit persze lehetne a toolbar ikon animálásával, megváltoztatásával vagy bármivel is tenni, és akkor már nincs szükség a dialógusra. Meggyorsítaná a beküldési folyamatot.

Ennél mondjuk első körben egyszerűbb, ha a dilaógus nem záródik be, és egy onreadystatechange eseményfigyelőt használunk a bezárásra. Az, hogy ekkor hogyan alakul a processzor foglalás (aminek blokkoló HTTP lekérés esetén se lenne szerintem normális felugrania, bár nálam is felugrik), nem tudom... Ezeket ki kell próbálni, ahhoz idő kell...

Ha esetleg van olyan XUL környezetben tapasztaltabb ember, aki tudna segíteni, azért hálásak lennénk.
7

<Nincs cím>

Schmile · 2005. Okt. 21. (P), 14.22
Ezt én is tapasztaltam (szintén WinXP+SP2, Firefox 1.0.7), bár nálam a szerver válasza után működött tovább a Firefox, mintha misem történt volna...
2

Nem ez a kiterjesztés csinálja

nAgYu · 2005. Okt. 20. (Cs), 07.08
Csak azért vagyok benne ennyire biztos, mert nálam ez a kiterjesztés nincs is telepítve, de a Firefox így is néha 99-100%-os CPU kihasználtságot okoz...
(XP SP2+napi frissítések, Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7)
A miértre még nem jöttem rá...


Üdv.:
nAgYu
4

ez nem jelent semmit

Hojtsy Gábor · 2005. Okt. 20. (Cs), 17.51
Attól még lehet rossz a mi kiterjesztésünk abban a felállásban, ami a kérdés tárgyát képezi...
8

kompatibilitas

adriankoooo · 2005. Okt. 21. (P), 17.34
Nem lehetne feltolteni egy javitott verziot ami kezeli a Firefox beta2-őt?
---
http://adriankoooo.blogspot.com
9

dehogynem

Hojtsy Gábor · 2005. Okt. 23. (V), 14.54
Persze, lehet. Még nem volt időnk mindent a helyére rakni. Mivel úgy készítettük el, hogy a kiterjesztés frissítés is működjön, körültekintőeknek kell lennünk, nehogy valami hibás(abb) kód jusson el azokhoz, aikik frissítenek.

Ráadásul most már érdemes megnézni, hogy Flock kompatibilissá hogyan tudjuk tenni.
11

Firefox 1.5 Beta 2 és Flock támogatás

Hojtsy Gábor · 2005. Okt. 23. (V), 18.48
No, végre sikerült oda jutnom, hogy Firefox Béta 2 és Flock támogatást is rakhassak a kiterjesztésbe. Ennek megfelelően (bár az ismeretetők szerint nem lett volna szükséges) új verziót jelentettünk meg. Ezt ha minden jól megy a meglévő kiterjesztést használók automatikus frissítésben, vagy külön kért kiterjesztés frissítésben megkapják (ez nekem nem működött, de különben sem szoktak menni a kiterjesztés frissítések). Akik újonnan telepítenek, azok pedig már ezt tölthetik le. Sajnos az új verzió nem ad megoldást a témaindító CPU gondra, amit én is tapasztalok.

12

koszi

adriankoooo · 2005. Okt. 23. (V), 19.24
Akartam írni, hogy flock alatt is működő verzió is kéne, de gondoltam a Flock a Béta 2-re épül ezért nem tartottam szükségesnek:)

"a témaindító CPU gondra, amit én is tapasztalok."

Esetleg nem lehetne úgy megcsinálni, mint a del.icio.us kiterjesztésben is van?
Akkor nemhiszem, hogy lennének CPU gondok. Bár nálam most sem jelent különösebb problémát ha 1-2 másodpercet várnom kell.

Adrián

---
http://adriankoooo.blogspot.com
13

Flock más

Hojtsy Gábor · 2005. Okt. 23. (V), 20.06
A Flock másik termékazonosítót használ, így teljesen külön bejegyzés kell neki, mint ahogy a Firefoxnak és Thunderbirdnek is.

Ami a del.icio.us kiterjesztéseket illeti, jó ötlet, meg fogom nézni ezeket alaposabban, most röviden belenéztem kettőbe, és lesz megoldás a fórum témában említett problémára, csak időt kérek.
14

(majdnem) megoldás, kéretik alfa tesztelni

Hojtsy Gábor · 2005. Okt. 24. (H), 21.47
Nemsokára jön a 0.5-ös verzió, ami tesztjeim szerint megoldást ad a témában felvetett problémára, és még szebb is a működése. Változások:

  • Mutatja a beküldési folyamatot (progressbar)
  • Aszinkron HTTP kérést végez, tehát nem foglalja le a gépet
  • Különben maga a dialógus sem modális, ezért lehet "mögötte" túrkálni, ha valakinek olyan kedve van. Ez lehet, hogy mégsem így lesz a végleges kiadásban, mert eléggé furcsa...
  • Ha nem sikerül a rendes kapcsolatfelépítés, akkor nem egy exception dumpot fog adni, hanem egy korrekt hibaüzenetet (és bezárja a dialógust) - bár ezt nem tudtam most tesztelni

Tesztelve Firefox 1.0.7, 1.4.1 (azaz 1.5 Beta 2) és Flock 0.5 alatt. Ismert, és számomra misztikus hibája, hogy a dialógus nem záródik be a beküldés végeztével a két utóbbi programban (a régebbi Firefoxban jó). Valamiért a cancelDialog() hívás nem hajtódik végre, mintha nem lenne jogosult rá a szkript, vagy valamilyen más körülmény nem állna fenn, ami lehetőséget ad a bezárásra. Kerestem dokumentációt, hogy ez miért lehet, mert javascript konzol nem mond semmi hibát, de nem találtam, ami talán nem meglepő béta illetve alfa termékek lévén.

Jó lenne, ha tesztelnétek, és még jobb lenne, ha találnánk megoldást a cancelDialog() problémára.
15

kiterjesztes

adriankoooo · 2005. Okt. 25. (K), 18.36
A dialógus ablakot szerintem hadd meg nem modalisnak, jobb ha lehet mogotte nyúlkálni. progressbar szintén jó ötlet.

kb. ennyi - jó lesz:)
16

bezáródás

Hojtsy Gábor · 2005. Okt. 26. (Sze), 00.47
Azért engem eléggé zavar, hogy nem záródik be :( Sokat kutakodtam, mindenféle debug beállítást bekapcsoltam, de nem sikerült semmit kihúzni a Firefoxból, ami a lehetséges megoldáshoz közelebb vinne. Annyit sikerült kideríteni, hogy ha az XMLHTTPRequest (ami a blogmark beküldést végzi) readyState tulajdonsága meghaladja az 1 értéket, akkor már nem hatásos a cancelDialog() (vagy ennek bármi más manifeszttációja, mondjuk a cancel gomb click() metódusa). De hogy ez miért van így, azt nem sikerült kideríteni, valószínűsítem, hogy a _fireButtonEvent()-ből hívott this.dispatchEvent() során jut el valahogy az esemény az XMLHTTPRequest objektumhoz, ami megeszi, vagy legalábbis a noCancel visszatésénél hamisat ad vissza, ezirányba még áskálódom...
17

megjött a megoldás

Hojtsy Gábor · 2005. Nov. 5. (Szo), 23.49
Nos, felraktam a 0.6-os verziót (azért 0.6, hogy aki feltette a 0.5-öt, az is frissíthessen). Ez sokmindent megold illetve megváltoztat.
  • A ritkán használt beállítások egy külön tabra kerültek (kisebb a dialógus)
  • A hiba vagy siker eredményét nem új alert ablakban közli, hanem ugyanabban, ahol a blogmark beküldés folyt, végül OK-val lehet lezárni
  • Apróbb hibákat javítottam a JS-ben
  • Kompatibilis a Firefox 0.5 RC1-el is

Ez természetesen megtartja a 0.5a jó tulajdonságait, nem terheli a CPU-t úgy, mint elődei, és a beküldés folyamatát is jelzi. Teszteltem Firefox 1.0.x, Firefox 1.5 RC1 és Flock alatt, az automatikus frissítés is működik, tehát akinek fel van már téve, csak frissítenie kell a kiterjesztés kezelő ablakból.

Letöltés a wlcontribute oldalunkról (azoknak, akiknek valamiért nem megy az automatikus update).
18

Magától nem megy

Kérésre törölve 10. · 2005. Nov. 6. (V), 10.30
Ha a Firefox keresi az update-t, akkor nekem nem működött, csak ha letöltöttem "manuálisan".
___________
by ChaTeve
19

Flock

Hojtsy Gábor · 2005. Nov. 6. (V), 10.39
Én Flockban teszteltem a frissítést, mert a többi Firefoxomban már az újabb volt, tesztelési okok miatt. Flockban jól ment a frissítés :)