As a component of
GNOME Core Applications, it provides full integration with
GNOME settings and other components like
GNOME Keyring to securely store passwords, following the
GNOME Human Interface Guidelines and the GNOME
software stack to provide support for features such as
Wayland and the latest major
GTK versions, an archive format for web pages that combines all the files of web pages into only one single file; and consume fewer
system resources than the major cross-platform web browsers.
Web standards support The underlying
WebKit browser engine provides support for
HTML 4,
XHTML,
CSS 1 and 2, most of
HTML 5 and CSS 3,
Apple, which is the primary corporate backer of WebKit, rejected at least 16 web APIs because they could be used in a
fingerprinting attack to help personally identify users and track them, while providing limited or no benefit to the user. As
HTML5test checks for most of these APIs, it artificially lowers WebKit's "score" in points (as does lack of DRM support). Web once supported
NPAPI plug-ins, such as
Java and
Adobe Flash, but support was removed in GNOME 3.34. Flash had gained infamy throughout the years for usability and stability issues, incessant security vulnerabilities, its proprietary nature, its ability to let sites deploy particularly obnoxious web ads, It supports desktop, tablet and phone form factors. ("Narrow Mode").
Ad blocking Since GNOME 3.18, Web is configured to
block ads and pop-ups by default. One of the developers, Adrián Pérez de Castro, compared the old and new ad blockers. He found that the switch saved approximately 80 MiB of RAM per browser tab.
Google Safe Browsing and security sandboxing Since GNOME 3.28, Web has support for
Google Safe Browsing, to help prevent users from visiting malicious websites. Since GNOME 3.34, Web explicitly requires a minimum of WebKitGTK 2.26 or later. for tab processes, which is intended to prevent malicious websites from hijacking the browser and using it to spy on other tabs or run malicious code on the user's computer. If such code found another exploit in the operating system allowing it to become
root, the result could be a disaster for all users of the system. Making the sandbox a priority was brought on, according to Michael Catanzaro, because he was particularly concerned with the code quality of
OpenJPEG and the numerous security problems that had been discovered in it, including many years of failing security reviews by Ubuntu. He further explained that web compatibility requires that sites believe that Web is a major browser. Sending them the
user agent of
Apple Safari causes fewer broken websites than others (due to sharing the WebKit engine), but also causes caching servers to deliver
JPEG 2000 images, of which Safari is the only major browser to support. There is no other usable open source option for JPEG 2000 support. Fixing OpenJPEG, which is the official
reference software, will be a massive undertaking that could take years to sort out. Enabling the Bubblewrap Sandbox would cause many vulnerabilities in this and other components to become "minimally useful" to potential attackers. In GNOME 3.36, Web gained native support for PDF documents by using
PDF.js. Michael Catanzaro explained that having websites open
Evince to display PDF files was insecure, as it could be used to escape the browser's security sandbox. Since Evince was the last user of NPAPI, this allowed the remaining support code for the obsolete plug-in model (where additional vulnerabilities could be hiding) to be removed. Since the NPAPI support had a hard dependency on X11, moving to PDF.js also allowed that dependency to be dropped. In GNOME 47, it was disabled because of Mozilla changing the way Firefox Sync worked.
Extensions Web once supported extensions and a package was maintained containing the official ones. This was later removed due to problems with stability and maintainability. Some popular extensions, such as
ad blocking, were moved to the core application. The project has expressed an interest in implementing support for the
WebExtension add-on format used by Chrome, Firefox, and some other major browsers, if interested contributors can be found. Experimental support for WebExtensions was introduced in GNOME 43. == Reception ==