* Electron version: 1.7.9
* Operating system: macOS 10.12.6

### Expected behavior

Often Electron apps want to get in front of `openExternal` calls to prevent them, or display a "are you sure you want to open" dialog for possibly unsafe url schemes like `ssh://`. At the moment, you can either blanket deny these or allow all for a give host via a `permissionRequestHandler`. It would be helpful for the permission handler to be given the url that the window is attempting to navigate to better determine the action it should take.


```
 $ git clone git@github.com:gerges/electron-quick-start.git -b  feat/set-permission-handler-openexternal-url
 $ npm install
 $ npm run start
```
atom/browser/atom_permission_manager.cc
const std::vector<content::PermissionType>& permissions,
    content::RenderFrameHost* render_frame_host,
    const GURL& requesting_origin,
    bool user_gesture,
    const StatusesCallback& response_callback) {
  if (permissions.empty()) {
    response_callback.Run(std::vector<blink::mojom::PermissionStatus>());
    return kNoPendingOperation;
  }
  if (request_handler_.is_null()) {
    std::vector<blink::mojom::PermissionStatus> statuses;
    for (auto permission : permissions) {
      if (permission == content::PermissionType::MIDI_SYSEX) {
        content::ChildProcessSecurityPolicy::GetInstance()->
            GrantSendMidiSysExMessage(render_frame_host->GetProcess()->GetID());
      }
      statuses.push_back(blink::mojom::PermissionStatus::GRANTED);
    }
    response_callback.Run(statuses);
    return kNoPendingOperation;
  }
  auto web_contents =