mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add plugin placeholder and policy support (issue #1708)
- Default plugin loading policy can be specified using the new `--plugin-policy=[allow|block|detect]` command-line flag. - Move CefRequestHandler::OnBeforePluginLoad to CefRequestContextHandler and add a new policy argument that supports different actions (allow, block, detect, disable) on a per-plugin-instance basis. - Add CefContextMenuHandler::RunContextMenu for providing a custom context menu implementation. - Add CefResourceBundleHandler::GetDataResourceForScale for returning scaled resources (issue #1272). - Add CefResourceBundle for retrieving resources from the resource bundle (*.pak) files loaded by CEF during startup or via the CefResourceBundleHandler. - Linux: Fix Debug build IO access warning with CefGetMimeType. - cef_unittests: Move the refcounting implementation from TestHandler to subclasses in order to support interface inheritance from subclasses.
This commit is contained in:
@ -45,6 +45,30 @@
|
||||
|
||||
class CefContextMenuParams;
|
||||
|
||||
|
||||
///
|
||||
// Callback interface used for continuation of custom context menu display.
|
||||
///
|
||||
/*--cef(source=library)--*/
|
||||
class CefRunContextMenuCallback : public virtual CefBase {
|
||||
public:
|
||||
typedef cef_event_flags_t EventFlags;
|
||||
|
||||
///
|
||||
// Complete context menu display by selecting the specified |command_id| and
|
||||
// |event_flags|.
|
||||
///
|
||||
/*--cef(capi_name=cont)--*/
|
||||
virtual void Continue(int command_id, EventFlags event_flags) =0;
|
||||
|
||||
///
|
||||
// Cancel context menu display.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual void Cancel() =0;
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
// Implement this interface to handle context menu events. The methods of this
|
||||
// class will be called on the UI thread.
|
||||
@ -67,6 +91,23 @@ class CefContextMenuHandler : public virtual CefBase {
|
||||
CefRefPtr<CefContextMenuParams> params,
|
||||
CefRefPtr<CefMenuModel> model) {}
|
||||
|
||||
///
|
||||
// Called to allow custom display of the context menu. |params| provides
|
||||
// information about the context menu state. |model| contains the context menu
|
||||
// model resulting from OnBeforeContextMenu. For custom display return true
|
||||
// and execute |callback| either synchronously or asynchronously with the
|
||||
// selected command ID. For default display return false. Do not keep
|
||||
// references to |params| or |model| outside of this callback.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool RunContextMenu(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefContextMenuParams> params,
|
||||
CefRefPtr<CefMenuModel> model,
|
||||
CefRefPtr<CefRunContextMenuCallback> callback) {
|
||||
return false;
|
||||
}
|
||||
|
||||
///
|
||||
// Called to execute a command selected from the context menu. Return true if
|
||||
// the command was handled or false for the default implementation. See
|
||||
@ -226,6 +267,19 @@ class CefContextMenuParams : public virtual CefBase {
|
||||
///
|
||||
/*--cef(default_retval=CM_EDITFLAG_NONE)--*/
|
||||
virtual EditStateFlags GetEditStateFlags() =0;
|
||||
|
||||
///
|
||||
// Returns true if the context menu contains items specified by the renderer
|
||||
// process (for example, plugin placeholder or pepper plugin menu items).
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool IsCustomMenu() =0;
|
||||
|
||||
///
|
||||
// Returns true if the context menu was invoked from a pepper plugin.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool IsPepperMenu() =0;
|
||||
};
|
||||
|
||||
#endif // CEF_INCLUDE_CEF_CONTEXT_MENU_HANDLER_H_
|
||||
|
Reference in New Issue
Block a user