Chromium (web browser)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Chromium
64px
300px
A build of Chromium in 2021
Original author(s) Google[1]
Developer(s) Google mainly[2][3]
Initial release 2 September 2008; 15 years ago (2008-09-02)[1]
Written in C++ primarily[4] HTML, CSS, JavaScript for UI and test suite[5][6]
Operating system Windows, Linux, Android, iOS, macOS, BSDs
Platform IA-32, x86-64, ARM
License BSD[7] and others[8]
Website www.chromium.org/Home

Chromium is a free and open-source codebase for a web browser, principally developed and maintained by Google.[3] Google uses the code to make its Chrome browser, which has additional features.

The Chromium codebase is widely used. Microsoft Edge, Samsung Internet, Opera, and many other browsers are based on the code. Moreover, significant portions of the code are used by several app frameworks.

Google does not provide an official or stable version of the Chromium browser. All versions released with the Chromium name and logo are built by other parties.

Licensing

Chromium is an entirely free and open-source software project. The Google-authored portion is shared under the 3-clause BSD license.[7] Other parts are subject to a variety of licenses, including MIT, LGPL, Ms-PL, and an MPL/GPL/LGPL tri-license.[8]

This licensing permits any party to build the codebase and share the resulting browser executable with the Chromium name and logo. Thus many Linux distributions do this, as well as FreeBSD and OpenBSD.[9]

Differences from Google Chrome

Chromium provides the vast majority of source code for Google Chrome, so the name "Chromium" was chosen by Google because chromium metal is used in chrome plating.[1][10]

Features

Chromium lacks the following Chrome features:[9]

Branding and licensing

While Chrome has the same user interface functionality as Chromium, it changes the color scheme to the Google-branded one. Unlike Chromium, Chrome is not open-source, so its binaries are licensed as freeware under the Google Chrome Terms of Service.[12]

Development

The Chromium browser codebase contains about 35 million source lines of code.[4]

Contributors

Chromium has been a Google project since its inception,[1][3] and Google employees have done the bulk of the development work.[2]

Google refers to this project and the offshoot Chromium OS as "The Chromium Projects",[13] and its employees use @chromium.org email addresses for this development work. However, in terms of governance, "Chromium Projects" are not independent entities; Google retains firm control of them.[3]

The Chromium browser codebase is widely used, so others have made important contributions, most notably Microsoft, Igalia, Yandex, Intel, Samsung, LG, Opera, and Brave.[2][3] Some employees of these companies also have @chromium.org email addresses.

Programming languages

C++ is the primary language, comprising about half of the codebase.[4] This includes the Blink and V8 engines, the implementation of HTTP and other protocols, the internal caching system, and other essential browser components.

Some of the user interface is implemented in HTML, CSS, and JavaScript.[5][4] An extensive collection of web platform tests are also written in these languages.[6]

About 10% of the codebase is written in C.[4] This is mostly from third-party libraries that provide essential functionality, such as SQLite and numerous codecs.[14]

Support for mobile operating systems requires special languages: Java for Android, and for iOS both Swift and Objective-C.[5][4] (A copy of Apple's WebKit engine is also in the codebase, since it is required for iOS browsers.[15])

Logistics

The bug tracking system is a publicly accessible website.[16] Participants are identified by their email addresses.

The Chromium continuous integration system automatically builds and tests the codebase several times a day.[17]

Builds are identified by a four-part version number that is major.minor.build.patch.[18] This versioning scheme and the branch points that occur every six to seven weeks are from Google Chrome and its development cycle.[19]

History

2008 to 2010

Google Chrome debuted in September 2008, and along with its release, the Chromium source code was also made available, allowing builds to be constructed from it.[1][20][21]

Upon release, Chrome was criticized for storing a user's passwords without the protection of a master password. Google has insisted that a master password provides no real security against knowledgeable hackers, but users argued that it would protect against co-workers or family members borrowing a computer and being able to view stored passwords as plaintext.[22] In December 2009, Chromium developer P. Kasting stated: "A master password was issue 1397. That issue is closed. We will not implement a master password. Not now, not ever. Arguing for it won't make it happen. 'A bunch of people would like it' won't make it happen. Our design decisions are not democratic. You cannot always have what you want."[23]

File:File-Chromium-Linux-Alpha.png
An alpha build of Chromium 3 for Linux

Version 3 was the first alpha available for Linux. Chromium soon incorporated native theming for Linux, using the GTK+ toolkit to allow it fit into the GNOME desktop environment.[24][25][26][27] Version 3 also introduced JavaScript engine optimizations and user-selectable themes.[28]

Version 6 introduced features for user interface minimalism, as one of Google's goals was to make the browser "feel lightweight (cognitively and physically) and fast".[29] The changes were a unified tools menu, no home button by default (although user configurable), a combined reload/stop button, and the bookmark bar deactivated by default. It also introduced an integrated PDF reader, WebM and VP8 support for use with HTML5 video, and a smarter URL bar.[30][31]

Version 7 boosted HTML5 performance to twice that of prior versions via hardware acceleration.[32][33][34]

Version 8 focused on improved integration into Chrome OS and improved cloud features. These include background web applications, host remoting (allowing users centrally to control features and settings on other computers) and cloud printing.[34]

Version 9 introduced a URL bar feature for exposing phishing attacks, plus sandboxing for the Adobe Flash plug-in. Other additions were the WebGL library and access for the new Chrome Web Store.[35][36][37]

2011

File:Chromium 11 Logo.svg
Chromium logo introduced in 2011[38]

In February, Google announced that it was considering large-scale user interface (UI) changes, including at least partial elimination of the URL bar, which had been a mainstay of browsers since the early years of the Web. The proposed UI was to be a consolidation of the row of tabs and the row of navigation buttons, the menu, and URL bar into a single row. The justification was freeing up more screen space for web page content. Google acknowledged that this would result in URLs not always being visible to the user, that navigation controls and menus may lose their context, and that the resulting single line could be quite crowded.[39] However, by August, Google decided that these changes were too risky and shelved the idea.[40]

In March, Google announced other directions for the project. Development priorities focused on reducing the size of the executable, integrating web applications and plug-ins, cloud computing, and touch interface support.[41][42] Thus a multi-profile button was introduced to the UI, allowing users to log into multiple Google and other accounts in the same browser instance. Other additions were malware detection and support for hardware-accelerated CSS transforms.[43][44]

By May, the results of Google's attempts to reduce the file size of Chromium were already being noted. Much of the early work in this area concentrated on shrinking the size of WebKit, the image resizer, and the Android build system.[45] Subsequent work introduced a more compact mobile version that reduced the vertical space of the UI.[46][47]

Other changes in 2011 were GPU acceleration on all pages, adding support for the new Web Audio API, and the Google Native Client (NaCl) which permits native code supplied by third parties as platform-neutral binaries to be securely executed within the browser itself.[48][49] Google's Skia graphics library was also made available for all Chromium versions.[50][51]

Since 2012

The sync service added for Google Chrome in 2012 could also be used by Chromium builds.[52][53] The same year, a new API for high-quality video and audio communication was added, enabling web applications to access the user's webcam and microphone after asking permission to do so.[54][55] Then GPU accelerated video decoding for Windows and support for the QUIC protocol were added.[56][57]

In 2013, Chromium's modified WebKit rendering engine was officially forked as the Blink engine.[58][59]

Other changes in 2013 were the ability to reset user profiles and new browser extension APIs.[60] Tab indicators for audio and webcam usage were also added, as was automatic blocking of files detected as malware.[61]

Version 69 introduced a new browser theme, as part of the 10th anniversary of Google Chrome.[62] The same year, new measures were added to curtail abusive advertising.[63]

Starting in March 2021, the Google Chrome sync service can no longer be used by Chromium builds.[64][11]

Browsers based on Chromium

In addition to Google Chrome, many other notable web browsers have been based on the Chromium code.

Active

  • Amazon Silk
  • Avast Secure Browser developed by Avast
  • Beaker, a peer-to-peer web browser
  • Blisk is a browser available for Windows 7 and later, OS X 10.9 and later that aims to provide an array of useful tools for Web development.
  • Brave is an open-source web browser that aims to block website trackers and remove intrusive internet advertisements.
  • CodeWeavers CrossOver Chromium is an unofficial bundle of a Wine derivative and Chromium Developer Build 21 for Linux and macOS, first released on 15 September 2008 by CodeWeavers as part of their CrossOver project.[65][66]
  • Comodo Dragon is a rebranded version of Chromium for 32-bit Windows 8.1, 8, Windows 7 and Vista[67] produced by the Comodo Group. According to the developer, it provides improved security and privacy features.[68]
  • Cốc Cốc is a freeware web browser focused on the Vietnamese market, developed by Vietnamese company Cốc Cốc, based on Chromium open-source code for Windows.[69] According to data published by StatCounter in July 2013, Cốc Cốc has passed Opera to become one of the top 5 most popular browsers in Vietnam[70] within 2 months after its official release.[71]
  • Dissenter is a fork of Brave browser that adds a comment section to any URL.[72]
  • Epic Browser is a privacy-centric web browser developed by Hidden Reflex of India and based on Chromium source code.[73]
  • Falkon an open-source Qt-based GUI, using the Chromium-based QtWebEngine.[74]
  • qutebrowser a Qt-based GUI with Vim-like keybindings, using the Chromium-based QtWebEngine.[75]
  • Microsoft Edge is Chromium-based as of 15 January 2020.[76][77]
  • Naver Whale is a South Korean freeware web browser developed by Naver Corporation, which is also available in English. It became available on Android on 13 April 2018.
  • Opera began to base its web browser on Chromium with version 15.[78]
  • Qihoo 360 Secure Browser is a Chromium-based Chinese web browser developed by Qihoo.[79]
  • SalamWeb is a web browser based on Chromium for Muslims, which only allows Halal websites/information.
  • Samsung Internet shipped its first Chromium-based browser in a Galaxy S4 model released in 2013.[80]
  • Sleipnir is a Chromium derivative browser for Windows and macOS. One of its main features is linking to Web apps (Facebook, Twitter, Dropbox, etc.) and smartphone apps (Google Map, etc.). It also boasts what it calls "beautiful text," and has unique graphical tabs, among other features.[81]
  • Slimjet: A Chromium-based web browser released by FlashPeak that features built-in webpage translation, PDF viewing capability and a PPAPI flash plugin, features usually missing from Chromium-based browsers currently not supported.
  • SRWare Iron is a freeware release of Chromium for Windows, macOS and Linux, offering both installable and portable versions. Iron disables certain configurable Chromium features that could share information with third parties and additional tracking features that Google adds to its Chrome browser.[82]
  • Torch is a browser based on Chromium for Windows. It specialises in media downloading and has built-in media features, including a torrent engine, video grabber and sharing button.[83]
  • ungoogled-chromium is a browser based on Chromium. Initially developed for Linux, versions for Windows and MacOS were later added. It removes Google services built into Chromium.[84]
  • Vivaldi is a browser for Windows, macOS and Linux developed by Vivaldi Technologies.[85][86] Chromium-based Vivaldi aims to revive the rich features of the Presto-era Opera with its own proprietary modifications.
  • Yandex Browser is a browser created by the Russian software company Yandex for macOS, Windows, Linux, Android and iOS.[87] The browser integrates Yandex services, which include a search engine, a machine translation service and cloud storage. On Android it provides ability to install chrome extensions on a mobile browser.[88]

Discontinued

  • Flock – a browser that specialized in providing social networking and had Web 2.0 facilities built into its user interface. It was based on Chromium starting with version 3.0. Flock was discontinued in April 2011.[89][90]
  • Redcore – a browser developed by Chinese company Redcore Times (Beijing) Technology Ltd. and marketed as a domestic product that was developed in-house, but was revealed to be based on Chromium[91]
  • Rockmelt – a Chromium-based browser for Windows, macOS, Android and iOS under a commercial proprietary licence. It integrated features from Facebook and Twitter, but was discontinued in April 2013 and fully retired at 10am PT on 31 July 2013.[92][93] On 2 August 2013, Rockmelt was acquired by Yahoo! Rockmelt's extensions and its website was shut down after 31 August 2013. Yahoo! plans to integrate Rockmelt's technology into other products.[94]

Use in app frameworks

Significant portions of the Chromium code are used by some application frameworks. Notable examples are Electron, the Chromium Embedded Framework, and the Qt WebEngine.[74] These frameworks have been used to create many apps.

References

  1. 1.0 1.1 1.2 1.3 1.4 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 2.2 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 3.2 3.3 3.4 Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 4.2 4.3 4.4 4.5 Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 5.2 Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
  7. 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. 34.0 34.1 Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Lua error in package.lua at line 80: module 'strict' not found.
  73. Lua error in package.lua at line 80: module 'strict' not found.
  74. 74.0 74.1 Lua error in package.lua at line 80: module 'strict' not found.
  75. Lua error in package.lua at line 80: module 'strict' not found.
  76. Lua error in package.lua at line 80: module 'strict' not found.
  77. Lua error in package.lua at line 80: module 'strict' not found.
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Lua error in package.lua at line 80: module 'strict' not found.
  91. Lua error in package.lua at line 80: module 'strict' not found.
  92. Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. Lua error in package.lua at line 80: module 'strict' not found.

External links

  • No URL found. Please specify a URL here or add one to Wikidata.