Professional Documents
Culture Documents
DIPLOMA THESIS
STUDENT SUPERVISOR
SALIH COSKUNTUNA Ass.Prof.PhD Румен Иванов Трифонов
F.NO: 273212014
SOFIA 2016
1
Content
s
Chapter 1: INTRODUCTION OF WEB BROWSERS............................................................................3
HISTORY OF WEB BROWSERS..........................................................................................................4
FIRST STEP INTO THE WORLD OF BROWSERS.............................................................................9
INTERNET EXPLORER......................................................................................................................10
GOOGLE CHROME.............................................................................................................................13
MOZILLA FIREFOX............................................................................................................................14
SAFARI.................................................................................................................................................16
OPERA..................................................................................................................................................18
Chapter 2: MY BROWSER...................................................................................................................19
SECTIONS OF MY EXPERIENCE......................................................................................................20
PROPERTIES WITHIN A STANDARD BROWSER..........................................................................21
DISTINCTIVE FEATURES FROM EACH OTHER OF WEB BROWSERS......................................22
NEW ADVANTAGES OR DISADVANTAGE OF WEB BROWSERS..............................................23
SOME OF WEB BROWSER ARCHITECTURES...............................................................................24
SOFTWARE IMPLEMENTATION OF THE PROPOSED BROWSER USING ECL. AND JAVA...31
FEATURES OF JAVA LANGUAGE...................................................................................................32
Chapter 3: TESTS OF WEB BROWSERS............................................................................................33
GOOGLE CHROME.............................................................................................................................34
INTERNET EXPLORER......................................................................................................................35
MOZILLA FIREFOX............................................................................................................................36
MY BROWSER....................................................................................................................................37
YANDEX BROWSER..........................................................................................................................38
TOR BROWSER...................................................................................................................................40
COMPARISON OF THE BROWSER..................................................................................................41
Chapter 4: CONCLUSIONS..................................................................................................................52
LIST OF ABBREVIATIONS................................................................................................................54
WEB BROWSER SOURCE CODES....................................................................................................55
LIST OF FIGURES AND TABLES......................................................................................................60
REFERENCES......................................................................................................................................62
2
Chapter 1: INTRODUCTION OF WEB BROWSERS
3
Identifier or URI, determines how the URL will be interpreted. The
most commonly used kind of URI starts with http: and identifies a
resource to be retrieved over the Hypertext Transfer Protocol (HTTP).
Many browsers also support a variety of other prefixes, such
as https: for HTTPS, ftp: for the File Transfer Protocol,
and file: for local files. As we said most browsers can display
multimedia files and also it supports XML files, CSS, flash applications
and java applets. When a link is clicked, the browser navigates to the
resource indicated by the link's target URI, and the process of bringing
content to the user begins again. Here, we will examine history of web
browser, how browsers are working, structures, architectures,
engines, functions, experimental tests, analysis and results on the
platforms.
4
particularly on non-Windows platforms, largely due to its open source
foundation, and in 2004 was released in the quickly popular Firefox
version.
8
usage of all versions of Internet Explorer combined. By April 2014,
Chrome's usage had hit 45%.
Figure 1
Today we have a lot of options for user aspect. Why, The Persons
preferring some browsers? What is significant for people?
Web is like a sea and browser is a ship too. We can surf everywhere
via web browser in deep web or normal web.
Deep web browsers are private browsers and we can say another
world. Our online information is protected and if we can’t find on the
search engine, we use these private and secure connections. We can
buy special drugs, counterfeit currency, forged papers, firearms,
ammunition and explosives, hitmen, human organs and other internet
crime works. So usually, this kind of browsers are using illegal
operations. It is not useful for normal users. Other part concerns us so
normal web area.
9
Now Let us famous browsers research in all respects in
detailed (Performance, Secure, Visual and other possible
events).Also including my new browser information too.
INTERNET EXPLORER
Figure 2
10
works only windows desktop systems. It can run X64, IA-32, ARMv7,
IA-64, SPARC platforms.
Closed Source O.S =Microsoft Windows, Mac OS X, Chrome OS.
Open Source O.S (Linux) =Ubuntu, NetBsd, Pardus….
In Time, Internet Explorer is arrived updated and developed. I.E was
developed in C++ language and it works only windows operating
systems. It has 95 different languages and including HTML5, CSS3,
WOFF, SVG, RSS, Atom, JPEG XR standards.it was created Trident
and Chakra Engines. I.E is available Windows, Mac OS X, Solaris OS,
HP-UX. Internet Explorer is integrated new areas at the same time
(Xbox360, Xbox).Explorer directly does not work other operating
systems for this, we need utilities for provide. Trident engine also
known as MSHTML and Microsoft used this dll every version of I.E.
desktop and mobile environment. First version and CSS supports in
CSS 2 rendering, next version came corrected issues with CSS
handling, then corrected the box model and added quirks mode with
DTD switching, add partial PNG alpha support, IEMobile 6 combines
many properties, SVG XHTML, HTML5, CSS3, ES5,add new
hardware-accelerated Jscript engine named Chakra and Support for
Web GL and SPDY. These features are included in Windows desktop
environment, after in mobile phone 8.1(Windows).
Some other Trident-based applications include:
Google Talk (which uses Trident to render chat windows and
profile cards)
IE Tab, Firefox, Google Chrome (add-on used to render pages
with Trident within the Firefox or Chrome user interface.)
Maxthon (while adding features not built into IE7)
Lunascape
Microsoft InfoPath
Outlook (for render HTML Messages)
Visual Studio(render the Web Browser control)
Messenger
11
Netscape Browser
Skype (software for VoIP that renders HTML data with Trident)
Windows Media Player(Render the Media Information Pages)
Valve’s Steam (to render the “store”, “Update News”, and
“Community” sections as well as the Steam in-game browser
and MOTD screens in Valve games. The steam client was
updated to use WebKit instead of Trident for these features.)
360 Secure Browser (A web Browser in China).
12
GOOGLE CHROME
Figure 3
13
Samsung and other companies are using this engine. It is created
in C++ language. This engine is presented under the BSD-style
license. Javascript is a dynamic programming language and
commonly used as part of web browsers. A lot of different kind of
applications can run on the browser via javascript elements
(including Jquery).
MOZILLA FIREFOX
Figure 4
14
MathML, RDF, XForms, XHTML 1.0 , XML 1.0 , XSLT , XPath and
SVG 1.1(Standard Support).About SpiderMonkey, It is the first-ever
JavaScript engine, open source ,It Provides Javascript support for
Mozilla Firefox and various embeddings such as the GNOME 3
desktop. GNOME is a desktop environment which is composed
entirely and for this, C++, Vala, Python and Javasript languages are
used. GNOME is part of the GNU Project. Vala language is
basically OOP language with self-hosting compiler that generates C
code and uses GObject system. It can carry C and C# trace’s.
SpiderMonkey software is including C and C++ languages and It
supports IA-32, X86, X64, ARM, MIPS and SPARC platforms.
Monkey is dividing to two internals for optimization part and
contains an interpreter, the IonMonkey JIT compiler, and a garbage
collector. (IonMonkey and OdinMonkey).IonMonkey which aims to
enable many new optimizations that were impossible with the prior
JägerMonkey architecture. OdinMonkey is the name of Mozilla's
new optimization module for asm.js, an easily compilable subset of
JavaScript. OdinMonkey itself is not a JIT compiler, it uses the
current JIT compiler. It's included with Firefox from release version
22. As some of application areas, Mozilla Firefox, Thunderbird,
SeaMonkey, Acrobat Reader, Dreamweaver, Yahoo! Widgets, SAP
HANA Application Services, some playing games, emulators and
GNOME desktop environment version 3 and later.
Firefox has approximately %16 of worldwide usage as a “desktop”
browser and the third most popular web browser.
15
SAFARI
Figure 5
16
SPARTAN
Figure 6
17
OPERA
Figure 7
18
Chapter 2: MY BROWSER
Figure 8
SECTIONS OF MY EXPERIENCE
The browser can have lot of features but we can’t analysis from this
situation good or bad and occurs web browser deficits.
I.E: Windows is indispensable in the platform and contributions are
great because stable in desktop. Also mobile side, I.E is spending
low energy on the portable devices (Laptops, Phones, Tablets).But
It may not play all web players on the website. For Windows, a
unique browser actually. Internet Explorer doesn’t have high
hardware component for good performance on Windows.
Google Chrome: It can supports all different kind of things but
spending much ram capacity (min %10 more)
Some players can be heavy, for example; when we use flash player
for watching video on the website, browser forced to run flash
player actions. But we have to give the right about performance.
Chrome is the best, If we look from the performance window. Last
version of Chrome, webcam permission is not running Windows 7
professional version. But compatible with other versions.
Operating system affects the performance of browser. Safari
browser is the best browser on OS X platform. Battery life,
performance and compatibility are positive actions.
20
PROPERTIES WITHIN A STANDARD BROWSER
Figure 9
21
DISTINCTIVE FEATURES FROM EACH OTHER OF WEB BROWSERS
These features are according to user requests. It maybe occurs by
user’s demands and wishes. This kind little things are impressing
user. Some touch on; Google Chrome has cloud system, pretty
good themes, convenient extensions and applications on the web
store (Also Firefox and Internet Explorer have a store too). Also
Chrome has user login system via Google account and it supports
with cookies. Cookies are usually text files (generally small
files).When we visit to the website, cookies can remember our data
in second or later times (id and password).When we join the
website, the site may ask to us about language and later, what if we
choose this screen comes. Browser are storing the cookie files in
own structure. Periodically, we can delete these files via web
browser. Why we delete these files, because web sites can be
upgrade or some little changes cause crash problems, servers or
other hazards. Cookies are dividing to Session and Persistent
Cookies. Companies are developed some toolbars for web browser
searches. Through, info can be found from shortest way or quickly.
The famous toolbars are Google, Bing, Yahoo, Yandex, Ask and
Alexa Toolbar some of these, But this toolbar can tighten on the
browser.
Figure 10
22
NEW ADVANTAGES OR DISADVANTAGE OF WEB BROWSERS
23
another animations, flash player was running but it was staying
heavy and sometime was crashing. Now Youtube, They began new
method source to use via HTML5. Still, some websites couldn’t
pass to HTML5 and SSL.
Figure 11
24
- BrowseUI.dll: It is responsible for rendering the browser UI (User
Interface) such as menus and toolbars.
- ShDocVw.dll: It provides the navigation, local caching and history
functionalities for the browser.
- MSHTML.dll: It is at the heart of I.E and takes care of its HTML
and CSS parsing and rendering functionality. This dll is sometimes
referred to by its code name, ”Trident” and it exposes interfaces
that enable you to host it as an active document. Word, Excel, Visio
and many non-Microsoft applications also expose active document
interfaces so they can be hosted by shdocvw.dll. It also exposes a
set of API’s (Application Programming Interface) for runtime
inspection and modification of the DOM tree. The DOM tree is
further processed by a layout engine which then renders the
internal representation on screen.
- URLMon.dll: It offers functionality for MIME handling and code
download. And provides a thread-safe wrapper around WinInet.dll
and other protocol implementations.
- WinInet.dll: It is the protocol handler for HTTP, HTTPS and FTP. It
handles all network communication over these protocols. These
protocols along with cache management.
25
Figure 12
26
Almost, all browsers have 32-bit and 64 bit CPU architecture supports
on the OS.
Figure 13
Safari, Chrome, Yandex, Opera and some other browsers are using
webkit engines. 32-Bits sometimes be limited but 64 bits have wide
zone.
27
Table 1
Table 2
28
Table 3
DOM TREE
Table 4
30
Figure 14
31
software packing, software framework, hardware platform and
another development platform.
FEATURES OF JAVA LANGUAGE
32
And other features; swing, built controls and CSS, Modern
theme, 3D graphics features, Canvas API(for scene
consists graphical element),printing API, rich text support,
multi touch support, hi-DPI support(for hi-dpi
displays),hardware performance media engine(low latency
media framework) and self contained application
deployment model.
Chapter 3: TESTS OF WEB BROWSERS
Here, we research different kind of tests on web browsers. Browser
ability to render and modify the HTML elements in web pages, DOM
update speed and mathematical methods, webGL in HTML5 allows
3D graphics within the browser, ability to display a poster image on
the HTML5 video player, ability to play HTML5 videos encoded with
H.264/MPEG-4 AVC codec, theora codec and WebM codec. Via web
workers, allow the browsers to work on multiple tasks simultaneously.
We are testing two images or four images at the same time. 2D
games support, with canvas test evaluate browser ability to create
dynamic, scriptable rendering of 2D objects and some effects, array
functions.
DOM is the standard API JavaScript uses dynamic webpages, text
manipulations, boot times, use of ram and another tests. We
compared famous browser on windows platform and obtained some
data on the Internet. We analyzed different kind of hardwares on the
same platforms. We will research webkit, gecko, trident, blink, presto
and V8 JavaScript engines, HTML5 Capabilities and points.
We will test first on desktop platform. We may test on the some
websites. Via http://peacekeeper.futuremark.com website is providing
to test our browser. This website is analyzing and applying some
functions automatically.
These tests are; rendering (ex: square elements, animates), HTML5
WebGL (ex: simple transpared 3D cube) and video (ex: Codes and
other video support tools), web worker (JavaScript multiple actions),
game(2D sprite based), canvas(drawing and manipulating graphics),
33
data(add remove stored in array), DOM operations and text parsing.
So, we obtain the following tables and web browser features from
tables. Other test is on the html5test.com. Also this site is testing our
browser performance and it gives points for browser support features.
GOOGLE CHROME
34
Chrome supports all HTML5 capabilities and codecs. OPS and FPS values
are good and DOM speed score is useful. General Score is better than
other browsers on windows 7 platform. Also Canvas FPS has normal value.
(Chrome Version 39 - Webkit Engine)
INTERNET EXPLORER
Table 5
35
better than Chrome. Generally Chrome’s scores higher than Internet
Explorer.
(Internet Explorer Version 11-Trident Engine)
MOZILLA FIREFOX
Table 6
Firefox’s render values are low according to them and doesn’t support
some codecs (H264, Theora). HTML5 capabilities values are nearly
36
but Canvas value is better than Chrome and I.E. Data Part is
approximate to the Internet Explorer. DOM operation values and text
parsing parts are better than the others. (Firefox 38- Gecko Engine)
MY BROWSER
Table 7
37
and webglSphere doesn’t useful. Only canvas point can pass to the
Internet Explorer and other values have low points.
(My Browser Version 1.1 - WebKit Engine)
YANDEX BROWSER
Table 8
38
Yandex suite render point is better than the other browsers. Browser
is supporting all codecs and other settings. Text parsing value is
between chrome and Firefox. Canvas point is better than internet
explorer but it couldn’t pass Chrome and Firefox.
(Yandex Browser Version 15.2 – Webkit Engine)
39
TOR BROWSER
Table 9
Generally, the values are normal and it doesn’t support some codecs
(H264,Theora) and doesn’t support webglSphere. Other values are
normal or below.
(Tor Browser Version 5.02-Gecko Engine)
40
COMPARISON OF THE BROWSER
41
Table 10
42
I.E and Edge don’t supports some codecs (WebM, Theora). Chrome is the best for
functionality angle. High points are good, low points are bad values for feature support.
Table 11
43
Table 12
44
Table 13
45
Table 14
46
Table 15
47
Table 16
Figure 15
48
Figure 16
Figure 17
49
Figure 18
50
Figure 19
Figure 20
Figure 21
Figure 22 Figure 23
Figure 24
51
It was tested Haswell based Intel i7 5960x, 16 GB DDR4 RAM, Samsung 850 Pro SSD. But In
my own tests, my computer has low power from device part. Intel i5 M450, 6 GB DDR3 RAM,
640 GB 5400 RPM HD, ATI HD 5400 Graphics Card.
Figure 25
Chapter 4: CONCLUSIONS
52
Codecs (Theora, WebM) and webgl, some work contrast settings. But
for JavaScript part, we can’t say same thing. Also Safari, I.E and
Mozilla don’t support these video
The Browsers are updating and coming with new features. But
nevertheless, browsers don’t provide human’s requirements
performance, security, visualization, activity management and other
properties together. Some browsers are better from performance
angle, some browsers are better from safety and visual. Hence Apple,
Microsoft, Google, Mozilla are developing a new super browser jointly.
WebAssembly's (WASM) under the roof generated. This super team,
which aims to use the high programming language for desktop and
mobile browser. As it known, JavaScript is running on the browsers
but they want to change this idea. Because the say “old head” for
JavaScript. These companies want to remove JavaScript from
browsers. They are working on the .NET based “bytecode” coding
system. The aim is more safety, speed to the desktop and mobile
platforms. If they do this, browsers will run 20x more fast.
53
LIST OF ABBREVIATIONS
54
WEB BROWSER SOURCE CODES
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.embed.swing.JFXPanel;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebEvent;
import javafx.scene.web.WebView;
import javax.swing.*;
import javax.swing.text.DefaultEditorKit;
import java.awt.*;
import java.awt.event.*;
import java.net.MalformedURLException;
import java.net.URL;
public Browser(){
saveButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
JFileChooser saveFile = new JFileChooser();
saveFile.showSaveDialog(null);
System.out.println ("OPENED!!");
}
});
openButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
JFileChooser saveFile = new JFileChooser();
saveFile.showSaveDialog(null);
System.out.println ("SAVED!!");
}
});
55
frame.add(saveButton);
panel.add(saveButton);
frame.add(openButton);
panel.add(openButton);
createInitialize();
}
buttonGo.addActionListener(al);
urlField.addActionListener(al);
JPanel topBar = new JPanel(new BorderLayout(5, 0));// add Jpanel named “ topBar” and layout
topBar.setBorder(BorderFactory.createEmptyBorder(3, 5, 3, 5));
topBar.add(buttonReload,BorderLayout.WEST);
topBar.add(urlField, BorderLayout.CENTER);
topBar.add(buttonGo, BorderLayout.EAST);// reload, go buttons and textfield are adding to the top
bar panel
JPanel statusBar = new JPanel(new BorderLayout(5, 0));
// added panel and layout
statusBar.setBorder(BorderFactory.createEmptyBorder(3, 5, 3, 5));
statusBar.add(labelStatus, BorderLayout.CENTER);
//set border setting and label are adding to the status bar
panel.add(topBar, BorderLayout.NORTH);
panel.add(jfxPanel, BorderLayout.CENTER);
panel.add(statusBar, BorderLayout.SOUTH);
//top bar, jfx panel and status bar are adding to the panel.
copyAction.putValue(Action.NAME, "Copy");
editmenu.add(copyAction);
56
copyAction.putValue(Action.ACCELERATOR_KEY,KeyStroke.getKeyStroke(KeyEvent.VK_C,
KeyEvent.CTRL_DOWN_MASK));
// for action; giving name, shortcut under the mask and adding to the edit menu.
editmenu.add(new JSeparator());
// for action; giving name, shortcut under the mask and adding to the edit menu.
fileItem2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(fileItem2, "This Browser is created for Salih's diploma thesis -
2016", null, 1);
}});
closebutton.addActionListener(new ActionListener(){
57
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}});
buttonReload.addActionListener(new ActionListener(){
// adding action to reload button and show message.
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(buttonReload, "Please Press F5 ", null, 1);
}
});
filemenu.add(newbutton);
filemenu.add(openButton);
saveButton.add(new JSeparator());
filemenu.add(saveButton);
filemenu.add(saveas);
closebutton.add(new JSeparator());
// new,open,save, save as, close buttons are adding to the filemenu
filemenu.add(closebutton);
filemenu.addSeparator();
//file menu separator
help.add(fileItem2);
// help menusune fileItem2 adding
menubar.add(filemenu);
menubar.add(editmenu);
menubar.add(view);
menubar.add(help);
//file , edit, view, help menus are adding to the menubar
frame.setJMenuBar(menubar); // frame set to Menubar
frame.getContentPane().add(panel); // content pane getting or adding panel.
frame.setPreferredSize(new Dimension(800, 600)); // size of frame window (dimension)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // exit button is closing to the
program
frame.pack();
// reposition the window components
}
58
});
}
});
searchEngine.getLoadWorker().exceptionProperty().addListener(new
ChangeListener<Throwable>(){
public void changed(ObservableValue<? extends Throwable> o, Throwable old, Throwable value){
if (searchEngine.getLoadWorker().getState() != null){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
JOptionPane.showMessageDialog(panel, (value != null) ? searchEngine.getLocation() + "\n" +
value.getMessage() : searchEngine.getLocation() + "\nUnexpectedError","Error! Check Your
Address",JOptionPane.ERROR_MESSAGE);
// if it is wrong entry giving error message
}
});
}
}
});
59
String tmp = toURL(url);
if (tmp == null) {
tmp = toURL("http://" + url); // http comes automatically and url now empty value
}
searchEngine.load(tmp);// engine loading
}
});
}
60
LIST OF FIGURES AND TABLES
61
REFERENCES
Websites
Peacekeeper.futuremark.com
Html5test.com
Html5rocks.com
Thenextweb.com
Itfeed.com
Blog.en.updown.com
Taligarsiel.com/Projects
Wikipedia.org
Pcmag.com
Kr.droidget.com
Webkit.org/perf/sunspider
Anandtech.com
Msdn.microsoft.com
People.mozilla.org
Books
Java 7 SE
-THE END-
62