OLD | NEW |
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 <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 19 matching lines...) Expand all Loading... |
30 class HostContentSettingsMap; | 30 class HostContentSettingsMap; |
31 | 31 |
32 namespace content { | 32 namespace content { |
33 class RenderViewHost; | 33 class RenderViewHost; |
34 } | 34 } |
35 | 35 |
36 namespace net { | 36 namespace net { |
37 class CookieOptions; | 37 class CookieOptions; |
38 } | 38 } |
39 | 39 |
| 40 namespace rappor { |
| 41 class RapporService; |
| 42 } |
| 43 |
40 // This class manages state about permissions, content settings, cookies and | 44 // This class manages state about permissions, content settings, cookies and |
41 // site data for a specific WebContents. It tracks which content was accessed | 45 // site data for a specific WebContents. It tracks which content was accessed |
42 // and which content was blocked. Based on this it provides information about | 46 // and which content was blocked. Based on this it provides information about |
43 // which types of content were accessed and blocked. | 47 // which types of content were accessed and blocked. |
44 class TabSpecificContentSettings | 48 class TabSpecificContentSettings |
45 : public content::WebContentsObserver, | 49 : public content::WebContentsObserver, |
46 public content_settings::Observer, | 50 public content_settings::Observer, |
47 public content::WebContentsUserData<TabSpecificContentSettings> { | 51 public content::WebContentsUserData<TabSpecificContentSettings> { |
48 public: | 52 public: |
49 // Fields describing the current mic/camera state. If a page has attempted to | 53 // Fields describing the current mic/camera state. If a page has attempted to |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 // Adds the given |SiteDataObserver|. The |observer| is notified when a | 363 // Adds the given |SiteDataObserver|. The |observer| is notified when a |
360 // locale shared object, like for example a cookie, is accessed. | 364 // locale shared object, like for example a cookie, is accessed. |
361 void AddSiteDataObserver(SiteDataObserver* observer); | 365 void AddSiteDataObserver(SiteDataObserver* observer); |
362 | 366 |
363 // Removes the given |SiteDataObserver|. | 367 // Removes the given |SiteDataObserver|. |
364 void RemoveSiteDataObserver(SiteDataObserver* observer); | 368 void RemoveSiteDataObserver(SiteDataObserver* observer); |
365 | 369 |
366 // Block all content. Used for testing content setting bubbles. | 370 // Block all content. Used for testing content setting bubbles. |
367 void BlockAllContentForTesting(); | 371 void BlockAllContentForTesting(); |
368 | 372 |
| 373 // Set the Rappor service used for testing. |
| 374 void SetRapporServiceForTesting(rappor::RapporService* rappor_service); |
| 375 |
369 private: | 376 private: |
370 friend class content::WebContentsUserData<TabSpecificContentSettings>; | 377 friend class content::WebContentsUserData<TabSpecificContentSettings>; |
371 | 378 |
372 explicit TabSpecificContentSettings(content::WebContents* tab); | 379 explicit TabSpecificContentSettings(content::WebContents* tab); |
373 | 380 |
374 // content::WebContentsObserver overrides. | 381 // content::WebContentsObserver overrides. |
375 void RenderFrameForInterstitialPageCreated( | 382 void RenderFrameForInterstitialPageCreated( |
376 content::RenderFrameHost* render_frame_host) override; | 383 content::RenderFrameHost* render_frame_host) override; |
377 bool OnMessageReceived(const IPC::Message& message, | 384 bool OnMessageReceived(const IPC::Message& message, |
378 content::RenderFrameHost* render_frame_host) override; | 385 content::RenderFrameHost* render_frame_host) override; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 std::string media_stream_selected_video_device_; | 470 std::string media_stream_selected_video_device_; |
464 | 471 |
465 // The devices to be displayed in the media bubble when the media stream | 472 // The devices to be displayed in the media bubble when the media stream |
466 // request is requesting certain specific devices. | 473 // request is requesting certain specific devices. |
467 std::string media_stream_requested_audio_device_; | 474 std::string media_stream_requested_audio_device_; |
468 std::string media_stream_requested_video_device_; | 475 std::string media_stream_requested_video_device_; |
469 | 476 |
470 // Observer to watch for content settings changed. | 477 // Observer to watch for content settings changed. |
471 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_; | 478 ScopedObserver<HostContentSettingsMap, content_settings::Observer> observer_; |
472 | 479 |
| 480 // The service used to record Rappor metrics. Can be set for testing. |
| 481 rappor::RapporService* rappor_service_; |
| 482 |
473 DISALLOW_COPY_AND_ASSIGN(TabSpecificContentSettings); | 483 DISALLOW_COPY_AND_ASSIGN(TabSpecificContentSettings); |
474 }; | 484 }; |
475 | 485 |
476 #endif // CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_ | 486 #endif // CHROME_BROWSER_CONTENT_SETTINGS_TAB_SPECIFIC_CONTENT_SETTINGS_H_ |
OLD | NEW |