| Index: ios/web/web_state/ui/crw_wk_script_message_router.mm
|
| diff --git a/ios/web/web_state/ui/crw_wk_script_message_router.mm b/ios/web/web_state/ui/crw_wk_script_message_router.mm
|
| index 5699abdfb92067217ee1189e988c8afada72153d..0e1dfbb33e0dd333119542563b4cbd246663c9b7 100644
|
| --- a/ios/web/web_state/ui/crw_wk_script_message_router.mm
|
| +++ b/ios/web/web_state/ui/crw_wk_script_message_router.mm
|
| @@ -100,8 +100,12 @@
|
| - (void)tryRemoveScriptMessageHandlerForName:(NSString*)messageName
|
| webView:(WKWebView*)webView {
|
| NSMapTable* webViewToHandlerMap = [_handlers objectForKey:messageName];
|
| - if (![webViewToHandlerMap objectForKey:webView])
|
| + id handler = [webViewToHandlerMap objectForKey:webView];
|
| + if (!handler)
|
| return;
|
| + // Extend the lifetime of |handler| so removeScriptMessageHandlerForName: can
|
| + // be called from inside of |handler|.
|
| + [[handler retain] autorelease];
|
| if (webViewToHandlerMap.count == 1) {
|
| [_handlers removeObjectForKey:messageName];
|
| [_userContentController removeScriptMessageHandlerForName:messageName];
|
|
|