| Index: content/renderer/browser_plugin/browser_plugin.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc
|
| index e7b711f7f6b9dd47a0cf9985520b172429ab3963..4483c58a89cbee6df3bf41ae2fd000f4ed9e7033 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin.cc
|
| @@ -71,6 +71,8 @@ static std::string PermissionTypeToString(BrowserPluginPermissionType type) {
|
| return browser_plugin::kPermissionTypeNewWindow;
|
| case BrowserPluginPermissionTypePointerLock:
|
| return browser_plugin::kPermissionTypePointerLock;
|
| + case BrowserPluginPermissionTypeJavaScriptDialog:
|
| + return browser_plugin::kPermissionTypeDialog;
|
| case BrowserPluginPermissionTypeUnknown:
|
| default:
|
| NOTREACHED();
|
| @@ -503,11 +505,14 @@ void BrowserPlugin::OnRequestPermission(
|
| // The New Window API is very similiar to the permission API in structure,
|
| // but exposes a slightly different interface to the developer and so we put
|
| // it in a separate event.
|
| - const char* event_name =
|
| - (permission_type == BrowserPluginPermissionTypeNewWindow) ?
|
| - browser_plugin::kEventNewWindow :
|
| - browser_plugin::kEventRequestPermission;
|
| -
|
| + const char* event_name = NULL;
|
| + if (permission_type == BrowserPluginPermissionTypeNewWindow) {
|
| + event_name = browser_plugin::kEventNewWindow;
|
| + } else if (permission_type == BrowserPluginPermissionTypeJavaScriptDialog) {
|
| + event_name = browser_plugin::kEventDialog;
|
| + } else {
|
| + event_name = browser_plugin::kEventRequestPermission;
|
| + }
|
| AddPermissionRequestToSet(request_id);
|
|
|
| std::map<std::string, base::Value*> props;
|
| @@ -974,25 +979,29 @@ WebKit::WebPluginContainer* BrowserPlugin::container() const {
|
| return container_;
|
| }
|
|
|
| -void BrowserPlugin::RespondPermission(int request_id, bool allow) {
|
| +void BrowserPlugin::RespondPermission(
|
| + int request_id, bool allow, const std::string& user_input) {
|
| browser_plugin_manager()->Send(
|
| new BrowserPluginHostMsg_RespondPermission(
|
| - render_view_routing_id_, guest_instance_id_, request_id, allow));
|
| + render_view_routing_id_, guest_instance_id_,
|
| + request_id, allow, user_input));
|
| }
|
|
|
| void BrowserPlugin::RespondPermissionIfRequestIsPending(
|
| - int request_id, bool allow) {
|
| + int request_id, bool allow, const std::string& user_input) {
|
| PendingPermissionRequests::iterator iter =
|
| pending_permission_requests_.find(request_id);
|
| if (iter == pending_permission_requests_.end())
|
| return;
|
|
|
| pending_permission_requests_.erase(iter);
|
| - RespondPermission(request_id, allow);
|
| + RespondPermission(request_id, allow, user_input);
|
| }
|
|
|
| -void BrowserPlugin::OnEmbedderDecidedPermission(int request_id, bool allow) {
|
| - RespondPermissionIfRequestIsPending(request_id, allow);
|
| +void BrowserPlugin::OnEmbedderDecidedPermission(int request_id,
|
| + bool allow,
|
| + const std::string& user_input) {
|
| + RespondPermissionIfRequestIsPending(request_id, allow, user_input);
|
| }
|
|
|
| bool BrowserPlugin::initialize(WebPluginContainer* container) {
|
|
|