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

Unified Diff: content/shell/browser/layout_test/layout_test_permission_manager.cc

Issue 1099943003: Notifications: use LayoutTestPermissionManager to handle permissions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_midiclientmock
Patch Set: Created 5 years, 8 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/shell/browser/layout_test/layout_test_permission_manager.cc
diff --git a/content/shell/browser/layout_test/layout_test_permission_manager.cc b/content/shell/browser/layout_test/layout_test_permission_manager.cc
index 36c96c836c9572a1fa42e0c3a11342e1fc6b763b..14fbac953633b1379985ae3fa18ade507fe7d2a6 100644
--- a/content/shell/browser/layout_test/layout_test_permission_manager.cc
+++ b/content/shell/browser/layout_test/layout_test_permission_manager.cc
@@ -14,27 +14,6 @@
namespace content {
-namespace {
-
-void RequestDesktopNotificationPermissionOnIO(
- const GURL& origin,
- const base::Callback<void(PermissionStatus)>& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- LayoutTestNotificationManager* manager =
- LayoutTestContentBrowserClient::Get()->GetLayoutTestNotificationManager();
- PermissionStatus result = manager ? manager->RequestPermission(origin)
- : PERMISSION_STATUS_GRANTED;
-
- // The callback came from the UI thread, we need to run it from there again.
- BrowserThread::PostTask(
- BrowserThread::UI,
- FROM_HERE,
- base::Bind(callback, result));
-}
-
-} // anonymous namespace
-
LayoutTestPermissionManager::PermissionDescription::PermissionDescription(
PermissionType type,
const GURL& origin,
@@ -78,16 +57,6 @@ void LayoutTestPermissionManager::RequestPermission(
const base::Callback<void(PermissionStatus)>& callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- if (permission == PermissionType::NOTIFICATIONS) {
- BrowserThread::PostTask(
- BrowserThread::IO,
- FROM_HERE,
- base::Bind(&RequestDesktopNotificationPermissionOnIO,
- requesting_origin,
- callback));
- return;
- }
-
callback.Run(GetPermissionStatus(
permission, requesting_origin,
web_contents->GetLastCommittedURL().GetOrigin()));
@@ -98,12 +67,17 @@ void LayoutTestPermissionManager::CancelPermissionRequest(
WebContents* web_contents,
int request_id,
const GURL& requesting_origin) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
void LayoutTestPermissionManager::ResetPermission(
PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ base::AutoLock lock(permissions_lock_);
+
auto it = permissions_.find(
PermissionDescription(permission, requesting_origin, embedding_origin));
if (it == permissions_.end())
@@ -115,6 +89,10 @@ PermissionStatus LayoutTestPermissionManager::GetPermissionStatus(
PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
+ BrowserThread::CurrentlyOn(BrowserThread::IO));
+
+ base::AutoLock lock(permissions_lock_);
auto it = permissions_.find(
PermissionDescription(permission, requesting_origin, embedding_origin));
@@ -127,6 +105,7 @@ void LayoutTestPermissionManager::RegisterPermissionUsage(
PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
int LayoutTestPermissionManager::SubscribePermissionStatusChange(
@@ -134,12 +113,16 @@ int LayoutTestPermissionManager::SubscribePermissionStatusChange(
const GURL& requesting_origin,
const GURL& embedding_origin,
const base::Callback<void(PermissionStatus)>& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
// TODO(mlamouri): to be implemented, see https://crbug.com/475141
return -1;
}
void LayoutTestPermissionManager::UnsubscribePermissionStatusChange(
int subscription_id) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
// TODO(mlamouri): to be implemented, see https://crbug.com/475141
}
@@ -147,8 +130,12 @@ void LayoutTestPermissionManager::SetPermission(PermissionType permission,
PermissionStatus status,
const GURL& origin,
const GURL& embedding_origin) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
PermissionDescription description(permission, origin, embedding_origin);
+ base::AutoLock lock(permissions_lock_);
+
auto it = permissions_.find(description);
if (it == permissions_.end()) {
permissions_.insert(std::pair<PermissionDescription, PermissionStatus>(
@@ -159,6 +146,9 @@ void LayoutTestPermissionManager::SetPermission(PermissionType permission,
}
void LayoutTestPermissionManager::ResetPermissions() {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ base::AutoLock lock(permissions_lock_);
permissions_.clear();
}

Powered by Google App Engine
This is Rietveld 408576698