forked from mirrors/gecko-dev
		
	 48c797f422
			
		
	
	
		48c797f422
		
	
	
	
	
		
			
			MozReview-Commit-ID: 4lTbxSSrCf4 --HG-- extra : rebase_source : ccd67d8326f5cb9fb0372d5a42b15481aa886d66
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "nsHtml5SpeculativeLoad.h"
 | |
| #include "nsHtml5TreeOpExecutor.h"
 | |
| 
 | |
| nsHtml5SpeculativeLoad::nsHtml5SpeculativeLoad()
 | |
| #ifdef DEBUG
 | |
|  : mOpCode(eSpeculativeLoadUninitialized)
 | |
| #endif
 | |
| {
 | |
|   MOZ_COUNT_CTOR(nsHtml5SpeculativeLoad);
 | |
| }
 | |
| 
 | |
| nsHtml5SpeculativeLoad::~nsHtml5SpeculativeLoad()
 | |
| {
 | |
|   MOZ_COUNT_DTOR(nsHtml5SpeculativeLoad);
 | |
|   NS_ASSERTION(mOpCode != eSpeculativeLoadUninitialized,
 | |
|                "Uninitialized speculative load.");
 | |
| }
 | |
| 
 | |
| void
 | |
| nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor)
 | |
| {
 | |
|   switch (mOpCode) {
 | |
|     case eSpeculativeLoadBase:
 | |
|       aExecutor->SetSpeculationBase(mUrl);
 | |
|       break;
 | |
|     case eSpeculativeLoadCSP:
 | |
|       aExecutor->AddSpeculationCSP(mMetaCSP);
 | |
|       break;
 | |
|     case eSpeculativeLoadMetaReferrer:
 | |
|       aExecutor->SetSpeculationReferrerPolicy(mReferrerPolicy);
 | |
|       break;
 | |
|     case eSpeculativeLoadImage:
 | |
|       aExecutor->PreloadImage(mUrl, mCrossOrigin, mSrcset, mSizes, mReferrerPolicy);
 | |
|       break;
 | |
|     case eSpeculativeLoadOpenPicture:
 | |
|       aExecutor->PreloadOpenPicture();
 | |
|       break;
 | |
|     case eSpeculativeLoadEndPicture:
 | |
|       aExecutor->PreloadEndPicture();
 | |
|       break;
 | |
|     case eSpeculativeLoadPictureSource:
 | |
|       aExecutor->PreloadPictureSource(mSrcset, mSizes, mTypeOrCharsetSourceOrDocumentMode,
 | |
|                                       mMedia);
 | |
|       break;
 | |
|     case eSpeculativeLoadScript:
 | |
|       aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode,
 | |
|                                mCrossOrigin, mIntegrity, false);
 | |
|       break;
 | |
|     case eSpeculativeLoadScriptFromHead:
 | |
|       aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode,
 | |
|                                mCrossOrigin, mIntegrity, true);
 | |
|       break;
 | |
|     case eSpeculativeLoadStyle:
 | |
|       aExecutor->PreloadStyle(mUrl, mCharset, mCrossOrigin, mIntegrity);
 | |
|       break;
 | |
|     case eSpeculativeLoadManifest:  
 | |
|       aExecutor->ProcessOfflineManifest(mUrl);
 | |
|       break;
 | |
|     case eSpeculativeLoadSetDocumentCharset: {
 | |
|         nsAutoCString narrowName;
 | |
|         CopyUTF16toUTF8(mCharset, narrowName);
 | |
|         NS_ASSERTION(mTypeOrCharsetSourceOrDocumentMode.Length() == 1,
 | |
|             "Unexpected charset source string");
 | |
|         int32_t intSource = (int32_t)mTypeOrCharsetSourceOrDocumentMode.First();
 | |
|         aExecutor->SetDocumentCharsetAndSource(narrowName,
 | |
|                                                intSource);
 | |
|       }
 | |
|       break;
 | |
|     case eSpeculativeLoadSetDocumentMode: {
 | |
|         NS_ASSERTION(mTypeOrCharsetSourceOrDocumentMode.Length() == 1,
 | |
|             "Unexpected document mode string");
 | |
|         nsHtml5DocumentMode mode =
 | |
|             (nsHtml5DocumentMode)mTypeOrCharsetSourceOrDocumentMode.First();
 | |
|         aExecutor->SetDocumentMode(mode);
 | |
|       }
 | |
|       break;
 | |
|     case eSpeculativeLoadPreconnect:
 | |
|       aExecutor->Preconnect(mUrl, mCrossOrigin);
 | |
|       break;
 | |
|     default:
 | |
|       NS_NOTREACHED("Bogus speculative load.");
 | |
|       break;
 | |
|   }
 | |
| }
 |