Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/08/2010, à 18:12

Algorithm_42

[Annulé]Création navigateur Internet

Hello les amis !

Moi et un ami avons depuis longtemps cherché une idée de projet à faire de nos p'tites mains.
Et nous sommes tombé d'accords sur.. un navigateur !

Après plusieurs recherches nous avons décidé de le faire en C++ avec Qt et Webkit.
C'est un gros travail certes nous en sommes conscient, mais ô combien excitant lol

Nous aimerons avoir un plus d'info en général sur ce type de projet, avoir des témoignages/conseils de personnes qui ont eux même entrepris ce genre de programme serai le must smile


En comptant sur la force du Libre,
Amis Linuxiens, nous vous saluons cool

Dernière modification par Algorithm_42 (Le 21/08/2010, à 23:37)


Algorithm_42
Site Web

Hors ligne

#2 Le 20/08/2010, à 18:47

geenux

Re : [Annulé]Création navigateur Internet

Algorithm_42 a écrit :

Après plusieurs recherches nous avons décidé de le faire en C++ avec Qt et Webkit.
C'est un gros travail certes nous en sommes conscient, mais ô combien excitant lol

Pas forcément tout dépend de vos objectif.

Je dirais :
1) Afficher une page : simple, juste une QWebView et ça fait l'affaire
Lui faire gérer correctement le javascript.
Là ça va, facile.
2) Gérer les marques pages : une petite base de donnée sqlite, ou un fichier XML, tout dépend de vos objectifs de fonctionnalités (tris des marques pages...)
3) A vous d'avoir de l'imagination, ça ne sert pas à grand chose de recréer un navigateur tel qu'il y en a déjà plein existant.
Une idée intéressante serait d'intégrer une vrai zone d'édition de texte, avec la possibilité d'utiliser des combinaisons de touches "à la vim". Ça doit être faisable en utilisant le kpart de kate (pour KDE). Faut faire gaffe à faire une compilation conditionnelle pour ne pas installer des trucs ne marchant pas sous d'autres environnement.

Bref, ya plein de possibilité, plus ou moins dures, plus ou moins utiles.
Je dirais que le navigateur internet de base, pour quelqu'un qui connait et comprend ce qu'il fait en C++/Qt devrait être facile. La suite dépend de vos idées, de l'organisation des sources...

Hors ligne

#3 Le 20/08/2010, à 18:52

kevlar

Re : [Annulé]Création navigateur Internet

Bon courage en tout cas !

Hors ligne

#4 Le 20/08/2010, à 18:54

geenux

Re : [Annulé]Création navigateur Internet

Je suppose que vous connaissez : http://www.siteduzero.com/tutoriel-3-11 … zeros.html
Il me semble que ya des gens sur le forum qui ont un peu continué et amélioré le logiciel.

Hors ligne

#5 Le 20/08/2010, à 18:58

Algorithm_42

Re : [Annulé]Création navigateur Internet

Nous avons déjà bricolé un prototype avec la gestion des onglets, l'affichage du titre du site, les boutons traditionnel (accueil, actualisé, précèdent...) une zone d'url.. Bref un petit truc qui fait que de la navigation pur et dur rien d'innovant smile

Oui bien sur ce ne sera pas un clone de Firefox ou Chorium ou autre.

Pour le javascript et le flashplayer (un peu forcé d'incorporé les 2 car presque tout les sites les utilisent) ça pose pas mal de questions ainsi que pour les marque-page, on fouillera les docs smile

On a quelques bonnes idées majeur qui n'existent pas dans aucun navigateur actuel (c'est secret pour l'instant tongue)

Dernière modification par Algorithm_42 (Le 20/08/2010, à 19:05)


Algorithm_42
Site Web

Hors ligne

#6 Le 20/08/2010, à 19:10

geenux

Re : [Annulé]Création navigateur Internet

En tout cas si j'ai un conseil à donner, c'est de bien réfléchir à la création de vos classes, pour pouvoir profiter au mieux des fonctionnalités du C++ : héritage et polymorphisme essentiellement.
N'hésitez pas à réorganier le code si vous pensez qu'il part dans une mauvaise direction.

Utilisez un gestionnaire de version. Personnellement j'utilise Git. À chaque fois que d’introduit une fonctionnalité importante, je le fais dans une branche séparée, ce qui permet de faire plein de commits intermédiaires, sans casser la branche principale.
Du coup, si un changement que tu fais pose problème, tu peux facilement revenir en arrière.

Je pense que c'est le minimum de tout gros projet.

Hors ligne

#7 Le 20/08/2010, à 19:18

Algorithm_42

Re : [Annulé]Création navigateur Internet

Oui on a débuté Qt sur ce site smile

Euhhh.. Git.. Mais je ne comprends pas l’intérêt d'un tel logiciel, a chaque màj d'un programme (donc en partant du même code) on compile la nouvelle mouture dans un nouveau dossier (test2, test3 ...) et on voit le résultat.. roll


Merci pour l'encouragement il en faudra smile

Dernière modification par Algorithm_42 (Le 20/08/2010, à 19:19)


Algorithm_42
Site Web

Hors ligne

#8 Le 20/08/2010, à 19:33

geenux

Re : [Annulé]Création navigateur Internet

Algorithm_42 a écrit :

Euhhh.. Git.. Mais je ne comprends pas l’intérêt d'un tel logiciel, a chaque màj d'un programme (donc en partant du même code) on compile la nouvelle mouture dans un nouveau dossier (test2, test3 ...) et on voit le résultat.. roll

Oula... C'est déjà très limite quand tu fais un programme seul, mais à plusieurs, c'est très risqué, et loin d'être productif. Je ne vais pas te faire une grande explication sur les gestionnaires de versions, mais je vais quand même essayer de t'en faire voire l'intérêt (tu comprendras quand tu en auras réellement utilisé).

-Premièrement, le gestionnaire de version retient tous les changements que tu as fait dans ton code, et t'offre des outils pour les visualiser (git diff pour afficher la différence entre 2 versions par exemple). Comme ça tu peux voir les changements effectués. Bien sur, avec des dossiers, tu pourrais obtenir le même résultat, faudrait utiliser la commande diff, et lui indiquer tous les fichiers....

-Tu peux revenir en arrière facilement.

- Un gros avantage, est la gestion des "merges" (fusion de branches).
Imaginons, tu décide de créer une branche "javascript", dans laquelle tu vas faire fonctionner javascript. Une fois que ça fonctionne, tu fusionne (merge) avec ta branche principale, le code est intégré.
Dans le même temps, ton ami va par exemple travailler sur un "bloqueur de pub".
Que ce passe-t'il ensuite ?
-> Tu as une version code commun+javascript
-> Ton ami a une version code commun+bloqueur de pub
Là tu vois bien que pour réobtenir un seul code commun, il va falloir fusionner les 2. Ça pourrait être fait manuellement, mais ça serait très long, fastidieux, inutile, et source de bugs probables.
Le gestionnaire de version va fusionner automatiquement les branches, sauf aux endroits où il tombe sur des changements contradictoires. Dans ce cas il te l'indique, et il te reste seulement ces passages à modifier.

J'espère que tu en vois l'intérêt maintenant. Vous pouvez travailler simultanément sur des fonctionnalités différentes, et les fusionner sans trop de soucis après, revenir en arrière si des changements ne fonctionnent pas...

Il y a également des outils puissant dans certains gestionnaire de version pour détecter l'origine d'un bug. Pour git, il s'agit de "git bisect". En gros ça permet de déterminer à partir de quel moment le code a commencé à planter, et de voir les changements qui ont abouti au bug...

Dernière modification par geenux (Le 21/08/2010, à 12:37)

Hors ligne

#9 Le 20/08/2010, à 19:42

Algorithm_42

Re : [Annulé]Création navigateur Internet

Wow quel outil yikes
Merci pour la description on ne peut plus clair geenux !
C'est vrai que vu sous ce point c'est limite vital.
M'en vais de ce pas sur la doc big_smile


Algorithm_42
Site Web

Hors ligne

#10 Le 20/08/2010, à 19:46

geenux

Re : [Annulé]Création navigateur Internet

Tu as la doc git (c'est moi qui l'ai en grande majorité écrite).
Mais ce n'est pas très détaillé comme explication, tu peux chercher des ressources plus détaillées si tu as du mal à comprendre.

Ne te laisse pas non plus influencer par ce que je dit depuis le début, git est loin d'être le seul bon gestionnaire de version, c'est juste celui que j'utilise.
Tu as Mercurial qui est très bon (souvent considéré comme plus simple que git).
Sinon, tu as l'ancien subversion : ancien, souvent utilisé dans les projets, perso j'accroche pas.

Bref, renseigne toi bien, c'est un outil important, et qui te servira beaucoup dans tous tes projets.

Dernière modification par geenux (Le 20/08/2010, à 19:47)

Hors ligne

#11 Le 20/08/2010, à 19:52

Algorithm_42

Re : [Annulé]Création navigateur Internet

Oui git a l'air d'être à notre portée.
C'est vrai que ça plus 'pro' de l'utiliser que ma méthode des dossiers roll


Algorithm_42
Site Web

Hors ligne

#12 Le 20/08/2010, à 20:00

geenux

Re : [Annulé]Création navigateur Internet

C'est surtout plus efficace, et vraiment plein de fonctionnalités intéressantes.
Si tu choisis git, j'ai mis les plus utilisée sur la page de doc ubuntu-fr git
Je dois utiliser quotidiennement la plupart de ces fonctionnalités.
Tu en as bien plus, mais ça ne te sera pas utile dans un premier temps.

Bon, déjà un point important qui a bien avancé wink

Je te conseille de prendre un peu de temps pour "jouer" avec git, histoire que toi et ton amis compreniez bien comment ça fonctionne (ça serait bête de tout casser sans faire exprès quand même...).

Concernant le développement, je n'ai pas grand chose à te dire. Si ça t'intéresse, tu peux regarder le code source de mon logiciel Fotowall, fait avec un italien qui a la certification de développeur Qt (la certification de Nokia quoi).
Je pense que le code est de bonne qualité, ça pourrait t'apporter, innocemment au niveau de l'organisation d'un projet lorsque ça commence à devenir gros...

Hors ligne

#13 Le 20/08/2010, à 20:11

Algorithm_42

Re : [Annulé]Création navigateur Internet

Oui, on ne va pas apprendre à l'utiliser quand le projet commencera wink

J'ai déjà récupéré les source de Arora (même profil en général) déjà pour étudier la chose.
Oui ce sera fait, de plus ton logiciel va même me servir personnellement, une pierre deux coup, félicitations au passage cool


Algorithm_42
Site Web

Hors ligne

#14 Le 21/08/2010, à 09:35

Algorithm_42

Re : [Annulé]Création navigateur Internet

Est ce que dans un navigateur les cookies sont vraiment vital ?
On peut ce connecter à tous les sites sans problèmes ?


Algorithm_42
Site Web

Hors ligne

#15 Le 21/08/2010, à 10:30

geenux

Re : [Annulé]Création navigateur Internet

Algorithm_42 a écrit :

Est ce que dans un navigateur les cookies sont vraiment vital ?

Oui !
C'est souvent eux qui sont utilisé pour rester connecté d'une fois sur l'autre
Certains sites commerciaux les utilisent pour le "panier d'achat".
Bref, il y a plein d'applications possibles des cookies, c'est important de les gérer.

On peut ce connecter à tous les sites sans problèmes ?

La plupart des sites ne devraient pas poser de problèmes sans cookies (mis à part que tu dois te reconnecter à chaque fois), de toute façon il faut que tu ai un support des cookies pour faire un vrai navigateur.

Hors ligne

#16 Le 21/08/2010, à 11:01

Algorithm_42

Re : [Annulé]Création navigateur Internet

Ah d'accord donc il en faut.

Mais dans ce cas dans les navigateurs récent il y a une option "navigation privée" qui n'enregistre pas les cookies, la navigation a l'air d'aller quand même non ?

Car pour notre navigateur une de ces futur priorité est la sécurité, donc sans cookie c'est toujours mieux je pense roll ..?

Dernière modification par Algorithm_42 (Le 21/08/2010, à 11:08)


Algorithm_42
Site Web

Hors ligne

#17 Le 21/08/2010, à 11:33

geenux

Re : [Annulé]Création navigateur Internet

Il n'enregistre pas les cookies, ça ne veux pas dire qu'il ne les utilise pas.
Durant tout le temps de la navigation, les cookies sont fonctionnels. Ils sont simplement supprimé lorsque tu quitte la navigation privée, ou le navigateur.

Les cookies ne sont pas réellement le problème pour la sécurité, c'est plus au niveau des sites de faire attention aux informations stockées dedans. Il y a bien d'autres failles possibles pour un navigateur.

Hors ligne

#18 Le 21/08/2010, à 11:46

Algorithm_42

Re : [Annulé]Création navigateur Internet

Merci pour ces renseignements smile


Algorithm_42
Site Web

Hors ligne

#19 Le 21/08/2010, à 12:34

Josepe36

Re : [Annulé]Création navigateur Internet

bonjour

encouragement et abonement


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#20 Le 21/08/2010, à 16:13

Link31

Re : [Annulé]Création navigateur Internet

Le problème avec QtWebkit, c'est qu'il est extrêmement encapsulé. Ça va très bien pour faire un truc basique, mais dès que tu voudras ajouter dans ton navigateur une fonctionnalité innovante qui n'existe nulle part ailleurs, tu ne pourras pas, parce que l'API de QtWebkit ne l'aura pas prévu. De plus, il faut toujours utiliser la toute dernière version de Qt, parce que l'API de QtWebkit est en perpétuelle évolution (mais toujours rétro-compatible bien sûr).

Pour faire quelque chose de vraiment original, à mon avis la seule plateforme valable est xulrunner (plateforme Mozilla Firefox), mais c'est nettement plus bordélique que QtWebkit...

Hors ligne

#21 Le 21/08/2010, à 16:27

Algorithm_42

Re : [Annulé]Création navigateur Internet

Oui c'est vrai.
J'en prends note Link31 wink
Je viens de jeter un œil pour les applications XUL. Mais ce serai d’abandonner le moteur Webkit pour Gecko apparemment et donc refaire tout le cahier des charges.

Une fois le navigateur compilé (le dernier essai pour l'instant n'existe seul que sous forme d’exécutable, rien de plus) en quoi la version de Qt et/ou Webkit sera importante ? A la prochaine MàJ si une dernière mouture de l'un ou de l'autre sort bien sur elle en sera dotai.

Par 'innovant' ce sera forcement (ou pas si une autre idée survient) quelque chose d'existant.. Mais qui n'existe pas dans les navigateurs actuel smile


Algorithm_42
Site Web

Hors ligne

#22 Le 21/08/2010, à 18:06

geenux

Re : [Annulé]Création navigateur Internet

Algorithm_42 a écrit :

Une fois le navigateur compilé (le dernier essai pour l'instant n'existe seul que sous forme d’exécutable, rien de plus) en quoi la version de Qt et/ou Webkit sera importante ? A la prochaine MàJ si une dernière mouture de l'un ou de l'autre sort bien sur elle en sera dotai.

C'est très important. Oui, ton code fonctionnera toujours tel quel lors de la prochaine version de Qt (peut-être quelques légers changements documentés dans la doc de mise à jour, mais rien de compliqué).
Mais Qt Webkit a été récemment introduit, et est en évolution rapide. Si tu reste bloqué à la version de Qt actuelle, tu pourras certes faire un navigateur, mais tu ne profitera pas au mieux des fonctionnalités.
Je te conseille d'installer, en parallèle de ta version de Qt la version de développement, comme ça tu pourra compiler avec la version suivante de Qt, et profiter des fonctionnalités offertes.
Un bon coup de compilation conditionnelle, et tu peux avoir un truc qui fonctionne bien sur toutes les versions de Qt que tu as testé, et qui tire pleinement parti des innovations de Qt.

Pour installer la version en développement de Qt, tu peux regarder l'article que j'avais écrit il y a un moment : http://geenux.wordpress.com/2009/08/07/ … loppement/

Hors ligne

#23 Le 21/08/2010, à 18:45

Algorithm_42

Re : [Annulé]Création navigateur Internet

Je n'y manquerai pas wink

Petit HS : Pourquoi il y a aussi peu de nouveaux navigateurs de créer ? Certes il y en a des pas mal. Par peur des géants dans ce domaine ?


Algorithm_42
Site Web

Hors ligne

#24 Le 21/08/2010, à 19:00

Link31

Re : [Annulé]Création navigateur Internet

Algorithm_42 a écrit :

Petit HS : Pourquoi il y a aussi peu de nouveaux navigateurs de créer ? Certes il y en a des pas mal. Par peur des géants dans ce domaine ?

Peut-être simplement par manque d'utilisateurs potentiels ?

Hors ligne

#25 Le 21/08/2010, à 19:04

Algorithm_42

Re : [Annulé]Création navigateur Internet

C'est encourageant hmm
C'est sûrement pour cela.
Ah moins d'avoir l'idée du siècle c'est limite perdu d'avance.

M'enfin bon on va continuer notre prog juste par défi personnel après je doutes qu'il arrive au petit orteil de Firefox lol


Algorithm_42
Site Web

Hors ligne