diff options
author | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-14 23:37:00 +0000 |
---|---|---|
committer | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-14 23:37:00 +0000 |
commit | 5d1124b12d49215fce0de40396a892b891f74fae (patch) | |
tree | e0fb5df846d80c30180870f7dd74fb3aea2949f4 /ui | |
parent | ac381f190519f153566503e5cba87e310c1a3f96 (diff) | |
download | chromium_src-5d1124b12d49215fce0de40396a892b891f74fae.zip chromium_src-5d1124b12d49215fce0de40396a892b891f74fae.tar.gz chromium_src-5d1124b12d49215fce0de40396a892b891f74fae.tar.bz2 |
Remove deprecated WebClipboard::readHTML method.
Now that WebKit r97497 is rolled into Chromium, we no longer need the legacy
interface. As a bonus, the last of the Clipboard::readHTML crashes should be
fixed.
BUG=19360
TEST=ui_unittests and WebKit layout tests
Review URL: http://codereview.chromium.org/8305012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105611 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/base/clipboard/clipboard_win.cc | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc index a2c515b..635b479 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc @@ -453,17 +453,22 @@ void Clipboard::ReadHTML(Clipboard::Buffer buffer, string16* markup, size_t end_index = std::string::npos; ClipboardUtil::CFHtmlExtractMetadata(cf_html, src_url, &html_start, &start_index, &end_index); - if (markup) { - // Some sanity checks... - DCHECK(start_index != std::string::npos); - DCHECK(end_index != std::string::npos); - DCHECK((start_index - html_start) <= kuint32max); - DCHECK((end_index - html_start) <= kuint32max); - - markup->assign(UTF8ToWide(cf_html.data() + html_start)); - *fragment_start = static_cast<uint32>(start_index - html_start); - *fragment_end = static_cast<uint32>(end_index - html_start); - } + + // This might happen if the contents of the clipboard changed and CF_HTML is + // no longer available. + if (start_index == std::string::npos || + end_index == std::string::npos || + html_start == std::string::npos) + return; + + DCHECK(start_index - html_start >= 0); + DCHECK(end_index - html_start >= 0); + DCHECK((start_index - html_start) <= kuint32max); + DCHECK((end_index - html_start) <= kuint32max); + + markup->assign(UTF8ToWide(cf_html.data() + html_start)); + *fragment_start = static_cast<uint32>(start_index - html_start); + *fragment_end = static_cast<uint32>(end_index - html_start); } SkBitmap Clipboard::ReadImage(Buffer buffer) const { |