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

Side by Side Diff: content/shell/browser/shell_permission_manager.cc

Issue 2908133003: Split GetPermissionStatus into GetPermissionStatusForFrame/Worker
Patch Set: Split GetPermissionStatus into GetPermissionStatusForFrame/Worker Created 3 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/shell/browser/shell_permission_manager.h" 5 #include "content/shell/browser/shell_permission_manager.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "content/public/browser/permission_type.h" 9 #include "content/public/browser/permission_type.h"
10 #include "content/public/common/content_switches.h" 10 #include "content/public/common/content_switches.h"
11 #include "media/base/media_switches.h" 11 #include "media/base/media_switches.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 namespace { 15 namespace {
16 16
17 bool IsWhitelistedPermissionType(PermissionType permission) { 17 bool IsWhitelistedPermissionType(PermissionType permission) {
18 return permission == PermissionType::GEOLOCATION || 18 return permission == PermissionType::GEOLOCATION ||
19 permission == PermissionType::MIDI; 19 permission == PermissionType::MIDI;
20 } 20 }
21 21
22 blink::mojom::PermissionStatus GetPermissionStatus(PermissionType permission) {
23 // Background sync browser tests require permission to be granted by default.
24 // TODO(nsatragno): add a command line flag so that it's only granted for
25 // tests.
26 if (permission == PermissionType::BACKGROUND_SYNC)
27 return blink::mojom::PermissionStatus::GRANTED;
28
29 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
30 if ((permission == PermissionType::AUDIO_CAPTURE ||
31 permission == PermissionType::VIDEO_CAPTURE) &&
32 command_line->HasSwitch(switches::kUseFakeDeviceForMediaStream) &&
33 command_line->HasSwitch(switches::kUseFakeUIForMediaStream)) {
34 return blink::mojom::PermissionStatus::GRANTED;
35 }
36 return blink::mojom::PermissionStatus::DENIED;
37 }
38
22 } // namespace 39 } // namespace
23 40
24 ShellPermissionManager::ShellPermissionManager() 41 ShellPermissionManager::ShellPermissionManager()
25 : PermissionManager() { 42 : PermissionManager() {
26 } 43 }
27 44
28 ShellPermissionManager::~ShellPermissionManager() { 45 ShellPermissionManager::~ShellPermissionManager() {
29 } 46 }
30 47
31 int ShellPermissionManager::RequestPermission( 48 int ShellPermissionManager::RequestPermission(
(...skipping 27 matching lines...) Expand all
59 76
60 void ShellPermissionManager::CancelPermissionRequest(int request_id) { 77 void ShellPermissionManager::CancelPermissionRequest(int request_id) {
61 } 78 }
62 79
63 void ShellPermissionManager::ResetPermission( 80 void ShellPermissionManager::ResetPermission(
64 PermissionType permission, 81 PermissionType permission,
65 const GURL& requesting_origin, 82 const GURL& requesting_origin,
66 const GURL& embedding_origin) { 83 const GURL& embedding_origin) {
67 } 84 }
68 85
69 blink::mojom::PermissionStatus ShellPermissionManager::GetPermissionStatus( 86 blink::mojom::PermissionStatus
87 ShellPermissionManager::GetPermissionStatusForFrame(
70 PermissionType permission, 88 PermissionType permission,
71 const GURL& requesting_origin, 89 content::RenderFrameHost* render_frame_host,
72 const GURL& embedding_origin) { 90 const GURL& requesting_origin) {
73 // Background sync browser tests require permission to be granted by default. 91 return GetPermissionStatus(permission);
74 // TODO(nsatragno): add a command line flag so that it's only granted for 92 }
75 // tests.
76 if (permission == PermissionType::BACKGROUND_SYNC)
77 return blink::mojom::PermissionStatus::GRANTED;
78 93
79 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 94 blink::mojom::PermissionStatus
80 if ((permission == PermissionType::AUDIO_CAPTURE || 95 ShellPermissionManager::GetPermissionStatusForWorker(
81 permission == PermissionType::VIDEO_CAPTURE) && 96 PermissionType permission,
82 command_line->HasSwitch(switches::kUseFakeDeviceForMediaStream) && 97 const GURL& requesting_origin) {
83 command_line->HasSwitch(switches::kUseFakeUIForMediaStream)) { 98 return GetPermissionStatus(permission);
84 return blink::mojom::PermissionStatus::GRANTED;
85 }
86 return blink::mojom::PermissionStatus::DENIED;
87 } 99 }
88 100
89 int ShellPermissionManager::SubscribePermissionStatusChange( 101 int ShellPermissionManager::SubscribePermissionStatusChange(
90 PermissionType permission, 102 PermissionType permission,
91 const GURL& requesting_origin, 103 const GURL& requesting_origin,
92 const GURL& embedding_origin, 104 const GURL& embedding_origin,
93 const base::Callback<void(blink::mojom::PermissionStatus)>& callback) { 105 const base::Callback<void(blink::mojom::PermissionStatus)>& callback) {
94 return kNoPendingOperation; 106 return kNoPendingOperation;
95 } 107 }
96 108
97 void ShellPermissionManager::UnsubscribePermissionStatusChange( 109 void ShellPermissionManager::UnsubscribePermissionStatusChange(
98 int subscription_id) { 110 int subscription_id) {
99 } 111 }
100 112
101 } // namespace content 113 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698