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 {
class ClipboardImpl : public mojom::Clipboard {
public:
// mojom::Clipboard exposes three possible clipboards.
static const int kNumClipboards = 3;
static const int kNumClipboards = 2;
ClipboardImpl();
~ClipboardImpl() override;
......
......@@ -15,8 +15,7 @@ const string kMimeTypeURL = "text/url";
interface Clipboard {
enum Type {
COPY_PASTE = 0,
SELECTION = 1,
DRAG = 2
SELECTION = 1
};
// Returns a sequence number which uniquely identifies clipboard state.
......
......@@ -76,6 +76,7 @@ struct Service::PendingRequest {
};
struct Service::UserState {
std::unique_ptr<clipboard::ClipboardImpl> clipboard;
std::unique_ptr<ws::AccessibilityManager> accessibility;
std::unique_ptr<ws::WindowTreeHostFactory> window_tree_host_factory;
};
......@@ -269,8 +270,10 @@ void Service::Create(const shell::Identity& remote_identity,
void Service::Create(const shell::Identity& remote_identity,
mojom::ClipboardRequest request) {
const ws::UserId& user_id = remote_identity.user_id();
window_server_->GetClipboardForUser(user_id)->AddBinding(std::move(request));
UserState* user_state = GetUserState(remote_identity);
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,
......
......@@ -129,7 +129,6 @@ static_library("lib") {
"//services/shell/public/cpp",
"//services/shell/public/interfaces",
"//services/tracing/public/cpp",
"//services/ui/clipboard:lib",
"//services/ui/common:mus_common",
"//services/ui/display",
"//services/ui/public/interfaces",
......
......@@ -248,12 +248,6 @@ void WindowServer::OnFirstWindowManagerWindowTreeFactoryReady() {
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(
const UserId& user_id) {
DCHECK_GT(activity_monitor_map_.count(user_id), 0u);
......@@ -825,12 +819,10 @@ void WindowServer::OnActiveUserIdChanged(const UserId& previously_active_id,
void WindowServer::OnUserIdAdded(const UserId& id) {
activity_monitor_map_[id] = base::MakeUnique<UserActivityMonitor>(nullptr);
clipboard_map_[id] = base::MakeUnique<clipboard::ClipboardImpl>();
}
void WindowServer::OnUserIdRemoved(const UserId& id) {
activity_monitor_map_.erase(id);
clipboard_map_.erase(id);
}
} // namespace ws
......
......@@ -16,7 +16,6 @@
#include "base/optional.h"
#include "mojo/public/cpp/bindings/array.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_tree.mojom.h"
#include "services/ui/public/interfaces/window_tree_host.mojom.h"
......@@ -137,8 +136,6 @@ class WindowServer : public ServerWindowDelegate,
void OnFirstWindowManagerWindowTreeFactoryReady();
clipboard::ClipboardImpl* GetClipboardForUser(const UserId& user_id);
UserActivityMonitor* GetUserActivityMonitorForUser(const UserId& user_id);
WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set() {
......@@ -251,8 +248,6 @@ class WindowServer : public ServerWindowDelegate,
std::map<ClientSpecificId, std::unique_ptr<WindowTree>>;
using UserActivityMonitorMap =
std::map<UserId, std::unique_ptr<UserActivityMonitor>>;
using UserClipboardMap =
std::map<UserId, std::unique_ptr<ui::clipboard::ClipboardImpl>>;
struct InFlightWindowManagerChange {
// Identifies the client that initiated the change.
......@@ -382,7 +377,6 @@ class WindowServer : public ServerWindowDelegate,
base::Callback<void(ServerWindow*)> window_paint_callback_;
UserActivityMonitorMap activity_monitor_map_;
UserClipboardMap clipboard_map_;
WindowManagerWindowTreeFactorySet window_manager_window_tree_factory_set_;
......
......@@ -24,7 +24,8 @@ ui::mojom::Clipboard::Type GetType(ui::ClipboardType type) {
case ui::CLIPBOARD_TYPE_SELECTION:
return ui::mojom::Clipboard::Type::SELECTION;
case ui::CLIPBOARD_TYPE_DRAG:
return ui::mojom::Clipboard::Type::DRAG;
// Only OSX uses a drag clipboard.
break;
}
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