Commit 98ef46cc authored by erg's avatar erg Committed by Commit bot

mus: Remove window server access to clipboard and the drag clipboard.

This reverts 7d6c8b29, which made window server have access to the
clipboard, as at the time, I thought that drag and drop would read/write
to/from a dedicated drag clipboard and that the window server would have
to manipulate it. Due to timing issues, this didn't work out.

Now that we aren't using a drag clipboard as the backing for mus drag
and drop, also remove the drag clipboard from our mus clipboard
implementation.

BUG=614037

Review-Url: https://codereview.chromium.org/2339353003
Cr-Commit-Position: refs/heads/master@{#419260}
parent e1807f0b
...@@ -26,7 +26,7 @@ namespace clipboard { ...@@ -26,7 +26,7 @@ namespace clipboard {
class ClipboardImpl : public mojom::Clipboard { class ClipboardImpl : public mojom::Clipboard {
public: public:
// mojom::Clipboard exposes three possible clipboards. // mojom::Clipboard exposes three possible clipboards.
static const int kNumClipboards = 3; static const int kNumClipboards = 2;
ClipboardImpl(); ClipboardImpl();
~ClipboardImpl() override; ~ClipboardImpl() override;
......
...@@ -15,8 +15,7 @@ const string kMimeTypeURL = "text/url"; ...@@ -15,8 +15,7 @@ const string kMimeTypeURL = "text/url";
interface Clipboard { interface Clipboard {
enum Type { enum Type {
COPY_PASTE = 0, COPY_PASTE = 0,
SELECTION = 1, SELECTION = 1
DRAG = 2
}; };
// Returns a sequence number which uniquely identifies clipboard state. // Returns a sequence number which uniquely identifies clipboard state.
......
...@@ -76,6 +76,7 @@ struct Service::PendingRequest { ...@@ -76,6 +76,7 @@ struct Service::PendingRequest {
}; };
struct Service::UserState { struct Service::UserState {
std::unique_ptr<clipboard::ClipboardImpl> clipboard;
std::unique_ptr<ws::AccessibilityManager> accessibility; std::unique_ptr<ws::AccessibilityManager> accessibility;
std::unique_ptr<ws::WindowTreeHostFactory> window_tree_host_factory; std::unique_ptr<ws::WindowTreeHostFactory> window_tree_host_factory;
}; };
...@@ -269,8 +270,10 @@ void Service::Create(const shell::Identity& remote_identity, ...@@ -269,8 +270,10 @@ void Service::Create(const shell::Identity& remote_identity,
void Service::Create(const shell::Identity& remote_identity, void Service::Create(const shell::Identity& remote_identity,
mojom::ClipboardRequest request) { mojom::ClipboardRequest request) {
const ws::UserId& user_id = remote_identity.user_id(); UserState* user_state = GetUserState(remote_identity);
window_server_->GetClipboardForUser(user_id)->AddBinding(std::move(request)); if (!user_state->clipboard)
user_state->clipboard.reset(new clipboard::ClipboardImpl);
user_state->clipboard->AddBinding(std::move(request));
} }
void Service::Create(const shell::Identity& remote_identity, void Service::Create(const shell::Identity& remote_identity,
......
...@@ -129,7 +129,6 @@ static_library("lib") { ...@@ -129,7 +129,6 @@ static_library("lib") {
"//services/shell/public/cpp", "//services/shell/public/cpp",
"//services/shell/public/interfaces", "//services/shell/public/interfaces",
"//services/tracing/public/cpp", "//services/tracing/public/cpp",
"//services/ui/clipboard:lib",
"//services/ui/common:mus_common", "//services/ui/common:mus_common",
"//services/ui/display", "//services/ui/display",
"//services/ui/public/interfaces", "//services/ui/public/interfaces",
......
...@@ -248,12 +248,6 @@ void WindowServer::OnFirstWindowManagerWindowTreeFactoryReady() { ...@@ -248,12 +248,6 @@ void WindowServer::OnFirstWindowManagerWindowTreeFactoryReady() {
delegate_->CreateDefaultDisplays(); delegate_->CreateDefaultDisplays();
} }
ui::clipboard::ClipboardImpl* WindowServer::GetClipboardForUser(
const UserId& user_id) {
DCHECK_GT(clipboard_map_.count(user_id), 0u);
return clipboard_map_[user_id].get();
}
UserActivityMonitor* WindowServer::GetUserActivityMonitorForUser( UserActivityMonitor* WindowServer::GetUserActivityMonitorForUser(
const UserId& user_id) { const UserId& user_id) {
DCHECK_GT(activity_monitor_map_.count(user_id), 0u); DCHECK_GT(activity_monitor_map_.count(user_id), 0u);
...@@ -825,12 +819,10 @@ void WindowServer::OnActiveUserIdChanged(const UserId& previously_active_id, ...@@ -825,12 +819,10 @@ void WindowServer::OnActiveUserIdChanged(const UserId& previously_active_id,
void WindowServer::OnUserIdAdded(const UserId& id) { void WindowServer::OnUserIdAdded(const UserId& id) {
activity_monitor_map_[id] = base::MakeUnique<UserActivityMonitor>(nullptr); activity_monitor_map_[id] = base::MakeUnique<UserActivityMonitor>(nullptr);
clipboard_map_[id] = base::MakeUnique<clipboard::ClipboardImpl>();
} }
void WindowServer::OnUserIdRemoved(const UserId& id) { void WindowServer::OnUserIdRemoved(const UserId& id) {
activity_monitor_map_.erase(id); activity_monitor_map_.erase(id);
clipboard_map_.erase(id);
} }
} // namespace ws } // namespace ws
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "base/optional.h" #include "base/optional.h"
#include "mojo/public/cpp/bindings/array.h" #include "mojo/public/cpp/bindings/array.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "services/ui/clipboard/clipboard_impl.h"
#include "services/ui/public/interfaces/window_manager_window_tree_factory.mojom.h" #include "services/ui/public/interfaces/window_manager_window_tree_factory.mojom.h"
#include "services/ui/public/interfaces/window_tree.mojom.h" #include "services/ui/public/interfaces/window_tree.mojom.h"
#include "services/ui/public/interfaces/window_tree_host.mojom.h" #include "services/ui/public/interfaces/window_tree_host.mojom.h"
...@@ -137,8 +136,6 @@ class WindowServer : public ServerWindowDelegate, ...@@ -137,8 +136,6 @@ class WindowServer : public ServerWindowDelegate,
void OnFirstWindowManagerWindowTreeFactoryReady(); void OnFirstWindowManagerWindowTreeFactoryReady();
clipboard::ClipboardImpl* GetClipboardForUser(const UserId& user_id);
UserActivityMonitor* GetUserActivityMonitorForUser(const UserId& user_id); UserActivityMonitor* GetUserActivityMonitorForUser(const UserId& user_id);
WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set() { WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set() {
...@@ -251,8 +248,6 @@ class WindowServer : public ServerWindowDelegate, ...@@ -251,8 +248,6 @@ class WindowServer : public ServerWindowDelegate,
std::map<ClientSpecificId, std::unique_ptr<WindowTree>>; std::map<ClientSpecificId, std::unique_ptr<WindowTree>>;
using UserActivityMonitorMap = using UserActivityMonitorMap =
std::map<UserId, std::unique_ptr<UserActivityMonitor>>; std::map<UserId, std::unique_ptr<UserActivityMonitor>>;
using UserClipboardMap =
std::map<UserId, std::unique_ptr<ui::clipboard::ClipboardImpl>>;
struct InFlightWindowManagerChange { struct InFlightWindowManagerChange {
// Identifies the client that initiated the change. // Identifies the client that initiated the change.
...@@ -382,7 +377,6 @@ class WindowServer : public ServerWindowDelegate, ...@@ -382,7 +377,6 @@ class WindowServer : public ServerWindowDelegate,
base::Callback<void(ServerWindow*)> window_paint_callback_; base::Callback<void(ServerWindow*)> window_paint_callback_;
UserActivityMonitorMap activity_monitor_map_; UserActivityMonitorMap activity_monitor_map_;
UserClipboardMap clipboard_map_;
WindowManagerWindowTreeFactorySet window_manager_window_tree_factory_set_; WindowManagerWindowTreeFactorySet window_manager_window_tree_factory_set_;
......
...@@ -24,7 +24,8 @@ ui::mojom::Clipboard::Type GetType(ui::ClipboardType type) { ...@@ -24,7 +24,8 @@ ui::mojom::Clipboard::Type GetType(ui::ClipboardType type) {
case ui::CLIPBOARD_TYPE_SELECTION: case ui::CLIPBOARD_TYPE_SELECTION:
return ui::mojom::Clipboard::Type::SELECTION; return ui::mojom::Clipboard::Type::SELECTION;
case ui::CLIPBOARD_TYPE_DRAG: case ui::CLIPBOARD_TYPE_DRAG:
return ui::mojom::Clipboard::Type::DRAG; // Only OSX uses a drag clipboard.
break;
} }
NOTREACHED(); NOTREACHED();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment