/* Copyright 2012 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. */ /** * This file contains the PPP_Flash_BrowserOperations interface. */ label Chrome { M20 = 1.0, M21 = 1.2, M22 = 1.3 }; [assert_size(4)] enum PP_Flash_BrowserOperations_SettingType { PP_FLASH_BROWSEROPERATIONS_SETTINGTYPE_CAMERAMIC = 0, PP_FLASH_BROWSEROPERATIONS_SETTINGTYPE_PEERNETWORKING = 1 }; [assert_size(4)] enum PP_Flash_BrowserOperations_Permission { // This value is only used with SetSitePermission(). PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT = 0, PP_FLASH_BROWSEROPERATIONS_PERMISSION_ALLOW = 1, PP_FLASH_BROWSEROPERATIONS_PERMISSION_BLOCK = 2, PP_FLASH_BROWSEROPERATIONS_PERMISSION_ASK = 3 }; struct PP_Flash_BrowserOperations_SiteSetting { cstr_t site; PP_Flash_BrowserOperations_Permission permission; }; typedef void PPB_Flash_BrowserOperations_GetSettingsCallback( [inout] mem_t user_data, [in] PP_Bool success, [in] PP_Flash_BrowserOperations_Permission default_permission, [in] uint32_t site_count, [in, size_is(site_count)] PP_Flash_BrowserOperations_SiteSetting[] sites); /** * This interface allows the browser to request the plugin do things. */ interface PPP_Flash_BrowserOperations { /** * This function allows the plugin to implement the "Clear site data" feature. * * @param[in] plugin_data_path String containing the directory where the * plugin data is * stored. On UTF16 systems (Windows), this will be encoded as UTF-8. It will * be an absolute path and will not have a directory separator (slash) at the * end. * @param[in] site String specifying which site to clear the data for. This * will be null to clear data for all sites. * @param[in] flags Currently always 0 in Chrome to clear all data. This may * be extended in the future to clear only specific types of data. * @param[in] max_age The maximum age in seconds to clear data for. This * allows the plugin to implement "clear past hour" and "clear past data", * etc. * * @return PP_TRUE on success, PP_FALSE on failure. * * See also the NPP_ClearSiteData function in NPAPI. * https://wiki.mozilla.org/NPAPI:ClearSiteData */ PP_Bool ClearSiteData([in] str_t plugin_data_path, [in] str_t site, [in] uint64_t flags, [in] uint64_t max_age); /** * Requests the plugin to deauthorize content licenses. It prevents Flash from * playing protected content, such as movies and music the user may have * rented or purchased. * * @param[in] plugin_data_path String containing the directory where the * plugin settings are stored. * * @return PP_TRUE on success, PP_FALSE on failure. */ [version=1.2] PP_Bool DeauthorizeContentLicenses([in] str_t plugin_data_path); /** * Gets permission settings. callback will be called exactly once * to return the settings. * * @param[in] plugin_data_path String containing the directory where the * plugin settings are stored. * @param[in] setting_type What type of setting to retrieve. * @param[in] callback The callback to return retrieved data. * @param[inout] user_data An opaque pointer that will be passed to * callback. */ [version=1.2] void GetPermissionSettings( [in] str_t plugin_data_path, [in] PP_Flash_BrowserOperations_SettingType setting_type, [in] PPB_Flash_BrowserOperations_GetSettingsCallback callback, [inout] mem_t user_data); /** * Sets default permission. It applies to all sites except those with * site-specific settings. * * @param[in] plugin_data_path String containing the directory where the * plugin settings are stored. * @param[in] setting_type What type of setting to set. * @param[in] permission The default permission. * @param[in] clear_site_specific Whether to remove all site-specific * settings. * * @return PP_TRUE on success, PP_FALSE on failure. */ [version=1.2] PP_Bool SetDefaultPermission( [in] str_t plugin_data_path, [in] PP_Flash_BrowserOperations_SettingType setting_type, [in] PP_Flash_BrowserOperations_Permission permission, [in] PP_Bool clear_site_specific); /** * Sets site-specific permission. If a site has already got site-specific * permission and it is not in sites, it won't be affected. * * @param[in] plugin_data_path String containing the directory where the * plugin settings are stored. * @param[in] setting_type What type of setting to set. * @param[in] site_count How many items are there in sites. * @param[in] sites The site-specific settings. If a site is specified with * PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT permission, it * will be removed from the site-specific list. * * @return PP_TRUE on success, PP_FALSE on failure. */ [version=1.2] PP_Bool SetSitePermission( [in] str_t plugin_data_path, [in] PP_Flash_BrowserOperations_SettingType setting_type, [in] uint32_t site_count, [in, size_is(site_count)] PP_Flash_BrowserOperations_SiteSetting[] sites); /** * Returns a list of sites that have stored data, for use with the * "Clear site data" feature. * * @param[in] plugin_data_path String containing the directory where the * plugin data is stored. * @param[out] sites A NULL-terminated array of sites that have stored data. * Use FreeSiteList on the array when done. * * See also the NPP_GetSitesWithData function in NPAPI: * https://wiki.mozilla.org/NPAPI:ClearSiteData */ [version=1.3] void GetSitesWithData([in] str_t plugin_data_path, [out] str_t[] sites); /** * Frees the list of sites returned by GetSitesWithData. * * @param[in] sites A NULL-terminated array of strings. */ [version=1.3] void FreeSiteList([inout] str_t[] sites); };