fddc3662e08c89836964d8283f5dc72b6d9423f4
[WebKit.git] / WebKitTools / WebKitTestRunner / InjectedBundle / InjectedBundlePage.h
1 /*
2  * Copyright (C) 2010 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  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef InjectedBundlePage_h
27 #define InjectedBundlePage_h
28
29 #include <WebKit2/WKBundlePage.h>
30
31 namespace WTR {
32
33 class InjectedBundlePage {
34 public:
35     InjectedBundlePage(WKBundlePageRef);
36     ~InjectedBundlePage();
37
38     WKBundlePageRef page() const { return m_page; }
39
40 private:
41     // Loader Client
42     static void _didStartProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
43     static void _didReceiveServerRedirectForProvisionalLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
44     static void _didFailProvisionalLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
45     static void _didCommitLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
46     static void _didFinishLoadForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
47     static void _didFailLoadWithErrorForFrame(WKBundlePageRef page, WKBundleFrameRef frame, const void *clientInfo);
48     static void _didReceiveTitleForFrame(WKBundlePageRef page, WKStringRef title, WKBundleFrameRef frame, const void *clientInfo);
49     static void _didClearWindowForFrame(WKBundlePageRef page, WKBundleFrameRef frame, JSContextRef ctx, JSObjectRef window, const void *clientInfo);
50     void didStartProvisionalLoadForFrame(WKBundleFrameRef frame);
51     void didReceiveServerRedirectForProvisionalLoadForFrame(WKBundleFrameRef frame);
52     void didFailProvisionalLoadWithErrorForFrame(WKBundleFrameRef frame);
53     void didCommitLoadForFrame(WKBundleFrameRef frame);
54     void didFinishLoadForFrame(WKBundleFrameRef frame);
55     void didFailLoadWithErrorForFrame(WKBundleFrameRef frame);
56     void didReceiveTitleForFrame(WKStringRef title, WKBundleFrameRef frame);
57     void didClearWindowForFrame(WKBundleFrameRef frame, JSContextRef ctx, JSObjectRef window);
58
59     // UI Client
60     static void _addMessageToConsole(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, const void *clientInfo);
61     void addMessageToConsole(WKStringRef message, uint32_t lineNumber);
62
63     WKBundlePageRef m_page;
64 };
65
66 } // namespace WTR
67
68 #endif // InjectedBundlePage_h