| Index: chrome/browser/guest_view/web_view/web_view_guest.cc
|
| diff --git a/chrome/browser/guest_view/web_view/web_view_guest.cc b/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| index 9f9ea466b834bb7667ae8d76cd3b6dcf6b5638ab..5714dd0d113b63ad8b65cefaf89e582a9c173aca 100644
|
| --- a/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| +++ b/chrome/browser/guest_view/web_view/web_view_guest.cc
|
| @@ -134,6 +134,8 @@ static std::string PermissionTypeToString(WebViewPermissionType type) {
|
| return webview::kPermissionTypeNewWindow;
|
| case WEB_VIEW_PERMISSION_TYPE_POINTER_LOCK:
|
| return webview::kPermissionTypePointerLock;
|
| + case WEB_VIEW_PERMISSION_TYPE_FILESYSTEM:
|
| + return webview::kPermissionTypeFileSystem;
|
| default:
|
| NOTREACHED();
|
| return std::string();
|
| @@ -257,6 +259,9 @@ void WebViewGuest::RecordUserInitiatedUMA(const PermissionResponseInfo& info,
|
| content::RecordAction(
|
| UserMetricsAction("WebView.PermissionAllow.PointerLock"));
|
| break;
|
| + case WEB_VIEW_PERMISSION_TYPE_FILESYSTEM:
|
| + content::RecordAction(
|
| + UserMetricsAction("WebView.PermissionAllow.FileSystem"));
|
| default:
|
| break;
|
| }
|
| @@ -289,6 +294,10 @@ void WebViewGuest::RecordUserInitiatedUMA(const PermissionResponseInfo& info,
|
| content::RecordAction(
|
| UserMetricsAction("WebView.PermissionDeny.PointerLock"));
|
| break;
|
| + case WEB_VIEW_PERMISSION_TYPE_FILESYSTEM:
|
| + content::RecordAction(
|
| + UserMetricsAction("WebView.PermissionDeny.FileSystem"));
|
| + break;
|
| default:
|
| break;
|
| }
|
| @@ -616,6 +625,27 @@ void WebViewGuest::Reload() {
|
| guest_web_contents()->GetController().Reload(false);
|
| }
|
|
|
| +void WebViewGuest::RequestFileSystemPermission(
|
| + const GURL& url,
|
| + const base::Callback<void(bool)>& callback) {
|
| + base::DictionaryValue request_info;
|
| + request_info.Set(guestview::kUrl, base::Value::CreateStringValue(url.spec()));
|
| + RequestPermission(
|
| + WEB_VIEW_PERMISSION_TYPE_FILESYSTEM,
|
| + request_info,
|
| + base::Bind(&WebViewGuest::OnWebViewFileSystemPermissionResponse,
|
| + base::Unretained(this),
|
| + callback),
|
| + false /* allowed_by_default */);
|
| +}
|
| +
|
| +void WebViewGuest::OnWebViewFileSystemPermissionResponse(
|
| + const base::Callback<void(bool)>& callback,
|
| + bool allow,
|
| + const std::string& user_input) {
|
| + callback.Run(allow && attached());
|
| +}
|
| +
|
| void WebViewGuest::RequestGeolocationPermission(
|
| int bridge_id,
|
| const GURL& requesting_frame,
|
|
|