diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2023-12-19 14:40:48 -0500 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2023-12-19 15:31:20 -0500 |
commit | 3baa4dfa3ad0fcc3ddabccb5af583672d19a005a (patch) | |
tree | 177d8baaada3b4f559a8f1e162dca13c75d7fa1f /dev-qt/qtwebengine | |
parent | dev-qt/qtwebchannel: drop 6.5.3 (diff) | |
download | gentoo-3baa4dfa3ad0fcc3ddabccb5af583672d19a005a.tar.gz gentoo-3baa4dfa3ad0fcc3ddabccb5af583672d19a005a.tar.bz2 gentoo-3baa4dfa3ad0fcc3ddabccb5af583672d19a005a.zip |
dev-qt/qtwebengine: drop 6.5.3
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r-- | dev-qt/qtwebengine/Manifest | 2 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.5.2-cstdint.patch | 30 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch | 83 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch | 39 | ||||
-rw-r--r-- | dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild | 282 |
5 files changed, 0 insertions, 436 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index 47526a971afc..e111f7507c64 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -2,8 +2,6 @@ DIST qtwebengine-5.15-ffmpeg-ppc64le.tar.xz 12080 BLAKE2B cfab4f02b8fac8ae7585ed DIST qtwebengine-5.15.10_p20230815-patchset.tar.xz 44880 BLAKE2B 6179ca4ad69f922cfa8ab8528bd571a326b3340f810f05782d808d67b6310de079d84ca6f769bd532f0fe375a702f0d348e02cfbf6b3f2d5c30ac668e1005bef SHA512 a323bdd8afeb41a97febf587bb0994a937c78ed470e077a2b482dca7e04bc4eb9cf75b2d2707236574d6586189ff3d27e42f437930dedd85b47a77e18ffc8fa3 DIST qtwebengine-5.15.11_p20231120.tar.xz 299212012 BLAKE2B 4f9fc9e3f380377f1eeaa8b04c6622c9e25d8b11151cccf7a04ef7dea88e4870db704dda3b303196e40bc8c1c6e76f495f911de5a74769b633952e35718a85de SHA512 2d64edf0ec5322e25a6decfd92a1b1170135c852a8d154d30a336b894bfc4c24f08cb5c88028c68a4f74e6bd6767aaf827a5fa08a82a70fd49e1fa064ee56f27 DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3282fda8932cc75a249d88b79319f0886d95777292776d94ac5f4fc114c3893b2801fbba6abb14f381172bb14b15b5ffef12413db3a16e4d1ca6 SHA512 3324e0076eb18e2ae2248428d2730cfb3413761514b2bb57e25b8db79248aaaa8098d9f7cebfa08f1a3b39b1d0a382aafed75c5ae8273918909335957921305e -DIST qtwebengine-6.5-patchset-1.tar.xz 12936 BLAKE2B f44af36689596da0177f0607cf242d9cce3c376f4a5c28d7902a6b44651ce9272d745a824580268e999c2d58b72424d72eb6027d7461184bf7f04e0223e5195f SHA512 f639eb09d18c19c7b0d422d6acdce62404be0fcce905374c5d47266340191f7ca66875680bb09d80e72db718e34b7dc6e7db5f2f16407a0edb892930513ea407 DIST qtwebengine-6.6-patchset-5.tar.xz 9520 BLAKE2B 28d620841613b2cc677f7742c35c6b8ffc533e26cb3fd85edd455a5450344594a75f790402ac5bc8d19e8e8aa788d0a3244a3a81d127dbebd53e8224798382c1 SHA512 c0bc470fd25c5a835000618618aad7db17994863304140e73e8e261c620aad512453bdf6fbecf99dfb2e267590003a9730fa2c102db9dfdbd5e931ec850f9f05 DIST qtwebengine-6.7-patchset-1.tar.xz 8704 BLAKE2B cc2aff71bedf6f1a5328dc9eb5e54308de806373348c38674e879a8f61a1c6a3eb7948e6fe03ef77160afa7c226f820be1d49d0e0e4c5ef40b118ff788595961 SHA512 5e65a445c8e443257a2a74d4804273a6dca0a951f152cd935f041f51a7fb18c8608511e643deb193194ce4c2d3ec3489fe39c9da5e2eeaa0a047bf246e3da09c -DIST qtwebengine-everywhere-src-6.5.3.tar.xz 412372456 BLAKE2B 131b4baf0267e77e1356568867db26fe86af165ddbd9abb5f2c6121e757011f5e18dfc41b30342eebf5d53f54492a20c1c77309782355b369b73c088d2102814 SHA512 8634eac4931fb27a0ded417de901955774d001dc74dc5779b216519b6b79f0a30f0774224abb14dffef779ca9df1cf384f822f9d5190e4d80b9f6ab0d012bc49 DIST qtwebengine-everywhere-src-6.6.1.tar.xz 421042656 BLAKE2B 6982a1884d66162cc3c8518125c655d60ced9ec9e81670fb2e5b193aab655c4516bbc50d3c774764385fbe372863fdbf3e03a3c35f07dd9c3119880266b3131e SHA512 d1e4f5b664f8aca5e0a5927968be87e29e29172f1256f21dc6a29006258fb2be2be99b5b36c94a08c704580db9fac7defbb37193534129a21ca14a511fcdeea0 diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.2-cstdint.patch b/dev-qt/qtwebengine/files/qtwebengine-6.5.2-cstdint.patch deleted file mode 100644 index 7de101830553..000000000000 --- a/dev-qt/qtwebengine/files/qtwebengine-6.5.2-cstdint.patch +++ /dev/null @@ -1,30 +0,0 @@ -Patch status: limbo, partially needs upstreaming - -Only manifests as an issue with gcc-13+musl which does not transitively -include cstdint / stdint.h for the int32/64_t usage. - -Partially fixed by [1] (>=chromium-110.0.5434.0) given it removes the -int64_t usage altogether in seed_response.h. - -See also [2] which fixed this for the 87 branch in Qt5. - -[1] https://crrev.com/01e21a077a0354d85e8359195613c2781f67a3a2 -[2] https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/489133 ---- a/src/3rdparty/chromium/components/variations/seed_response.h -+++ b/src/3rdparty/chromium/components/variations/seed_response.h -@@ -7,2 +7,3 @@ - -+#include <cstdint> - #include <string> ---- a/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h -+++ b/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h -@@ -7,2 +7,3 @@ - -+#include <cstdint> - #include <vector> ---- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h -+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h -@@ -16,2 +16,3 @@ - -+#include <cstdint> - #include <string> diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch b/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch deleted file mode 100644 index 8acbbf4463ce..000000000000 --- a/dev-qt/qtwebengine/files/qtwebengine-6.5.2-libcxx17.patch +++ /dev/null @@ -1,83 +0,0 @@ -Patch status: fixed in >=chromium-116.0.5809.0 - -Backport of [2][3] in order to fix building with libcxx-17 -(and hopefully runtime if upgrade from 16->17 without rebuilding). - -In order to apply cleanly, also needed [4] which seems fine to have. - -[1] https://crbug.com/1449299 -[2] https://crrev.com/9bfbbffdba73668fdb483e5a850911d2b64c35d7 -[3] https://crrev.com/4878976cd7391fbc02f87af4b7fb539b5c1f3817 -[4] https://crrev.com/5b5551edd3961481e617e510276b9f015a35b861 ---- a/src/3rdparty/chromium/base/containers/checked_iterators.h -+++ b/src/3rdparty/chromium/base/containers/checked_iterators.h -@@ -24,4 +24,7 @@ - using reference = T&; - using iterator_category = std::random_access_iterator_tag; -+#if defined(__cpp_lib_ranges) -+ using iterator_concept = std::contiguous_iterator_tag; -+#endif - - // Required for converting constructor below. -@@ -31,8 +34,6 @@ - // Required for certain libc++ algorithm optimizations that are not available - // for NaCl. --#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL) - template <typename Ptr> - friend struct std::pointer_traits; --#endif - - constexpr CheckedContiguousIterator() = default; -@@ -147,4 +148,10 @@ - } - -+ constexpr friend CheckedContiguousIterator operator+( -+ difference_type lhs, -+ const CheckedContiguousIterator& rhs) { -+ return rhs + lhs; -+ } -+ - constexpr CheckedContiguousIterator& operator-=(difference_type rhs) { - if (rhs < 0) { -@@ -218,5 +225,4 @@ - } // namespace base - --#if defined(_LIBCPP_VERSION) && !BUILDFLAG(IS_NACL) - // Specialize both std::__is_cpp17_contiguous_iterator and std::pointer_traits - // for CCI in case we compile with libc++ outside of NaCl. The former is -@@ -236,11 +242,28 @@ - // [2] https://wg21.link/std.iterator.tags - // [3] https://wg21.link/pointer.traits.optmem --namespace std { -+ -+#if defined(_LIBCPP_VERSION) -+ -+_LIBCPP_BEGIN_NAMESPACE_STD - - template <typename T> -+struct __is_cpp17_contiguous_iterator; -+template <typename T> - struct __is_cpp17_contiguous_iterator<::base::CheckedContiguousIterator<T>> - : true_type {}; - - template <typename T> -+struct __libcpp_is_contiguous_iterator; -+template <typename T> -+struct __libcpp_is_contiguous_iterator<::base::CheckedContiguousIterator<T>> -+ : true_type {}; -+ -+_LIBCPP_END_NAMESPACE_STD -+ -+#endif -+ -+namespace std { -+ -+template <typename T> - struct pointer_traits<::base::CheckedContiguousIterator<T>> { - using pointer = ::base::CheckedContiguousIterator<T>; -@@ -261,5 +284,4 @@ - - } // namespace std --#endif - - #endif // BASE_CONTAINERS_CHECKED_ITERATORS_H_ diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch b/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch deleted file mode 100644 index d725f3209106..000000000000 --- a/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch +++ /dev/null @@ -1,39 +0,0 @@ -Patch status: fixed in >=chromium-121.0.6104.0 with caveat - -Fix build failure[1] with libxml2-2.12 due xmlError changes. - -For convenience, use LIBXML_VERSION like webkit did[2] rather than -chromium's upstream fix[3] which relies on bundled libxml2 always -being 2.12.x (spares having to use has_version). - -When fix lands in qtwebengine, will need to depend on >=libxml2-2.12 -unless Qt decides to do something different considering that cmake -uses system libxml2 by default and it may be too early to enforce it. - -[1] https://bugs.gentoo.org/917601 -[2] https://github.com/WebKit/WebKit/commit/1bad176b2496579d760852c80cff3ad9fb7c3a4b -[3] https://crrev.com/871f8ae9b65ce2679b0bc0be36902d65edf0c1e4 ---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h -+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h -@@ -78,5 +78,9 @@ - void reset(); - -+#if LIBXML_VERSION >= 21200 -+ static void ParseErrorFunc(void* user_data, const xmlError*); -+#else - static void ParseErrorFunc(void* user_data, xmlError*); -+#endif - static void GenericErrorFunc(void* user_data, const char* msg, ...); - ---- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -+++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -@@ -67,5 +67,9 @@ - } - -+#if LIBXML_VERSION >= 21200 -+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) { -+#else - void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) { -+#endif - FrameConsole* console = static_cast<FrameConsole*>(user_data); - if (!console) diff --git a/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild b/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild deleted file mode 100644 index 5d33443cde3c..000000000000 --- a/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild +++ /dev/null @@ -1,282 +0,0 @@ -# Copyright 2021-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# 3.12 needs QTBUG-117979 (see also QTBUG-115512) -PYTHON_COMPAT=( python3_{10..11} ) -PYTHON_REQ_USE="xml(+)" -inherit check-reqs flag-o-matic multiprocessing optfeature -inherit prefix python-any-r1 qt6-build toolchain-funcs - -DESCRIPTION="Library for rendering dynamic web content in Qt6 C++ and QML applications" -SRC_URI+=" - https://dev.gentoo.org/~ionen/distfiles/${PN}-6.5-patchset-1.tar.xz -" - -if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64" -fi - -IUSE=" - +alsa bindist custom-cflags designer geolocation +jumbo-build kerberos - opengl pdfium pulseaudio qml screencast +system-icu vulkan +widgets -" -REQUIRED_USE=" - designer? ( qml widgets ) -" - -# dlopen: krb5, pciutils, udev -RDEPEND=" - app-arch/snappy:= - dev-libs/expat - dev-libs/libevent:= - dev-libs/libxml2[icu] - dev-libs/libxslt - dev-libs/nspr - dev-libs/nss - ~dev-qt/qtbase-${PV}:6[gui,opengl=,vulkan?,widgets?] - ~dev-qt/qtwebchannel-${PV}:6[qml?] - media-libs/fontconfig - media-libs/freetype - media-libs/harfbuzz:= - media-libs/lcms:2 - media-libs/libjpeg-turbo:= - media-libs/libpng:= - media-libs/libvpx:= - media-libs/libwebp:= - media-libs/openjpeg:2= - media-libs/opus - sys-apps/dbus - sys-apps/pciutils - sys-libs/zlib:=[minizip] - virtual/libudev - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrandr - x11-libs/libXtst - x11-libs/libxcb:= - x11-libs/libxkbcommon - x11-libs/libxkbfile - alsa? ( media-libs/alsa-lib ) - designer? ( ~dev-qt/qttools-${PV}:6[designer] ) - geolocation? ( ~dev-qt/qtpositioning-${PV}:6 ) - kerberos? ( virtual/krb5 ) - pulseaudio? ( media-libs/libpulse[glib] ) - qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) - screencast? ( - dev-libs/glib:2 - media-libs/mesa[gbm(+)] - media-video/pipewire:= - x11-libs/libdrm - ) - system-icu? ( dev-libs/icu:= ) - widgets? ( ~dev-qt/qtdeclarative-${PV}:6[widgets] ) -" -DEPEND=" - ${RDEPEND} - media-libs/libglvnd - x11-base/xorg-proto - x11-libs/libxshmfence - screencast? ( media-libs/libepoxy[egl(+)] ) - pdfium? ( net-print/cups ) - test? ( - widgets? ( app-text/poppler[cxx(+)] ) - ) -" -BDEPEND=" - $(python_gen_any_dep 'dev-python/html5lib[${PYTHON_USEDEP}]') - dev-util/gperf - net-libs/nodejs[ssl] - sys-devel/bison - sys-devel/flex -" - -PATCHES=( "${WORKDIR}"/patches/${PN} ) -[[ ${PV} == 6.9999 ]] || # keep for 6.x.9999 - PATCHES+=( "${WORKDIR}"/patches/chromium ) - -PATCHES+=( - # add extras as needed here, may merge in set if carries across versions - "${FILESDIR}"/${PN}-6.5.2-libcxx17.patch - "${FILESDIR}"/${PN}-6.5.2-cstdint.patch - "${FILESDIR}"/${PN}-6.5.3-icu74.patch - "${FILESDIR}"/${PN}-6.5.3-libxml2-2.12.patch -) - -python_check_deps() { - python_has_version "dev-python/html5lib[${PYTHON_USEDEP}]" -} - -qtwebengine_check-reqs() { - [[ ${MERGE_TYPE} == binary ]] && return - - if is-flagq '-g?(gdb)?([1-9])'; then #307861 - ewarn - ewarn "Used CFLAGS/CXXFLAGS seem to enable debug info (-g or -ggdb), which" - ewarn "is non-trivial with ${PN}. May experience extended compilation" - ewarn "times, increased disk/memory usage, and potentially link failure." - ewarn - ewarn "If run into issues, please try disabling before reporting a bug." - fi - - local CHECKREQS_DISK_BUILD=7G - local CHECKREQS_DISK_USR=220M - - if ! has distcc ${FEATURES}; then #830661 - # assume ~2GB per job or 1.5GB if clang, possible with less - # depending on free memory and *FLAGS, but prefer being safe as - # users having OOM issues with qtwebengine been rather common - tc-is-clang && : 15 || : 20 - local CHECKREQS_MEMORY=$(($(makeopts_jobs)*_/10))G - fi - - check-reqs_${EBUILD_PHASE_FUNC} #570534 -} - -pkg_pretend() { - qtwebengine_check-reqs -} - -pkg_setup() { - qtwebengine_check-reqs - python-any-r1_pkg_setup -} - -src_prepare() { - qt6-build_src_prepare - - # for www-plugins/chrome-binary-plugins (widevine) search paths on prefix - hprefixify -w /Gentoo/ src/core/content_client_qt.cpp - - # store chromium versions, only used in postinst for a warning - local chromium - mapfile -t chromium < CHROMIUM_VERSION || die - [[ ${chromium[1]} =~ ^Based.*:[^0-9]+([0-9.]+$) ]] && - QT6_CHROMIUM_VER=${BASH_REMATCH[1]} || die - [[ ${chromium[2]} =~ ^Patched.+:[^0-9]+([0-9.]+$) ]] && - QT6_CHROMIUM_PATCHES_VER=${BASH_REMATCH[1]} || die -} - -src_configure() { - local mycmakeargs=( - $(qt_feature pdfium qtpdf_build) - $(qt_feature qml qtpdf_quick_build) - $(qt_feature widgets qtpdf_widgets_build) - - -DQT_FEATURE_qtwebengine_build=ON - $(qt_feature qml qtwebengine_quick_build) - $(qt_feature widgets qtwebengine_widgets_build) - - $(cmake_use_find_package designer Qt6Designer) - - $(qt_feature alsa webengine_system_alsa) - $(qt_feature !bindist webengine_proprietary_codecs) - $(qt_feature geolocation webengine_geolocation) - $(qt_feature jumbo-build webengine_jumbo_build) - $(qt_feature kerberos webengine_kerberos) - $(qt_feature pulseaudio webengine_system_pulseaudio) - $(qt_feature screencast webengine_webrtc_pipewire) - $(qt_feature system-icu webengine_system_icu) - $(qt_feature vulkan webengine_vulkan) - -DQT_FEATURE_webengine_embedded_build=OFF - -DQT_FEATURE_webengine_extensions=ON - -DQT_FEATURE_webengine_ozone_x11=ON # needed, cannot do optional X yet - -DQT_FEATURE_webengine_pepper_plugins=ON - -DQT_FEATURE_webengine_printing_and_pdf=ON - -DQT_FEATURE_webengine_spellchecker=ON - -DQT_FEATURE_webengine_webchannel=ON - -DQT_FEATURE_webengine_webrtc=ON - - # needs a modified ffmpeg to be usable, and even then it may not - # cooperate with new major ffmpeg versions (bug #831487) - -DQT_FEATURE_webengine_system_ffmpeg=OFF - - # use bundled re2 to avoid complications, may revisit - # (see discussions in https://github.com/gentoo/gentoo/pull/32281) - -DQT_FEATURE_webengine_system_re2=OFF - - # not necessary to pass these (default), but in case detection fails - $(printf -- '-DQT_FEATURE_webengine_system_%s=ON ' \ - freetype glib harfbuzz lcms2 libevent libjpeg \ - libopenjpeg2 libpci libpng libvpx libwebp libxml \ - minizip opus poppler snappy zlib) - - # TODO: fixup gn cross, or package dev-qt/qtwebengine-gn with =ON - -DINSTALL_GN=OFF - ) - - local mygnargs=( - # prefer no dlopen where possible - link_pulseaudio=true - rtc_link_pipewire=true - ) - - if use !custom-cflags; then - strip-flags # fragile - - if is-flagq '-g?(gdb)?([2-9])'; then #914475 - replace-flags '-g?(gdb)?([2-9])' -g1 - ewarn "-g2+/-ggdb* *FLAGS replaced with -g1 (enable USE=custom-cflags to keep)" - fi - fi - - export NINJA NINJAFLAGS=$(get_NINJAOPTS) - [[ ${NINJA_VERBOSE^^} == OFF ]] || NINJAFLAGS+=" -v" - - local -x EXTRA_GN="${mygnargs[*]} ${EXTRA_GN}" - einfo "Extra Gn args: ${EXTRA_GN}" - - qt6-build_src_configure -} - -src_test() { - if [[ ${EUID} == 0 ]]; then - # almost every tests fail, so skip entirely - ewarn "Skipping tests due to running as root (chromium refuses this configuration)." - return - fi - - local CMAKE_SKIP_TESTS=( - # fails with network sandbox - tst_loadsignals - tst_qquickwebengineview - tst_qwebengineview - # certs verfication seems flaky and gives expiration warnings - tst_qwebengineclientcertificatestore - # test is misperformed when qtbase is built USE=-test? - tst_touchinput - ) - - # prevent using the system's qtwebengine - # (use glob to avoid unnecessary complications with arch dir) - local resources=( "${BUILD_DIR}/src/core/${CMAKE_BUILD_TYPE}/"* ) - [[ -d ${resources[0]} ]] || die "invalid resources path: ${resources[0]}" - local -x QTWEBENGINEPROCESS_PATH=${BUILD_DIR}${QT6_LIBEXECDIR#"${QT6_PREFIX}"}/QtWebEngineProcess - local -x QTWEBENGINE_LOCALES_PATH=${resources[0]}/qtwebengine_locales - local -x QTWEBENGINE_RESOURCES_PATH=${resources[0]} - - # random failures in several tests without -j1 - qt6-build_src_test -j1 -} - -pkg_postinst() { - # plugin may also be found in $HOME if provided by chrome or firefox - use amd64 && - optfeature "Widevine DRM support (protected media playback)" \ - www-plugins/chrome-binary-plugins - - elog - elog "This version of Qt WebEngine is based on Chromium version ${QT6_CHROMIUM_VER}, with" - elog "additional security fixes up to ${QT6_CHROMIUM_PATCHES_VER}. Extensive as it is, the" - elog "list of backports is impossible to evaluate, but always bound to be behind" - elog "Chromium's release schedule." - elog - elog "In addition, various online services may deny service based on an outdated" - elog "user agent version (and/or other checks). Google is already known to do so." - elog - elog "tl;dr your web browsing experience will be compromised." -} |