blob: 41881adb7030e01054120b735077bece7b0f69a7 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PLUGINS_PLUGIN_UTILS_H_
#define CHROME_BROWSER_PLUGINS_PLUGIN_UTILS_H_
#include <string>
#include "base/containers/flat_map.h"
#include "components/content_settings/core/common/content_settings.h"
class GURL;
class HostContentSettingsMap;
namespace content {
class BrowserContext;
struct WebPluginInfo;
}
namespace url {
class Origin;
}
class PluginUtils {
public:
PluginUtils() = delete;
PluginUtils(const PluginUtils&) = delete;
PluginUtils& operator=(const PluginUtils&) = delete;
// |is_default| and |is_managed| may be nullptr. In that case, they aren't
// set.
static void GetPluginContentSetting(
const HostContentSettingsMap* host_content_settings_map,
const content::WebPluginInfo& plugin,
const url::Origin& main_frame_origin,
const GURL& plugin_url,
const std::string& resource,
ContentSetting* setting,
bool* is_default,
bool* is_managed);
// If there's an extension that is allowed to handle |mime_type|, returns its
// ID. Otherwise returns an empty string.
static std::string GetExtensionIdForMimeType(
content::BrowserContext* browser_context,
const std::string& mime_type);
// Returns a map populated with MIME types that are handled by an extension as
// keys and the corresponding extensions Ids as values.
static base::flat_map<std::string, std::string> GetMimeTypeToExtensionIdMap(
content::BrowserContext* browser_context);
};
#endif // CHROME_BROWSER_PLUGINS_PLUGIN_UTILS_H_