diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-27 07:18:46 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-27 07:18:46 +0000 |
commit | 1a559448088694cd4dc077c7a14436942fda5061 (patch) | |
tree | c539c7259f878cf6c43bbbbc2515eaa46b0f4f45 /ppapi/api | |
parent | 3f84377fbfae99a755a20f8a9a5390526cec9ce1 (diff) | |
download | chromium_src-1a559448088694cd4dc077c7a14436942fda5061.zip chromium_src-1a559448088694cd4dc077c7a14436942fda5061.tar.gz chromium_src-1a559448088694cd4dc077c7a14436942fda5061.tar.bz2 |
Pepper Flash settings integration: implement "deauthorize content licenses".
A few notes about PepperFlashSettingsManager:
- It doesn't re-establish a channel for each request. It might seem unnecessary at this point. But that is needed for implementing content settings (camera/mic and peer networking), which requires more interactions with the broker process.
- Similarly, the support of multiple in-flight requests isn't very useful for deauthorizing content licenses, but that is useful for content settings, e.g., sending multiple GetPermissionSettings requests for different setting types.
BUG=112190
TEST=None
Review URL: https://chromiumcodereview.appspot.com/10391173
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139210 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/api')
-rw-r--r-- | ppapi/api/private/ppp_flash_browser_operations.idl | 106 |
1 files changed, 104 insertions, 2 deletions
diff --git a/ppapi/api/private/ppp_flash_browser_operations.idl b/ppapi/api/private/ppp_flash_browser_operations.idl index f7dcd8c..f4b4e65 100644 --- a/ppapi/api/private/ppp_flash_browser_operations.idl +++ b/ppapi/api/private/ppp_flash_browser_operations.idl @@ -8,9 +8,40 @@ */ label Chrome { - M20 = 1.0 + M20 = 1.0, + M21 = 1.1 }; +[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 <code>SetSitePermission()</code>. + PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT = 0, + PP_FLASH_BROWSEROPERATIONS_PERMISSION_ALLOW = 1, + PP_FLASH_BROWSEROPERATIONS_PERMISSION_BLOCK = 2, + PP_FLASH_BROWSEROPERATIONS_PERMISSION_ASK = 3 +}; + +[assert_size(24)] +struct PP_Flash_BrowserOperations_SiteSetting { + PP_Var site; + PP_Flash_BrowserOperations_Permission permission; + // Makes the size consistent across compilers. + int32_t padding; +}; + +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. */ @@ -41,5 +72,76 @@ interface PPP_Flash_BrowserOperations { str_t site, uint64_t flags, 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 <code>PP_TRUE</code> on success, <code>PP_FALSE</code> on failure. + */ + [version=1.1] + PP_Bool DeauthorizeContentLicenses([in] str_t plugin_data_path); + + /** + * Gets permission settings. <code>callback</code> 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 + * <code>callback</code>. + */ + [version=1.1] + 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 <code>PP_TRUE</code> on success, <code>PP_FALSE</code> on failure. + */ + [version=1.1] + 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_speicifc); + + /** + * Sets site-specific permission. If a site has already got site-specific + * permission and it is not in <code>sites</code>, 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 <code>sites</code>. + * @param[in] sites The site-specific settings. If a site is specified with + * <code>PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT</code> permission, it + * will be removed from the site-specific list. + * + * @return <code>PP_TRUE</code> on success, <code>PP_FALSE</code> on failure. + */ + [version=1.1] + 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); +}; |