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

Side by Side Diff: android_webview/browser/aw_content_browser_client.cc

Issue 955383003: ContentBrowserClient::RequestPermission replies with PermissionStatus instead of bool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix android geolocation breakage Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "android_webview/browser/aw_content_browser_client.h" 5 #include "android_webview/browser/aw_content_browser_client.h"
6 6
7 #include "android_webview/browser/aw_browser_context.h" 7 #include "android_webview/browser/aw_browser_context.h"
8 #include "android_webview/browser/aw_browser_main_parts.h" 8 #include "android_webview/browser/aw_browser_main_parts.h"
9 #include "android_webview/browser/aw_browser_permission_request_delegate.h" 9 #include "android_webview/browser/aw_browser_permission_request_delegate.h"
10 #include "android_webview/browser/aw_contents_client_bridge_base.h" 10 #include "android_webview/browser/aw_contents_client_bridge_base.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 132 }
133 void SaveAccessToken(const GURL& server_url, 133 void SaveAccessToken(const GURL& server_url,
134 const base::string16& access_token) override {} 134 const base::string16& access_token) override {}
135 135
136 private: 136 private:
137 ~AwAccessTokenStore() override {} 137 ~AwAccessTokenStore() override {}
138 138
139 DISALLOW_COPY_AND_ASSIGN(AwAccessTokenStore); 139 DISALLOW_COPY_AND_ASSIGN(AwAccessTokenStore);
140 }; 140 };
141 141
142 } // namespace 142 void CallbackPermisisonStatusWrapper(
143 const base::Callback<void(content::PermissionStatus)>& callback,
144 bool allowed) {
145 callback.Run(allowed ? content::PERMISSION_STATUS_GRANTED
146 : content::PERMISSION_STATUS_DENIED);
147 }
148
149 } // anonymous namespace
143 150
144 std::string AwContentBrowserClient::GetAcceptLangsImpl() { 151 std::string AwContentBrowserClient::GetAcceptLangsImpl() {
145 // Start with the currnet locale. 152 // Start with the currnet locale.
146 std::string langs = base::android::GetDefaultLocale(); 153 std::string langs = base::android::GetDefaultLocale();
147 154
148 // If we're not en-US, add in en-US which will be 155 // If we're not en-US, add in en-US which will be
149 // used with a lower q-value. 156 // used with a lower q-value.
150 if (base::StringToLowerASCII(langs) != "en-us") { 157 if (base::StringToLowerASCII(langs) != "en-us") {
151 langs += ",en-US"; 158 langs += ",en-US";
152 } 159 }
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 callback.Run(NULL); 380 callback.Run(NULL);
374 } 381 }
375 } 382 }
376 383
377 void AwContentBrowserClient::RequestPermission( 384 void AwContentBrowserClient::RequestPermission(
378 content::PermissionType permission, 385 content::PermissionType permission,
379 content::WebContents* web_contents, 386 content::WebContents* web_contents,
380 int bridge_id, 387 int bridge_id,
381 const GURL& requesting_frame, 388 const GURL& requesting_frame,
382 bool user_gesture, 389 bool user_gesture,
383 const base::Callback<void(bool)>& result_callback) { 390 const base::Callback<void(content::PermissionStatus)>& callback) {
384 int render_process_id = web_contents->GetRenderProcessHost()->GetID(); 391 int render_process_id = web_contents->GetRenderProcessHost()->GetID();
385 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID(); 392 int render_view_id = web_contents->GetRenderViewHost()->GetRoutingID();
386 GURL origin = requesting_frame.GetOrigin(); 393 GURL origin = requesting_frame.GetOrigin();
387 AwBrowserPermissionRequestDelegate* delegate = 394 AwBrowserPermissionRequestDelegate* delegate =
388 AwBrowserPermissionRequestDelegate::FromID(render_process_id, 395 AwBrowserPermissionRequestDelegate::FromID(render_process_id,
389 render_view_id); 396 render_view_id);
390 switch (permission) { 397 switch (permission) {
391 case content::PERMISSION_GEOLOCATION: 398 case content::PERMISSION_GEOLOCATION:
392 if (!delegate) { 399 if (!delegate) {
393 DVLOG(0) << "Dropping GeolocationPermission request"; 400 DVLOG(0) << "Dropping GeolocationPermission request";
394 result_callback.Run(false); 401 callback.Run(content::PERMISSION_STATUS_DENIED);
395 return; 402 return;
396 } 403 }
397 delegate->RequestGeolocationPermission(origin, result_callback); 404 delegate->RequestGeolocationPermission(
405 origin, base::Bind(&CallbackPermisisonStatusWrapper, callback));
398 break; 406 break;
399 case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER: 407 case content::PERMISSION_PROTECTED_MEDIA_IDENTIFIER:
400 if (!delegate) { 408 if (!delegate) {
401 DVLOG(0) << "Dropping ProtectedMediaIdentifierPermission request"; 409 DVLOG(0) << "Dropping ProtectedMediaIdentifierPermission request";
402 result_callback.Run(false); 410 callback.Run(content::PERMISSION_STATUS_DENIED);
403 return; 411 return;
404 } 412 }
405 delegate->RequestProtectedMediaIdentifierPermission(origin, 413 delegate->RequestProtectedMediaIdentifierPermission(
406 result_callback); 414 origin, base::Bind(&CallbackPermisisonStatusWrapper, callback));
407 break; 415 break;
408 case content::PERMISSION_MIDI_SYSEX: 416 case content::PERMISSION_MIDI_SYSEX:
409 case content::PERMISSION_NOTIFICATIONS: 417 case content::PERMISSION_NOTIFICATIONS:
410 case content::PERMISSION_PUSH_MESSAGING: 418 case content::PERMISSION_PUSH_MESSAGING:
411 NOTIMPLEMENTED() << "RequestPermission not implemented for " 419 NOTIMPLEMENTED() << "RequestPermission not implemented for "
412 << permission; 420 << permission;
413 break; 421 break;
414 case content::PERMISSION_NUM: 422 case content::PERMISSION_NUM:
415 NOTREACHED() << "Invalid RequestPermission for " << permission; 423 NOTREACHED() << "Invalid RequestPermission for " << permission;
416 break; 424 break;
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
549 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents); 557 return native_factory_->CreateExternalVideoSurfaceContainer(web_contents);
550 } 558 }
551 #endif 559 #endif
552 560
553 content::DevToolsManagerDelegate* 561 content::DevToolsManagerDelegate*
554 AwContentBrowserClient::GetDevToolsManagerDelegate() { 562 AwContentBrowserClient::GetDevToolsManagerDelegate() {
555 return new AwDevToolsManagerDelegate(); 563 return new AwDevToolsManagerDelegate();
556 } 564 }
557 565
558 } // namespace android_webview 566 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698