summaryrefslogtreecommitdiffstats
path: root/components/mus/ws/test_utils.cc
diff options
context:
space:
mode:
authorjonross <jonross@chromium.org>2016-03-22 10:40:04 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-22 17:42:27 +0000
commita3e8ee8bca171e70a591d8ef4927cae08e9484cc (patch)
treee47d398719e5c8b0d07c84d5472f6cb1b50d2d19 /components/mus/ws/test_utils.cc
parent4dc1dc6668a87620574dd43392046c3691914da2 (diff)
downloadchromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.zip
chromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.tar.gz
chromium_src-a3e8ee8bca171e70a591d8ef4927cae08e9484cc.tar.bz2
Mus Window Server Post Target Accelerators
Implement post-target accelerators in the mus window server. EventDispatcher's EventMatcher class has been refactored out into Accelerator. This provides a WeakPtr, as accelerators can be deleted by the client while the window server is awaiting an event ack. We don't want to notify a now deleted accelerator. Updated EventDispatcher to send post-targer accelerators to its delegate. Updated WindowManagerState to track accelerators awaiting event acks. On unhandled event acks the accelerator is sent. TEST=EventDispatcherTest, WindowManagerStateTest, manual testing of a post-target accelerator BUG=560478 Review URL: https://codereview.chromium.org/1806413003 Cr-Commit-Position: refs/heads/master@{#382600}
Diffstat (limited to 'components/mus/ws/test_utils.cc')
-rw-r--r--components/mus/ws/test_utils.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/components/mus/ws/test_utils.cc b/components/mus/ws/test_utils.cc
index 87b517c..4201f94 100644
--- a/components/mus/ws/test_utils.cc
+++ b/components/mus/ws/test_utils.cc
@@ -7,8 +7,10 @@
#include "cc/output/copy_output_request.h"
#include "components/mus/surfaces/surfaces_state.h"
#include "components/mus/ws/display_binding.h"
+#include "components/mus/ws/window_manager_access_policy.h"
#include "components/mus/ws/window_manager_factory_service.h"
#include "mojo/converters/geometry/geometry_type_converters.h"
+#include "mojo/shell/public/interfaces/connector.mojom.h"
namespace mus {
namespace ws {
@@ -112,6 +114,28 @@ int EventDispatcherTestApi::NumberPointerTargetsForWindow(
return count;
}
+// TestDisplayBinding ---------------------------------------------------------
+
+WindowTree* TestDisplayBinding::CreateWindowTree(ServerWindow* root) {
+ return window_server_->EmbedAtWindow(
+ root, mojo::shell::mojom::kRootUserID, mus::mojom::WindowTreeClientPtr(),
+ make_scoped_ptr(new WindowManagerAccessPolicy));
+}
+
+// TestWindowManager ----------------------------------------------------------
+
+void TestWindowManager::WmCreateTopLevelWindow(
+ uint32_t change_id,
+ mojo::Map<mojo::String, mojo::Array<uint8_t>> properties) {
+ got_create_top_level_window_ = true;
+ change_id_ = change_id;
+}
+
+void TestWindowManager::OnAccelerator(uint32_t id, mojom::EventPtr event) {
+ on_accelerator_called_ = true;
+ on_accelerator_id_ = id;
+}
+
// TestWindowTreeClient -------------------------------------------------------
TestWindowTreeClient::TestWindowTreeClient()