summaryrefslogtreecommitdiffstats
path: root/chrome/common/net
diff options
context:
space:
mode:
authordcheng <dcheng@chromium.org>2014-11-19 13:49:16 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-19 21:49:32 +0000
commita8095525d13449cd3ce2fe18d4f32f2133e69732 (patch)
treea704be442ca6b37d261f74e97b84a57c4aa1d932 /chrome/common/net
parent6e5ddf91c4b20c4b1afcdbbceb95bf949862db2d (diff)
downloadchromium_src-a8095525d13449cd3ce2fe18d4f32f2133e69732.zip
chromium_src-a8095525d13449cd3ce2fe18d4f32f2133e69732.tar.gz
chromium_src-a8095525d13449cd3ce2fe18d4f32f2133e69732.tar.bz2
Rewrite clipboard write IPC handling to be easier to understand.
The original implementation sent clipboard data to be written over IPC as a map of clipboard formats to 'parameters' for that format. The parameters were just vectors of byte vectors. Needless to say, this logic was complicated, fragile, and prone to bugs. In the browser process, this resulted in the IPC validation logic being scattered between ClipboardMessageFilter and Clipboard::DispatchObject. The rewrite adds an IPC message for each flavor of data that the renderer is allowed to write to the clipboard. On the browser side, the logic is simply delegated to ScopedClipboardWriter. Since the clipboard object map is no longer under the control of an untrusted process, this allows the removal of a lot of validation logic. Unfortunately, bitmap handling is still a bit complicated because it's sent over shared memory, but all the validation logic has been moved into ClipboardMessageFilter. BUG=319285 Review URL: https://codereview.chromium.org/574273002 Cr-Commit-Position: refs/heads/master@{#304895}
Diffstat (limited to 'chrome/common/net')
-rw-r--r--chrome/common/net/BUILD.gn1
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome/common/net/BUILD.gn b/chrome/common/net/BUILD.gn
index 143512d..0794d86 100644
--- a/chrome/common/net/BUILD.gn
+++ b/chrome/common/net/BUILD.gn
@@ -26,6 +26,7 @@ static_library("net") {
"//net",
"//net:net_resources",
"//third_party/icu",
+ "//ui/base/",
]
if (is_ios) {