summaryrefslogtreecommitdiffstats
path: root/ppapi/api
diff options
context:
space:
mode:
authoryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-27 07:18:46 +0000
committeryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-27 07:18:46 +0000
commit1a559448088694cd4dc077c7a14436942fda5061 (patch)
treec539c7259f878cf6c43bbbbc2515eaa46b0f4f45 /ppapi/api
parent3f84377fbfae99a755a20f8a9a5390526cec9ce1 (diff)
downloadchromium_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.idl106
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);
+};