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

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

Issue 611633002: mojom: Add associative arrays to the mojom language. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT; fixes clang-format bustage. 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.insert(mojo::Clipboard::MIME_TYPE_TEXT,
173 text_data->mime_type = mojo::Clipboard::MIME_TYPE_TEXT; 173 Array<uint8_t>::From(text).Pass());
174 text_data->data = Array<uint8_t>::From(text).Pass();
175 data.push_back(text_data.Pass());
176 174
177 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass()); 175 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass());
178 } 176 }
179 177
180 void WebClipboardImpl::writeHTML(const blink::WebString& htmlText, 178 void WebClipboardImpl::writeHTML(const blink::WebString& htmlText,
181 const blink::WebURL& url, 179 const blink::WebURL& url,
182 const blink::WebString& plainText, 180 const blink::WebString& plainText,
183 bool writeSmartPaste) { 181 bool writeSmartPaste) {
184 Array<MimeTypePairPtr> data; 182 Map<String, Array<uint8_t> > data;
185 MimeTypePairPtr text_data(MimeTypePair::New()); 183 data.insert(mojo::Clipboard::MIME_TYPE_TEXT,
186 text_data->mime_type = mojo::Clipboard::MIME_TYPE_TEXT; 184 Array<uint8_t>::From(plainText).Pass());
187 text_data->data = Array<uint8_t>::From(plainText).Pass(); 185 data.insert(mojo::Clipboard::MIME_TYPE_HTML,
188 data.push_back(text_data.Pass()); 186 Array<uint8_t>::From(htmlText).Pass());
189 187 data.insert(mojo::Clipboard::MIME_TYPE_URL,
190 MimeTypePairPtr html_data(MimeTypePair::New()); 188 Array<uint8_t>::From(url.string()).Pass());
191 text_data->mime_type = mojo::Clipboard::MIME_TYPE_HTML;
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 189
200 if (writeSmartPaste) { 190 if (writeSmartPaste) {
201 MimeTypePairPtr smart_paste(MimeTypePair::New()); 191 data.insert(kMimeTypeWebkitSmartPaste,
202 url_data->mime_type = kMimeTypeWebkitSmartPaste; 192 Array<uint8_t>::From(blink::WebString()).Pass());
203 url_data->data = Array<uint8_t>::From(blink::WebString()).Pass();
204 data.push_back(smart_paste.Pass());
205 } 193 }
206 194
207 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass()); 195 clipboard_->WriteClipboardData(mojo::Clipboard::TYPE_COPY_PASTE, data.Pass());
208 } 196 }
209 197
210 mojo::Clipboard::Type WebClipboardImpl::ConvertBufferType(Buffer buffer) { 198 mojo::Clipboard::Type WebClipboardImpl::ConvertBufferType(Buffer buffer) {
211 switch (buffer) { 199 switch (buffer) {
212 case BufferStandard: 200 case BufferStandard:
213 return mojo::Clipboard::TYPE_COPY_PASTE; 201 return mojo::Clipboard::TYPE_COPY_PASTE;
214 case BufferSelection: 202 case BufferSelection:
215 return mojo::Clipboard::TYPE_SELECTION; 203 return mojo::Clipboard::TYPE_SELECTION;
216 } 204 }
217 205
218 NOTREACHED(); 206 NOTREACHED();
219 return mojo::Clipboard::TYPE_COPY_PASTE; 207 return mojo::Clipboard::TYPE_COPY_PASTE;
220 } 208 }
221 209
222 } // namespace mojo 210 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698