diff --git a/metadata/categories.conf b/metadata/categories.conf index 296f2e4..1d31b93 100644 --- a/metadata/categories.conf +++ b/metadata/categories.conf @@ -6,6 +6,7 @@ games-board games-rpg games-strategy net-misc +net-www sci-mathematics sys-apps x11-apps diff --git a/packages/net-www/exlibs/inox.exlib b/packages/net-www/exlibs/inox.exlib new file mode 100644 index 0000000..d0faf84 --- /dev/null +++ b/packages/net-www/exlibs/inox.exlib @@ -0,0 +1,484 @@ +# Copyright 2009, 2010 Elias Pipping +# Copyright 2009 Heiko Przybyl +# Distributed under the terms of the GNU General Public License v2 + +# You'll find new releases here: +# - http://omahaproxy.appspot.com/viewer +# - http://googlechromereleases.blogspot.com + +CHROMIUM_CHANNEL=stable + +MY_PN=chromium +MY_PNV=${MY_PN}-${PV} + +require freedesktop-desktop gtk-icon-cache python [ has_lib=false ] toolchain-funcs + +export_exlib_phases pkg_setup src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm + +SUMMARY="The open-source project behind Google Chrome" +DESCRIPTION="Browser based on Blink and Google's V8 JavaScript engine." +HOMEPAGE="https://www.chromium.org/Home" +DOWNLOADS=" + https://storage.googleapis.com/chromium-browser-official/${MY_PNV}.tar.xz + https://gsdview.appspot.com/chromium-browser-official/${MY_PNV}.tar.xz +" + +LICENCES=" + BSD-3 [[ note = [ chromium itself ] ]] + Apache-2.0 [[ note = [ skia ] ]] + BSD-2 [[ note = [ bsdiff, bspatch ] ]] + BSD-3 [[ note = [ dtoa, jscre, modp_b64, v8, webkit ] ]] + GPL-2 [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]] + LGPL-2 [[ note = [ webkit ] ]] + LGPL-2.1 [[ note = [ ffmpeg, hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, + nss, webkit ] ]] + MPL-1.1 [[ note = [ hunspell, 'Mozilla interface to Java Plugin APIs', npapi, nspr, nss ] ]] + MIT [[ note = [ harfbuzz ] ]] + public-domain [[ note = [ lzma_sdk, sqlite ] ]] + GPL-3 [[ note = [ inox patchset ] ]] +" +SLOT="0" +MYOPTIONS=" + bindist + cups + gconf + keyring [[ description = [ Store passwords using GNOME Keyring ] ]] + pulseaudio + platform: + amd64 + x86 + x86_cpu_features: + sse2 + ( providers: jpeg-turbo ) + ( providers: eudev systemd ) [[ number-selected = exactly-one ]] +" + +# http://crbug.com/62803 tracks the addition of a use_openssl option. Once that bug is closed, +# use_openssl=1 can be passed; dev-libs/{nss,nspr} will no longer be needed. Note that that flag +# currently does not use system openssl but a bundled version from third_party/openssl! +# There is use_system_ssl for that + +# 46.0.2490.86 fails with the latest libvpx-1.5.0 +# media-libs/libvpx[>=1.?.0] +DEPENDENCIES=" + build: + dev-lang/python:*[>=2.5&<3] + dev-lang/yasm + dev-perl/Switch + dev-util/gperf[>=3.0.4] + media-libs/libexif + sys-devel/bison + sys-devel/ninja + build+run: + app-speech/speechd[>=0.8] + dev-libs/atk + dev-libs/dbus-glib:1[>=0.84] + dev-libs/expat + dev-libs/glib:2[>=2.26] [[ note = [ for gsettings ] ]] + dev-libs/libevent[>=1.4.13] + dev-libs/libxml2:2.0[>=2.6.32] + dev-libs/libxslt[>=1.1.26] + dev-libs/nspr[>=4.0] + dev-libs/nss[>=3.12.3] [[ note = [ see base/nss_util.cc for the version requirement ] ]] + fonts/corefonts + media-libs/flac + media-libs/fontconfig + media-libs/freetype:2 + media-libs/libpng:=[>=1.2.37] + media-libs/libwebp[>=0.4] + media-libs/opus[>=1.1-r1] + media-libs/speex + net-libs/libsrtp + sys-apps/dbus + sys-apps/pciutils + providers:eudev? ( sys-apps/eudev ) + providers:systemd? ( sys-apps/systemd ) + sys-libs/zlib[>=1.2.7-r1] + sys-sound/alsa-lib + virtual/usb:1 + x11-libs/cairo[X] + x11-libs/gdk-pixbuf:2.0 + x11-libs/gtk+:2[>=2.16] + x11-libs/harfbuzz + x11-libs/libX11 + x11-libs/libXScrnSaver + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXtst + x11-libs/pango + cups? ( + dev-libs/libgcrypt + net-print/cups + x11-libs/gtk+:2[>=2.16][cups] + ) + gconf? ( gnome-platform/GConf:2 ) + keyring? ( gnome-desktop/libgnome-keyring:1 ) + providers:jpeg-turbo? ( media-libs/libjpeg-turbo ) + pulseaudio? ( media-sound/pulseaudio ) + recommendation: + fonts/corefonts [[ description = [ Needed to display some websites ] ]] + x11-apps/xdg-utils [[ description = [ Set as default browser. Use application launchers for downloaded files (only for Gnome/KDE/Xfce) ] ]] + suggestion: + gnome-desktop/adwaita-icon-theme [[ description = [ For the downloads tab ] ]] + net-www/google-talkplugin [[ description = [ Plugin necessary for google hangouts ] ]] +" + +WORK=${WORKBASE}/${MY_PNV} + +DEFAULT_SRC_COMPILE_PARAMS=( chrome chrome_sandbox ) + +cxx_is_gxx() { + [[ ${CXX} == *g++* ]] && [[ ${CXX} != *clang* ]] +} + +eninja() { + edo ninja -j ${EXJOBS:-1} -v "$@" +} + +inox_pkg_setup() { + export BUILDTYPE=Release + export V=1 + + # For ffmpeg's linking + export LD="${CXX}" + + exdirectory --allow /opt +} + +inox_src_prepare() { + default + + edo sed \ + -e '/-O>(debug_optimize)/d' \ + -e '/-O>(release_optimize)/d' \ + -i build/common.gypi + + # chromium uses hardcoded calls to ar, pkg-config, and it doesn't even always + # respect its own AR_target variable. Fix this for multiarch by adding + # appropriate symlinks here and adding this directory to the PATH + local dir=${WORKBASE}/symlinked-build-tools + edo mkdir -p ${dir} + edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-pkg-config ${dir}/pkg-config + edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-ar ${dir}/ar + edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-cc ${dir}/gcc + edo ln -s /usr/$(exhost --target)/bin/$(exhost --target)-c++ ${dir}/g++ + + # and, they assume python is python2! + edo ln -s /usr/$(exhost --target)/bin/python2 ${dir}/python + export PATH="${dir}:${PATH}" + + # 46.0.2490.86 fails with Exception: Failed to open test/data/webui/i18n_process_css_test.html while + # trying to flatten test/data/webui/i18n_process_css_test.html + edo touch chrome/test/data/webui/i18n_process_css_test.html +} + +# See http://code.google.com/p/chromium/wiki/LinuxBuildInstructions +inox_src_configure() { + local myconf=( + # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys + # Note: These are for Exherbo use ONLY. For your own distribution, please get + # your own set of keys. + google_api_key=AIzaSyBEuNWzExJ_qIX-NT8OY_RGN6d6ZLWnExA + google_default_client_id=750749113475.apps.googleusercontent.com + google_default_client_secret=hw21UnHlcmzSMxzS6VACbPTq + + # Build against local system libraries instead of using a provided sysroot + $(ever at_least 49 && echo use_sysroot=0 ) + + # Disable the voice-recognition support (Ok Google) hotwords plugin. It downloads a binary + # blob with which has access to the microphone, see debian bug #786909. + enable_hotwording=0 + + # Always available on amd64, no reason to force it on x86 + disable_sse2=$(option platform:amd64 0 $(option x86_cpu_features:sse2 0 1)) + + disable_nacl=1 + + no_strict_aliasing=1 + + use_cups=$(option cups 1 0) + use_gconf=$(option gconf 1 0) + use_gnome_keyring=$(option keyring 1 0) + use_pulseaudio=$(option pulseaudio 1 0) + # hard disable kerberos support (requires heimdal) + use_kerberos=0 + + # Note: libmtp appears to be unused + use_system_bzip2=1 + use_system_expat=1 + use_system_ffmpeg=0 + use_system_flac=1 + use_system_harfbuzz=1 + # our version is too recent; unicode/{bms,bmsearch,colldata}.h have been removed + use_system_icu=0 + use_system_libevent=1 + # Note: We can choose between (B) bundled jpeg, (BT) bundled jpeg-turbo and (S{,T}) system jpeg{,-turbo}. + # If the system jpeg lib is libjpeg-turbo we use it, otherwise we fall back to (BT). + use_system_libjpeg=$(option providers:jpeg-turbo 1 0) + # If use_system_libjpeg is enabled, use_libjpeg_turbo is ignored + use_libjpeg_turbo=1 + use_system_libpng=1 + use_system_libsrtp=1 + # http://crbug.com/266149 + use_system_libusb=0 + # 46.0.2490.86: Build error with libvpx-1.5.0 + use_system_libvpx=0 + use_system_libwebp=1 + use_system_libxml=1 + use_system_libxslt=1 + use_system_minizip=1 + use_system_nspr=1 + use_system_opus=1 + # http://crbug.com/351093 + use_system_protobuf=0 + use_system_speex=1 + # http://crbug.com/22208 + use_system_sqlite=0 + use_system_v8=0 + use_system_xdg_utils=1 + use_system_yasm=1 + # Linking failure with system zlib + use_system_zlib=0 + + # Do not try using (bundled) gold + linux_use_bundled_binutils=0 + linux_use_bundled_gold=0 + linux_use_gold_flags=0 + # Do not try using (bundled) clang + clang=0 + host_clang=0 + + # Link instead of using dlopen() + linux_link_gnome_keyring=1 + linux_link_gsettings=1 + linux_link_libpci=1 + linux_link_libspeechd=1 + linux_link_pulseaudio=1 + + # Tell chromium to look in the prefixed speech-dispatcher include directory, as is the + # case for speechd[>=0.8] + libspeechd_h_prefix='speech-dispatcher/' + + werror= + disable_fatal_linker_warnings=1 + + python_ver=$(python_get_abi) + + $(option platform:amd64 && echo target_arch=x64) + $(option platform:x86 && echo target_arch=ia32) + + # gcc_version is actually the version of g++, + # similarly changes to cflags affect C and C++ code + $(cxx_is_gxx || echo gcc_version=unknown) + + # Build ffmpeg as a shared library + ffmpeg_component=shared_library + # Declare that we support H.264, etc. + proprietary_codecs=$(option bindist 0 1) + # Compile in H.264, etc. + ffmpeg_branding=$(option bindist Chromium Chrome) + + # Disable HiDPI support until someone needs and can test it + enable_hidpi=0 + + # inox specific + enable_webrtc=0 + enable_google_now=0 + enable_remoting=0 + safe_browsing_mode=0 + enable_rlz=0 + enable_hangout_services_extension=0 + branding=Chromium + google_chrome_build=0 + enable_web_speech=1 + enable_wifi_bootstrapping=0 + enable_speech_input=0 + enable_pre_sync_backup=0 + enable_print_preview=0 + ) + + if [[ ${CHROMIUM_CHANNEL} == "stable" ]]; then + myconf+=( + enable_pepper_cdms=1 + enable_widevine=1 + ) + fi + + local mc myconf_concat + for mc in "${myconf[@]}"; do + myconf_concat+="-D${mc} " + done + edo ./build/linux/unbundle/replace_gyp_files.py ${myconf_concat} + + # Pass --depth because of this: + # Exception: Could not automatically locate src directory. + # This is a temporary Chromium feature that will be removed. Use --depth as a workaround. + edo env GYP_GENERATORS=ninja build/gyp_chromium --depth "${WORK}" ${myconf_concat} +} + +inox_src_compile() { + eninja -C out/${BUILDTYPE} chrome chrome_sandbox +} + +inox_src_test() { + local disabled_base_tests=( + FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe # Needs a utf8 locale + LoggingTest.CheckStreamsAreLazy # does not like to be sandboxed + OutOfMemoryDeathTest.ViaSharedLibraries + ProcessMetricsTest.GetNumberOfThreads + RTLTest.WrapPathWithLTRFormatting + StatsTableTest.MultipleThreads # Flaky + # Need access to a running X11 server (and potentially more) + 'MessageLoopTestTypeUI.*' + MessageLoopTest.IsType + 'WaitableEventWatcherTest.*' + 'MessagePumpGLibTest.*' + 'MessagePumpLibeventTest.*' + 'TimerTest.*' + # fails with "out of memory" even with plenty free mem + SecurityTest.MemoryAllocationRestrictionsNew + SecurityTest.MemoryAllocationRestrictionsNewArray + SecurityTest.NewOverflow + # Fails randomly on different systems + SysInfoTest.MaxSharedMemorySize + TraceEventTestFixture.TraceSampling + # 42.0.2311.135 + ProcessUtilTest.CurrentDirectory + ) + local disabled_crypto_tests=( + # 39.0.2171.95 + SignatureVerifierTest.VerifyRSAPSS + ) + local disabled_gn_tests=( + BuilderTest.BasicDeps + # 41.0.2272.76 + Label.Resolve + ) + local disabled_ui_base_tests=( + # Needs fonts/corefonts + FontTest.LoadArial + + FontTest.GetActualFontNameForTesting + + # Need access to a running X11 server (and potentially more) + 'CanvasTest.*' + 'ClipboardTest.*' + 'ClipboardTest/0.*' + 'FontTest.AvgCharWidth' + 'FontTest.AvgWidths' + 'FontTest.Widths' + 'GtkExpandedContainerTest.*' + 'RenderTextTest.*' + 'ResourceBundleTest.DelegateGetFontList' + 'ScreenTest.*' + 'TextEliderTest.*' + 'TextUtilsTest.GetStringWidth' + 'AnimationContainerTest.*' + 'AnimationTest.*' + 'SlideAnimationTest.*' + 'OSExchangeDataProviderAuraX11Test.*' + 'InputMethodBaseTest.*' + 'OSExchangeDataTest.*' + + # These have been failing for a long time but are not critical. http://crbug.com/110711 + FontListTest.FontDescString_FromFontVector + FontListTest.Fonts_DescStringWithStyleInFlexibleFormat_RoundTrip + FontListTest.Fonts_FontVector_RoundTrip + FontListTest.Fonts_FromDescString + FontListTest.Fonts_FromDescStringInFlexibleFormat + FontListTest.Fonts_FromDescStringWithStyleInFlexibleFormat + FontListTest.Fonts_FromFontVector + FontListTest.Fonts_GetHeight_GetBaseline + FontListTest.Fonts_Derive + FontListTest.Fonts_DeriveWithSizeDelta + + # 38.0.2125.101 + SelectionRequestorTest.NestedRequests + ) + + local disabled_media_tests=( + # http://crbug.com/160384 + 'YUVConvertTest.*' + ) + + local t suites=( base cacheinvalidation crypto gn gpu printing ui_base url ) HOME="${TEMP}" + + for t in ${suites[@]}; do + tv=disabled_${t}_tests[*] + eninja -C out/${BUILDTYPE} ${t}_unittests + edo out/${BUILDTYPE}/${t}_unittests --gtest_filter=$(IFS=:; echo "-${!tv}") + done +} + +inox_src_install() { + # Install into /opt + local dest=/opt/inox + edo cd out/${BUILDTYPE} + + exeinto ${dest} + newexe chrome inox + newexe chrome_sandbox chrome-sandbox # the name is hardcoded + edo chmod 4755 "${IMAGE}"${dest}/chrome-sandbox + doexe "${FILES}"/inox-launcher.sh + + insinto ${dest} + doins -r *.pak locales resources + doins icudtl.dat + doins -r *.bin + + dosym /opt/netscape/plugins ${dest} + + if [[ ${CHROMIUM_CHANNEL} == "stable" ]]; then + doins libwidevinecdmadapter.so + fi + + dodir ${dest}/lib + insinto ${dest}/lib + doins lib/libffmpeg.so + + newman chrome.1 inox.1 + + dodir /usr/$(exhost --target)/bin + dosym ${dest}/inox-launcher.sh /usr/$(exhost --target)/bin/inox-browser + + for size in 22 24 48 64 128 256 ; do + insinto /usr/share/icons/hicolor/${size}x${size}/apps + newins "${WORK}"/chrome/app/theme/chromium/product_logo_${size}.png inox-browser.png + done + + insinto /usr/share/applications/ + hereins inox-browser.desktop < +# Source: Debian, Gentoo +# License: GPLv2 or later + +if [ -f /etc/chromium/default ] ; then + . /etc/chromium/default +fi + +# Prefer user defined CHROMIUM_USER_FLAGS (fron env) over system +# default CHROMIUM_FLAGS (from /etc/chromium/default) +CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} + +# For the Default Browser detection to work, we need to give access +# to xdg-settings. Also set CHROME_WRAPPER in case xdg-settings is +# not able to do anything useful +export CHROME_WRAPPER="`readlink -f "$0"`" + +PROGDIR="`dirname "$CHROME_WRAPPER"`" +case ":$PATH:" in + *:$PROGDIR:*) + # $PATH already contains $PROGDIR + ;; + *) + # Append $PROGDIR to $PATH + export PATH="$PATH:$PROGDIR" + ;; +esac + +# Set the .desktop file name +export CHROME_DESKTOP=chromium-browser.desktop + +exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/opt/netscape/plugins $CHROMIUM_FLAGS "$@" \ No newline at end of file diff --git a/packages/net-www/inox/files/inox/add-duckduckgo-search-engine.patch b/packages/net-www/inox/files/inox/add-duckduckgo-search-engine.patch new file mode 100644 index 0000000..199f815 --- /dev/null +++ b/packages/net-www/inox/files/inox/add-duckduckgo-search-engine.patch @@ -0,0 +1,584 @@ +--- ./components/search_engines/prepopulated_engines.json ++++ ./components/search_engines/prepopulated_engines.json.new +@@ -36,6 +36,17 @@ + // The following engines are included in country lists and are added to the + // list of search engines on the first run depending on user's country. + "elements": { ++ "duckduckgo": { ++ "name": "DuckDuckGo", ++ "keyword": "duckduckgo.com", ++ "favicon_url": "https://duckduckgo.com/favicon.ico", ++ "search_url": "https://duckduckgo.com/?q={searchTerms}", ++ "suggest_url": "https://duckduckgo.com/?q={searchTerms}&language={language}&kac=1", ++ "new_tab_url": "about:blank", ++ "type": "SEARCH_ENGINE_DUCKDUCKGO", ++ "id": 11 ++ }, ++ + "aol": { + "name": "AOL", + "keyword": "aol.com", +--- ./components/search_engines/search_engine_type.h ++++ ./components/search_engines/search_engine_type.h.new +@@ -58,6 +58,7 @@ enum SearchEngineType { + SEARCH_ENGINE_YAHOO, + SEARCH_ENGINE_YANDEX, + SEARCH_ENGINE_ZOZNAM, ++ SEARCH_ENGINE_DUCKDUCKGO, + SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. + }; + + +--- ./components/search_engines/template_url_prepopulate_data.cc ++++ ./components/search_engines/template_url_prepopulate_data.cc.new +@@ -48,441 +48,441 @@ + + // Default (for countries with no better engine set) + const PrepopulatedEngine* engines_default[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // United Arab Emirates + const PrepopulatedEngine* engines_AE[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Albania + const PrepopulatedEngine* engines_AL[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Argentina + const PrepopulatedEngine* engines_AR[] = +- { &google, &bing, &yahoo_ar, }; ++ { &duckduckgo, &google, &bing, &yahoo_ar, }; + + // Austria + const PrepopulatedEngine* engines_AT[] = +- { &google, &bing, &yahoo_at, }; ++ { &duckduckgo, &google, &bing, &yahoo_at, }; + + // Australia + const PrepopulatedEngine* engines_AU[] = +- { &google, &bing, &yahoo_au, }; ++ { &duckduckgo, &google, &bing, &yahoo_au, }; + + // Bosnia and Herzegovina + const PrepopulatedEngine* engines_BA[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Belgium + const PrepopulatedEngine* engines_BE[] = +- { &google, &bing, &yahoo, &yahoo_fr, }; ++ { &duckduckgo, &google, &bing, &yahoo, &yahoo_fr, }; + + // Bulgaria + const PrepopulatedEngine* engines_BG[] = +- { &google, &bing, &ask, }; ++ { &duckduckgo, &google, &bing, &ask, }; + + // Bahrain + const PrepopulatedEngine* engines_BH[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Burundi + const PrepopulatedEngine* engines_BI[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Brunei + const PrepopulatedEngine* engines_BN[] = +- { &google, &yahoo_my, &bing, }; ++ { &duckduckgo, &google, &yahoo_my, &bing, }; + + // Bolivia + const PrepopulatedEngine* engines_BO[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Brazil + const PrepopulatedEngine* engines_BR[] = +- { &google, &ask_br, &bing, &yahoo_br, }; ++ { &duckduckgo, &google, &ask_br, &bing, &yahoo_br, }; + + // Belarus + const PrepopulatedEngine* engines_BY[] = +- { &google, &yandex_by, &mail_ru, }; ++ { &duckduckgo, &google, &yandex_by, &mail_ru, }; + + // Belize + const PrepopulatedEngine* engines_BZ[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Canada + const PrepopulatedEngine* engines_CA[] = +- { &google, &bing, &ask, &yahoo_ca, &yahoo_qc, }; ++ { &duckduckgo, &google, &bing, &ask, &yahoo_ca, &yahoo_qc, }; + + // Switzerland + const PrepopulatedEngine* engines_CH[] = +- { &google, &bing, &yahoo_ch, }; ++ { &duckduckgo, &google, &bing, &yahoo_ch, }; + + // Chile + const PrepopulatedEngine* engines_CL[] = +- { &google, &bing, &yahoo_cl, }; ++ { &duckduckgo, &google, &bing, &yahoo_cl, }; + + // China + const PrepopulatedEngine* engines_CN[] = +- { &google, &baidu, &sogou, }; ++ { &duckduckgo, &google, &baidu, &sogou, }; + + // Colombia + const PrepopulatedEngine* engines_CO[] = +- { &google, &bing, &yahoo_co, }; ++ { &duckduckgo, &google, &bing, &yahoo_co, }; + + // Costa Rica + const PrepopulatedEngine* engines_CR[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Czech Republic + const PrepopulatedEngine* engines_CZ[] = +- { &google, &seznam, &bing, }; ++ { &duckduckgo, &google, &seznam, &bing, }; + + // Germany + const PrepopulatedEngine* engines_DE[] = +- { &google, &bing, &yahoo_de }; ++ { &duckduckgo, &google, &bing, &yahoo_de }; + + // Denmark + const PrepopulatedEngine* engines_DK[] = +- { &google, &bing, &yahoo_dk, }; ++ { &duckduckgo, &google, &bing, &yahoo_dk, }; + + // Dominican Republic + const PrepopulatedEngine* engines_DO[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Algeria + const PrepopulatedEngine* engines_DZ[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // Ecuador + const PrepopulatedEngine* engines_EC[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Estonia + const PrepopulatedEngine* engines_EE[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Egypt + const PrepopulatedEngine* engines_EG[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Spain + const PrepopulatedEngine* engines_ES[] = +- { &google, &bing, &yahoo_es, }; ++ { &duckduckgo, &google, &bing, &yahoo_es, }; + + // Faroe Islands + const PrepopulatedEngine* engines_FO[] = +- { &google, &bing, &ask, }; ++ { &duckduckgo, &google, &bing, &ask, }; + + // Finland + const PrepopulatedEngine* engines_FI[] = +- { &google, &bing, &yahoo_fi, }; ++ { &duckduckgo, &google, &bing, &yahoo_fi, }; + + // France + const PrepopulatedEngine* engines_FR[] = +- { &google, &bing, &yahoo_fr, }; ++ { &duckduckgo, &google, &bing, &yahoo_fr, }; + + // United Kingdom + const PrepopulatedEngine* engines_GB[] = +- { &google, &bing, &yahoo_uk, &ask_uk, }; ++ { &duckduckgo, &google, &bing, &yahoo_uk, &ask_uk, }; + + // Greece + const PrepopulatedEngine* engines_GR[] = +- { &google, &bing, &yahoo_gr, }; ++ { &duckduckgo, &google, &bing, &yahoo_gr, }; + + // Guatemala + const PrepopulatedEngine* engines_GT[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Hong Kong + const PrepopulatedEngine* engines_HK[] = +- { &google, &yahoo_hk, &baidu, &bing, }; ++ { &duckduckgo, &google, &yahoo_hk, &baidu, &bing, }; + + // Honduras + const PrepopulatedEngine* engines_HN[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Croatia + const PrepopulatedEngine* engines_HR[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Hungary + const PrepopulatedEngine* engines_HU[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Indonesia + const PrepopulatedEngine* engines_ID[] = +- { &google, &yahoo_id, &bing, }; ++ { &duckduckgo, &google, &yahoo_id, &bing, }; + + // Ireland + const PrepopulatedEngine* engines_IE[] = +- { &google, &bing, &yahoo_uk, }; ++ { &duckduckgo, &google, &bing, &yahoo_uk, }; + + // Israel + const PrepopulatedEngine* engines_IL[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // India + const PrepopulatedEngine* engines_IN[] = +- { &google, &bing, &yahoo_in, }; ++ { &duckduckgo, &google, &bing, &yahoo_in, }; + + // Iraq + const PrepopulatedEngine* engines_IQ[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Iran + const PrepopulatedEngine* engines_IR[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Iceland + const PrepopulatedEngine* engines_IS[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Italy + const PrepopulatedEngine* engines_IT[] = +- { &google, &virgilio, &bing, }; ++ { &duckduckgo, &google, &virgilio, &bing, }; + + // Jamaica + const PrepopulatedEngine* engines_JM[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Jordan + const PrepopulatedEngine* engines_JO[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Japan + const PrepopulatedEngine* engines_JP[] = +- { &google, &yahoo_jp, &bing, }; ++ { &duckduckgo, &google, &yahoo_jp, &bing, }; + + // Kenya + const PrepopulatedEngine* engines_KE[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Kuwait + const PrepopulatedEngine* engines_KW[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // South Korea + const PrepopulatedEngine* engines_KR[] = +- { &google, &naver, &daum, }; ++ { &duckduckgo, &google, &naver, &daum, }; + + // Kazakhstan + const PrepopulatedEngine* engines_KZ[] = +- { &google, &mail_ru, &yandex_kz, }; ++ { &duckduckgo, &google, &mail_ru, &yandex_kz, }; + + // Lebanon + const PrepopulatedEngine* engines_LB[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Liechtenstein + const PrepopulatedEngine* engines_LI[] = +- { &google, &bing, &yahoo_de, }; ++ { &duckduckgo, &google, &bing, &yahoo_de, }; + + // Lithuania + const PrepopulatedEngine* engines_LT[] = +- { &google, &bing, &yandex_ru, }; ++ { &duckduckgo, &google, &bing, &yandex_ru, }; + + // Luxembourg + const PrepopulatedEngine* engines_LU[] = +- { &google, &bing, &yahoo_fr, }; ++ { &duckduckgo, &google, &bing, &yahoo_fr, }; + + // Latvia + const PrepopulatedEngine* engines_LV[] = +- { &google, &yandex_ru, &bing, }; ++ { &duckduckgo, &google, &yandex_ru, &bing, }; + + // Libya + const PrepopulatedEngine* engines_LY[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Morocco + const PrepopulatedEngine* engines_MA[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // Monaco + const PrepopulatedEngine* engines_MC[] = +- { &google, &yahoo_fr, &bing, }; ++ { &duckduckgo, &google, &yahoo_fr, &bing, }; + + // Moldova + const PrepopulatedEngine* engines_MD[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Montenegro + const PrepopulatedEngine* engines_ME[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Macedonia + const PrepopulatedEngine* engines_MK[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Mexico + const PrepopulatedEngine* engines_MX[] = +- { &google, &bing, &yahoo_mx, }; ++ { &duckduckgo, &google, &bing, &yahoo_mx, }; + + // Malaysia + const PrepopulatedEngine* engines_MY[] = +- { &google, &yahoo_my, &bing, }; ++ { &duckduckgo, &google, &yahoo_my, &bing, }; + + // Nicaragua + const PrepopulatedEngine* engines_NI[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Netherlands + const PrepopulatedEngine* engines_NL[] = +- { &google, &yahoo_nl, &vinden, }; ++ { &duckduckgo, &google, &yahoo_nl, &vinden, }; + + // Norway + const PrepopulatedEngine* engines_NO[] = +- { &google, &bing, &kvasir, }; ++ { &duckduckgo, &google, &bing, &kvasir, }; + + // New Zealand + const PrepopulatedEngine* engines_NZ[] = +- { &google, &bing, &yahoo_nz, }; ++ { &duckduckgo, &google, &bing, &yahoo_nz, }; + + // Oman + const PrepopulatedEngine* engines_OM[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // Panama + const PrepopulatedEngine* engines_PA[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Peru + const PrepopulatedEngine* engines_PE[] = +- { &google, &bing, &yahoo_pe, }; ++ { &duckduckgo, &google, &bing, &yahoo_pe, }; + + // Philippines + const PrepopulatedEngine* engines_PH[] = +- { &google, &yahoo_ph, &bing, }; ++ { &duckduckgo, &google, &yahoo_ph, &bing, }; + + // Pakistan + const PrepopulatedEngine* engines_PK[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Puerto Rico + const PrepopulatedEngine* engines_PR[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Poland + const PrepopulatedEngine* engines_PL[] = +- { &google, &onet, &bing, }; ++ { &duckduckgo, &google, &onet, &bing, }; + + // Portugal + const PrepopulatedEngine* engines_PT[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Paraguay + const PrepopulatedEngine* engines_PY[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Qatar + const PrepopulatedEngine* engines_QA[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Romania + const PrepopulatedEngine* engines_RO[] = +- { &google, &yahoo_ro, &bing, }; ++ { &duckduckgo, &google, &yahoo_ro, &bing, }; + + // Serbia + const PrepopulatedEngine* engines_RS[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Russia + const PrepopulatedEngine* engines_RU[] = +- { &google, &yandex_ru, &mail_ru, }; ++ { &duckduckgo, &google, &yandex_ru, &mail_ru, }; + + // Rwanda + const PrepopulatedEngine* engines_RW[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Saudi Arabia + const PrepopulatedEngine* engines_SA[] = +- { &google, &yahoo_maktoob, &bing, }; ++ { &duckduckgo, &google, &yahoo_maktoob, &bing, }; + + // Sweden + const PrepopulatedEngine* engines_SE[] = +- { &google, &bing, &yahoo_se, }; ++ { &duckduckgo, &google, &bing, &yahoo_se, }; + + // Singapore + const PrepopulatedEngine* engines_SG[] = +- { &google, &yahoo_sg, &bing, }; ++ { &duckduckgo, &google, &yahoo_sg, &bing, }; + + // Slovenia + const PrepopulatedEngine* engines_SI[] = +- { &google, &najdi, &ask, }; ++ { &duckduckgo, &google, &najdi, &ask, }; + + // Slovakia + const PrepopulatedEngine* engines_SK[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // El Salvador + const PrepopulatedEngine* engines_SV[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Syria + const PrepopulatedEngine* engines_SY[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // Thailand + const PrepopulatedEngine* engines_TH[] = +- { &google, &yahoo_th, &bing, }; ++ { &duckduckgo, &google, &yahoo_th, &bing, }; + + // Tunisia + const PrepopulatedEngine* engines_TN[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // Turkey + const PrepopulatedEngine* engines_TR[] = +- { &google, &bing, &yahoo_tr, &yandex_tr, }; ++ { &duckduckgo, &google, &bing, &yahoo_tr, &yandex_tr, }; + + // Trinidad and Tobago + const PrepopulatedEngine* engines_TT[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Taiwan + const PrepopulatedEngine* engines_TW[] = +- { &google, &yahoo_tw, &bing, }; ++ { &duckduckgo, &google, &yahoo_tw, &bing, }; + + // Tanzania + const PrepopulatedEngine* engines_TZ[] = +- { &google, &yahoo, &bing, }; ++ { &duckduckgo, &google, &yahoo, &bing, }; + + // Ukraine + const PrepopulatedEngine* engines_UA[] = +- { &google, &yandex_ua, &bing, }; ++ { &duckduckgo, &google, &yandex_ua, &bing, }; + + // United States + const PrepopulatedEngine* engines_US[] = +- { &google, &bing, &yahoo, &aol, &ask, }; ++ { &duckduckgo, &google, &bing, &yahoo, &aol, &ask, }; + + // Uruguay + const PrepopulatedEngine* engines_UY[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Venezuela + const PrepopulatedEngine* engines_VE[] = +- { &google, &bing, &yahoo_ve, }; ++ { &duckduckgo, &google, &bing, &yahoo_ve, }; + + // Vietnam + const PrepopulatedEngine* engines_VN[] = +- { &google, &yahoo_vn, &bing, }; ++ { &duckduckgo, &google, &yahoo_vn, &bing, }; + + // Yemen + const PrepopulatedEngine* engines_YE[] = +- { &google, &bing, &yahoo_maktoob, }; ++ { &duckduckgo, &google, &bing, &yahoo_maktoob, }; + + // South Africa + const PrepopulatedEngine* engines_ZA[] = +- { &google, &bing, &yahoo, }; ++ { &duckduckgo, &google, &bing, &yahoo, }; + + // Zimbabwe + const PrepopulatedEngine* engines_ZW[] = +- { &google, &bing, &yahoo, &ask, }; ++ { &duckduckgo, &google, &bing, &yahoo, &ask, }; + + // A list of all the engines that we know about. + const PrepopulatedEngine* kAllEngines[] = { + // Prepopulated engines: + &aol, &ask, &ask_br, &ask_uk, &baidu, +- &bing, &daum, &google, &kvasir, &mail_ru, ++ &bing, &daum,&duckduckgo,&google, &kvasir, &mail_ru, + &najdi, &naver, &onet, &seznam, &sogou, + &vinden, &virgilio, &yahoo, &yahoo_ar, &yahoo_at, + &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch, &yahoo_cl, diff --git a/packages/net-www/inox/files/inox/branding.patch b/packages/net-www/inox/files/inox/branding.patch new file mode 100644 index 0000000..c78c434 --- /dev/null +++ b/packages/net-www/inox/files/inox/branding.patch @@ -0,0 +1,100 @@ +--- ./chrome/common/chrome_paths_linux.cc ++++ ./chrome/common/chrome_paths_linux.cc.new +@@ -64,11 +64,7 @@ + base::FilePath config_dir(GetXDGDirectory(env.get(), + kXdgConfigHomeEnvVar, + kDotConfigDir)); +-#if defined(GOOGLE_CHROME_BUILD) +- *result = config_dir.Append("google-chrome"); +-#else +- *result = config_dir.Append("chromium"); +-#endif ++ *result = config_dir.Append("inox"); + return true; + } + + +--- ./chrome/app/chromium_strings.grd ++++ ./chrome/app/chromium_strings.grd.new +@@ -215,17 +215,17 @@ be available for now. --> + Disconnecting $1someone@example.com will clear your history, bookmarks, settings, and other Chromium data stored on this device. Data stored in your Google Account will not be cleared and can be managed on <a target="_blank" href="$2">Google Dashboard</a>. + + +- Chromium ++ Inox + + +- Chromium ++ Inox + + + +- Chromium ++ Inox + + +- Chromium is a web browser that runs webpages and applications with lightning speed. It's fast, stable, and easy to use. Browse the web more safely with malware and phishing protection built into Chromium. ++ Inox is a free, open, and libre browser modification of the Chromium code base, with privacy being enhanced in several key areas. Automatic transmission of partial queries, keywords, metrics to central services inhibited and only occurs with consent. In addition, all our builds are reproducible, and modifications are auditable, setting the project ahead of other secure browser providers. + + + +@@ -241,7 +241,7 @@ be available for now. --> + Chromium App Launcher + + +- Chromium Binaries ++ Inox Binaries + + + https://support.google.com/chrome/?p=ib_chromeframe +@@ -272,17 +272,17 @@ be available for now. --> + + + +- Task Manager - Chromium ++ Task Manager - Inox + + +- Chromium didn't shut down correctly. ++ Inox did not shut down correctly. + + + Help make Chromium better by sending crash reports and $1usage statistics to Google + + + +- $1Google - Chromium ++ $1Google – Inox + + + +@@ -787,7 +787,7 @@ For Chromium, processes used to display diagnostics information (such as this "a + + + +- About &Chromium ++ About &Inox + + + Update &Chromium +@@ -795,7 +795,7 @@ For Chromium, processes used to display diagnostics information (such as this "a + + + +- About &Chromium ++ About &Inox + + + Update &Chromium +@@ -812,7 +812,7 @@ For Chromium, processes used to display diagnostics information (such as this "a + + + +- Chromium ++ Inox + + + Chromium Helper + + + diff --git a/packages/net-www/inox/files/inox/chromium-sandbox-pie.patch b/packages/net-www/inox/files/inox/chromium-sandbox-pie.patch new file mode 100644 index 0000000..fc18750 --- /dev/null +++ b/packages/net-www/inox/files/inox/chromium-sandbox-pie.patch @@ -0,0 +1,14 @@ +--- a/sandbox/linux/sandbox_linux.gypi ++++ b/sandbox/linux/sandbox_linux.gypi +@@ -221,7 +221,10 @@ + ], + 'cflags': [ + # For ULLONG_MAX +- '-std=gnu99', ++ '-std=gnu99 -fPIE', ++ ], ++ 'ldflags': [ ++ '-pie', + ], + 'include_dirs': [ + '../..', diff --git a/packages/net-www/inox/files/inox/disable-autofill-download-manager.patch b/packages/net-www/inox/files/inox/disable-autofill-download-manager.patch new file mode 100644 index 0000000..a5e06d6 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-autofill-download-manager.patch @@ -0,0 +1,60 @@ +--- ./components/autofill/core/browser/autofill_download_manager.cc ++++ ./components/autofill/core/browser/autofill_download_manager.cc.new +@@ -57,8 +57,7 @@ + } + + GURL GetRequestUrl(AutofillDownloadManager::RequestType request_type) { +- return GURL("https://clients1.google.com/tbproxy/af/" + +- RequestTypeToString(request_type) + "?client=" + kClientName); ++ return GURL("about:blank"); + } + + } // namespace +@@ -190,46 +189,6 @@ + bool AutofillDownloadManager::StartRequest( + const std::string& form_xml, + const FormRequestData& request_data) { +- net::URLRequestContextGetter* request_context = +- driver_->GetURLRequestContext(); +- DCHECK(request_context); +- GURL request_url = GetRequestUrl(request_data.request_type); +- +- std::string compressed_data; +- if (!compression::GzipCompress(form_xml, &compressed_data)) { +- NOTREACHED(); +- return false; +- } +- +- AutofillMetrics::LogPayloadCompressionRatio( +- static_cast(100 * compressed_data.size() / form_xml.size()), +- request_data.request_type); +- +- // Id is ignored for regular chrome, in unit test id's for fake fetcher +- // factory will be 0, 1, 2, ... +- net::URLFetcher* fetcher = +- net::URLFetcher::Create(fetcher_id_for_unittest_++, request_url, +- net::URLFetcher::POST, this).release(); +- data_use_measurement::DataUseUserData::AttachToFetcher( +- fetcher, data_use_measurement::DataUseUserData::AUTOFILL); +- url_fetchers_[fetcher] = request_data; +- fetcher->SetAutomaticallyRetryOn5xx(false); +- fetcher->SetRequestContext(request_context); +- fetcher->SetUploadData("text/xml", compressed_data); +- fetcher->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | +- net::LOAD_DO_NOT_SEND_COOKIES); +- // Add Chrome experiment state and GZIP encoding to the request headers. +- net::HttpRequestHeaders headers; +- headers.SetHeaderIfMissing("content-encoding", "gzip"); +- variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders( +- fetcher->GetOriginalURL(), driver_->IsOffTheRecord(), false, &headers); +- fetcher->SetExtraRequestHeaders(headers.ToString()); +- fetcher->Start(); +- +- VLOG(1) << "Sending AutofillDownloadManager " +- << RequestTypeToString(request_data.request_type) +- << " request: " << form_xml; +- + return true; + } + + diff --git a/packages/net-www/inox/files/inox/disable-default-extensions.patch b/packages/net-www/inox/files/inox/disable-default-extensions.patch new file mode 100644 index 0000000..83d3b2d --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-default-extensions.patch @@ -0,0 +1,145 @@ +--- ./chrome/browser/extensions/external_component_loader.cc ++++ ./chrome/browser/extensions/external_component_loader.cc.new +@@ -38,10 +38,6 @@ + + void ExternalComponentLoader::StartLoading() { + prefs_.reset(new base::DictionaryValue()); +- AddExternalExtension(extension_misc::kInAppPaymentsSupportAppId); +- +- if (HotwordServiceFactory::IsHotwordAllowed(profile_)) +- AddExternalExtension(extension_misc::kHotwordSharedModuleId); + + #if defined(OS_CHROMEOS) + { +@@ -52,17 +48,6 @@ + } + #endif + +-#if defined(ENABLE_MEDIA_ROUTER) && defined(GOOGLE_CHROME_BUILD) +- if (media_router::MediaRouterEnabled(profile_)) +- AddExternalExtension(extension_misc::kMediaRouterStableExtensionId); +-#endif // defined(ENABLE_MEDIA_ROUTER) && defined(GOOGLE_CHROME_BUILD) +- +-#if defined(ENABLE_APP_LIST) && defined(OS_CHROMEOS) +- std::string google_now_extension_id; +- if (GetGoogleNowExtensionId(&google_now_extension_id)) +- AddExternalExtension(google_now_extension_id); +-#endif +- + LoadFinished(); + } + + +--- ./chrome/browser/extensions/component_loader.cc ++++ ./chrome/browser/extensions/component_loader.cc.new +@@ -350,24 +350,12 @@ + } + + void ComponentLoader::AddHangoutServicesExtension() { +-#if defined(GOOGLE_CHROME_BUILD) || defined(ENABLE_HANGOUT_SERVICES_EXTENSION) +- Add(IDR_HANGOUT_SERVICES_MANIFEST, +- base::FilePath(FILE_PATH_LITERAL("hangout_services"))); +-#endif + } + + void ComponentLoader::AddHotwordAudioVerificationApp() { +- if (HotwordServiceFactory::IsAlwaysOnAvailable()) { +- Add(IDR_HOTWORD_AUDIO_VERIFICATION_MANIFEST, +- base::FilePath(FILE_PATH_LITERAL("hotword_audio_verification"))); +- } + } + + void ComponentLoader::AddHotwordHelperExtension() { +- if (HotwordServiceFactory::IsHotwordAllowed(profile_)) { +- Add(IDR_HOTWORD_MANIFEST, +- base::FilePath(FILE_PATH_LITERAL("hotword"))); +- } + } + + void ComponentLoader::AddImageLoaderExtension() { +@@ -384,43 +384,6 @@ + } + + void ComponentLoader::AddGoogleNowExtension() { +-#if defined(ENABLE_GOOGLE_NOW) +- const char kEnablePrefix[] = "Enable"; +- const char kFieldTrialName[] = "GoogleNow"; +- std::string enable_prefix(kEnablePrefix); +- std::string field_trial_result = +- base::FieldTrialList::FindFullName(kFieldTrialName); +- +- bool enabled_via_field_trial = +- field_trial_result.compare(0, enable_prefix.length(), enable_prefix) == 0; +- +- // Enable the feature on trybots and trunk builds. +- bool enabled_via_trunk_build = +- chrome::GetChannel() == version_info::Channel::UNKNOWN; +- +- bool is_authenticated = +- SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated(); +- +- bool enabled = +- (enabled_via_field_trial && is_authenticated) || enabled_via_trunk_build; +- +-#if defined(ENABLE_APP_LIST) && defined(OS_CHROMEOS) +- // Don't load if newer trial is running (== new extension id is available). +- std::string ignored_extension_id; +- if (GetGoogleNowExtensionId(&ignored_extension_id)) { +- enabled = false; +- } +-#endif // defined(ENABLE_APP_LIST) && defined(OS_CHROMEOS) +- +- const int google_now_manifest_id = IDR_GOOGLE_NOW_MANIFEST; +- const base::FilePath root_directory = +- base::FilePath(FILE_PATH_LITERAL("google_now")); +- if (enabled) { +- Add(google_now_manifest_id, root_directory); +- } else { +- DeleteData(google_now_manifest_id, root_directory); +- } +-#endif // defined(ENABLE_GOOGLE_NOW) + } + + #if defined(OS_CHROMEOS) +@@ -495,15 +446,6 @@ + } + + void ComponentLoader::AddWebStoreApp() { +-#if defined(OS_CHROMEOS) +- if (!IsNormalSession()) +- return; +-#endif +- +- AddWithNameAndDescription( +- IDR_WEBSTORE_MANIFEST, base::FilePath(FILE_PATH_LITERAL("web_store")), +- l10n_util::GetStringUTF8(IDS_WEBSTORE_NAME_STORE), +- l10n_util::GetStringUTF8(IDS_WEBSTORE_APP_DESCRIPTION)); + } + + scoped_refptr ComponentLoader::CreateExtension( +@@ -555,9 +555,6 @@ + DCHECK(!skip_session_components); + Add(IDR_BOOKMARKS_MANIFEST, + base::FilePath(FILE_PATH_LITERAL("bookmark_manager"))); +- // Cloud Print component app. Not required on Chrome OS. +- Add(IDR_CLOUDPRINT_MANIFEST, +- base::FilePath(FILE_PATH_LITERAL("cloud_print"))); + #endif + + if (!skip_session_components) { + + +@@ -629,13 +571,6 @@ + AddImageLoaderExtension(); + AddGoogleNowExtension(); + +- bool install_feedback = enable_background_extensions_during_testing; +-#if defined(GOOGLE_CHROME_BUILD) +- install_feedback = true; +-#endif // defined(GOOGLE_CHROME_BUILD) +- if (install_feedback) +- Add(IDR_FEEDBACK_MANIFEST, base::FilePath(FILE_PATH_LITERAL("feedback"))); +- + #if defined(ENABLE_SETTINGS_APP) + Add(IDR_SETTINGS_APP_MANIFEST, + base::FilePath(FILE_PATH_LITERAL("settings_app"))); diff --git a/packages/net-www/inox/files/inox/disable-first-run-behaviour.patch b/packages/net-www/inox/files/inox/disable-first-run-behaviour.patch new file mode 100644 index 0000000..8145b43 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-first-run-behaviour.patch @@ -0,0 +1,35 @@ +--- ./chrome/browser/ui/startup/startup_browser_creator_impl.cc ++++ ./chrome/browser/ui/startup/startup_browser_creator_impl.cc.new +@@ -852,8 +852,6 @@ + // Replace magic names for the actual urls. + if (it->host() == "new_tab_page") { + startup_urls->push_back(GURL(chrome::kChromeUINewTabURL)); +- } else if (it->host() == "welcome_page") { +- startup_urls->push_back(internals::GetWelcomePageURL()); + } else { + startup_urls->push_back(*it); + } +@@ -868,10 +866,6 @@ + if (startup_urls->empty()) { + AddSpecialURLs(startup_urls); + startup_urls->push_back(GURL(chrome::kChromeUINewTabURL)); +- +- // Special case the FIRST_RUN_LAST_TAB case of the welcome page. +- if (welcome_run_type_ == WelcomeRunType::FIRST_RUN_LAST_TAB) +- startup_urls->push_back(internals::GetWelcomePageURL()); + } + + if (signin::ShouldShowPromoAtStartup(profile_, is_first_run_)) { +@@ -905,10 +899,6 @@ + + void StartupBrowserCreatorImpl::AddSpecialURLs( + std::vector* url_list) const { +- // Optionally include the welcome page. +- if (welcome_run_type_ == WelcomeRunType::FIRST_TAB) +- url_list->insert(url_list->begin(), internals::GetWelcomePageURL()); +- + // If this Profile is marked for a reset prompt, ensure the reset + // settings dialog appears. + if (CheckAndClearProfileResetTrigger()) + + diff --git a/packages/net-www/inox/files/inox/disable-gcm-status-check.patch b/packages/net-www/inox/files/inox/disable-gcm-status-check.patch new file mode 100644 index 0000000..2ae17d0 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-gcm-status-check.patch @@ -0,0 +1,32 @@ +--- ./components/gcm_driver/gcm_channel_status_request.cc ++++ ./components/gcm_driver/gcm_channel_status_request.cc.new +@@ -19,8 +19,10 @@ namespace gcm { + + namespace { + ++#if 0 + const char kRequestContentType[] = "application/octet-stream"; + const char kGCMChannelTag[] = "gcm_channel"; ++#endif + const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes. + const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes. + +@@ -53,6 +55,7 @@ int GCMChannelStatusRequest::min_poll_interval_seconds() { + } + + void GCMChannelStatusRequest::Start() { ++#if 0 + DCHECK(!url_fetcher_.get()); + + GURL request_url(channel_status_request_url_); +@@ -72,6 +75,9 @@ void GCMChannelStatusRequest::Start() { + url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | + net::LOAD_DO_NOT_SAVE_COOKIES); + url_fetcher_->Start(); ++#endif ++ // Simulate an empty response and disable GCM. ++ callback_.Run(false, false, 0); + } + + void GCMChannelStatusRequest::OnURLFetchComplete( + diff --git a/packages/net-www/inox/files/inox/disable-google-ipv6-probes.patch b/packages/net-www/inox/files/inox/disable-google-ipv6-probes.patch new file mode 100644 index 0000000..a9b3518 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-google-ipv6-probes.patch @@ -0,0 +1,17 @@ +--- ./net/dns/host_resolver_impl.cc ++++ ./net/dns/host_resolver_impl.cc.new +@@ -78,10 +78,10 @@ const char kLocalhost[] = "localhost."; + // cached. + const int kIPv6ProbePeriodMs = 1000; + +-// Google DNS address used for IPv6 probes. ++/* RIPE NCC k.root-servers.net. 2001:7fd::1 (anycasted) */ + const uint8_t kIPv6ProbeAddress[] = +- { 0x20, 0x01, 0x48, 0x60, 0x48, 0x60, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88 }; ++ { 0x20, 0x01, 0x07, 0xfd, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }; + + // We use a separate histogram name for each platform to facilitate the + // display of error codes by their symbolic name (since each platform has + diff --git a/packages/net-www/inox/files/inox/disable-google-url-tracker.patch b/packages/net-www/inox/files/inox/disable-google-url-tracker.patch new file mode 100644 index 0000000..a3f21d2 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-google-url-tracker.patch @@ -0,0 +1,64 @@ +--- ./components/google/core/browser/google_url_tracker.cc ++++ ./components/google/core/browser/google_url_tracker.cc.new +@@ -22,9 +22,9 @@ + + + const char GoogleURLTracker::kDefaultGoogleHomepage[] = +- "https://www.google.com/"; ++ ""; + const char GoogleURLTracker::kSearchDomainCheckURL[] = +- "https://www.google.com/searchdomaincheck?format=domain&type=chrome"; ++ ""; + + GoogleURLTracker::GoogleURLTracker(scoped_ptr client, + Mode mode) +@@ -143,48 +143,4 @@ + } + + void GoogleURLTracker::StartFetchIfDesirable() { +- // Bail if a fetch isn't appropriate right now. This function will be called +- // again each time one of the preconditions changes, so we'll fetch +- // immediately once all of them are met. +- // +- // See comments in header on the class, on RequestServerCheck(), and on the +- // various members here for more detail on exactly what the conditions are. +- if (in_startup_sleep_ || already_fetched_ || !need_to_fetch_) +- return; +- +- // Some switches should disable the Google URL tracker entirely. If we can't +- // do background networking, we can't do the necessary fetch, and if the user +- // specified a Google base URL manually, we shouldn't bother to look up any +- // alternatives or offer to switch to them. +- if (!client_->IsBackgroundNetworkingEnabled() || +- base::CommandLine::ForCurrentProcess()->HasSwitch( +- switches::kGoogleBaseURL)) +- return; +- +- already_fetched_ = true; +- fetcher_ = net::URLFetcher::Create(fetcher_id_, GURL(kSearchDomainCheckURL), +- net::URLFetcher::GET, this); +- data_use_measurement::DataUseUserData::AttachToFetcher( +- fetcher_.get(), +- data_use_measurement::DataUseUserData::GOOGLE_URL_TRACKER); +- ++fetcher_id_; +- // We don't want this fetch to set new entries in the cache or cookies, lest +- // we alarm the user. +- fetcher_->SetLoadFlags(net::LOAD_DISABLE_CACHE | +- net::LOAD_DO_NOT_SAVE_COOKIES); +- fetcher_->SetRequestContext(client_->GetRequestContext()); +- +- // Configure to retry at most kMaxRetries times for 5xx errors. +- static const int kMaxRetries = 5; +- fetcher_->SetMaxRetriesOn5xx(kMaxRetries); +- +- // Also retry kMaxRetries times on network change errors. A network change can +- // propagate through Chrome in various stages, so it's possible for this code +- // to be reached via OnNetworkChanged(), and then have the fetch we kick off +- // be canceled due to e.g. the DNS server changing at a later time. In general +- // it's not possible to ensure that by the time we reach here any requests we +- // start won't be canceled in this fashion, so retrying is the best we can do. +- fetcher_->SetAutomaticallyRetryOnNetworkChanges(kMaxRetries); +- +- fetcher_->Start(); + } + diff --git a/packages/net-www/inox/files/inox/disable-missing-key-warning.patch b/packages/net-www/inox/files/inox/disable-missing-key-warning.patch new file mode 100644 index 0000000..aaa1a75 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-missing-key-warning.patch @@ -0,0 +1,10 @@ +--- ./chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc ++++ ./chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc.new +@@ -15,6 +15,7 @@ + + // static + void GoogleApiKeysInfoBarDelegate::Create(InfoBarService* infobar_service) { ++ return; + if (google_apis::HasKeysConfigured()) + return; + diff --git a/packages/net-www/inox/files/inox/disable-new-avatar-menu.patch b/packages/net-www/inox/files/inox/disable-new-avatar-menu.patch new file mode 100644 index 0000000..5057d85 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-new-avatar-menu.patch @@ -0,0 +1,29 @@ +--- ./chrome/browser/profiles/avatar_menu.cc ++++ ./chrome/browser/profiles/avatar_menu.cc.new +@@ -92,12 +92,7 @@ + // TODO: Eliminate this ifdef. Add a delegate interface for the menu which + // would also help remove the Browser dependency in AvatarMenuActions + // implementations. +-#if defined(OS_CHROMEOS) +- // On ChromeOS the menu will not be shown. + return false; +-#else +- return true; +-#endif + } + + bool AvatarMenu::CompareItems(const Item* item1, const Item* item2) { + + +--- ./chrome/browser/ui/webui/options/browser_options_handler.cc ++++ ./chrome/browser/ui/webui/options/browser_options_handler.cc.new +@@ -1506,7 +1506,7 @@ + SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile); + DCHECK(signin); + sync_status->SetBoolean("signoutAllowed", !signout_prohibited); +- sync_status->SetBoolean("signinAllowed", signin->IsSigninAllowed()); ++ sync_status->SetBoolean("signinAllowed", false); + sync_status->SetBoolean("syncSystemEnabled", (service != NULL)); + sync_status->SetBoolean("setupCompleted", + service && service->HasSyncSetupCompleted()); + diff --git a/packages/net-www/inox/files/inox/disable-notification-promo-fetch.patch b/packages/net-www/inox/files/inox/disable-notification-promo-fetch.patch new file mode 100644 index 0000000..4816fc0 --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-notification-promo-fetch.patch @@ -0,0 +1,36 @@ +--- ./chrome/browser/browser_process_impl.cc ++++ ./chrome/browser/browser_process_impl.cc.new +@@ -1082,7 +1082,6 @@ + local_state(), chrome::GetChannel(), GetApplicationLocale(), + system_request_context(), switches::kDisableBackgroundNetworking, + base::Bind(safe_json::SafeJsonParser::Parse))); +- promo_resource_service_->StartAfterDelay(); + } + + #if !defined(OS_ANDROID) && !defined(OS_IOS) + + + +--- ./chrome/browser/signin/signin_promo.cc ++++ ./chrome/browser/signin/signin_promo.cc.new +@@ -105,6 +105,7 @@ bool ShouldShowPromo(Profile* profile) { + + bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) { + DCHECK(profile); ++ return false; + + // Don't show if the profile is an incognito. + if (profile->IsOffTheRecord()) + + +--- ./components/web_resource/notification_promo.cc ++++ ./components/web_resource/notification_promo.cc.new +@@ -30,7 +30,7 @@ namespace { + + const int kDefaultGroupSize = 100; + +-const char promo_server_url[] = "https://clients3.google.com/crsignal/client"; ++const char promo_server_url[] = "about:blank"; + + // The name of the preference that stores the promotion object. + const char kPrefPromoObject[] = "promo"; diff --git a/packages/net-www/inox/files/inox/disable-translation-lang-fetch.patch b/packages/net-www/inox/files/inox/disable-translation-lang-fetch.patch new file mode 100644 index 0000000..ebccaad --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-translation-lang-fetch.patch @@ -0,0 +1,60 @@ +--- ./components/translate/core/browser/translate_language_list.cc ++++ ./components/translate/core/browser/translate_language_list.cc.new +@@ -200,35 +200,6 @@ + } + + void TranslateLanguageList::RequestLanguageList() { +- // If resource requests are not allowed, we'll get a callback when they are. +- if (!resource_requests_allowed_) { +- request_pending_ = true; +- return; +- } +- +- request_pending_ = false; +- +- if (language_list_fetcher_.get() && +- (language_list_fetcher_->state() == TranslateURLFetcher::IDLE || +- language_list_fetcher_->state() == TranslateURLFetcher::FAILED)) { +- GURL url = TranslateLanguageUrl(); +- url = AddHostLocaleToUrl(url); +- url = AddApiKeyToUrl(url); +- url = net::AppendQueryParameter( +- url, kAlphaLanguageQueryName, kAlphaLanguageQueryValue); +- +- std::string message = base::StringPrintf( +- "Language list including alpha languages fetch starts (URL: %s)", +- url.spec().c_str()); +- NotifyEvent(__LINE__, message); +- +- bool result = language_list_fetcher_->Request( +- url, +- base::Bind(&TranslateLanguageList::OnLanguageListFetchComplete, +- base::Unretained(this))); +- if (!result) +- NotifyEvent(__LINE__, "Request is omitted due to retry limit"); +- } + } + + void TranslateLanguageList::SetResourceRequestsAllowed(bool allowed) { + +--- ./chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc ++++ ./chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc.new +@@ -145,7 +145,6 @@ + return; + } + request_context_getter_ = request_context_getter; +- DownloadDictionary(GetDictionaryURL()); + } + + bool SpellcheckHunspellDictionary::IsReady() const { +@@ -338,9 +337,6 @@ + } + + if (request_context_getter_) { +- // Download from the UI thread to check that |request_context_getter_| is +- // still valid. +- DownloadDictionary(GetDictionaryURL()); + return; + } + } + diff --git a/packages/net-www/inox/files/inox/disable-update-pings.patch b/packages/net-www/inox/files/inox/disable-update-pings.patch new file mode 100644 index 0000000..d32934c --- /dev/null +++ b/packages/net-www/inox/files/inox/disable-update-pings.patch @@ -0,0 +1,17 @@ +--- ./components/component_updater/configurator_impl.cc ++++ ./components/component_updater/configurator_impl.cc.new +@@ -153,14 +153,6 @@ + + std::vector ConfiguratorImpl::UpdateUrl() const { + std::vector urls; +- if (url_source_override_.is_valid()) { +- urls.push_back(GURL(url_source_override_)); +- } else { +- urls.push_back(GURL(kUpdaterDefaultUrl)); +- if (fallback_to_alt_source_url_enabled_) { +- urls.push_back(GURL(kUpdaterAltUrl)); +- } +- } + return urls; + } + diff --git a/packages/net-www/inox/files/inox/modify-default-prefs.patch b/packages/net-www/inox/files/inox/modify-default-prefs.patch new file mode 100644 index 0000000..c6c9a06 --- /dev/null +++ b/packages/net-www/inox/files/inox/modify-default-prefs.patch @@ -0,0 +1,258 @@ +--- ./chrome/browser/chrome_content_browser_client.cc ++++ ./chrome/browser/chrome_content_browser_client.cc.new +@@ -639,7 +639,7 @@ + void ChromeContentBrowserClient::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); +- registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); ++ registry->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, false); + registry->RegisterListPref(prefs::kEnableDeprecatedWebPlatformFeatures); + } + + + +--- ./chrome/browser/ui/browser_ui_prefs.cc ++++ ./chrome/browser/ui/browser_ui_prefs.cc.new +@@ -86,7 +86,7 @@ + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); + registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); +- registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, true); ++ registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false); + registry->RegisterBooleanPref(prefs::kDevToolsDisabled, false); + registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); + registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); + + + +--- ./chrome/browser/net/prediction_options.cc ++++ ./chrome/browser/net/prediction_options.cc.new +@@ -25,7 +25,7 @@ bool CanPrefetchAndPrerender(int network_prediction_options) { + case NETWORK_PREDICTION_NEVER: + return false; + default: +- DCHECK_EQ(NETWORK_PREDICTION_WIFI_ONLY, network_prediction_options); ++ //DCHECK_EQ(NETWORK_PREDICTION_WIFI_ONLY, network_prediction_options); + return !net::NetworkChangeNotifier::IsConnectionCellular( + net::NetworkChangeNotifier::GetConnectionType()); + } + + +--- ./chrome/browser/net/prediction_options.h ++++ ./chrome/browser/net/prediction_options.h.new +@@ -21,7 +21,7 @@ enum NetworkPredictionOptions { + NETWORK_PREDICTION_ALWAYS, + NETWORK_PREDICTION_WIFI_ONLY, + NETWORK_PREDICTION_NEVER, +- NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_WIFI_ONLY, ++ NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_NEVER, + }; + + void RegisterPredictionOptionsProfilePrefs( + + +--- ./chrome/browser/background/background_mode_manager.cc ++++ ./chrome/browser/background/background_mode_manager.cc.new +@@ -330,7 +330,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) { + registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false); + registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false); + #endif +- registry->RegisterBooleanPref(prefs::kBackgroundModeEnabled, true); ++ registry->RegisterBooleanPref(prefs::kBackgroundModeEnabled, false); + } + + +--- ./components/content_settings/core/browser/cookie_settings.cc ++++ ./components/content_settings/core/browser/cookie_settings.cc.new +@@ -82,7 +82,7 @@ + void CookieSettings::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref( +- prefs::kBlockThirdPartyCookies, false, ++ prefs::kBlockThirdPartyCookies, true, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + } + + + +--- ./chrome/browser/ui/navigation_correction_tab_observer.cc ++++ ./chrome/browser/ui/navigation_correction_tab_observer.cc.new +@@ -58,7 +58,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() { + void NavigationCorrectionTabObserver::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* prefs) { + prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, +- true, ++ false, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + } + + +--- ./components/autofill/core/browser/autofill_manager.cc ++++ ./components/autofill/core/browser/autofill_manager.cc.new +@@ -164,7 +164,7 @@ void AutofillManager::RegisterProfilePrefs( + user_prefs::PrefRegistrySyncable* registry) { + registry->RegisterBooleanPref( + prefs::kAutofillEnabled, +- true, ++ false, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref( + prefs::kAutofillWalletSyncExperimentEnabled, + + +--- ./chrome/browser/resources/options/reset_profile_settings_overlay.html ++++ ./chrome/browser/resources/options/reset_profile_settings_overlay.html.new +@@ -24,7 +24,7 @@ +
+