1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 * vim: set ts=4 sw=4 et tw=80:
4 * ***** BEGIN LICENSE BLOCK *****
5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
7 * The contents of this file are subject to the Mozilla Public License Version
8 * 1.1 (the "License"); you may not use this file except in compliance with
9 * the License. You may obtain a copy of the License at
10 * http://www.mozilla.org/MPL/
12 * Software distributed under the License is distributed on an "AS IS" basis,
13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14 * for the specific language governing rights and limitations under the
17 * The Original Code is the Mozilla browser.
19 * The Initial Developer of the Original Code is
20 * Netscape Communications, Inc.
21 * Portions created by the Initial Developer are Copyright (C) 1999
22 * the Initial Developer. All Rights Reserved.
25 * Travis Bogard <travis@netscape.com>
27 * Alternatively, the contents of this file may be used under the terms of
28 * either of the GNU General Public License Version 2 or later (the "GPL"),
29 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30 * in which case the provisions of the GPL or the LGPL are applicable instead
31 * of those above. If you wish to allow use of your version of this file only
32 * under the terms of either the GPL or the LGPL, and not to allow others to
33 * use your version of this file under the terms of the MPL, indicate your
34 * decision by deleting the provisions above and replace them with the notice
35 * and other provisions required by the GPL or the LGPL. If you do not delete
36 * the provisions above, a recipient may use your version of this file under
37 * the terms of any one of the MPL, the GPL or the LGPL.
39 * ***** END LICENSE BLOCK ***** */
41 #ifndef nsDocShellLoadTypes_h_
42 #define nsDocShellLoadTypes_h_
44 #ifdef MOZILLA_INTERNAL_API
46 #include "nsIDocShell.h"
47 #include "nsIWebNavigation.h"
50 * Load flag for error pages. This uses one of the reserved flag
51 * values from nsIWebNavigation.
53 #define LOAD_FLAGS_ERROR_PAGE 0x0001U
55 #define MAKE_LOAD_TYPE(type, flags) ((type) | ((flags) << 16))
56 #define LOAD_TYPE_HAS_FLAGS(type, flags) ((type) & ((flags) << 16))
59 * These are flags that confuse ConvertLoadTypeToDocShellLoadInfo and should
60 * not be passed to MAKE_LOAD_TYPE. In particular this includes all flags
61 * above 0xffff (e.g. LOAD_FLAGS_BYPASS_CLASSIFIER), since MAKE_LOAD_TYPE would
62 * just shift them out anyway.
64 #define EXTRA_LOAD_FLAGS (LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP | \
65 LOAD_FLAGS_FIRST_LOAD | \
66 LOAD_FLAGS_ALLOW_POPUPS | \
71 /* load types are legal combinations of load commands and flags
74 * Remember to update the IsValidLoadType function below if you change this
75 * enum to ensure bad flag combinations will be rejected.
78 LOAD_NORMAL
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_NONE
),
79 LOAD_NORMAL_REPLACE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_REPLACE_HISTORY
),
80 LOAD_NORMAL_EXTERNAL
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_FROM_EXTERNAL
),
81 LOAD_HISTORY
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_HISTORY
, nsIWebNavigation::LOAD_FLAGS_NONE
),
82 LOAD_NORMAL_BYPASS_CACHE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE
),
83 LOAD_NORMAL_BYPASS_PROXY
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY
),
84 LOAD_NORMAL_BYPASS_PROXY_AND_CACHE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE
| nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY
),
85 LOAD_RELOAD_NORMAL
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD
, nsIWebNavigation::LOAD_FLAGS_NONE
),
86 LOAD_RELOAD_BYPASS_CACHE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD
, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE
),
87 LOAD_RELOAD_BYPASS_PROXY
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD
, nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY
),
88 LOAD_RELOAD_BYPASS_PROXY_AND_CACHE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD
, nsIWebNavigation::LOAD_FLAGS_BYPASS_CACHE
| nsIWebNavigation::LOAD_FLAGS_BYPASS_PROXY
),
89 LOAD_LINK
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_IS_LINK
),
90 LOAD_REFRESH
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_IS_REFRESH
),
91 LOAD_RELOAD_CHARSET_CHANGE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_RELOAD
, nsIWebNavigation::LOAD_FLAGS_CHARSET_CHANGE
),
92 LOAD_BYPASS_HISTORY
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_BYPASS_HISTORY
),
93 LOAD_STOP_CONTENT
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_STOP_CONTENT
),
94 LOAD_STOP_CONTENT_AND_REPLACE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, nsIWebNavigation::LOAD_FLAGS_STOP_CONTENT
| nsIWebNavigation::LOAD_FLAGS_REPLACE_HISTORY
),
95 LOAD_PUSHSTATE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_PUSHSTATE
, nsIWebNavigation::LOAD_FLAGS_NONE
),
97 * Load type for an error page. These loads are never triggered by users of
98 * Docshell. Instead, Docshell triggers the load itself when a
99 * consumer-triggered load failed.
101 LOAD_ERROR_PAGE
= MAKE_LOAD_TYPE(nsIDocShell::LOAD_CMD_NORMAL
, LOAD_FLAGS_ERROR_PAGE
)
103 // NOTE: Adding a new value? Remember to update IsValidLoadType!
105 static inline PRBool
IsValidLoadType(PRUint32 aLoadType
)
110 case LOAD_NORMAL_REPLACE
:
111 case LOAD_NORMAL_EXTERNAL
:
112 case LOAD_NORMAL_BYPASS_CACHE
:
113 case LOAD_NORMAL_BYPASS_PROXY
:
114 case LOAD_NORMAL_BYPASS_PROXY_AND_CACHE
:
116 case LOAD_RELOAD_NORMAL
:
117 case LOAD_RELOAD_BYPASS_CACHE
:
118 case LOAD_RELOAD_BYPASS_PROXY
:
119 case LOAD_RELOAD_BYPASS_PROXY_AND_CACHE
:
122 case LOAD_RELOAD_CHARSET_CHANGE
:
123 case LOAD_BYPASS_HISTORY
:
124 case LOAD_STOP_CONTENT
:
125 case LOAD_STOP_CONTENT_AND_REPLACE
:
127 case LOAD_ERROR_PAGE
:
133 #endif // MOZILLA_INTERNAL_API