Firefox 6: Rumeurs et news sur le développement

Des nouvelles intriguent, portent à réactions ; des rumeurs courent et vous voulez débattre le vrai du faux. C'est simple : ce forum est dédié à ceux qui se sont laissés tenter par la pomme de la connaissance.
Zefling
Tyrannosaurus Rex
Messages : 2576
Enregistré le : 21 déc. 2004, 03:45
Localisation : France - 63
Contact :

Re: Firefox 6 - Nightly: Rumeurs et news sur le développemen

Message par Zefling » 20 mai 2011, 20:45

teoli2003 a écrit :Pour les plantages vous avez des liens dans about:crashes ? (J'ai aussi eu un plantage aujourd'hui, le premier de l'année).
T'as bien de la chance, je suis à plus de 40 en 1 mois. :oops: Mais bon, j’utilise quelques extentions sur Nightly.

Crash quand j'ai fait ctrl + shift + R sur la page :
https://crash-stats.mozilla.com/report/ ... 5392110520
Crash quand j'ai voulu voir des cookies.
https://crash-stats.mozilla.com/report/ ... 0e32110520
teoli2003 a écrit :Pour les mots de passe, je vois pas en quoi c'est plus facile qu'avant (Options->Security->Saved Password...) qui les affichait tous (après la demande du mot de passe principal).
Il ne me demande aucun mot de passe.

Édit : j'avais jamais remarqué qu'on pouvait en mettre un... :oops:
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Re: Firefox 6 - Nightly: Rumeurs et news sur le développemen

Message par teoli2003 » 20 mai 2011, 20:55

Zefling a écrit :
teoli2003 a écrit :Pour les plantages vous avez des liens dans about:crashes ? (J'ai aussi eu un plantage aujourd'hui, le premier de l'année).
T'as bien de la chance, je suis à plus de 40 en 1 mois. :oops: Mais bon, j’utilise quelques extentions sur Nightly.
J'ai 20 extensions et 10 de plus "disabled". Par contre j'ai qu'un seul plugin activé (Flash) et encore avec Adblock Plus et Noscript ça limite son utilisation.
Crash quand j'ai fait ctrl + shift + R sur la page :
https://crash-stats.mozilla.com/report/ ... 5392110520
Crash quand j'ai voulu voir des cookies.
https://crash-stats.mozilla.com/report/ ... 0e32110520
Le deuxième ressemble au mien: https://crash-stats.mozilla.com/report/ ... 0aa2110520

Je vais essayer de reproduire le crash et ouvrirait un bug.
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Re: Firefox 6 - Nightly: Rumeurs et news sur le développemen

Message par teoli2003 » 20 mai 2011, 22:06

Encore eu un de ces crashs! Ce n'est pas une coïncidence.

Utilises-tu l'extension TestPilot (qui est signalée en relation avec ce crash...) C'était mon cas, je l'ai désactivée, on verra si le crash se poursuit.
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

Zefling
Tyrannosaurus Rex
Messages : 2576
Enregistré le : 21 déc. 2004, 03:45
Localisation : France - 63
Contact :

Re: Firefox 6 - Nightly: Rumeurs et news sur le développemen

Message par Zefling » 21 mai 2011, 00:11

Oui je l'utilise... Et j'ai vu qu'elle faisait planter Firefox... Je vais la désactiver temporairement de la Nightly.



Sinon les Dataset HTML5 semblent être maintenant supportés par Firefox :
bug 560112 : (dataset) Implement HTML5 dataset attribute.

Je connaissais pas, mais pour faire du passage d'informations dans une balise c'est sacrement pratique.
Mon blog de dév web ― Thème pour le forum Geckozone ― Le clavier Latin-9 fr sous Windows ― Raccourcis clavier pour Firefox
Debian 8 KDE avec Firefox & Nightly

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

HTMLElement.dataset

Message par teoli2003 » 21 mai 2011, 12:33

Yep!

L'attribut HTML5 dataset de HTMLElement permet d'obtenir tous les paramètres de la forme data-* où * est une suite de lettres (au moins une) suivant la règle de production des noms XML, et ne commençant pas par xml, et ne contenant ni deux-points (U+003A), ni les caractères A à Z (en majuscule).

Ces attributs data-* sont des custom data attributes, des attributs de données personnalisés. Il permet de transmettre des données entre le HTML et le DOM.

Pour les lire, il faut utiliser l'attribut HTMLElement.dataset qui renvoie une DOMStringMap. De plus, les attributes utilisant des tirets (U+002D) perdent ces tirets qui sont remplacés par une casse en dos de chameau (camel-cased en anglais).

Ainsi l'attribut <a data-attr-exemple=""> sera accessible via HTMLElement.dataset.attrExemple dans le DOM.

Et 4 points de plus sur http://beta.html5test.com/ :-P

J'ai mis à jour la doc sur le MDC:
https://developer.mozilla.org/en/Firefo ... developers
https://developer.mozilla.org/en/HTML/Global_attributes
https://developer.mozilla.org/en/DOM/HTMLElement
https://developer.mozilla.org/en/DOM/element.dataset

Bug 560112 — Implement HTML5 dataset attribute.
La norme.
Modifié en dernier par teoli2003 le 21 mai 2011, 17:22, modifié 1 fois.
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Panorama: moins de conso mémoire et démarrage amélioré

Message par teoli2003 » 21 mai 2011, 17:22

La définition de groupes, et d'onglets dans ceux-ci, au moyen de Panorama entraînait le chargement automatique de ces onglets, même si on n'accédait jamais à ces groupes.

Outre la consommation mémoire inutile, cela entraînait différent problème comme le démarrage automatique de vidéos avec le paramètre autostart, et aucun moyen trivial pour accéder à l'onglet. Cela accélère aussi fortement le temps perçu de démarrage dans ces cas-là!

Cela a désormais été corrigé, les onglets d'un groupe ne sont chargés en mémoire que lorsqu'on y accède. Je viens d'essayer cela marche bien et rend Panorama bien plus utilisable sur les petites config comme la mienne.

Plus de détails sur ce blog: http://timtaubert.de/2011/05/firefox-pa ... ve-groups/

Ah oui, c'est gouverné par la clé browser.sessionstore.restore_hidden_tabs (par défaut à false donc!)

Par contre cela ne décharge pas encore les groupes d'onglets plus accédés depuis pas mal de temps (c'est prévu et c'est utile pour les utilisateurs ne redémarrant jamais leur Firefox).

Bug 595601 — Option to not load tabs from inactive groups on initial browser startup (and until such time as the tab(s) become part of an active group)
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Do Not Track pour Firefox Mobile

Message par teoli2003 » 21 mai 2011, 19:57

Le header HTTP DNT (Do Not Track) supporté dans Firefox 4, l'est aussi dans le prochain Firefox for Mobile (bêta).
Image
Le message du blog: http://blog.sidstamm.com/2011/05/do-not ... obile.html
La page de test: http://dnt.mozilla.org/
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Listes spécifiques dans le Gestionnaire de modules compl.

Message par teoli2003 » 22 mai 2011, 09:01

Certaines extensions ont le besoin d'ajouter de nouveaux types de modules complémentaires au Gestionnaire de modules complémentaires. C'est le cas, par exemple, de Stylish et de Greasemonkey qui y ajoutent les styles et les scripts, respectivement, qu'ils gèrent.

La manière de le faire est assez compliquée jusqu'à présent.

Aussi une nouvelle interface a été mis à disposition pour cette usage, qui devient bien plus simple (et avec moins de risques d'effets de bord!).

Bug 595848 — Support registering custom add-on types that appear in the UI as a regular list

Cela a un effet de bord: les extensions Stylish et Greasemonkey sont cassées pour l'instant (du moins la partie gestion des add-ons) et il faudra une mise à jour de ces extensions pour Firefox 6. Mais une fois cet épisode passé, ce sera bien plus mieux :-D
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Support du header HTTP Upgrade:

Message par teoli2003 » 22 mai 2011, 10:14

HTTP/1.1 permet un mécanisme de changement de protocole (un upgrade selon le terme technique traditionnel consacré) depuis sa création vers 1996-1998. Ce mécanisme est très peu utilisé, mais cela change!

En effet, les websockets (le système de connexion bidirectionnelle entre un client / serveur, permettant à ce dernier de faire des push vers le client) l'utilisent pour transformer une connexion http: en connexion ws: ou wss:.

Firefox ne le supportait pas jusqu'à présent. Pour être précis, il était possible de faire une extension envoyant un header HTTP Upgrade:, mais Firefox ignorait la réponse 101 Switching Protocols que le serveur envoie s'il est d'accord (la norme permet d'ignorer ce genre de réponse!).

Bref, désormais, il est possible d'enregistrer un listener (c'est-à-dire un bout de code a exécuter, en fonction du Upgrade: dans la réponse, lorsque le code 101 est envoyé par le serveur).

Code : Tout sélectionner

NS_IMETHOD HTTPUpgrade(const nsACString & aProtocolName, nsIHttpUpgradeListener *aListener); 
Ainsi, soit des parties de Firefox, soit des extensions peuvent utiliser le mécanisme de changement de protocole.

Voilà donc une de ces modifications qui ne paient pas de mine, dont on n'entend guère parler (pas de blog là-dessus), que la concurrence a parfois déjà, mais qui augmentent les capacités du navigateur, et des extensions et permettent l'implémentation des futurs protocoles actuellement à l'étude, en particulier pour lutter contre la latence des connexions http actuelles (TLS-NPN, SPDY, STCP, Upgrade to HTTP over TLS). Tous ces protocoles ne perceront pas (et certains utilisent un autre mécanisme d'upgrade, le header Alternate-Protocol:, mais désormais Firefox devrait être à même de pouvoir expérimenter ceux-ci plus facilement!

Bug 640213 — Implement RFC 2616 "Upgrade" (Section 14.42)
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Les Websockets sont de retour!

Message par teoli2003 » 22 mai 2011, 11:54

Ils avaient manqués Firefox 4 (car la norme avait de gros problèmes de sécurité — attention, lien direct vers un pdf de l'article d'Adam Barth), la norme a été mise à jour et revoilà les Websockets, gérant une connexion bidirectionnelle entre le navigateur et le serveur, permettant à ce dernier de faire du push. Ils utilisent le mécanisme d'upgrade que j'ai décrit précédemment.

Espérons que cette fois-ci la norme soit assez stable et que l'on puisse l'avoir dans Firefox 6!

Bug 640003 — WebSockets - upgrade to ietf-06+
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

File Writer API: implémentation partielle

Message par teoli2003 » 22 mai 2011, 12:25

Après l'implémentation de l'API HTML5 File Reader lors du cycle Firefox 4, c'est autour de sa contre-partie, l'API HTML5 File Writer d'être implémentée.

L'interface BlobBuilder vient donc d'arriver sur votre prochaine Nightly. La phase suivante sera l'implémentation de l'interface FileSaver, plus cruciale pour l'utilisabilité de la fonctionnalité ;-)

La norme
Bug 557540 — Implement File API: Writer
Bug 648997 — Implement BlobBuilder
Bug 648998 — Implement FileSaver
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

vulcain
Varan
Messages : 1732
Enregistré le : 20 juil. 2010, 08:41

Re: File Writer API: implémentation partielle

Message par vulcain » 22 mai 2011, 13:07

teoli2003 a écrit :Après l'implémentation de l'API HTML5 File Reader lors du cycle Firefox 4, c'est autour de sa contre-partie, l'API HTML5 File Writer d'être implémentée.

L'interface BlobBuilder vient donc d'arriver sur votre prochaine Nightly. La phase suivante sera l'implémentation de l'interface FileSaver, plus cruciale pour l'utilisabilité de la fonctionnalité ;-)

La norme
Punaise, le peu je comprends, c'est pourquoi google lance son Chromebook, quand on voit des propositions comme cela...

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Un quasi-leak systémique corrigé!

Message par teoli2003 » 22 mai 2011, 14:28

Rererere-bonjour!

On sent que le code freeze pour Firefox 6 est dans moins de 48 h car tout ce qui était prêt arrive sur Nightly.

Là, c'est un bug mineur corrigé, un quasi-leak, mais vu les soucis de gestion de mémoire, il est intéressant à analyser et à bloguer à son sujet!

Une consommation excessive de mémoire peut être due à plusieurs causes:
  • une cause algorithmique, c'est-à-dire un choix du développeur qui décide d'utiliser plus de mémoire pour gagner de la vitesse;
  • de la fragmentation mémoire. Le programme se comporte bien, mais l'allocateur mémoire s'emmêle les pinceaux et n'est plus capable de réallouer certaines parties de mémoire. L'utilisation d'arenas et d'allocateurs mémoire plus performants, comme jemalloc permet de corriger ce genre de problèmes;
  • des leaks ou fuites. Le développeur réserve de la mémoire mais ne la rend jamais; c'est assez courant en C/C++ si on ne fait pas attention;
  • des quasi-leaks qui donnent le même symptôme, mais qui ont une cause radicalement différente. Là, la mémoire est bien rendue mais trop tard. Il y a deux grands groupes:
    • les quasi-leaks causés par les utilisateurs; cela arrive souvent avec les systèmes à ramasse-miettes; le dév pense ne plus détenir de référence(s) sur la donnée inutile, mais oublie une référence, par exemple dans un historique. L'objet n'est ainsi jamais relâché, mais le dev ne le sait pas. De plus tous les objets liés par celui-ci ne sont jamais collectés par le ramasse-miette. Cela est la principale cause de consommation indue de mémoire par certaines extensions.
    • les quasi-leaks systémiques; là le développeur d'extension ou de code est blanc comme neige. C'est le système (le ramasse-miette) qui est la cause du problème. Pour différentes raisons il laisse des miettes!
Parmi les leaks/quasi-leaks corrigés presque quotidiennement ces jours-ci, il y en a un qui sort du lot: Bug 654399 — Page has memory grow for a good long while before a GC ever happens

C'est un magnifique exemple de quasi-leak systémique. Voici ce qu'il se passe. Le symptôme, c'est une croissance anormale de la mémoire de 1200 bytes/5 ms soit 240 kB/s ou 12 MB/min lorsqu'on charge une page précise. La mémoire augmente donc rapidement de plus de 300 MB! Puis au prochain passage du ramasse-miette, tout redevient normal.

Le hic, c'est pourquoi le ramasse-miette ne passe plus tôt. En effet, le ramasse-miette est lancé périodiquement, et pour éviter de tout arrêter pour faire le rangement (ce qu'on appelle stop-the-world), il utilise un algorithme beaucoup plus simple, pour estimer si cela vaut la peine de faire le ménage maintenant (y a-t-il assez de déchets). Cet algorithme est imparfait et sous-estime parfois la mémoire occupée indûment. À priori ce n'est pas très grave, car cela repousse juste son déclenchement, et la mémoire est quand même libérée, un peu plus tard.

Sauf que dans certains cas, comme la page web en question, il est produit beaucoup plus de déchets mémoire indétectables, quede détectables. Bilan, si on ne regarde que cette page, et que l'on ne fait pas d'autres activités générant des déchets mémoire, la mémoire n'est pas libérée (ou très très raremeent) et comme elle grandit beaucoup (genre 1/2 GB!), cela pause problème.

Les devs ont donc amélioré l'algorithme d'évaluation de la saleté, tout en sachant que cela ne couvre pas tous les cas. Seul un nouveau ramasse-miette moderne, basé sur la technologie Generational Garbage Collection, permettra de résoudre ce problème (et d'autres) dans tous les cas. Un tel ramasse-miette est prévu, mais cela prend du temps (c'est un composant critique) et devrait arriver d'ici la fin de l'année (la première étape, un ramasse-miette incrémental est en cours d'implémentation).

Voilà!
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Grosse amélioration des temps de démarrage

Message par teoli2003 » 22 mai 2011, 14:57

Avec l'arrivée de
Bug 632404 — Preload Firefox libraries at startup

Des améliorations du démarrage à froid de l'ordre de 20% pourraient être perçues grâce à ces patchs (Windows, Mac OS et Linux); il est probable que le plus de gain sera gagné sous Linux.

Je me méfie toujours de ces pourcentages, puisque c'est complexe et surtout cela peut varier beaucoup selon le contenu du profil (extensions, ...), les performances du disque dur (entre un HDD lent et un SSD performant...), etc.

Mais toujours est-il que cela ne devrait pas être une perte :-)

À noter que désormais certaines métriques seront mesurées via la télémétrie (about:telemetry), ce qui devrait permettre d'aider à savoir si c'est efficace ou non, et pour combien d'utilisateurs.
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

teoli2003
Animal mythique
Messages : 7580
Enregistré le : 13 nov. 2005, 09:23
Contact :

Mesure des perfs de connexions

Message par teoli2003 » 22 mai 2011, 15:07

L'API Navigation Timing permettra de mesurer les temps de connexion à un site, histoire de là-aussi pouvoir détecter si les choses se passent bien ou pas.

C'est pas facile, puisque l'ouverture d'une connexion commence avant la possibilité d'exécuter du JS et donc les mesures traditionnelles sont complètement foireuses. Ce standard permet donc d'avoir des mesures correctes.

Pour l'implémenter il faut ajouter des possibilités de mesures dans les canaux HTTP de Firefox (les mêmes que pour le mécanisme d'Upgrade: aussi arrivé ces jours-ci). C'est chose faite et les mesures sont similaire à celles obtenues avec Wireshark (un outil de sniffing de paquet) à 40 - 100 µs près, ce qui est très bien.

Bug 576006 — Implement timing interface for channels
La liberté n'est jamais accordée de bon gré par l'oppresseur; elle doit être exigée par l'opprimé (Martin Luther King).
Les convictions sont des ennemis de la vérité plus dangereux que les mensonges. (Nietzsche).
Native Mozillian.

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité