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 ) { |