Reland "Always suppress system WKWebView Context Menu and show custom context menu."

This is a reland of 2d85a12f776d580fd9d2f12da4a8a94ee81d3245
Original change's description:
> Always suppress system WKWebView Context Menu and show custom context menu.
> 
> Triggering the context menu is done independently of fetching details of the DOM
> element the user long pressed. Previously, if the details of the DOM element
> were not available when the long press recognizer completed, the system context
> menu would be displayed instead of Chrome's custom context menu.
> 
> The system context menu can cause the user lots of confusion. For example, the
> "Add to Reading List" item which is shown on the system context menu conflicts
> with the Chrome Reading List feature. If the user taps the system Reading List
> item, the item will not be added to their Chrome Reading list, but they will
> likely believe that it has been successfully added.
> 
> To resolve these problems, this change always suppresses the system context
> menu and waits for the DOM element to be returned before showing the custom
> Chrome Context Menu. In addition, iFrames will no longer show the WKWebView
> context menu.
> 
> Now, the custom context menu will always be displayed once the DOM element
> details have been fetched as long as the user is still long pressing on the
> element.
> 
> Bug: 542933
> Change-Id: Ia47e659868449bb514fc6b679e0f233c2bcd8182
> Reviewed-on: https://chromium-review.googlesource.com/579585
> Reviewed-by: Eugene But <[email protected]>
> Commit-Queue: Mike Dougherty <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#496606}

Bug: 542933
Change-Id: Ib442e60a76c1ee162a04ed87cbcc94db71b4b7a5
Reviewed-on: https://chromium-review.googlesource.com/628576
Commit-Queue: Eugene But <[email protected]>
Reviewed-by: Eugene But <[email protected]>
Cr-Commit-Position: refs/heads/master@{#496745}
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index 1d8cf39b..3db88bf 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -2728,17 +2728,17 @@
   };
 }
 
-- (BOOL)webState:(web::WebState*)webState
+- (void)webState:(web::WebState*)webState
     handleContextMenu:(const web::ContextMenuParams&)params {
   // Prevent context menu from displaying for a tab which is no longer the
   // current one.
   if (webState != [_model currentTab].webState) {
-    return NO;
+    return;
   }
 
   // No custom context menu if no valid url is available in |params|.
   if (!params.link_url.is_valid() && !params.src_url.is_valid()) {
-    return NO;
+    return;
   }
 
   DCHECK(_browserState);
@@ -2870,7 +2870,6 @@
   }
 
   [_contextMenuCoordinator start];
-  return YES;
 }
 
 - (void)webState:(web::WebState*)webState