Unreviewed, fix iOS build with recent SDKs.
[WebKit-https.git] / Source / WebKit / UIProcess / API / Cocoa / _WKInspector.mm
1 /*
2  * Copyright (C) 2018 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 #import "config.h"
27 #import "_WKInspector.h"
28
29 #import "WKWebViewInternal.h"
30 #import "WebProcessProxy.h"
31 #import "_WKFrameHandleInternal.h"
32 #import "_WKInspectorInternal.h"
33 #import <wtf/RetainPtr.h>
34
35 @implementation _WKInspector
36
37 - (WKWebView *)webView
38 {
39     if (auto* page = _inspector->inspectedPage())
40         return fromWebPageProxy(*page);
41     return nil;
42 }
43
44 - (BOOL)isConnected
45 {
46     return _inspector->isConnected();
47 }
48
49 - (BOOL)isVisible
50 {
51     return _inspector->isVisible();
52 }
53
54 - (BOOL)isFront
55 {
56     return _inspector->isFront();
57 }
58
59 - (BOOL)isProfilingPage
60 {
61     return _inspector->isProfilingPage();
62 }
63
64 - (BOOL)isElementSelectionActive
65 {
66     return _inspector->isElementSelectionActive();
67 }
68
69 - (void)connect
70 {
71     _inspector->connect();
72 }
73
74 - (void)show
75 {
76     _inspector->show();
77 }
78
79 - (void)hide
80 {
81     _inspector->hide();
82 }
83
84 - (void)close
85 {
86     _inspector->close();
87 }
88
89 - (void)showConsole
90 {
91     _inspector->showConsole();
92 }
93
94 - (void)showResources
95 {
96     _inspector->showResources();
97 }
98
99 - (void)showMainResourceForFrame:(_WKFrameHandle *)frame
100 {
101     if (auto* page = _inspector->inspectedPage())
102         _inspector->showMainResourceForFrame(page->process().webFrame(frame._frameID));
103 }
104
105 - (void)attach
106 {
107     _inspector->attach();
108 }
109
110 - (void)detach
111 {
112     _inspector->detach();
113 }
114
115 - (void)showTimelines
116 {
117     _inspector->showTimelines();
118 }
119
120 - (void)togglePageProfiling
121 {
122     _inspector->togglePageProfiling();
123 }
124
125 - (void)toggleElementSelection
126 {
127     _inspector->toggleElementSelection();
128 }
129
130 - (void)printErrorToConsole:(NSString *)error
131 {
132     // FIXME: This should use a new message source rdar://problem/34658378
133     [self.webView evaluateJavaScript:[NSString stringWithFormat:@"console.error(\"%@\");", error] completionHandler:nil];
134 }
135
136 - (API::Object&)_apiObject
137 {
138     return *_inspector;
139 }
140
141 @end