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

Side by Side Diff: chrome/browser/content_settings/tab_specific_content_settings.h

Issue 588153003: Remove MediaSettingChangedInfobar and show latest state in bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: switch -> if Created 6 years, 2 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 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_ 5 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_
6 #define CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_ 6 #define CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 27 matching lines...) Expand all
38 38
39 // This class manages state about permissions, content settings, cookies and 39 // This class manages state about permissions, content settings, cookies and
40 // site data for a specific WebContents. It tracks which content was accessed 40 // site data for a specific WebContents. It tracks which content was accessed
41 // and which content was blocked. Based on this it provides information about 41 // and which content was blocked. Based on this it provides information about
42 // which types of content were accessed and blocked. 42 // which types of content were accessed and blocked.
43 class TabSpecificContentSettings 43 class TabSpecificContentSettings
44 : public content::WebContentsObserver, 44 : public content::WebContentsObserver,
45 public content_settings::Observer, 45 public content_settings::Observer,
46 public content::WebContentsUserData<TabSpecificContentSettings> { 46 public content::WebContentsUserData<TabSpecificContentSettings> {
47 public: 47 public:
48 enum MicrophoneCameraState { 48 // Fields describing the current mic/camera state. If a page has attempted to
49 MICROPHONE_CAMERA_NOT_ACCESSED = 0, 49 // access a device, the XXX_ACCESSED bit will be set. If access was blocked,
50 MICROPHONE_ACCESSED, 50 // XXX_BLOCKED will be set.
51 CAMERA_ACCESSED, 51 typedef uint32_t MicrophoneCameraState;
52 MICROPHONE_CAMERA_ACCESSED, 52 static const MicrophoneCameraState MICROPHONE_CAMERA_NOT_ACCESSED = 0;
53 MICROPHONE_BLOCKED, 53 static const MicrophoneCameraState MICROPHONE_ACCESSED = 1 << 0;
54 CAMERA_BLOCKED, 54 static const MicrophoneCameraState MICROPHONE_BLOCKED = 1 << 1;
55 MICROPHONE_CAMERA_BLOCKED, 55 static const MicrophoneCameraState CAMERA_ACCESSED = 1 << 2;
56 }; 56 static const MicrophoneCameraState CAMERA_BLOCKED = 1 << 3;
57 57
58 // Classes that want to be notified about site data events must implement 58 // Classes that want to be notified about site data events must implement
59 // this abstract class and add themselves as observer to the 59 // this abstract class and add themselves as observer to the
60 // |TabSpecificContentSettings|. 60 // |TabSpecificContentSettings|.
61 class SiteDataObserver { 61 class SiteDataObserver {
62 public: 62 public:
63 explicit SiteDataObserver( 63 explicit SiteDataObserver(
64 TabSpecificContentSettings* tab_specific_content_settings); 64 TabSpecificContentSettings* tab_specific_content_settings);
65 virtual ~SiteDataObserver(); 65 virtual ~SiteDataObserver();
66 66
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } 204 }
205 205
206 const std::string& media_stream_requested_audio_device() const { 206 const std::string& media_stream_requested_audio_device() const {
207 return media_stream_requested_audio_device_; 207 return media_stream_requested_audio_device_;
208 } 208 }
209 209
210 const std::string& media_stream_requested_video_device() const { 210 const std::string& media_stream_requested_video_device() const {
211 return media_stream_requested_video_device_; 211 return media_stream_requested_video_device_;
212 } 212 }
213 213
214 const std::string& media_stream_selected_audio_device() const {
215 return media_stream_selected_audio_device_;
216 }
217
218 const std::string& media_stream_selected_video_device() const {
219 return media_stream_selected_video_device_;
220 }
221
214 // Returns the state of the camera and microphone usage. 222 // Returns the state of the camera and microphone usage.
215 MicrophoneCameraState GetMicrophoneCameraState() const; 223 MicrophoneCameraState GetMicrophoneCameraState() const;
216 224
225 // Returns whether the state of the camera and microphone usage or device has
226 // changed.
227 bool IsMicrophoneCameraStateChanged() const;
228
217 // Returns the ContentSettingsUsagesState that controls the 229 // Returns the ContentSettingsUsagesState that controls the
218 // geolocation API usage on this page. 230 // geolocation API usage on this page.
219 const ContentSettingsUsagesState& geolocation_usages_state() const { 231 const ContentSettingsUsagesState& geolocation_usages_state() const {
220 return geolocation_usages_state_; 232 return geolocation_usages_state_;
221 } 233 }
222 234
223 // Returns the ContentSettingsUsageState that controls the MIDI usage on 235 // Returns the ContentSettingsUsageState that controls the MIDI usage on
224 // this page. 236 // this page.
225 const ContentSettingsUsagesState& midi_usages_state() const { 237 const ContentSettingsUsagesState& midi_usages_state() const {
226 return midi_usages_state_; 238 return midi_usages_state_;
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 ContentSetting pending_protocol_handler_setting_; 418 ContentSetting pending_protocol_handler_setting_;
407 419
408 // Stores whether the user can load blocked plugins on this page. 420 // Stores whether the user can load blocked plugins on this page.
409 bool load_plugins_link_enabled_; 421 bool load_plugins_link_enabled_;
410 422
411 // The origin of the media stream request. Note that we only support handling 423 // The origin of the media stream request. Note that we only support handling
412 // settings for one request per tab. The latest request's origin will be 424 // settings for one request per tab. The latest request's origin will be
413 // stored here. http://crbug.com/259794 425 // stored here. http://crbug.com/259794
414 GURL media_stream_access_origin_; 426 GURL media_stream_access_origin_;
415 427
428 // The microphone and camera state at the last media stream request.
429 // This value is composed of MicrophoneCameraState values.
430 MicrophoneCameraState microphone_camera_state_;
431 // The selected devices at the last media stream request.
432 std::string media_stream_selected_audio_device_;
433 std::string media_stream_selected_video_device_;
434
416 // The devices to be displayed in the media bubble when the media stream 435 // The devices to be displayed in the media bubble when the media stream
417 // request is requesting certain specific devices. 436 // request is requesting certain specific devices.
418 std::string media_stream_requested_audio_device_; 437 std::string media_stream_requested_audio_device_;
419 std::string media_stream_requested_video_device_; 438 std::string media_stream_requested_video_device_;
420 439
421 // Observer to watch for content settings changed. 440 // Observer to watch for content settings changed.
422 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_; 441 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_;
423 442
424 DISALLOW_COPY_AND_ASSIGN(TabSpecificContentSettings); 443 DISALLOW_COPY_AND_ASSIGN(TabSpecificContentSettings);
425 }; 444 };
426 445
427 #endif // CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_ 446 #endif // CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_
OLDNEW
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/content_settings/tab_specific_content_settings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698