summaryrefslogtreecommitdiffstats
path: root/ppapi/shared_impl
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/shared_impl')
-rw-r--r--ppapi/shared_impl/audio_config_impl.h5
-rw-r--r--ppapi/shared_impl/audio_impl.h5
-rw-r--r--ppapi/shared_impl/char_set_impl.h3
-rw-r--r--ppapi/shared_impl/crypto_impl.h3
-rw-r--r--ppapi/shared_impl/file_ref_impl.h3
-rw-r--r--ppapi/shared_impl/font_impl.h3
-rw-r--r--ppapi/shared_impl/function_group_base.h4
-rw-r--r--ppapi/shared_impl/graphics_3d_impl.h3
-rw-r--r--ppapi/shared_impl/host_resource.h3
-rw-r--r--ppapi/shared_impl/id_assignment.h3
-rw-r--r--ppapi/shared_impl/image_data_impl.h3
-rw-r--r--ppapi/shared_impl/input_event_impl.h6
-rw-r--r--ppapi/shared_impl/instance_impl.h3
-rw-r--r--ppapi/shared_impl/opengles2_impl.h3
-rw-r--r--ppapi/shared_impl/ppapi_preferences.h3
-rw-r--r--ppapi/shared_impl/ppapi_shared_export.h26
-rw-r--r--ppapi/shared_impl/ppp_instance_combined.h3
-rw-r--r--ppapi/shared_impl/resource.h2
-rw-r--r--ppapi/shared_impl/resource_tracker.h3
-rw-r--r--ppapi/shared_impl/scoped_pp_resource.h3
-rw-r--r--ppapi/shared_impl/time_conversion.h11
-rw-r--r--ppapi/shared_impl/tracker_base.h3
-rw-r--r--ppapi/shared_impl/url_request_info_impl.h9
-rw-r--r--ppapi/shared_impl/url_util_impl.h3
-rw-r--r--ppapi/shared_impl/var.h5
-rw-r--r--ppapi/shared_impl/var_tracker.h3
-rw-r--r--ppapi/shared_impl/video_decoder_impl.h3
-rw-r--r--ppapi/shared_impl/webkit_forwarding.h7
28 files changed, 94 insertions, 40 deletions
diff --git a/ppapi/shared_impl/audio_config_impl.h b/ppapi/shared_impl/audio_config_impl.h
index 69a2b73..7577e00 100644
--- a/ppapi/shared_impl/audio_config_impl.h
+++ b/ppapi/shared_impl/audio_config_impl.h
@@ -12,8 +12,9 @@
namespace ppapi {
-class AudioConfigImpl : public Resource,
- public thunk::PPB_AudioConfig_API {
+class PPAPI_SHARED_EXPORT AudioConfigImpl
+ : public Resource,
+ public thunk::PPB_AudioConfig_API {
public:
virtual ~AudioConfigImpl();
diff --git a/ppapi/shared_impl/audio_impl.h b/ppapi/shared_impl/audio_impl.h
index 220962bb..201582d 100644
--- a/ppapi/shared_impl/audio_impl.h
+++ b/ppapi/shared_impl/audio_impl.h
@@ -18,8 +18,9 @@ namespace ppapi {
// Implements the logic to map shared memory and run the audio thread signaled
// from the sync socket. Both the proxy and the renderer implementation use
// this code.
-class AudioImpl : public thunk::PPB_Audio_API,
- public base::DelegateSimpleThread::Delegate {
+class PPAPI_SHARED_EXPORT AudioImpl
+ : public thunk::PPB_Audio_API,
+ public base::DelegateSimpleThread::Delegate {
public:
AudioImpl();
virtual ~AudioImpl();
diff --git a/ppapi/shared_impl/char_set_impl.h b/ppapi/shared_impl/char_set_impl.h
index 4891346..d52e246 100644
--- a/ppapi/shared_impl/char_set_impl.h
+++ b/ppapi/shared_impl/char_set_impl.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "ppapi/c/dev/ppb_char_set_dev.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
struct PPB_Memory_Dev;
@@ -14,7 +15,7 @@ namespace ppapi {
// Contains the implementation of character set conversion that is shared
// between the proxy and the renderer.
-class CharSetImpl {
+class PPAPI_SHARED_EXPORT CharSetImpl {
public:
static char* UTF16ToCharSet(const PPB_Memory_Dev* memory,
const uint16_t* utf16,
diff --git a/ppapi/shared_impl/crypto_impl.h b/ppapi/shared_impl/crypto_impl.h
index a959bc9..0dd99b2 100644
--- a/ppapi/shared_impl/crypto_impl.h
+++ b/ppapi/shared_impl/crypto_impl.h
@@ -7,10 +7,11 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
-class CryptoImpl {
+class PPAPI_SHARED_EXPORT CryptoImpl {
public:
static void GetRandomBytes(char* buffer, uint32_t num_bytes);
};
diff --git a/ppapi/shared_impl/file_ref_impl.h b/ppapi/shared_impl/file_ref_impl.h
index 515912b..3f4bf8f 100644
--- a/ppapi/shared_impl/file_ref_impl.h
+++ b/ppapi/shared_impl/file_ref_impl.h
@@ -29,7 +29,8 @@ struct PPB_FileRef_CreateInfo {
// This class provides the shared implementation of a FileRef. The functions
// that actually "do stuff" like Touch and MakeDirectory are implemented
// differently for the proxied and non-proxied derived classes.
-class FileRefImpl : public Resource, public thunk::PPB_FileRef_API {
+class PPAPI_SHARED_EXPORT FileRefImpl : public Resource,
+ public thunk::PPB_FileRef_API {
public:
struct InitAsImpl {};
struct InitAsProxy {};
diff --git a/ppapi/shared_impl/font_impl.h b/ppapi/shared_impl/font_impl.h
index 9496b16..a8ab2df 100644
--- a/ppapi/shared_impl/font_impl.h
+++ b/ppapi/shared_impl/font_impl.h
@@ -12,12 +12,13 @@
#include "base/memory/scoped_ptr.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
struct PP_FontDescription_Dev;
namespace ppapi {
-class FontImpl {
+class PPAPI_SHARED_EXPORT FontImpl {
public:
// Validates the parameters in thee description. Can be called on any thread.
static bool IsPPFontDescriptionValid(const PP_FontDescription_Dev& desc);
diff --git a/ppapi/shared_impl/function_group_base.h b/ppapi/shared_impl/function_group_base.h
index 23d82d5..31b164f 100644
--- a/ppapi/shared_impl/function_group_base.h
+++ b/ppapi/shared_impl/function_group_base.h
@@ -7,6 +7,8 @@
#include <stddef.h> // For NULL.
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
#define FOR_ALL_PPAPI_FUNCTION_APIS(F) \
F(PPB_CharSet_FunctionAPI) \
F(PPB_CursorControl_FunctionAPI) \
@@ -25,7 +27,7 @@ FOR_ALL_PPAPI_FUNCTION_APIS(DECLARE_FUNCTION_CLASS)
#undef DECLARE_FUNCTION_CLASS
} // namespace thunk
-class FunctionGroupBase {
+class PPAPI_SHARED_EXPORT FunctionGroupBase {
public:
virtual ~FunctionGroupBase();
diff --git a/ppapi/shared_impl/graphics_3d_impl.h b/ppapi/shared_impl/graphics_3d_impl.h
index 781f33f..e9f4187 100644
--- a/ppapi/shared_impl/graphics_3d_impl.h
+++ b/ppapi/shared_impl/graphics_3d_impl.h
@@ -8,6 +8,7 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
#include "ppapi/thunk/ppb_graphics_3d_api.h"
namespace gpu {
@@ -20,7 +21,7 @@ class GLES2Implementation;
namespace ppapi {
-class Graphics3DImpl : public thunk::PPB_Graphics3D_API {
+class PPAPI_SHARED_EXPORT Graphics3DImpl : public thunk::PPB_Graphics3D_API {
public:
// PPB_Graphics3D_API implementation.
virtual int32_t GetAttribs(int32_t* attrib_list) OVERRIDE;
diff --git a/ppapi/shared_impl/host_resource.h b/ppapi/shared_impl/host_resource.h
index 0d9b3bf..b614546 100644
--- a/ppapi/shared_impl/host_resource.h
+++ b/ppapi/shared_impl/host_resource.h
@@ -7,6 +7,7 @@
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_resource.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -17,7 +18,7 @@ namespace ppapi {
// this tranformation.
//
// All HostResources respresent IDs valid in the host.
-class HostResource {
+class PPAPI_SHARED_EXPORT HostResource {
public:
HostResource() : instance_(0), host_resource_(0) {
}
diff --git a/ppapi/shared_impl/id_assignment.h b/ppapi/shared_impl/id_assignment.h
index 1adc2bd..039e7fe 100644
--- a/ppapi/shared_impl/id_assignment.h
+++ b/ppapi/shared_impl/id_assignment.h
@@ -8,6 +8,7 @@
#include <limits>
#include "base/basictypes.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -21,7 +22,7 @@ enum PPIdType {
PP_ID_TYPE_COUNT
};
-extern const unsigned int kPPIdTypeBits;
+PPAPI_SHARED_EXPORT extern const unsigned int kPPIdTypeBits;
extern const int32 kMaxPPId;
diff --git a/ppapi/shared_impl/image_data_impl.h b/ppapi/shared_impl/image_data_impl.h
index 1d2f76f5..f931c78 100644
--- a/ppapi/shared_impl/image_data_impl.h
+++ b/ppapi/shared_impl/image_data_impl.h
@@ -7,6 +7,7 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/ppb_image_data.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -19,7 +20,7 @@ namespace ppapi {
// probably best to have some kind of "configuration" message that the renderer
// sends to the plugin process on startup that contains all of these kind of
// settings.
-class ImageDataImpl {
+class PPAPI_SHARED_EXPORT ImageDataImpl {
public:
static PP_ImageDataFormat GetNativeImageDataFormat();
static bool IsImageDataFormatSupported(PP_ImageDataFormat format);
diff --git a/ppapi/shared_impl/input_event_impl.h b/ppapi/shared_impl/input_event_impl.h
index baa4bda..db6588b 100644
--- a/ppapi/shared_impl/input_event_impl.h
+++ b/ppapi/shared_impl/input_event_impl.h
@@ -17,7 +17,7 @@ namespace ppapi {
// IF YOU ADD STUFF TO THIS CLASS
// ==============================
// Be sure to add it to the STRUCT_TRAITS at the top of ppapi_messages.h
-struct InputEventData {
+struct PPAPI_SHARED_EXPORT InputEventData {
InputEventData();
~InputEventData();
@@ -44,7 +44,9 @@ struct InputEventData {
// This simple class implements the PPB_InputEvent_API in terms of the
// shared InputEventData structure
-class InputEventImpl : public Resource, public thunk::PPB_InputEvent_API {
+class PPAPI_SHARED_EXPORT InputEventImpl
+ : public Resource,
+ public thunk::PPB_InputEvent_API {
public:
struct InitAsImpl {};
struct InitAsProxy {};
diff --git a/ppapi/shared_impl/instance_impl.h b/ppapi/shared_impl/instance_impl.h
index 9cbfb89..fdc741f 100644
--- a/ppapi/shared_impl/instance_impl.h
+++ b/ppapi/shared_impl/instance_impl.h
@@ -6,10 +6,11 @@
#define PPAPI_SHARED_IMPL_INSTANCE_IMPL_H_
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
-class InstanceImpl {
+class PPAPI_SHARED_EXPORT InstanceImpl {
public:
virtual ~InstanceImpl();
diff --git a/ppapi/shared_impl/opengles2_impl.h b/ppapi/shared_impl/opengles2_impl.h
index 6284a42..ea2a3b7 100644
--- a/ppapi/shared_impl/opengles2_impl.h
+++ b/ppapi/shared_impl/opengles2_impl.h
@@ -6,10 +6,11 @@
#define PPAPI_SHARED_IMPL_OPENGLES2_IMPL_H_
#include "ppapi/c/dev/ppb_opengles_dev.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
-class OpenGLES2Impl {
+class PPAPI_SHARED_EXPORT OpenGLES2Impl {
public:
static const PPB_OpenGLES2_Dev* GetInterface();
};
diff --git a/ppapi/shared_impl/ppapi_preferences.h b/ppapi/shared_impl/ppapi_preferences.h
index e026290..8e0847c 100644
--- a/ppapi/shared_impl/ppapi_preferences.h
+++ b/ppapi/shared_impl/ppapi_preferences.h
@@ -6,12 +6,13 @@
#define PPAPI_SHARED_IMPL_PPAPI_PREFERENCES_H_
#include "base/string16.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
struct WebPreferences;
namespace ppapi {
-struct Preferences {
+struct PPAPI_SHARED_EXPORT Preferences {
public:
Preferences();
explicit Preferences(const WebPreferences& prefs);
diff --git a/ppapi/shared_impl/ppapi_shared_export.h b/ppapi/shared_impl/ppapi_shared_export.h
new file mode 100644
index 0000000..fb3c036
--- /dev/null
+++ b/ppapi/shared_impl/ppapi_shared_export.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2011 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.
+
+#ifndef PPAPI_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
+#define PPAPI_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
+#pragma once
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(PPAPI_SHARED_IMPLEMENTATION)
+#define PPAPI_SHARED_EXPORT __declspec(dllexport)
+#else
+#define PPAPI_SHARED_EXPORT __declspec(dllimport)
+#endif // defined(PPAPI_SHARED_IMPLEMENTATION)
+
+#else // defined(WIN32)
+#define PPAPI_SHARED_EXPORT __attribute__((visibility("default")))
+#endif
+
+#else // defined(COMPONENT_BUILD)
+#define PPAPI_SHARED_EXPORT
+#endif
+
+#endif // PPAPI_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
diff --git a/ppapi/shared_impl/ppp_instance_combined.h b/ppapi/shared_impl/ppp_instance_combined.h
index 12e3301..3daf727 100644
--- a/ppapi/shared_impl/ppp_instance_combined.h
+++ b/ppapi/shared_impl/ppp_instance_combined.h
@@ -7,10 +7,11 @@
#include "base/basictypes.h"
#include "ppapi/c/ppp_instance.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
-struct PPP_Instance_Combined : public PPP_Instance_1_0 {
+struct PPAPI_SHARED_EXPORT PPP_Instance_Combined : public PPP_Instance_1_0 {
public:
explicit PPP_Instance_Combined(const PPP_Instance_1_0& instance_if);
diff --git a/ppapi/shared_impl/resource.h b/ppapi/shared_impl/resource.h
index 6bb4099..677d8a9 100644
--- a/ppapi/shared_impl/resource.h
+++ b/ppapi/shared_impl/resource.h
@@ -59,7 +59,7 @@ FOR_ALL_PPAPI_RESOURCE_APIS(DECLARE_RESOURCE_CLASS)
#undef DECLARE_RESOURCE_CLASS
} // namespace thunk
-class Resource : public base::RefCounted<Resource> {
+class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> {
public:
// For constructing non-proxied objects. This just takes the associated
// instance, and generates a new resource ID. The host resource will be the
diff --git a/ppapi/shared_impl/resource_tracker.h b/ppapi/shared_impl/resource_tracker.h
index b631653..e60d8e0 100644
--- a/ppapi/shared_impl/resource_tracker.h
+++ b/ppapi/shared_impl/resource_tracker.h
@@ -12,12 +12,13 @@
#include "base/memory/linked_ptr.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_resource.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
class Resource;
-class ResourceTracker {
+class PPAPI_SHARED_EXPORT ResourceTracker {
public:
ResourceTracker();
virtual ~ResourceTracker();
diff --git a/ppapi/shared_impl/scoped_pp_resource.h b/ppapi/shared_impl/scoped_pp_resource.h
index 96db4ee..b42e21e 100644
--- a/ppapi/shared_impl/scoped_pp_resource.h
+++ b/ppapi/shared_impl/scoped_pp_resource.h
@@ -6,13 +6,14 @@
#define PPAPI_SHARED_IMPL_SCOPED_RESOURCE_H_
#include "ppapi/c/pp_resource.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
class Resource;
// This is a version of scoped_refptr but for PP_Resources.
-class ScopedPPResource {
+class PPAPI_SHARED_EXPORT ScopedPPResource {
public:
struct PassRef {};
diff --git a/ppapi/shared_impl/time_conversion.h b/ppapi/shared_impl/time_conversion.h
index bf41987..0acd39e 100644
--- a/ppapi/shared_impl/time_conversion.h
+++ b/ppapi/shared_impl/time_conversion.h
@@ -7,20 +7,21 @@
#include "base/time.h"
#include "ppapi/c/pp_time.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
-PP_Time TimeToPPTime(base::Time t);
-base::Time PPTimeToTime(PP_Time t);
+PPAPI_SHARED_EXPORT PP_Time TimeToPPTime(base::Time t);
+PPAPI_SHARED_EXPORT base::Time PPTimeToTime(PP_Time t);
-PP_TimeTicks TimeTicksToPPTimeTicks(base::TimeTicks t);
+PPAPI_SHARED_EXPORT PP_TimeTicks TimeTicksToPPTimeTicks(base::TimeTicks t);
// Converts between WebKit event times and time ticks. WebKit event times are
// currently expressed in terms of wall clock time. This function does the
// proper mapping to time ticks, assuming the wall clock time doesn't change
// (which isn't necessarily the case).
-PP_TimeTicks EventTimeToPPTimeTicks(double event_time);
-double PPTimeTicksToEventTime(PP_TimeTicks t);
+PPAPI_SHARED_EXPORT PP_TimeTicks EventTimeToPPTimeTicks(double event_time);
+PPAPI_SHARED_EXPORT double PPTimeTicksToEventTime(PP_TimeTicks t);
} // namespace ppapi
diff --git a/ppapi/shared_impl/tracker_base.h b/ppapi/shared_impl/tracker_base.h
index 49624c3..9ff19d4 100644
--- a/ppapi/shared_impl/tracker_base.h
+++ b/ppapi/shared_impl/tracker_base.h
@@ -11,6 +11,7 @@
#include "ppapi/c/pp_module.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/proxy/interface_id.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -26,7 +27,7 @@ class VarTracker;
// does is forward to the process-type-specific tracker to get the information.
// TODO(fischman/vrk): When brettw fixes the TODO above, fix the ugliness in
// VideoDecoderImpl accordingly.
-class TrackerBase {
+class PPAPI_SHARED_EXPORT TrackerBase {
public:
// Must be called before any other function that uses the TrackerBase.
// This sets the getter that returns the global implmenetation of
diff --git a/ppapi/shared_impl/url_request_info_impl.h b/ppapi/shared_impl/url_request_info_impl.h
index 622f8c5..9c619f9 100644
--- a/ppapi/shared_impl/url_request_info_impl.h
+++ b/ppapi/shared_impl/url_request_info_impl.h
@@ -18,8 +18,8 @@ namespace thunk {
class PPB_FileRef_API;
}
-struct PPB_URLRequestInfo_Data {
- struct BodyItem {
+struct PPAPI_SHARED_EXPORT PPB_URLRequestInfo_Data {
+ struct PPAPI_SHARED_EXPORT BodyItem {
BodyItem();
explicit BodyItem(const std::string& data);
BodyItem(Resource* file_ref,
@@ -90,8 +90,9 @@ struct PPB_URLRequestInfo_Data {
// ppapi_messages.h
};
-class URLRequestInfoImpl : public ::ppapi::Resource,
- public ::ppapi::thunk::PPB_URLRequestInfo_API {
+class PPAPI_SHARED_EXPORT URLRequestInfoImpl
+ : public ::ppapi::Resource,
+ public ::ppapi::thunk::PPB_URLRequestInfo_API {
public:
// This constructor initializes the object as a proxy object with the given
// host resource.
diff --git a/ppapi/shared_impl/url_util_impl.h b/ppapi/shared_impl/url_util_impl.h
index 55d6c63..ae869c3 100644
--- a/ppapi/shared_impl/url_util_impl.h
+++ b/ppapi/shared_impl/url_util_impl.h
@@ -12,6 +12,7 @@
#include "ppapi/c/dev/ppb_url_util_dev.h"
#include "ppapi/c/pp_module.h"
#include "ppapi/c/pp_var.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
class GURL;
@@ -19,7 +20,7 @@ namespace ppapi {
// Contains the implementation of PPB_URLUtil that is shared between the proxy
// and the renderer.
-class URLUtilImpl {
+class PPAPI_SHARED_EXPORT URLUtilImpl {
public:
// PPB_URLUtil shared functions.
static PP_Var Canonicalize(PP_Module pp_module,
diff --git a/ppapi/shared_impl/var.h b/ppapi/shared_impl/var.h
index ce5aa2b..ceb7271 100644
--- a/ppapi/shared_impl/var.h
+++ b/ppapi/shared_impl/var.h
@@ -11,6 +11,7 @@
#include "base/memory/ref_counted.h"
#include "ppapi/c/pp_module.h"
#include "ppapi/c/pp_var.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -23,7 +24,7 @@ class StringVar;
// Represents a non-POD var. This is derived from a resource even though it
// isn't a resource from the plugin's perspective. This allows us to re-use
// the refcounting and the association with the module from the resource code.
-class Var : public base::RefCounted<Var> {
+class PPAPI_SHARED_EXPORT Var : public base::RefCounted<Var> {
public:
virtual ~Var();
@@ -88,7 +89,7 @@ class Var : public base::RefCounted<Var> {
// if (!string)
// return false; // Not a string or an invalid var.
// DoSomethingWithTheString(string->value());
-class StringVar : public Var {
+class PPAPI_SHARED_EXPORT StringVar : public Var {
public:
StringVar(PP_Module module, const std::string& str);
StringVar(PP_Module module, const char* str, uint32 len);
diff --git a/ppapi/shared_impl/var_tracker.h b/ppapi/shared_impl/var_tracker.h
index f05c5ac..f91c209 100644
--- a/ppapi/shared_impl/var_tracker.h
+++ b/ppapi/shared_impl/var_tracker.h
@@ -9,6 +9,7 @@
#include "base/hash_tables.h"
#include "base/memory/ref_counted.h"
#include "ppapi/c/pp_var.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
namespace ppapi {
@@ -26,7 +27,7 @@ class Var;
// This class maintains the "track_with_no_reference_count" but doesn't do
// anything with it other than call virtual functions. The interesting parts
// are added by the PluginObjectVar derived from this class.
-class VarTracker {
+class PPAPI_SHARED_EXPORT VarTracker {
public:
VarTracker();
virtual ~VarTracker();
diff --git a/ppapi/shared_impl/video_decoder_impl.h b/ppapi/shared_impl/video_decoder_impl.h
index 191efa9..ff19d09 100644
--- a/ppapi/shared_impl/video_decoder_impl.h
+++ b/ppapi/shared_impl/video_decoder_impl.h
@@ -30,7 +30,8 @@ namespace ppapi {
// Implements the logic to set and run callbacks for various video decoder
// events. Both the proxy and the renderer implementation share this code.
-class VideoDecoderImpl : public thunk::PPB_VideoDecoder_API {
+class PPAPI_SHARED_EXPORT VideoDecoderImpl
+ : NON_EXPORTED_BASE(public thunk::PPB_VideoDecoder_API) {
public:
VideoDecoderImpl();
virtual ~VideoDecoderImpl();
diff --git a/ppapi/shared_impl/webkit_forwarding.h b/ppapi/shared_impl/webkit_forwarding.h
index 2094523..d571aaa 100644
--- a/ppapi/shared_impl/webkit_forwarding.h
+++ b/ppapi/shared_impl/webkit_forwarding.h
@@ -9,6 +9,7 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_stdint.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
struct PP_FontDescription_Dev;
struct PP_FontMetrics_Dev;
@@ -27,9 +28,9 @@ namespace ppapi {
struct Preferences;
-class WebKitForwarding {
+class PPAPI_SHARED_EXPORT WebKitForwarding {
public:
- class Font {
+ class PPAPI_SHARED_EXPORT Font {
public:
// C++ version of PP_TextRun_Dev. Since the functions below will be called
// on an alternate thread in the proxy, and since there are different
@@ -43,7 +44,7 @@ class WebKitForwarding {
// DoDrawText takes too many arguments to be used with base::Bind, so we
// use this struct to hold them.
- struct DrawTextParams {
+ struct PPAPI_SHARED_EXPORT DrawTextParams {
DrawTextParams(skia::PlatformCanvas* destination_arg,
const TextRun& text_arg,
const PP_Point* position_arg,