Plumb WebTriggeringEventInfo through LoadURLExternally

This code path is used for e.g. shift-clicks coming from subframes
(strangely). By plumbing it into LoadURLExternally / OpenURL, we can
use this information in the popup blocker.

This patch makes the additional refactor to split LoadURLExternally
into two, LoadURLExternally and DownloadURL.

Bug: 733330
Change-Id: I94476ecbf3f55ef26664d7c6a294e84fce7bba32
Reviewed-on: https://chromium-review.googlesource.com/565681
Reviewed-by: David Trainor <[email protected]>
Reviewed-by: Nick Carter <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Commit-Queue: Charlie Harrison <[email protected]>
Cr-Commit-Position: refs/heads/master@{#487251}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 351489a5..6f6388c 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -424,8 +424,10 @@
       const WebPluginInfo& info,
       const blink::WebPluginParams& params,
       std::unique_ptr<PluginInstanceThrottler> throttler) override;
-  void LoadURLExternally(const blink::WebURLRequest& request,
-                         blink::WebNavigationPolicy policy) override;
+  void LoadURLExternally(
+      const blink::WebURLRequest& request,
+      blink::WebNavigationPolicy policy,
+      blink::WebTriggeringEventInfo triggering_event_info) override;
   void ExecuteJavaScript(const base::string16& javascript) override;
   bool IsMainFrame() override;
   bool IsHidden() override;
@@ -543,9 +545,11 @@
                               const blink::WebString& source_name,
                               unsigned source_line,
                               const blink::WebString& stack_trace) override;
+  void DownloadURL(const blink::WebURLRequest& request,
+                   const blink::WebString& suggested_name) override;
   void LoadURLExternally(const blink::WebURLRequest& request,
                          blink::WebNavigationPolicy policy,
-                         const blink::WebString& suggested_name,
+                         blink::WebTriggeringEventInfo triggering_event_info,
                          bool should_replace_current_entry) override;
   void LoadErrorPage(int reason) override;
   blink::WebNavigationPolicy DecidePolicyForNavigation(