diff --git a/README.md b/README.md index 338a5b23..2e7ce4c1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,45 @@ # ungoogled-chromium -Patches for Google Chromium +**Patches for Google Chromium to remove integration with Google services and add additional features** + +### Features + +- Disabled background communication with Google servers +- Disabled safe browsing +- Disabled browser sign-in +- Disabled searching in Omnibox +- Disabled automatic formatting of URL in Omnibox +- Disabled JavaScript dialog boxes from showing when a page is closing +- Added menu item under "More tools" to clear the HTTP authentication cache on-demand +- Disabled persistent per-site settings in Preferences file +- Includes Preferences file with preset settings + +## Building + +Right now, only Debian build scripts are provided. Windows build scripts will be added in the future. + +### Debian and derivatives +**NOTE:** Tested on Debian Jessie 64-bit + + mkdir chromium + cd chromium + git clone https://github.com/Eloston/ungoogled-chromium.git src + cd src + ./debian/rules download-source + # Run dpkg-checkbuilddeps to find packages needed for building + dpkg-buildpackage -b -uc + +Debian packages will appear under chromium/ + +## TODO + +- Add the setuid sandbox as a separate Debian package +- Add additional patches to disable connections with clients2.google.com +- Improve current patches +- Add Windows support +- Add settings menu to manually edit credentials database(?) + +## Credits + +Debian for build scripts +Google for Chromium + diff --git a/debian/README b/debian/README new file mode 100644 index 00000000..247d0ce0 --- /dev/null +++ b/debian/README @@ -0,0 +1,10 @@ +Chromium has an extensive set of command-line flags that change rapidly, so +it's not really practical to include documentation in the package. This page +is kept relatively up to date with that information: + +http://peter.sh/experiments/chromium-command-line-switches + +The chromium-inspector package provides access to additional web developer +tools. Up-to-date documentation is available at: + +https://developer.chrome.com/devtools/index diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 00000000..9e8ab07c --- /dev/null +++ b/debian/TODO @@ -0,0 +1,63 @@ +use system libhunspell-dev +use system vpx (should be in sync now) + +remove third_party/npapi + +disable extensions? + +webrtc seems to get built regardles of enable_webrtc=0? + +remove sync + +don't support breakpad (remove a lot of stuff from breakpad/src/third_party) + +remove chrome_elf? +remove cloud_print (not available in printers anyway)? + +disable bluetooth + +remove third_party/WebKit/Source/wtf/unicode? + +remove third_party/khronos (need to handle their changes, including gl2chromium.h from gl2.h) +remove third_party/mesa + +remove third_party/liblouis (link liblouis2-dev)? +remove third_party/swig (use swig package)? +remove third_party/ply (use python-ply)? +remove third_party/lzma_sdk? +remove third_party/gpsd? +remove third_party/usb_ids (use usbutils)? +remove third_party/clang_format? +remove third_party/webpagereplay? +remove third_party/chromite? +remove third_party/libyuv (libmagickcore5: /usr/lib/x86_64-linux-gnu/ImageMagick-6.7.7/modules-Q16/coders/yuv.so)? +remove third_party/libmtp (link libmtp-dev)? +remove third_party/libc++ (link libc++-dev, maybe only needed for clang build)? +remove third_party/libc++abi (link libc++abi-dev, maybe only needed for clang build)? +remove third_party/libwebm (package libwebm http://www.webmproject.org/code)? +remove third_party/webgl (package webgl http://www.khronos.org/registry/webgl/sdk)? +remove third_party/pyftpdlib (use python-pyftpdlib)? +remove third_party/pywebsocket (disable or use python-mod/pywebsocket)? + +follow instructions in third_party/webdriver/README.chromium to generate atoms.*, + remove third_party/webdriver/pylib/selenium, and use python-selenium + +remove base/third_party/xdg_mime (use support in xdg-utils)? + +package polymer and use it instead of third_party/polymer +package jstemplate and use it instead of third_party/jstemplate + +use system libjingle, libcld2, libphonenumber, libadressinput, cacheinvalidation, dynamic_annotations, angle, smhasher, sfntly, mt19937ar, ... + +remove third_party/libXNVCtrl (package currently in contrib, bug #747837) +remove third_party/iccjpeg (currently no library to link against, bug #747839) + +remove crypto/third_party/nss? + +net/third_party/nss is majorly patched an not likely easy to swap out for system version +base/third_party/icu reproduces stuff from system icu, but uses alternative namespace + +remove chrome/test (gyp includes stuff that likely isn't needed from here)? +remove chrome/installer (gyp includes stuff that likely isn't needed from here)? + +build with clang. diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..d751b5f9 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6 @@ +chromium-browser (42.0.2311.153-1) jessie; urgency=low + + * Initial Debian build + - Based off of 43.0.2357.65-1~deb8u1 + + -- Eloston Fri, 12 Jun 2015 00:00:00 +0000 diff --git a/debian/chromedriver.install b/debian/chromedriver.install new file mode 100644 index 00000000..a07f3550 --- /dev/null +++ b/debian/chromedriver.install @@ -0,0 +1 @@ +out/Release/chromedriver usr/lib/chromium diff --git a/debian/chromium-inspector.install b/debian/chromium-inspector.install new file mode 100644 index 00000000..5e8edb6c --- /dev/null +++ b/debian/chromium-inspector.install @@ -0,0 +1 @@ +out/Release/resources/inspector/* usr/share/chromium-inspector diff --git a/debian/chromium-inspector.links b/debian/chromium-inspector.links new file mode 100644 index 00000000..c34730ec --- /dev/null +++ b/debian/chromium-inspector.links @@ -0,0 +1 @@ +usr/share/chromium-inspector usr/lib/chromium/resources/inspector diff --git a/debian/chromium-l10n.install b/debian/chromium-l10n.install new file mode 100644 index 00000000..867d2af9 --- /dev/null +++ b/debian/chromium-l10n.install @@ -0,0 +1 @@ +out/Release/locales usr/lib/chromium diff --git a/debian/chromium.desktop b/debian/chromium.desktop new file mode 100644 index 00000000..8d2c878c --- /dev/null +++ b/debian/chromium.desktop @@ -0,0 +1,139 @@ +[Desktop Entry] +Version=1.0 +Name=Chromium Web Browser +Name[ast]=Restolador web Chromium +Name[ca]=Navegador web Chromium +Name[de]=Chromium-Webbrowser +Name[es]=Navegador web Chromium +Name[fr]=Navigateur Web Chromium +Name[gl]=Navegador web Chromium +Name[he]=דפדפן האינטרנט Chromium +Name[hr]=Chromium web preglednik +Name[hu]=Chromium webböngésző +Name[id]=Peramban Web Chromium +Name[it]=Browser web Chromium +Name[ja]=Chromium ウェブ・ブラウザ +Name[ko]=Chromium 웹 브라우저 +Name[pt_BR]=Chromium Navegador da Internet +Name[ru]=Веб-браузер Chromium +Name[sl]=Chromium spletni brskalnik +Name[sv]=Webbläsaren Chromium +Name[ug]=Chromium توركۆرگۈ +Name[zh_CN]=Chromium 网页浏览器 +Name[zh_HK]=Chromium 網頁瀏覽器 +Name[zh_TW]=Chromium 網頁瀏覽器 +GenericName=Web Browser +GenericName[ar]=متصفح الشبكة +GenericName[ast]=Restolador web +GenericName[bg]=Уеб браузър +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[ca]=Navegador web +GenericName[cs]=WWW prohlížeč +GenericName[da]=Browser +GenericName[de]=Webbrowser +GenericName[el]=Περιηγητής ιστού +GenericName[en_GB]=Web Browser +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fi]=WWW-selain +GenericName[fil]=Web Browser +GenericName[fr]=Navigateur Web +GenericName[gl]=Navegador web +GenericName[gu]=વેબ બ્રાઉઝર +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hr]=Web preglednik +GenericName[hu]=Webböngésző +GenericName[id]=Peramban Web +GenericName[it]=Browser web +GenericName[ja]=ウェブ・ブラウザ +GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ +GenericName[ko]=웹 브라우저 +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Tīmekļa pārlūks +GenericName[ml]=വെബ് ബ്രൌസര്‍ +GenericName[mr]=वेब ब्राऊजर +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador da Internet +GenericName[ro]=Navigator de Internet +GenericName[ru]=Веб-браузер +GenericName[sk]=WWW prehliadač +GenericName[sl]=Spletni brskalnik +GenericName[sr]=Интернет прегледник +GenericName[sv]=Webbläsare +GenericName[ta]=இணைய உலாவி +GenericName[te]=మహాతల అన్వేషి +GenericName[th]=เว็บเบราว์เซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[ug]=توركۆرگۈ +GenericName[uk]=Навігатор Тенет +GenericName[vi]=Bộ duyệt Web +GenericName[zh_CN]=网页浏览器 +GenericName[zh_HK]=網頁瀏覽器 +GenericName[zh_TW]=網頁瀏覽器 +Comment=Access the Internet +Comment[ar]=الدخول إلى الإنترنت +Comment[ast]=Accesu a Internet +Comment[bg]=Достъп до интернет +Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন +Comment[ca]=Accediu a Internet +Comment[cs]=Přístup k internetu +Comment[da]=Få adgang til internettet +Comment[de]=Internetzugriff +Comment[el]=Πρόσβαση στο Διαδίκτυο +Comment[en_GB]=Access the Internet +Comment[es]=Acceda a Internet +Comment[et]=Pääs Internetti +Comment[fi]=Käytä internetiä +Comment[fil]=I-access ang Internet +Comment[fr]=Explorer le Web +Comment[gl]=Acceda a Internet +Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો +Comment[he]=גישה לאינטרנט +Comment[hi]=इंटरनेट तक पहुंच स्थापित करें +Comment[hr]=Pristupite Internetu +Comment[hu]=Az internet elérése +Comment[id]=Akses Internet +Comment[it]=Accesso a Internet +Comment[ja]=インターネットにアクセス +Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ +Comment[ko]=인터넷에 연결합니다 +Comment[lt]=Interneto prieiga +Comment[lv]=Piekļūt internetam +Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക +Comment[mr]=इंटरनेटमध्ये प्रवेश करा +Comment[nb]=Gå til Internett +Comment[nl]=Verbinding maken met internet +Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ +Comment[pl]=Skorzystaj z internetu +Comment[pt]=Aceder à Internet +Comment[pt_BR]=Acessar a internet +Comment[ro]=Accesaţi Internetul +Comment[ru]=Доступ в Интернет +Comment[sk]=Prístup do siete Internet +Comment[sl]=Dostop do interneta +Comment[sr]=Приступите Интернету +Comment[sv]=Surfa på Internet +Comment[ta]=இணையத்தை அணுகுதல் +Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి +Comment[th]=เข้าถึงอินเทอร์เน็ต +Comment[tr]=İnternet'e erişin +Comment[ug]=ئىنتېرنېتنى زىيارەت قىلىش +Comment[uk]=Доступ до Інтернету +Comment[vi]=Truy cập Internet +Comment[zh_CN]=访问互联网 +Comment[zh_HK]=連線到網際網路 +Comment[zh_TW]=連線到網際網路 +Exec=/usr/bin/chromium %U +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=chromium +Categories=Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml_xml;x-scheme-handler/http;x-scheme-handler/https; +StartupWMClass=Chromium +StartupNotify=true diff --git a/debian/chromium.dirs b/debian/chromium.dirs new file mode 100644 index 00000000..875fc287 --- /dev/null +++ b/debian/chromium.dirs @@ -0,0 +1,6 @@ +usr/bin + +etc/chromium.d + +usr/lib/chromium/plugins +usr/lib/chromium/resources diff --git a/debian/chromium.install b/debian/chromium.install new file mode 100644 index 00000000..81e36f74 --- /dev/null +++ b/debian/chromium.install @@ -0,0 +1,16 @@ +out/Release/chromium usr/lib/chromium + +out/Release/*.so usr/lib/chromium +out/Release/*.bin usr/lib/chromium +out/Release/*.pak usr/lib/chromium +out/Release/icudtl.dat usr/lib/chromium + +out/Release/resources/*.pak usr/lib/chromium/locales + +debian/presubj usr/share/bug/chromium + +debian/master_preferences etc/chromium.d + +debian/chromium.xml usr/share/gnome-control-center/default-apps + +debian/chromium.desktop usr/share/applications diff --git a/debian/chromium.links b/debian/chromium.links new file mode 100644 index 00000000..4b06380a --- /dev/null +++ b/debian/chromium.links @@ -0,0 +1,2 @@ +usr/share/icons/hicolor/32x32/apps/chromium.xpm usr/share/pixmaps/chromium.xpm +usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium.png diff --git a/debian/chromium.lintian-overrides b/debian/chromium.lintian-overrides new file mode 100644 index 00000000..55c32f59 --- /dev/null +++ b/debian/chromium.lintian-overrides @@ -0,0 +1,12 @@ +# sandbox is intentionally suid +#setuid-binary usr/lib/chromium/chrome-sandbox 4755 root/root +# ffmpeg doesn't support pic +shlib-with-non-pic-code usr/lib/chromium/libffmpegsumo.so +# currently unavoidable embedded libraries +embedded-library usr/lib/chromium/libffmpegsumo.so: libavcodec +embedded-library usr/lib/chromium/libffmpegsumo.so: libavutil +embedded-library usr/lib/chromium/chromium: sqlite +embedded-library usr/lib/chromium/chromium: libpng +# temporarily accepting these code copies +embedded-library usr/lib/chromium/chromium: srtp +embedded-library usr/lib/chromium/chromium: lcms2 diff --git a/debian/chromium.maintscript b/debian/chromium.maintscript new file mode 100644 index 00000000..28a8af3f --- /dev/null +++ b/debian/chromium.maintscript @@ -0,0 +1,4 @@ +# remove wheezy era conffiles (can be removed post-jessie) +rm_conffile /etc/chromium/default 37.0.2062.120-3~ +rm_conffile /etc/chromium/master_preferences 37.0.2062.120-3~ +rm_conffile /etc/chromium/initial_bookmarks.html 37.0.2062.120-3~ diff --git a/debian/chromium.manpages b/debian/chromium.manpages new file mode 100644 index 00000000..8026ed07 --- /dev/null +++ b/debian/chromium.manpages @@ -0,0 +1 @@ +out/Release/chromium.1 diff --git a/debian/chromium.menu b/debian/chromium.menu new file mode 100644 index 00000000..18d5311c --- /dev/null +++ b/debian/chromium.menu @@ -0,0 +1,5 @@ +?package(chromium):needs="x11" section="Applications/Network/Web Browsing" \ + title="Chromium" \ + longtitle="Chromium Web Browser" \ + command="chromium" \ + icon="/usr/share/pixmaps/chromium.xpm" diff --git a/debian/chromium.postinst b/debian/chromium.postinst new file mode 100644 index 00000000..74bc1098 --- /dev/null +++ b/debian/chromium.postinst @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] ; then + update-alternatives --install /usr/bin/x-www-browser \ + x-www-browser /usr/bin/chromium 40 + update-alternatives --install /usr/bin/gnome-www-browser \ + gnome-www-browser /usr/bin/chromium 40 +fi + +#DEBHELPER# diff --git a/debian/chromium.preinst b/debian/chromium.preinst new file mode 100644 index 00000000..0e80c614 --- /dev/null +++ b/debian/chromium.preinst @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +# workaround for #766420 (this can be removed post-jessie) +if test "$1" = "upgrade"; then + test ! -d /usr/share/pixmaps/chromium.png || rm -rf /usr/share/pixmaps/chromium.png + test ! -d /usr/share/pixmaps/chromium.xpm || rm -rf /usr/share/pixmaps/chromium.xpm +fi + +#DEBHELPER# diff --git a/debian/chromium.prerm b/debian/chromium.prerm new file mode 100644 index 00000000..2c756d2f --- /dev/null +++ b/debian/chromium.prerm @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] ; then + update-alternatives --remove x-www-browser /usr/bin/chromium + update-alternatives --remove gnome-www-browser /usr/bin/chromium +fi + +#DEBHELPER# diff --git a/debian/chromium.xml b/debian/chromium.xml new file mode 100644 index 00000000..4337c312 --- /dev/null +++ b/debian/chromium.xml @@ -0,0 +1,16 @@ + + + + + + Chromium + chromium + /usr/bin/chromium %s + chromium + false + true + /usr/bin/chromium %s + /usr/bin/chromium --new-window %s + + + diff --git a/debian/compat b/debian/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..9d410cdc --- /dev/null +++ b/debian/control @@ -0,0 +1,164 @@ +Source: chromium-browser +Section: web +Priority: optional +Maintainer: Debian Chromium Maintainers +Uploaders: + Giuseppe Iuculano , + Michael Gilbert , +Vcs-Git: git://anonscm.debian.org/pkg-chromium/pkg-chromium.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-chromium/pkg-chromium.git +Homepage: http://www.chromium.org/Home +Build-Depends: + clang (>= 3.5), + debhelper (>= 9), + gyp, + python3, + pkg-config, + ninja-build, + python-jinja2, + ca-certificates, + wget, + flex, + yasm, + xvfb, + wdiff, + gperf, + bison, + valgrind, + xz-utils, + x11-apps, + xfonts-base, + libglewmx-dev, + libgl1-mesa-dev, + libglu1-mesa-dev, + libegl1-mesa-dev, + libgles2-mesa-dev, + mesa-common-dev, + libgtk2.0-dev, + libglib2.0-dev, + libxt-dev, + libre2-dev, + libpng-dev, + libxss-dev, + libelf-dev, + libvpx-dev, + libssl-dev, + libpci-dev, + libcap-dev, + libdrm-dev, + libusb-dev, + libicu-dev, + libkrb5-dev, + libexif-dev, + libudev-dev, + libopus-dev, + libwebp-dev, + libxtst-dev, + libsrtp-dev, + libjpeg-dev, + libxml2-dev, + libxslt1-dev, + libpulse-dev, + libspeex-dev, + libpam0g-dev, + libsnappy-dev, + libgconf2-dev, + libasound2-dev, + libjsoncpp-dev, + libspeechd-dev, + libminizip-dev, + libhunspell-dev, + libmodpbase64-dev, + libgnome-keyring-dev, + libnss3-dev (>= 3.12.3), + libnspr4-dev (>= 2:4.9), + libcups2-dev (>= 1.5.0), + libevent-dev (>= 1.4.13), + libjs-jquery, + libjs-excanvas, + libjs-jquery-flot, + libgcrypt20-dev, + fonts-ipafont-gothic, + fonts-ipafont-mincho, +Built-Using: + libjs-jquery, + libjs-jquery-flot, +Standards-Version: 3.9.6 + +Package: chromium +Architecture: i386 amd64 +Depends: + ${misc:Depends}, + ${shlibs:Depends}, + x11-utils, + xdg-utils, +Suggests: + chromium-l10n, + chromium-inspector, +Provides: + www-browser, + gnome-www-browser, +Description: web browser + Web browser that aims to build a safer, faster, and more stable internet + browsing experience. + . + This package contains the web browser component. + +Package: chromium-dbg +Architecture: i386 amd64 +Section: debug +Priority: extra +Depends: + ${misc:Depends}, + chromium (= ${binary:Version}), +Description: web browser - debugging symbols + A web browser that aims to build a safer, faster, and more stable internet + browsing experience. + . + This package contains the debugging symbols. + +Package: chromium-l10n +Architecture: all +Section: localization +Depends: + ${misc:Depends}, + chromium (>= ${source:Version}), +Description: web browser - language packs + Web browser that aims to build a safer, faster, and more stable internet + browsing experience. + . + This package contains language packages for: + am, ar, bg, bn, ca, cs, da, de, el, en-GB, es-419, es, et, fi, fil, fr, gu, he, + hi, hr, hu, id, it, ja, kn, ko, lt, lv, ml, mr, nb, nl, pl, pt-BR, pt-PT, + ro, ru, sk, sl, sr, sv, sw, ta, te, th, tr, uk, vi, zh-CN, zh-TW + +Package: chromium-inspector +Architecture: all +Multi-Arch: foreign +Depends: + ${misc:Depends}, +Recommends: + chromium, +Replaces: + chromium (<< 31.0.1650.48-1), +Description: web browser - page inspection support + Web browser that aims to build a safer, faster, and more stable internet + browsing experience. + . + This package contains the 'inspector', which enables web developers to inspect + elements of a web page at runtime (HTML, JavaScript, CSS, etc.). + +Package: chromedriver +Architecture: i386 amd64 +Depends: + ${misc:Depends}, + ${shlibs:Depends}, + chromium (= ${binary:Version}), +Description: web browser - WebDriver support + Web browser that aims to build a safer, faster, and more stable internet + browsing experience. + . + This package provides a bridge between the browser component and the selenium + automatic webdriver. + . + See http://code.google.com/p/selenium/wiki/ChromeDriver for details. diff --git a/debian/master_preferences b/debian/master_preferences new file mode 100644 index 00000000..0a2bcf35 --- /dev/null +++ b/debian/master_preferences @@ -0,0 +1,78 @@ +{ + "alternate_error_pages": { + "enabled": false + }, + "autofill": { + "enabled": false + }, + "distribution": { + "import_bookmarks": false, + "skip_first_run_ui": true, + "make_chrome_default": false, + "make_chrome_default_for_user": false, + "create_all_shortcuts": true, + "show_welcome_page": false + }, + "background_mode": { + "enabled": false + }, + "browser": { + "show_home_button": true, + "check_default_browser" : false, + "clear_data": { + "browsing_history": false, + "cache": true, + "download_history": false, + "form_data": true, + "hosted_apps_data": true, + "passwords": true, + "time_period": 4 + }, + "clear_lso_data_enabled": false, + "custom_chrome_frame": false, + "enable_spellchecking": true + }, + "bookmark_bar": { + "show_on_all_tabs": true + }, + "default_apps_install_state": 2, + "dns_prefetching": { + "enabled": false + }, + "download": { + "directory_upgrade": true, + "extensions_to_open": "", + "prompt_for_download": true + }, + "net": { + "network_prediction_options": 2 + }, + "profile": { + "content_settings": { + "clear_on_exit_migrated": true + }, + "default_content_settings": { + "cookies": 4, + "geolocation": 2, + "media-stream": 2, + "mouselock": 2, + "notifications": 2, + "plugins": 3, + "ppapi-broker": 2 + }, + "password_manager_enabled": false + }, + "safebrowsing": { + "enabled": false + }, + "savefile": { + "type": 2 + }, + "search": { + "suggest_enabled": false + }, + "translate": { + "enabled": false + } +} + diff --git a/debian/patches/chromedriver-revision.patch b/debian/patches/chromedriver-revision.patch new file mode 100644 index 00000000..9f5d7bf1 --- /dev/null +++ b/debian/patches/chromedriver-revision.patch @@ -0,0 +1,13 @@ +description: set chromedriver version as undefined + +--- a/chrome/test/chromedriver/embed_version_in_cpp.py ++++ b/chrome/test/chromedriver/embed_version_in_cpp.py +@@ -26,7 +26,7 @@ def main(): + options, args = parser.parse_args() + + version = open(options.version_file, 'r').read().strip() +- revision = lastchange.FetchVersionInfo(None).revision ++ revision = "undefined" + + if revision: + match = re.match('([0-9a-fA-F]+)(-refs/heads/master@{#(\d+)})?', revision) diff --git a/debian/patches/clang.patch b/debian/patches/clang.patch new file mode 100644 index 00000000..4e1378eb --- /dev/null +++ b/debian/patches/clang.patch @@ -0,0 +1,16 @@ +description: use system clang compilers +author: Michael Gilbert + +--- a/build/common.gypi ++++ b/build/common.gypi +@@ -5772,8 +5772,8 @@ + ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) ' + 'and OS!="win"', { + 'make_global_settings': [ +- ['CC', '<(make_clang_dir)/bin/clang'], +- ['CXX', '<(make_clang_dir)/bin/clang++'], ++ ['CC', '/usr/bin/clang'], ++ ['CXX', '/usr/bin/clang++'], + ['CC.host', '$(CC)'], + ['CXX.host', '$(CXX)'], + ], diff --git a/debian/patches/custom/clear-http-auth-cache-menu-item.patch b/debian/patches/custom/clear-http-auth-cache-menu-item.patch new file mode 100644 index 00000000..3a547e78 --- /dev/null +++ b/debian/patches/custom/clear-http-auth-cache-menu-item.patch @@ -0,0 +1,110 @@ +description: Adds a menu item under "More tools" to clear the HTTP authentication cache on demand + +--- a/chrome/app/chrome_command_ids.h ++++ b/chrome/app/chrome_command_ids.h +@@ -187,6 +187,7 @@ + #define IDC_DEV_TOOLS_INSPECT 40023 + #define IDC_UPGRADE_DIALOG 40024 + #define IDC_VIEW_INCOMPATIBILITIES 40025 ++#define IDC_CLEAR_HTTP_AUTH_CACHE 40026 + #define IDC_SHOW_KEYBOARD_OVERLAY 40027 + #define IDC_PROFILING_ENABLED 40028 + #define IDC_BOOKMARKS_MENU 40029 +--- a/chrome/app/generated_resources.grd ++++ b/chrome/app/generated_resources.grd +@@ -1496,6 +1496,9 @@ Psst! Incognito mode $1(Ctrl+Shift+N) may + + &Clear browsing data... + ++ ++ Clear &HTTP auth cache ++ + + &Downloads + +@@ -1542,6 +1545,9 @@ Psst! Incognito mode $1(Ctrl+Shift+N) may + + &Clear Browsing Data... + ++ ++ Clear &HTTP Auth Cache ++ + + &Downloads + +--- a/chrome/browser/ui/toolbar/wrench_menu_model.cc ++++ b/chrome/browser/ui/toolbar/wrench_menu_model.cc +@@ -301,6 +301,8 @@ void ToolsMenuModel::Build(Browser* browser) { + + AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); + ++ AddItemWithStringId(IDC_CLEAR_HTTP_AUTH_CACHE, IDS_CLEAR_HTTP_AUTH_CACHE); ++ + #if defined(OS_CHROMEOS) + AddItemWithStringId(IDC_TAKE_SCREENSHOT, IDS_TAKE_SCREENSHOT); + #endif +@@ -626,6 +628,13 @@ void WrenchMenuModel::LogMenuMetrics(int command_id) { + } + LogMenuAction(MENU_ACTION_CLEAR_BROWSING_DATA); + break; ++ case IDC_CLEAR_HTTP_AUTH_CACHE: ++ if (!uma_action_recorded_) { ++ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearHttpAuthCache", ++ delta); ++ } ++ LogMenuAction(MENU_ACTION_CLEAR_HTTP_AUTH_CACHE); ++ break; + case IDC_VIEW_SOURCE: + if (!uma_action_recorded_) + UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", delta); +--- a/chrome/browser/ui/toolbar/wrench_menu_model.h ++++ b/chrome/browser/ui/toolbar/wrench_menu_model.h +@@ -52,6 +52,7 @@ enum WrenchMenuAction { + MENU_ACTION_MANAGE_EXTENSIONS, + MENU_ACTION_TASK_MANAGER, + MENU_ACTION_CLEAR_BROWSING_DATA, ++ MENU_ACTION_CLEAR_HTTP_AUTH_CACHE, + MENU_ACTION_VIEW_SOURCE, + MENU_ACTION_DEV_TOOLS, + MENU_ACTION_DEV_TOOLS_CONSOLE, +--- a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc ++++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc +@@ -228,6 +228,7 @@ GlobalMenuBarCommand tools_menu[] = { + + { IDS_TASK_MANAGER, IDC_TASK_MANAGER }, + { IDS_CLEAR_BROWSING_DATA, IDC_CLEAR_BROWSING_DATA }, ++ { IDS_CLEAR_HTTP_AUTH_CACHE, IDC_CLEAR_HTTP_AUTH_CACHE }, + + { MENU_SEPARATOR, MENU_SEPARATOR }, + +--- a/chrome/browser/ui/browser_command_controller.cc ++++ b/chrome/browser/ui/browser_command_controller.cc +@@ -43,6 +43,9 @@ + #include "content/public/common/url_constants.h" + #include "extensions/browser/extension_system.h" + #include "ui/events/keycodes/keyboard_codes.h" ++#include "net/url_request/url_request_context.h" ++#include "net/url_request/url_request_context_getter.h" ++#include "net/http/http_transaction_factory.h" + + #if defined(OS_MACOSX) + #include "chrome/browser/ui/browser_commands_mac.h" +@@ -744,6 +747,9 @@ void BrowserCommandController::ExecuteCommandWithDisposition( + case IDC_CLEAR_BROWSING_DATA: + ShowClearBrowsingDataDialog(browser_); + break; ++ case IDC_CLEAR_HTTP_AUTH_CACHE: ++ browser_->tab_strip_model()->GetActiveWebContents()->GetBrowserContext()->GetRequestContext()->GetURLRequestContext()->http_transaction_factory()->GetSession()->http_auth_cache()->Clear(); ++ break; + case IDC_IMPORT_SETTINGS: + ShowImportDialog(browser_); + break; +@@ -971,6 +977,7 @@ void BrowserCommandController::InitCommandState() { + !guest_session && + !profile()->IsOffTheRecord()); + command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA, normal_window); ++ command_updater_.UpdateCommandEnabled(IDC_CLEAR_HTTP_AUTH_CACHE, true); + #if defined(OS_CHROMEOS) + command_updater_.UpdateCommandEnabled(IDC_TAKE_SCREENSHOT, true); + command_updater_.UpdateCommandEnabled(IDC_TOUCH_HUD_PROJECTION_TOGGLE, true); + diff --git a/debian/patches/custom/disable-bad-flags-prompt.patch b/debian/patches/custom/disable-bad-flags-prompt.patch new file mode 100644 index 00000000..0763ade4 --- /dev/null +++ b/debian/patches/custom/disable-bad-flags-prompt.patch @@ -0,0 +1,13 @@ +description: Disable prompt about "unsafe" commandline switches + +--- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc ++++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc +@@ -832,7 +832,6 @@ void StartupBrowserCreatorImpl::AddInfoBarsIfNecessary( + // so we cannot add the info bars to the focused tabs here. + if (is_process_startup == chrome::startup::IS_PROCESS_STARTUP && + !command_line_.HasSwitch(switches::kTestType)) { +- chrome::ShowBadFlagsPrompt(browser); + ObsoleteSystemInfoBarDelegate::Create(InfoBarService::FromWebContents( + browser->tab_strip_model()->GetActiveWebContents())); + + diff --git a/debian/patches/custom/disable-formatting-in-omnibox.patch b/debian/patches/custom/disable-formatting-in-omnibox.patch new file mode 100644 index 00000000..96a6be81 --- /dev/null +++ b/debian/patches/custom/disable-formatting-in-omnibox.patch @@ -0,0 +1,20 @@ +description: Disables omission of URL elements in Omnibox + +--- a/net/base/net_util_icu.cc ++++ b/net/base/net_util_icu.cc +@@ -570,10 +570,10 @@ void AppendFormattedComponent(const std::string& spec, + + } // namespace + +-const FormatUrlType kFormatUrlOmitNothing = 0; +-const FormatUrlType kFormatUrlOmitUsernamePassword = 1 << 0; +-const FormatUrlType kFormatUrlOmitHTTP = 1 << 1; +-const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 1 << 2; ++const FormatUrlType kFormatUrlOmitNothing = 1; ++const FormatUrlType kFormatUrlOmitUsernamePassword = 0 << 0; ++const FormatUrlType kFormatUrlOmitHTTP = 0 << 1; ++const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0 << 2; + const FormatUrlType kFormatUrlOmitAll = kFormatUrlOmitUsernamePassword | + kFormatUrlOmitHTTP | kFormatUrlOmitTrailingSlashOnBareHostname; + + diff --git a/debian/patches/custom/disable-google-url-tracker.patch b/debian/patches/custom/disable-google-url-tracker.patch new file mode 100644 index 00000000..161cf8b2 --- /dev/null +++ b/debian/patches/custom/disable-google-url-tracker.patch @@ -0,0 +1,15 @@ +description: Disables the Google URL Tracker, which is a service that seeks the address to Google for background communication + +--- a/components/google/core/browser/google_url_tracker.cc ++++ b/components/google/core/browser/google_url_tracker.cc +@@ -135,6 +135,9 @@ void GoogleURLTracker::StartFetchIfDesirable() { + // + // See comments in header on the class, on RequestServerCheck(), and on the + // various members here for more detail on exactly what the conditions are. ++ already_fetched_ = true; ++ need_to_fetch_ = false; ++ return; + if (in_startup_sleep_ || already_fetched_ || !need_to_fetch_) + return; + + diff --git a/debian/patches/custom/disable-omnibox-searching.patch b/debian/patches/custom/disable-omnibox-searching.patch new file mode 100644 index 00000000..80e75c6e --- /dev/null +++ b/debian/patches/custom/disable-omnibox-searching.patch @@ -0,0 +1,361 @@ +description: Disables searching in the omnibox, hides search options, and disables automatic adding of search engines + +--- a/components/omnibox/autocomplete_input.cc ++++ b/components/omnibox/autocomplete_input.cc +@@ -167,7 +167,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + *canonicalized_url = + url_fixer::FixupURL(base::UTF16ToUTF8(text), desired_tld); + if (!canonicalized_url->is_valid()) +- return metrics::OmniboxInputType::QUERY; ++ return metrics::OmniboxInputType::URL; + + if (LowerCaseEqualsASCII(parsed_scheme_utf8, url::kFileScheme)) { + // A user might or might not type a scheme when entering a file URL. In +@@ -188,7 +188,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + metrics::OmniboxInputType::Type type = + scheme_classifier.GetInputTypeForScheme(parsed_scheme_utf8); + if (type != metrics::OmniboxInputType::INVALID) +- return type; ++ return metrics::OmniboxInputType::URL; + + // We don't know about this scheme. It might be that the user typed a + // URL of the form "username:password@foo.com". +@@ -238,7 +238,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // the option of treating it as a URL if we're wrong. + // Note that SegmentURL() is smart so we aren't tricked by "c:\foo" or + // "www.example.com:81" in this case. +- return metrics::OmniboxInputType::UNKNOWN; ++ return metrics::OmniboxInputType::URL; + } + + // Either the user didn't type a scheme, in which case we need to distinguish +@@ -250,7 +250,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // valid, non-standard URL; for standard URLs, an empty host would have + // resulted in an invalid |canonicalized_url| above.) + if (!canonicalized_url->has_host()) +- return metrics::OmniboxInputType::QUERY; ++ return metrics::OmniboxInputType::URL; + + // Determine the host family. We get this information by (re-)canonicalizing + // the already-canonicalized host rather than using the user's original input, +@@ -297,7 +297,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // without concrete evidence that doing so is necessary. + return (parts->scheme.is_nonempty() || + (has_known_tld && (original_host.find(' ') == base::string16::npos))) ? +- metrics::OmniboxInputType::UNKNOWN : metrics::OmniboxInputType::QUERY; ++ metrics::OmniboxInputType::URL : metrics::OmniboxInputType::URL; + } + + // For hostnames that look like IP addresses, distinguish between IPv6 +@@ -311,7 +311,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // IP with a non-zero first octet; IPs with first octet zero are "source + // IPs" and are never navigable as destination addresses. + if (host_info.address[0] == 0) +- return metrics::OmniboxInputType::QUERY; ++ return metrics::OmniboxInputType::URL; + + // This is theoretically a navigable IP. We have four cases. The first + // three are: +@@ -355,7 +355,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // scheme/trailing slash. + if ((host_info.family == url::CanonHostInfo::IPV4) && + (host_info.num_ipv4_components > 1)) +- return metrics::OmniboxInputType::QUERY; ++ return metrics::OmniboxInputType::URL; + + // If there is more than one recognized non-host component, this is likely to + // be a URL, even if the TLD is unknown (in which case this is likely an +@@ -369,7 +369,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // there _is_ a desired TLD, the user hit ctrl-enter, and we assume that + // implies an attempted navigation.) + if (canonicalized_url->has_username() && desired_tld.empty()) +- return metrics::OmniboxInputType::UNKNOWN; ++ return metrics::OmniboxInputType::URL; + + // If the host has a known TLD or a port, it's probably a URL. Note that we + // special-case "localhost" as a known hostname. +@@ -386,7 +386,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // returned URL. + if (!parts->path.is_valid() && !canonicalized_url->has_query() && + canonicalized_url->has_ref()) +- return metrics::OmniboxInputType::QUERY; ++ return metrics::OmniboxInputType::URL; + + // No scheme, username, port, and no known TLD on the host. + // This could be: +@@ -402,7 +402,7 @@ metrics::OmniboxInputType::Type AutocompleteInput::Parse( + // QUERY. Since this is indistinguishable from the case above, and this + // case is much more likely, claim these are UNKNOWN, which should default + // to the right thing and let users correct us on a case-by-case basis. +- return metrics::OmniboxInputType::UNKNOWN; ++ return metrics::OmniboxInputType::URL; + } + + // static +--- a/chrome/browser/resources/options/browser_options.html ++++ b/chrome/browser/resources/options/browser_options.html +@@ -142,7 +142,7 @@ + + + +-
++