| Index: ui/base/dragdrop/os_exchange_data_provider_win.cc | 
| diff --git a/ui/base/dragdrop/os_exchange_data_provider_win.cc b/ui/base/dragdrop/os_exchange_data_provider_win.cc | 
| index fa2052a10b1f291866e8c26886d6dadad47a8379..8dd4d44a11092b80a4648358ee0b0da1dd802dc4 100644 | 
| --- a/ui/base/dragdrop/os_exchange_data_provider_win.cc | 
| +++ b/ui/base/dragdrop/os_exchange_data_provider_win.cc | 
| @@ -23,6 +23,14 @@ | 
|  | 
| namespace ui { | 
|  | 
| +static const OSExchangeData::CustomFormat& GetRendererTaintCustomType() { | 
| +  CR_DEFINE_STATIC_LOCAL( | 
| +      ui::OSExchangeData::CustomFormat, | 
| +      format, | 
| +      (ui::Clipboard::GetFormatType("chromium/x-renderer-taint"))); | 
| +  return format; | 
| +} | 
| + | 
| // Creates a new STGMEDIUM object to hold the specified text. The caller | 
| // owns the resulting object. The "Bytes" version does not NULL terminate, the | 
| // string version does. | 
| @@ -269,6 +277,16 @@ OSExchangeData::Provider* OSExchangeDataProviderWin::Clone() const { | 
| return new OSExchangeDataProviderWin(data_object()); | 
| } | 
|  | 
| +void OSExchangeDataProviderWin::MarkOriginatedFromRenderer() { | 
| +  STGMEDIUM* storage = GetStorageForString(std::string()); | 
| +  data_->contents_.push_back(new DataObjectImpl::StoredDataInfo( | 
| +      GetRendererTaintCustomType().ToFormatEtc(), storage)); | 
| +} | 
| + | 
| +bool OSExchangeDataProviderWin::DidOriginateFromRenderer() const { | 
| +  return HasCustomFormat(GetRendererTaintCustomType()); | 
| +} | 
| + | 
| void OSExchangeDataProviderWin::SetString(const base::string16& data) { | 
| STGMEDIUM* storage = GetStorageForString(data); | 
| data_->contents_.push_back(new DataObjectImpl::StoredDataInfo( | 
|  |