1/*
2 * Copyright (C) 2006 Apple Inc.  All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1.  Redistributions of source code must retain the above copyright
9 *     notice, this list of conditions and the following disclaimer.
10 * 2.  Redistributions in binary form must reproduce the above copyright
11 *     notice, this list of conditions and the following disclaimer in the
12 *     documentation and/or other materials provided with the distribution.
13 * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
14 *     its contributors may be used to endorse or promote products derived
15 *     from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef FrameLoaderTypes_h
30#define FrameLoaderTypes_h
31
32namespace WebCore {
33
34    enum FrameState {
35        FrameStateProvisional,
36        // This state indicates we are ready to commit to a page,
37        // which means the view will transition to use the new data source.
38        FrameStateCommittedPage,
39        FrameStateComplete
40    };
41
42    enum PolicyAction {
43        PolicyUse,
44        PolicyDownload,
45        PolicyIgnore
46    };
47
48enum class FrameLoadType {
49    Standard,
50    Back,
51    Forward,
52    IndexedBackForward, // a multi-item hop in the backforward list
53    Reload,
54    Same, // user loads same URL again (but not reload button)
55    RedirectWithLockedBackForwardList, // FIXME: Merge "lockBackForwardList", "lockHistory", "quickRedirect" and "clientRedirect" into a single concept of redirect.
56    Replace,
57    ReloadFromOrigin,
58};
59
60    enum NavigationType {
61        NavigationTypeLinkClicked,
62        NavigationTypeFormSubmitted,
63        NavigationTypeBackForward,
64        NavigationTypeReload,
65        NavigationTypeFormResubmitted,
66        NavigationTypeOther
67    };
68
69    enum ClearProvisionalItemPolicy {
70        ShouldClearProvisionalItem,
71        ShouldNotClearProvisionalItem
72    };
73
74    enum ObjectContentType {
75        ObjectContentNone,
76        ObjectContentImage,
77        ObjectContentFrame,
78        ObjectContentNetscapePlugin,
79        ObjectContentOtherPlugin
80    };
81
82    enum UnloadEventPolicy {
83        UnloadEventPolicyNone,
84        UnloadEventPolicyUnloadOnly,
85        UnloadEventPolicyUnloadAndPageHide
86    };
87
88    enum ShouldSendReferrer {
89        MaybeSendReferrer,
90        NeverSendReferrer
91    };
92
93    // Passed to FrameLoader::urlSelected() and ScriptController::executeIfJavaScriptURL()
94    // to control whether, in the case of a JavaScript URL, executeIfJavaScriptURL() should
95    // replace the document.  It is a FIXME to eliminate this extra parameter from
96    // executeIfJavaScriptURL(), in which case this enum can go away.
97    enum ShouldReplaceDocumentIfJavaScriptURL {
98        ReplaceDocumentIfJavaScriptURL,
99        DoNotReplaceDocumentIfJavaScriptURL
100    };
101
102    enum ReasonForCallingAllowPlugins {
103        AboutToInstantiatePlugin,
104        NotAboutToInstantiatePlugin
105    };
106
107    enum WebGLLoadPolicy {
108        WebGLBlockCreation,
109        WebGLAllowCreation,
110        WebGLPendingCreation
111    };
112
113    enum class LockHistory {
114        Yes,
115        No
116    };
117
118    enum class LockBackForwardList {
119        Yes,
120        No
121    };
122
123    enum class AllowNavigationToInvalidURL {
124        Yes,
125        No
126    };
127}
128
129#endif
130