Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2803)

Unified Diff: content/renderer/browser_plugin/browser_plugin.cc

Issue 19679002: <webview>: Implement dialog API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed test Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {
« no previous file with comments | « content/renderer/browser_plugin/browser_plugin.h ('k') | content/renderer/browser_plugin/browser_plugin_bindings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698