LCOV - code coverage report
Current view: top level - docshell/base - nsDocShellLoadTypes.h (source / functions) Hit Total Coverage
Test: output.info Lines: 6 8 75.0 %
Date: 2017-07-14 16:53:18 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef nsDocShellLoadTypes_h_
       8             : #define nsDocShellLoadTypes_h_
       9             : 
      10             : #ifdef MOZILLA_INTERNAL_API
      11             : 
      12             : #include "nsIDocShell.h"
      13             : #include "nsIWebNavigation.h"
      14             : 
      15             : /**
      16             :  * Load flag for error pages. This uses one of the reserved flag
      17             :  * values from nsIWebNavigation.
      18             :  */
      19             : #define LOAD_FLAGS_ERROR_PAGE 0x0001U
      20             : 
      21             : #define MAKE_LOAD_TYPE(type, flags) ((type) | ((flags) << 16))
      22             : #define LOAD_TYPE_HAS_FLAGS(type, flags) ((type) & ((flags) << 16))
      23             : 
      24             : /**
      25             :  * These are flags that confuse ConvertLoadTypeToDocShellLoadInfo and should
      26             :  * not be passed to MAKE_LOAD_TYPE.  In particular this includes all flags
      27             :  * above 0xffff (e.g. LOAD_FLAGS_BYPASS_CLASSIFIER), since MAKE_LOAD_TYPE would
      28             :  * just shift them out anyway.
      29             :  */
      30             : #define EXTRA_LOAD_FLAGS (LOAD_FLAGS_FIRST_LOAD | \
      31             :                           LOAD_FLAGS_ALLOW_POPUPS | \
      32             :                           0xffff0000)
      33             : 
      34             : /* load types are legal combinations of load commands and flags
      35             :  *
      36             :  * NOTE:
      37             :  *  Remember to update the IsValidLoadType function below if you change this
      38             :  *  enum to ensure bad flag combinations will be rejected.
      39             :  */
      40             : enum LoadType
      41             : {
      42             :   LOAD_NORMAL = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_NONE),
      43             :   LOAD_NORMAL_REPLACE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_REPLACE_HISTORY),
      44             :   LOAD_NORMAL_EXTERNAL = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_FROM_EXTERNAL),
      45             :   LOAD_HISTORY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_HISTORY, nsIWebNavigation::LOAD_FLAGS_NONE),
      46             :   LOAD_NORMAL_BYPASS_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
      47             :   LOAD_NORMAL_BYPASS_PROXY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
      48             :   LOAD_NORMAL_BYPASS_PROXY_AND_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE | nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
      49             :   LOAD_NORMAL_ALLOW_MIXED_CONTENT = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_ALLOW_MIXED_CONTENT | nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
      50             :   LOAD_RELOAD_NORMAL = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_NONE),
      51             :   LOAD_RELOAD_BYPASS_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
      52             :   LOAD_RELOAD_BYPASS_PROXY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
      53             :   LOAD_RELOAD_ALLOW_MIXED_CONTENT = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_ALLOW_MIXED_CONTENT | nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
      54             :   LOAD_RELOAD_BYPASS_PROXY_AND_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE | nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY),
      55             :   LOAD_LINK = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_IS_LINK),
      56             :   LOAD_REFRESH = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_IS_REFRESH),
      57             :   LOAD_RELOAD_CHARSET_CHANGE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD, nsIWebNavigation::LOAD_FLAGS_CHARSET_CHANGE),
      58             :   LOAD_BYPASS_HISTORY = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_BYPASS_HISTORY),
      59             :   LOAD_STOP_CONTENT = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_STOP_CONTENT),
      60             :   LOAD_STOP_CONTENT_AND_REPLACE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_STOP_CONTENT | nsIWebNavigation::LOAD_FLAGS_REPLACE_HISTORY),
      61             :   LOAD_PUSHSTATE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_PUSHSTATE, nsIWebNavigation::LOAD_FLAGS_NONE),
      62             :   LOAD_REPLACE_BYPASS_CACHE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL, nsIWebNavigation::LOAD_FLAGS_REPLACE_HISTORY | nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE),
      63             :   /**
      64             :    * Load type for an error page. These loads are never triggered by users of
      65             :    * Docshell. Instead, Docshell triggers the load itself when a
      66             :    * consumer-triggered load failed.
      67             :    */
      68             :   LOAD_ERROR_PAGE = MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL,
      69             :                                    LOAD_FLAGS_ERROR_PAGE)
      70             : 
      71             :   // NOTE: Adding a new value? Remember to update IsValidLoadType!
      72             : };
      73             : static inline bool
      74           6 : IsValidLoadType(uint32_t aLoadType)
      75             : {
      76           6 :   switch (aLoadType) {
      77             :     case LOAD_NORMAL:
      78             :     case LOAD_NORMAL_REPLACE:
      79             :     case LOAD_NORMAL_EXTERNAL:
      80             :     case LOAD_NORMAL_BYPASS_CACHE:
      81             :     case LOAD_NORMAL_BYPASS_PROXY:
      82             :     case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE:
      83             :     case LOAD_NORMAL_ALLOW_MIXED_CONTENT:
      84             :     case LOAD_HISTORY:
      85             :     case LOAD_RELOAD_NORMAL:
      86             :     case LOAD_RELOAD_BYPASS_CACHE:
      87             :     case LOAD_RELOAD_BYPASS_PROXY:
      88             :     case LOAD_RELOAD_BYPASS_PROXY_AND_CACHE:
      89             :     case LOAD_RELOAD_ALLOW_MIXED_CONTENT:
      90             :     case LOAD_LINK:
      91             :     case LOAD_REFRESH:
      92             :     case LOAD_RELOAD_CHARSET_CHANGE:
      93             :     case LOAD_BYPASS_HISTORY:
      94             :     case LOAD_STOP_CONTENT:
      95             :     case LOAD_STOP_CONTENT_AND_REPLACE:
      96             :     case LOAD_PUSHSTATE:
      97             :     case LOAD_REPLACE_BYPASS_CACHE:
      98             :     case LOAD_ERROR_PAGE:
      99           6 :       return true;
     100             :   }
     101           0 :   return false;
     102             : }
     103             : 
     104             : static inline bool
     105          14 : IsForceReloadType(uint32_t aLoadType) {
     106          14 :   switch (aLoadType) {
     107             :     case LOAD_RELOAD_BYPASS_CACHE:
     108             :     case LOAD_RELOAD_BYPASS_PROXY:
     109             :     case LOAD_RELOAD_BYPASS_PROXY_AND_CACHE:
     110             :     case LOAD_RELOAD_ALLOW_MIXED_CONTENT:
     111           0 :       return true;
     112             :   }
     113          14 :   return false;
     114             : }
     115             : 
     116             : #endif // MOZILLA_INTERNAL_API
     117             : #endif

Generated by: LCOV version 1.13