0
Files
android_webview
apps
ash
base
build
build_overrides
buildtools
cc
chrome
chromecast
chromeos
cloud_print
codelabs
components
content
courgette
crypto
dbus
device
docs
extensions
fuchsia
gin
google_apis
google_update
gpu
headless
infra
ios
ipc
jingle
media
mojo
native_client_sdk
net
pdf
ppapi
printing
remoting
rlz
sandbox
services
skia
sql
storage
styleguide
testing
android
buildbot
chromoting
clusterfuzz
gmock
gtest
gtest_ios
iossim
libfuzzer
merge_scripts
perf
scripts
trigger_scripts
unexpected_passes_common
variations
BUILD.gn
DIR_METADATA
OWNERS
PRESUBMIT.py
coverage_util_ios.h
coverage_util_ios.mm
empty_main.cc
generate_location_tags.py
gtest_mac.h
gtest_mac.mm
gtest_mac_unittest.mm
multiprocess_func_list.cc
multiprocess_func_list.h
platform_test.h
platform_test_mac.mm
run_with_dummy_home.py
test.gni
test_env.py
test_env_test_script.py
test_env_unittest.py
test_env_user_script.py
xvfb.py
xvfb_test_script.py
xvfb_unittest.py
third_party
tools
ui
url
weblayer
.clang-format
.clang-tidy
.eslintrc.js
.git-blame-ignore-revs
.gitattributes
.gitignore
.gn
.mailmap
.vpython
.vpython3
.yapfignore
AUTHORS
BUILD.gn
CODE_OF_CONDUCT.md
DEPS
DIR_METADATA
ENG_REVIEW_OWNERS
LICENSE
LICENSE.chromium_os
OWNERS
PRESUBMIT.py
PRESUBMIT_test.py
PRESUBMIT_test_mocks.py
README.md
WATCHLISTS
codereview.settings
src/testing/xvfb_test_script.py
Tom Anderson b936950aa0 Remove complex GPU->Browser IPC for obtaining GL-compatible visuals
When GLVisualPickerGLX was written, the only way of obtaining
GL-compatible visuals was with libGLX, which loads the GPU driver.
This forced us to rely on the GPU process sending the visuals to the
browser process, which comes with a significant amount of complexity.
Now that we've switched to XProto, we can use x11::Glx to obtain the
visuals, which doesn't require loading the GPU driver.  This allows
us to simplify the visual loading code.

In addition, now that the transparent visual is available early, it
can be used as the visual for browser windows.  This can allow us to
remove usage of the XShape extension which we were using to "cut off"
a few pixels around the corners to give the appearance of rounded
corners.  This solution is not ideal since it:
  1. causes a performance hit on some environments (GNOME/Mutter)
  2. prevents the WM from drawing a shadow on the window
  3. doesn't antialias the corners
Using a transparent visual will solve all 3 issues.  However, we'll
have to draw client-side shadows (just like GTK does).

R=sky

Bug: 650494,811515,1198080
Change-Id: Ie518dfe489d3ba0af9ca73c80cc10792a4214838
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2895228
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Emily Stark <estark@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#884257}
2021-05-19 01:06:40 +00:00

31 lines
799 B
Python
Executable File

#!/usr/bin/env python
# Copyright (c) 2019 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.
"""Simple script for xvfb_unittest to launch.
This script outputs formatted data to stdout for the xvfb unit tests
to read and compare with expected output.
"""
import os
import signal
import sys
import time
def print_signal(sig, *_):
print 'Signal :{}'.format(sig)
if __name__ == '__main__':
signal.signal(signal.SIGTERM, print_signal)
signal.signal(signal.SIGINT, print_signal)
# test the subprocess display number.
print 'Display :{}'.format(os.environ.get('DISPLAY', 'None'))
if len(sys.argv) > 1 and sys.argv[1] == '--sleep':
time.sleep(2) # gives process time to receive signal.