Index: branches/2018Q1/www/chromium/Makefile =================================================================== --- branches/2018Q1/www/chromium/Makefile (revision 463957) +++ branches/2018Q1/www/chromium/Makefile (revision 463958) @@ -1,319 +1,320 @@ # Created by: Florent Thoumie # $FreeBSD$ PORTNAME= chromium -PORTVERSION= 63.0.3239.132 +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= python:lang/python \ 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>0:x11-fonts/noto 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,build shebangfix tar:xz .else USES= bison cpe desktop-file-utils jpeg ninja perl5 pkgconfig \ python:2,build shebangfix tar:xz .endif MAKE_ARGS= -C out/${BUILDTYPE} .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} && ${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} 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} ./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 Index: branches/2018Q1/www/chromium/distinfo =================================================================== --- branches/2018Q1/www/chromium/distinfo (revision 463957) +++ branches/2018Q1/www/chromium/distinfo (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__daemon__client.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.h (nonexistent) @@ -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 Property changes on: branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc (nonexistent) @@ -1,283 +0,0 @@ ---- 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 -@@ -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 -+#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" -+ -+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(); -+ -+ 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 Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-ui_base_ime_input__method__factory.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-ui_base_ime_input__method__factory.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-ui_base_ime_input__method__factory.cc (nonexistent) @@ -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); Property changes on: branches/2018Q1/www/chromium/files/patch-ui_base_ime_input__method__factory.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h (nonexistent) @@ -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 Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_ots_include_opentype-sanitiser.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_child_child__process.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_child_child__process.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_child_child__process.h (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-content_child_child__process.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.cc (nonexistent) @@ -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)); Property changes on: branches/2018Q1/www/chromium/files/patch-content_child_child__thread__impl.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_common_child__process__messages.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_common_child__process__messages.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_common_child__process__messages.h (nonexistent) @@ -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, Property changes on: branches/2018Q1/www/chromium/files/patch-content_common_child__process__messages.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc (nonexistent) @@ -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()); Property changes on: branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc (nonexistent) @@ -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" - Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_webrtc_system__wrappers_source_atomic32__non__darwin__unix.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp (nonexistent) @@ -1,106 +0,0 @@ ---- 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 -@@ -70,6 +70,103 @@ - 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); -+ } -+ 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(' '); Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_PublicMethods.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-device_media__transfer__protocol_media__transfer__protocol__manager.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.h (nonexistent) @@ -1,79 +0,0 @@ ---- 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 -@@ -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" -+ -+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_ Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_hid__connection__freebsd.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_webrtc_p2p_base_port.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.h (nonexistent) @@ -1,51 +0,0 @@ ---- 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 -@@ -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 "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_ Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.cc (nonexistent) @@ -1,374 +0,0 @@ ---- 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 -@@ -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 -+#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" -+ -+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(); -+ 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::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::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(); -+ 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(); -+ -+ 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(); -+ 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(); -+ 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 Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service__freebsd.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_BUILD.gn (nonexistent) @@ -1,22 +0,0 @@ ---- 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 @@ - 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" ] - } Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_BUILD.gn ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_child_child__process.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_child_child__process.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_child_child__process.cc (nonexistent) @@ -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); Property changes on: branches/2018Q1/www/chromium/files/patch-content_child_child__process.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc (nonexistent) @@ -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); Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_extensions_api_webrtc__audio__private_webrtc__audio__private__api.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.h (nonexistent) @@ -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; Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc (nonexistent) @@ -1,20 +0,0 @@ ---- 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 @@ - #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 @@ - - bool ChromeControllerClient::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; Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_interstitials_chrome__controller__client.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc (nonexistent) @@ -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)); Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_message__center_message__center__frame__view.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.h (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-device_hid_hid__service.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-device_hid_hid__service.cc (nonexistent) @@ -1,20 +0,0 @@ ---- 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 -@@ -16,6 +16,8 @@ - - #if defined(OS_LINUX) && defined(USE_UDEV) - #include "device/hid/hid_service_linux.h" -+#elif defined(OS_BSD) -+#include "device/hid/hid_service_freebsd.h" - #elif defined(OS_MACOSX) - #include "device/hid/hid_service_mac.h" - #elif defined(OS_WIN) -@@ -42,6 +44,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) Property changes on: branches/2018Q1/www/chromium/files/patch-device_hid_hid__service.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp (nonexistent) @@ -1,15 +0,0 @@ ---- 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 @@ - 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) { Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fpdfsdk_javascript_JS__Value.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.cc (nonexistent) @@ -1,56 +0,0 @@ ---- 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 @@ - 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"; - #endif - -@@ -291,7 +291,7 @@ - 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 @@ - #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) Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_common_url__constants.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp (nonexistent) @@ -1,29 +0,0 @@ ---- 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; - --#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 @@ - 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; - if (descent < metrics.fDescent) { - 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 Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_SimpleFontData.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc (nonexistent) @@ -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 Property changes on: branches/2018Q1/www/chromium/files/patch-ppapi_shared__impl_private_net__address__private__impl.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h (nonexistent) @@ -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 - Property changes on: branches/2018Q1/www/chromium/files/patch-headless_lib_headless__content__main__delegate.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc (nonexistent) @@ -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())); - { Property changes on: branches/2018Q1/www/chromium/files/patch-content_browser_gpu_gpu__internals__ui.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-BUILD.gn (revision 463958) @@ -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" ] Index: branches/2018Q1/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-base_files_memory_mapped_file_posix.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-base_process_process__metrics.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-base_process_process__metrics.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-base_process_process__metrics.h (revision 463958) @@ -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. Index: branches/2018Q1/www/chromium/files/patch-base_process_process__metrics__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-base_process_process__metrics__freebsd.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-base_process_process__metrics__freebsd.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-build_config_BUILDCONFIG.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-build_config_BUILDCONFIG.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-build_config_BUILDCONFIG.gn (revision 463958) @@ -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 + # ============================================================================= Index: branches/2018Q1/www/chromium/files/patch-build_config_compiler_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-build_config_compiler_BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-build_config_compiler_BUILD.gn (revision 463958) @@ -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. Index: branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_app_chrome__main__delegate.cc (revision 463958) @@ -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()); +@@ -915,7 +915,7 @@ + InitializePDF(); #endif -@@ -906,7 +906,7 @@ - chrome::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) Index: branches/2018Q1/www/chromium/files/patch-chrome_app_generated__resources.grd =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_app_generated__resources.grd (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_app_generated__resources.grd (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_browser__resources.grd =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_browser__resources.grd (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_browser__resources.grd (revision 463958) @@ -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 @@ + - + Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_chrome__content__browser__client.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_first__run_first__run__internal__posix.cc (revision 463958) @@ -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; + Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc (revision 463958) @@ -0,0 +1,20 @@ +--- 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; +@@ -185,7 +185,7 @@ + + 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; Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_ssl_ssl_error_controller_client.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.cc (revision 463958) @@ -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); Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_task__manager_sampling_task__group.h (revision 463958) @@ -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_; - Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_browser__command__controller.cc (revision 463958) @@ -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); Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc (revision 463958) @@ -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. Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_sad_tab.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc (revision 463958) @@ -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 + Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_frame_browser_non_client_frame_view_factory_views.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_views_profiles_avatar_button.cc (revision 463958) @@ -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_ = Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_about__ui.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_browser_ui_webui_chrome__web__ui__controller__factory.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-chrome_common_chrome__switches.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_common_chrome__switches.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-chrome_common_chrome__switches.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.cc (revision 463958) @@ -0,0 +1,41 @@ +--- 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 kChromeUIDiscardsHost[] = "discards"; + const char kChromeUIDiscardsURL[] = "chrome://discards/"; + #endif +@@ -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 + +-#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 + +@@ -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) Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.h (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.h (revision 463958) @@ -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 + Property changes on: branches/2018Q1/www/chromium/files/patch-chrome_common_webui_url_constants.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-components_crash_content_app_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-components_crash_content_app_BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-components_crash_content_app_BUILD.gn (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-components_crash_core_common_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-components_crash_core_common_BUILD.gn (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-components_crash_core_common_BUILD.gn (revision 463958) @@ -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" ] + } + } + Property changes on: branches/2018Q1/www/chromium/files/patch-components_crash_core_common_BUILD.gn ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-components_password__manager_core_browser_password_manager.cc (revision 463958) @@ -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. Index: branches/2018Q1/www/chromium/files/patch-components_policy_resources_policy__templates.json =================================================================== --- branches/2018Q1/www/chromium/files/patch-components_policy_resources_policy__templates.json (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-components_policy_resources_policy__templates.json (revision 463958) @@ -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, Index: branches/2018Q1/www/chromium/files/patch-content_app_content__main__runner.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_app_content__main__runner.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_app_content__main__runner.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-content_browser_browser__main__loop.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_browser_browser__main__loop.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_browser_browser__main__loop.cc (revision 463958) @@ -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() { Index: branches/2018Q1/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_browser_renderer__host_render__message__filter.cc (revision 463958) @@ -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}; Index: branches/2018Q1/www/chromium/files/patch-content_common_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_common_BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_common_BUILD.gn (revision 463958) @@ -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) { Index: branches/2018Q1/www/chromium/files/patch-content_gpu_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_gpu_BUILD.gn (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-content_gpu_BUILD.gn (revision 463958) @@ -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" ] + } + } Property changes on: branches/2018Q1/www/chromium/files/patch-content_gpu_BUILD.gn ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_gpu_gpu__main.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_gpu_gpu__main.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_gpu_gpu__main.cc (revision 463958) @@ -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) { Index: branches/2018Q1/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc (revision 463958) @@ -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, Property changes on: branches/2018Q1/www/chromium/files/patch-content_gpu_gpu_sandbox_hook_linux.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_ppapi_plugin_ppapi_plugin_main.cc (revision 463958) @@ -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; Index: branches/2018Q1/www/chromium/files/patch-content_public_test_browser__test__base.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_public_test_browser__test__base.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_public_test_browser__test__base.cc (revision 463958) @@ -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 @@ +--- 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" - #include - +#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 Index: branches/2018Q1/www/chromium/files/patch-content_renderer_render__thread__impl.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_renderer_render__thread__impl.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_renderer_render__thread__impl.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-content_renderer_renderer_main.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-content_renderer_renderer_main.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-content_renderer_renderer_main.cc (revision 463958) @@ -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)); Index: branches/2018Q1/www/chromium/files/patch-extensions_common_feature_switch.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-extensions_common_feature_switch.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-extensions_common_feature_switch.cc (revision 463958) @@ -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, Index: branches/2018Q1/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-gpu_ipc_common_gpu_memory_buffer_support.cc (revision 463958) @@ -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; Index: branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__init.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-gpu_ipc_service_gpu__memory_buffer_factory.cc (revision 463958) @@ -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); Index: branches/2018Q1/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-net_base_network__interfaces__freebsd.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-net_socket_udp__socket__posix.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-net_socket_udp__socket__posix.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-net_socket_udp__socket__posix.cc (revision 463958) @@ -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); Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_BUILD.gn (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_BUILD.gn (revision 463958) @@ -0,0 +1,22 @@ +--- 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" ] + } Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_BUILD.gn ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc (revision 463958) @@ -0,0 +1,283 @@ +--- 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 "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 "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::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 Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h (revision 463958) @@ -0,0 +1,79 @@ +--- 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 "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_ Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__connection__freebsd.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service.cc (revision 463958) @@ -0,0 +1,20 @@ +--- 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 "services/device/hid/hid_service_linux.h" ++#elif defined(OS_BSD) ++#include "services/device/hid/hid_service_freebsd.h" + #elif defined(OS_MACOSX) + #include "services/device/hid/hid_service_mac.h" + #elif defined(OS_WIN) +@@ -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) Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc (revision 463958) @@ -0,0 +1,374 @@ +--- 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 "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 "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::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::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::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::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::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::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::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 Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h (revision 463958) @@ -0,0 +1,51 @@ +--- 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 "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_ Property changes on: branches/2018Q1/www/chromium/files/patch-services_device_hid_hid__service__freebsd.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_BUILD.gn (revision 463958) @@ -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", Index: branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-services_service__manager_public_cpp_standalone__service_standalone__service.cc (revision 463958) @@ -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(); Index: branches/2018Q1/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn =================================================================== --- branches/2018Q1/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn (revision 463958) @@ -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", Property changes on: branches/2018Q1/www/chromium/files/patch-services_service__manager_sandbox_BUILD.gn ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp (revision 463958) @@ -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 Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_core_html_canvas_CanvasAsyncBlobCreator.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp (revision 463958) @@ -0,0 +1,29 @@ +--- 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 +@@ -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). +@@ -106,7 +106,7 @@ + visual_overflow_inflation_for_ascent = 1; + if (descent < metrics.fDescent) { + 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 Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontMetrics.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_WebKit_Source_platform_fonts_FontPlatformData.cpp (revision 463958) @@ -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_; Index: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp (revision 463958) @@ -0,0 +1,15 @@ +--- 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) { Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_JS_Define.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp (nonexistent) +++ branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp (revision 463958) @@ -0,0 +1,106 @@ +--- 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"}; + ++#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); ++ } ++ 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__) ++ + template + T StrTrim(const T& str) { + T result = str; Property changes on: branches/2018Q1/www/chromium/files/patch-third__party_pdfium_fxjs_cjs_publicmethods.cpp ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: branches/2018Q1/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-third__party_webrtc_rtc_base_physicalsocketserver.cc (revision 463958) @@ -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) Index: branches/2018Q1/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-ui_base_dragdrop_os__exchange__data__provider__factory.cc (revision 463958) @@ -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(); Index: branches/2018Q1/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-ui_gl_gl_bindings_autogen_glx.cc (revision 463958) @@ -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; } Index: branches/2018Q1/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc =================================================================== --- branches/2018Q1/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-v8_src_base_platform_platform-posix.cc (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/files/patch-v8_src_globals.h =================================================================== --- branches/2018Q1/www/chromium/files/patch-v8_src_globals.h (revision 463957) +++ branches/2018Q1/www/chromium/files/patch-v8_src_globals.h (revision 463958) @@ -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 Index: branches/2018Q1/www/chromium/pkg-plist =================================================================== --- branches/2018Q1/www/chromium/pkg-plist (revision 463957) +++ branches/2018Q1/www/chromium/pkg-plist (revision 463958) @@ -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 Index: branches/2018Q1 =================================================================== --- branches/2018Q1 (revision 463957) +++ branches/2018Q1 (revision 463958) Property changes on: branches/2018Q1 ___________________________________________________________________ Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r463839