Servo (the parallel web browser) and YOU!

Video in TIB AV-Portal: Servo (the parallel web browser) and YOU!

Formal Metadata

Servo (the parallel web browser) and YOU!
A beginner's guide to contributing to Servo
Alternative Title
Mozilla - Servo And You
Title of Series
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date
Production Year

Content Metadata

Subject Area
Curvature Link (knot theory) Multiplication sign Ontology Electronic program guide Cuboid Parallel port Mereology Web browser
Web page Building Implementation Group action Server (computing) Service (economics) User interface Observational study Code Multiplication sign Student's t-test Web browser Parallel port Mereology Formal language Revision control Medical imaging Goodness of fit Damping Information security Physical system Alpha (investment) Form (programming) Social class Domain name Touchscreen Constraint (mathematics) Software developer Electronic program guide Polygon Projective plane Data storage device Electronic mailing list Bit Web browser Tablet computer Category of being Arithmetic mean Word Vector space Personal digital assistant Blog Universe (mathematics) Right angle Family Reading (process) Library (computing)
Metre Software Robotics Electronic program guide Coma Berenices Personal area network Parallel port Web browser
Point (geometry) Programming language Software Electronic program guide Codierung <Programmierung> Web browser Parallel port Computer programming Web browser Formal language Formal language
Web page Group action Building Link (knot theory) State of matter Parity (mathematics) Code Java applet Multiplication sign Real number 1 (number) Insertion loss Student's t-test Web browser Parallel port Event horizon Rule of inference Attractor Formal language Product (business) Heegaard splitting Mathematics Autonomic computing Software framework Implementation Fiber (mathematics) Descriptive statistics Physical system Computer architecture Social class Window Programming language Pairwise comparison Information Electronic program guide Projective plane Web browser Word Data management Process (computing) Repository (publishing) Order (biology) Quicksort Row (database)
Web page Implementation Server (computing) User interface Code Ferry Corsten Java applet Connectivity (graph theory) Source code Workstation <Musikinstrument> Coma Berenices Parallel port Event horizon Graph coloring Dimensional analysis Element (mathematics) Formal language Attribute grammar Web 2.0 Latent heat Data mining Cuboid Endliche Modelltheorie Acoustic shadow Social class Scripting language Metropolitan area network Touchscreen Interface (computing) Electronic program guide Electronic mailing list Sound effect Directory service Web browser Parsing Category of being Type theory Data management Loop (music) Process (computing) Befehlsprozessor Computer configuration Order (biology) output Object (grammar) Data type Window
Metropolitan area network String (computer science) Electronic program guide Instant Messaging Menu (computing) Attribute grammar Information Object (grammar) Parallel port Ordinary differential equation Web browser
Code Line (geometry) Correspondence (mathematics) Multiplication sign Electronic program guide Maxima and minima Parallel port Web browser Attribute grammar Category of being Computer configuration Data mining Source code
Computer configuration Computer file Electronic program guide Data mining Software testing Parallel port Web browser Resultant
Data management Implementation Bubble memory String (computer science) Electronic program guide Electronic meeting system Ideal (ethics) HTTP cookie Parallel port Web browser Scherbeanspruchung Metadata
Area Default (computer science) Game controller Code Blog Electronic program guide Video game Parallel port Web browser Resultant
Web page Functional (mathematics) Focus (optics) Divisor Electronic program guide Source code Numbering scheme Parallel port System call Web browser Uniform resource locator Personal digital assistant HTTP cookie Quicksort Object (grammar) Task (computing) Physical system Social class
Slide rule Mathematics Internet forum Information Logic Electronic program guide Website Parallel port Web browser
Multiplication Multiplication sign Electronic program guide Planning Summierbarkeit Parallel computing Parallel port Web browser
hello there the people the background a who is way that it can what is so welcoming thank you is that this could be work flat land and not that I want my reality is not in the use of ontologies in the table and take it was found that you would have to be learned features can be a lot of work in the the the so on on the initial of the work on that to be nice and you because I thought you might have in the past and the act of what about like and then we have a lot of the time the tools of the time of the year of I you know that we you have a wide body of the box you recognize that this is a lot of things that happen in a lot of and you and you see a lot more that they had offered a lot of this part of the link and both of these of that topic for the of the people and
thank you all the this it through what is server so it is a brand new web browser image so that's a browser the we care about is the thing that renders the web pages for you and something a building from the ground up with so with the knowledge we've gained all after building Firefox for the past like 10 15 years we think we can do better if we start from a clean slate additionally we are writing it in the prevailing called rest which is a language that we are also created from scratch because it plus is just not good enough when it comes to browsers if you'd like to learn more about precisely what that means what rest is what how that affects several as just looking at the top that was given by my colleague doctor Moffat and LCA 2015 but move right on head and assume that you want to learn how to contribute to server no why would you want to contribute to serve well we all know that my brother is our begin to flex and challenging of but it's important and talent I find is a really interesting environments and a lot of really interesting constraints are security and performance that is don't get another domain domains so if you want to have a fun time telling us of extending skills so vector for that additionally we just released the rest 1 . 0 alpha so that is the 1st version of arrested the we feel is a snapshot of what the language is going to be like after the 1 1 0 release which can be pretty soon in the next couple months and that means that the lenders settling down and a lot of interest in starting to request of for the 1st time however oftentimes people say well Rustam school but I don't want to use for the service is a great place to try your hand writing actual West code that will make a difference and write it in a real world setting to so you can make a huge impact because there are a lot of things that there was missing right now and we are counting on other people help us out so a 2nd I was does read now it is a really good Wikipedia brother we have optimized for that case so we had to have a member of the team uses primarily for all those with the new browsing and we have we have some forms of parts so you can submit texts but you can use tech parts and things if you wanna read blog posts so was great for that I just got better can support recently another executed by students at a university in Hungary we support 100 % of C is defined properties of 75 % assistance to properties where and when I say support what mean is the past them and the list this is the 2nd 1 in the word or 1 property in there which will cause something to train on the screen use it of this spending and what this means is that we do things like that as the support for server over easily by using the canvas supports and as injecting a poly fill and that'll partly as page and will then draw that on the canvas so we have that the working Branford now and that's using the excellent can be g library other things about that now but for the summer of code project we had a student rights and implementation of XML it'd be request we have students from North Carolina State University group or class projects submitted an implementation of Szczecin storage we have workers working we have a development of style you can modify properties you can retrieve properties of we also have to develop a truly for Firefox because firefight support from a developer tools and we can do that we have a working on right on OSX and Linux for 32 64 bit operating systems and another student from the preceding hungry has also contributed Air 64 support so let's take In brief look at what action does right now so what I'm gonna be showing you it goes well known at that where did a study of Korea
so we have written a little small browser you
into account but which gives you
the tabs and and forward and gives you your robot which is a lot of things if it's on the network I can't even tell that connected don't know or it doesn't work where did that but that
is loaded so that as ready another Wikipedia support before so let's service but that to test the moon we use less rest programming language assume the Catania says about the rest language so the thing to note here is not how slow it is loading things to that's just a really terrible network encode astonishing interesting so what you will see is that we
have a really really slick the schooling and you can click links and we're going in the browser really the lowered to true this article if you want but other cool thing is that we have a really nice backwards and forwards catch so just that's right through it I so is the points so there was a really cool and few clues about them that you work with GTK what does not so that you're not here
for shiny things we're here for work all so answering thing most things actually a lot of things was the thing the thing that that occur about I frame of a black lower events of those are harder than you might think In ICML through uses that but I believe that this like all the things that work that needs to be done rather than fundamental problems with the architecture I as a lot of work that is really big and there are many things which could be done by anyone willing to sit down and recent spectra top with us and was to try their hand at Roskilde and some of the things we're still working with students organize things others we have a lot of volunteers who are determining right now I'm and these things are just the getting there slowly so the problem is that as as cool as Devil's like this so you are it's hard to actually draw comparisons the realistic between 0 and 5 . 4 now because the things we don't implement it's hard to say whether that's actually influencing at times we get when rendering pages so in order to action demonstrate that our ideas are as a as realistic as we think they are we need to be able to do so actually feature parity with real web browsers with the parasites so as I showed many things they did mean it accomplished and the thing is that we as a team are really good about taking all of them work splitting it up into bite-size pieces that anyone who is motivated good attack now many looking this going well web browser designed not how complicated this and this only things maybe that's not for me but missile you we have a really large crowd volunteers In the past month alone that 11 indigenous a lot and a lot of the 1st ball requests and get contain the phrase now this is my 1st thrust of everything so we in everything wrong I think they want the ruling its if if the language pick up with lots of people were students from North Carolina State who as far class project for credits of the profit was invented in unison products autonomous sure about these ones and this move the code and the operative word and the rectified time using rest at is on the programming language polyglot things with the people who are often only had some experience using Java or Python before they it so was pretty attract record for getting involved the 1st time the so How does it start it'll only get have repository that wanted to along the like of NNN there but it's just a something else all the prerequisites with listed for a bunch of different operate systems in the really was very handy and then we'll use the Trent Lott and what that means is we have this tool called Mark was actually a framework written by far which allows us to create developing tools really easily is a very helpful and as we build a build system on top of so any time you want compiles remote so this runs not build dual annual do everything doing the the very 1st time you build L download the rest the ill download the package manager ill download all of the like when the fiber 30 dependencies and interest here which is like whatever issues I'm really sorry about that is long download quite silly to wait for the 1st time but after that most will probably take but anyway if like me 10 minutes depending on what you change in how big your whereas the Annapolis from from last year that takes like 2 to 3 minutes to compile those changes I think so was you connect work I mean you could just go like that was I showed you like all of really cool things about the work at hand but we also make suggestions and have this attractor and we label things as being easy or less easy to help people get started so the easy ones obviously the the ones which we've written a pretty good description of the changes we expect remained and were find references from for the cold evil will be looking at and respectively referring to the the and they're usually the user really isolated piece of work that wanted to long respect and if you're of a more challenging nevertheless the category and of the go protect the perhaps more interesting also accordingly were complicated and so what I mean these are examples
so this is 1 that was followed by 1 of contributors recently and as I said this is easy tag and so you links to the fact that it is really a link to the chosen we modified and links to the tested radical demonstrated this can works class and within 2 weeks of because thought someone for the 1st time Anderson before and this Millipore process equal uh whereas for a less easy you know is so about like implementing using features but even so there's a there's still a decent description of the sort of cepstral wanna go through in order to solve it so loss of information in the absolute love helping people get started for the 1st time so the fact that
the source code the most exciting the server lived in 5 directories and they're all within the components directors Mr. puzzling and that's your input events that's event loop a window management and the exit of the course then you've got to effects which is the graphics that and that's the thing that the painted just screen or paste you need to see the the the parallel painting those CPU or GPU painting from the sponsors of this text whatever about layout code and that's the stuff which takes the actual a document model and figures out where the boxes should be helping to be what colors they should have the shadows of the advisor styling I'm just flattens in something old indicated but is there directory and that's everything that's related to jobs that of execution so it's related to actually taking the input events from the compositor and actually but this specimen them as a dimension page those things like actually implement involves the station so there's a lot of government and finally you have a style directory and that's everything for integrating the CSS parser and trading the data types so we will be filled up by layout of wall figuring out the styling of all the elements so often we find that an easy way to get started contributing servo is through implementing Don features so the find everything you need in the components script Don directory and is actually correspond directly to elements are in the specifications so if you're in planning something related to additional element then that will be found in the eating elements that are as far furthermore fact also defines interfaces using a language called web idea so we actually are able to directly copy and paste those in Warsaw street and then those turn into generated Roscoe would which actually there's a whole course a concept the the rescued or the rest implementation to the JavaScript objects the web pages that interact with and that means that we also demonstrate which is kind of like a Java interface um were receivers was abstract class from which then lists all the methods that you will need to implement In rust code in order to have a full implementation according to the interface so let's take a look at what that means in practice so here's 1 of these
interfaces for the doctrine object you might recognize it the you know you've got you got these attributes and that refers to the things the properties of the objects we can do things like Dr. inductor mean equals 4 . com that was a read-only attribute is only generated concepts and then you also have methods you got like 2 element by name somewhere where you pass in answering any did back in the list and these all correspond to rest types and they all show up as tho you need to implement and so that means in
practice is that if we search for document methods the like it so that in methods is the generated trait so here we implement a straight forward the document object and so if we look at this there
is a corresponding the last modified of believe so last modified
is a read-only attribute so it's only
the and so that corresponds with this method here
which is last modified returned the answering and here's the code that says you know if I if I don't have any last modified property internally already just take the current time and formatted In a way to respect develop a and we also links to the spec if you need to refer to at any time so let's
do something fun let's implement I mean that could you
right now but so what this means is when a copy attributes from this back into our local about Yale then we're going to implement that in restaurants the test results but because we have some the and test files reuse already I will make sure that she passes so let's start let's look at the spec In resource med
metadata management there is dark inductive now that is in the ideal up shear at downstream string cookie so all the 2nd I delivery of
was thrown in here very easy and then we go back to our implementation now
what you could do right now is to compile it and Russell complain that you're missing a method that I know that should be so I'm going to do this good I will also need Marcus has grows because a control areas do the the the yes it doesn't turn anything or no sorry debts results so you're returning of values by default that's a simple but I going to get my crib notes because I think that it is harder life code when you work from a larger audience so when they're so 1st the specs says that the the
I'm getting Ivica using the blog agent transferring otherwise origins not that hard a simple in that 1st let's figure out if the origin is the special topple take you so was
like a function down here scheme host 4 at the
couple it will take a URL the the note that forgot that was in in the system for all of the the right sort of checking whether it has a whole support and then go if not is skiing with the 2 of the call softer euro copy that equivalent to you then uh let is through the course of the government to take on the object you will get the page from it and then will go page of the source task as we have this API class the set up um which is that he's the URL and you know you're all and that see those lately channel to the button than non-speech decay this is is implementing is accurate factors form if you want to think if this would use it so that or to but not so this is saying you focus was your URL and then I'll return the cookies that I've been given so um then for selling cookies we also have a similar API we can use which looks like citric his 4 year old and and that should be enough in sort of like import talked for its well do actually is work in which case it
can go our the the now although by changes I just made them
so or waiting for that so about the logic of trust in that but if you want to get more information than you petition site you can go to 2 hours the server people willing to help minimalist in go to the discussion forums the and yet the basic coverage is your turn to help with several and you can do it I believe in you the slides at the on the screen and about the effort of this interest you Orlando if
be and in that time with the question of what the the question was 1 of the hardest things they haven't solved and server at at the heart of with the sum of the 2 this is really the on things like multiple multiple layouts and and had pagination I things not certain about how they will fit into a parallel architecture of nothing it yes find I did not catch that like this you within minutes the it do do you really think that in the layout engine and other plans to and the answer is in I don't believe so of and other kinds and not that of the common practice the there's of something there it right and look like that everything it be