User Agent változtatásokkal próbálja az IE11 kikerülni a CSS hackeket?

 ( trey | 2013. március 26., kedd - 12:46 )

A Neowin arra figyelt fel, hogy a Microsoft az IE11-ben változtatásokat eszközölt a böngésző által küldött User Agent string-ben. Az "MSIE"-t "IE"-re változtatta, a végére pedig felbiggyesztett egy "like Gecko"-t. A Neowin arról ír, hogy a régi Internet Explorer verziók "kedvéért" a webdizájnerek gyakran CSS hackeket használtak arra, hogy ezen böngészők számára "testreszabott" verziókat küldjenek weboldalaikból. A Neowin feltételezi, hogy a Microsoft el akarja kerülni, hogy az IE11 ezeket a régi IE verziókra "optimalizált" weboldalakat kapja.

A részletek itt.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Facepalm. Saját magát akasztja a hóhér.

Egyelőre csak feltételezés. Ráadásul egy "kiszivárgott" verzió alapján. Nem biztos, hogy ez egy éles verzióban is így lesz. Az is lehet, hogy valamit házon belül teszteltek és ahhoz kellett :D

--
trey @ gépház

Nem biztos, lehet hogy így akarja jelezni, hogy már az ő böngészője is szabványosan olvassa a CSS-t. ;)

Vagy az IE pedig Gecko motorra vált :o)

KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey

Mint a wine-ba? :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

+1 /o\ /o\

http://pcforum.hu/hirek/14776/Firefox-nak+fogja+alcazni+magat+az+Internet+Explorer+11.html

Amint elolvastam, töröltem is ezt a feedet az RSS readeremből...
Felháborító egy hazug reklám.

"A redmondi szoftver azért folyamodik a szóban forgó cselhez, hogy így kezelje azon, egyre zavaróbbá váló és egyre súlyosabb mérteket öltő problémán, amelynek lényege, hogy számos - rosszul megírt - weblap nem működik megfelelően az IE újabb kiadásai alatt. Ennek elsődleges oka az, hogy a webes szabványokat nem ill. csak felületesen ismerő webfejlesztők az elmúlt évtized során rengeteg olyan lapot gyártottak, amelyek a Microsoft böngészőjét eltérő módon kezelik, mint konkurenseit."

nevetek.

Nem is értem, hogy miért tehették ezt a webfejlesztők. Miért diszkriminálták az IE-t?
Nem tudok másra gondolni, mint hogy ez egy kölcsönös érzés lehetett...
Hát basszus, egész eddig az IE nagy arccal vigyorogva telibe szarta a W3C szabványait és olyanokat nyilatkozott, hogy olyan mértékben valósítják meg a CSS új funkcióit, amilyen mértékben a felhasználói élmény megkívánja. Csak, hogy nincs az sehol definiálva, hogy a felhasználói élmény megkívánja ezen a CSS selector/attributum/stb létezését és nem számít semmit a másik létezése... A felhasználói élmény pontosan azt kívánná meg, hogy 100%-ig helyesen implementálva legyen, mert akkor fog jól megjelenni bármelyik weboldal.
Oszoljanak kérem, nem történt itt semmi érdekes, csak a mr MS belelépett a saját szarába.

(facepalm)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

:D
Ha csinálok egy weboldalt, azért csinálom hogy:
a.: minél többen elolvassák, a lehető legtöbb böngésző alatt jól jelenjen meg
b.: minden böngészőn helyesen jelenjen meg, de MSIE-n véletlenül se
c.: egy adott böngészőben jelenjen meg helyesen, más böngészőbe véletlenül se

Azért gyátanak böngészőt hogy:
a.: meg lehessen vele nyitni tökéletesen minden weboldalt
b.: bizonyos weboldalakat meg lehessen velük nyitni
c.: bizonyos weboldalak véletlenül se működjenek

Értelmesen gondolkodva mindkét esetben az "a" válasz a helyes.

Amúgy meg iexplorerben az iframe SCROLLING=[yes|no|auto], a firefoxban SCROLLING=[on|off|auto] volt egykor, de aztán egyformán [on|off|auto] lett. A crome meg egykor az iframe-be pakolt iframe-t nemes egyszerűséggel nem jelenítette meg. Ha lassan is, de fejlődnek a böngészők. Csak hát először érdemes lett volna valami kőbevésett szabványt létrehozni a html/css kódokra...

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

röhögni fogsz, de sok helyen van b, vagy c, ahol simán beszól a weblap hogy rossz a böngésződ, és nem hajlandó funkcionálni. vicces az volt amikor a chrome új volt, és néhány oldal szerint elavult lett a böngészőm.

Sting hozta a formáját. :D
Persze ő Visual Studion és Word-ön kívül saját bevallása szerint sem szerkesztett soha weblapot.

Egyébként van már CSS3 IE-ben, vagy az a "rosszul megírt" ismérve? :P
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
Get dropbox account now!

http://css3test.com

IE10: 54% Determined by passing 444 tests out of 937 total for 220 features
SeaMonkey 2.16.2: 58% Determined by passing 505 tests out of 937 total for 220 features

Ez a 4% szerintem nem olyan sok, persze nyilván kérdés hogy azokat a feature-öket támogatja-e amiket te szeretnél használni.

firefox nightly 63%, chrome 64% de ez valószínűleg amúgy valmaivel azért több, sok esetben experimental featureként egy moz, webkit, stb előjellel már léteznek a hiányzó featurek is, vagy legalább egy részük

Egy nightly softwaret ne hasonlitsunk mar ossze kiadott verziokkal.
Akkor lenne korrekt az osszehasonlitasod, ha az IE11 aktualis buildjet is melletenned.

ez így van, inkább csak arra irányult a hozzászólásom, hogy a százalék nem feltétlen magas a legújabb böngészőknél se, de ténylegesen viszont lehet, hogy már régóta támogatott az adott feature, jó példa (példák egyike):

https://developer.mozilla.org/en-US/docs/CSS/linear-gradient

.grad {
background-color: #F07575; /* fallback color if gradients are not supported */
background-image: -webkit-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For Chrome and Safari */
background-image: -moz-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For old Fx (3.6 to 15) */
background-image: -ms-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For pre-releases of IE 10*/
background-image: -o-linear-gradient(top, hsl(0, 80%, 70%), #bada55); /* For old Opera (11.1 to 12.0) */
background-image: linear-gradient(to bottom, hsl(0, 80%, 70%), #bada55); /* Standard syntax; must be last */
}

de a fenti teszten nem jelzi a supportot, révén hogy egyelőre prefixel működnek csak

Mint láthatod, az ms-nek is van saját prefixe, vagyis az ie-re ugyanúgy érvényes lehet, hogy többet tud mint amennyit a teszt kihozott. De én nem használnék éles kódban csak prefixeléssel elérhető funkciókat, szóval szerintem a teszt által kihozott érték jó összehasonlítási alap.

az ie11 aktuális buildjét nem használhatja bárki, a nightlykat igen :)

"sok esetben experimental featureként egy moz, webkit, stb előjellel már léteznek a hiányzó featurek is"

akkor kicsoda is az, aki nem szabvanyos extensionoket csinal? :)

--
NetBSD - Simplicity is prerequisite for reliability

experimental feature != szabvany melle jaras.

A WebKit es a Gecko azert prefixeznek, mert meg gondok vannak/lehetnek ezekkel az extensionokkel, nyilvan minden kombinaciot nem tudnak letesztelni. Az MSIE viszont enkomplette kihagyja a szabvanyos cuccok implementalasat, es helyette mindenfele mast implemental. Lasd pl.: gradient vs filter.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

De ez eddig nem igy volt. Es tegyuk a szivunkre a kezunket: eddig az MS nemigazan torte magat a szabvanykovetesert, jogos a felvetes, hogy mi a garancia, hogy ez megvaltozik.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Az az eddig már jó pár éve volt. :) A trendeket nézve nem hiszem, hogy a hozzáállásuk megváltozna. Persze most is van pár terület, ahol nem követik a "szabványt" (webgl, webrtc), de jó okuk van rá (és nem az, hogy a saját megoldásukat erőltessék a világra).

Egyébként a filter-es gradient az ie5.5 óta támogatott, kb. akkor jelent meg az első css3 draft (hm, nem gondoltam volna, hogy az 1999-es). A firefox a -moz-linear-gradient-et a 3.6 óta tudja, az 2010-es. Szóval innen nézve az ie 10 évet vert rá a többiekre, csak pechére a css3 máshogy oldotta meg a problémát, mint ahogy a microsoft gondolta. (Btw a webkitben is először egy alternatív szintaxisa volt a gradientnek.)

Reg volt az az IE6, ha nem tűnt volna meg fel...

---------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Az IE10 se koveti _mindenben_ a szabvanyokat, ha nem tunt volna meg fel...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Többi sem _mindenben_, ha meg nem tunt volna meg fel...

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Mindent meg lehet ideológizalni, de kar, hogy attol ezek a prefixes szemetek arrol szolnak, hogy ki, mit akar beletuszkolni a szabványnak csúfolt izebe.

--------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Teljesen jó, úgy tűnik a microsoftnál se értik a dolgokat a webfejlesztők:
http://i.s-microsoft.com/home/style.cssx?k=~/shared/templates/Styles/Base/viewport-css.aspx;~/shared/templates/Styles/Reset/reset-css.aspx;~/shared/templates/Styles/Views/cols-css.aspx;~/shared/templates/Styles/Base/webfont-css.aspx;~/shared/templates/Styles/Base/type-css.aspx;~/shared/templates/Styles/Base/layout-css.aspx;~/shared/templates/Styles/Views/header-css.aspx;~/shared/templates/Styles/Views/search-css.aspx;~/shared/templates/Styles/Views/list-css.aspx;~/shared/templates/Styles/Views/menu-css.aspx;~/shared/templates/Styles/Views/hero-css.aspx;~/shared/templates/Styles/Views/pivot-css.aspx;~/shared/templates/Styles/Views/highlights-css.aspx;~/shared/templates/Styles/Views/footer-css.aspx;~/shared/templates/Styles/animations-css.aspx&sc=/home/hu-hu/site.config&pc=&v=582454092

Ezt ide: http://www.cleancss.com/

Ilyen finomságok vannak benne:

.lt-ie9 .dropdown-menu {
opacity:0;
width:100%;
max-width:1600px;
background:#eee;
position:absolute;
left:-14px;
display:none;
border-left:none;
}

...

.lt-ie8 .dropdown-menu {
position:absolute;
zoom:1;
top:2.5em;
z-index:2000;
width:980px;
}

"Van egy teória, miszerint ha egymillió majomnak adsz egy-egy írógépet, amit elkezdenek össze-vissza véletlenszeruen püfölni, akkor elobb-utóbb megírják Shakespeare összes muvét. Az Internetnek hála, ma már tudjuk, hogy ez nem igaz.,, -

Safranka Mátyás a Microsoft véleményét ismertette, miszerint "a webes (nyílt) szabványok fontosak a kommunikáció működése szempontjából, azonban ezeket a szabványokat a Microsoft olyan mértékig kívánja támogatni, amelyet a felhasználói igények és a szoftverfejlesztői igények indokolják". Elmondta, hogy a Microsoftnak nem célja a 100% kompatibilitás, az a cél, hogy a fejlesztői platform és a felhasználók számára nyújtott funkcionalitás mindenki számára megfelelő legyen.

source: http://weblabor.hu/blog/20051002/explorervsfirefox

Ezek után kell egy arc, hogy a webfejlesztőkre mutogassanak.

"Van egy teória, miszerint ha egymillió majomnak adsz egy-egy írógépet, amit elkezdenek össze-vissza véletlenszeruen püfölni, akkor elobb-utóbb megírják Shakespeare összes muvét. Az Internetnek hála, ma már tudjuk, hogy ez nem igaz.,, -

ROTFL

Mindenesetre, ha az IE11 végre rendesen fog működni, akkor igazuk van a user agent változtatásban. Valamivel jelezni kell az új korszak hajnalát.
Bár ezt igazán megtehették volna az IE10-zel, már az is egész jó volt.

Egy érdekes kis írás a user-agent sztringek történeti fejlődéséről: http://webaim.org/blog/user-agent-string-history/ .

Jó cikk, lassan bekerülhet az IE 11 is...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

"and the user agent string was a complete mess, and near useless, and everyone pretended to be everyone else, and confusion abounded"

...és a mostani helyzet újra bebizonyítja mindezt.

Hát ez beteg :)

Ennél még bonyolultabb a dolog, mert pl. a Seamonkey user-agentjébe bekerült a végére a gecko verzió szerint ekvivalens Firefox jelzése is (Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0 SeaMonkey/2.16.2)*, mivel néhány weboldal nem hitte el neki, hogy ugyan annyit tud.

*: nem tudom miért Gecko/20100101, valami bug lehet :)

Nekem ez a cikk már az elején ledobta az ékszijjat: "in the beginning"-el indít, és win3.1-es marhaságokkal... Win 3.1-el, még TCP/IP sem volt a win3.1 része, trumpet winsock-al szívtál, hogy net legyen rajt, de akkor már inkább el sem indítottad a win-t, hanem helyette bekonfoltál dos-on egy minuet-et, hátha az belefér a memoárodba... Vaaagy, ha hozzáfértél, kerestél egy unixos munkaállomást, és X11-en ténylegesen mosaic-ot használtál... (Feltéve, hogy volt valahonnan motif-od, és tudtál buildelni...)
De nem hiszem, hogy 2.0-val indult volna a mosaic verziószámozása...

Szóval, nekem elég hátulgombolósnak tűnik a szerző ahhoz, hogy elhigyjem, hogy autentikusat ír a témában.

[törölve, nem ide akartam]

Embertelenül pofátlan duma.

15 év után elkezdik követni a szabványokat, és a webfejlesztők végeztek szar munkát, mert ők eddig nem voltak szabványosak és ehhez igazodtak.

+1

Csakhogy a szabványos webfejlesztők feature detectionnel dolgoznak ma már. Aki még mindig a user agentre bízza magát, az ne nevezze magát jó webfejlesztőnek.
Az egész user agent szarozásban az IE-nek semmi köze nem volt, Mosaic vs. Netscape-nél kezdődött a baj, akik akkor bevezették a user agent alapú kiszolgálást, azok a bűnösök.

Ne zavard osdze őket tényekkel...

---------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Az ugye megvan, hogy az IE-1.0 úgy lett, hogy a Mosaic kódját licenszelte a Spyglass, akitől megvette az MS? Így azt állítani, hogy az IE-nek semmi köze a Mosaic vs Netscape-hez legalábbis a történelmi tények hiányára utal. Az meg már csak hab a tortán, hogy noha a renderelő kód a fenti családfa miatt erősen hajazott a Mosaicra, az IE Netscape-nek mondta magát.

Igen, megvan.
De a User Agent string vizsgálgatása, és UA alapú kiszolgálás kialakulásához semmi köze az IE-nek.
Amikor ez a rossz szokás kialakult, akkor az IE még nem létezett.

Nem a user agentről beszéltem hanem az egész problémakört ahogy kommunikálta a Microsoft, kb. akkora pofátlansággal, mint amikor a 90-es évek második felében rájöttek, hogy mégsem csak egy bohóckodás az internet és a M$ weboldalán az a duma volt kiírva, hogy "Welcome to the intenet!"

Elolvastad a dumájukat?
Mindössze azt kommunikálják, hogy az egész webfejlesztés egy katyvasz volt az elmúlt sok évben, mert hülyék voltak a webfejlesztők és össze-vissza kódoltak a sokféle böngészőre, de most jöttek ők a lángpallossal és megmentik a webet, mert itt kérem szabványos lesz minden, holott ők szartak bele a palacsintába azzal, hogy a létező összes szabványt felrúgva a maguk képére akarták formálni az egész informatikát és MIATTUK alakult ki ez az egész kupleráj.

Az aluljárós gagyizósok ezekhez képest sorban állhatnának egy szentté avatásnál.

"MIATTUK alakult ki ez az egész kupleráj."
Mintha anno a Netscape nem csinált volna csak Netscape alatt működő feature-öket. Kezdve mondjuk a JavaScripttel.

A sok nem szabvanykovetes ellenere eddig is lehetett olyan weboldalt csinalni ami megjelenik mindenen jol, es nem kell hozza User Agent stringet nezni. Persze az bonyolultabb.

Pre apr. 1? :- ).

most már kidobhatnák ezt az egész user agentet a fenébe, és kitalálhatnának valamit ami az user agent feladatát látja el normálisan (értsd: a tényleges böngésző neve, verziója, a tényleges renderelő engine neve, verziója és a tényleges platform lenne benne, nem az aminek látszani akar, vagy amihez hasonlítani akar...

Mennyire lenne nehéz???

Halál mindegy, hogy mi a böngésző, az igazi kérdés az, hogy mit supportál. Arra meg a lehető legrosszabb megoldás az ha az User Agent alapján (legyen az normális vagy a mostani katyvasz) próbálunk ügyködni.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Pedig szvsz jo lenne. a bongeszo megmondja hogy en firefox 19 vagyok, neked meg van egy szep kis feature matrixod hogy X bongeszo Y verzioja mit tamogat.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

A keresés az, mit kezdesz azokkal a böngészőkkel, amik nincsenek benne a feature matrixodban.

Illetve ugyanigy, mit kezdesz azzal, aki hazudik magarol: az IE12 azt mondja majd, hogy o FF21.

Különös tekintettel arra az esetre amikor valaki 5 év múlva akarja megnézni az oldaladat, egy most még nem is létező böngészővel. Mert nyilván az IE11-nek sem a friss ropogós up-to-date oldalakkal van gondja.

Egyébként ilyen feature mátrixot most is csinálhatsz, ugyanis az User Agent-ből most is egyértelmű melyik böngésző látogatott meg, csak az infót nem ott kell keresni ahol logikus lenne (az első helyen). Pont az a probléma, hogy a régi oldalak felismerik az új IE-t, és tolják neki a nem szabványos IE6-ra optimalizált verziót...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o

Ez nem igazan forward-compatible megoldas. Minek kene a fejlesztonek feature matrixszal rendelkeznie?
API kell, amivel futasidoben le lehet kerdezni a kepessegeket. Ez a feature detection, es ez egy forward-compatible dolog.

en joltudom hogy kene valami mi _server_ oldalon megmondja hogy a bongeszo mit tud. mert most ez az user agent egy hasznalhatatlan valami: a bongeszo osszevissza hazudik (lasd cikk), ezert a webfejlesztok nemhasznaljak. akkor meg minek.

az apival is az a baj, hogy megha a mostani bongeszok implementalnak is egy megoldast, a regiekbol ugyanugy hianyzik?

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Az IE hekkelés nem azért volt (főleg), mert nem támogatott valamit, hanem azért, mert szarul renderelt dolgokat. Azt az infót meg nem kéred el te semmilyen API-tól.

Kapcsolódik: http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

Az ASP.NET config fájlok fel voltak készítve arra, hogy IE1..9-et kezeljenek, de a kétszámjegyű IE10-et már nem ismeri fel, és ennek mindenféle vicces következménye van.

--

Mivel a Firefox 5 is érintett, nem hiszem, hogy a hiba a 2 számjegyű verziószámra vezethető vissza.

Nem hiszem, hogy elolvastad.

c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers\ie.browser
Volt: <capability name="majorversion" match="^[5-9]" />
Lett: <capability name="majorversion" match="^[5-9]|[1-9]\d+" />

A Firefox 5 egy másik bug, csak hasonló.

--

Elolvastam, csak nem nyitottam meg a kérdéses fájlokat. :)

A fájlokat saját szerverről másoltam, de a cikk is ezt írja: "they contain definitions for a certain range of browser versions. But the versions for some browsers (like IE 10) aren't within those ranges any more"

--