summaryrefslogtreecommitdiffstats
path: root/src/plugins/darwin/qdarwinwebview.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/darwin/qdarwinwebview.mm')
-rw-r--r--src/plugins/darwin/qdarwinwebview.mm39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/plugins/darwin/qdarwinwebview.mm b/src/plugins/darwin/qdarwinwebview.mm
index 9cf7b93..c8cb11f 100644
--- a/src/plugins/darwin/qdarwinwebview.mm
+++ b/src/plugins/darwin/qdarwinwebview.mm
@@ -117,12 +117,16 @@ QT_END_NAMESPACE
}
- (QtWKWebViewDelegate *)initWithQAbstractWebView:(QDarwinWebViewPrivate *)webViewPrivate;
- (void)pageDone;
+- (void)handleError:(NSError *)error;
// protocol:
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation;
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation
withError:(NSError *)error;
+- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation
+ withError:(NSError *)error;
+
@end
@implementation QtWKWebViewDelegate
@@ -141,6 +145,18 @@ QT_END_NAMESPACE
Q_EMIT qDarwinWebViewPrivate->titleChanged(qDarwinWebViewPrivate->title());
}
+- (void)handleError:(NSError *)error
+{
+ [self pageDone];
+ NSString *errorString = [error localizedDescription];
+ NSURL *failingURL = error.userInfo[@"NSErrorFailingURLKey"];
+ const QUrl url = [failingURL isKindOfClass:[NSURL class]]
+ ? QUrl::fromNSURL(failingURL) : qDarwinWebViewPrivate->url();
+ Q_EMIT qDarwinWebViewPrivate->loadingChanged(
+ QWebViewLoadRequestPrivate(url, QWebView::LoadFailedStatus,
+ QString::fromNSString(errorString)));
+}
+
- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation
{
Q_UNUSED(webView);
@@ -176,18 +192,17 @@ QT_END_NAMESPACE
{
Q_UNUSED(webView);
Q_UNUSED(navigation);
- if (--qDarwinWebViewPrivate->requestFrameCount == 0) {
- [self pageDone];
- NSString *errorString = [error localizedDescription];
- NSURL *failingURL = error.userInfo[@"NSErrorFailingURLKey"];
- const QUrl url = [failingURL isKindOfClass:[NSURL class]]
- ? QUrl::fromNSURL(failingURL)
- : qDarwinWebViewPrivate->url();
- Q_EMIT qDarwinWebViewPrivate->loadingChanged(
- QWebViewLoadRequestPrivate(url,
- QWebView::LoadFailedStatus,
- QString::fromNSString(errorString)));
- }
+ if (--qDarwinWebViewPrivate->requestFrameCount == 0)
+ [self handleError:error];
+}
+
+- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation
+ withError:(NSError *)error
+{
+ Q_UNUSED(webView);
+ Q_UNUSED(navigation);
+ if (--qDarwinWebViewPrivate->requestFrameCount == 0)
+ [self handleError:error];
}
- (void)webView:(WKWebView *)webView