Changeset 242709 in webkit


Ignore:
Timestamp:
Mar 11, 2019 9:47:21 AM (5 years ago)
Author:
Michael Catanzaro
Message:

[WPE] Enable web process sandbox
https://bugs.webkit.org/show_bug.cgi?id=195169

Reviewed by Daniel Bates.

.:

  • Source/cmake/BubblewrapSandboxChecks.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

Tools:

  • wpe/install-dependencies:
  • wpe/jhbuild.modules:
Location:
trunk
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r242593 r242709  
     12019-03-11  Michael Catanzaro  <mcatanzaro@igalia.com>
     2
     3        [WPE] Enable web process sandbox
     4        https://bugs.webkit.org/show_bug.cgi?id=195169
     5
     6        Reviewed by Daniel Bates.
     7
     8        * Source/cmake/BubblewrapSandboxChecks.cmake: Added.
     9        * Source/cmake/OptionsGTK.cmake:
     10        * Source/cmake/OptionsWPE.cmake:
     11
    1122019-03-07  Commit Queue  <commit-queue@webkit.org>
    213
  • trunk/Source/WebKit/ChangeLog

    r242705 r242709  
     12019-03-11  Michael Catanzaro  <mcatanzaro@igalia.com>
     2
     3        [WPE] Enable web process sandbox
     4        https://bugs.webkit.org/show_bug.cgi?id=195169
     5
     6        Reviewed by Daniel Bates.
     7
     8        * PlatformWPE.cmake:
     9        * UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
     10        (WebKit::bubblewrapSpawn):
     11
    1122019-03-11  Truitt Savell  <tsavell@apple.com>
    213
  • trunk/Source/WebKit/PlatformWPE.cmake

    r242593 r242709  
    1717add_definitions(-DWEBKIT2_COMPILATION)
    1818
     19add_definitions(-DLIBDIR="${LIB_INSTALL_DIR}")
    1920add_definitions(-DPKGLIBDIR="${LIB_INSTALL_DIR}/wpe-webkit-${WPE_API_VERSION}")
    2021add_definitions(-DPKGLIBEXECDIR="${LIBEXEC_INSTALL_DIR}")
     
    280281    ${GSTREAMER_INCLUDE_DIRS}
    281282    ${HARFBUZZ_INCLUDE_DIRS}
     283    ${LIBSECCOMP_INCLUDE_DIRS}
    282284    ${LIBSOUP_INCLUDE_DIRS}
    283285    ${WPE_INCLUDE_DIRS}
     
    292294        ${GSTREAMER_LIBRARIES}
    293295        ${HARFBUZZ_LIBRARIES}
     296        ${LIBSECCOMP_LIBRARIES}
    294297        ${LIBSOUP_LIBRARIES}
    295298        ${WPE_LIBRARIES}
  • trunk/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp

    r242593 r242709  
    669669    ASSERT(launcher);
    670670
     671#if ENABLE(NETSCAPE_PLUGIN_API)
    671672    // It is impossible to know what access arbitrary plugins need and since it is for legacy
    672673    // reasons lets just leave it unsandboxed.
     
    674675        || launchOptions.processType == ProcessLauncher::ProcessType::Plugin32)
    675676        return adoptGRef(g_subprocess_launcher_spawnv(launcher, argv, error));
     677#endif
    676678
    677679    // For now we are just considering the network process trusted as it
  • trunk/Source/cmake/OptionsGTK.cmake

    r242593 r242709  
    124124    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC ON)
    125125else ()
    126     WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PRIVATE OFF)
     126    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC OFF)
    127127endif ()
    128128
     
    214214        message(FATAL_ERROR "CairoGL is needed for ENABLE_ACCELERATED_2D_CANVAS")
    215215    endif ()
    216 endif ()
    217 
    218 if (ENABLE_BUBBLEWRAP_SANDBOX)
    219     find_program(BWRAP_EXECUTABLE bwrap)
    220     if (NOT BWRAP_EXECUTABLE)
    221         message(FATAL_ERROR "bwrap executable is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    222     endif ()
    223     add_definitions(-DBWRAP_EXECUTABLE="${BWRAP_EXECUTABLE}")
    224 
    225     execute_process(
    226         COMMAND "${BWRAP_EXECUTABLE}" --version
    227         RESULT_VARIABLE BWRAP_RET
    228         OUTPUT_VARIABLE BWRAP_OUTPUT
    229     )
    230     if (BWRAP_RET)
    231         message(FATAL_ERROR "Failed to run ${BWRAP_EXECUTABLE}")
    232     endif ()
    233     string(REGEX MATCH "([0-9]+.[0-9]+.[0-9]+)" BWRAP_VERSION "${BWRAP_OUTPUT}")
    234     if (NOT "${BWRAP_VERSION}" VERSION_GREATER_EQUAL "0.3.1")
    235         message(FATAL_ERROR "bwrap must be >= 0.3.1 but ${BWRAP_VERSION} found")
    236     endif ()
    237 
    238     find_package(Libseccomp)
    239     if (NOT LIBSECCOMP_FOUND)
    240         message(FATAL_ERROR "libseccomp is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    241     endif ()
    242 
    243     find_program(DBUS_PROXY_EXECUTABLE xdg-dbus-proxy)
    244     if (NOT DBUS_PROXY_EXECUTABLE)
    245         message(FATAL_ERROR "xdg-dbus-proxy not found and is needed for ENABLE_BUBBLEWRAP_SANDBOX")
    246     endif ()
    247     add_definitions(-DDBUS_PROXY_EXECUTABLE="${DBUS_PROXY_EXECUTABLE}")
    248216endif ()
    249217
     
    471439endmacro()
    472440
     441include(BubblewrapSandboxChecks)
    473442include(GStreamerChecks)
  • trunk/Source/cmake/OptionsWPE.cmake

    r242593 r242709  
    8585    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE ON)
    8686    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC ON)
     87endif ()
     88
     89if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT EXISTS "/.flatpak-info")
     90    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC ON)
     91else ()
     92    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC OFF)
    8793endif ()
    8894
     
    184190set(WPEWebExtension_PKGCONFIG_FILE ${CMAKE_BINARY_DIR}/wpe-web-extension-${WPE_API_VERSION}.pc)
    185191
     192include(BubblewrapSandboxChecks)
    186193include(GStreamerChecks)
  • trunk/Tools/ChangeLog

    r242708 r242709  
     12019-03-11  Michael Catanzaro  <mcatanzaro@igalia.com>
     2
     3        [WPE] Enable web process sandbox
     4        https://bugs.webkit.org/show_bug.cgi?id=195169
     5
     6        Reviewed by Daniel Bates.
     7
     8        * wpe/install-dependencies:
     9        * wpe/jhbuild.modules:
     10
    1112019-03-11  Aakash Jain  <aakash_jain@apple.com>
    212
  • trunk/Tools/wpe/install-dependencies

    r242593 r242709  
    5959        autopoint \
    6060        autotools-dev \
     61        bubblewrap \
    6162        cmake \
    6263        g++ \
     
    7879        libfile-copy-recursive-perl \
    7980        $(aptIfElse libpng-dev libpng12-dev) \
     81        libseccomp-dev \
    8082        libsqlite3-dev \
    8183        libtasn1-6-dev \
     
    149151        autoconf \
    150152        automake \
     153        bubblewrap \
    151154        cmake \
    152155        file \
     
    169172        libjpeg-turbo \
    170173        libpng \
     174        libseccomp \
    171175        libtasn1 \
    172176        libtool \
     
    248252        automake \
    249253        alsa-lib-devel \
     254        bubblewrap \
    250255        cmake \
    251256        gcc-c++ \
     
    262267        libjpeg-turbo-devel \
    263268        libpng-devel \
     269        libseccomp-devel \
    264270        libtasn1-devel \
    265271        libtool \
  • trunk/Tools/wpe/jhbuild.modules

    r242593 r242709  
    2727      <dep package="wayland-protocols"/>
    2828      <dep package="openjpeg"/>
     29      <dep package="xdg-dbus-proxy"/>
    2930    </dependencies>
    3031  </metamodule>
     
    266267  </distutils>
    267268
     269  <autotools id="xdg-dbus-proxy" autogen-sh="configure">
     270    <branch repo="github-tarball"
     271            version="0.1.0"
     272            module="flatpak/xdg-dbus-proxy/releases/download/${version}/xdg-dbus-proxy-${version}.tar.xz"
     273            checkoutdir="xdg-dbus-proxy-${version}"
     274            hash="sha256:9eefd30fe66940c8daf0e8ce6479307694814edb8b636caeb5aa6d6a46a4bc14"/>
     275    <dependencies>
     276      <dep package="glib"/>
     277    </dependencies>
     278  </autotools>
     279
    268280</moduleset>
Note: See TracChangeset for help on using the changeset viewer.