BrowserArchitecture ClientSide
BrowserArchitecture ClientSide
BrowserArchitecture ClientSide
I am Sang Bui
I am here because I want to learn
E: [email protected]
S: thanhsang.skype
W: sangbui.com
L: https://vn.linkedin.com/in/buithanhsang
1. BROWSER ARCHITECTURE
User Interface
Data persistence
Browser Engine
Rendering Engine
JavaScript Display
Networking
Interpreter Backend
Dependency
USER INTERFACE
The space where interaction between users and
the browser.
Most of the browsers have common inputs for
user interface:
• Address bar.
• Next and back buttons.
• Buttons for home, refresh and stop
• Bookmark web pages
• …etc.
BROWSER ENGINE
User Interface
Browser Engine
Rendering Engine
BROWSER ENGINE
Browser Engine provides methods to begin
the loading of URL and other high-level
browsing actions.
- Reload, Back, Forward actions
- Error messages
- Loading progress
RENDERING ENGINE
Rendering Engine interprets (render) the HTML,
XML, JavaScript and generates the layout that
is displayed in the User Interface.
Key component of this phase is HTML, CSS
parse.
This is a reasons why the browser display a
website so difference.
NETWORKING
Access and transfer data on the internet
(calls HTTP, HTTPS, FTP).
The Networking components handles all
aspects of internet communication or
security.
JAVASCRIPT INTERPRETER
Component parse & executes the JavaScript
that is embedded in the website.
Results of the execution a passed to the
Rendering Engines for display.
DISPLAY BACKEND
Display common UI components.
Drawing basic widgets like combo boxes,
windows.
DATA PERSISTENCE
Storing the data on the client side.
- Cookies.
- Cache.
LOOK BACK AGAIN!
User Interface
Data persistence
Browser Engine
Rendering Engine
JavaScript Display
Networking
Interpreter Backend
Dependency
FIREFOX ARCHITECTURE
CHROME’S ARCHITECTURE
IE ARCHITECTURE
THE RENDERING ENGINE
Different browser use different
rendering engines
THE BASIC FLOW OF
RENDERING ENGINE
1. Parsing HTML to construct the DOM
2. Render tree construction
3. Layout of the render tree
4. Paint the render tree
1. HTML PARSER DOINGS
<BODY>
<P> <DIV>
Mozilla's Gecko
DIFFERENT BROWSER USE
DIFFERENT RENDERING ENGINES
IN DIFFERENT WAYS
QUIZ
PARSING HTML TO CONSTRUCT THE DOM
<HTML>
<BODY>
Text
CROSSING BROWSER TESTING
• Cross browser testing is a process to test
the web application across multiple browsers.
Based on:
- Know your audience
- Decide the platform you will support
- How much you can test
- Trending
TRENDING
HOW TO SET UP A ENVIRONMENT
VirtualBox: Modern.ie:
(Support IE6 – MS Edge)
https://www.virtualbox.org/wiki/Downloads
https://dev.modern.ie/tools/vms/windows/
Chrome latest
Firefox latest
Chrome 46 Chrome 44 Safari latest
IE Edge
Firefox 45 Firefox 43 Firefox 42
Android
IE 11 IE 10
browser latest
CHECK SUPPORTED CODE
http://fmbip.com/
http://www.browseemall.com/Compatibility/ValidateHTML
https://www.browseemall.com/Resources
https://html5test.com/
https://html5test.com/compare/browser/index.html
CLIENT-SIDE TESTING
Hey! Wake up.
CLIENT VALIDATION
CLIENT SIDE TESTING
Client-Side testing is concerned with the
execution of code on the client, typically
natively within a web browser or
browser plugin.
BYPASS CLIENT-SIDE
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_required
http://www.w3schools.com/tags/att_input_maxlength.asp
http://demo.byonepress.com/premium/sl-wp/
TAMPER DATA
Download: https://addons.mozilla.org/en-US/firefox/addon/tamper-data/
“PLAY WITH THE CLIENT-SIDE”
REFERENCES
https://msdn.microsoft.com/en-us/library/aa741312%28v=vs.85%29.aspx
http://www.lxway.com/599268602.htm
http://taligarsiel.com/Projects/howbrowserswork1.htm
http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
https://lab.cs.ru.nl/laquso/Reliability_of_Google_Chrome
http://sangbui.com/thong-ke-trinh-duyet-su-dung-o-viet-nam/
http://blog.kloud.com.au/2014/05/02/cross-platform-testing-myths-vs-
mysteries/
https://www.owasp.org/index.php/Client_Side_Testing
THANK YOU
Q&A