Bug 675499 - Transfer initially sniffed document charset through the speculative load queue to avoid race conditions. r=bzbarsky.
This commit is contained in:
@@ -58,19 +58,29 @@ nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor)
|
||||
{
|
||||
switch (mOpCode) {
|
||||
case eSpeculativeLoadBase:
|
||||
aExecutor->SetSpeculationBase(mUrl);
|
||||
aExecutor->SetSpeculationBase(mUrl);
|
||||
break;
|
||||
case eSpeculativeLoadImage:
|
||||
aExecutor->PreloadImage(mUrl, mCharsetOrCrossOrigin);
|
||||
aExecutor->PreloadImage(mUrl, mCharsetOrCrossOrigin);
|
||||
break;
|
||||
case eSpeculativeLoadScript:
|
||||
aExecutor->PreloadScript(mUrl, mCharsetOrCrossOrigin, mType);
|
||||
aExecutor->PreloadScript(mUrl, mCharsetOrCrossOrigin, mTypeOrCharsetSource);
|
||||
break;
|
||||
case eSpeculativeLoadStyle:
|
||||
aExecutor->PreloadStyle(mUrl, mCharsetOrCrossOrigin);
|
||||
aExecutor->PreloadStyle(mUrl, mCharsetOrCrossOrigin);
|
||||
break;
|
||||
case eSpeculativeLoadManifest:
|
||||
aExecutor->ProcessOfflineManifest(mUrl);
|
||||
aExecutor->ProcessOfflineManifest(mUrl);
|
||||
break;
|
||||
case eSpeculativeLoadSetDocumentCharset: {
|
||||
nsCAutoString narrowName;
|
||||
CopyUTF16toUTF8(mCharsetOrCrossOrigin, narrowName);
|
||||
NS_ASSERTION(mTypeOrCharsetSource.Length() == 1,
|
||||
"Unexpected charset source string");
|
||||
PRInt32 intSource = (PRInt32)mTypeOrCharsetSource.First();
|
||||
aExecutor->SetDocumentCharsetAndSource(narrowName,
|
||||
intSource);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
NS_NOTREACHED("Bogus speculative load.");
|
||||
|
||||
Reference in New Issue
Block a user