widget/xpwidgets/nsTransferable.cpp

branch
TOR_BUG_9701
changeset 10
ac0c01689b40
parent 9
a63d609f5ebe
child 11
deefc01c0e14
equal deleted inserted replaced
3:920a59df241b 4:7082fd048f6a
51 //------------------------------------------------------------------------- 51 //-------------------------------------------------------------------------
52 DataStruct::~DataStruct() 52 DataStruct::~DataStruct()
53 { 53 {
54 if (mCacheFileName) free(mCacheFileName); 54 if (mCacheFileName) free(mCacheFileName);
55 } 55 }
56
57 //-------------------------------------------------------------------------
58 // The SetData method is overloaded to indicate private browsing mode
59 // while achieving some semblance of (private) interface compatibility.
60 //-------------------------------------------------------------------------
61 void
62 DataStruct::SetData ( nsISupports* aData, uint32_t aDataLen, bool aIsPrivBrowsing )
63 {
64 // Now, check to see if we consider the data to be "too large"
65 // as well as ensuring that private browsing mode is disabled
66 if (aDataLen > kLargeDatasetSize && aIsPrivBrowsing == false) {
67 // if so, cache it to disk instead of memory
68 if ( NS_SUCCEEDED(WriteCache(aData, aDataLen)) )
69 return;
70 else
71 NS_WARNING("Oh no, couldn't write data to the cache file");
72 }
73
74 mData = aData;
75 mDataLen = aDataLen;
76 }
77
56 78
57 //------------------------------------------------------------------------- 79 //-------------------------------------------------------------------------
58 void 80 void
59 DataStruct::SetData ( nsISupports* aData, uint32_t aDataLen ) 81 DataStruct::SetData ( nsISupports* aData, uint32_t aDataLen )
60 { 82 {
396 418
397 NS_ENSURE_ARG(aFlavor); 419 NS_ENSURE_ARG(aFlavor);
398 420
399 // first check our intrinsic flavors to see if one has been registered. 421 // first check our intrinsic flavors to see if one has been registered.
400 uint32_t i = 0; 422 uint32_t i = 0;
423 bool aIsPrivBrowsing = false;
401 for (i = 0; i < mDataArray.Length(); ++i) { 424 for (i = 0; i < mDataArray.Length(); ++i) {
402 DataStruct& data = mDataArray.ElementAt(i); 425 DataStruct& data = mDataArray.ElementAt(i);
403 if ( data.GetFlavor().Equals(aFlavor) ) { 426 if ( data.GetFlavor().Equals(aFlavor) ) {
404 data.SetData ( aData, aDataLen ); 427 if ( NS_SUCCEEDED(GetIsPrivateData(&aIsPrivBrowsing)) ) {
405 return NS_OK; 428 data.SetData ( aData, aDataLen, aIsPrivBrowsing );
429 return NS_OK;
430 }
431 else { // call to GetIsPrivateData() failed,
432 return NS_ERROR_FAILURE; // we didn't SetData(), generic error
433 }
406 } 434 }
407 } 435 }
408 436
409 // if not, try using a format converter to find a flavor to put the data in 437 // if not, try using a format converter to find a flavor to put the data in
410 if ( mFormatConv ) { 438 if ( mFormatConv ) {

mercurial