OLD | NEW |
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 Loading... |
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 |
OLD | NEW |