Skip to content

Commit 9294201

Browse files
committed
Simplify no-handler case: throw exception any time there is no handler for a message. Similarly, let runtime exceptions inside handlers bubble up and be caught by webkit instead of simply logging them in WVJB. References GH PR marcuswestin#97
1 parent c8e4234 commit 9294201

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

WebViewJavascriptBridge/WebViewJavascriptBridge.m

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -190,25 +190,15 @@ - (void)_flushMessageQueue {
190190
WVJBHandler handler;
191191
if (message[@"handlerName"]) {
192192
handler = _messageHandlers[message[@"handlerName"]];
193-
if (!handler) {
194-
NSLog(@"WVJB Warning: No handler for %@", message[@"handlerName"]);
195-
return responseCallback(@{});
196-
}
197193
} else {
198194
handler = _messageHandler;
199-
if (!handler) {
200-
NSLog(@"WVJB Warning: No handler for message from JS: %@", message);
201-
return responseCallback(@{});
202-
}
203195
}
204-
205-
@try {
206-
id data = message[@"data"];
207-
handler(data, responseCallback);
208-
}
209-
@catch (NSException *exception) {
210-
NSLog(@"WebViewJavascriptBridge: WARNING: objc handler threw. %@ %@", message, exception);
196+
197+
if (!handler) {
198+
[NSException raise:@"WVJBNoHandlerException" format:@"No handler for message from JS: %@", message];
211199
}
200+
201+
handler(message[@"data"], responseCallback);
212202
}
213203
}
214204
}

0 commit comments

Comments
 (0)