LCOV - code coverage report
Current view: top level - parser/html - nsHtml5SpeculativeLoad.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 27 51 52.9 %
Date: 2017-07-14 16:53:18 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* This Source Code Form is subject to the terms of the Mozilla Public
       2             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       3             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       4             : 
       5             : #include "nsHtml5SpeculativeLoad.h"
       6             : #include "nsHtml5TreeOpExecutor.h"
       7             : 
       8          10 : nsHtml5SpeculativeLoad::nsHtml5SpeculativeLoad()
       9             : #ifdef DEBUG
      10          10 :  : mOpCode(eSpeculativeLoadUninitialized)
      11             : #endif
      12             : {
      13          10 :   MOZ_COUNT_CTOR(nsHtml5SpeculativeLoad);
      14          10 : }
      15             : 
      16          20 : nsHtml5SpeculativeLoad::~nsHtml5SpeculativeLoad()
      17             : {
      18          10 :   MOZ_COUNT_DTOR(nsHtml5SpeculativeLoad);
      19          10 :   NS_ASSERTION(mOpCode != eSpeculativeLoadUninitialized,
      20             :                "Uninitialized speculative load.");
      21          10 : }
      22             : 
      23             : void
      24          10 : nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor)
      25             : {
      26          10 :   switch (mOpCode) {
      27             :     case eSpeculativeLoadBase:
      28           0 :       aExecutor->SetSpeculationBase(mUrl);
      29           0 :       break;
      30             :     case eSpeculativeLoadCSP:
      31           0 :       aExecutor->AddSpeculationCSP(mMetaCSP);
      32           0 :       break;
      33             :     case eSpeculativeLoadMetaReferrer:
      34           0 :       aExecutor->SetSpeculationReferrerPolicy(mReferrerPolicy);
      35           0 :       break;
      36             :     case eSpeculativeLoadImage:
      37           0 :       aExecutor->PreloadImage(mUrl, mCrossOrigin, mSrcset, mSizes, mReferrerPolicy);
      38           0 :       break;
      39             :     case eSpeculativeLoadOpenPicture:
      40           0 :       aExecutor->PreloadOpenPicture();
      41           0 :       break;
      42             :     case eSpeculativeLoadEndPicture:
      43           0 :       aExecutor->PreloadEndPicture();
      44           0 :       break;
      45             :     case eSpeculativeLoadPictureSource:
      46           0 :       aExecutor->PreloadPictureSource(mSrcset, mSizes, mTypeOrCharsetSourceOrDocumentMode,
      47           0 :                                       mMedia);
      48           0 :       break;
      49             :     case eSpeculativeLoadScript:
      50           0 :       aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode,
      51           0 :                                mCrossOrigin, mIntegrity, false);
      52           0 :       break;
      53             :     case eSpeculativeLoadScriptFromHead:
      54           4 :       aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode,
      55           4 :                                mCrossOrigin, mIntegrity, true);
      56           4 :       break;
      57             :     case eSpeculativeLoadStyle:
      58           0 :       aExecutor->PreloadStyle(mUrl, mCharset, mCrossOrigin, mIntegrity);
      59           0 :       break;
      60             :     case eSpeculativeLoadManifest:  
      61           2 :       aExecutor->ProcessOfflineManifest(mUrl);
      62           2 :       break;
      63             :     case eSpeculativeLoadSetDocumentCharset: {
      64           4 :         nsAutoCString narrowName;
      65           2 :         CopyUTF16toUTF8(mCharset, narrowName);
      66           2 :         NS_ASSERTION(mTypeOrCharsetSourceOrDocumentMode.Length() == 1,
      67             :             "Unexpected charset source string");
      68           2 :         int32_t intSource = (int32_t)mTypeOrCharsetSourceOrDocumentMode.First();
      69           2 :         aExecutor->SetDocumentCharsetAndSource(Encoding::ForName(narrowName),
      70           2 :                                                intSource);
      71             :       }
      72           2 :       break;
      73             :     case eSpeculativeLoadSetDocumentMode: {
      74           2 :         NS_ASSERTION(mTypeOrCharsetSourceOrDocumentMode.Length() == 1,
      75             :             "Unexpected document mode string");
      76             :         nsHtml5DocumentMode mode =
      77           2 :             (nsHtml5DocumentMode)mTypeOrCharsetSourceOrDocumentMode.First();
      78           2 :         aExecutor->SetDocumentMode(mode);
      79             :       }
      80           2 :       break;
      81             :     case eSpeculativeLoadPreconnect:
      82           0 :       aExecutor->Preconnect(mUrl, mCrossOrigin);
      83           0 :       break;
      84             :     default:
      85           0 :       NS_NOTREACHED("Bogus speculative load.");
      86           0 :       break;
      87             :   }
      88          10 : }

Generated by: LCOV version 1.13