Uploaded image for project: ' AGL Development'
  1. AGL Development
  2. SPEC-3215

Exposing/exporting the wl_display from chromium68 to WAM

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Icon: Minor Minor
    • None
    • None
    • None

      I'm looking into a way to expose/export the wl_display from chromium68 such that WAM uses it to retrieve the registry with the advertised interfaces from the compositor. I need that in order to further bind to a private extension the compositor is using.

      I've, so far, unsuccessfully used the following: https://paste.debian.net/1132439

       

      diff --git a/src/webos/webos_platform.cc b/src/webos/webos_platform.cc
      index 447c38ccf..91c8387c4 100644
      --- a/src/webos/webos_platform.cc
      +++ b/src/webos/webos_platform.cc
      @@ -71,6 +71,16 @@ InputPointer* WebOSPlatform::GetInputPointer() {
       return input_pointer_;
       }
       
      +void *WebOSPlatform::GetPlatformDisplay() {
      +#if defined(OS_WEBOS)
      + ozonewayland::WaylandDisplay *display =
      + ozonewayland::WaylandDisplay::GetInstance();
      + return static_cast<void *>(display->display());
      +#else
      + return nullptr;
      +#endif
      +}
      +
       void WebOSPlatform::SetInputRegion(unsigned handle,
       const std::vector<gfx::Rect>& region) {
       #if defined(OS_WEBOS)

       

      That is, to add a void *WebOSPlatform::GetPlatformDisplay() method which relies on using  ozonewayland::WaylandDisplay::GetInstance()->display() but it turns out that the  OS_WEBOS macro is not defined. 

      I'm using the following args.gn file to build it locally:

      enable_memorymanager_webapi = false
      ffmpeg_branding = "Chrome"
      host_os = "linux"
      ozone_auto_platforms = false
      proprietary_codecs = true
      target_os = "linux"
      treat_warnings_as_errors = false
      is_agl = true
      #is_webos = false
      use_cbe = true
      is_chrome_cbe = true
      use_cups = false
      use_custom_libcxx = false
      use_kerberos = false
      use_neva_media = false
      use_ozone = true
      use_xkbcommon = true
      use_pmlog = false
      use_system_debugger_abort = true
      use_webos_gpu_info_collector = false
      remove_webcore_debug_symbols = true
      use_jumbo_build = true
      jumbo_file_merge_limit = 8
      use_lttng = false
      ozone_platform_wayland_external = false
      ozone_platform_wayland = true
      use_system_minigbm = true
      is_debug = false
      is_official_build = true
      is_cfi = false
      symbol_level = 0
      use_sysroot = false
      #custom_toolchain = "//build/toolchain/yocto:yocto_target"
      gold_path = ""
      #host_toolchain = "//build/toolchain/yocto:yocto_native"
      is_clang = false
      #clang_base_path = "/shared/workspace_agl/qemux86-64/tmp/work/corei7-64-agl-linux/chromium68/git-r0/recipe-sysroot-native/usr/bin"
      clang_use_chrome_plugins = false
      linux_use_bundled_binutils = false
      target_cpu = "x64"
      #v8_snapshot_toolchain = "//build/toolchain/yocto:yocto_target"
      enable_nacl = false
      disable_ftp_support = true
      enable_print_preview = false
      enable_remoting = false
      use_glib = true
      use_gnome_keyring = false
      use_pulseaudio = false
      use_gold = false
      

      Also, if I try to use ozonewayland::WaylandDisplay::GetInstance() outside the WEBOS macro I get a linker error that the ozonewayland::WaylandDisplay::instance_ symbol is not defined.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            ltilve Lorenzo Tilve
            mvlad Marius Vlad
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: