* 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/web_contents_permission_helper.cc
const content::MediaStreamRequest& request,
    const content::MediaResponseCallback& response_callback) {
  auto callback = base::Bind(&MediaAccessAllowed, request, response_callback);
  
  
  RequestPermission(content::PermissionType::AUDIO_CAPTURE, callback);
}
void WebContentsPermissionHelper::RequestWebNotificationPermission(
    const base::Callback<void(bool)>& callback) {
  RequestPermission(content::PermissionType::NOTIFICATIONS, callback);
}
void WebContentsPermissionHelper::RequestPointerLockPermission(
    bool user_gesture) {
  RequestPermission(
      static_cast<content::PermissionType>(PermissionType::POINTER_LOCK),
      base::Bind(&OnPointerLockResponse, web_contents_), user_gesture);
}
void WebContentsPermissionHelper::RequestOpenExternalPermission(
    const base::Callback<void(bool)>& callback,
    bool user_gesture) {
  RequestPermission(
      static_cast<content::PermissionType>(PermissionType::OPEN_EXTERNAL),
      callback, user_gesture);
}
}