Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Side by Side Diff: mojo/services/html_viewer/webclipboard_impl.cc

Issue 646773005: mojo: Switch the clipboard interface over to using map<>. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar tests Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/services/html_viewer/webclipboard_impl.h" 5 #include "mojo/services/html_viewer/webclipboard_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "mojo/services/html_viewer/blink_basic_type_converters.h" 8 #include "mojo/services/html_viewer/blink_basic_type_converters.h"
9 9
10 namespace mojo { 10 namespace mojo {
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 clipboard_->ReadMimeType( 161 clipboard_->ReadMimeType(
162 clipboard_type, mime_type.utf8(), base::Bind(&CopyWebString, &data)); 162 clipboard_type, mime_type.utf8(), base::Bind(&CopyWebString, &data));
163 163
164 // Force this to be synchronous. 164 // Force this to be synchronous.
165 clipboard_.WaitForIncomingMethodCall(); 165 clipboard_.WaitForIncomingMethodCall();
166 166
167 return data; 167 return data;
168 } 168 }
169 169
170 void WebClipboardImpl::writePlainText(const blink::WebString& text) { 170 void WebClipboardImpl::writePlainText(const blink::WebString& text) {
171 Array<MimeTypePairPtr> data; 171 Map<String, Array<uint8_t>> data;
172 MimeTypePairPtr text_data(MimeTypePair::New()); 172 data[mojo::Clipboard::MIME_TYPE_TEXT] = Array<uint8_t>::From(text);
173 text_data->mime_type = mojo::Clipboard::MIME_TYPE_TEXT;
174 text_data->data = Array<uint8_t>::From(text).Pass();
175 data.push_back(text_data.Pass());
176 173
177 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass()); 174 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass());
178 } 175 }
179 176
180 void WebClipboardImpl::writeHTML(const blink::WebString& htmlText, 177 void WebClipboardImpl::writeHTML(const blink::WebString& htmlText,
181 const blink::WebURL& url, 178 const blink::WebURL& url,
182 const blink::WebString& plainText, 179 const blink::WebString& plainText,
183 bool writeSmartPaste) { 180 bool writeSmartPaste) {
184 Array<MimeTypePairPtr> data; 181 Map<String, Array<uint8_t>> data;
185 MimeTypePairPtr text_data(MimeTypePair::New()); 182 data[mojo::Clipboard::MIME_TYPE_TEXT] = Array<uint8_t>::From(plainText);
186 text_data->mime_type = mojo::Clipboard::MIME_TYPE_TEXT; 183 data[mojo::Clipboard::MIME_TYPE_HTML] = Array<uint8_t>::From(htmlText);
187 text_data->data = Array<uint8_t>::From(plainText).Pass(); 184 data[mojo::Clipboard::MIME_TYPE_URL] = Array<uint8_t>::From(url.string());
188 data.push_back(text_data.Pass());
189 185
190 MimeTypePairPtr html_data(MimeTypePair::New()); 186 if (writeSmartPaste)
191 text_data->mime_type = mojo::Clipboard::MIME_TYPE_HTML; 187 data[kMimeTypeWebkitSmartPaste] = Array<uint8_t>::From(blink::WebString());
192 text_data->data = Array<uint8_t>::From(htmlText).Pass();
193 data.push_back(html_data.Pass());
194
195 MimeTypePairPtr url_data(MimeTypePair::New());
196 url_data->mime_type = mojo::Clipboard::MIME_TYPE_URL;
197 url_data->data = Array<uint8_t>::From(url.string()).Pass();
198 data.push_back(url_data.Pass());
199
200 if (writeSmartPaste) {
201 MimeTypePairPtr smart_paste(MimeTypePair::New());
202 url_data->mime_type = kMimeTypeWebkitSmartPaste;
203 url_data->data = Array<uint8_t>::From(blink::WebString()).Pass();
204 data.push_back(smart_paste.Pass());
205 }
206 188
207 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass()); 189 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass());
208 } 190 }
209 191
210 mojo::Clipboard::Type WebClipboardImpl::ConvertBufferType(Buffer buffer) { 192 mojo::Clipboard::Type WebClipboardImpl::ConvertBufferType(Buffer buffer) {
211 switch (buffer) { 193 switch (buffer) {
212 case BufferStandard: 194 case BufferStandard:
213 return mojo::Clipboard::TYPE_COPY_PASTE; 195 return mojo::Clipboard::TYPE_COPY_PASTE;
214 case BufferSelection: 196 case BufferSelection:
215 return mojo::Clipboard::TYPE_SELECTION; 197 return mojo::Clipboard::TYPE_SELECTION;
216 } 198 }
217 199
218 NOTREACHED(); 200 NOTREACHED();
219 return mojo::Clipboard::TYPE_COPY_PASTE; 201 return mojo::Clipboard::TYPE_COPY_PASTE;
220 } 202 }
221 203
222 } // namespace mojo 204 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/clipboard/clipboard_standalone_unittest.cc ('k') | mojo/services/public/interfaces/clipboard/clipboard.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698