Coder Social home page Coder Social logo

igalia / chromium Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mirror/chromium

115.0 115.0 16.0 10.69 GB

Old repo. See https://crbug.com/578890 instead.

Home Page: https://chromium.googlesource.com/chromium/src.git

License: BSD 3-Clause "New" or "Revised" License

chromium's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chromium's Issues

Assertion hit: try to close last tab (control + w) , with at least one another window still opened.

  • open a window.
  • open another (control + n)
  • close the window just opened (control + w):

[16437:16437:0611/231651.368268:19670950472:FATAL:window_manager_state.cc(726)] Check failed: tree.
#0 0x55c955a1c727 base::debug::StackTrace::StackTrace()
#1 0x55c955a365ad logging::LogMessage::~LogMessage()
#2 0x55c958b4e0b8 ui::ws::WindowManagerState::GetEventTargetClientId()
#3 0x55c958b67968 ui::ws::EventDispatcher::ProcessKeyEvent()
#4 0x55c958b67895 ui::ws::EventDispatcher::ProcessEvent()
#5 0x55c958b4c413 ui::ws::WindowManagerState::ProcessEventImpl()
#6 0x55c958b4c19d ui::ws::WindowManagerState::ProcessEvent()
#7 0x55c958b65e09 ui::ws::Display::OnEventFromSource()
#8 0x55c958d50666 ui::EventSource::SendEventToSink()
#9 0x55c958b6c2eb ui::ws::PlatformDisplayDefault::DispatchEvent()
#10 0x55c95663d179 ui::DispatchEventFromNativeUiEvent()
#11 0x55c9566fb57e ui::X11WindowOzone::DispatchEvent()
#12 0x55c9566fb71d ui::X11WindowOzone::DispatchEvent()
#13 0x55c956618a46 ui::PlatformEventSource::DispatchEvent()
#14 0x55c9566edd4d ui::X11EventSourceLibevent::ProcessXEvent()
#15 0x55c9566eea3c ui::X11EventSource::ExtractCookieDataDispatchEvent()
#16 0x55c9566ee9dd ui::X11EventSource::DispatchXEvents()
#17 0x55c955a403b0 base::MessagePumpLibevent::OnLibeventNotification()
#18 0x55c955ae781d event_base_loop
#19 0x55c955a40716 base::MessagePumpLibevent::Run()
#20 0x55c955a3d592 base::MessageLoop::Run()
#21 0x55c955a66737 base::RunLoop::Run()
#22 0x55c9555fc4bf _ZN4base8internal7InvokerINS0_9BindStateIZN15service_manager12_GLOBAL__N_110RunServiceEPNS3_12MainDelegateEE3$0JS6_PiEEEFvN4mojo16InterfaceRequestINS3_5mojom7ServiceEEEEE3RunEPNS0_13BindStateBaseEOSE
#23 0x55c954066a7a service_manager::RunStandaloneService()
#24 0x55c9555fbf62 service_manager::Main()
#25 0x55c9555dd1d2 content::ContentMain()
#26 0x55c953c95ebd ChromeMain
#27 0x7f0513e883f1 __libc_start_main
#28 0x55c953c95cfd

implement file picker

[5648:5648:0512/104157.399526:ERROR:shell_dialog_linux.cc(30)] Not implemented reached in ui::SelectFileDialog *ui::CreateSelectFileDialog(SelectFileDialog::Listener *, ui::SelectFilePolicy *)

Fix base_unittests on our branch

At the moment, we have base_unittests failing. Investigate what is the issue.

[2490/2490] ThreadCollisionTest.MTSynchedScopedRecursiveBookCriticalSectionTest (4001 ms)
Retrying 1 test (retry #1)
[16259:16282:0420/094925.059386:2632933131:ERROR:kill_posix.cc(84)] Unable to terminate process group 18920: No such process
[ RUN ] ProcessUtilTest.CloneFlags
[18920:18920:0420/094924.969529:2632843273:ERROR:launch_posix.cc(374)] fork: Operation not permitted
../../base/process/process_util_unittest.cc:982: Failure
Value of: spawn_child.process.IsValid()
Actual: false
Expected: true
[ FAILED ] ProcessUtilTest.CloneFlags (0 ms)
[2491/2491] ProcessUtilTest.CloneFlags (0 ms)
Retrying 1 test (retry #2)
[16259:16280:0420/094925.322549:2633196293:ERROR:kill_posix.cc(84)] Unable to terminate process group 18921: No such process
[ RUN ] ProcessUtilTest.CloneFlags
[18921:18921:0420/094925.280112:2633153851:ERROR:launch_posix.cc(374)] fork: Operation not permitted
../../base/process/process_util_unittest.cc:982: Failure
Value of: spawn_child.process.IsValid()
Actual: false
Expected: true
[ FAILED ] ProcessUtilTest.CloneFlags (1 ms)
[2492/2492] ProcessUtilTest.CloneFlags (1 ms)
Retrying 1 test (retry #3)
[16259:16332:0420/094925.585149:2633458890:ERROR:kill_posix.cc(84)] Unable to terminate process group 18922: No such process
[ RUN ] ProcessUtilTest.CloneFlags
[18922:18922:0420/094925.558227:2633431966:ERROR:launch_posix.cc(374)] fork: Operation not permitted
../../base/process/process_util_unittest.cc:982: Failure
Value of: spawn_child.process.IsValid()
Actual: false
Expected: true
[ FAILED ] ProcessUtilTest.CloneFlags (0 ms)
[2493/2493] ProcessUtilTest.CloneFlags (0 ms)
1 test failed:
ProcessUtilTest.CloneFlags (../../base/process/process_util_unittest.cc:969)

Assertion hit: Try to send private message on Twitter

  • log in to twitter.com
  • try to send a message to someone (click on the "messages" link at the top)
  • click on an existing message thread with another user.

First the following error is seen on the screen:

[34647:34647:0607/105659.686877:190360137643:ERROR:validation_errors.cc(87)] Invalid message: VALIDATION_ERROR_UNKNOWN_ENUM_VALUE

And it seems like the browser gets frozen. If I unfocus the window (alt+tab), then it hits an assert:

[34647:34647:0607/105732.771288:190393222045:FATAL:window_server.cc(224)] Check failed: 1u <= tree_map_.size() (1 vs. 0)
#0 0x56292662fb47 base::debug::StackTrace::StackTrace()
#1 0x5629266499ad logging::LogMessage::~LogMessage()
#2 0x5629297b0e3b ui::ws::WindowServer::GetTreeForExternalWindowMode()
#3 0x5629297c5b90 ui::ws::Display::OnWindowStateChanged()
#4 0x562927311428 ui::X11WindowBase::OnWMStateUpdated()
#5 0x562927311190 ui::X11WindowBase::ProcessXWindowEvent()
#6 0x562927312138 ui::X11WindowOzone::DispatchXEvent()
#7 0x5629273048d3 ui::X11EventSourceLibevent::DispatchXEventToXEventDispatchers()
#8 0x5629273045b1 ui::X11EventSourceLibevent::ProcessXEvent()
#9 0x562927305162 ui::X11EventSource::ExtractCookieDataDispatchEvent()
#10 0x5629273050cd ui::X11EventSource::DispatchXEvents()
#11 0x5629266535d0 base::MessagePumpLibevent::OnLibeventNotification()
#12 0x5629266fab9d event_base_loop
#13 0x562926653954 base::MessagePumpLibevent::Run()
#14 0x5629266507b2 base::MessageLoop::Run()
#15 0x562926679a77 base::RunLoop::Run()
#16 0x56292620d86f _ZN4base8internal7InvokerINS0_9BindStateIZN15service_manager12_GLOBAL__N_110RunServiceEPNS3_12MainDelegateEE3$0JS6_PiEEEFvN4mojo16InterfaceRequestINS3_5mojom7ServiceEEEEE3RunEPNS0_13BindStateBaseEOSE
#17 0x562924c3b15a service_manager::RunStandaloneService()
#18 0x56292620d312 service_manager::Main()
#19 0x5629261eeca2 content::ContentMain()
#20 0x562924879cbd ChromeMain
#21 0x7f6bc2c9e3f1 __libc_start_main
#22 0x562924879afd

Received signal 6
#0 0x56292662fb47 base::debug::StackTrace::StackTrace()
#1 0x56292662f6bf base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f6bc6e70630
#3 0x7f6bc2cb37ef gsignal
#4 0x7f6bc2cb53ea abort
#5 0x56292662e582 base::debug::BreakDebugger()
#6 0x562926649d70 logging::LogMessage::~LogMessage()
#7 0x5629297b0e3b ui::ws::WindowServer::GetTreeForExternalWindowMode()
#8 0x5629297c5b90 ui::ws::Display::OnWindowStateChanged()
#9 0x562927311428 ui::X11WindowBase::OnWMStateUpdated()
#10 0x562927311190 ui::X11WindowBase::ProcessXWindowEvent()
#11 0x562927312138 ui::X11WindowOzone::DispatchXEvent()
#12 0x5629273048d3 ui::X11EventSourceLibevent::DispatchXEventToXEventDispatchers()
#13 0x5629273045b1 ui::X11EventSourceLibevent::ProcessXEvent()
#14 0x562927305162 ui::X11EventSource::ExtractCookieDataDispatchEvent()
#15 0x5629273050cd ui::X11EventSource::DispatchXEvents()
#16 0x5629266535d0 base::MessagePumpLibevent::OnLibeventNotification()
#17 0x5629266fab9d event_base_loop
#18 0x562926653954 base::MessagePumpLibevent::Run()
#19 0x5629266507b2 base::MessageLoop::Run()
#20 0x562926679a77 base::RunLoop::Run()
#21 0x56292620d86f _ZN4base8internal7InvokerINS0_9BindStateIZN15service_manager12_GLOBAL__N_110RunServiceEPNS3_12MainDelegateEE3$0JS6_PiEEEFvN4mojo16InterfaceRequestINS3_5mojom7ServiceEEEEE3RunEPNS0_13BindStateBaseEOSE
#22 0x562924c3b15a service_manager::RunStandaloneService()
#23 0x56292620d312 service_manager::Main()
#24 0x5629261eeca2 content::ContentMain()
#25 0x562924879cbd ChromeMain
#26 0x7f6bc2c9e3f1 __libc_start_m

git cl format

I'm not sure all our changes have been validated with "git cl format". At least in "services/ui/ws/", the script applies change to BUILD, window_tree_host_factory and window_tree_host_factory_registrar.

Implement proper support fullscreen

right now our fullscreen support works as if we were in internal window mode. the chrome window hides all decorations, and maximizes itself within the outer native window.

we should support regular style fullscreen support.

"Handle OnBoundsChange in external mode. (#8)" crashes on me often

#0 0x55c7f3abdd27 base::debug::StackTrace::StackTrace()
#1 0x55c7f3abd89f base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f9365fdd630
#3 0x55c7f45ed613 ui::OSExchangeData::SetString()
#4 0x55c7f75d90a1 ui::ws::PlatformDisplayDefault::SetCursorById()
#5 0x55c7f75d328c ui::ws::Display::UpdateNativeCursor()
#6 0x55c7f75dc65a ui::ws::ServerWindow::SetBounds()
#7 0x55c7f75d3c3d ui::ws::Display::OnBoundsChangedImpl()
#8 0x55c7f46ed4e6 ui::X11WindowBase::ProcessXWindowEvent()
#9 0x55c7f46edeb8 ui::X11WindowOzone::DispatchXEvent()
#10 0x55c7f46e1493 ui::X11EventSourceLibevent::DispatchXEventToXEventDispatchers()
#11 0x55c7f46e110e ui::X11EventSourceLibevent::ProcessXEvent()
#12 0x55c7f46e1d22 ui::X11EventSource::ExtractCookieDataDispatchEvent()
#13 0x55c7f46e1d7f ui::X11EventSource::BlockUntilWindowMapped()
#14 0x55c7f46ecf78 ui::X11WindowBase::Show()
#15 0x55c7f75d8fc6 ui::ws::PlatformDisplayDefault::Init()
#16 0x55c7f75d2b20 ui::ws::Display::Init()
#17 0x55c7f75e08f4 ui::ws::WindowTreeHostFactory::CreatePlatformWindow()
#18 0x55c7f2081e6f ui::mojom::WindowTreeHostFactoryStubDispatch::Accept()
#19 0x55c7f3b935aa mojo::InterfaceEndpointClient::HandleValidatedMessage()
#20 0x55c7f3ba57b6 mojo::FilterChain::Accept()
#21 0x55c7f3b9473e mojo::InterfaceEndpointClient::HandleIncomingMessage()
#22 0x55c7f3b9b63b mojo::internal::MultiplexRouter::ProcessIncomingMessage()
#23 0x55c7f3b9ae55 mojo::internal::MultiplexRouter::Accept()
#24 0x55c7f3ba57b6 mojo::FilterChain::Accept()
#25 0x55c7f3b9185f mojo::Connector::ReadSingleMessage()
#26 0x55c7f3b91fe2 mojo::Connector::ReadAllAvailableMessages()
#27 0x55c7f3b91e4e mojo::Connector::OnHandleReadyInternal()
#28 0x55c7f3ba7302 mojo::SimpleWatcher::OnHandleReady()

Revive tooltips

In PR #85 , we disabled tooltips again.

Although PR #84 could fix most of the widgets we see in chrome (bookmark banner; url autocompletion, status bubble, zoom in/out banners), tooltips are still special.

in x11/chrome they require a native x11, and continue to do so in chrome/mus. However, it does not pass in the bounds upon creation, and this a use case we do not support yet.

It should get fixed at some point.

Umbrella for adding touchscreen support

That is, touchscreen events are not handled. Fix that!

Update(12.10.2017): touchscreen is now supported, but there might be some bugs in the implementation.
Now this bug is a tracker for other bugs related to touchscreen bugs if any.

Disallow to make submenu windows by hovering into a main menu in wayland

The way to create a menu window, which would be properly placed in regards of a main window, is to use an xdg_popup, but Wayland creates xdg_popups by taking a serial number of a certain event as a parameter. Those event are touch and press events. Leave/Enter events' serial won't work there.

Instead, allow chrome to create submenu only after clicking on menu.

https://people.freedesktop.org/~whot/wayland-doxygen/wayland-protocols/Server/structxdg__shell__interface.html#aa5ab7b36ab8e2a5523ee1976d2d7bf56

ozone/chromeos compilation is broken

$ time ninja -C out/ozone/chrome_os chrome mash:all ozone_unittests services/ui/demo/ services_unittests
ninja: Entering directory `out/ozone/chrome_os'
[707/1629] CXX obj/services/ui/display/tests/screen_manager_ozone_internal_unittests.o
FAILED: obj/services/ui/display/tests/screen_manager_ozone_internal_unittests.o
../../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/services/ui/display/tests/screen_manager_ozone_internal_unittests.o.d -DV8_DEPRECATION_WARNINGS -DDCHECK_ALWAYS_ON=1 -DUSE_UDEV -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DDISABLE_NACL -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION="303910-1" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DOS_CHROMEOS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DANGLE_ENABLE_RELEASE_ASSERTS -DGTEST_API_= -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -DUNIT_TEST -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DENABLE_IPC_FUZZER -DMESA_EGL_NO_X11_HEADERS -I../../.. -Igen -I../../../third_party/libwebp -I../../../third_party/khronos -I../../../gpu -I../../../third_party/googletest/src/googletest/include -I../../../third_party/ced/src -I../../../third_party/icu/source/common -I../../../third_party/icu/source/i18n -I../../../third_party/googletest/custom -I../../../third_party/googletest/src/googlemock/include -I../../../skia/config -I../../../skia/ext -I../../../third_party/skia/include/c -I../../../third_party/skia/include/config -I../../../third_party/skia/include/core -I../../../third_party/skia/include/effects -I../../../third_party/skia/include/encode -I../../../third_party/skia/include/images -I../../../third_party/skia/include/lazy -I../../../third_party/skia/include/pathops -I../../../third_party/skia/include/pdf -I../../../third_party/skia/include/pipe -I../../../third_party/skia/include/ports -I../../../third_party/skia/include/utils -I../../../third_party/skia/third_party/vulkan -I../../../third_party/skia/include/gpu -I../../../third_party/skia/src/gpu -I../../../third_party/skia/src/sksl -I../../../third_party/mesa/src/include -fno-strict-aliasing -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../../third_party/binutils/Linux_x64/Release/bin -pthread -fcolor-diagnostics -m64 -march=x86-64 -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-shift-negative-value -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g1 --sysroot=../../../build/linux/debian_jessie_amd64-sysroot -fvisibility=hidden -Xclang -load -Xclang ../../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-auto-raw-pointer -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -std=gnu++11 -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -c ../../../services/ui/display/screen_manager_ozone_internal_unittests.cc -o obj/services/ui/display/tests/screen_manager_ozone_internal_unittests.o
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:192:29: error: field type 'display::(anonymous namespace)::TestScreenManagerDelegate' is an abstract class
TestScreenManagerDelegate delegate_;
^
../../../services/ui/display/screen_manager_delegate.h:37:16: note: unimplemented pure virtual method 'OnHostDisplaysReady' in 'TestScreenManagerDelegate'
virtual void OnHostDisplaysReady(const ui::ws::UserId& user_id) = 0;
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:137:5: error: cannot initialize object parameter of type 'ui::TaskRunnerTestBase' with an expression of type 'display::ScreenManagerOzoneInternalTest'
RunAllTasks();
^~~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:143:5: error: cannot initialize object parameter of type 'ui::TaskRunnerTestBase' with an expression of type 'display::ScreenManagerOzoneInternalTest'
RunAllTasks();
^~~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:153:25: error: cannot initialize object parameter of type 'ui::TaskRunnerTestBase' with an expression of type 'display::ScreenManagerOzoneInternalTest'
TaskRunnerTestBase::SetUp();
^~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:175:5: error: cannot initialize object parameter of type 'ui::TaskRunnerTestBase' with an expression of type 'display::ScreenManagerOzoneInternalTest'
RunAllTasks();
^~~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:197:3: error: no matching member function for call to 'AddDisplay'
AddDisplay(FakeDisplaySnapshot::Builder()
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:135:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_AddDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(std::unique_ptr snapshot) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:128:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_AddDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(int64_t id) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:203:25: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_AddDisplay_Test'
EXPECT_EQ("Added(2)", delegate()->changes());
^~~~~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest.h:1925:29: note: expanded from macro 'EXPECT_EQ'
val1, val2)
^~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:162:40: note: expanded from macro 'EXPECT_PRED_FORMAT2'
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:147:43: note: expanded from macro 'GTEST_PRED_FORMAT2_'
GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:204:15: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_AddDisplay_Test'
EXPECT_THAT(delegate()->added()[0], DisplayPixelSizeIs("1600x900"));
^~~~~~~~
../../../third_party/googletest/src/googlemock/include/gmock/gmock-matchers.h:4389:70: note: expanded from macro 'EXPECT_THAT'
::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
^~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:114:36: note: expanded from macro 'EXPECT_PRED_FORMAT1'
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:101:34: note: expanded from macro 'GTEST_PRED_FORMAT1_'
GTEST_ASSERT_(pred_format(#v1, v1),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:205:15: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_AddDisplay_Test'
EXPECT_THAT(delegate()->added()[0], DisplayBoundsIs("1024,0 1600x900"));
^~~~~~~~
../../../third_party/googletest/src/googlemock/include/gmock/gmock-matchers.h:4389:70: note: expanded from macro 'EXPECT_THAT'
::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
^~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:114:36: note: expanded from macro 'EXPECT_PRED_FORMAT1'
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:101:34: note: expanded from macro 'GTEST_PRED_FORMAT1_'
GTEST_ASSERT_(pred_format(#v1, v1),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:209:3: error: no matching member function for call to 'AddDisplay'
AddDisplay(2);
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:128:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_RemoveDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(int64_t id) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:135:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_RemoveDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(std::unique_ptr snapshot) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:210:3: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_RemoveDisplay_Test'
delegate()->Reset();
^~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:212:3: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_RemoveDisplay_Test'
RemoveDisplay(2);
^~~~~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:215:27: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_RemoveDisplay_Test'
EXPECT_EQ("Removed(2)", delegate()->changes());
^~~~~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest.h:1925:29: note: expanded from macro 'EXPECT_EQ'
val1, val2)
^~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:162:40: note: expanded from macro 'EXPECT_PRED_FORMAT2'
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:147:43: note: expanded from macro 'GTEST_PRED_FORMAT2_'
GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:219:3: error: no matching member function for call to 'AddDisplay'
AddDisplay(2);
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:128:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(int64_t id) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:135:8: note: candidate function not viable: no known conversion from 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test' to 'display::ScreenManagerOzoneInternalTest' for object argument
void AddDisplay(std::unique_ptr snapshot) {
^
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:220:3: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test'
delegate()->Reset();
^~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:222:3: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test'
RemoveDisplay(1);
^~~~~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:226:50: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test'
EXPECT_EQ("Removed(1);Modified(2);Primary(2)", delegate()->changes());
^~~~~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest.h:1925:29: note: expanded from macro 'EXPECT_EQ'
val1, val2)
^~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:162:40: note: expanded from macro 'EXPECT_PRED_FORMAT2'
GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:147:43: note: expanded from macro 'GTEST_PRED_FORMAT2_'
GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:227:15: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test'
ASSERT_THAT(delegate()->modified(), SizeIs(1));
^~~~~~~~
../../../third_party/googletest/src/googlemock/include/gmock/gmock-matchers.h:4387:70: note: expanded from macro 'ASSERT_THAT'
::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
^~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:118:36: note: expanded from macro 'ASSERT_PRED_FORMAT1'
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_FATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:101:34: note: expanded from macro 'GTEST_PRED_FORMAT1_'
GTEST_ASSERT_(pred_format(#v1, v1),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
../../../services/ui/display/screen_manager_ozone_internal_unittests.cc:228:15: error: cannot initialize object parameter of type 'display::ScreenManagerOzoneInternalTest' with an expression of type 'display::ScreenManagerOzoneInternalTest_DISABLED_RemovePrimaryDisplay_Test'
EXPECT_THAT(delegate()->modified()[0], DisplayIdIs(2));
^~~~~~~~
../../../third_party/googletest/src/googlemock/include/gmock/gmock-matchers.h:4389:70: note: expanded from macro 'EXPECT_THAT'
::testing::internal::MakePredicateFormatterFromMatcher(matcher), value)
^~~~~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:114:36: note: expanded from macro 'EXPECT_PRED_FORMAT1'
GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:101:34: note: expanded from macro 'GTEST_PRED_FORMAT1_'
GTEST_ASSERT_(pred_format(#v1, v1),
^~
../../../third_party/googletest/src/googletest/include/gtest/gtest_pred_impl.h:77:52: note: expanded from macro 'GTEST_ASSERT_'
if (const ::testing::AssertionResult gtest_ar = (expression))
^~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
[748/1629] CXX obj/headless/headless/headless_browser_impl.o
ninja: build stopped: subcommand failed.

Add README.md

We need a README file explaining at least how to build chromium Linux/Ozone for Wayland and X11 and to run chrome --mus. Maybe more like how to contribute etc

SetBounds (downstream) CL crashes chromeos/chrome --mash runs and linux_os/chrome --mus

ChromeOS/Mash:

$ out/ozone/chrome_os/chrome --mash --ozone-platform=x11 --user-data-dir=~/tmp-----
(...)
Received signal 11 SEGV_MAPERR 000000000000
[38214:38214:0410/094200.143797:186658622522:ERROR:wm_shell_mus.cc(257)] Not implemented reached in virtual void ash::mus::WmShellMus::RecordUserMetricsAction(ash::UserMetricsAction)
#0 0x563185fedee7 [38214:38214:0410/094200.144125:186658622851:ERROR:shell_delegate_mus.cc(121)] Not implemented reached in virtual ash::SessionStateDelegate *ash::ShellDelegateMus::CreateSessionStateDelegate()
base::debug::StackTrace::StackTrace()
#1 0x563185feda5f base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f86b2a0a630
#3 0x563186adba73 ui::OSExchangeData::SetString()
#4 0x563189efa108 ui::ws::PlatformDisplayDefault::SetCursorById()
#5 0x563189ef45bc [38214:38214:0410/094200.192509:186658671240:ERROR:wm_shell_mus.cc(202)] Not implemented reached in virtual bool ash::mus::WmShellMus::IsInUnifiedMode() const
ui::ws::Display::UpdateNativeCursor()
#6 0x563189efd25a ui::ws::ServerWindow::SetBounds()
#7 0x563189ef4f4d ui::ws::Display::OnBoundsChangedImpl()
#8 0x563186d9fcaa ui::X11WindowBase::ProcessXWindowEvent()
#9 0x563186da0648 ui::X11WindowOzone::DispatchXEvent()
#10 0x563186d943c3 ui::X11EventSourceLibevent::DispatchXEventToXEventDispatchers()
#11 0x563186d9404d ui::X11EventSourceLibevent::ProcessXEvent()
#12 0x563186d94b42 ui::X11EventSource::ExtractCookieDataDispatchEvent()
#13 0x563186d94b9f ui::X11EventSource::BlockUntilWindowMapped()
#14 0x563186d9f748 ui::X11WindowBase::Show()
#15 0x563189efa049 ui::ws::PlatformDisplayDefault::Init()
#16 0x563189ef3ea0 ui::ws::Display::Init()
#17 0x563189ed6fc4 ui::ws::DisplayManager::OnDisplayAdded()
#18 0x563185beff55 display::ScreenManagerOzoneInternal::OnDisplayAdded()
#19 0x563187efe043 display::DisplayManager::NotifyDisplayAdded()
#20 0x563187ef95d3 display::DisplayManager::UpdateDisplaysWith()
#21 0x563187ef73f1 display::DisplayManager::OnNativeDisplaysChanged()
#22 0x563187eeb473 display::DisplayChangeObserver::OnDisplayModeChanged()
#23 0x563187ef01f4 display::DisplayConfigurator::NotifyDisplayStateObservers()
#24 0x563187eee76e display::DisplayConfigurator::OnConfigured()
#25 0x563187ef0735 ZN4base8internal13FunctorTraitsIMN7display19DisplayConfiguratorEFvbRKSt6vectorIPNS2_15DisplaySnapshotESaIS6_EERKN3gfx4SizeENS2_20MultipleDisplayStateEN8chromeos17DisplayPowerStateEEvE6InvokeIRKNS_7WeakPtrIS3_EEJbSA_SE_SF_SH_EEEvSJ_OT_DpOT0
#26 0x563187ef0664 ZN4base8internal7InvokerINS0_9BindStateIMN7display19DisplayConfiguratorEFvbRKSt6vectorIPNS3_15DisplaySnapshotESaIS7_EERKN3gfx4SizeENS3_20MultipleDisplayStateEN8chromeos17DisplayPowerStateEEJNS_7WeakPtrIS4_EEEEEFvbSB_SF_SG_SI_EE3RunEPNS0_13BindStateBaseEObSB_SF_OSG_OSI
#27 0x563187ef4ec3 display::UpdateDisplayConfigurationTask::OnStateEntered()
#28 0x5631842e935e _ZN4base8internal7InvokerINS0_9BindStateIMN15service_manager14ServiceManager8InstanceEFviEJNS_7WeakPtrIS5_EEEEEFviEE3RunEPNS0_13BindStateBaseEOi
#29 0x563187f0a40e display::ConfigureDisplaysTask::Run()
#30 0x563187f0a683 display::ConfigureDisplaysTask::OnConfigured()
#31 0x563184a8dc6b _ZN4base8internal7InvokerINS0_9BindStateIMN10extensions21app_file_handler_util20IsDirectoryCollectorEFvmbEJNS_7WeakPtrIS5_EEmEEEFvbEE7RunImplIRKS7_RKSt5tupleIJS9_mEEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEEOb
#32 0x5631841aa3c8 ZN4base8internal13FunctorTraitsINS_8CallbackIFvbELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEvE6InvokeIRKS6_JRKbEEEvOT_DpOT0
#33 0x563186affbf4 display::FakeDisplayDelegate::ConfigureDone()
#34 0x563186061cb5 base::Timer::RunScheduledTask()
#35 0x563183f347e4 _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE1ELNS2_10RepeatModeE1EE3RunEv
#36 0x563186095853 base::debug::TaskAnnotator::RunTask()
#37 0x56318600d16d base::MessageLoop::RunTask()
#38 0x56318600d3f8 base::MessageLoop::DeferOrRunPendingTask()
#39 0x56318600da0c base::MessageLoop::DoDelayedWork()
#40 0x56318600fbad base::MessagePumpLibevent::Run()
#41 0x56318600cefa base::MessageLoop::RunHandler()
#42 0x5631860326bf base::RunLoop::Run()
#43 0x563183f304f3 MashRunner::StartChildApp()
#44 0x563183f31d7c ZN4base8internal7InvokerINS0_9BindStateIM10MashRunnerFvN4mojo16InterfaceRequestIN15service_manager5mojom7ServiceEEEEJNS0_17UnretainedWrapperIS3_EEEEEFvS9_EE3RunEPNS0_13BindStateBaseEOS9
#45 0x5631842fbb13 service_manager::RunStandaloneService()
#46 0x563183f2f5a7 MashRunner::RunChild()
#47 0x563183f2f4c3 MashRunner::Run()
#48 0x563183f30657 MashMain()
#49 0x563183f2d8c3 ChromeMain
#50 0x7f86aefb83f1 __libc_start_main
#51 0x563183f2d70d
r8: 0000000000000000 r9: 0000377b801c5ae0 r10: 0000000000000000 r11: 0000000000000000
r12: 0000377b80159a00 r13: 00007ffcd4e82c80 r14: 00007ffcd4e82c30 r15: 00007ffcd4e82ca0
di: 0000000000000000 si: 00007ffcd4e82c30 bp: 0000000000000001 bx: 0000377b800c1700
dx: 00000000000000a5 ax: 000056318ce80020 cx: 000000000000001e sp: 00007ffcd4e82c28
ip: 0000563186adba73 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004
trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
[38214:38214:0410/094200.498321:186658977056:ERROR:shell_delegate_mus.cc(91)] Not implemented reached in virtual void ash::ShellDelegateMus::PreShutdown()
[38214:38214:0410/094200.501335:186658980062:ERROR:wm_shell_mus.cc(361)] Not implemented reached in virtual void ash::mus::WmShellMus::RemoveDisplayObserver(ash::WmDisplayObserver *)
[38207:38207:0410/094200.514858:186658993591:ERROR:mash_runner.cc(165)] Main process exiting because service ui quit unexpectedly.
[38214:38225:0410/094200.516182:186658994910:ERROR:node_channel.cc(899)] Dropping message on closed channel.
(...)

revive status bubble

it's been forcible disabled in

StatusBubble* Browser::GetStatusBubble() {
// In kiosk and exclusive app mode, we want to always hide the status bubble.
// if (chrome::IsRunningInAppMode()) <-----
return NULL;

Remove null-checks for WindowManagerState

Now that we instance an instance by ws::Display, for mouse events handling, it is fine to remove the null checks.

Multiple patches added the null-checks, so there should be multiple "fixup!s".

fix missing window decoration (ozone/wayland)

ozone/x11 shows the native window decoration (provided by default by the window manager).

in weston (and wayland), on the other hand, window decoration can be provided by server or client sides. In the case of chrome/mus, none of providing window decoration, hence we see no title bar, nor max/min/close buttons.

Fix it.

Fix warning when building with jessie sysroot/clang

(...)
1 warning generated.
[16353/27046] CXX obj/services/ui/ws/mus_ws_unittests/window_tree_unittest.o
In file included from ../../../home/tonikitoo/Devel/chromium/src/services/ui/ws/window_tree_unittest.cc:5:
../../../home/tonikitoo/Devel/chromium/src/services/ui/ws/window_tree.h:623:36: warning: [chromium-style] WeakPtrFactory members which refer to their outer class must be the last member in the outer class definition.
base::WeakPtrFactory drag_weak_factory_;
^
1 warning generated.
[27046/27046] LINK ./chrome

Fix debug ozone build along with use_xbcommon

When Ozone Linux build is built with use_xbcommon and use_debug flags, the following errors occur -
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:19: error: undefined reference to 'xkb_keymap_mod_get_index'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:20: error: undefined reference to 'xkb_keymap_mod_get_index'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:21: error: undefined reference to 'xkb_keymap_mod_get_index'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:29: error: undefined reference to 'xkb_state_update_mask'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:35: error: undefined reference to 'xkb_state_mod_index_is_active'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:38: error: undefined reference to 'xkb_state_mod_index_is_active'
../../ui/ozone/platform/wayland/wayland_xkb_keyboard_layout_engine.cc:41: error: undefined reference to 'xkb_state_mod_index_is_active'

args.gn looks like this -
is_component_build = true
is_debug = true
dcheck_always_on = true
use_ozone = true
ozone_platform_x11 = true
ozone_platform_gbm = false
ozone_platform_wayland = true
enable_package_mash_services = true
use_xkbcommon = true
use_sysroot = false
treat_warnings_as_errors = false
is_clang = false
enable_nacl = false
remove_webcore_debug_symbols = true

Make views::Widget to distinguish mouse drag and move events

At the moment, we seem not to update is_mouse_button_pressed_ or native_widget_->HasCapture() returns false.
I guess the problem is in native_widget_->HasCapture(), because when we click on a window to get menu, capture is set to the main chrome window, which disallows menu window to set capture and grab events. And when click is released, main window removes self from capturing, but menu window is still not captured. That's my guess.

Fix that.

Crash on gmail

[14743:14743:0411/113949.258749:FATAL:cursor_factory_ozone.cc(25)] Check failed: impl_. No CursorFactoryOzone implementation set.
#0 0x55bebae268b7 base::debug::StackTrace::StackTrace()
#1 0x55bebae4072b logging::LogMessage::~LogMessage()
#2 0x55bebb9a9d28 ui::CursorFactoryOzone::GetInstance()
#3 0x55beb925cfa7 content::WebCursor::GetPlatformCursor()
#4 0x55beb925cddb content::WebCursor::GetNativeCursor()
#5 0x55beb9a2bdc8 content::RenderWidgetHostViewAura::UpdateCursorIfOverSelf()
#6 0x55beb9a2bc6f content::RenderWidgetHostViewAura::UpdateCursor()
#7 0x55beb9a21fc1 content::RenderWidgetHostImpl::SetCursor()
#8 0x55beb9a1d874 ZN3IPC8MessageTI26ViewHostMsg_SetCursor_MetaSt5tupleIJN7content9WebCursorEEEvE8DispatchINS3_20RenderWidgetHostImplES8_vMS8_FvRKS4_EEEbPKNS_7MessageEPT_PT0_PT1_T2
#9 0x55beb9a1aaa1 content::RenderWidgetHostImpl::OnMessageReceived()
#10 0x55beb9a07f3a content::RenderProcessHostImpl::OnMessageReceived()
#11 0x55bebb421e05 IPC::ChannelProxy::Context::OnDispatchMessage()
#12 0x55beb9641f6a _ZN4base8internal7InvokerINS0_9BindStateINS0_18IgnoreResultHelperIMN7content20BrowserMessageFilter8InternalEFbRKN3IPC7MessageEEEEJ13scoped_refptrIS6_ES8_EEEFvvEE3RunEPNS0_13BindStateBaseE
#13 0x55beb9183b31 _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE1ELNS2_10RepeatModeE1EE3RunEv
#14 0x55bebaed4833 base::debug::TaskAnnotator::RunTask()
#15 0x55bebae47b1d base::MessageLoop::RunTask()
#16 0x55bebae47dc8 base::MessageLoop::DeferOrRunPendingTask()
#17 0x55bebae48266 base::MessageLoop::DoWork()
#18 0x55bebae4a959 base::MessagePumpLibevent::Run()
#19 0x55bebae4787e base::MessageLoop::RunHandler()
#20 0x55bebae6e04c base::RunLoop::Run()
#21 0x55bebacf7cc4 ChromeBrowserMainParts::MainMessageLoopRun()
#22 0x55beb971e0a3 content::BrowserMainLoop::RunMainMessageLoopParts()
#23 0x55beb9720d37 content::BrowserMainRunnerImpl::Run()
#24 0x55beb9719718 content::BrowserMain()
#25 0x55bebaa0e053 content::RunNamedProcessTypeMain()
#26 0x55bebaa0ecd6 content::ContentMainRunnerImpl::Run()
#27 0x55bebc042e1f service_manager::Main()
#28 0x55bebaa0d8f2 content::ContentMain()
#29 0x55beb917cb14 ChromeMain
#30 0x7fd25e0dc3f1 __libc_start_m

hide ozone/x11 window manager title bar

when using chromium's builtin window decorations, regular x11/linux chromium builds do not show the window manager's title bar/decoration. we should do the same for ozone/x11

Make mus_ws_unittests (services_unittests now) pass

Currently the mus ws unit tests (services_unittests now) pass on ozone-wayland-dev but they do not on ozone-wayland-chrome.

One of the issue is that these tests require the window manager access policy. There are more crashes / hangs that we need to analyze.

Destroy ui::ws::Display once menu window is hidden

As of now everything is destroyed except a ws::Display. When 3dot menu or right click menu is about to be hidden, almost all of the objects are destroyed, and when it is about to be shown again, new ws::Display is created. We grow in memory and don't release this resources.

Rename Display::OnWillDestroyTree

Display::OnWillDestroyTree is a bad name for external mode since the window tree is actually destroyed once all the "displays" == "external mode windows" attached to it are closed. It should probably be called Display::OnWillBeDetachedFromTree or similar.

Check either https://codereview.chromium.org/2804403002 can be used for 'external window mode'

CL description:

Adds ability for WindowManager to create display roots

Prior to this patch mus would automatically create a Window for
each display and tell the WindowManager about it. This patch allows
the WindowManager to control this behavior so that if the
windowmanager wants to create the windows it can. In the new mode mus
still creates a window for the display, but it doesn't tell the
client. The expectation is the client eventually calls
SetDisplayRoot() with the client supplied window. When
SetDisplayRoot() is called mus wires up the window appropriately.

The expectation is ash transitions to observing newly added displays
using another mechanism and then tells mus about it.

BUG=708287
TEST=covered by tests
[email protected]

Review-Url: https://codereview.chromium.org/2804403002
Cr-Commit-Position: refs/heads/master@{#463070}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.