diff --git a/content/base/public/nsIObjectLoadingContent.idl b/content/base/public/nsIObjectLoadingContent.idl index 38a985802392..2c1466a30e9d 100644 --- a/content/base/public/nsIObjectLoadingContent.idl +++ b/content/base/public/nsIObjectLoadingContent.idl @@ -14,7 +14,7 @@ interface nsIDOMClientRect; interface nsIURI; %{C++ -#include "nsNPAPIPluginInstance.h" +class nsNPAPIPluginInstance; %} [ptr] native nsNPAPIPluginInstancePtr(nsNPAPIPluginInstance); diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp index 7a9067156fa7..17332a55fce5 100644 --- a/content/base/src/nsContentUtils.cpp +++ b/content/base/src/nsContentUtils.cpp @@ -120,6 +120,7 @@ #include "nsINode.h" #include "nsINodeInfo.h" #include "nsIObjectLoadingContent.h" +#include "nsNPAPIPluginInstance.h" #include "nsIObserver.h" #include "nsIObserverService.h" #include "nsIOfflineCacheUpdate.h" diff --git a/content/base/src/nsObjectLoadingContent.cpp b/content/base/src/nsObjectLoadingContent.cpp index 553b2a2fbace..ad042d2ee59c 100644 --- a/content/base/src/nsObjectLoadingContent.cpp +++ b/content/base/src/nsObjectLoadingContent.cpp @@ -25,6 +25,7 @@ #include "nsIObjectFrame.h" #include "nsIPermissionManager.h" #include "nsPluginHost.h" +#include "nsPluginInstanceOwner.h" #include "nsJSNPRuntime.h" #include "nsIPresShell.h" #include "nsIScriptGlobalObject.h" diff --git a/content/base/src/nsObjectLoadingContent.h b/content/base/src/nsObjectLoadingContent.h index d7f059cc5157..a5bacdc69762 100644 --- a/content/base/src/nsObjectLoadingContent.h +++ b/content/base/src/nsObjectLoadingContent.h @@ -19,7 +19,6 @@ #include "nsIChannelEventSink.h" #include "nsIObjectLoadingContent.h" #include "nsIRunnable.h" -#include "nsPluginInstanceOwner.h" #include "nsIThreadInternal.h" #include "nsIFrame.h" #include "nsIFrameLoader.h" @@ -30,6 +29,7 @@ class AutoSetInstantiatingToFalse; class nsObjectFrame; class nsFrameLoader; class nsXULElement; +class nsPluginInstanceOwner; class nsObjectLoadingContent : public nsImageLoadingContent , public nsIStreamListener diff --git a/dom/base/nsPluginArray.h b/dom/base/nsPluginArray.h index 4100278c9519..8635b2b7318d 100644 --- a/dom/base/nsPluginArray.h +++ b/dom/base/nsPluginArray.h @@ -12,8 +12,8 @@ #include "nsIObserver.h" #include "nsWrapperCache.h" #include "nsPluginTags.h" +#include "nsPIDOMWindow.h" -class nsPIDOMWindow; class nsPluginElement; class nsMimeType; diff --git a/dom/plugins/base/PluginPRLibrary.cpp b/dom/plugins/base/PluginPRLibrary.cpp index a50898d29781..a2afaec5d5e4 100644 --- a/dom/plugins/base/PluginPRLibrary.cpp +++ b/dom/plugins/base/PluginPRLibrary.cpp @@ -5,6 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/PluginPRLibrary.h" +#include "nsNPAPIPluginInstance.h" // Some plugins on Windows, notably Quake Live, implement NP_Initialize using // cdecl instead of the documented stdcall. In order to work around this, diff --git a/dom/plugins/base/nsIPluginInstanceOwner.idl b/dom/plugins/base/nsIPluginInstanceOwner.idl index 5a7930eaf27e..58e109cd47fe 100644 --- a/dom/plugins/base/nsIPluginInstanceOwner.idl +++ b/dom/plugins/base/nsIPluginInstanceOwner.idl @@ -11,7 +11,7 @@ interface nsIDocument; %{C++ #include "npapi.h" -#include "nsNPAPIPluginInstance.h" +class nsNPAPIPluginInstance; class nsPluginEvent; %} diff --git a/dom/plugins/base/nsNPAPIPluginStreamListener.h b/dom/plugins/base/nsNPAPIPluginStreamListener.h index 3099109eda65..b851b3794f5c 100644 --- a/dom/plugins/base/nsNPAPIPluginStreamListener.h +++ b/dom/plugins/base/nsNPAPIPluginStreamListener.h @@ -15,7 +15,6 @@ #include "nsIOutputStream.h" #include "nsIPluginInstanceOwner.h" #include "nsString.h" -#include "nsNPAPIPluginInstance.h" #include "nsIAsyncVerifyRedirectCallback.h" #include "mozilla/PluginLibrary.h" @@ -23,6 +22,8 @@ class nsPluginStreamListenerPeer; class nsNPAPIPluginStreamListener; +class nsNPAPIPluginInstance; +class nsIChannel; class nsNPAPIStreamWrapper { diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp index eaaa855c8f42..92e238fffb3c 100644 --- a/dom/plugins/base/nsPluginHost.cpp +++ b/dom/plugins/base/nsPluginHost.cpp @@ -3651,6 +3651,18 @@ PRCList nsPluginDestroyRunnable::sRunnableListHead = PRCList PluginDestructionGuard::sListHead = PR_INIT_STATIC_CLIST(&PluginDestructionGuard::sListHead); +PluginDestructionGuard::PluginDestructionGuard(nsNPAPIPluginInstance *aInstance) + : mInstance(aInstance) +{ + Init(); +} + +PluginDestructionGuard::PluginDestructionGuard(NPP npp) + : mInstance(npp ? static_cast(npp->ndata) : nullptr) +{ + Init(); +} + PluginDestructionGuard::~PluginDestructionGuard() { NS_ASSERTION(NS_IsMainThread(), "Should be on the main thread"); diff --git a/dom/plugins/base/nsPluginHost.h b/dom/plugins/base/nsPluginHost.h index 1c0d0bc39bb2..06b576a8b00a 100644 --- a/dom/plugins/base/nsPluginHost.h +++ b/dom/plugins/base/nsPluginHost.h @@ -12,7 +12,6 @@ #include "prlink.h" #include "prclist.h" #include "npapi.h" -#include "nsNPAPIPluginInstance.h" #include "nsIPluginTag.h" #include "nsPluginsDir.h" #include "nsPluginDirServiceProvider.h" @@ -37,6 +36,11 @@ class nsIChannel; class nsPluginNativeWindow; class nsObjectLoadingContent; class nsPluginInstanceOwner; +class nsNPAPIPluginInstance; +class nsNPAPIPluginStreamListener; +class nsIPluginInstanceOwner; +class nsIInputStream; +class nsIStreamListener; class nsInvalidPluginTag : public nsISupports { @@ -303,17 +307,9 @@ private: class MOZ_STACK_CLASS PluginDestructionGuard : protected PRCList { public: - PluginDestructionGuard(nsNPAPIPluginInstance *aInstance) - : mInstance(aInstance) - { - Init(); - } + PluginDestructionGuard(nsNPAPIPluginInstance *aInstance); - PluginDestructionGuard(NPP npp) - : mInstance(npp ? static_cast(npp->ndata) : nullptr) - { - Init(); - } + PluginDestructionGuard(NPP npp); ~PluginDestructionGuard(); diff --git a/dom/plugins/base/nsPluginTags.h b/dom/plugins/base/nsPluginTags.h index 5451fe3e733f..c166ac3b9c0b 100644 --- a/dom/plugins/base/nsPluginTags.h +++ b/dom/plugins/base/nsPluginTags.h @@ -12,12 +12,13 @@ #include "nsCOMPtr.h" #include "nsCOMArray.h" #include "nsIPluginTag.h" -#include "nsNPAPIPluginInstance.h" #include "nsITimer.h" +#include "nsStringGlue.h" class nsPluginHost; struct PRLibrary; struct nsPluginInfo; +class nsNPAPIPlugin; // A linked-list of plugin information that is used for instantiating plugins // and reflecting plugin information into JavaScript. diff --git a/dom/plugins/ipc/PluginInstanceParent.cpp b/dom/plugins/ipc/PluginInstanceParent.cpp index 7b87869ac5d8..4793c113d081 100644 --- a/dom/plugins/ipc/PluginInstanceParent.cpp +++ b/dom/plugins/ipc/PluginInstanceParent.cpp @@ -26,7 +26,6 @@ #include "gfxContext.h" #include "gfxColor.h" #include "gfxUtils.h" -#include "nsNPAPIPluginInstance.h" #include "Layers.h" #include "SharedTextureImage.h" #include "GLContext.h"