diff --git a/www/chromium/Makefile b/www/chromium/Makefile index e22ea09cb133..bd53289b9119 100644 --- a/www/chromium/Makefile +++ b/www/chromium/Makefile @@ -1,320 +1,320 @@ # Created by: Florent Thoumie # $FreeBSD$ PORTNAME= chromium -PORTVERSION= 63.0.3239.132 -PORTREVISION= 1 +PORTVERSION= 64.0.3282.186 CATEGORIES?= www MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER?= chromium@FreeBSD.org COMMENT?= Google web browser based on WebKit LICENSE= BSD3CLAUSE LGPL21 MPL11 LICENSE_COMB= multi BUILD_DEPENDS= bash:shells/bash \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} \ .if !defined(GN_ONLY) BUILD_DEPENDS+= gperf:devel/gperf \ clang50:devel/llvm50 \ yasm:devel/yasm \ ffmpeg>=3.2.2,1:multimedia/ffmpeg \ flock:sysutils/flock \ node:www/node \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ ${LOCALBASE}/share/usbids/usb.ids:misc/usbids \ ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} .endif .if !defined(GN_ONLY) -LIB_DEPENDS= libspeechd.so:accessibility/speech-dispatcher \ +LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-atk \ + libspeechd.so:accessibility/speech-dispatcher \ libsnappy.so:archivers/snappy \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libspeex.so:audio/speex \ libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib \ libicuuc.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libcairo.so:graphics/cairo \ libdrm.so:graphics/libdrm \ libexif.so:graphics/libexif \ libpng.so:graphics/png \ libwebp.so:graphics/webp \ libavcodec.so:multimedia/ffmpeg \ libopenh264.so:multimedia/openh264 \ libcups.so:print/cups \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libharfbuzz-icu.so:print/harfbuzz-icu \ libgcrypt.so:security/libgcrypt \ libgnome-keyring.so:security/libgnome-keyring \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxml2.so:textproc/libxml2 \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils \ noto-lite>0:x11-fonts/noto-lite BROKEN_FreeBSD_11_aarch64= components/safe_browsing_db/v4_rice.cc:120:18: use of overloaded operator '&' is ambiguous BROKEN_FreeBSD_12_aarch64= third_party/skia/src/core/SkCpu.cpp:84:27: use of undeclared identifier 'getauxval' ONLY_FOR_ARCHS= aarch64 amd64 i386 .endif .if defined(GN_ONLY) USES= compiler:c++14-lang ninja pkgconfig python:2.7,build shebangfix tar:xz .else USES= bison cpe desktop-file-utils jpeg ninja perl5 pkgconfig \ python:2.7,build shebangfix tar:xz .endif MAKE_ARGS= -C out/${BUILDTYPE} BINARY_ALIAS= python=${PYTHON_CMD} .if !defined(GN_ONLY) CPE_VENDOR= google CPE_PRODUCT= chrome USE_GL= gl USE_LDCONFIG= ${DATADIR} USE_PERL5= build USE_XORG= scrnsaverproto x11 xcb xcomposite xcursor xext xdamage xfixes xi \ xproto xrandr xrender xscrnsaver xtst USE_GNOME= atk dconf glib20 gtk30 libxml2 libxslt SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper ALL_TARGET= chrome INSTALLS_ICONS= yes CC= clang50 CXX= clang++50 .endif EXTRA_PATCHES+= ${FILESDIR}/extra-patch-clang # TODO bz@ : install libwidevinecdm.so (see third_party/widevine/cdm/BUILD.gn) # # Run "./out/${BUILDTYPE}/gn args out/${BUILDTYPE} --list" for all variables. # Some parts don't have use_system_* flag, and can be turned on/off by using # replace_gn_files.py script, some parts just turned on/off for target host # OS "target_os == is_bsd", like libusb, libpci. GN_ARGS+= clang_use_chrome_plugins=false \ enable_nacl=false \ enable_one_click_signin=true \ enable_remoting=false \ enable_webrtc=true \ fieldtrial_testing_like_official_build=true \ is_clang=true \ is_official_build=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator="none" \ use_allocator_shim=false \ use_aura=true \ use_bundled_fontconfig=false \ use_cups=true \ use_custom_libcxx=false \ use_gtk3=true \ use_lld=true \ use_sysroot=false \ use_system_freetype=true \ use_system_harfbuzz=true \ use_system_libjpeg=true \ use_system_sqlite=false \ extra_cxxflags="-I${LOCALBASE}/include" \ extra_ldflags="-L${LOCALBASE}/lib" # TODO: investigate building with these options: # use_system_icu use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild # FreeBSD Chromium Api Key # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . # Note: these are for FreeBSD use ONLY. For your own distribution, # please get your own set of keys. GN_ARGS+= google_api_key="AIzaSyBsp9n41JLW8jCokwn7vhoaMejDFRd1mp8" \ google_default_client_id="996322985003.apps.googleusercontent.com" \ google_default_client_secret="IR1za9-1VK0zZ0f_O8MVFicn" .if !defined(GN_ONLY) SUB_FILES= chromium-browser.desktop chrome SUB_LIST+= COMMENT="${COMMENT}" OPTIONS_DEFINE= CODECS DEBUG DRIVER GCONF KERBEROS TEST CODECS_DESC= Compile and enable patented codecs like H.264 DRIVER_DESC= Install chromedriver OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_DEFAULT= ALSA CODECS DRIVER GCONF KERBEROS OPTIONS_SUB= yes ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=ffmpeg_branding="Chrome" \ GN_ARGS+=proprietary_codecs=true \ GN_ARGS+=enable_hevc_demuxing=true CODECS_VARS_OFF= GN_ARGS+=ffmpeg_branding="Chromium" \ GN_ARGS+=proprietary_codecs=false \ GN_ARGS+=enable_hevc_demuxing=false DEBUG_VARS= BUILDTYPE=Debug \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="lots of free diskspace (~ 8.5GB)" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_ARGS+=is_debug=false \ GN_ARGS+=symbol_level=0 \ GN_ARGS+=remove_webcore_debug_symbols=true \ WANTSPACE="a fair amount of free diskspace (~ 3.7GB)" DRIVER_MAKE_ARGS= chromedriver GCONF_USE= GNOME=gconf2 GCONF_VARS= GN_ARGS+=use_gconf=true GCONF_VARS_OFF= GN_ARGS+=use_gconf=false KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false .endif .include "Makefile.tests" TEST_ALL_TARGET= ${TEST_TARGETS} TEST_DISTFILES= ${PORTNAME}-${DISTVERSION}-testdata${EXTRACT_SUFX} .include # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include # Work around base r261801 .if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000 GN_ARGS+= extra_cxxflags="-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1" EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libc++-old .else EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libc++-new .endif .if ${ARCH} == aarch64 GN_ARGS+= use_vulcanize=false .endif .if !defined(GN_ONLY) pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build Chromium, you should have around 2GB of memory" @${ECHO_MSG} "and ${WANTSPACE}." @${ECHO_MSG} post-patch: @${REINPLACE_CMD} -e 's|@@PACKAGE@@|chromium|' \ -e 's|@@MENUNAME@@|Chromium Web Browser|' \ ${WRKSRC}/chrome/app/resources/manpage.1.in post-patch-SNDIO-on: @${MKDIR} ${WRKSRC}/media/audio/sndio ${WRKSRC}/media/audio/openbsd @${CP} ${FILESDIR}/sndio_output.* ${WRKSRC}/media/audio/sndio @${CP} ${FILESDIR}/sndio_input.* ${WRKSRC}/media/audio/sndio @${CP} ${FILESDIR}/audio_manager_openbsd.* ${WRKSRC}/media/audio/openbsd pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ ffmpeg flac freetype harfbuzz-ng libdrm libwebp libxml libxslt openh264 opus snappy yasm || ${FALSE} .endif do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} .if !defined(GN_ONLY) cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn \ gen --args='${GN_ARGS}' out/${BUILDTYPE} # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin/node .endif do-test-TEST-on: .for t in ${TEST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && ${SETENV} LC_ALL=en_US.UTF-8 \ ./${t} --gtest_filter=-${EXCLUDE_${t}:ts:} || ${TRUE} .endfor .if !defined(GN_ONLY) do-install: @${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_MAN} ${WRKSRC}/chrome/app/resources/manpage.1.in \ ${STAGEDIR}${MANPREFIX}/man/man1/chrome.1 ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*.service ${STAGEDIR}${DATADIR} .for s in 22 24 48 64 128 256 @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps ${INSTALL_DATA} ${WRKSRC}/chrome/app/theme/chromium/product_logo_${s}.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${s}x${s}/apps/chrome.png .endfor ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*.png ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*.pak ${STAGEDIR}${DATADIR} .for d in protoc icudtl.dat mksnapshot natives_blob.bin snapshot_blob.bin v8_context_snapshot.bin ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${d} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chrome \ ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${COPYTREE_SHARE} "locales resources" ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${DESKTOPDIR} ${INSTALL_DATA} ${WRKDIR}/chromium-browser.desktop \ ${STAGEDIR}${DESKTOPDIR} ${INSTALL_SCRIPT} ${WRKDIR}/chrome ${STAGEDIR}${PREFIX}/bin ${INSTALL_SCRIPT} ${WRKSRC}/chrome/tools/build/linux/chrome-wrapper \ ${STAGEDIR}${DATADIR} .for f in libEGL.so libGLESv2.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor @${MKDIR} ${STAGEDIR}${DATADIR}/swiftshader .for g in libEGL.so libGLESv2.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/swiftshader/${g} \ ${STAGEDIR}${DATADIR}/swiftshader .endfor post-install-DEBUG-on: ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/*.so \ ${STAGEDIR}${DATADIR} ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/character_data_generator \ ${STAGEDIR}${DATADIR} post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver \ ${STAGEDIR}${PREFIX}/bin .endif .include diff --git a/www/chromium/distinfo b/www/chromium/distinfo index 1bb62371e722..2a5b82f3895a 100644 --- a/www/chromium/distinfo +++ b/www/chromium/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1515196732 -SHA256 (chromium-63.0.3239.132.tar.xz) = 84c46c2c42faaa102abe0647ee1213615a2522627124924c2741ddc2161b3d8d -SIZE (chromium-63.0.3239.132.tar.xz) = 534286424 -SHA256 (chromium-63.0.3239.132-testdata.tar.xz) = 3706e61b3473624dedea61730a6633d94e00fb3670ebdee97a9f73fbdf6bd672 -SIZE (chromium-63.0.3239.132-testdata.tar.xz) = 172896844 +TIMESTAMP = 1519947004 +SHA256 (chromium-64.0.3282.186.tar.xz) = 5fd0218759231ac00cc729235823592f6fd1e4a00ff64780a5fed7ab210f1860 +SIZE (chromium-64.0.3282.186.tar.xz) = 482247144 +SHA256 (chromium-64.0.3282.186-testdata.tar.xz) = edda88026371323a3515f6243c3ab35cc94a98527b0dd9afb057c9223987a913 +SIZE (chromium-64.0.3282.186-testdata.tar.xz) = 251883204 diff --git a/www/chromium/files/patch-BUILD.gn b/www/chromium/files/patch-BUILD.gn index 8e1e30e6dfa8..3ddf88089fb8 100644 --- a/www/chromium/files/patch-BUILD.gn +++ b/www/chromium/files/patch-BUILD.gn @@ -1,96 +1,87 @@ ---- BUILD.gn.orig 2017-12-15 02:04:03.000000000 +0100 -+++ BUILD.gn 2017-12-25 04:12:31.425198000 +0100 -@@ -99,7 +99,7 @@ - ] - } - -- if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) { -+ if (!is_ios && !is_android && !is_chromecast && !is_fuchsia && !is_bsd) { - deps += [ - "//chrome", - "//chrome/installer/zucchini:zucchini", -@@ -368,7 +368,7 @@ +--- BUILD.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ BUILD.gn 2018-03-03 19:04:30.972689000 +0100 +@@ -361,7 +361,7 @@ } } - if (is_linux || is_android) { + if ((is_linux && !is_bsd) || is_android) { deps += [ "//third_party/breakpad:breakpad_unittests", "//third_party/breakpad:core-2-minidump", -@@ -408,8 +408,6 @@ +@@ -406,8 +406,6 @@ "//net:disk_cache_memory_test", "//net:quic_client", "//net:quic_server", - "//sandbox/linux:chrome_sandbox", - "//sandbox/linux:sandbox_linux_unittests", ] if (use_dbus) { -@@ -465,10 +463,6 @@ +@@ -464,10 +462,6 @@ "//chrome/test/chromedriver:chromedriver", "//chrome/test/chromedriver:chromedriver_tests", "//components/sync:run_sync_testserver", - "//courgette:courgette", - "//courgette:courgette_fuzz", - "//courgette:courgette_minimal_tool", - "//courgette:courgette_unittests", "//media/cast:generate_barcode_video", "//media/cast:generate_timecode_audio", "//net:crash_cache", -@@ -523,10 +517,6 @@ +@@ -522,10 +516,6 @@ "//mojo/edk/test:mojo_public_system_perftests", "//services/service_manager/public/cpp", "//testing/gmock:gmock_main", - "//third_party/breakpad:dump_syms($host_toolchain)", - "//third_party/breakpad:microdump_stackwalk($host_toolchain)", - "//third_party/breakpad:minidump_dump($host_toolchain)", - "//third_party/breakpad:minidump_stackwalk($host_toolchain)", ] if (!is_android) { -@@ -594,7 +584,7 @@ +@@ -593,7 +583,7 @@ deps += [ "//chrome/installer/mini_installer:next_version_mini_installer" ] } - } else if (!is_android && !is_ios && !is_fuchsia) { + } else if (!is_android && !is_ios && !is_fuchsia && !is_bsd) { deps += [ "//third_party/breakpad:symupload($host_toolchain)" ] } -@@ -831,7 +821,6 @@ +@@ -835,7 +825,6 @@ "//ppapi/examples/video_decode", "//sandbox/linux:chrome_sandbox", "//sandbox/linux:sandbox_linux_unittests", - "//third_party/breakpad:minidump_stackwalk($host_toolchain)", # Blocked on https://github.com/catapult-project/catapult/issues/2297 #"//third_party/catapult/telemetry:bitmaptools", @@ -939,7 +928,7 @@ - data_deps += [ "//content/shell:content_shell_crash_service" ] + ] } - if (!is_win && !is_android) { + if (!is_win && !is_android && !is_bsd) { data_deps += [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] } @@ -948,7 +937,7 @@ data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] } - if (is_linux) { + if (is_linux && !is_bsd) { data_deps += [ "//third_party/breakpad:dump_syms($host_toolchain)" ] } -@@ -1066,9 +1055,6 @@ - "//chrome/installer/mini_installer:mini_installer", - "//chrome/test:angle_perftests", - ] +@@ -1064,9 +1053,6 @@ + + if (is_win) { + data_deps += [ "//chrome/installer/mini_installer:mini_installer" ] - } else { - data_deps += - [ "//third_party/breakpad:minidump_stackwalk($host_toolchain)" ] } - } - } + if (is_win || is_android) { + data_deps += [ "//chrome/test:angle_perftests" ] diff --git a/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc b/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc index 996e487ac691..e81ed7ae1746 100644 --- a/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc +++ b/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc @@ -1,11 +1,11 @@ ---- base/files/memory_mapped_file_posix.cc.orig 2017-08-02 18:42:44.932652000 +0200 -+++ base/files/memory_mapped_file_posix.cc 2017-08-02 18:42:59.362655000 +0200 -@@ -114,7 +114,7 @@ - - #if defined(OS_ANDROID) && __ANDROID_API__ < 21 +--- base/files/memory_mapped_file_posix.cc.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/files/memory_mapped_file_posix.cc 2018-03-03 19:01:12.448678000 +0100 +@@ -110,6 +110,8 @@ + // Only Android API>=21 supports the fallocate call. Older versions need + // to manually extend the file by writing zeros at block intervals. do_manual_extension = true; --#elif !defined(OS_MACOSX) -+#elif !defined(OS_MACOSX) && !defined(OS_BSD) - if (posix_fallocate(file_.GetPlatformFile(), region.offset, - region.size) != 0) { - DPLOG(ERROR) << "posix_fallocate " << file_.GetPlatformFile(); ++#elif defined(OS_BSD) ++ do_manual_extension = true; + #elif defined(OS_MACOSX) + // MacOS doesn't support fallocate even though their new APFS filesystem + // does support sparse files. It does, however, have the functionality diff --git a/www/chromium/files/patch-base_process_process__metrics.h b/www/chromium/files/patch-base_process_process__metrics.h index 70aaf3ae0685..3824a4367bdc 100644 --- a/www/chromium/files/patch-base_process_process__metrics.h +++ b/www/chromium/files/patch-base_process_process__metrics.h @@ -1,74 +1,83 @@ ---- base/process/process_metrics.h.orig 2017-12-23 20:56:16.823419000 +0100 -+++ base/process/process_metrics.h 2017-12-23 20:58:52.195249000 +0100 +--- base/process/process_metrics.h.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/process/process_metrics.h 2018-03-03 19:17:04.829273000 +0100 @@ -103,7 +103,7 @@ size_t image; }; -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) // Minor and major page fault counts since the process creation. // Both counts are process-wide, and exclude child processes. // @@ -245,7 +245,7 @@ // otherwise. bool GetIOCounters(IoCounters* io_counters) const; -#if defined(OS_LINUX) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD) // Returns the number of file descriptors currently open by the process, or // -1 on error. int GetOpenFdCount() const; @@ -255,7 +255,7 @@ int GetOpenFdSoftLimit() const; #endif // defined(OS_LINUX) || defined(OS_AIX) -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) // Bytes of swap as reported by /proc/[pid]/status. uint64_t GetVmSwapBytes() const; @@ -282,7 +282,7 @@ bool GetWorkingSetKBytesTotmaps(WorkingSetKBytes *ws_usage) const; #endif -#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) +#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD) int CalculateIdleWakeupsPerSecond(uint64_t absolute_idle_wakeups); #endif #if defined(OS_MACOSX) @@ -303,7 +303,7 @@ TimeTicks last_cpu_time_; int64_t last_system_time_; -#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) +#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD) // Same thing for idle wakeups. TimeTicks last_idle_wakeups_time_; uint64_t last_absolute_idle_wakeups_; @@ -351,7 +351,7 @@ #endif // defined(OS_POSIX) #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \ - defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) + defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) || defined(OS_BSD) // Data about system-wide memory consumption. Values are in KB. Available on // Windows, Mac, Linux, Android and Chrome OS. // @@ -384,7 +384,7 @@ int avail_phys = 0; #endif -#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD) // This provides an estimate of available memory as described here: // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 // NOTE: this is ONLY valid in kernels 3.14 and up. Its value will always @@ -399,7 +399,7 @@ #endif #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_AIX) || \ - defined(OS_FUCHSIA) + defined(OS_FUCHSIA) || defined(OS_BSD) int buffers = 0; int cached = 0; int active_anon = 0; +@@ -437,7 +437,7 @@ + #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || + // defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_FUCHSIA) + +-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_AIX) || defined(OS_BSD) + // Parse the data found in /proc//stat and return the sum of the + // CPU-related ticks. Returns -1 on parse error. + // Exposed for testing. diff --git a/www/chromium/files/patch-base_process_process__metrics__freebsd.cc b/www/chromium/files/patch-base_process_process__metrics__freebsd.cc index 7f4a0bfe0ca8..22259506b400 100644 --- a/www/chromium/files/patch-base_process_process__metrics__freebsd.cc +++ b/www/chromium/files/patch-base_process_process__metrics__freebsd.cc @@ -1,74 +1,86 @@ ---- base/process/process_metrics_freebsd.cc.orig 2018-01-04 21:05:38.000000000 +0100 -+++ base/process/process_metrics_freebsd.cc 2018-01-27 20:04:35.262483000 +0100 +--- base/process/process_metrics_freebsd.cc.orig 2018-02-24 16:25:08.000000000 +0100 ++++ base/process/process_metrics_freebsd.cc 2018-03-03 19:25:40.067505000 +0100 @@ -12,6 +12,10 @@ #include "base/macros.h" #include "base/memory/ptr_util.h" +#include /* getpagesize() */ +#include /* O_RDONLY */ +#include + namespace base { ProcessMetrics::ProcessMetrics(ProcessHandle process) -@@ -118,6 +122,60 @@ +@@ -25,6 +29,11 @@ + return WrapUnique(new ProcessMetrics(process)); + } + ++bool GetVmStatInfo(VmStatInfo* vmstat) { ++ NOTIMPLEMENTED(); ++ return false; ++} ++ + size_t ProcessMetrics::GetPagefileUsage() const { + struct kinfo_proc info; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, process_ }; +@@ -118,6 +127,60 @@ pagesize = getpagesize(); return mem_total - (mem_free*pagesize) - (mem_inactive*pagesize); +} + +int GetNumberOfThreads(ProcessHandle process) { + // Taken from FreeBSD top (usr.bin/top/machine.c) + + kvm_t* kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); + if (kd == NULL) + return 0; + + struct kinfo_proc* pbase; + int nproc; + pbase = kvm_getprocs(kd, KERN_PROC_PID, process, &nproc); + if (pbase == NULL) + return 0; + + if (kvm_close(kd) == -1) + return 0; + + return nproc; +} + +bool GetSystemMemoryInfo(SystemMemoryInfoKB *meminfo) { + unsigned int mem_total, mem_free, swap_total, swap_used; + size_t length; + int pagesizeKB; + + pagesizeKB = getpagesize() / 1024; + + length = sizeof(mem_total); + if (sysctlbyname("vm.stats.vm.v_page_count", &mem_total, + &length, NULL, 0) != 0 || length != sizeof(mem_total)) + return false; + + length = sizeof(mem_free); + if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &length, NULL, 0) + != 0 || length != sizeof(mem_free)) + return false; + + length = sizeof(swap_total); + if (sysctlbyname("vm.swap_size", &swap_total, &length, NULL, 0) + != 0 || length != sizeof(swap_total)) + return false; + + length = sizeof(swap_used); + if (sysctlbyname("vm.swap_anon_use", &swap_used, &length, NULL, 0) + != 0 || length != sizeof(swap_used)) + return false; + + meminfo->total = mem_total * pagesizeKB; + meminfo->free = mem_free * pagesizeKB; + meminfo->swap_total = swap_total * pagesizeKB; + meminfo->swap_free = (swap_total - swap_used) * pagesizeKB; + + return true; } } // namespace base diff --git a/www/chromium/files/patch-build_config_BUILDCONFIG.gn b/www/chromium/files/patch-build_config_BUILDCONFIG.gn index 4c70e0ad7bb7..79886dfc72c7 100644 --- a/www/chromium/files/patch-build_config_BUILDCONFIG.gn +++ b/www/chromium/files/patch-build_config_BUILDCONFIG.gn @@ -1,124 +1,122 @@ ---- build/config/BUILDCONFIG.gn.orig 2017-12-15 02:04:05.000000000 +0100 -+++ build/config/BUILDCONFIG.gn 2017-12-30 02:24:17.939908000 +0100 -@@ -131,13 +131,13 @@ +--- build/config/BUILDCONFIG.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ build/config/BUILDCONFIG.gn 2018-03-03 19:33:34.562749000 +0100 +@@ -131,14 +131,14 @@ is_official_build = false # Whether we're a traditional desktop unix. - is_desktop_linux = current_os == "linux" + is_desktop_linux = current_os == "linux" || current_os == "bsd" # Set to true when compiling with the Clang compiler. Typically this is used # to configure warnings. is_clang = current_os == "mac" || current_os == "ios" || current_os == "chromeos" || -- current_os == "fuchsia" || current_os == "android" || -+ current_os == "fuchsia" || current_os == "android" || current_os == "bsd" || + current_os == "fuchsia" || current_os == "android" || +- current_os == "win" || ++ current_os == "win" || current_os == "bsd" || (current_os == "linux" && current_cpu != "s390x" && current_cpu != "s390" && current_cpu != "ppc64" && current_cpu != "ppc" && current_cpu != "mips" && current_cpu != "mips64") -@@ -190,8 +190,8 @@ +@@ -191,8 +191,8 @@ # TODO(dpranke): Add some sort of assert here that verifies that # no toolchain omitted host_toolchain from its toolchain_args(). - if (host_os == "linux") { - if (target_os != "linux") { + if (host_os == "linux" || host_os == "bsd") { + if (target_os != "linux" || target_os != "bsd") { # TODO(dpranke) - is_clang normally applies only to the target # build, and there is no way to indicate that you want to override # it for both the target build *and* the host build. Do we need to -@@ -229,7 +229,7 @@ - } else { - _default_toolchain = "//build/toolchain/android:android_$target_cpu" - } +@@ -226,7 +226,7 @@ + assert(host_os == "linux" || host_os == "mac", + "Android builds are only supported on Linux and Mac hosts.") + _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu" -} else if (target_os == "chromeos" || target_os == "linux") { +} else if (target_os == "chromeos" || target_os == "linux" || target_os == "bsd") { # See comments in build/toolchain/cros/BUILD.gn about board compiles. if (is_clang) { _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" -@@ -297,6 +297,7 @@ +@@ -296,6 +296,7 @@ is_nacl = false is_posix = false is_win = true + is_bsd = false } else if (current_os == "mac") { is_android = false is_chromeos = false -@@ -307,6 +308,7 @@ +@@ -306,6 +307,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "android") { is_android = true is_chromeos = false -@@ -317,6 +319,7 @@ +@@ -316,6 +318,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "chromeos") { is_android = false is_chromeos = true -@@ -327,6 +330,7 @@ +@@ -326,6 +329,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "nacl") { # current_os == "nacl" will be passed by the nacl toolchain definition. # It is not set by default or on the command line. We treat is as a -@@ -340,6 +344,7 @@ +@@ -339,6 +343,7 @@ is_nacl = true is_posix = true is_win = false + is_bsd = false } else if (current_os == "fuchsia") { is_android = false is_chromeos = false -@@ -350,6 +355,7 @@ +@@ -349,6 +354,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "ios") { is_android = false is_chromeos = false -@@ -360,6 +366,7 @@ +@@ -359,6 +365,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "linux") { is_android = false is_chromeos = false -@@ -370,6 +377,7 @@ +@@ -369,6 +376,7 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false } else if (current_os == "aix") { is_android = false is_chromeos = false -@@ -379,8 +387,20 @@ +@@ -378,6 +386,18 @@ is_nacl = false is_posix = true is_win = false + is_bsd = false +} else if (current_os == "bsd") { + is_android = false + is_chromeos = false + is_fuchsia = false + is_ios = false + is_linux = true -+ is_bsd = true + is_mac = false + is_nacl = false + is_posix = true + is_win = false + is_bsd = true } -- - # ============================================================================= - # SOURCES FILTERS + # ============================================================================= diff --git a/www/chromium/files/patch-build_config_compiler_BUILD.gn b/www/chromium/files/patch-build_config_compiler_BUILD.gn index 82763f0cc241..1e141ec9363c 100644 --- a/www/chromium/files/patch-build_config_compiler_BUILD.gn +++ b/www/chromium/files/patch-build_config_compiler_BUILD.gn @@ -1,89 +1,93 @@ ---- build/config/compiler/BUILD.gn.orig 2018-01-04 21:05:38.000000000 +0100 -+++ build/config/compiler/BUILD.gn 2018-01-20 16:53:24.701867000 +0100 -@@ -47,7 +47,7 @@ +--- build/config/compiler/BUILD.gn.orig 2018-02-24 16:25:08.000000000 +0100 ++++ build/config/compiler/BUILD.gn 2018-03-03 19:36:38.111753000 +0100 +@@ -48,7 +48,7 @@ # only two architectures that are currently checked in). Turn this off when # you are using a custom toolchain and need to control -B in cflags. linux_use_bundled_binutils = - linux_use_bundled_binutils_override && is_linux && + linux_use_bundled_binutils_override && (is_linux && !is_bsd) && (current_cpu == "x64" || current_cpu == "x86") binutils_path = rebase_path("//third_party/binutils/Linux_x64/Release/bin", root_build_dir) -@@ -222,7 +222,7 @@ +@@ -223,7 +223,7 @@ # Linker warnings. if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") && !(is_android && use_order_profiling) && !is_mac && !is_ios && - current_os != "aix") { + current_os != "aix" && !is_bsd) { # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580 # TODO(lizeb,pasko): Fix link errors when linking with order_profiling=1 # crbug.com/485542 -@@ -326,8 +326,6 @@ +@@ -327,8 +327,6 @@ "-Wl,-z,relro", ] if (!using_sanitizer) { - ldflags += [ "-Wl,-z,defs" ] - # Functions interposed by the sanitizers can make ld think # that some libraries aren't needed when they actually are, # http://crbug.com/234010. As workaround, disable --as-needed. -@@ -424,7 +422,7 @@ +@@ -425,7 +423,7 @@ # TODO(hans): Remove this once Clang generates better optimized debug info by # default. https://crbug.com/765793 if (is_clang && !is_nacl && current_toolchain == host_toolchain && - target_os != "chromeos") { + target_os != "chromeos" && !is_bsd) { cflags += [ "-Xclang", "-mllvm", -@@ -638,7 +636,7 @@ +@@ -622,7 +620,7 @@ cflags += [ "-mtune=$arm_tune" ] } } else if (current_cpu == "arm64") { - if (is_clang && !is_android && !is_nacl && !is_fuchsia) { + if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd) { cflags += [ "--target=aarch64-linux-gnu" ] ldflags += [ "--target=aarch64-linux-gnu" ] } -@@ -1261,23 +1259,8 @@ +@@ -1280,27 +1278,8 @@ # TODO(hans): https://crbug.com/637306 "-Wno-address-of-packed-member", - # TODO(hans): https://crbug.com/681136 - "-Wno-unused-lambda-capture", - # TODO(thakis ): https://crbug.com/683349 "-Wno-user-defined-warnings", - - # TODO(thakis): https://crbug.com/753973 - "-Wno-enum-compare-switch", - - # TODO(hans): https://crbug.com/763392 - "-Wno-tautological-unsigned-zero-compare", - - # TODO(hans): https://crbug.com/766891 - "-Wno-null-pointer-arithmetic", - - # TODO(hans): https://crbug.com/767059 -- "-Wno-tautological-unsigned-enum-zero-compare", +- # Disable -Wtautological-constant-compare (and implicitly also +- # -Wtautological-unsigned-enum-zero-compare), but re-enable +- # useful sub-diagnostics in that group. +- "-Wno-tautological-constant-compare", +- "-Wtautological-constant-out-of-range-compare", ] - } else if (use_xcode_clang && xcode_version_int >= 830) { - # This is necessary to allow a progressive transition from using xcode 8.0 -@@ -1861,7 +1844,7 @@ + } else if (use_xcode_clang) { + cflags += [ +@@ -1920,7 +1899,7 @@ # [1] crrev.com/a81d5ade0b043208e06ad71a38bcf9c348a1a52f cflags += [ "-gdwarf-3" ] } - cflags += [ "-g2" ] + cflags += [ "-g0" ] } if (use_debug_fission && !is_nacl) { cflags += [ "-gsplit-dwarf" ] -@@ -1875,7 +1858,7 @@ +@@ -1934,7 +1913,7 @@ # DWARF info may be corrupt; offsets in a range list entry are in different # sections" there. Maybe just a bug in nacl_switch_32.S. if (!is_mac && !is_ios && !is_nacl && target_cpu != "x86" && - (use_gold || use_lld)) { + (use_gold || use_lld) && !is_bsd) { if (is_clang) { # This flag enables the GNU-format pubnames and pubtypes sections, # which lld needs in order to generate a correct GDB index. diff --git a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc index c56c38b1f390..e4fd91ff05ba 100644 --- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc +++ b/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc @@ -1,128 +1,92 @@ ---- chrome/app/chrome_main_delegate.cc.orig 2017-12-15 02:04:07.000000000 +0100 -+++ chrome/app/chrome_main_delegate.cc 2017-12-24 00:00:14.610706000 +0100 -@@ -96,7 +96,7 @@ +--- chrome/app/chrome_main_delegate.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/app/chrome_main_delegate.cc 2018-03-03 20:07:40.484969000 +0100 +@@ -98,7 +98,7 @@ #include "chrome/app/shutdown_signal_handlers_posix.h" #endif -#if BUILDFLAG(ENABLE_NACL) && defined(OS_LINUX) +#if BUILDFLAG(ENABLE_NACL) && defined(OS_LINUX) && !defined(OS_BSD) #include "components/nacl/common/nacl_paths.h" #include "components/nacl/zygote/nacl_fork_delegate_linux.h" #endif -@@ -137,7 +137,7 @@ +@@ -133,7 +133,7 @@ #include "v8/include/v8.h" #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) #include "base/environment.h" #endif -@@ -176,7 +176,7 @@ - g_chrome_content_browser_client = LAZY_INSTANCE_INITIALIZER; - #endif +@@ -238,7 +238,7 @@ --#if defined(OS_POSIX) -+#if defined(OS_POSIX) && !defined(OS_BSD) - base::LazyInstance::Leaky g_chrome_crash_client = - LAZY_INSTANCE_INITIALIZER; - #endif -@@ -304,7 +304,7 @@ - // and resources loaded. - bool SubprocessNeedsResourceBundle(const std::string& process_type) { - return --#if defined(OS_POSIX) && !defined(OS_MACOSX) -+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) - // The zygote process opens the resources for the renderers. - process_type == switches::kZygoteProcess || - #endif -@@ -356,7 +356,7 @@ - } - #endif + #endif // defined(OS_WIN) --#if !defined(OS_MACOSX) && !defined(OS_ANDROID) -+#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void SIGTERMProfilingShutdown(int signal) { - Profiling::Stop(); - struct sigaction sigact; -@@ -408,7 +408,7 @@ +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + void AdjustLinuxOOMScore(const std::string& process_type) { + // Browsers and zygotes should still be killable, but killed last. + const int kZygoteScore = 0; +@@ -407,7 +407,7 @@ std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) // On Linux, Chrome does not support running multiple copies under different // DISPLAYs, so the profile directory can be specified in the environment to // support the virtual desktop use-case. -@@ -582,7 +582,7 @@ +@@ -581,7 +581,7 @@ #if defined(OS_CHROMEOS) chromeos::RegisterPathProvider(); #endif -#if BUILDFLAG(ENABLE_NACL) && defined(OS_LINUX) +#if BUILDFLAG(ENABLE_NACL) && defined(OS_LINUX) && !defined(OS_BSD) nacl::RegisterPathProvider(); #endif -@@ -604,7 +604,7 @@ +@@ -603,7 +603,7 @@ std::string format_str = command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat); if (format_str == "machine") { - format = diagnostics::DiagnosticsWriter::MACHINE; + format = diagnostics::DiagnosticsWriter::THEMACHINE; } else if (format_str == "log") { format = diagnostics::DiagnosticsWriter::LOG; } else { -@@ -654,7 +654,7 @@ +@@ -653,7 +653,7 @@ std::string format_str = command_line.GetSwitchValueASCII(switches::kDiagnosticsFormat); if (format_str == "machine") { - format = diagnostics::DiagnosticsWriter::MACHINE; + format = diagnostics::DiagnosticsWriter::THEMACHINE; } else if (format_str == "human") { format = diagnostics::DiagnosticsWriter::HUMAN; } else { -@@ -766,7 +766,7 @@ - std::string process_type = - command_line.GetSwitchValueASCII(switches::kProcessType); - --#if defined(OS_POSIX) -+#if defined(OS_POSIX) && !defined(OS_BSD) - crash_reporter::SetCrashReporterClient(g_chrome_crash_client.Pointer()); - #endif - -@@ -906,7 +906,7 @@ - chrome::InitializePDF(); +@@ -915,7 +915,7 @@ + InitializePDF(); #endif -#if defined(OS_POSIX) && !defined(OS_MACOSX) +#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) // Zygote needs to call InitCrashReporter() in RunZygote(). if (process_type != switches::kZygoteProcess) { #if defined(OS_ANDROID) -@@ -922,7 +922,7 @@ +@@ -931,7 +931,7 @@ breakpad::InitCrashReporter(process_type); #endif // defined(OS_ANDROID) } -#endif // defined(OS_POSIX) && !defined(OS_MACOSX) +#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) // After all the platform Breakpads have been initialized, store the command // line for crash reporting. -@@ -975,7 +975,7 @@ - // This entry is not needed on Linux, where the NaCl loader - // process is launched via nacl_helper instead. - #if BUILDFLAG(ENABLE_NACL) && !defined(CHROME_MULTIPLE_DLL_BROWSER) && \ -- !defined(OS_LINUX) -+ !defined(OS_LINUX) && !defined(OS_BSD) - {switches::kNaClLoaderProcess, NaClMain}, - #else - {"", NULL}, // To avoid constant array of size 0 -@@ -1028,7 +1028,7 @@ +@@ -941,7 +941,7 @@ + void ChromeMainDelegate::SandboxInitialized(const std::string& process_type) { + // Note: If you are adding a new process type below, be sure to adjust the + // AdjustLinuxOOMScore function too. +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + AdjustLinuxOOMScore(process_type); #endif - return process_type == switches::kRelauncherProcess; - } --#elif defined(OS_POSIX) && !defined(OS_ANDROID) -+#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void ChromeMainDelegate::ZygoteStarting( - std::vector>* delegates) { - #if defined(OS_CHROMEOS) + #if defined(OS_WIN) diff --git a/www/chromium/files/patch-chrome_app_chrome__main__delegate.h b/www/chromium/files/patch-chrome_app_chrome__main__delegate.h deleted file mode 100644 index b228ed3e49d3..000000000000 --- a/www/chromium/files/patch-chrome_app_chrome__main__delegate.h +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/app/chrome_main_delegate.h.orig 2017-06-05 19:03:01 UTC -+++ chrome/app/chrome_main_delegate.h -@@ -42,7 +42,7 @@ class ChromeMainDelegate : public content::ContentMain - const std::string& process_type) override; - bool ShouldSendMachPort(const std::string& process_type) override; - bool DelaySandboxInitialization(const std::string& process_type) override; --#elif defined(OS_POSIX) && !defined(OS_ANDROID) -+#elif defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void ZygoteStarting(std::vector>* - delegates) override; - void ZygoteForked() override; diff --git a/www/chromium/files/patch-chrome_app_generated__resources.grd b/www/chromium/files/patch-chrome_app_generated__resources.grd index be4e9ccdd6b4..2dba7ca4b3b7 100644 --- a/www/chromium/files/patch-chrome_app_generated__resources.grd +++ b/www/chromium/files/patch-chrome_app_generated__resources.grd @@ -1,29 +1,29 @@ ---- chrome/app/generated_resources.grd.orig 2017-12-15 02:04:07.000000000 +0100 -+++ chrome/app/generated_resources.grd 2017-12-24 00:06:55.397820000 +0100 -@@ -6903,7 +6903,7 @@ +--- chrome/app/generated_resources.grd.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/app/generated_resources.grd 2018-03-03 20:22:12.855371000 +0100 +@@ -6919,7 +6919,7 @@ Google Payments - + Themes -@@ -6911,7 +6911,7 @@ +@@ -6927,7 +6927,7 @@ Reset to default theme - + Use GTK+ theme -@@ -8061,7 +8061,7 @@ +@@ -8076,7 +8076,7 @@ Set as default - + - - Use system title bar and borders + + Minimize diff --git a/www/chromium/files/patch-chrome_browser_browser__resources.grd b/www/chromium/files/patch-chrome_browser_browser__resources.grd index 3d8ac8600f95..da2dd81c114e 100644 --- a/www/chromium/files/patch-chrome_browser_browser__resources.grd +++ b/www/chromium/files/patch-chrome_browser_browser__resources.grd @@ -1,20 +1,29 @@ ---- chrome/browser/browser_resources.grd.orig 2017-12-15 02:04:08.000000000 +0100 -+++ chrome/browser/browser_resources.grd 2017-12-24 00:39:53.904855000 +0100 -@@ -370,7 +370,7 @@ - +--- chrome/browser/browser_resources.grd.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/browser_resources.grd 2018-03-04 09:28:51.895810000 +0100 +@@ -77,7 +77,7 @@ + + + +- ++ + + + +@@ -369,7 +369,7 @@ + - + -@@ -620,7 +620,7 @@ - +@@ -619,7 +619,7 @@ + - + diff --git a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc index b68d5d80f9f8..f2e640f9788f 100644 --- a/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc +++ b/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc @@ -1,101 +1,83 @@ ---- chrome/browser/chrome_content_browser_client.cc.orig 2017-09-05 21:05:12.000000000 +0200 -+++ chrome/browser/chrome_content_browser_client.cc 2017-09-06 17:56:29.888034000 +0200 -@@ -258,7 +258,7 @@ +--- chrome/browser/chrome_content_browser_client.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/chrome_content_browser_client.cc 2018-03-03 20:34:31.799512000 +0100 +@@ -281,7 +281,7 @@ #include "chromeos/chromeos_switches.h" #include "components/user_manager/user_manager.h" #include "services/service_manager/public/interfaces/interface_provider_spec.mojom.h" -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) #include "chrome/browser/chrome_browser_main_linux.h" #elif defined(OS_ANDROID) - #include "chrome/browser/android/app_hooks.h" -@@ -286,7 +286,7 @@ - #include "chrome/browser/payments/payment_request_factory.h" + #include "base/android/application_status_listener.h" +@@ -316,7 +316,7 @@ + #include "chrome/common/importer/profile_import.mojom.h" #endif -#if defined(OS_LINUX) || defined(OS_WIN) +#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD) #include "chrome/browser/webshare/share_service_impl.h" #endif -@@ -300,7 +300,7 @@ +@@ -330,7 +330,7 @@ #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h" #endif -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h" #endif -@@ -548,7 +548,7 @@ - return false; - } - --#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) -+#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD) - breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( - const std::string& process_type) { - base::FilePath dumps_path; -@@ -598,7 +598,7 @@ - - return -1; - } --#endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) -+#endif // defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) && !defined(OS_BSD) - - void SetApplicationLocaleOnIOThread(const std::string& locale) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); -@@ -876,7 +876,7 @@ +@@ -912,7 +912,7 @@ main_parts = new ChromeBrowserMainPartsMac(parameters); #elif defined(OS_CHROMEOS) main_parts = new chromeos::ChromeBrowserMainPartsChromeos(parameters); -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) main_parts = new ChromeBrowserMainPartsLinux(parameters); #elif defined(OS_ANDROID) main_parts = new ChromeBrowserMainPartsAndroid(parameters); -@@ -892,7 +892,7 @@ +@@ -928,7 +928,7 @@ // Construct additional browser parts. Stages are called in the order in // which they are added. #if defined(TOOLKIT_VIEWS) -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(USE_OZONE) +#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) && !defined(USE_OZONE) main_parts->AddParts(new ChromeBrowserMainExtraPartsViewsLinux()); #else main_parts->AddParts(new ChromeBrowserMainExtraPartsViews()); -@@ -1540,7 +1540,7 @@ +@@ -1651,7 +1651,7 @@ command_line->AppendSwitchASCII(switches::kMetricsClientID, client_info->client_id); } -#elif defined(OS_POSIX) +#elif defined(OS_POSIX) && !defined(OS_BSD) - if (breakpad::IsCrashReporterEnabled()) { - std::string switch_value; - std::unique_ptr client_info = -@@ -2710,7 +2710,7 @@ + bool enable_crash_reporter = breakpad::IsCrashReporterEnabled(); + #if defined(OS_CHROMEOS) + // Chrome OS uses the OS-level crash_reporter for mash services, so disable +@@ -2913,7 +2913,7 @@ } } -#if defined(OS_POSIX) && !defined(OS_MACOSX) +#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( const base::CommandLine& command_line, int child_process_id, -@@ -2752,7 +2752,7 @@ +@@ -2949,7 +2949,7 @@ } #endif // defined(OS_ANDROID) } -#endif // defined(OS_POSIX) && !defined(OS_MACOSX) +#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) #if defined(OS_WIN) base::string16 ChromeContentBrowserClient::GetAppContainerSidForSandboxType( -@@ -3316,7 +3316,7 @@ +@@ -3630,7 +3630,7 @@ #if defined(OS_ANDROID) frame_interfaces_parameterized_->AddInterface(base::Bind( &ForwardToJavaWebContentsRegistry)); -#elif defined(OS_LINUX) || defined(OS_WIN) +#elif defined(OS_LINUX) || defined(OS_WIN) || defined(OS_BSD) frame_interfaces_->AddInterface(base::Bind(&ShareServiceImpl::Create)); #endif diff --git a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc b/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc deleted file mode 100644 index 10bbfa51cfa9..000000000000 --- a/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc +++ /dev/null @@ -1,13 +0,0 @@ ---- chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc.orig 2017-06-05 19:03:02 UTC -+++ chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc -@@ -563,7 +563,10 @@ bool WebrtcAudioPrivateSetAudioExperimentsFunction::Ru - return false; - } - -+#if BUILDFLAG(ENABLE_WEBRTC) -+ // To workaround side effect of having 'enable_webrtc=false' - host->SetEchoCanceller3(*params->audio_experiments.enable_aec3); -+#endif - } - - SendResponse(true); diff --git a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc index b2b75f518852..122267faeb00 100644 --- a/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc +++ b/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc @@ -1,11 +1,20 @@ ---- chrome/browser/first_run/first_run_internal_posix.cc.orig 2017-04-19 19:06:29 UTC -+++ chrome/browser/first_run/first_run_internal_posix.cc -@@ -24,7 +24,7 @@ namespace first_run { +--- chrome/browser/first_run/first_run_internal_posix.cc.orig 2018-02-24 16:25:09.000000000 +0100 ++++ chrome/browser/first_run/first_run_internal_posix.cc 2018-03-03 21:26:08.717035000 +0100 +@@ -34,7 +34,7 @@ namespace internal { + namespace { + +-#if !defined(OS_CHROMEOS) ++#if !defined(OS_CHROMEOS) && !defined(OS_BSD) + // Returns whether the first run dialog should be shown. This is only true for + // certain builds, and only if the user has not already set preferences. In a + // real, official-build first run, initializes the default metrics reporting if +@@ -80,7 +80,7 @@ + } // namespace void DoPostImportPlatformSpecificTasks(Profile* profile) { -#if !defined(OS_CHROMEOS) +#if !defined(OS_CHROMEOS) && !defined(OS_BSD) - base::FilePath local_state_path; - PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path); - bool local_state_file_exists = base::PathExists(local_state_path); + if (!ShouldShowFirstRunDialog()) + return; + diff --git a/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc b/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc similarity index 57% rename from www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc rename to www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc index 69430d9675d5..7a81287db276 100644 --- a/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc +++ b/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc @@ -1,20 +1,20 @@ ---- chrome/browser/interstitials/chrome_controller_client.cc.orig 2017-12-15 02:04:09.000000000 +0100 -+++ chrome/browser/interstitials/chrome_controller_client.cc 2017-12-24 01:30:40.740189000 +0100 -@@ -46,7 +46,7 @@ +--- chrome/browser/ssl/ssl_error_controller_client.cc.orig 2018-03-03 21:13:39.612526000 +0100 ++++ chrome/browser/ssl/ssl_error_controller_client.cc 2018-03-03 21:14:15.298290000 +0100 +@@ -55,7 +55,7 @@ #if defined(OS_ANDROID) chrome::android::OpenDateAndTimeSettings(); -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) struct ClockCommand { const char* const pathname; const char* const argument; -@@ -130,7 +130,7 @@ +@@ -185,7 +185,7 @@ - bool ChromeControllerClient::CanLaunchDateAndTimeSettings() { + bool SSLErrorControllerClient::CanLaunchDateAndTimeSettings() { #if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_MACOSX) || \ - defined(OS_WIN) + defined(OS_WIN) || defined(OS_BSD) return true; #else return false; diff --git a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc index 5a815f677766..d39e8c05bab2 100644 --- a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc +++ b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc @@ -1,56 +1,56 @@ ---- chrome/browser/task_manager/sampling/task_group.cc.orig 2017-12-15 02:04:10.000000000 +0100 -+++ chrome/browser/task_manager/sampling/task_group.cc 2017-12-24 02:18:09.634446000 +0100 -@@ -28,9 +28,9 @@ +--- chrome/browser/task_manager/sampling/task_group.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/task_manager/sampling/task_group.cc 2018-03-03 21:46:29.318291000 +0100 +@@ -29,9 +29,9 @@ #if defined(OS_WIN) REFRESH_TYPE_START_TIME | REFRESH_TYPE_CPU_TIME | #endif // defined(OS_WIN) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) REFRESH_TYPE_FD_COUNT | -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) #if BUILDFLAG(ENABLE_NACL) REFRESH_TYPE_NACL | #endif // BUILDFLAG(ENABLE_NACL) -@@ -103,9 +103,9 @@ +@@ -105,9 +105,9 @@ + #if BUILDFLAG(ENABLE_NACL) nacl_debug_stub_port_(nacl::kGdbDebugStubPortUnknown), #endif // BUILDFLAG(ENABLE_NACL) - idle_wakeups_per_second_(-1), -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) open_fd_count_(-1), -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) + idle_wakeups_per_second_(-1), gpu_memory_has_duplicates_(false), is_backgrounded_(false), - weak_ptr_factory_(this) { -@@ -118,10 +118,10 @@ +@@ -121,10 +121,10 @@ weak_ptr_factory_.GetWeakPtr()), base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone, weak_ptr_factory_.GetWeakPtr()), -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) base::Bind(&TaskGroup::OnOpenFdCountRefreshDone, weak_ptr_factory_.GetWeakPtr()), -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) base::Bind(&TaskGroup::OnProcessPriorityDone, weak_ptr_factory_.GetWeakPtr())); -@@ -338,14 +338,14 @@ - OnBackgroundRefreshTypeFinished(REFRESH_TYPE_IDLE_WAKEUPS); +@@ -284,14 +284,14 @@ } + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) void TaskGroup::OnOpenFdCountRefreshDone(int open_fd_count) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); open_fd_count_ = open_fd_count; OnBackgroundRefreshTypeFinished(REFRESH_TYPE_FD_COUNT); } -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) - void TaskGroup::OnProcessPriorityDone(bool is_backgrounded) { + void TaskGroup::OnCpuRefreshDone(double cpu_usage) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); diff --git a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h index eda8013fad37..988543e7cf6d 100644 --- a/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h +++ b/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h @@ -1,39 +1,39 @@ ---- chrome/browser/task_manager/sampling/task_group.h.orig 2017-04-19 19:06:30 UTC -+++ chrome/browser/task_manager/sampling/task_group.h -@@ -96,9 +96,9 @@ class TaskGroup { +--- chrome/browser/task_manager/sampling/task_group.h.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/task_manager/sampling/task_group.h 2018-03-03 21:51:35.928601000 +0100 +@@ -106,9 +106,9 @@ int nacl_debug_stub_port() const { return nacl_debug_stub_port_; } - #endif // !defined(DISABLE_NACL) + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) int open_fd_count() const { return open_fd_count_; } -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) int idle_wakeups_per_second() const { return idle_wakeups_per_second_; } -@@ -124,9 +124,9 @@ class TaskGroup { - - void OnIdleWakeupsRefreshDone(int idle_wakeups_per_second); - +@@ -122,9 +122,9 @@ + void RefreshNaClDebugStubPort(int child_process_unique_id); + void OnRefreshNaClDebugStubPortDone(int port); + #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) void OnOpenFdCountRefreshDone(int open_fd_count); -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) - void OnProcessPriorityDone(bool is_backgrounded); - -@@ -174,10 +174,10 @@ class TaskGroup { + void OnCpuRefreshDone(double cpu_usage); + void OnMemoryUsageRefreshDone(MemoryUsageStats memory_usage); +@@ -184,10 +184,10 @@ + #if BUILDFLAG(ENABLE_NACL) int nacl_debug_stub_port_; - #endif // !defined(DISABLE_NACL) - int idle_wakeups_per_second_; + #endif // BUILDFLAG(ENABLE_NACL) -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) // The number of file descriptors currently open by the process. int open_fd_count_; -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) || defined(OS_BSD) + int idle_wakeups_per_second_; bool gpu_memory_has_duplicates_; bool is_backgrounded_; - diff --git a/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc b/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc index 18d80fcd4f95..72886af02f70 100644 --- a/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc +++ b/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc @@ -1,38 +1,38 @@ ---- chrome/browser/ui/browser_command_controller.cc.orig 2017-06-05 19:03:03 UTC -+++ chrome/browser/ui/browser_command_controller.cc -@@ -80,7 +80,7 @@ - #include "chrome/browser/ui/browser_commands_chromeos.h" +--- chrome/browser/ui/browser_command_controller.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/browser_command_controller.cc 2018-03-03 21:58:39.480640000 +0100 +@@ -83,7 +83,7 @@ + #include "ui/base/clipboard/clipboard_types.h" #endif -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) #include "ui/base/ime/linux/text_edit_key_bindings_delegate_auralinux.h" #endif -@@ -209,7 +209,7 @@ bool BrowserCommandController::IsReservedCommandOrKey( +@@ -216,7 +216,7 @@ #endif } -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) // If this key was registered by the user as a content editing hotkey, then // it is not reserved. ui::TextEditKeyBindingsDelegateAuraLinux* delegate = -@@ -413,7 +413,7 @@ void BrowserCommandController::ExecuteCommandWithDispo +@@ -425,7 +425,7 @@ break; #endif -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) - case IDC_USE_SYSTEM_TITLE_BAR: { - PrefService* prefs = profile()->GetPrefs(); - prefs->SetBoolean(prefs::kUseCustomChromeFrame, -@@ -766,7 +766,7 @@ void BrowserCommandController::InitCommandState() { + case IDC_MINIMIZE_WINDOW: + browser_->window()->Minimize(); + break; +@@ -853,7 +853,7 @@ command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_2, true); command_updater_.UpdateCommandEnabled(IDC_VISIT_DESKTOP_OF_LRU_USER_3, true); #endif -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) - command_updater_.UpdateCommandEnabled(IDC_USE_SYSTEM_TITLE_BAR, true); - #endif - + command_updater_.UpdateCommandEnabled(IDC_MINIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_MAXIMIZE_WINDOW, true); + command_updater_.UpdateCommandEnabled(IDC_RESTORE_WINDOW, true); diff --git a/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc b/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc new file mode 100644 index 000000000000..c8895cf8be41 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/sad_tab.cc.orig 2018-03-03 21:11:09.039038000 +0100 ++++ chrome/browser/ui/sad_tab.cc 2018-03-03 21:11:28.213027000 +0100 +@@ -180,7 +180,7 @@ + // Only show incognito suggestion if not already in Incognito mode. + if (!web_contents_->GetBrowserContext()->IsOffTheRecord()) + message_ids.insert(message_ids.begin(), IDS_SAD_TAB_RELOAD_INCOGNITO); +-#if defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + // Note: on macOS, Linux and ChromeOS, the first bullet is either one of + // IDS_SAD_TAB_RELOAD_CLOSE_TABS or IDS_SAD_TAB_RELOAD_CLOSE_NOTABS + // followed by one of the above suggestions. diff --git a/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc b/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc new file mode 100644 index 000000000000..c264949e1cb9 --- /dev/null +++ b/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc @@ -0,0 +1,11 @@ +--- chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc.orig 2018-03-03 21:07:27.595112000 +0100 ++++ chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_views.cc 2018-03-03 21:07:57.689186000 +0100 +@@ -18,7 +18,7 @@ + #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h" + #endif + +-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++#if (defined(OS_BSD) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) + #include "ui/views/linux_ui/linux_ui.h" + #endif + diff --git a/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc b/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc deleted file mode 100644 index 906206b93202..000000000000 --- a/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- chrome/browser/ui/views/message_center/message_center_frame_view.cc.orig 2017-04-19 19:06:30 UTC -+++ chrome/browser/ui/views/message_center/message_center_frame_view.cc -@@ -15,7 +15,7 @@ - namespace message_center { - - MessageCenterFrameView::MessageCenterFrameView() { --#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+#if (defined(OS_LINUX) || defined(OS_BSD)) && !defined(OS_CHROMEOS) - const int kBorderWidth = 1; - SetBorder(views::CreateSolidBorder( - kBorderWidth, message_center::kMessageCenterBorderColor)); diff --git a/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc b/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc index c54f57aa987e..b91d782f6228 100644 --- a/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc +++ b/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc @@ -1,20 +1,20 @@ ---- chrome/browser/ui/views/profiles/avatar_button.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/browser/ui/views/profiles/avatar_button.cc 2017-09-06 18:45:09.941798000 +0200 -@@ -194,7 +194,7 @@ +--- chrome/browser/ui/views/profiles/avatar_button.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/views/profiles/avatar_button.cc 2018-03-03 22:06:11.687961000 +0100 +@@ -211,7 +211,7 @@ label()->font_list().DeriveWithHeightUpperBound(kDisplayFontHeight)); bool apply_ink_drop = IsCondensible(); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) DCHECK_EQ(AvatarButtonStyle::THEMED, button_style); apply_ink_drop = true; #endif -@@ -202,7 +202,7 @@ - if (apply_ink_drop) { +@@ -229,7 +229,7 @@ + } else if (apply_ink_drop) { SetInkDropMode(InkDropMode::ON); SetFocusPainter(nullptr); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - constexpr int kIconSize = 16; set_ink_drop_base_color(SK_ColorWHITE); SetBorder(base::MakeUnique()); + generic_avatar_ = diff --git a/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc b/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc index 19d66be0aba4..84bae6590480 100644 --- a/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc +++ b/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc @@ -1,66 +1,20 @@ ---- chrome/browser/ui/webui/about_ui.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/browser/ui/webui/about_ui.cc 2017-09-06 18:59:58.102599000 +0200 -@@ -420,7 +420,7 @@ - return html; - } - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - - const char kAboutDiscardsRunCommand[] = "run"; - const char kAboutDiscardsSkipUnloadHandlersCommand[] = "skip_unload_handlers"; -@@ -564,10 +564,13 @@ - "Discard tab now (safely)", - chrome::kChromeUIDiscardsURL, kAboutDiscardsRunCommand)); - -+#if !defined(OS_BSD) - base::SystemMemoryInfoKB meminfo; - base::GetSystemMemoryInfo(&meminfo); -+#endif - output.append("

System memory information in MB

"); - output.append(""); -+#if !defined(OS_BSD) - // Start with summary statistics. - output.append(AddStringRow( - "Total", base::IntToString(meminfo.total / 1024))); -@@ -599,12 +602,13 @@ - output.append(AddStringRow( - "Graphics", base::IntToString(meminfo.gem_size / 1024 / 1024))); - #endif // OS_CHROMEOS -+#endif - output.append("
"); - AppendFooter(&output); - return output; - } - --#endif // OS_WIN || OS_MACOSX || OS_LINUX -+#endif // OS_WIN || OS_MACOSX || OS_LINUX || defined(OS_BSD) - - // AboutDnsHandler bounces the request back to the IO thread to collect - // the DNS information. -@@ -666,7 +670,7 @@ +--- chrome/browser/ui/webui/about_ui.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/webui/about_ui.cc 2018-03-03 22:12:29.265266000 +0100 +@@ -390,7 +390,7 @@ DISALLOW_COPY_AND_ASSIGN(AboutDnsHandler); }; -#if defined(OS_LINUX) || defined(OS_OPENBSD) +#if defined(OS_LINUX) || defined(OS_BSD) std::string AboutLinuxProxyConfig() { std::string data; AppendHeader(&data, 0, -@@ -723,14 +727,14 @@ - .as_string(); - } - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - } else if (source_name_ == chrome::kChromeUIDiscardsHost) { - response = AboutDiscards(path); - #endif +@@ -448,7 +448,7 @@ } else if (source_name_ == chrome::kChromeUIDNSHost) { AboutDnsHandler::Start(profile(), callback); return; -#if defined(OS_LINUX) || defined(OS_OPENBSD) +#if defined(OS_LINUX) || defined(OS_BSD) } else if (source_name_ == chrome::kChromeUILinuxProxyConfigHost) { response = AboutLinuxProxyConfig(); #endif diff --git a/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc b/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc index 7faeea7873e8..ae36578a9e02 100644 --- a/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc +++ b/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc @@ -1,45 +1,49 @@ ---- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2017-12-15 02:04:11.000000000 +0100 -+++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc 2017-12-24 02:53:23.421702000 +0100 -@@ -179,7 +179,7 @@ +--- chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc 2018-03-03 22:18:39.234352000 +0100 +@@ -176,11 +176,11 @@ #include "chrome/browser/ui/webui/welcome_win10_ui.h" #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + #include "chrome/browser/ui/webui/discards/discards_ui.h" + #endif + -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) #include "chrome/browser/ui/webui/sandbox_internals_ui.h" #endif -@@ -284,13 +284,13 @@ +@@ -285,7 +285,7 @@ #if !defined(OS_ANDROID) || url.host_piece() == chrome::kChromeUITermsHost #endif -#if defined(OS_LINUX) || defined(OS_OPENBSD) -+#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) || url.host_piece() == chrome::kChromeUILinuxProxyConfigHost #endif #if defined(OS_CHROMEOS) - || url.host_piece() == chrome::kChromeUIOSCreditsHost - #endif --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - || url.host_piece() == chrome::kChromeUIDiscardsHost - #endif - ); // NOLINT -@@ -532,7 +532,7 @@ +@@ -524,7 +524,7 @@ if (url.host_piece() == chrome::kChromeUINaClHost) return &NewWebUI; #endif -#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) +#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) || defined(OS_BSD) if (url.host_piece() == chrome::kChromeUITabModalConfirmDialogHost) return &NewWebUI; #endif -@@ -593,7 +593,7 @@ +@@ -585,12 +585,12 @@ return &NewWebUI; } #endif -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) if (url.host_piece() == chrome::kChromeUISandboxHost) { return &NewWebUI; } + #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + if (url.host_piece() == chrome::kChromeUIDiscardsHost) + return &NewWebUI; + #endif diff --git a/www/chromium/files/patch-chrome_common_chrome__switches.cc b/www/chromium/files/patch-chrome_common_chrome__switches.cc index 23af8f3093ea..5519c40a725b 100644 --- a/www/chromium/files/patch-chrome_common_chrome__switches.cc +++ b/www/chromium/files/patch-chrome_common_chrome__switches.cc @@ -1,17 +1,17 @@ ---- chrome/common/chrome_switches.cc.orig 2017-12-15 02:04:11.000000000 +0100 -+++ chrome/common/chrome_switches.cc 2017-12-24 03:10:42.019760000 +0100 -@@ -999,12 +999,12 @@ +--- chrome/common/chrome_switches.cc.orig 2018-02-24 16:25:10.000000000 +0100 ++++ chrome/common/chrome_switches.cc 2018-03-03 22:30:18.421438000 +0100 +@@ -998,12 +998,12 @@ const char kEnableWaylandServer[] = "enable-wayland-server"; #endif -#if defined(OS_WIN) || defined(OS_LINUX) +#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kDisableInputImeAPI[] = "disable-input-ime-api"; - extern const char kEnableInputImeAPI[] = "enable-input-ime-api"; + const char kDisableInputImeAPI[] = "disable-input-ime-api"; + const char kEnableInputImeAPI[] = "enable-input-ime-api"; #endif -#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) +#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD) - extern const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; + const char kEnableNewAppMenuIcon[] = "enable-new-app-menu-icon"; #endif diff --git a/www/chromium/files/patch-chrome_common_url__constants.h b/www/chromium/files/patch-chrome_common_url__constants.h deleted file mode 100644 index 7b71a1a9f147..000000000000 --- a/www/chromium/files/patch-chrome_common_url__constants.h +++ /dev/null @@ -1,47 +0,0 @@ ---- chrome/common/url_constants.h.orig 2017-12-15 02:04:12.000000000 +0100 -+++ chrome/common/url_constants.h 2017-12-31 04:24:38.490568000 +0100 -@@ -136,7 +136,7 @@ - extern const char kChromeUIMetroFlowURL[]; - #endif - --#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) -+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) - extern const char kChromeUITabModalConfirmDialogURL[]; - #endif - -@@ -149,7 +149,7 @@ - extern const char kChromeUICastURL[]; - #endif - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kChromeUIDiscardsURL[]; - #endif - -@@ -262,7 +262,7 @@ - extern const char kChromeUIPrintHost[]; - #endif // ENABLE_PRINT_PREVIEW - --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - extern const char kChromeUIDiscardsHost[]; - #endif - -@@ -270,7 +270,7 @@ - extern const char kChromeUILinuxProxyConfigHost[]; - #endif - --#if defined(OS_LINUX) || defined(OS_ANDROID) -+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - extern const char kChromeUISandboxHost[]; - #endif - -@@ -325,7 +325,7 @@ - extern const char kChromeUIMetroFlowHost[]; - #endif - --#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) -+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) - extern const char kChromeUITabModalConfirmDialogHost[]; - #endif - diff --git a/www/chromium/files/patch-chrome_common_url__constants.cc b/www/chromium/files/patch-chrome_common_webui_url_constants.cc similarity index 62% rename from www/chromium/files/patch-chrome_common_url__constants.cc rename to www/chromium/files/patch-chrome_common_webui_url_constants.cc index c0789a68c5cc..505c4d7f922b 100644 --- a/www/chromium/files/patch-chrome_common_url__constants.cc +++ b/www/chromium/files/patch-chrome_common_webui_url_constants.cc @@ -1,56 +1,41 @@ ---- chrome/common/url_constants.cc.orig 2017-09-05 21:05:14.000000000 +0200 -+++ chrome/common/url_constants.cc 2017-09-07 14:47:04.280263000 +0200 -@@ -146,7 +146,7 @@ - const char kChromeUIMetroFlowURL[] = "chrome://make-metro/"; - #endif - --#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) -+#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) - const char kChromeUITabModalConfirmDialogURL[] = - "chrome://tab-modal-confirm-dialog/"; - #endif -@@ -164,7 +164,7 @@ +--- chrome/common/webui_url_constants.cc.orig 2018-02-24 16:25:11.000000000 +0100 ++++ chrome/common/webui_url_constants.cc 2018-03-03 22:39:51.818055000 +0100 +@@ -226,7 +226,7 @@ const char kChromeUICastURL[] = "chrome://cast/"; #endif --#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) -+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) - const char kChromeUIDiscardsURL[] = "chrome://discards/"; - #endif - -@@ -283,7 +283,7 @@ - const char kChromeUISigninDiceInternalsHost[] = "signin-dice-internals"; - #endif - -#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) +#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) const char kChromeUIDiscardsHost[] = "discards"; + const char kChromeUIDiscardsURL[] = "chrome://discards/"; #endif - -@@ -291,7 +291,7 @@ +@@ -235,11 +235,11 @@ const char kChromeUILinuxProxyConfigHost[] = "linux-proxy-config"; #endif -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) const char kChromeUISandboxHost[] = "sandbox"; #endif -@@ -346,7 +346,7 @@ - const char kChromeUIMetroFlowHost[] = "make-metro"; - #endif - -#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) +#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog"; #endif -@@ -749,7 +749,7 @@ +@@ -380,13 +380,13 @@ + kChromeUIInternetConfigDialogHost, + kChromeUIInternetDetailDialogHost, + #endif +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + kChromeUIDiscardsHost, + #endif #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) kChromeUILinuxProxyConfigHost, #endif -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) kChromeUISandboxHost, #endif #if defined(OS_WIN) diff --git a/www/chromium/files/patch-chrome_common_webui_url_constants.h b/www/chromium/files/patch-chrome_common_webui_url_constants.h new file mode 100644 index 000000000000..e53b479f7301 --- /dev/null +++ b/www/chromium/files/patch-chrome_common_webui_url_constants.h @@ -0,0 +1,25 @@ +--- chrome/common/webui_url_constants.h.orig 2018-02-24 16:25:11.000000000 +0100 ++++ chrome/common/webui_url_constants.h 2018-03-03 22:40:56.113062000 +0100 +@@ -223,7 +223,7 @@ + extern const char kChromeUICastURL[]; + #endif + +-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ++#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + extern const char kChromeUIDiscardsHost[]; + extern const char kChromeUIDiscardsURL[]; + #endif +@@ -232,11 +232,11 @@ + extern const char kChromeUILinuxProxyConfigHost[]; + #endif + +-#if defined(OS_LINUX) || defined(OS_ANDROID) ++#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) + extern const char kChromeUISandboxHost[]; + #endif + +-#if (defined(OS_LINUX) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) ++#if ((defined(OS_BSD) || defined(OS_LINUX)) && defined(TOOLKIT_VIEWS)) || defined(USE_AURA) + extern const char kChromeUITabModalConfirmDialogHost[]; + #endif + diff --git a/www/chromium/files/patch-components_crash_content_app_BUILD.gn b/www/chromium/files/patch-components_crash_content_app_BUILD.gn index 248cb315fdf0..08cd251384dd 100644 --- a/www/chromium/files/patch-components_crash_content_app_BUILD.gn +++ b/www/chromium/files/patch-components_crash_content_app_BUILD.gn @@ -1,20 +1,19 @@ ---- components/crash/content/app/BUILD.gn.orig 2017-12-15 02:04:14.000000000 +0100 -+++ components/crash/content/app/BUILD.gn 2017-12-24 11:36:40.773625000 +0100 -@@ -188,7 +188,7 @@ - libs = [ "log" ] - } +--- components/crash/content/app/BUILD.gn.orig 2018-02-24 16:25:12.000000000 +0100 ++++ components/crash/content/app/BUILD.gn 2018-03-03 22:43:15.726779000 +0100 +@@ -34,7 +34,7 @@ -- if (is_android || is_linux) { -+ if (is_android || (is_linux && !is_bsd)) { + if (is_mac || is_win) { + sources += [ "crashpad.cc" ] +- } else if (is_android || is_linux) { ++ } else if (is_android || is_linux && !is_bsd) { # Want these files on both Linux and Android. set_sources_assignment_filter([]) sources += [ -@@ -218,7 +218,7 @@ - "//sandbox", - "//third_party/breakpad:breakpad_handler", +@@ -64,7 +64,6 @@ + "//components/crash/core/common", + "//content/public/common:content_descriptors", + "//content/public/common:result_codes", +- "//third_party/breakpad:client", ] -- } else if (is_posix && !is_ios) { -+ } else if (is_posix && !is_ios && !is_bsd) { - deps += [ "//third_party/breakpad:client" ] - } - } + + # Clang's -mstackrealign doesn't work well with diff --git a/www/chromium/files/patch-components_crash_core_common_BUILD.gn b/www/chromium/files/patch-components_crash_core_common_BUILD.gn new file mode 100644 index 000000000000..2cdf25209585 --- /dev/null +++ b/www/chromium/files/patch-components_crash_core_common_BUILD.gn @@ -0,0 +1,10 @@ +--- components/crash/core/common/BUILD.gn.orig 2018-03-03 20:58:02.430388000 +0100 ++++ components/crash/core/common/BUILD.gn 2018-03-03 20:58:21.875946000 +0100 +@@ -38,7 +38,6 @@ + "crash_key_internal.h", + ] + +- deps += [ "//third_party/breakpad:client" ] + } + } + diff --git a/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc b/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc index 881aa40ac07b..1d04a75c5987 100644 --- a/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc +++ b/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc @@ -1,11 +1,11 @@ ---- components/password_manager/core/browser/password_manager.cc.orig 2017-12-24 01:41:33.322933000 +0100 -+++ components/password_manager/core/browser/password_manager.cc 2017-12-24 01:42:03.056816000 +0100 -@@ -780,7 +780,7 @@ - if (!client_->GetStoreResultFilter()->ShouldSave( - *provisional_save_manager_->submitted_form())) { +--- components/password_manager/core/browser/password_manager.cc.orig 2018-02-24 16:25:13.000000000 +0100 ++++ components/password_manager/core/browser/password_manager.cc 2018-03-03 22:48:08.497290000 +0100 +@@ -823,7 +823,7 @@ + if (!client_->GetStoreResultFilter()->ShouldSave( + *provisional_save_manager_->submitted_form())) { #if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS)) || \ - (defined(OS_LINUX) && !defined(OS_CHROMEOS)) + (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) - // When |username_value| is empty, it's not clear whether the submitted - // credentials are really sync credentials. Don't save sync password hash - // in that case. + // When |username_value| is empty, it's not clear whether the submitted + // credentials are really sync credentials. Don't save sync password hash + // in that case. diff --git a/www/chromium/files/patch-components_policy_resources_policy__templates.json b/www/chromium/files/patch-components_policy_resources_policy__templates.json index 23ef2be47b33..6b28081bfabd 100644 --- a/www/chromium/files/patch-components_policy_resources_policy__templates.json +++ b/www/chromium/files/patch-components_policy_resources_policy__templates.json @@ -1,29 +1,83 @@ ---- components/policy/resources/policy_templates.json.orig 2017-09-07 05:55:36.848121000 +0200 -+++ components/policy/resources/policy_templates.json 2017-09-07 05:57:05.892892000 +0200 -@@ -2237,7 +2237,7 @@ - 'name': 'GSSAPILibraryName', - 'type': 'string', - 'schema': { 'type': 'string' }, -- 'supported_on': ['chrome.linux:9-'], -+ 'supported_on': ['chrome.linux:9-', 'chrome.bsd:9-'], - 'features': { - 'dynamic_refresh': False, - 'per_profile': False, -@@ -4883,7 +4883,7 @@ +--- components/policy/resources/policy_templates.json.orig 2018-02-24 16:25:13.000000000 +0100 ++++ components/policy/resources/policy_templates.json 2018-03-03 23:01:15.812578000 +0100 +@@ -593,7 +593,7 @@ + 'name': 'HomepageLocation', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.*:8-', 'chrome_os:11-'], ++ 'supported_on': ['chrome.*:8-', 'chrome_os:11-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -621,7 +621,7 @@ + 'name': 'HomepageIsNewTabPage', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.*:8-', 'chrome_os:11-'], ++ 'supported_on': ['chrome.*:8-', 'chrome_os:11-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -648,7 +648,7 @@ + 'name': 'NewTabPageLocation', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.*:58-', 'chrome_os:58-'], ++ 'supported_on': ['chrome.*:58-', 'chrome_os:58-', 'chrome.bsd:9-'], + 'features': { + 'can_be_recommended': True, + 'dynamic_refresh': True, +@@ -1339,7 +1339,7 @@ + 'name': 'RemoteAccessHostMatchUsername', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-', 'chrome_os:42-'], ++ 'supported_on': ['chrome.linux:25-', 'chrome.mac:25-', 'chrome_os:42-', 'chrome.bsd:25-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -2567,7 +2567,7 @@ + 'name': 'GSSAPILibraryName', + 'type': 'string', + 'schema': { 'type': 'string' }, +- 'supported_on': ['chrome.linux:9-'], ++ 'supported_on': ['chrome.linux:9-', 'chrome.bsd:9-'], + 'features': { + 'dynamic_refresh': False, + 'per_profile': False, +@@ -2619,7 +2619,7 @@ + 'name': 'NtlmV2Enabled', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-'], ++ 'supported_on': ['chrome.linux:63-','chrome.mac:63-','chrome_os:63-','android:63-','webview_android:63-', 'chrome.bsd:63-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': False, +@@ -5229,7 +5229,7 @@ 'name': 'RequireOnlineRevocationChecksForLocalAnchors', 'type': 'main', 'schema': { 'type': 'boolean' }, - 'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-'], + 'supported_on': ['chrome_os:30-', 'chrome.linux:30-', 'chrome.win:30-', 'chrome.bsd:30-'], 'features': { 'dynamic_refresh': True, 'per_profile': False, -@@ -5793,7 +5793,7 @@ +@@ -6157,7 +6157,7 @@ 'name': 'BackgroundModeEnabled', 'type': 'main', 'schema': { 'type': 'boolean' }, - 'supported_on': ['chrome.win:19-', 'chrome.linux:19-'], + 'supported_on': ['chrome.win:19-', 'chrome.linux:19-', 'chrome.bsd:19-'], 'features': { 'can_be_recommended': True, 'dynamic_refresh': True, +@@ -6669,7 +6669,7 @@ + 'name': 'FullscreenAllowed', + 'type': 'main', + 'schema': { 'type': 'boolean' }, +- 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-'], ++ 'supported_on': ['chrome.win:31-', 'chrome.linux:31-', 'chrome_os:31-', 'chrome.bsd:31-'], + 'features': { + 'dynamic_refresh': True, + 'per_profile': True, diff --git a/www/chromium/files/patch-content_app_content__main__runner.cc b/www/chromium/files/patch-content_app_content__main__runner.cc index 67d3681d6022..d7a1b3e21e2a 100644 --- a/www/chromium/files/patch-content_app_content__main__runner.cc +++ b/www/chromium/files/patch-content_app_content__main__runner.cc @@ -1,46 +1,37 @@ ---- content/app/content_main_runner.cc.orig 2017-12-15 02:04:16.000000000 +0100 -+++ content/app/content_main_runner.cc 2017-12-24 12:20:00.837482000 +0100 -@@ -83,10 +83,10 @@ +--- content/app/content_main_runner.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/app/content_main_runner.cc 2018-03-03 23:04:17.370076000 +0100 +@@ -82,10 +82,10 @@ #include "base/posix/global_descriptors.h" #include "content/public/common/content_descriptors.h" -#if !defined(OS_MACOSX) +#if !defined(OS_MACOSX) && !defined(OS_BSD) #include "content/public/common/zygote_fork_delegate_linux.h" #endif -#if !defined(OS_MACOSX) && !defined(OS_ANDROID) +#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD) #include "content/zygote/zygote_main.h" #endif -@@ -307,7 +307,7 @@ - }; - - #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ -- !defined(OS_FUCHSIA) -+ !defined(OS_FUCHSIA) && !defined(OS_BSD) - // On platforms that use the zygote, we have a special subset of - // subprocesses that are launched via the zygote. This function - // fills in some process-launching bits around ZygoteMain(). -@@ -432,7 +432,7 @@ +@@ -429,7 +429,7 @@ } #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ - !defined(OS_FUCHSIA) + !defined(OS_FUCHSIA) && !defined(OS_BSD) // Zygote startup is special -- see RunZygote comments above // for why we don't use ZygoteMain directly. if (process_type == switches::kZygoteProcess) -@@ -502,10 +502,10 @@ +@@ -499,10 +499,10 @@ kFieldTrialDescriptor + base::GlobalDescriptors::kBaseDescriptor); #endif // !OS_ANDROID -#if defined(OS_LINUX) || defined(OS_OPENBSD) +#if defined(OS_LINUX) g_fds->Set(kCrashDumpSignal, kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); -#endif // OS_LINUX || OS_OPENBSD +#endif // OS_LINUX #endif // !OS_WIN diff --git a/www/chromium/files/patch-content_browser_browser__main__loop.cc b/www/chromium/files/patch-content_browser_browser__main__loop.cc index 02fe6f4fa932..91ce9b1691cd 100644 --- a/www/chromium/files/patch-content_browser_browser__main__loop.cc +++ b/www/chromium/files/patch-content_browser_browser__main__loop.cc @@ -1,73 +1,73 @@ ---- content/browser/browser_main_loop.cc.orig 2018-01-04 21:05:49.000000000 +0100 -+++ content/browser/browser_main_loop.cc 2018-01-21 04:50:16.739260000 +0100 -@@ -198,7 +198,7 @@ +--- content/browser/browser_main_loop.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/browser/browser_main_loop.cc 2018-03-04 10:01:31.265940000 +0100 +@@ -206,7 +206,7 @@ #include "base/fuchsia/default_job.h" #endif // defined(OS_FUCHSIA) -#if defined(OS_POSIX) && !defined(OS_MACOSX) +#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) #include "content/browser/sandbox_host_linux.h" #include "content/browser/zygote_host/zygote_host_impl_linux.h" -@@ -232,6 +232,11 @@ - #include "gpu/vulkan/vulkan_implementation.h" +@@ -244,6 +244,11 @@ + #include "services/ui/common/image_cursors_set.h" #endif +#if defined(OS_BSD) +#include "content/browser/sandbox_host_linux.h" -+#include "content/common/sandbox_linux/sandbox_linux.h" ++#include "content/public/common/common_sandbox_support_linux.h" +#endif + // One of the linux specific headers defines this as a macro. #ifdef DestroyAll #undef DestroyAll -@@ -249,7 +254,7 @@ - } +@@ -253,7 +258,7 @@ + namespace { #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ - !defined(OS_FUCHSIA) + !defined(OS_FUCHSIA) && !defined(OS_BSD) void SetupSandbox(const base::CommandLine& parsed_command_line) { TRACE_EVENT0("startup", "SetupSandbox"); // SandboxHostLinux needs to be initialized even if the sandbox and -@@ -272,7 +277,7 @@ +@@ -276,7 +281,7 @@ generic_zygote->GetSandboxStatus()); } #endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ - // !defined(OS_FUCHSIA) + // !defined(OS_FUCHSIA) && !defined(OS_BSD) #if defined(USE_GLIB) static void GLibLogHandler(const gchar* log_domain, -@@ -574,10 +579,15 @@ +@@ -619,10 +624,15 @@ TRACE_EVENT0("startup", "BrowserMainLoop::EarlyInitialization"); #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && \ - !defined(OS_FUCHSIA) + !defined(OS_FUCHSIA) && !defined(OS_BSD) // No thread should be created before this call, as SetupSandbox() // will end-up using fork(). SetupSandbox(parsed_command_line_); +#elif defined(OS_BSD) + SandboxHostLinux::GetInstance()->Init(); + base::FileHandleMappingVector fds_to_map; + const int sfd = SandboxHostLinux::GetInstance()->GetChildSocket(); + fds_to_map.push_back(std::make_pair(sfd, GetSandboxFD())); #endif #if defined(USE_X11) -@@ -1619,12 +1629,12 @@ +@@ -1691,12 +1701,12 @@ base::WrapUnique( new SwapMetricsDelegateUma())); -#if !defined(OS_FUCHSIA) +#if !defined(OS_FUCHSIA) && !defined(OS_BSD) swap_metrics_driver_ = SwapMetricsDriver::Create(std::move(delegate), kSwapMetricsInterval); if (swap_metrics_driver_) swap_metrics_driver_->Start(); -#endif // !defined(OS_FUCHSIA) +#endif // !defined(OS_FUCHSIA) && !defined(OS_BSD) } bool BrowserMainLoop::InitializeToolkit() { diff --git a/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc b/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc deleted file mode 100644 index 2a555306ce5a..000000000000 --- a/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc +++ /dev/null @@ -1,20 +0,0 @@ ---- content/browser/gpu/gpu_internals_ui.cc.orig 2017-12-15 02:04:16.000000000 +0100 -+++ content/browser/gpu/gpu_internals_ui.cc 2017-12-24 12:40:09.587854000 +0100 -@@ -51,7 +51,7 @@ - #include "ui/gfx/win/physical_size.h" - #endif - --#if defined(OS_LINUX) && defined(USE_X11) -+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11) - #include "ui/base/x/x11_util.h" // nogncheck - #include "ui/gfx/x/x11_atom_cache.h" // nogncheck - #endif -@@ -209,7 +209,7 @@ - gpu_info.gl_ws_version)); - basic_info->Append(NewDescriptionValuePair("Window system binding extensions", - gpu_info.gl_ws_extensions)); --#if defined(OS_LINUX) && defined(USE_X11) -+#if (defined(OS_BSD) || defined(OS_LINUX)) && defined(USE_X11) - basic_info->Append(NewDescriptionValuePair("Window manager", - ui::GuessWindowManagerName())); - { diff --git a/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc b/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc index 9ce91a4a5a81..438b3fe9d50b 100644 --- a/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc +++ b/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc @@ -1,11 +1,29 @@ ---- content/browser/renderer_host/render_message_filter.cc.orig 2017-06-05 19:03:07 UTC -+++ content/browser/renderer_host/render_message_filter.cc -@@ -84,7 +84,7 @@ +--- content/browser/renderer_host/render_message_filter.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/browser/renderer_host/render_message_filter.cc 2018-03-04 01:08:51.920706000 +0100 +@@ -80,7 +80,7 @@ + #include "content/common/mac/font_loader.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" #endif - -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) #include "base/linux_util.h" #include "base/threading/platform_thread.h" #endif +@@ -211,7 +211,7 @@ + #endif // defined(OS_MACOSX) + } + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + void RenderMessageFilter::SetThreadPriorityOnFileThread( + base::PlatformThreadId ns_tid, + base::ThreadPriority priority) { +@@ -234,7 +234,7 @@ + + void RenderMessageFilter::SetThreadPriority(int32_t ns_tid, + base::ThreadPriority priority) { +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + constexpr base::TaskTraits kTraits = { + base::MayBlock(), base::TaskPriority::USER_BLOCKING, + base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}; diff --git a/www/chromium/files/patch-content_child_child__process.cc b/www/chromium/files/patch-content_child_child__process.cc deleted file mode 100644 index b57914e73e30..000000000000 --- a/www/chromium/files/patch-content_child_child__process.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_process.cc.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_process.cc -@@ -129,7 +129,7 @@ void ChildProcess::ReleaseProcess() { - main_thread_->OnProcessFinalRelease(); - } - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void ChildProcess::SetIOThreadPriority( - base::ThreadPriority io_thread_priority) { - main_thread_->SetThreadPriority(io_thread_.GetThreadId(), io_thread_priority); diff --git a/www/chromium/files/patch-content_child_child__process.h b/www/chromium/files/patch-content_child_child__process.h deleted file mode 100644 index e29e5f3dc22d..000000000000 --- a/www/chromium/files/patch-content_child_child__process.h +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_process.h.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_process.h -@@ -79,7 +79,7 @@ class CONTENT_EXPORT ChildProcess { - void AddRefProcess(); - void ReleaseProcess(); - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void SetIOThreadPriority(base::ThreadPriority io_thread_priority); - #endif - diff --git a/www/chromium/files/patch-content_child_child__thread__impl.cc b/www/chromium/files/patch-content_child_child__thread__impl.cc deleted file mode 100644 index 5e9d5cc7ce08..000000000000 --- a/www/chromium/files/patch-content_child_child__thread__impl.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_thread_impl.cc.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_thread_impl.cc -@@ -698,7 +698,7 @@ std::unique_ptr ChildThreadImpl::A - return base::MakeUnique(shared_buf, false); - } - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void ChildThreadImpl::SetThreadPriority(base::PlatformThreadId id, - base::ThreadPriority priority) { - Send(new ChildProcessHostMsg_SetThreadPriority(id, priority)); diff --git a/www/chromium/files/patch-content_child_child__thread__impl.h b/www/chromium/files/patch-content_child_child__thread__impl.h deleted file mode 100644 index f2dd0261751b..000000000000 --- a/www/chromium/files/patch-content_child_child__thread__impl.h +++ /dev/null @@ -1,11 +0,0 @@ ---- content/child/child_thread_impl.h.orig 2017-06-05 19:03:07 UTC -+++ content/child/child_thread_impl.h -@@ -112,7 +112,7 @@ class CONTENT_EXPORT ChildThreadImpl - static std::unique_ptr AllocateSharedMemory( - size_t buf_size); - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - void SetThreadPriority(base::PlatformThreadId id, - base::ThreadPriority priority); - #endif diff --git a/www/chromium/files/patch-content_common_BUILD.gn b/www/chromium/files/patch-content_common_BUILD.gn index 8757f3e25044..b91181ddc25a 100644 --- a/www/chromium/files/patch-content_common_BUILD.gn +++ b/www/chromium/files/patch-content_common_BUILD.gn @@ -1,20 +1,23 @@ ---- content/common/BUILD.gn.orig 2018-01-04 21:05:50.000000000 +0100 -+++ content/common/BUILD.gn 2018-01-21 00:08:52.884724000 +0100 -@@ -564,6 +564,17 @@ - "sandbox_linux/sandbox_bpf_base_policy_linux.h", - ] - } +--- content/common/BUILD.gn.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/common/BUILD.gn 2018-03-04 05:26:02.504662000 +0100 +@@ -503,7 +503,7 @@ + } + + if (!use_seccomp_bpf) { +- if (is_linux && current_cpu != "s390x" && current_cpu != "ppc64") { ++ if (is_linux && current_cpu != "s390x" && current_cpu != "ppc64" && !is_bsd) { + sources -= [ + "sandbox_linux/bpf_base_policy_linux.cc", + "sandbox_linux/bpf_base_policy_linux.h", +@@ -519,6 +519,11 @@ + "sandbox_linux/bpf_renderer_policy_linux.h", + "sandbox_linux/bpf_utility_policy_linux.cc", + "sandbox_linux/bpf_utility_policy_linux.h", ++ ] ++ } + if (is_bsd) { + sources -= [ + "quarantine/quarantine_linux.cc", -+ "sandbox_linux/bpf_cdm_policy_linux.cc", -+ "sandbox_linux/bpf_pdf_compositor_policy_linux.cc", -+ "sandbox_linux/sandbox_init_linux.cc", -+ "sandbox_linux/sandbox_linux.cc", -+ "sandbox_linux/sandbox_seccomp_bpf_linux.cc", -+ "sandbox_linux/sandbox_debug_handling_linux.cc", -+ ] -+ } + ] + } } - - if (is_mac) { diff --git a/www/chromium/files/patch-content_common_child__process__messages.h b/www/chromium/files/patch-content_common_child__process__messages.h deleted file mode 100644 index f23d73a42e7f..000000000000 --- a/www/chromium/files/patch-content_common_child__process__messages.h +++ /dev/null @@ -1,29 +0,0 @@ ---- content/common/child_process_messages.h.orig 2017-06-05 19:03:07 UTC -+++ content/common/child_process_messages.h -@@ -26,7 +26,7 @@ - #include "ui/gfx/ipc/gfx_param_traits.h" - #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - #include "base/threading/platform_thread.h" - #endif - -@@ -75,7 +75,7 @@ IPC_STRUCT_TRAITS_BEGIN(tracked_objects::ProcessDataSn - IPC_STRUCT_TRAITS_MEMBER(process_id) - IPC_STRUCT_TRAITS_END() - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - IPC_ENUM_TRAITS_MAX_VALUE(base::ThreadPriority, - base::ThreadPriority::REALTIME_AUDIO) - #endif -@@ -171,7 +171,7 @@ IPC_SYNC_MESSAGE_CONTROL1_0(ChildProcessHostMsg_PreCac - IPC_MESSAGE_CONTROL0(ChildProcessHostMsg_ReleaseCachedFonts) - #endif // defined(OS_WIN) - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) - // Asks the browser to change the priority of thread. - IPC_MESSAGE_CONTROL2(ChildProcessHostMsg_SetThreadPriority, - base::PlatformThreadId, diff --git a/www/chromium/files/patch-content_gpu_BUILD.gn b/www/chromium/files/patch-content_gpu_BUILD.gn new file mode 100644 index 000000000000..cbb78ee65c9e --- /dev/null +++ b/www/chromium/files/patch-content_gpu_BUILD.gn @@ -0,0 +1,11 @@ +--- content/gpu/BUILD.gn.orig 2018-03-04 17:22:26.995017000 +0100 ++++ content/gpu/BUILD.gn 2018-03-04 17:22:46.556822000 +0100 +@@ -121,7 +121,7 @@ + } + + # Use DRI on desktop Linux builds. +- if (is_desktop_linux && (!is_chromecast || is_cast_desktop_build)) { ++ if (is_desktop_linux && (!is_chromecast || is_cast_desktop_build) && !is_bsd) { + configs += [ "//build/config/linux/dri" ] + } + } diff --git a/www/chromium/files/patch-content_gpu_gpu__main.cc b/www/chromium/files/patch-content_gpu_gpu__main.cc index 2a49d96a3641..ad458367a988 100644 --- a/www/chromium/files/patch-content_gpu_gpu__main.cc +++ b/www/chromium/files/patch-content_gpu_gpu__main.cc @@ -1,38 +1,47 @@ ---- content/gpu/gpu_main.cc.orig 2017-12-15 02:04:17.000000000 +0100 -+++ content/gpu/gpu_main.cc 2017-12-24 13:25:17.551277000 +0100 -@@ -98,7 +98,7 @@ +--- content/gpu/gpu_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/gpu/gpu_main.cc 2018-03-04 01:23:12.209864000 +0100 +@@ -76,7 +76,7 @@ + #include "ui/gfx/x/x11_switches.h" // nogncheck + #endif + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + #include "content/common/font_config_ipc_linux.h" + #include "content/gpu/gpu_sandbox_hook_linux.h" + #include "content/public/common/common_sandbox_support_linux.h" +@@ -102,7 +102,7 @@ namespace { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) - bool StartSandboxLinux(gpu::GpuWatchdogThread*, const gpu::GPUInfo*); - #elif defined(OS_WIN) - bool StartSandboxWindows(const sandbox::SandboxInterfaceInfo*); -@@ -156,7 +156,7 @@ - + bool StartSandboxLinux(gpu::GpuWatchdogThread*, + const gpu::GPUInfo*, + const gpu::GpuPreferences&); +@@ -163,7 +163,7 @@ bool EnsureSandboxInitialized(gpu::GpuWatchdogThread* watchdog_thread, - const gpu::GPUInfo* gpu_info) override { + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) override { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) - return StartSandboxLinux(watchdog_thread, gpu_info); + return StartSandboxLinux(watchdog_thread, gpu_info, gpu_prefs); #elif defined(OS_WIN) return StartSandboxWindows(sandbox_info_); -@@ -323,7 +323,7 @@ +@@ -340,7 +340,7 @@ namespace { -#if defined(OS_LINUX) +#if defined(OS_LINUX) && !defined(OS_BSD) bool StartSandboxLinux(gpu::GpuWatchdogThread* watchdog_thread, - const gpu::GPUInfo* gpu_info) { - TRACE_EVENT0("gpu,startup", "Initialize sandbox"); -@@ -347,7 +347,7 @@ + const gpu::GPUInfo* gpu_info, + const gpu::GpuPreferences& gpu_prefs) { +@@ -378,7 +378,7 @@ return res; } -#endif // defined(OS_LINUX) +#endif // defined(OS_LINUX) && !defined(OS_BSD) #if defined(OS_WIN) bool StartSandboxWindows(const sandbox::SandboxInterfaceInfo* sandbox_info) { diff --git a/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc b/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc new file mode 100644 index 000000000000..e0c500be24ea --- /dev/null +++ b/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc @@ -0,0 +1,11 @@ +--- content/gpu/gpu_sandbox_hook_linux.cc.orig 2018-03-03 20:54:40.697792000 +0100 ++++ content/gpu/gpu_sandbox_hook_linux.cc 2018-03-03 20:54:56.999743000 +0100 +@@ -95,7 +95,7 @@ + #endif + } + +-constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE; ++constexpr int dlopen_flag = RTLD_NOW | RTLD_GLOBAL; + + void AddV4L2GpuWhitelist( + std::vector* permissions, diff --git a/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc b/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc index 3eeb29f0f256..e38610fc080b 100644 --- a/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc +++ b/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc @@ -1,11 +1,11 @@ ---- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2018-01-20 16:16:54.514813000 +0100 -+++ content/ppapi_plugin/ppapi_plugin_main.cc 2018-01-20 16:17:30.448565000 +0100 -@@ -122,6 +122,8 @@ - - #if defined(OS_LINUX) - LinuxSandbox::InitializeSandbox(); +--- content/ppapi_plugin/ppapi_plugin_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/ppapi_plugin/ppapi_plugin_main.cc 2018-03-04 01:29:08.347119000 +0100 +@@ -125,6 +125,8 @@ + service_manager::SandboxTypeFromCommandLine(command_line), + service_manager::SandboxLinux::PreSandboxHook(), + service_manager::SandboxLinux::Options()); +#elif defined(OS_BSD) + NOTIMPLEMENTED(); #endif ChildProcess ppapi_process; diff --git a/www/chromium/files/patch-content_public_test_browser__test__base.cc b/www/chromium/files/patch-content_public_test_browser__test__base.cc index 8f203ac3f714..6c747929dc9c 100644 --- a/www/chromium/files/patch-content_public_test_browser__test__base.cc +++ b/www/chromium/files/patch-content_public_test_browser__test__base.cc @@ -1,13 +1,13 @@ ---- content/public/test/browser_test_base.cc.orig 2017-04-19 19:06:34 UTC -+++ content/public/test/browser_test_base.cc -@@ -6,6 +6,10 @@ - - #include +--- content/public/test/browser_test_base.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/public/test/browser_test_base.cc 2018-03-04 01:33:57.278528000 +0100 +@@ -49,6 +49,10 @@ + #include "ui/gl/gl_implementation.h" + #include "ui/gl/gl_switches.h" +#if defined(OS_FREEBSD) +#include +#endif + - #include "base/bind.h" - #include "base/command_line.h" - #include "base/debug/stack_trace.h" + #if defined(OS_POSIX) + #include "base/process/process_handle.h" + #endif diff --git a/www/chromium/files/patch-content_renderer_render__thread__impl.cc b/www/chromium/files/patch-content_renderer_render__thread__impl.cc index 7a95a80fbd78..bf2a7a9516b5 100644 --- a/www/chromium/files/patch-content_renderer_render__thread__impl.cc +++ b/www/chromium/files/patch-content_renderer_render__thread__impl.cc @@ -1,79 +1,79 @@ ---- content/renderer/render_thread_impl.cc.orig 2017-12-15 02:04:18.000000000 +0100 -+++ content/renderer/render_thread_impl.cc 2017-12-24 14:46:13.319958000 +0100 -@@ -219,12 +219,22 @@ +--- content/renderer/render_thread_impl.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/renderer/render_thread_impl.cc 2018-03-04 01:40:50.991485000 +0100 +@@ -224,12 +224,22 @@ #include "content/common/external_ipc_dumper.h" #endif +#if !defined(OS_BSD) #if defined(OS_MACOSX) #include #else #include #endif +#endif +#if defined(OS_BSD) +#include +#include +#include +#include +#include +#endif + using base::ThreadRestrictions; using blink::WebDocument; using blink::WebFrame; -@@ -929,7 +939,7 @@ +@@ -973,7 +983,7 @@ GetConnector()->BindInterface(mojom::kBrowserServiceName, mojo::MakeRequest(&storage_partition_service_)); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - ChildProcess::current()->SetIOThreadPriority(base::ThreadPriority::DISPLAY); - ChildThreadImpl::current()->SetThreadPriority( - categorized_worker_pool_->background_worker_thread_id(), -@@ -1147,7 +1157,7 @@ + render_message_filter()->SetThreadPriority( + ChildProcess::current()->io_thread_id(), base::ThreadPriority::DISPLAY); + render_message_filter()->SetThreadPriority( +@@ -1184,7 +1194,7 @@ FROM_HERE, base::BindOnce(base::IgnoreResult(&ThreadRestrictions::SetIOAllowed), false)); -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) - ChildThreadImpl::current()->SetThreadPriority(compositor_thread_->ThreadId(), - base::ThreadPriority::DISPLAY); + render_message_filter()->SetThreadPriority(compositor_thread_->ThreadId(), + base::ThreadPriority::DISPLAY); #endif -@@ -1458,7 +1468,7 @@ - const bool enable_video_accelerator = +@@ -1499,7 +1509,7 @@ !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); const bool enable_gpu_memory_buffer_video_frames = + !is_gpu_compositing_disabled_ && -#if defined(OS_MACOSX) || defined(OS_LINUX) +#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) + !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames); + #elif defined(OS_WIN) !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && - !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && - !gpu_channel_host->gpu_info().software_rendering; -@@ -1778,7 +1788,26 @@ +@@ -1847,7 +1857,26 @@ blink_stats.blink_gc_total_allocated_bytes / 1024; std::unique_ptr metric( base::ProcessMetrics::CreateCurrentProcessMetrics()); +#if defined(OS_BSD) + struct kinfo_proc *info; + size_t length, malloc_usage = 0; + int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), + sizeof(struct kinfo_proc), 0 }; + + if (sysctl(mib, arraysize(mib), NULL, &length, NULL, 0) < 0) + return -1; + + info = (struct kinfo_proc *)malloc(length); + + mib[5] = (length / sizeof(struct kinfo_proc)); + + if (!sysctl(mib, arraysize(mib), info, &length, NULL, 0)) + malloc_usage = (((unsigned long long)(info->ki_tsize + info->ki_dsize + info->ki_ssize)*getpagesize())); + + free(info); +#else size_t malloc_usage = metric->GetMallocUsage(); +#endif memory_metrics->malloc_mb = malloc_usage / 1024 / 1024; discardable_memory::ClientDiscardableSharedMemoryManager::Statistics diff --git a/www/chromium/files/patch-content_renderer_renderer_main.cc b/www/chromium/files/patch-content_renderer_renderer_main.cc index 2c92bed474f6..099f262b76a9 100644 --- a/www/chromium/files/patch-content_renderer_renderer_main.cc +++ b/www/chromium/files/patch-content_renderer_renderer_main.cc @@ -1,46 +1,26 @@ ---- content/renderer/renderer_main.cc.orig 2017-12-15 02:04:18.000000000 +0100 -+++ content/renderer/renderer_main.cc 2017-12-31 04:55:48.524657000 +0100 -@@ -34,12 +34,19 @@ - #include "ppapi/features/features.h" - #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h" - #include "third_party/skia/include/core/SkGraphics.h" -+#include "third_party/skia/include/ports/SkFontConfigInterface.h" - #include "ui/base/ui_base_switches.h" - - #if defined(OS_ANDROID) - #include "base/android/library_loader/library_loader_hooks.h" - #endif // OS_ANDROID - -+#if defined(OS_BSD) -+#include "content/browser/sandbox_host_linux.h" -+#include "content/common/font_config_ipc_linux.h" -+#include "content/common/sandbox_linux/sandbox_linux.h" -+#endif -+ - #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) - #include "content/common/font_config_ipc_linux.h" - #include "content/common/sandbox_linux/sandbox_linux.h" -@@ -191,9 +198,13 @@ +--- content/renderer/renderer_main.cc.orig 2018-02-24 16:25:14.000000000 +0100 ++++ content/renderer/renderer_main.cc 2018-03-04 02:01:25.568495000 +0100 +@@ -193,9 +193,13 @@ // is OK. InitializeWebRtcModule(); #endif +#if defined(OS_BSD) + SkFontConfigInterface::SetGlobal( + new FontConfigIPC(GetSandboxFD()))->unref(); +#endif { -#if defined(OS_WIN) || defined(OS_MACOSX) +#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD) // TODO(markus): Check if it is OK to unconditionally move this // instruction down. auto render_process = RenderProcessImpl::Create(); -@@ -203,7 +214,7 @@ +@@ -205,7 +209,7 @@ bool run_loop = true; if (!no_sandbox) run_loop = platform.EnableSandbox(); -#if defined(OS_POSIX) && !defined(OS_MACOSX) +#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_BSD) auto render_process = RenderProcessImpl::Create(); RenderThreadImpl::Create(std::move(main_message_loop), std::move(renderer_scheduler)); diff --git a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h b/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h deleted file mode 100644 index f1731ef81610..000000000000 --- a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h +++ /dev/null @@ -1,11 +0,0 @@ ---- device/media_transfer_protocol/media_transfer_protocol_daemon_client.h.orig 2017-04-19 19:06:34 UTC -+++ device/media_transfer_protocol/media_transfer_protocol_daemon_client.h -@@ -19,7 +19,7 @@ - #include "base/macros.h" - #include "build/build_config.h" - --#if !defined(OS_LINUX) -+#if !defined(OS_LINUX) && !defined(OS_BSD) - #error "Only used on Linux and ChromeOS" - #endif - diff --git a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h b/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h deleted file mode 100644 index c12a44a23603..000000000000 --- a/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h +++ /dev/null @@ -1,11 +0,0 @@ ---- device/media_transfer_protocol/media_transfer_protocol_manager.h.orig 2017-04-19 19:06:34 UTC -+++ device/media_transfer_protocol/media_transfer_protocol_manager.h -@@ -15,7 +15,7 @@ - #include "base/memory/ref_counted.h" - #include "build/build_config.h" - --#if !defined(OS_LINUX) -+#if !defined(OS_LINUX) && !defined(OS_FREEBSD) - #error "Only used on Linux and ChromeOS" - #endif - diff --git a/www/chromium/files/patch-extensions_common_feature_switch.cc b/www/chromium/files/patch-extensions_common_feature_switch.cc index 11c05c384b31..d7128180d23e 100644 --- a/www/chromium/files/patch-extensions_common_feature_switch.cc +++ b/www/chromium/files/patch-extensions_common_feature_switch.cc @@ -1,14 +1,14 @@ ---- extensions/common/feature_switch.cc.orig 2018-01-21 13:37:32.991326000 +0100 -+++ extensions/common/feature_switch.cc 2018-01-21 13:37:55.308701000 +0100 -@@ -52,11 +52,7 @@ +--- extensions/common/feature_switch.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ extensions/common/feature_switch.cc 2018-03-04 02:30:07.857694000 +0100 +@@ -50,11 +50,7 @@ FeatureSwitch::DEFAULT_ENABLED), load_media_router_component_extension( kLoadMediaRouterComponentExtensionFlag, -#if defined(GOOGLE_CHROME_BUILD) FeatureSwitch::DEFAULT_ENABLED), -#else - FeatureSwitch::DEFAULT_DISABLED), -#endif // defined(GOOGLE_CHROME_BUILD) - native_crx_bindings(switches::kNativeCrxBindings, - kNativeCrxBindingsFieldTrial, - FeatureSwitch::DEFAULT_DISABLED), + yield_between_content_script_runs( + switches::kYieldBetweenContentScriptRuns, + kYieldBetweenContentScriptRunsFieldTrial, diff --git a/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc b/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc index 283f058e6ee4..4424136b7c74 100644 --- a/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc +++ b/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc @@ -1,29 +1,29 @@ ---- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2017-08-02 17:06:53.520243000 +0200 -+++ gpu/ipc/common/gpu_memory_buffer_support.cc 2017-08-02 17:07:52.198146000 +0200 +--- gpu/ipc/common/gpu_memory_buffer_support.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/common/gpu_memory_buffer_support.cc 2018-03-04 02:34:29.021605000 +0100 @@ -7,7 +7,7 @@ #include "base/logging.h" #include "build/build_config.h" -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) #include "ui/gfx/client_native_pixmap_factory.h" #endif -@@ -17,7 +17,7 @@ - #if defined(OS_MACOSX) +@@ -22,7 +22,7 @@ return gfx::IO_SURFACE_BUFFER; - #endif --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) + #elif defined(OS_ANDROID) + return gfx::ANDROID_HARDWARE_BUFFER; +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) return gfx::NATIVE_PIXMAP; - #endif - return gfx::EMPTY_BUFFER; -@@ -47,7 +47,7 @@ + #elif defined(OS_WIN) + return gfx::DXGI_SHARED_HANDLE; +@@ -81,7 +81,7 @@ + } + NOTREACHED(); return false; - #endif - --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) if (!gfx::ClientNativePixmapFactory::GetInstance()) { // unittests don't have to set ClientNativePixmapFactory. return false; diff --git a/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc b/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc index 90c698ef50f2..a28e139469c3 100644 --- a/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc +++ b/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc @@ -1,50 +1,59 @@ ---- gpu/ipc/service/gpu_init.cc.orig 2017-12-15 02:04:19.000000000 +0100 -+++ gpu/ipc/service/gpu_init.cc 2017-12-31 04:40:00.427872000 +0100 +--- gpu/ipc/service/gpu_init.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/service/gpu_init.cc 2018-03-04 02:41:07.510363000 +0100 @@ -37,7 +37,7 @@ namespace gpu { namespace { -#if !defined(OS_MACOSX) +#if !defined(OS_MACOSX) && !defined(OS_BSD) void CollectGraphicsInfo(GPUInfo* gpu_info) { DCHECK(gpu_info); #if defined(OS_FUCHSIA) -@@ -80,9 +80,9 @@ +@@ -77,9 +77,9 @@ } #endif // defined(OS_FUCHSIA) } -#endif // defined(OS_MACOSX) +#endif // defined(OS_MACOSX) && defined(OS_BSD) -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) bool CanAccessNvidiaDeviceFile() { bool res = true; - base::ThreadRestrictions::AssertIOAllowed(); -@@ -116,7 +116,7 @@ - // passing from browser process. - GetGpuInfoFromCommandLine(*command_line, &gpu_info_); - #endif // OS_ANDROID + base::AssertBlockingAllowed(); +@@ -120,7 +120,7 @@ + // crash during feature collection. + gpu::SetKeysForCrashLogging(gpu_info_); + -#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_BSD) if (gpu_info_.gpu.vendor_id == 0x10de && // NVIDIA gpu_info_.driver_vendor == "NVIDIA" && !CanAccessNvidiaDeviceFile()) return false; -@@ -213,7 +213,7 @@ +@@ -183,7 +183,7 @@ + sandbox_helper_->PreSandboxStartup(); + + bool attempted_startsandbox = false; +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) && !defined(OS_BSD) + // On Chrome OS ARM Mali, GPU driver userspace creates threads when + // initializing a GL context, so start the sandbox early. + // TODO(zmo): Need to collect OS version before this. +@@ -222,7 +222,7 @@ // multiple seconds to finish, which in turn cause the GPU process to crash. // By skipping the following code on Mac, we don't really lose anything, // because the basic GPU information is passed down from the host process. -#if !defined(OS_MACOSX) && !defined(OS_ANDROID) +#if !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD) CollectGraphicsInfo(&gpu_info_); if (gpu_info_.context_info_state == gpu::kCollectInfoFatalFailure) return false; -@@ -288,7 +288,7 @@ +@@ -308,7 +308,7 @@ return; } -#if !defined(OS_ANDROID) +#if !defined(OS_ANDROID) && !defined(OS_BSD) gpu::CollectContextGraphicsInfo(&gpu_info_); gpu_feature_info_ = gpu::ComputeGpuFeatureInfo(gpu_info_, command_line); #endif diff --git a/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc b/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc index d8f2392b92a0..c722afc91d64 100644 --- a/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc +++ b/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc @@ -1,20 +1,20 @@ ---- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2017-08-02 17:22:32.367729000 +0200 -+++ gpu/ipc/service/gpu_memory_buffer_factory.cc 2017-08-02 17:22:51.485749000 +0200 +--- gpu/ipc/service/gpu_memory_buffer_factory.cc.orig 2018-02-24 16:25:15.000000000 +0100 ++++ gpu/ipc/service/gpu_memory_buffer_factory.cc 2018-03-04 02:47:09.144034000 +0100 @@ -12,7 +12,7 @@ #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h" #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_BSD) #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h" #endif -@@ -24,7 +24,7 @@ - #if defined(OS_MACOSX) +@@ -33,7 +33,7 @@ return base::WrapUnique(new GpuMemoryBufferFactoryIOSurface); - #endif --#if defined(OS_LINUX) -+#if defined(OS_LINUX) || defined(OS_BSD) + #elif defined(OS_ANDROID) + return base::WrapUnique(new GpuMemoryBufferFactoryAndroidHardwareBuffer); +-#elif defined(OS_LINUX) ++#elif defined(OS_LINUX) || defined(OS_BSD) return base::WrapUnique(new GpuMemoryBufferFactoryNativePixmap); - #endif - return nullptr; + #elif defined(OS_WIN) + return base::WrapUnique(new GpuMemoryBufferFactoryDXGI); diff --git a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc b/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc deleted file mode 100644 index 887fb3cd0878..000000000000 --- a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- headless/lib/headless_content_main_delegate.cc.orig 2017-07-25 21:04:56.000000000 +0200 -+++ headless/lib/headless_content_main_delegate.cc 2017-08-02 13:54:14.222324000 +0200 -@@ -233,7 +233,7 @@ - } - #endif // !defined(CHROME_MULTIPLE_DLL_CHILD) - --#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) -+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void HeadlessContentMainDelegate::ZygoteForked() { - const base::CommandLine& command_line( - *base::CommandLine::ForCurrentProcess()); diff --git a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h b/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h deleted file mode 100644 index 049e770c3470..000000000000 --- a/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h +++ /dev/null @@ -1,11 +0,0 @@ ---- headless/lib/headless_content_main_delegate.h.orig 2017-06-05 19:03:08 UTC -+++ headless/lib/headless_content_main_delegate.h -@@ -44,7 +44,7 @@ class HEADLESS_EXPORT HeadlessContentMainDelegate - - HeadlessBrowserImpl* browser() const { return browser_.get(); } - --#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) -+#if !defined(OS_MACOSX) && defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_BSD) - void ZygoteForked() override; - #endif - diff --git a/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc b/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc index dc01f0f0ffd6..aa0e5720506b 100644 --- a/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc +++ b/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc @@ -1,243 +1,243 @@ --- net/base/network_interfaces_freebsd.cc.orig 2017-07-05 18:08:44.779023000 +0200 +++ net/base/network_interfaces_freebsd.cc 2017-07-05 22:03:18.679624000 +0200 @@ -0,0 +1,240 @@ +// Copyright (c) 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "net/base/network_interfaces_freebsd.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "base/files/file_path.h" +#include "base/logging.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_tokenizer.h" +#include "base/strings/string_util.h" +#include "base/threading/thread_restrictions.h" +#include "net/base/escape.h" +#include "net/base/ip_endpoint.h" +#include "net/base/net_errors.h" +#include "net/base/network_interfaces_posix.h" +#include "url/gurl.h" + +namespace net { + +namespace { + +// FreeBSD implementation of IPAttributesGetterFreeBSD which calls ioctl on socket to +// retrieve IP attributes. +class IPAttributesGetterFreeBSDImpl : public internal::IPAttributesGetterFreeBSD { + public: + IPAttributesGetterFreeBSDImpl(); + ~IPAttributesGetterFreeBSDImpl() override; + bool IsInitialized() const override; + bool GetIPAttributes(const char* ifname, + const sockaddr* sock_addr, + int* native_attributes) override; + + private: + int ioctl_socket_; +}; + +IPAttributesGetterFreeBSDImpl::IPAttributesGetterFreeBSDImpl() + : ioctl_socket_(socket(AF_INET6, SOCK_DGRAM, 0)) { + DCHECK_GE(ioctl_socket_, 0); +} + +bool IPAttributesGetterFreeBSDImpl::IsInitialized() const { + return ioctl_socket_ >= 0; +} + +IPAttributesGetterFreeBSDImpl::~IPAttributesGetterFreeBSDImpl() { + if (ioctl_socket_ >= 0) { + close(ioctl_socket_); + } +} + +bool IPAttributesGetterFreeBSDImpl::GetIPAttributes(const char* ifname, + const sockaddr* sock_addr, + int* native_attributes) { + struct in6_ifreq ifr = {}; + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); + memcpy(&ifr.ifr_ifru.ifru_addr, sock_addr, sock_addr->sa_len); + int rv = ioctl(ioctl_socket_, SIOCGIFAFLAG_IN6, &ifr); + if (rv >= 0) { + *native_attributes = ifr.ifr_ifru.ifru_flags; + } + return (rv >= 0); +} + +// When returning true, the platform native IPv6 address attributes were +// successfully converted to net IP address attributes. Otherwise, returning +// false and the caller should drop the IP address which can't be used by the +// application layer. +bool TryConvertNativeToNetIPAttributes(int native_attributes, + int* net_attributes) { + // For FreeBSD, we disallow addresses with attributes IN6_IFF_ANYCASE, + // IN6_IFF_DUPLICATED, IN6_IFF_TENTATIVE, and IN6_IFF_DETACHED as these are + // still progressing through duplicated address detection (DAD) or are not + // suitable to be used in an one-to-one communication and shouldn't be used + // by the application layer. + if (native_attributes & (IN6_IFF_ANYCAST | IN6_IFF_DUPLICATED | + IN6_IFF_TENTATIVE | IN6_IFF_DETACHED)) { + return false; + } + + if (native_attributes & IN6_IFF_DEPRECATED) { + *net_attributes |= IP_ADDRESS_ATTRIBUTE_DEPRECATED; + } + + return true; +} + +NetworkChangeNotifier::ConnectionType GetNetworkInterfaceType( + int addr_family, + const std::string& interface_name) { + NetworkChangeNotifier::ConnectionType type = + NetworkChangeNotifier::CONNECTION_UNKNOWN; + + struct ifmediareq ifmr = {}; + strncpy(ifmr.ifm_name, interface_name.c_str(), sizeof(ifmr.ifm_name) - 1); + + int s = socket(addr_family, SOCK_DGRAM, 0); + if (s == -1) { + return type; + } + + if (ioctl(s, SIOCGIFMEDIA, &ifmr) != -1) { + if (ifmr.ifm_current & IFM_IEEE80211) { + type = NetworkChangeNotifier::CONNECTION_WIFI; + } else if (ifmr.ifm_current & IFM_ETHER) { + type = NetworkChangeNotifier::CONNECTION_ETHERNET; + } + } + close(s); + return type; +} + +} // namespace + +namespace internal { + +bool GetNetworkListImpl(NetworkInterfaceList* networks, + int policy, + const ifaddrs* interfaces, + IPAttributesGetterFreeBSD* ip_attributes_getter) { + // Enumerate the addresses assigned to network interfaces which are up. + for (const ifaddrs* interface = interfaces; interface != NULL; + interface = interface->ifa_next) { + // Skip loopback interfaces, and ones which are down. + if (!(IFF_RUNNING & interface->ifa_flags)) + continue; + if (IFF_LOOPBACK & interface->ifa_flags) + continue; + // Skip interfaces with no address configured. + struct sockaddr* addr = interface->ifa_addr; + if (!addr) + continue; + + // Skip unspecified addresses (i.e. made of zeroes) and loopback addresses + // configured on non-loopback interfaces. + if (IsLoopbackOrUnspecifiedAddress(addr)) + continue; + + const std::string& name = interface->ifa_name; + // Filter out VMware interfaces, typically named vmnet1 and vmnet8. + if (ShouldIgnoreInterface(name, policy)) { + continue; + } + + NetworkChangeNotifier::ConnectionType connection_type = + NetworkChangeNotifier::CONNECTION_UNKNOWN; + + int ip_attributes = IP_ADDRESS_ATTRIBUTE_NONE; + + // Retrieve native ip attributes and convert to net version if a getter is + // given. + if (ip_attributes_getter && ip_attributes_getter->IsInitialized()) { + int native_attributes = 0; + if (addr->sa_family == AF_INET6 && + ip_attributes_getter->GetIPAttributes( + interface->ifa_name, interface->ifa_addr, &native_attributes)) { + if (!TryConvertNativeToNetIPAttributes(native_attributes, + &ip_attributes)) { + continue; + } + } + } + + connection_type = GetNetworkInterfaceType(addr->sa_family, name); + + IPEndPoint address; + + int addr_size = 0; + if (addr->sa_family == AF_INET6) { + addr_size = sizeof(sockaddr_in6); + } else if (addr->sa_family == AF_INET) { + addr_size = sizeof(sockaddr_in); + } + + if (address.FromSockAddr(addr, addr_size)) { + uint8_t prefix_length = 0; + if (interface->ifa_netmask) { + // If not otherwise set, assume the same sa_family as ifa_addr. + if (interface->ifa_netmask->sa_family == 0) { + interface->ifa_netmask->sa_family = addr->sa_family; + } + IPEndPoint netmask; + if (netmask.FromSockAddr(interface->ifa_netmask, addr_size)) { + prefix_length = MaskPrefixLength(netmask.address()); + } + } + networks->push_back(NetworkInterface( + name, name, if_nametoindex(name.c_str()), connection_type, + address.address(), prefix_length, ip_attributes)); + } + } + + return true; +} + +} // namespace internal + +bool GetNetworkList(NetworkInterfaceList* networks, int policy) { + if (networks == NULL) + return false; + + // getifaddrs() may require IO operations. -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + ifaddrs* interfaces; + if (getifaddrs(&interfaces) < 0) { + PLOG(ERROR) << "getifaddrs"; + return false; + } + + std::unique_ptr ip_attributes_getter; + + ip_attributes_getter.reset(new IPAttributesGetterFreeBSDImpl()); + + bool result = internal::GetNetworkListImpl(networks, policy, interfaces, + ip_attributes_getter.get()); + freeifaddrs(interfaces); + return result; +} + +std::string GetWifiSSID() { + NOTIMPLEMENTED(); + return ""; +} + +} // namespace net diff --git a/www/chromium/files/patch-net_socket_udp__socket__posix.cc b/www/chromium/files/patch-net_socket_udp__socket__posix.cc index 61a629e3f333..6516e22aaf92 100644 --- a/www/chromium/files/patch-net_socket_udp__socket__posix.cc +++ b/www/chromium/files/patch-net_socket_udp__socket__posix.cc @@ -1,59 +1,65 @@ ---- net/socket/udp_socket_posix.cc.orig 2018-01-04 21:05:56.000000000 +0100 -+++ net/socket/udp_socket_posix.cc 2018-01-21 13:53:16.974899000 +0100 -@@ -64,7 +64,7 @@ +--- net/socket/udp_socket_posix.cc.orig 2018-02-24 16:25:17.000000000 +0100 ++++ net/socket/udp_socket_posix.cc 2018-03-04 03:08:15.161087000 +0100 +@@ -69,7 +69,7 @@ const base::TimeDelta kActivityMonitorMsThreshold = base::TimeDelta::FromMilliseconds(100); --#if defined(OS_MACOSX) -+#if defined(OS_MACOSX) || defined(OS_BSD) +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) - // Returns IPv4 address in network order. - int GetIPv4AddressFromIndex(int socket, uint32_t index, uint32_t* address) { -@@ -617,7 +617,7 @@ + // When enabling multicast using setsockopt(IP_MULTICAST_IF) MacOS and Fuchsia + // require passing IPv4 address instead of interface index. This function +@@ -647,13 +647,16 @@ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); int value = broadcast ? 1 : 0; int rv; -#if defined(OS_MACOSX) +#if defined(OS_MACOSX) || defined(OS_BSD) // SO_REUSEPORT on OSX permits multiple processes to each receive // UDP multicast or broadcast datagrams destined for the bound // port. -@@ -830,7 +830,7 @@ + // This is only being set on OSX because its behavior is platform dependent + // and we are playing it safe by only setting it on platforms where things + // break. ++ rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)); ++ if (rv != 0) ++ return MapSystemError(errno); + rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)); + if (rv != 0) + return MapSystemError(errno); +@@ -860,19 +863,24 @@ if (multicast_interface_ != 0) { switch (addr_family_) { case AF_INET: { --#if !defined(OS_MACOSX) -+#if !defined(OS_MACOSX) && !defined(OS_BSD) +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) + ip_mreq mreq; + int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, + &mreq.imr_interface.s_addr); + if (error != OK) + return error; +-#else // defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#else // defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) ip_mreqn mreq; mreq.imr_ifindex = multicast_interface_; mreq.imr_address.s_addr = htonl(INADDR_ANY); -@@ -841,8 +841,20 @@ - if (error != OK) - return error; - #endif -+#if defined(OS_BSD) -+ int value = 1; -+ if (setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)) != 0) -+ return MapSystemError(errno); -+ if (setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) != 0) -+ return MapSystemError(errno); -+#endif + #endif // !defined(OS_MACOSX) && !defined(OS_FUCHSIA) int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF, +#if defined(OS_BSD) + reinterpret_cast(&mreq.imr_interface.s_addr), + sizeof(mreq.imr_interface.s_addr)); +#else reinterpret_cast(&mreq), sizeof(mreq)); +#endif if (rv) return MapSystemError(errno); break; -@@ -905,7 +917,7 @@ +@@ -934,7 +942,7 @@ if (addr_family_ != AF_INET) return ERR_ADDRESS_INVALID; --#if !defined(OS_MACOSX) -+#if !defined(OS_MACOSX) && !defined(OS_BSD) - ip_mreqn mreq; - mreq.imr_ifindex = multicast_interface_; - mreq.imr_address.s_addr = htonl(INADDR_ANY); +-#if defined(OS_MACOSX) || defined(OS_FUCHSIA) ++#if defined(OS_MACOSX) || defined(OS_FUCHSIA) || defined(OS_BSD) + ip_mreq mreq; + int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, + &mreq.imr_interface.s_addr); diff --git a/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc b/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc deleted file mode 100644 index c9ca3fc20e4e..000000000000 --- a/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- ppapi/shared_impl/private/net_address_private_impl.cc.orig 2017-07-25 21:04:59.000000000 +0200 -+++ ppapi/shared_impl/private/net_address_private_impl.cc 2017-08-02 15:39:26.715080000 +0200 -@@ -29,7 +29,7 @@ - #include - #endif - --#if defined(OS_MACOSX) -+#if defined(OS_MACOSX) || defined(OS_BSD) - // This is a bit evil, but it's standard operating procedure for |s6_addr|.... - #define s6_addr16 __u6_addr.__u6_addr16 - #endif diff --git a/www/chromium/files/patch-device_hid_BUILD.gn b/www/chromium/files/patch-services_device_hid_BUILD.gn similarity index 70% rename from www/chromium/files/patch-device_hid_BUILD.gn rename to www/chromium/files/patch-services_device_hid_BUILD.gn index 1294a34d2937..4e866f40a947 100644 --- a/www/chromium/files/patch-device_hid_BUILD.gn +++ b/www/chromium/files/patch-services_device_hid_BUILD.gn @@ -1,22 +1,22 @@ ---- device/hid/BUILD.gn.orig 2018-01-26 21:56:57.916504000 +0100 -+++ device/hid/BUILD.gn 2018-01-26 21:57:24.627778000 +0100 -@@ -66,6 +66,19 @@ +--- services/device/hid/BUILD.gn.orig 2018-03-04 02:07:03.748216000 +0100 ++++ services/device/hid/BUILD.gn 2018-03-04 02:10:30.278997000 +0100 +@@ -52,6 +52,19 @@ deps += [ "//device/udev_linux" ] } + if (is_bsd) { + sources -= [ + "hid_connection_linux.cc", + "hid_connection_linux.h", + ] + sources += [ + "hid_connection_freebsd.cc", + "hid_connection_freebsd.h", + "hid_service_freebsd.cc", + "hid_service_freebsd.h", + ] + } + if (is_chromeos) { deps += [ "//chromeos" ] } diff --git a/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc similarity index 97% rename from www/chromium/files/patch-device_hid_hid__connection__freebsd.cc rename to www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc index 79ec5e4acb2f..0c23b3cd348e 100644 --- a/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc +++ b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc @@ -1,283 +1,283 @@ ---- device/hid/hid_connection_freebsd.cc.orig 2018-01-26 21:53:10.787158000 +0100 -+++ device/hid/hid_connection_freebsd.cc 2018-01-26 21:53:10.788129000 +0100 +--- services/device/hid/hid_connection_freebsd.cc.orig 2018-03-04 05:38:54.417710000 +0100 ++++ services/device/hid/hid_connection_freebsd.cc 2018-03-04 08:44:44.849710000 +0100 @@ -0,0 +1,280 @@ +// Copyright (c) 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + -+#include "device/hid/hid_connection_freebsd.h" ++#include "services/device/hid/hid_connection_freebsd.h" + +#include +#include + +#include "base/bind.h" +#include "base/files/file_descriptor_watcher_posix.h" +#include "base/location.h" +#include "base/numerics/safe_math.h" +#include "base/posix/eintr_wrapper.h" +#include "base/single_thread_task_runner.h" +#include "base/strings/stringprintf.h" +#include "base/task_scheduler/post_task.h" +#include "base/threading/thread_restrictions.h" +#include "base/threading/thread_task_runner_handle.h" +#include "components/device_event_log/device_event_log.h" -+#include "device/hid/hid_service.h" ++#include "services/device/hid/hid_service.h" + +namespace device { + +class HidConnectionFreeBSD::BlockingTaskHelper { + public: + BlockingTaskHelper(base::ScopedFD fd, + scoped_refptr device_info, + base::WeakPtr connection) + : fd_(std::move(fd)), + connection_(connection), + origin_task_runner_(base::ThreadTaskRunnerHandle::Get()) { + DETACH_FROM_SEQUENCE(sequence_checker_); + // Report buffers must always have room for the report ID. + report_buffer_size_ = device_info->max_input_report_size() + 1; + has_report_id_ = device_info->has_report_id(); + } + + ~BlockingTaskHelper() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } + + // Starts the FileDescriptorWatcher that reads input events from the device. + // Must be called on a thread that has a base::MessageLoopForIO. + void Start() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + file_watcher_ = base::FileDescriptorWatcher::WatchReadable( + fd_.get(), base::Bind(&BlockingTaskHelper::OnFileCanReadWithoutBlocking, + base::Unretained(this))); + } + + void Write(scoped_refptr buffer, + size_t size, + WriteCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + char *data = buffer->data(); + // if report id is 0, it shouldn't be included + if (data[0] == 0) { + data++; + size--; + } + + ssize_t result = HANDLE_EINTR(write(fd_.get(), data, size)); + if (result < 0) { + HID_PLOG(EVENT) << "Write failed"; + origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), false)); + } else { + if (static_cast(result) != size) + HID_LOG(EVENT) << "Incomplete HID write: " << result << " != " << size; + origin_task_runner_->PostTask(FROM_HERE, base::BindOnce(std::move(callback), true)); + } + } + + void GetFeatureReport(uint8_t report_id, + scoped_refptr buffer, + ReadCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + struct usb_gen_descriptor ugd; + ugd.ugd_report_type = UHID_FEATURE_REPORT; + ugd.ugd_data = buffer->data(); + ugd.ugd_maxlen = buffer->size(); + int result = HANDLE_EINTR( + ioctl(fd_.get(), USB_GET_REPORT, &ugd)); + if (result < 0) { + HID_PLOG(EVENT) << "Failed to get feature report"; + origin_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), false, nullptr, 0)); + } else if (result == 0) { + HID_LOG(EVENT) << "Get feature result too short."; + origin_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), false, nullptr, 0)); + } else { + origin_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), true, buffer, result)); + } + } + + void SendFeatureReport(scoped_refptr buffer, + size_t size, + WriteCallback callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + struct usb_gen_descriptor ugd; + ugd.ugd_report_type = UHID_FEATURE_REPORT; + ugd.ugd_data = buffer->data(); + ugd.ugd_maxlen = size; + // FreeBSD does not require report id if it's not used + if (buffer->data()[0] == 0) { + ugd.ugd_data = buffer->data() + 1; + ugd.ugd_maxlen = size - 1; + } else { + ugd.ugd_data = buffer->data(); + ugd.ugd_maxlen = size; + } + int result = HANDLE_EINTR( + ioctl(fd_.get(), USB_SET_REPORT, &ugd)); + if (result < 0) { + HID_PLOG(EVENT) << "Failed to send feature report"; + origin_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), false)); + } else { + origin_task_runner_->PostTask(FROM_HERE, + base::BindOnce(std::move(callback), true)); + } + } + + private: + void OnFileCanReadWithoutBlocking() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + scoped_refptr buffer(new net::IOBuffer(report_buffer_size_)); + char* data = buffer->data(); + size_t length = report_buffer_size_; + if (!has_report_id_) { + // FreeBSD will not prefix the buffer with a report ID if report IDs are not + // used by the device. Prefix the buffer with 0. + *data++ = 0; + length--; + } + + ssize_t bytes_read = HANDLE_EINTR(read(fd_.get(), data, length)); + if (bytes_read < 0) { + if (errno != EAGAIN) { + HID_PLOG(EVENT) << "Read failed"; + // This assumes that the error is unrecoverable and disables reading + // from the device until it has been re-opened. + // TODO(reillyg): Investigate starting and stopping the file descriptor + // watcher in response to pending read requests so that per-request + // errors can be returned to the client. + file_watcher_.reset(); + } + return; + } + if (!has_report_id_) { + // Behave as if the byte prefixed above as the the report ID was read. + bytes_read++; + } + + origin_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&HidConnectionFreeBSD::ProcessInputReport, + connection_, buffer, bytes_read)); + } + + SEQUENCE_CHECKER(sequence_checker_); + base::ScopedFD fd_; + size_t report_buffer_size_; + bool has_report_id_; + base::WeakPtr connection_; + const scoped_refptr origin_task_runner_; + std::unique_ptr file_watcher_; + + DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); +}; + +HidConnectionFreeBSD::HidConnectionFreeBSD( + scoped_refptr device_info, + base::ScopedFD fd, + scoped_refptr blocking_task_runner) + : HidConnection(device_info), + blocking_task_runner_(std::move(blocking_task_runner)), + weak_factory_(this) { + helper_ = base::MakeUnique(std::move(fd), device_info, + weak_factory_.GetWeakPtr()); + blocking_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&BlockingTaskHelper::Start, + base::Unretained(helper_.get()))); +} + +HidConnectionFreeBSD::~HidConnectionFreeBSD() {} + +void HidConnectionFreeBSD::PlatformClose() { + // By closing the device on the blocking task runner 1) the requirement that + // base::ScopedFD is destroyed on a thread where I/O is allowed is satisfied + // and 2) any tasks posted to this task runner that refer to this file will + // complete before it is closed. + blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); + + while (!pending_reads_.empty()) { + std::move(pending_reads_.front().callback).Run(false, NULL, 0); + pending_reads_.pop(); + } +} + +void HidConnectionFreeBSD::PlatformRead(ReadCallback callback) { + PendingHidRead pending_read; + pending_read.callback = std::move(callback); + pending_reads_.push(std::move(pending_read)); + ProcessReadQueue(); +} + +void HidConnectionFreeBSD::PlatformWrite(scoped_refptr buffer, + size_t size, + WriteCallback callback) { + + blocking_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&BlockingTaskHelper::Write, base::Unretained(helper_.get()), + buffer, size, std::move(callback))); +} + +void HidConnectionFreeBSD::PlatformGetFeatureReport(uint8_t report_id, + ReadCallback callback) { + // The first byte of the destination buffer is the report ID being requested + // and is overwritten by the feature report. + DCHECK_GT(device_info()->max_feature_report_size(), 0u); + scoped_refptr buffer( + new net::IOBufferWithSize(device_info()->max_feature_report_size() + 1)); + if (report_id != 0) + buffer->data()[0] = report_id; + + blocking_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&BlockingTaskHelper::GetFeatureReport, + base::Unretained(helper_.get()), report_id, + buffer, std::move(callback))); +} + +void HidConnectionFreeBSD::PlatformSendFeatureReport( + scoped_refptr buffer, + size_t size, + WriteCallback callback) { + blocking_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&BlockingTaskHelper::SendFeatureReport, + base::Unretained(helper_.get()), buffer, size, std::move(callback))); +} + +void HidConnectionFreeBSD::ProcessInputReport( + scoped_refptr buffer, + size_t size) { + DCHECK(thread_checker().CalledOnValidThread()); + DCHECK_GE(size, 1u); + + uint8_t report_id = buffer->data()[0]; + if (IsReportIdProtected(report_id)) + return; + + PendingHidReport report; + report.buffer = buffer; + report.size = size; + pending_reports_.push(report); + ProcessReadQueue(); +} + +void HidConnectionFreeBSD::ProcessReadQueue() { + DCHECK(thread_checker().CalledOnValidThread()); + + // Hold a reference to |this| to prevent a callback from freeing this object + // during the loop. + scoped_refptr self(this); + while (pending_reads_.size() && pending_reports_.size()) { + PendingHidRead read = std::move(pending_reads_.front()); + PendingHidReport report = std::move(pending_reports_.front()); + + pending_reads_.pop(); + pending_reports_.pop(); + std::move(read.callback).Run(true, std::move(report.buffer), report.size); + } +} + +} // namespace device diff --git a/www/chromium/files/patch-device_hid_hid__connection__freebsd.h b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h similarity index 91% rename from www/chromium/files/patch-device_hid_hid__connection__freebsd.h rename to www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h index e4d184ffcb5c..a4c54ad65cbd 100644 --- a/www/chromium/files/patch-device_hid_hid__connection__freebsd.h +++ b/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h @@ -1,79 +1,79 @@ ---- device/hid/hid_connection_freebsd.h.orig 2018-01-26 21:53:10.788319000 +0100 -+++ device/hid/hid_connection_freebsd.h 2018-01-26 21:53:10.788634000 +0100 +--- services/device/hid/hid_connection_freebsd.h.orig 2018-03-04 05:38:54.423072000 +0100 ++++ services/device/hid/hid_connection_freebsd.h 2018-03-04 08:36:02.866858000 +0100 @@ -0,0 +1,76 @@ +// Copyright (c) 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef DEVICE_HID_HID_CONNECTION_FREEBSD_H_ +#define DEVICE_HID_HID_CONNECTION_FREEBSD_H_ + +#include +#include + +#include + +#include "base/files/scoped_file.h" +#include "base/macros.h" +#include "base/memory/weak_ptr.h" +#include "base/sequence_checker.h" -+#include "device/hid/hid_connection.h" ++#include "services/device/hid/hid_connection.h" + +namespace base { +class SequencedTaskRunner; +} + +namespace net { +class IOBuffer; +} + +namespace device { + +class HidConnectionFreeBSD : public HidConnection { + public: + HidConnectionFreeBSD( + scoped_refptr device_info, + base::ScopedFD fd, + scoped_refptr blocking_task_runner); + + private: + friend class base::RefCountedThreadSafe; + class BlockingTaskHelper; + + ~HidConnectionFreeBSD() override; + + // HidConnection implementation. + void PlatformClose() override; + void PlatformRead(ReadCallback callback) override; + void PlatformWrite(scoped_refptr buffer, + size_t size, + WriteCallback callback) override; + void PlatformGetFeatureReport(uint8_t report_id, + ReadCallback callback) override; + void PlatformSendFeatureReport(scoped_refptr buffer, + size_t size, + WriteCallback callback) override; + void ProcessInputReport(scoped_refptr buffer, size_t size); + void ProcessReadQueue(); + + // |helper_| lives on the sequence to which |blocking_task_runner_| posts + // tasks so all calls must be posted there including this object's + // destruction. + std::unique_ptr helper_; + + const scoped_refptr blocking_task_runner_; + + std::queue pending_reports_; + std::queue pending_reads_; + const scoped_refptr task_runner_; + + SEQUENCE_CHECKER(sequence_checker_); + + base::WeakPtrFactory weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(HidConnectionFreeBSD); +}; + +} // namespace device + +#endif // DEVICE_HID_HID_CONNECTION_FREEBSD_H_ diff --git a/www/chromium/files/patch-device_hid_hid__service.cc b/www/chromium/files/patch-services_device_hid_hid__service.cc similarity index 58% rename from www/chromium/files/patch-device_hid_hid__service.cc rename to www/chromium/files/patch-services_device_hid_hid__service.cc index c95f2edc4148..dca62afb4296 100644 --- a/www/chromium/files/patch-device_hid_hid__service.cc +++ b/www/chromium/files/patch-services_device_hid_hid__service.cc @@ -1,20 +1,20 @@ ---- device/hid/hid_service.cc.orig 2017-09-21 15:04:58.000000000 -0700 -+++ device/hid/hid_service.cc 2017-12-03 15:37:32.167748000 -0800 +--- services/device/hid/hid_service.cc.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/device/hid/hid_service.cc 2018-03-04 05:38:54.425730000 +0100 @@ -16,6 +16,8 @@ #if defined(OS_LINUX) && defined(USE_UDEV) - #include "device/hid/hid_service_linux.h" + #include "services/device/hid/hid_service_linux.h" +#elif defined(OS_BSD) -+#include "device/hid/hid_service_freebsd.h" ++#include "services/device/hid/hid_service_freebsd.h" #elif defined(OS_MACOSX) - #include "device/hid/hid_service_mac.h" + #include "services/device/hid/hid_service_mac.h" #elif defined(OS_WIN) -@@ -42,6 +44,8 @@ +@@ -36,6 +38,8 @@ std::unique_ptr HidService::Create() { #if defined(OS_LINUX) && defined(USE_UDEV) return base::WrapUnique(new HidServiceLinux()); +#elif defined(OS_BSD) + return base::WrapUnique(new HidServiceFreeBSD()); #elif defined(OS_MACOSX) return base::WrapUnique(new HidServiceMac()); #elif defined(OS_WIN) diff --git a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc similarity index 95% rename from www/chromium/files/patch-device_hid_hid__service__freebsd.cc rename to www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc index 34c3fb6b2340..1a9fca029430 100644 --- a/www/chromium/files/patch-device_hid_hid__service__freebsd.cc +++ b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc @@ -1,374 +1,374 @@ ---- device/hid/hid_service_freebsd.cc.orig 2018-01-26 21:53:10.804422000 +0100 -+++ device/hid/hid_service_freebsd.cc 2018-01-26 21:53:10.805522000 +0100 +--- services/device/hid/hid_service_freebsd.cc.orig 2018-03-04 05:38:54.466235000 +0100 ++++ services/device/hid/hid_service_freebsd.cc 2018-03-04 08:47:26.934621000 +0100 @@ -0,0 +1,371 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + -+#include "device/hid/hid_service_freebsd.h" ++#include "services/device/hid/hid_service_freebsd.h" + +#include +#include +#include +#include + +#include +#include +#include + +#include "base/bind.h" +#include "base/files/file_descriptor_watcher_posix.h" +#include "base/files/file_enumerator.h" +#include "base/location.h" +#include "base/logging.h" +#include "base/posix/eintr_wrapper.h" +#include "base/single_thread_task_runner.h" +#include "base/stl_util.h" +#include "base/strings/pattern.h" +#include "base/strings/stringprintf.h" +#include "base/strings/sys_string_conversions.h" +#include "base/strings/string_util.h" +#include "base/strings/string_split.h" +#include "base/task_scheduler/post_task.h" +#include "base/threading/thread_restrictions.h" +#include "base/threading/thread_task_runner_handle.h" +#include "components/device_event_log/device_event_log.h" -+#include "device/hid/hid_connection_freebsd.h" ++#include "services/device/hid/hid_connection_freebsd.h" + +const int kMaxPermissionChecks = 5; + +namespace device { + +struct HidServiceFreeBSD::ConnectParams { + ConnectParams(scoped_refptr device_info, + const ConnectCallback& callback) + : device_info(std::move(device_info)), + callback(callback), + task_runner(base::ThreadTaskRunnerHandle::Get()), + blocking_task_runner( + base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)) {} + ~ConnectParams() {} + + scoped_refptr device_info; + ConnectCallback callback; + scoped_refptr task_runner; + scoped_refptr blocking_task_runner; + base::ScopedFD fd; +}; + +class HidServiceFreeBSD::BlockingTaskHelper { + public: + BlockingTaskHelper(base::WeakPtr service) + : service_(std::move(service)), + task_runner_(base::ThreadTaskRunnerHandle::Get()) { + DETACH_FROM_SEQUENCE(sequence_checker_); + + timer_.reset(new base::RepeatingTimer()); + devd_buffer_ = new net::IOBufferWithSize(1024); + } + + ~BlockingTaskHelper() { + } + + void Start() { -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + const base::FilePath kDevRoot("/dev"); + const std::string kUHIDPattern("/dev/uhid*"); + + base::FileEnumerator enumerator(kDevRoot, false, base::FileEnumerator::FILES); + do { + const base::FilePath next_device_path(enumerator.Next()); + const std::string next_device = next_device_path.value(); + if (next_device.empty()) + break; + + if (base::MatchPattern(next_device, kUHIDPattern)) + OnDeviceAdded(next_device.substr(5)); + } while (true); + + SetupDevdMonitor(); + + task_runner_->PostTask( + FROM_HERE, + base::Bind(&HidServiceFreeBSD::FirstEnumerationComplete, service_)); + } + + bool HaveReadWritePermissions(std::string device_id) { + std::string device_node = "/dev/" + device_id; -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + base::FilePath device_path(device_node); + base::File device_file; + int flags = + base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; + device_file.Initialize(device_path, flags); + if (!device_file.IsValid()) + return false; + + return true; + } + + void OnDeviceAdded(std::string device_id) { + std::string device_node = "/dev/" + device_id; + uint16_t vendor_id = 0xffff; + uint16_t product_id = 0xffff; + std::string product_name = ""; + std::string serial_number = ""; + + std::vector report_descriptor; + -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + base::FilePath device_path(device_node); + base::File device_file; + int flags = + base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; + device_file.Initialize(device_path, flags); + if (!device_file.IsValid()) { + HID_LOG(ERROR) << "Failed to open '" << device_node + << "': " + << base::File::ErrorToString(device_file.error_details()); + return; + } + + base::ScopedFD fd; + fd.reset(device_file.TakePlatformFile()); + + struct usb_gen_descriptor ugd; + ugd.ugd_data = NULL; + ugd.ugd_maxlen = 0xffff; + int result = HANDLE_EINTR( + ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); + + if (result < 0) { + HID_LOG(ERROR) << "Failed to get report descriptor size"; + return; + } + + report_descriptor.resize(ugd.ugd_actlen); + + ugd.ugd_data = report_descriptor.data(); + ugd.ugd_maxlen = ugd.ugd_actlen; + result = HANDLE_EINTR( + ioctl(fd.get(), USB_GET_REPORT_DESC, &ugd)); + + if (result < 0) { + HID_LOG(ERROR) << "Failed to get report descriptor"; + return; + } + + scoped_refptr device_info(new HidDeviceInfo( + device_id, vendor_id, product_id, product_name, serial_number, + device::mojom::HidBusType::kHIDBusTypeUSB, + report_descriptor, device_node)); + + task_runner_->PostTask(FROM_HERE, base::Bind(&HidServiceFreeBSD::AddDevice, + service_, device_info)); + } + + void OnDeviceRemoved(std::string device_id) { + task_runner_->PostTask( + FROM_HERE, base::Bind(&HidServiceFreeBSD::RemoveDevice, service_, + device_id)); + } + + private: + + void CheckPendingPermissionChange() { -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + std::map::iterator it; + for (it = permissions_checks_attempts_.begin(); it != permissions_checks_attempts_.end();) { + std::string device_name = it->first; + bool keep = true; + if (HaveReadWritePermissions(device_name)) { + OnDeviceAdded(device_name); + keep = false; + } + else if (it->second-- <= 0) { + HID_LOG(ERROR) << "Still don't have write permissions to '" << device_name + << "' after " << kMaxPermissionChecks << " attempts"; + keep = false; + } + + if (keep) + ++it; + else + permissions_checks_attempts_.erase(it++); + } + + if (permissions_checks_attempts_.empty()) + timer_->Stop(); + } + + void SetupDevdMonitor() { -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + + int devd_fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); + if (devd_fd < 0) + return; + + struct sockaddr_un sa; + + sa.sun_family = AF_UNIX; + strlcpy(sa.sun_path, "/var/run/devd.seqpacket.pipe", sizeof(sa.sun_path)); + if (connect(devd_fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) { + close(devd_fd); + return; + } + + devd_fd_.reset(devd_fd); + file_watcher_ = base::FileDescriptorWatcher::WatchReadable( + devd_fd_.get(), base::Bind(&BlockingTaskHelper::OnDevdMessageCanBeRead, + base::Unretained(this))); + } + + void OnDevdMessageCanBeRead() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + ssize_t bytes_read = HANDLE_EINTR(recv(devd_fd_.get(), devd_buffer_->data(), + devd_buffer_->size() - 1, MSG_WAITALL)); + if (bytes_read < 0) { + if (errno != EAGAIN) { + HID_LOG(ERROR) << "Read failed"; + file_watcher_.reset(); + } + return; + } + + devd_buffer_->data()[bytes_read] = 0; + char *data = devd_buffer_->data(); + // It may take some time for devd to change permissions + // on /dev/uhidX node. So do not fail immediately if + // open fail. Retry each second for kMaxPermissionChecks + // times before giving up entirely + if (base::StartsWith(data, "+uhid", base::CompareCase::SENSITIVE)) { + std::vector parts = base::SplitString( + data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + if (!parts.empty()) { + std::string device_name = parts[0].substr(1); // skip '+' + if (HaveReadWritePermissions(device_name)) + OnDeviceAdded(parts[0].substr(1)); + else { + // Do not re-add to checks + if (permissions_checks_attempts_.find(device_name) == permissions_checks_attempts_.end()) { + permissions_checks_attempts_.insert(std::pair(device_name, kMaxPermissionChecks)); + timer_->Start(FROM_HERE, base::TimeDelta::FromSeconds(1), + this, &BlockingTaskHelper::CheckPendingPermissionChange); + } + } + } + } + + if (base::StartsWith(data, "-uhid", base::CompareCase::SENSITIVE)) { + std::vector parts = base::SplitString( + data, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + if (!parts.empty()) { + std::string device_name = parts[0].substr(1); // skip '-' + auto it = permissions_checks_attempts_.find(device_name); + if (it != permissions_checks_attempts_.end()) { + permissions_checks_attempts_.erase(it); + if (permissions_checks_attempts_.empty()) + timer_->Stop(); + } + OnDeviceRemoved(parts[0].substr(1)); + } + } + } + + SEQUENCE_CHECKER(sequence_checker_); + + // This weak pointer is only valid when checked on this task runner. + base::WeakPtr service_; + scoped_refptr task_runner_; + std::unique_ptr file_watcher_; + std::unique_ptr timer_; + base::ScopedFD devd_fd_; + scoped_refptr devd_buffer_; + std::map permissions_checks_attempts_; + + DISALLOW_COPY_AND_ASSIGN(BlockingTaskHelper); +}; + +HidServiceFreeBSD::HidServiceFreeBSD() + : task_runner_(base::ThreadTaskRunnerHandle::Get()), + blocking_task_runner_( + base::CreateSequencedTaskRunnerWithTraits(kBlockingTaskTraits)), + weak_factory_(this) { + helper_ = base::MakeUnique(weak_factory_.GetWeakPtr()); + blocking_task_runner_->PostTask( + FROM_HERE, + base::Bind(&BlockingTaskHelper::Start, base::Unretained(helper_.get()))); +} + +HidServiceFreeBSD::~HidServiceFreeBSD() { + blocking_task_runner_->DeleteSoon(FROM_HERE, helper_.release()); +} + +base::WeakPtr HidServiceFreeBSD::GetWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + +// static +void HidServiceFreeBSD::OpenOnBlockingThread( + std::unique_ptr params) { -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + scoped_refptr task_runner = params->task_runner; + + base::FilePath device_path(params->device_info->device_node()); + base::File device_file; + int flags = + base::File::FLAG_OPEN | base::File::FLAG_READ | base::File::FLAG_WRITE; + device_file.Initialize(device_path, flags); + if (!device_file.IsValid()) { + HID_LOG(EVENT) << "Failed to open '" << params->device_info->device_node() + << "': " + << base::File::ErrorToString(device_file.error_details()); + task_runner->PostTask(FROM_HERE, base::Bind(params->callback, nullptr)); + return; + } + params->fd.reset(device_file.TakePlatformFile()); + FinishOpen(std::move(params)); +} + +void HidServiceFreeBSD::Connect(const std::string& device_guid, + const ConnectCallback& callback) { + DCHECK(thread_checker_.CalledOnValidThread()); + + const auto& map_entry = devices().find(device_guid); + if (map_entry == devices().end()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::Bind(callback, nullptr)); + return; + } + + scoped_refptr device_info = map_entry->second; + + auto params = base::MakeUnique(device_info, callback); + + scoped_refptr blocking_task_runner = + params->blocking_task_runner; + blocking_task_runner->PostTask( + FROM_HERE, base::Bind(&HidServiceFreeBSD::OpenOnBlockingThread, + base::Passed(¶ms))); +} + +// static +void HidServiceFreeBSD::FinishOpen(std::unique_ptr params) { -+ base::ThreadRestrictions::AssertIOAllowed(); ++ base::AssertBlockingAllowed(); + scoped_refptr task_runner = params->task_runner; + + task_runner->PostTask( + FROM_HERE, + base::Bind(&HidServiceFreeBSD::CreateConnection, base::Passed(¶ms))); +} + +// static +void HidServiceFreeBSD::CreateConnection(std::unique_ptr params) { + DCHECK(params->fd.is_valid()); + params->callback.Run(base::MakeRefCounted( + std::move(params->device_info), std::move(params->fd), + std::move(params->blocking_task_runner))); +} + +} // namespace device diff --git a/www/chromium/files/patch-device_hid_hid__service__freebsd.h b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h similarity index 87% rename from www/chromium/files/patch-device_hid_hid__service__freebsd.h rename to www/chromium/files/patch-services_device_hid_hid__service__freebsd.h index 7a93c5ce3a6d..cd813a1e7b2e 100644 --- a/www/chromium/files/patch-device_hid_hid__service__freebsd.h +++ b/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h @@ -1,51 +1,51 @@ ---- device/hid/hid_service_freebsd.h.orig 2018-01-26 21:53:10.805771000 +0100 -+++ device/hid/hid_service_freebsd.h 2018-01-26 21:53:10.805991000 +0100 +--- services/device/hid/hid_service_freebsd.h.orig 2018-03-04 05:38:54.468408000 +0100 ++++ services/device/hid/hid_service_freebsd.h 2018-03-04 08:35:47.483290000 +0100 @@ -0,0 +1,48 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef DEVICE_HID_HID_SERVICE_FREEBSD_H_ +#define DEVICE_HID_HID_SERVICE_FREEBSD_H_ + +#include + +#include "base/macros.h" +#include "base/memory/ref_counted.h" +#include "base/memory/weak_ptr.h" +#include "base/timer/timer.h" -+#include "device/hid/hid_service.h" ++#include "services/device/hid/hid_service.h" +#include "net/base/io_buffer.h" + +namespace device { + +class HidServiceFreeBSD : public HidService { + public: + HidServiceFreeBSD(); + ~HidServiceFreeBSD() override; + + void Connect(const std::string& device_guid, + const ConnectCallback& connect) override; + base::WeakPtr GetWeakPtr() override; + + private: + struct ConnectParams; + class BlockingTaskHelper; + + static void OpenOnBlockingThread(std::unique_ptr params); + static void FinishOpen(std::unique_ptr params); + static void CreateConnection(std::unique_ptr params); + + const scoped_refptr task_runner_; + const scoped_refptr blocking_task_runner_; + // |helper_| lives on the sequence |blocking_task_runner_| posts to and holds + // a weak reference back to the service that owns it. + std::unique_ptr helper_; + base::WeakPtrFactory weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(HidServiceFreeBSD); +}; + +} // namespace device + +#endif // DEVICE_HID_HID_SERVICE_FREEBSD_H_ diff --git a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn index fbfb888daaad..d772a1652ebe 100644 --- a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn +++ b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn @@ -1,11 +1,11 @@ ---- services/service_manager/public/cpp/standalone_service/BUILD.gn.orig 2017-04-19 19:06:37 UTC -+++ services/service_manager/public/cpp/standalone_service/BUILD.gn -@@ -23,7 +23,7 @@ source_set("standalone_service") { +--- services/service_manager/public/cpp/standalone_service/BUILD.gn.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/service_manager/public/cpp/standalone_service/BUILD.gn 2018-03-04 03:48:04.087144000 +0100 +@@ -24,7 +24,7 @@ "//services/service_manager/public/interfaces", ] - if (is_linux && !is_android) { + if (is_linux && !is_android && !is_bsd) { - sources += [ - "linux_sandbox.cc", - "linux_sandbox.h", + deps += [ + "//sandbox/linux:sandbox", + "//sandbox/linux:sandbox_services", diff --git a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc index dcda6fa519fe..10367534a60b 100644 --- a/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc +++ b/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc @@ -1,11 +1,11 @@ ---- services/service_manager/public/cpp/standalone_service/standalone_service.cc.orig 2017-06-05 19:03:11 UTC -+++ services/service_manager/public/cpp/standalone_service/standalone_service.cc -@@ -70,6 +70,8 @@ void RunStandaloneService(const StandaloneServiceCallb - *base::CommandLine::ForCurrentProcess(); - if (command_line.HasSwitch(switches::kEnableSandbox)) - sandbox = InitializeSandbox(); +--- services/service_manager/public/cpp/standalone_service/standalone_service.cc.orig 2018-02-24 16:25:18.000000000 +0100 ++++ services/service_manager/public/cpp/standalone_service/standalone_service.cc 2018-03-04 03:53:12.449254000 +0100 +@@ -59,6 +59,8 @@ + command_line.GetSwitchValueASCII(switches::kServiceSandboxType)), + SandboxLinux::PreSandboxHook(), sandbox_options); + } +#elif defined(OS_BSD) + NOTIMPLEMENTED(); #endif mojo::edk::Init(); diff --git a/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn b/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn new file mode 100644 index 000000000000..a1c3f8334fdb --- /dev/null +++ b/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn @@ -0,0 +1,11 @@ +--- services/service_manager/sandbox/BUILD.gn.orig 2018-03-03 20:51:40.189699000 +0100 ++++ services/service_manager/sandbox/BUILD.gn 2018-03-03 20:51:56.739150000 +0100 +@@ -23,7 +23,7 @@ + deps = [ + "//base", + ] +- if (is_linux) { ++ if (is_linux && !is_bsd) { + sources += [ + "linux/bpf_base_policy_linux.cc", + "linux/bpf_base_policy_linux.h", diff --git a/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp b/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp new file mode 100644 index 000000000000..8e9be63fa67e --- /dev/null +++ b/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp @@ -0,0 +1,11 @@ +--- third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp.orig 2018-03-03 21:15:48.546036000 +0100 ++++ third_party/WebKit/Source/core/html/canvas/CanvasAsyncBlobCreator.cpp 2018-03-03 21:16:22.040188000 +0100 +@@ -31,7 +31,7 @@ + 0.001; // a small slack period between deadline and current time for safety + + /* The value is based on user statistics on Nov 2017. */ +-#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)) ++#if (defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_BSD)) + const double kIdleTaskStartTimeoutDelayMs = 1000.0; + #else + const double kIdleTaskStartTimeoutDelayMs = 4000.0; // For ChromeOS, Mobile diff --git a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp similarity index 69% rename from www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp rename to www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp index 5c8d70aec659..b77685800647 100644 --- a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp +++ b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp @@ -1,29 +1,29 @@ ---- third_party/WebKit/Source/platform/fonts/SimpleFontData.cpp.orig 2017-09-05 21:05:41.000000000 +0200 -+++ third_party/WebKit/Source/platform/fonts/SimpleFontData.cpp 2017-09-06 21:49:52.325872000 +0200 -@@ -56,7 +56,7 @@ - const float kSmallCapsFontSizeMultiplier = 0.7f; - const float kEmphasisMarkFontSizeMultiplier = 0.5f; +--- third_party/WebKit/Source/platform/fonts/FontMetrics.cpp.orig 2018-03-03 21:17:57.383299000 +0100 ++++ third_party/WebKit/Source/platform/fonts/FontMetrics.cpp 2018-03-03 21:18:37.525253000 +0100 +@@ -38,7 +38,7 @@ + + namespace blink { -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) // This is the largest VDMX table which we'll try to load and parse. static const size_t kMaxVDMXTableSize = 1024 * 1024; // 1 MB #endif -@@ -111,7 +111,7 @@ +@@ -60,7 +60,7 @@ int vdmx_ascent = 0, vdmx_descent = 0; bool is_vdmx_valid = false; -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) // Manually digging up VDMX metrics is only applicable when bytecode hinting // using FreeType. With DirectWrite or CoreText, no bytecode hinting is ever // done. This code should be pushed into FreeType (hinted font metrics). -@@ -160,7 +160,7 @@ - visual_overflow_inflation_for_ascent_ = 1; +@@ -106,7 +106,7 @@ + visual_overflow_inflation_for_ascent = 1; if (descent < metrics.fDescent) { - visual_overflow_inflation_for_descent_ = 1; + visual_overflow_inflation_for_descent = 1; -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) // When subpixel positioning is enabled, if the descent is rounded down, // the descent part of the glyph may be truncated when displayed in a // 'overflow: hidden' container. To avoid that, borrow 1 unit from the diff --git a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp index d4dfece88ebb..e1899e2a20ab 100644 --- a/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp +++ b/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp @@ -1,47 +1,47 @@ ---- third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig 2017-12-15 02:04:47.000000000 +0100 -+++ third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp 2017-12-24 18:18:08.481217000 +0100 -@@ -96,7 +96,7 @@ +--- third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig 2018-02-24 16:25:34.000000000 +0100 ++++ third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp 2018-03-04 03:59:33.369885000 +0100 +@@ -93,7 +93,7 @@ synthetic_italic_(source.synthetic_italic_), avoid_embedded_bitmaps_(source.avoid_embedded_bitmaps_), orientation_(source.orientation_), -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) style_(source.style_), #endif harf_buzz_face_(nullptr), -@@ -118,7 +118,7 @@ +@@ -115,7 +115,7 @@ synthetic_italic_(src.synthetic_italic_), avoid_embedded_bitmaps_(false), orientation_(src.orientation_), -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - style_(FontRenderStyle::QuerySystem(family_, - text_size_, - typeface_->fontStyle())), -@@ -150,7 +150,7 @@ + style_(FontRenderStyle::QuerySystem( + family_, + text_size_, +@@ -148,7 +148,7 @@ synthetic_italic_(synthetic_italic), avoid_embedded_bitmaps_(false), orientation_(orientation), -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) - style_(FontRenderStyle::QuerySystem(family_, - text_size_, - typeface_->fontStyle())), -@@ -196,7 +196,7 @@ + style_(FontRenderStyle::QuerySystem( + family_, + text_size_, +@@ -195,7 +195,7 @@ avoid_embedded_bitmaps_ = other.avoid_embedded_bitmaps_; harf_buzz_face_ = nullptr; orientation_ = other.orientation_; -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) style_ = other.style_; #endif -@@ -221,7 +221,7 @@ +@@ -220,7 +220,7 @@ synthetic_bold_ == a.synthetic_bold_ && synthetic_italic_ == a.synthetic_italic_ && avoid_embedded_bitmaps_ == a.avoid_embedded_bitmaps_ -#if defined(OS_LINUX) || defined(OS_ANDROID) +#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_BSD) && style_ == a.style_ #endif && orientation_ == a.orientation_; diff --git a/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h b/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h deleted file mode 100644 index 295e94d48c37..000000000000 --- a/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h +++ /dev/null @@ -1,10 +0,0 @@ ---- third_party/ots/include/opentype-sanitiser.h.orig 2017-04-19 19:06:52 UTC -+++ third_party/ots/include/opentype-sanitiser.h -@@ -22,6 +22,7 @@ typedef unsigned __int64 uint64_t; - #else - #include - #include -+#include - #endif - - #include diff --git a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp b/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp similarity index 57% rename from www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp rename to www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp index 8c635e844f0a..83a170684d27 100644 --- a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp +++ b/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp @@ -1,15 +1,15 @@ ---- third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp.orig 2017-12-15 02:05:39.000000000 +0100 -+++ third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-12-24 18:51:32.588224000 +0100 -@@ -37,7 +37,12 @@ +--- third_party/pdfium/fxjs/JS_Define.cpp.orig 2018-03-04 04:13:13.591977000 +0100 ++++ third_party/pdfium/fxjs/JS_Define.cpp 2018-03-04 04:14:44.297142000 +0100 +@@ -30,7 +30,12 @@ long timezone = 0; _get_timezone(&timezone); #endif // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_ +#ifdef __FreeBSD__ + struct tm *lt; + return (double)(-(lt->tm_gmtoff * 1000)); +#else return (double)(-(timezone * 1000)); +#endif } int GetDaylightSavingTA(double d) { diff --git a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp b/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp similarity index 79% rename from www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp rename to www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp index 7ea931bddc94..5b4f89a585a4 100644 --- a/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp +++ b/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp @@ -1,106 +1,106 @@ ---- third_party/pdfium/fpdfsdk/javascript/PublicMethods.cpp.orig 2017-12-31 05:03:16.422190000 +0100 -+++ third_party/pdfium/fpdfsdk/javascript/PublicMethods.cpp 2017-12-31 05:11:19.941348000 +0100 +--- third_party/pdfium/fxjs/cjs_publicmethods.cpp.orig 2018-03-04 04:22:35.417744000 +0100 ++++ third_party/pdfium/fxjs/cjs_publicmethods.cpp 2018-03-04 04:28:41.888908000 +0100 @@ -70,6 +70,103 @@ - L"July", L"August", L"September", - L"October", L"November", L"December"}; + L"July", L"August", L"September", + L"October", L"November", L"December"}; +#if defined(__FreeBSD__) +/* + * cvt.c - IEEE floating point formatting routines for FreeBSD + * from GNU libc-4.6.27 + */ + +/* + * ap_ecvt converts to decimal + * the number of digits is specified by ndigit + * decpt is set to the position of the decimal point + * sign is set to 0 for positive, 1 for negative + */ + +#define NDIG 80 + +static char * + ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag) +{ + register int r2; + double fi, fj; + register char *p, *p1; + static char buf[NDIG]; + + if (ndigits >= NDIG - 1) + ndigits = NDIG - 2; + r2 = 0; + *sign = 0; + p = &buf[0]; + if (arg < 0) { + *sign = 1; + arg = -arg; + } + arg = modf(arg, &fi); + p1 = &buf[NDIG]; + /* + * Do integer part + */ + if (fi != 0) { + p1 = &buf[NDIG]; + while (fi != 0) { + fj = modf(fi / 10, &fi); + *--p1 = (int) ((fj + .03) * 10) + '0'; + r2++; + } + while (p1 < &buf[NDIG]) + *p++ = *p1++; + } + else if (arg > 0) { + while ((fj = arg * 10) < 1) { + arg = fj; + r2--; + } + } + p1 = &buf[ndigits]; + if (eflag == 0) + p1 += r2; + *decpt = r2; + if (p1 < &buf[0]) { + buf[0] = '\0'; -+ return (buf); ++ return (buf); + } + while (p <= p1 && p < &buf[NDIG]) { + arg *= 10; + arg = modf(arg, &fj); + *p++ = (int) fj + '0'; + } + if (p1 >= &buf[NDIG]) { + buf[NDIG - 1] = '\0'; + return (buf); + } + p = p1; + *p1 += 5; + while (*p1 > '9') { + *p1 = '0'; + if (p1 > buf) + ++ * --p1; + else { + *p1 = '1'; + (*decpt)++; + if (eflag == 0) { + if (p > buf) + *p = '0'; + p++; + } + } + } + *p = '\0'; + return (buf); +} + +static char * + fcvt(double arg, int ndigits, int *decpt, int *sign) +{ + return (ap_cvt(arg, ndigits, decpt, sign, 0)); +} +#endif // defined(__FreeBSD__) + - ByteString StrTrim(const ByteString& pStr) { - ByteString result(pStr); - result.TrimLeft(' '); + template + T StrTrim(const T& str) { + T result = str; diff --git a/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc b/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc deleted file mode 100644 index 5856e97178eb..000000000000 --- a/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- third_party/webrtc/p2p/base/port.cc.orig 2017-12-30 23:29:20.335693000 +0100 -+++ third_party/webrtc/p2p/base/port.cc 2017-12-30 23:29:34.422422000 +0100 -@@ -10,6 +10,8 @@ - - #include "p2p/base/port.h" - -+#include -+ - #include - #include - diff --git a/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc b/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc index e101905a97ad..b50aeecd72de 100644 --- a/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc +++ b/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc @@ -1,47 +1,47 @@ ---- third_party/webrtc/rtc_base/physicalsocketserver.cc.orig 2017-09-05 21:06:53.000000000 +0200 -+++ third_party/webrtc/rtc_base/physicalsocketserver.cc 2017-09-07 06:01:51.591383000 +0200 +--- third_party/webrtc/rtc_base/physicalsocketserver.cc.orig 2018-02-24 16:26:17.000000000 +0100 ++++ third_party/webrtc/rtc_base/physicalsocketserver.cc 2018-03-04 04:38:51.589837000 +0100 @@ -60,7 +60,7 @@ #endif // WEBRTC_POSIX -#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) +#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD) && !defined(__native_client__) int64_t GetSocketRecvTimestamp(int socket) { struct timeval tv_ioctl; @@ -317,7 +317,7 @@ socklen_t optlen = sizeof(*value); int ret = ::getsockopt(s_, slevel, sopt, (SockOptArg)value, &optlen); if (ret != -1 && opt == OPT_DONTFRAGMENT) { -#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) +#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) *value = (*value != IP_PMTUDISC_DONT) ? 1 : 0; #endif } @@ -330,7 +330,7 @@ if (TranslateOption(opt, &slevel, &sopt) == -1) return -1; if (opt == OPT_DONTFRAGMENT) { -#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) +#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT; #endif } @@ -340,7 +340,7 @@ int PhysicalSocket::Send(const void* pv, size_t cb) { int sent = DoSend(s_, reinterpret_cast(pv), static_cast(cb), -#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) +#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) // Suppress SIGPIPE. Without this, attempting to send on a socket whose // other end is closed will result in a SIGPIPE signal being raised to // our process, which by default will terminate the process, which we @@ -560,7 +560,7 @@ *slevel = IPPROTO_IP; *sopt = IP_DONTFRAGMENT; break; -#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__) +#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) - LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; + RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; return -1; #elif defined(WEBRTC_POSIX) diff --git a/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc b/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc deleted file mode 100644 index 7a5081134694..000000000000 --- a/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc +++ /dev/null @@ -1,11 +0,0 @@ ---- third_party/webrtc/system_wrappers/source/atomic32_non_darwin_unix.cc.orig 2017-04-19 19:07:53 UTC -+++ third_party/webrtc/system_wrappers/source/atomic32_non_darwin_unix.cc -@@ -12,7 +12,7 @@ - - #include - #include --#include -+#include - - #include "webrtc/common_types.h" - diff --git a/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc b/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc index 073cbea2009e..8317eee7ca98 100644 --- a/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc +++ b/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc @@ -1,20 +1,20 @@ ---- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2017-06-05 19:03:30 UTC -+++ ui/base/dragdrop/os_exchange_data_provider_factory.cc -@@ -8,7 +8,7 @@ +--- ui/base/dragdrop/os_exchange_data_provider_factory.cc.orig 2018-02-24 16:25:37.000000000 +0100 ++++ ui/base/dragdrop/os_exchange_data_provider_factory.cc 2018-03-04 04:46:54.356687000 +0100 +@@ -9,7 +9,7 @@ - #if defined(USE_X11) && !defined(OS_CHROMEOS) + #if defined(USE_X11) #include "ui/base/dragdrop/os_exchange_data_provider_aurax11.h" -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) #include "ui/base/dragdrop/os_exchange_data_provider_aura.h" #elif defined(OS_MACOSX) #include "ui/base/dragdrop/os_exchange_data_provider_builder_mac.h" -@@ -42,7 +42,7 @@ OSExchangeDataProviderFactory::CreateProvider() { +@@ -43,7 +43,7 @@ - #if defined(USE_X11) && !defined(OS_CHROMEOS) - return base::MakeUnique(); + #if defined(USE_X11) + return std::make_unique(); -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_BSD) - return base::MakeUnique(); + return std::make_unique(); #elif defined(OS_MACOSX) return ui::BuildOSExchangeDataProviderMac(); diff --git a/www/chromium/files/patch-ui_base_ime_input__method__factory.cc b/www/chromium/files/patch-ui_base_ime_input__method__factory.cc deleted file mode 100644 index cf4f5889f88a..000000000000 --- a/www/chromium/files/patch-ui_base_ime_input__method__factory.cc +++ /dev/null @@ -1,22 +0,0 @@ ---- ui/base/ime/input_method_factory.cc.orig 2017-06-05 19:03:30 UTC -+++ ui/base/ime/input_method_factory.cc -@@ -16,7 +16,8 @@ - #include "ui/base/ime/input_method_win.h" - #elif defined(OS_MACOSX) - #include "ui/base/ime/input_method_mac.h" --#elif defined(USE_AURA) && defined(OS_LINUX) && defined(USE_X11) -+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && \ -+ defined(USE_X11) - #include "ui/base/ime/input_method_auralinux.h" - #elif defined(OS_ANDROID) - #include "ui/base/ime/input_method_android.h" -@@ -60,7 +61,8 @@ std::unique_ptr CreateInputMethod( - return base::MakeUnique(delegate, widget); - #elif defined(OS_MACOSX) - return base::MakeUnique(delegate); --#elif defined(USE_AURA) && defined(OS_LINUX) && defined(USE_X11) -+#elif defined(USE_AURA) && (defined(OS_LINUX) || defined(OS_BSD)) && \ -+ defined(USE_X11) - return base::MakeUnique(delegate); - #elif defined(OS_ANDROID) - return base::MakeUnique(delegate); diff --git a/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc b/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc index 64b47ac8e463..61ceece285e7 100644 --- a/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc +++ b/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc @@ -1,69 +1,61 @@ ---- ui/gl/gl_bindings_autogen_glx.cc.orig 2017-12-15 02:04:52.000000000 +0100 -+++ ui/gl/gl_bindings_autogen_glx.cc 2017-12-30 20:41:29.231707000 +0100 -@@ -73,6 +73,7 @@ - fn.glXGetFBConfigsFn = reinterpret_cast( - GetGLProcAddress("glXGetFBConfigs")); - fn.glXGetMscRateOMLFn = 0; -+ fn.glXGetProcAddressARBFn = 0; - fn.glXGetSelectedEventFn = reinterpret_cast( - GetGLProcAddress("glXGetSelectedEvent")); - fn.glXGetSyncValuesOMLFn = 0; -@@ -120,6 +121,8 @@ +--- ui/gl/gl_bindings_autogen_glx.cc.orig 2018-02-24 16:25:37.000000000 +0100 ++++ ui/gl/gl_bindings_autogen_glx.cc 2018-03-04 04:53:49.532617000 +0100 +@@ -115,6 +115,8 @@ ext.b_GLX_ARB_create_context = HasExtension(extensions, "GLX_ARB_create_context"); + ext.b_GLX_ARB_get_proc_address = + HasExtension(extensions, "GLX_ARB_get_proc_address"); ext.b_GLX_EXT_swap_control = HasExtension(extensions, "GLX_EXT_swap_control"); ext.b_GLX_EXT_texture_from_pixmap = HasExtension(extensions, "GLX_EXT_texture_from_pixmap"); -@@ -147,6 +150,11 @@ +@@ -142,6 +144,11 @@ GetGLProcAddress("glXCreateContextAttribsARB")); } + if (ext.b_GLX_ARB_get_proc_address) { + fn.glXGetProcAddressARBFn = reinterpret_cast( + GetGLProcAddress("glXGetProcAddressARB")); + } + if (ext.b_GLX_SGIX_fbconfig) { fn.glXGetFBConfigFromVisualSGIXFn = reinterpret_cast( -@@ -348,6 +356,10 @@ +@@ -343,6 +350,10 @@ return driver_->fn.glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); } +__GLXextFuncPtr GLXApiBase::glXGetProcAddressARBFn(const GLubyte* procName) { + return driver_->fn.glXGetProcAddressARBFn(procName); +} + void GLXApiBase::glXGetSelectedEventFn(Display* dpy, GLXDrawable drawable, unsigned long* mask) { -@@ -648,6 +660,11 @@ +@@ -643,6 +654,11 @@ return glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); } +__GLXextFuncPtr TraceGLXApi::glXGetProcAddressARBFn(const GLubyte* procName) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glXGetProcAddressARB") + return glx_api_->glXGetProcAddressARBFn(procName); +} + void TraceGLXApi::glXGetSelectedEventFn(Display* dpy, GLXDrawable drawable, unsigned long* mask) { -@@ -1070,6 +1087,14 @@ +@@ -1065,6 +1081,14 @@ << static_cast(denominator) << ")"); bool result = glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator); + GL_SERVICE_LOG("GL_RESULT: " << result); + return result; +} + +__GLXextFuncPtr DebugGLXApi::glXGetProcAddressARBFn(const GLubyte* procName) { + GL_SERVICE_LOG("glXGetProcAddressARB" + << "(" << static_cast(procName) << ")"); + __GLXextFuncPtr result = glx_api_->glXGetProcAddressARBFn(procName); GL_SERVICE_LOG("GL_RESULT: " << result); return result; } diff --git a/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc b/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc index de30e63c44d0..7577a15bfbcb 100644 --- a/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc +++ b/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc @@ -1,26 +1,15 @@ ---- v8/src/base/platform/platform-posix.cc.orig 2017-06-05 19:04:29 UTC -+++ v8/src/base/platform/platform-posix.cc -@@ -27,6 +27,10 @@ - #include // NOLINT, for sysctl - #endif - -+#if V8_OS_NETBSD -+#include // for _lwp_self -+#endif -+ - #undef MAP_TYPE - - #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT) -@@ -354,6 +358,12 @@ int OS::GetCurrentThreadId() { +--- v8/src/base/platform/platform-posix.cc.orig 2018-02-24 16:26:18.000000000 +0100 ++++ v8/src/base/platform/platform-posix.cc 2018-03-04 05:02:38.985674000 +0100 +@@ -459,6 +459,12 @@ return static_cast(syscall(__NR_gettid)); #elif V8_OS_ANDROID return static_cast(gettid()); +#elif V8_OS_DRAGONFLYBSD || defined(__DragonFly__) + return static_cast(lwp_gettid()); +#elif V8_OS_FREEBSD + return static_cast(pthread_getthreadid_np()); +#elif V8_OS_NETBSD + return static_cast(_lwp_self()); #elif V8_OS_AIX return static_cast(thread_self()); - #elif V8_OS_SOLARIS + #elif V8_OS_FUCHSIA diff --git a/www/chromium/files/patch-v8_src_globals.h b/www/chromium/files/patch-v8_src_globals.h index 9a7583ab580c..4b344dfa7bd9 100644 --- a/www/chromium/files/patch-v8_src_globals.h +++ b/www/chromium/files/patch-v8_src_globals.h @@ -1,14 +1,14 @@ --- v8/src/globals.h.orig 2017-06-05 19:04:29 UTC +++ v8/src/globals.h @@ -184,7 +184,11 @@ const size_t kCodeRangeAreaAlignment = 256 * MB; const size_t kMaximalCodeRangeSize = 512 * MB; const size_t kCodeRangeAreaAlignment = 64 * KB; // OS page on PPC Linux #else +#if defined(__FreeBSD__) -+const size_t kMaximalCodeRangeSize = 256 * MB; ++const size_t kMaximalCodeRangeSize = 512 * MB; +#else const size_t kMaximalCodeRangeSize = 512 * MB; +#endif const size_t kCodeRangeAreaAlignment = 4 * KB; // OS page. #endif #if V8_OS_WIN diff --git a/www/chromium/pkg-plist b/www/chromium/pkg-plist index 7735cb5d8e98..94a3ce296914 100644 --- a/www/chromium/pkg-plist +++ b/www/chromium/pkg-plist @@ -1,325 +1,323 @@ bin/chrome %%DATADIR%%/chrome %%DATADIR%%/chrome-wrapper %%DATADIR%%/chrome_100_percent.pak %%DATADIR%%/chrome_200_percent.pak %%DATADIR%%/font_service.service %%DATADIR%%/headless_lib.pak %%DATADIR%%/icudtl.dat %%DATADIR%%/natives_blob.bin %%DATADIR%%/keyboard_resources.pak %%DATADIR%%/libEGL.so %%DATADIR%%/libGLESv2.so %%DATADIR%%/locales/am.pak %%DATADIR%%/locales/am.pak.info %%DATADIR%%/locales/ar.pak %%DATADIR%%/locales/ar.pak.info %%DATADIR%%/locales/bg.pak %%DATADIR%%/locales/bg.pak.info %%DATADIR%%/locales/bn.pak %%DATADIR%%/locales/bn.pak.info %%DATADIR%%/locales/ca.pak %%DATADIR%%/locales/ca.pak.info %%DATADIR%%/locales/cs.pak %%DATADIR%%/locales/cs.pak.info %%DATADIR%%/locales/da.pak %%DATADIR%%/locales/da.pak.info %%DATADIR%%/locales/de.pak %%DATADIR%%/locales/de.pak.info %%DATADIR%%/locales/el.pak %%DATADIR%%/locales/el.pak.info %%DATADIR%%/locales/en-GB.pak %%DATADIR%%/locales/en-GB.pak.info %%DATADIR%%/locales/en-US.pak %%DATADIR%%/locales/en-US.pak.info %%DATADIR%%/locales/es-419.pak %%DATADIR%%/locales/es-419.pak.info %%DATADIR%%/locales/es.pak %%DATADIR%%/locales/es.pak.info %%DATADIR%%/locales/et.pak %%DATADIR%%/locales/et.pak.info %%DATADIR%%/locales/fa.pak %%DATADIR%%/locales/fa.pak.info %%DATADIR%%/locales/fi.pak %%DATADIR%%/locales/fi.pak.info %%DATADIR%%/locales/fil.pak %%DATADIR%%/locales/fil.pak.info %%DATADIR%%/locales/fr.pak %%DATADIR%%/locales/fr.pak.info %%DATADIR%%/locales/gu.pak %%DATADIR%%/locales/gu.pak.info %%DATADIR%%/locales/he.pak %%DATADIR%%/locales/he.pak.info %%DATADIR%%/locales/hi.pak %%DATADIR%%/locales/hi.pak.info %%DATADIR%%/locales/hr.pak %%DATADIR%%/locales/hr.pak.info %%DATADIR%%/locales/hu.pak %%DATADIR%%/locales/hu.pak.info %%DATADIR%%/locales/id.pak %%DATADIR%%/locales/id.pak.info %%DATADIR%%/locales/it.pak %%DATADIR%%/locales/it.pak.info %%DATADIR%%/locales/ja.pak %%DATADIR%%/locales/ja.pak.info %%DATADIR%%/locales/kn.pak %%DATADIR%%/locales/kn.pak.info %%DATADIR%%/locales/ko.pak %%DATADIR%%/locales/ko.pak.info %%DATADIR%%/locales/lt.pak %%DATADIR%%/locales/lt.pak.info %%DATADIR%%/locales/lv.pak %%DATADIR%%/locales/lv.pak.info %%DATADIR%%/locales/ml.pak %%DATADIR%%/locales/ml.pak.info %%DATADIR%%/locales/mr.pak %%DATADIR%%/locales/mr.pak.info %%DATADIR%%/locales/ms.pak %%DATADIR%%/locales/ms.pak.info %%DATADIR%%/locales/nb.pak %%DATADIR%%/locales/nb.pak.info %%DATADIR%%/locales/nl.pak %%DATADIR%%/locales/nl.pak.info %%DATADIR%%/locales/pl.pak %%DATADIR%%/locales/pl.pak.info %%DATADIR%%/locales/pt-BR.pak %%DATADIR%%/locales/pt-BR.pak.info %%DATADIR%%/locales/pt-PT.pak %%DATADIR%%/locales/pt-PT.pak.info %%DATADIR%%/locales/ro.pak %%DATADIR%%/locales/ro.pak.info %%DATADIR%%/locales/ru.pak %%DATADIR%%/locales/ru.pak.info %%DATADIR%%/locales/sk.pak %%DATADIR%%/locales/sk.pak.info %%DATADIR%%/locales/sl.pak %%DATADIR%%/locales/sl.pak.info %%DATADIR%%/locales/sr.pak %%DATADIR%%/locales/sr.pak.info %%DATADIR%%/locales/sv.pak %%DATADIR%%/locales/sv.pak.info %%DATADIR%%/locales/sw.pak %%DATADIR%%/locales/sw.pak.info %%DATADIR%%/locales/ta.pak %%DATADIR%%/locales/ta.pak.info %%DATADIR%%/locales/te.pak %%DATADIR%%/locales/te.pak.info %%DATADIR%%/locales/th.pak %%DATADIR%%/locales/th.pak.info %%DATADIR%%/locales/tr.pak %%DATADIR%%/locales/tr.pak.info %%DATADIR%%/locales/uk.pak %%DATADIR%%/locales/uk.pak.info %%DATADIR%%/locales/vi.pak %%DATADIR%%/locales/vi.pak.info %%DATADIR%%/locales/zh-CN.pak %%DATADIR%%/locales/zh-CN.pak.info %%DATADIR%%/locales/zh-TW.pak %%DATADIR%%/locales/zh-TW.pak.info %%DATADIR%%/mksnapshot %%DATADIR%%/mus_app_resources_100.pak %%DATADIR%%/mus_app_resources_200.pak %%DATADIR%%/mus_app_resources_strings.pak %%DATADIR%%/product_logo_48.png %%DATADIR%%/protoc %%DATADIR%%/resources.pak %%DATADIR%%/resources/inspector/Images/accelerometer-back.png %%DATADIR%%/resources/inspector/Images/accelerometer-bottom.png %%DATADIR%%/resources/inspector/Images/accelerometer-front.png %%DATADIR%%/resources/inspector/Images/accelerometer-left.png %%DATADIR%%/resources/inspector/Images/accelerometer-right.png %%DATADIR%%/resources/inspector/Images/accelerometer-top.png %%DATADIR%%/resources/inspector/Images/audits_logo.svg %%DATADIR%%/resources/inspector/Images/breakpoint.png %%DATADIR%%/resources/inspector/Images/breakpointConditional.png %%DATADIR%%/resources/inspector/Images/breakpointConditional_2x.png %%DATADIR%%/resources/inspector/Images/breakpoint_2x.png %%DATADIR%%/resources/inspector/Images/checker.png %%DATADIR%%/resources/inspector/Images/chromeDisabledSelect.png %%DATADIR%%/resources/inspector/Images/chromeDisabledSelect_2x.png %%DATADIR%%/resources/inspector/Images/chromeLeft.png %%DATADIR%%/resources/inspector/Images/chromeMiddle.png %%DATADIR%%/resources/inspector/Images/chromeRight.png %%DATADIR%%/resources/inspector/Images/chromeSelect.png %%DATADIR%%/resources/inspector/Images/chromeSelect_2x.png %%DATADIR%%/resources/inspector/Images/deleteIcon.png %%DATADIR%%/resources/inspector/Images/errorWave.png %%DATADIR%%/resources/inspector/Images/errorWave_2x.png %%DATADIR%%/resources/inspector/Images/ic_info_black_18dp.svg %%DATADIR%%/resources/inspector/Images/ic_warning_black_18dp.svg %%DATADIR%%/resources/inspector/Images/largeIcons.png %%DATADIR%%/resources/inspector/Images/largeIcons_2x.png %%DATADIR%%/resources/inspector/Images/mediumIcons.png %%DATADIR%%/resources/inspector/Images/mediumIcons_2x.png %%DATADIR%%/resources/inspector/Images/navigationControls.png %%DATADIR%%/resources/inspector/Images/navigationControls_2x.png %%DATADIR%%/resources/inspector/Images/nodeIcon.png %%DATADIR%%/resources/inspector/Images/popoverArrows.png %%DATADIR%%/resources/inspector/Images/profileGroupIcon.png %%DATADIR%%/resources/inspector/Images/profileIcon.png %%DATADIR%%/resources/inspector/Images/profileSmallIcon.png %%DATADIR%%/resources/inspector/Images/radioDot.png %%DATADIR%%/resources/inspector/Images/resizeDiagonal.png %%DATADIR%%/resources/inspector/Images/resizeDiagonal_2x.png %%DATADIR%%/resources/inspector/Images/resizeHorizontal.png %%DATADIR%%/resources/inspector/Images/resizeHorizontal_2x.png %%DATADIR%%/resources/inspector/Images/resizeVertical.png %%DATADIR%%/resources/inspector/Images/resizeVertical_2x.png %%DATADIR%%/resources/inspector/Images/resourceCSSIcon.png %%DATADIR%%/resources/inspector/Images/resourceDocumentIcon.png %%DATADIR%%/resources/inspector/Images/resourceDocumentIconSmall.png %%DATADIR%%/resources/inspector/Images/resourceJSIcon.png %%DATADIR%%/resources/inspector/Images/resourcePlainIcon.png %%DATADIR%%/resources/inspector/Images/resourcePlainIconSmall.png %%DATADIR%%/resources/inspector/Images/resourcesTimeGraphIcon.png %%DATADIR%%/resources/inspector/Images/searchNext.png %%DATADIR%%/resources/inspector/Images/searchPrev.png %%DATADIR%%/resources/inspector/Images/securityIcons.png %%DATADIR%%/resources/inspector/Images/securityIcons_2x.png %%DATADIR%%/resources/inspector/Images/smallIcons.png %%DATADIR%%/resources/inspector/Images/smallIcons_2x.png %%DATADIR%%/resources/inspector/Images/speech.png %%DATADIR%%/resources/inspector/Images/toolbarResizerVertical.png %%DATADIR%%/resources/inspector/Images/touchCursor.png %%DATADIR%%/resources/inspector/Images/touchCursor_2x.png %%DATADIR%%/resources/inspector/Images/treeoutlineTriangles.png %%DATADIR%%/resources/inspector/Images/treeoutlineTriangles_2x.png %%DATADIR%%/resources/inspector/Images/whatsnew.png %%DATADIR%%/resources/inspector/InspectorBackendCommands.js %%DATADIR%%/resources/inspector/SupportedCSSProperties.js %%DATADIR%%/resources/inspector/Tests.js %%DATADIR%%/resources/inspector/accessibility/accessibility_module.js %%DATADIR%%/resources/inspector/accessibility_test_runner/accessibility_test_runner_module.js %%DATADIR%%/resources/inspector/animation/animation_module.js %%DATADIR%%/resources/inspector/application_test_runner/application_test_runner_module.js %%DATADIR%%/resources/inspector/audits/audits_module.js %%DATADIR%%/resources/inspector/audits2/audits2_module.js %%DATADIR%%/resources/inspector/audits2_test_runner/audits2_test_runner_module.js %%DATADIR%%/resources/inspector/audits2_worker.js %%DATADIR%%/resources/inspector/audits2_worker/audits2_worker_module.js %%DATADIR%%/resources/inspector/audits_test_runner/audits_test_runner_module.js %%DATADIR%%/resources/inspector/bindings_test_runner/bindings_test_runner_module.js %%DATADIR%%/resources/inspector/changes/changes_module.js %%DATADIR%%/resources/inspector/cm/cm_module.js %%DATADIR%%/resources/inspector/cm_modes/cm_modes_module.js %%DATADIR%%/resources/inspector/color_picker/color_picker_module.js %%DATADIR%%/resources/inspector/console/console_module.js %%DATADIR%%/resources/inspector/console_test_runner/console_test_runner_module.js %%DATADIR%%/resources/inspector/cookie_table/cookie_table_module.js %%DATADIR%%/resources/inspector/coverage/coverage_module.js %%DATADIR%%/resources/inspector/coverage_test_runner/coverage_test_runner_module.js +%%DATADIR%%/resources/inspector/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js %%DATADIR%%/resources/inspector/data_grid/data_grid_module.js %%DATADIR%%/resources/inspector/data_grid_test_runner/data_grid_test_runner_module.js %%DATADIR%%/resources/inspector/device_mode_test_runner/device_mode_test_runner_module.js %%DATADIR%%/resources/inspector/devices/devices_module.js %%DATADIR%%/resources/inspector/devtools_compatibility.js %%DATADIR%%/resources/inspector/devtools_extension_api.js %%DATADIR%%/resources/inspector/diff/diff_module.js %%DATADIR%%/resources/inspector/elements/elements_module.js %%DATADIR%%/resources/inspector/elements_test_runner/elements_test_runner_module.js %%DATADIR%%/resources/inspector/emulated_devices/Nexus5X-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/Nexus5X-portrait.svg %%DATADIR%%/resources/inspector/emulated_devices/Nexus6P-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/Nexus6P-portrait.svg %%DATADIR%%/resources/inspector/emulated_devices/emulated_devices_module.js %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-default-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-default-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-1x.png %%DATADIR%%/resources/inspector/emulated_devices/google-nexus-5x-vertical-navigation-2x.png %%DATADIR%%/resources/inspector/emulated_devices/iPad-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/iPad-portrait.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone5-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone5-portrait.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone6-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone6-portrait.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone6Plus-landscape.svg %%DATADIR%%/resources/inspector/emulated_devices/iPhone6Plus-portrait.svg %%DATADIR%%/resources/inspector/event_listeners/event_listeners_module.js %%DATADIR%%/resources/inspector/extensions_test_runner/extensions_test_runner_module.js %%DATADIR%%/resources/inspector/formatter_worker.js %%DATADIR%%/resources/inspector/formatter/formatter_module.js -%%DATADIR%%/resources/inspector/gonzales/gonzales_module.js %%DATADIR%%/resources/inspector/har_importer/har_importer_module.js +%%DATADIR%%/resources/inspector/heap_profiler_test_runner/heap_profiler_test_runner_module.js %%DATADIR%%/resources/inspector/heap_snapshot_model/heap_snapshot_model_module.js %%DATADIR%%/resources/inspector/heap_snapshot_worker.js %%DATADIR%%/resources/inspector/heap_snapshot_worker/heap_snapshot_worker_module.js %%DATADIR%%/resources/inspector/inline_editor/inline_editor_module.js %%DATADIR%%/resources/inspector/inspector.html %%DATADIR%%/resources/inspector/inspector.js %%DATADIR%%/resources/inspector/integration_test_runner.html %%DATADIR%%/resources/inspector/integration_test_runner.js %%DATADIR%%/resources/inspector/layer_viewer/layer_viewer_module.js %%DATADIR%%/resources/inspector/layers/layers_module.js %%DATADIR%%/resources/inspector/layers_test_runner/layers_test_runner_module.js %%DATADIR%%/resources/inspector/network/network_module.js %%DATADIR%%/resources/inspector/network_priorities/network_priorities_module.js %%DATADIR%%/resources/inspector/network_test_runner/network_test_runner_module.js %%DATADIR%%/resources/inspector/object_ui/object_ui_module.js %%DATADIR%%/resources/inspector/perf_ui/perf_ui_module.js %%DATADIR%%/resources/inspector/performance_test_runner/performance_test_runner_module.js %%DATADIR%%/resources/inspector/product_registry_impl/product_registry_impl_module.js %%DATADIR%%/resources/inspector/profiler/profiler_module.js -%%DATADIR%%/resources/inspector/profiler_test_runner/profiler_test_runner_module.js %%DATADIR%%/resources/inspector/quick_open/quick_open_module.js %%DATADIR%%/resources/inspector/resources/resources_module.js -%%DATADIR%%/resources/inspector/sass/sass_module.js -%%DATADIR%%/resources/inspector/sass_test_runner/sass_test_runner_module.js %%DATADIR%%/resources/inspector/screencast/screencast_module.js %%DATADIR%%/resources/inspector/sdk_test_runner/sdk_test_runner_module.js %%DATADIR%%/resources/inspector/security/security_module.js %%DATADIR%%/resources/inspector/security_test_runner/security_test_runner_module.js %%DATADIR%%/resources/inspector/settings/settings_module.js %%DATADIR%%/resources/inspector/snippets/snippets_module.js %%DATADIR%%/resources/inspector/source_frame/source_frame_module.js %%DATADIR%%/resources/inspector/sources/sources_module.js %%DATADIR%%/resources/inspector/sources_test_runner/sources_test_runner_module.js %%DATADIR%%/resources/inspector/terminal/terminal_module.js %%DATADIR%%/resources/inspector/text_editor/text_editor_module.js %%DATADIR%%/resources/inspector/timeline/timeline_module.js %%DATADIR%%/resources/inspector/timeline_model/timeline_model_module.js %%DATADIR%%/resources/inspector/toolbox.html %%DATADIR%%/resources/inspector/toolbox.js %%DATADIR%%/resources/inspector/workspace_diff/workspace_diff_module.js %%DATADIR%%/snapshot_blob.bin %%DATADIR%%/swiftshader/libEGL.so %%DATADIR%%/swiftshader/libGLESv2.so -%%DATADIR%%/test_ime_driver.service %%DATADIR%%/ui.service %%DATADIR%%/v8_context_snapshot.bin %%DATADIR%%/views_mus_resources.pak +%%DATADIR%%/viz.service %%DEBUG%%%%DATADIR%%/character_data_generator %%DEBUG%%%%DATADIR%%/libVkLayer_core_validation.so %%DEBUG%%%%DATADIR%%/libVkLayer_object_tracker.so %%DEBUG%%%%DATADIR%%/libVkLayer_parameter_validation.so %%DEBUG%%%%DATADIR%%/libVkLayer_swapchain.so %%DEBUG%%%%DATADIR%%/libVkLayer_threading.so %%DEBUG%%%%DATADIR%%/libVkLayer_unique_objects.so %%DRIVER%%bin/chromedriver man/man1/chrome.1.gz share/applications/chromium-browser.desktop share/icons/hicolor/128x128/apps/chrome.png share/icons/hicolor/22x22/apps/chrome.png share/icons/hicolor/24x24/apps/chrome.png share/icons/hicolor/256x256/apps/chrome.png share/icons/hicolor/48x48/apps/chrome.png share/icons/hicolor/64x64/apps/chrome.png