From 52d0e2d5bf4ed748c3fef89814a29425a0355a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mond=C3=A9sir?= Date: Thu, 20 Aug 2015 17:55:21 +0200 Subject: [PATCH 1/3] remove _numRequestsLoading --- WebViewJavascriptBridge/WebViewJavascriptBridge.m | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridge.m b/WebViewJavascriptBridge/WebViewJavascriptBridge.m index 2eb09e95..57fe2d2d 100644 --- a/WebViewJavascriptBridge/WebViewJavascriptBridge.m +++ b/WebViewJavascriptBridge/WebViewJavascriptBridge.m @@ -19,10 +19,6 @@ @implementation WebViewJavascriptBridge { WVJB_WEAK id _webViewDelegate; long _uniqueId; WebViewJavascriptBridgeBase *_base; -#if defined WVJB_PLATFORM_IOS - NSUInteger _numRequestsLoading; -#endif - } /* API @@ -187,10 +183,9 @@ - (void) _platformSpecificDealloc { - (void)webViewDidFinishLoad:(UIWebView *)webView { if (webView != _webView) { return; } + - _numRequestsLoading--; - - if (_numRequestsLoading == 0 && ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { + if ( ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { [_base injectJavascriptFile:YES]; } [_base dispatchStartUpMessageQueue]; @@ -204,8 +199,7 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView { - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { if (webView != _webView) { return; } - - _numRequestsLoading--; + __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:didFailLoadWithError:)]) { @@ -234,8 +228,7 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *) - (void)webViewDidStartLoad:(UIWebView *)webView { if (webView != _webView) { return; } - - _numRequestsLoading++; + __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webViewDidStartLoad:)]) { From 51c35ec261d03fd9176162f8cc0920141e429c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mond=C3=A9sir?= Date: Fri, 21 Aug 2015 16:59:08 +0200 Subject: [PATCH 2/3] watch webKit error 101 --- WebViewJavascriptBridge/WebViewJavascriptBridge.m | 12 ++++++++---- .../WebViewJavascriptBridgeBase.m | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridge.m b/WebViewJavascriptBridge/WebViewJavascriptBridge.m index 57fe2d2d..75f7901e 100644 --- a/WebViewJavascriptBridge/WebViewJavascriptBridge.m +++ b/WebViewJavascriptBridge/WebViewJavascriptBridge.m @@ -19,6 +19,9 @@ @implementation WebViewJavascriptBridge { WVJB_WEAK id _webViewDelegate; long _uniqueId; WebViewJavascriptBridgeBase *_base; +#if defined WVJB_PLATFORM_IOS + NSUInteger _numRequestsLoading; +#endif } /* API @@ -183,9 +186,9 @@ - (void) _platformSpecificDealloc { - (void)webViewDidFinishLoad:(UIWebView *)webView { if (webView != _webView) { return; } - + _numRequestsLoading--; - if ( ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { + if ( _numRequestsLoading <= 0 && ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { [_base injectJavascriptFile:YES]; } [_base dispatchStartUpMessageQueue]; @@ -200,7 +203,8 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView { - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { if (webView != _webView) { return; } - + _numRequestsLoading--; + //watch error code 101 __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:didFailLoadWithError:)]) { [strongDelegate webView:webView didFailLoadWithError:error]; @@ -228,7 +232,7 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *) - (void)webViewDidStartLoad:(UIWebView *)webView { if (webView != _webView) { return; } - + _numRequestsLoading++; __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webViewDidStartLoad:)]) { diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m index 3717eb7d..2e3f1456 100644 --- a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m +++ b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m @@ -12,6 +12,7 @@ @implementation WebViewJavascriptBridgeBase { id _webViewDelegate; long _uniqueId; NSBundle *_resourceBundle; + } static bool logging = false; From d59454ee32f8880da98d7ecef0abaacaaf41c63c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mond=C3=A9sir?= Date: Tue, 25 Aug 2015 15:04:54 +0200 Subject: [PATCH 3/3] possible overflow --- WebViewJavascriptBridge/WebViewJavascriptBridge.m | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridge.m b/WebViewJavascriptBridge/WebViewJavascriptBridge.m index 75f7901e..ce5284d1 100644 --- a/WebViewJavascriptBridge/WebViewJavascriptBridge.m +++ b/WebViewJavascriptBridge/WebViewJavascriptBridge.m @@ -18,11 +18,7 @@ @implementation WebViewJavascriptBridge { WVJB_WEAK WVJB_WEBVIEW_TYPE* _webView; WVJB_WEAK id _webViewDelegate; long _uniqueId; - WebViewJavascriptBridgeBase *_base; -#if defined WVJB_PLATFORM_IOS - NSUInteger _numRequestsLoading; -#endif -} + WebViewJavascriptBridgeBase *_base;} /* API *****/ @@ -186,9 +182,8 @@ - (void) _platformSpecificDealloc { - (void)webViewDidFinishLoad:(UIWebView *)webView { if (webView != _webView) { return; } - _numRequestsLoading--; - if ( _numRequestsLoading <= 0 && ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { + if (![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) { [_base injectJavascriptFile:YES]; } [_base dispatchStartUpMessageQueue]; @@ -203,8 +198,6 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView { - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { if (webView != _webView) { return; } - _numRequestsLoading--; - //watch error code 101 __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:didFailLoadWithError:)]) { [strongDelegate webView:webView didFailLoadWithError:error]; @@ -232,7 +225,6 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *) - (void)webViewDidStartLoad:(UIWebView *)webView { if (webView != _webView) { return; } - _numRequestsLoading++; __strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate; if (strongDelegate && [strongDelegate respondsToSelector:@selector(webViewDidStartLoad:)]) {