mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Rename CEF1 files from /trunk to /trunk/cef1 (issue #564).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@570 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
119
cef1/include/cef_nplugin.h
Normal file
119
cef1/include/cef_nplugin.h
Normal file
@ -0,0 +1,119 @@
|
||||
// Copyright (c) 2011 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
#ifndef CEF_INCLUDE_CEF_NPLUGIN_H_
|
||||
#define CEF_INCLUDE_CEF_NPLUGIN_H_
|
||||
#pragma once
|
||||
|
||||
#include "internal/cef_nplugin_types.h"
|
||||
|
||||
///
|
||||
// Netscape plugins are normally built at separate DLLs that are loaded by the
|
||||
// browser when needed. This interface supports the creation of plugins that
|
||||
// are an embedded component of the application. Embedded plugins built using
|
||||
// this interface use the same Netscape Plugin API as DLL-based plugins.
|
||||
// See https://developer.mozilla.org/En/Gecko_Plugin_API_Reference for complete
|
||||
// documentation on how to use the Netscape Plugin API.
|
||||
//
|
||||
// This class provides attribute information and entry point functions for a
|
||||
// plugin.
|
||||
///
|
||||
class CefPluginInfo : public cef_plugin_info_t {
|
||||
public:
|
||||
CefPluginInfo() {
|
||||
Init();
|
||||
}
|
||||
virtual ~CefPluginInfo() {
|
||||
Reset();
|
||||
}
|
||||
|
||||
CefPluginInfo(const CefPluginInfo& r) { // NOLINT(runtime/explicit)
|
||||
Init();
|
||||
*this = r;
|
||||
}
|
||||
CefPluginInfo(const cef_plugin_info_t& r) { // NOLINT(runtime/explicit)
|
||||
Init();
|
||||
*this = r;
|
||||
}
|
||||
|
||||
void Reset() {
|
||||
cef_string_clear(&unique_name);
|
||||
cef_string_clear(&display_name);
|
||||
cef_string_clear(&version);
|
||||
cef_string_clear(&description);
|
||||
cef_string_clear(&mime_types);
|
||||
cef_string_clear(&file_extensions);
|
||||
cef_string_clear(&type_descriptions);
|
||||
Init();
|
||||
}
|
||||
|
||||
void Attach(const cef_plugin_info_t& r) {
|
||||
Reset();
|
||||
*static_cast<cef_plugin_info_t*>(this) = r;
|
||||
}
|
||||
|
||||
void Detach() {
|
||||
Init();
|
||||
}
|
||||
|
||||
CefPluginInfo& operator=(const CefPluginInfo& r) {
|
||||
return operator=(static_cast<const cef_plugin_info_t&>(r));
|
||||
}
|
||||
|
||||
CefPluginInfo& operator=(const cef_plugin_info_t& r) {
|
||||
cef_string_copy(r.unique_name.str, r.unique_name.length, &unique_name);
|
||||
cef_string_copy(r.display_name.str, r.display_name.length, &display_name);
|
||||
cef_string_copy(r.version.str, r.version.length, &version);
|
||||
cef_string_copy(r.description.str, r.description.length, &description);
|
||||
cef_string_copy(r.mime_types.str, r.mime_types.length, &mime_types);
|
||||
cef_string_copy(r.file_extensions.str, r.file_extensions.length,
|
||||
&file_extensions);
|
||||
cef_string_copy(r.type_descriptions.str, r.type_descriptions.length,
|
||||
&type_descriptions);
|
||||
#if !defined(OS_POSIX) || defined(OS_MACOSX)
|
||||
np_getentrypoints = r.np_getentrypoints;
|
||||
#endif
|
||||
np_initialize = r.np_initialize;
|
||||
np_shutdown = r.np_shutdown;
|
||||
return *this;
|
||||
}
|
||||
|
||||
protected:
|
||||
void Init() {
|
||||
memset(static_cast<cef_plugin_info_t*>(this), 0, sizeof(cef_plugin_info_t));
|
||||
}
|
||||
};
|
||||
|
||||
///
|
||||
// Register a plugin with the system.
|
||||
///
|
||||
bool CefRegisterPlugin(const CefPluginInfo& plugin_info);
|
||||
|
||||
#endif // CEF_INCLUDE_CEF_NPLUGIN_H_
|
Reference in New Issue
Block a user