Unreviewed, fix iOS build with recent SDKs.
[WebKit-https.git] / Source / WebKit / UIProcess / API / Cocoa / PageLoadStateObserver.h
1 /*
2  * Copyright (C) 2015 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 PageLoadStateObserver_h
27 #define PageLoadStateObserver_h
28
29 #import "PageLoadState.h"
30
31 namespace WebKit {
32
33 class PageLoadStateObserver : public PageLoadState::Observer {
34     WTF_MAKE_FAST_ALLOCATED;
35 public:
36     PageLoadStateObserver(id object, NSString *activeURLKey = @"activeURL")
37         : m_object(object)
38         , m_activeURLKey(adoptNS([activeURLKey copy]))
39     {
40     }
41
42 private:
43     void willChangeIsLoading() override
44     {
45         [m_object willChangeValueForKey:@"loading"];
46     }
47
48     void didChangeIsLoading() override
49     {
50         [m_object didChangeValueForKey:@"loading"];
51     }
52
53     void willChangeTitle() override
54     {
55         [m_object willChangeValueForKey:@"title"];
56     }
57
58     void didChangeTitle() override
59     {
60         [m_object didChangeValueForKey:@"title"];
61     }
62
63     void willChangeActiveURL() override
64     {
65         [m_object willChangeValueForKey:m_activeURLKey.get()];
66     }
67
68     void didChangeActiveURL() override
69     {
70         [m_object didChangeValueForKey:m_activeURLKey.get()];
71     }
72
73     void willChangeHasOnlySecureContent() override
74     {
75         [m_object willChangeValueForKey:@"hasOnlySecureContent"];
76     }
77
78     void didChangeHasOnlySecureContent() override
79     {
80         [m_object didChangeValueForKey:@"hasOnlySecureContent"];
81     }
82
83     void willChangeEstimatedProgress() override
84     {
85         [m_object willChangeValueForKey:@"estimatedProgress"];
86     }
87
88     void didChangeEstimatedProgress() override
89     {
90         [m_object didChangeValueForKey:@"estimatedProgress"];
91     }
92
93     void willChangeCanGoBack() override { }
94     void didChangeCanGoBack() override { }
95     void willChangeCanGoForward() override { }
96     void didChangeCanGoForward() override { }
97     void willChangeNetworkRequestsInProgress() override { }
98     void didChangeNetworkRequestsInProgress() override { }
99     void willChangeCertificateInfo() override { }
100     void didChangeCertificateInfo() override { }
101     void didSwapWebProcesses() override { }
102
103     void willChangeWebProcessIsResponsive() override
104     {
105         [m_object willChangeValueForKey:@"_webProcessIsResponsive"];
106     }
107
108     void didChangeWebProcessIsResponsive() override
109     {
110         [m_object didChangeValueForKey:@"_webProcessIsResponsive"];
111     }
112
113     id m_object;
114     RetainPtr<NSString> m_activeURLKey;
115 };
116
117 }
118
119 #endif // PageLoadStateObserver_h