Chromium Code Reviews| Index: chrome/renderer/content_settings_observer.h |
| =================================================================== |
| --- chrome/renderer/content_settings_observer.h (revision 0) |
| +++ chrome/renderer/content_settings_observer.h (revision 0) |
| @@ -0,0 +1,74 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_RENDERER_CONTENT_SETTINGS_OBSERVER_H_ |
| +#define CHROME_RENDERER_CONTENT_SETTINGS_OBSERVER_H_ |
| +#pragma once |
| + |
| +#include <map> |
| + |
| +#include "chrome/common/content_settings.h" |
| +#include "content/renderer/render_view_observer.h" |
| +#include "content/renderer/render_view_observer_tracker.h" |
| + |
| +class GURL; |
| + |
| +// Handles blocking content per content settings for each RenderView. |
| +class ContentSettingsObserver |
| + : public RenderViewObserver, |
| + public RenderViewObserverTracker<ContentSettingsObserver> { |
| + public: |
| + explicit ContentSettingsObserver(RenderView* render_view); |
| + virtual ~ContentSettingsObserver(); |
| + |
| + // Sets the content settings that back allowScripts(), allowImages(), and |
| + // allowPlugins(). |
| + void SetContentSettings(const ContentSettings& settings); |
| + |
| + // Returns the setting for the given type. |
| + ContentSetting GetContentSetting(ContentSettingsType type); |
| + |
| + // Sends an IPC notification that the specified content type was blocked. |
| + // If the content type requires it, |resource_identifier| names the specific |
| + // resource that was blocked (the plugin path in the case of plugins), |
| + // otherwise it's the empty string. |
| + void DidBlockContentType(ContentSettingsType settings_type, |
| + const std::string& resource_identifier); |
| + |
| + private: |
| + // RenderViewObserver implementation. |
| + virtual bool OnMessageReceived(const IPC::Message& message); |
| + virtual void DidCommitProvisionalLoad(WebKit::WebFrame* frame, |
| + bool is_new_navigation); |
| + virtual bool AllowImages(WebKit::WebFrame* frame, bool enabled_per_settings); |
| + virtual bool AllowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings); |
| + virtual bool AllowScript(WebKit::WebFrame* frame, bool enabled_per_settings); |
| + virtual void DidNotAllowPlugins(WebKit::WebFrame* frame); |
| + virtual void DidNotAllowScript(WebKit::WebFrame* frame); |
| + |
| + // Message handlers. |
| + void OnSetContentSettingsForLoadingURL( |
| + const GURL& url, |
| + const ContentSettings& content_settings); |
| + |
| + // Helper method that returns if the user wants to block content of type |
|
pastarmovj
2011/04/18 16:09:23
nit: Indentation
jam
2011/04/18 16:50:10
Done.
|
| + // |content_type|. |
| + bool AllowContentType(ContentSettingsType settings_type); |
| + |
| + // Resets the |content_blocked_| array. |
| + void ClearBlockedContentSettings(); |
| + |
| + typedef std::map<GURL, ContentSettings> HostContentSettings; |
| + HostContentSettings host_content_settings_; |
| + |
| + // Stores if loading of images, scripts, and plugins is allowed. |
| + ContentSettings current_content_settings_; |
| + |
| + // Stores if images, scripts, and plugins have actually been blocked. |
| + bool content_blocked_[CONTENT_SETTINGS_NUM_TYPES]; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ContentSettingsObserver); |
| +}; |
| + |
| +#endif // CHROME_RENDERER_CONTENT_SETTINGS_OBSERVER_H_ |
| Property changes on: chrome\renderer\content_settings_observer.h |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |