| 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
|
| + // |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
|
|
|
|
|