This commit is contained in:
Kyle Huey 2011-03-31 09:12:20 -04:00
Родитель 6895576720 959ea8bc3e
Коммит 8a97c4db9f
173 изменённых файлов: 1151 добавлений и 67 удалений

Просмотреть файл

@ -948,8 +948,10 @@ pref("dom.ipc.plugins.enabled.i386.flash player.plugin", true);
pref("dom.ipc.plugins.enabled.i386.javaplugin2_npapi.plugin", true); pref("dom.ipc.plugins.enabled.i386.javaplugin2_npapi.plugin", true);
// x86_64 ipc preferences // x86_64 ipc preferences
pref("dom.ipc.plugins.enabled.x86_64", true); pref("dom.ipc.plugins.enabled.x86_64", true);
#else #elifdef MOZ_IPC
pref("dom.ipc.plugins.enabled", true); pref("dom.ipc.plugins.enabled", true);
#else
pref("dom.ipc.plugins.enabled", false);
#endif #endif
#ifdef XP_WIN #ifdef XP_WIN

Просмотреть файл

@ -94,6 +94,7 @@ DEFINES += -DMOZ_D3DX9_DLL=$(MOZ_D3DX9_DLL)
DEFINES += -DMOZ_D3DCOMPILER_DLL=$(MOZ_D3DCOMPILER_DLL) DEFINES += -DMOZ_D3DCOMPILER_DLL=$(MOZ_D3DCOMPILER_DLL)
endif endif
# Don't ifdef MOZ_IPC this because mac ppc needs it too.
include $(topsrcdir)/ipc/app/defs.mk include $(topsrcdir)/ipc/app/defs.mk
DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME) DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)

Просмотреть файл

@ -51,11 +51,13 @@
#else #else
@BINPATH@/@DLL_PREFIX@xul@DLL_SUFFIX@ @BINPATH@/@DLL_PREFIX@xul@DLL_SUFFIX@
#endif #endif
#ifdef MOZ_IPC
#ifdef XP_MACOSX #ifdef XP_MACOSX
@BINPATH@/@MOZ_CHILD_PROCESS_NAME@.app/ @BINPATH@/@MOZ_CHILD_PROCESS_NAME@.app/
#else #else
@BINPATH@/@MOZ_CHILD_PROCESS_NAME@ @BINPATH@/@MOZ_CHILD_PROCESS_NAME@
#endif #endif
#endif
#ifdef WINCE #ifdef WINCE
@BINPATH@/mozce_shunt.dll @BINPATH@/mozce_shunt.dll
#elifdef XP_WIN32 #elifdef XP_WIN32

Просмотреть файл

@ -58,9 +58,12 @@ CPPSRCS = \
nsChromeRegistry.cpp \ nsChromeRegistry.cpp \
nsChromeRegistryChrome.cpp \ nsChromeRegistryChrome.cpp \
nsChromeProtocolHandler.cpp \ nsChromeProtocolHandler.cpp \
nsChromeRegistryContent.cpp \
$(NULL) $(NULL)
ifdef MOZ_IPC
CPPSRCS += nsChromeRegistryContent.cpp
endif
EXTRA_DSO_LDOPTS = \ EXTRA_DSO_LDOPTS = \
$(MOZ_UNICHARUTIL_LIBS) \ $(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \ $(MOZ_COMPONENT_LIBS) \

Просмотреть файл

@ -41,7 +41,9 @@
#include "nsChromeRegistry.h" #include "nsChromeRegistry.h"
#include "nsChromeRegistryChrome.h" #include "nsChromeRegistryChrome.h"
#ifdef MOZ_IPC
#include "nsChromeRegistryContent.h" #include "nsChromeRegistryContent.h"
#endif
#include <string.h> #include <string.h>
@ -675,9 +677,11 @@ nsChromeRegistry::GetSingleton()
} }
nsRefPtr<nsChromeRegistry> cr; nsRefPtr<nsChromeRegistry> cr;
#ifdef MOZ_IPC
if (GeckoProcessType_Content == XRE_GetProcessType()) if (GeckoProcessType_Content == XRE_GetProcessType())
cr = new nsChromeRegistryContent(); cr = new nsChromeRegistryContent();
else else
#endif
cr = new nsChromeRegistryChrome(); cr = new nsChromeRegistryChrome();
if (NS_FAILED(cr->Init())) if (NS_FAILED(cr->Init()))

Просмотреть файл

@ -36,9 +36,11 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/PContentParent.h" #include "mozilla/dom/PContentParent.h"
#include "RegistryMessageUtils.h" #include "RegistryMessageUtils.h"
#include "nsResProtocolHandler.h" #include "nsResProtocolHandler.h"
#endif
#include "nsChromeRegistryChrome.h" #include "nsChromeRegistryChrome.h"
@ -441,6 +443,7 @@ void nsChromeRegistryChrome::UpdateSelectedLocale()
} }
} }
#ifdef MOZ_IPC
static void static void
SerializeURI(nsIURI* aURI, SerializeURI(nsIURI* aURI,
SerializedURI& aSerializedURI) SerializedURI& aSerializedURI)
@ -538,6 +541,7 @@ nsChromeRegistryChrome::CollectPackages(PLDHashTable *table,
args->packages.AppendElement(chromePackage); args->packages.AppendElement(chromePackage);
return (PLDHashOperator)PL_DHASH_NEXT; return (PLDHashOperator)PL_DHASH_NEXT;
} }
#endif
static PRBool static PRBool
CanLoadResource(nsIURI* aResourceURI) CanLoadResource(nsIURI* aResourceURI)

Просмотреть файл

@ -75,12 +75,16 @@ class nsChromeRegistryChrome : public nsChromeRegistry
nsISimpleEnumerator **_retval); nsISimpleEnumerator **_retval);
#endif #endif
#ifdef MOZ_IPC
void SendRegisteredChrome(mozilla::dom::PContentParent* aChild); void SendRegisteredChrome(mozilla::dom::PContentParent* aChild);
#endif
private: private:
#ifdef MOZ_IPC
static PLDHashOperator CollectPackages(PLDHashTable *table, static PLDHashOperator CollectPackages(PLDHashTable *table,
PLDHashEntryHdr *entry, PLDHashEntryHdr *entry,
PRUint32 number, void *arg); PRUint32 number, void *arg);
#endif
nsresult SelectLocaleFromPref(nsIPrefBranch* prefs); nsresult SelectLocaleFromPref(nsIPrefBranch* prefs);
NS_OVERRIDE void UpdateSelectedLocale(); NS_OVERRIDE void UpdateSelectedLocale();

Просмотреть файл

@ -47,9 +47,11 @@ MODULE = test_chrome
XPCSHELL_TESTS = unit \ XPCSHELL_TESTS = unit \
$(NULL) $(NULL)
ifdef MOZ_IPC
# FIXME/bug 575918: out-of-process xpcshell is broken on OS X # FIXME/bug 575918: out-of-process xpcshell is broken on OS X
ifneq ($(OS_ARCH),Darwin) ifneq ($(OS_ARCH),Darwin)
XPCSHELL_TESTS += unit_ipc XPCSHELL_TESTS += unit_ipc
endif endif
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -102,6 +102,7 @@ MOZ_DEBUG_FLAGS = @MOZ_DEBUG_FLAGS@
MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@ MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@
MOZ_EXTENSIONS = @MOZ_EXTENSIONS@ MOZ_EXTENSIONS = @MOZ_EXTENSIONS@
MOZ_JSDEBUGGER = @MOZ_JSDEBUGGER@ MOZ_JSDEBUGGER = @MOZ_JSDEBUGGER@
MOZ_IPC = @MOZ_IPC@
MOZ_IPDL_TESTS = @MOZ_IPDL_TESTS@ MOZ_IPDL_TESTS = @MOZ_IPDL_TESTS@
MOZ_LEAKY = @MOZ_LEAKY@ MOZ_LEAKY = @MOZ_LEAKY@
MOZ_MEMORY = @MOZ_MEMORY@ MOZ_MEMORY = @MOZ_MEMORY@

Просмотреть файл

@ -4950,6 +4950,7 @@ MOZ_BRANDING_DIRECTORY=
MOZ_OFFICIAL_BRANDING= MOZ_OFFICIAL_BRANDING=
MOZ_FEEDS=1 MOZ_FEEDS=1
MOZ_INSTALLER=1 MOZ_INSTALLER=1
MOZ_IPC=1
MOZ_JAVAXPCOM= MOZ_JAVAXPCOM=
MOZ_JSDEBUGGER=1 MOZ_JSDEBUGGER=1
MOZ_MATHML=1 MOZ_MATHML=1
@ -5821,6 +5822,21 @@ MOZ_ARG_DISABLE_BOOL(jsd,
MOZ_JSDEBUGGER=1) MOZ_JSDEBUGGER=1)
dnl ========================================================
dnl = Disable IPC support for tabs and plugins
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(ipc,
[ --disable-ipc Disable IPC for tabs and plugins (not supported)],
MOZ_IPC=,
MOZ_IPC=1)
if test -z "$MOZ_IPC"; then
AC_MSG_ERROR([--disable-ipc is no longer supported.])
fi
AC_DEFINE(MOZ_IPC)
AC_SUBST(MOZ_IPC)
dnl ======================================================== dnl ========================================================
dnl = Enable IPDL's "expensive" unit tests dnl = Enable IPDL's "expensive" unit tests
dnl ======================================================== dnl ========================================================

Просмотреть файл

@ -178,9 +178,14 @@ EXTRA_COMPONENTS = \
contentSecurityPolicy.manifest \ contentSecurityPolicy.manifest \
contentAreaDropListener.js \ contentAreaDropListener.js \
contentAreaDropListener.manifest \ contentAreaDropListener.manifest \
$(NULL)
ifdef MOZ_IPC
EXTRA_COMPONENTS += \
messageWakeupService.js \ messageWakeupService.js \
messageWakeupService.manifest \ messageWakeupService.manifest \
$(NULL) $(NULL)
endif
EXTRA_JS_MODULES = \ EXTRA_JS_MODULES = \
CSPUtils.jsm \ CSPUtils.jsm \

Просмотреть файл

@ -8350,10 +8350,12 @@ PLDHashOperator UnlockEnumerator(imgIRequest* aKey,
nsresult nsresult
nsDocument::SetImageLockingState(PRBool aLocked) nsDocument::SetImageLockingState(PRBool aLocked)
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content && if (XRE_GetProcessType() == GeckoProcessType_Content &&
!nsContentUtils::GetBoolPref("content.image.allow_locking", PR_TRUE)) { !nsContentUtils::GetBoolPref("content.image.allow_locking", PR_TRUE)) {
return NS_OK; return NS_OK;
} }
#endif // MOZ_IPC
// If there's no change, there's nothing to do. // If there's no change, there's nothing to do.
if (mLockingImages == aLocked) if (mLockingImages == aLocked)

Просмотреть файл

@ -44,7 +44,9 @@
* handling of loads in it, recursion-checking). * handling of loads in it, recursion-checking).
*/ */
#include "base/basictypes.h" #ifdef MOZ_IPC
# include "base/basictypes.h"
#endif
#include "prenv.h" #include "prenv.h"
@ -110,12 +112,15 @@
#include "Layers.h" #include "Layers.h"
#ifdef MOZ_IPC
#include "ContentParent.h" #include "ContentParent.h"
#include "TabParent.h" #include "TabParent.h"
#include "mozilla/layout/RenderFrameParent.h" #include "mozilla/layout/RenderFrameParent.h"
using namespace mozilla; using namespace mozilla;
using namespace mozilla::dom; using namespace mozilla::dom;
#endif
using namespace mozilla::layers; using namespace mozilla::layers;
typedef FrameMetrics::ViewID ViewID; typedef FrameMetrics::ViewID ViewID;
@ -319,11 +324,13 @@ nsFrameLoader::nsFrameLoader(nsIContent *aOwner, PRBool aNetworkCreated)
, mInShow(PR_FALSE) , mInShow(PR_FALSE)
, mHideCalled(PR_FALSE) , mHideCalled(PR_FALSE)
, mNetworkCreated(aNetworkCreated) , mNetworkCreated(aNetworkCreated)
#ifdef MOZ_IPC
, mDelayRemoteDialogs(PR_FALSE) , mDelayRemoteDialogs(PR_FALSE)
, mRemoteBrowserShown(PR_FALSE) , mRemoteBrowserShown(PR_FALSE)
, mRemoteFrame(false) , mRemoteFrame(false)
, mCurrentRemoteFrame(nsnull) , mCurrentRemoteFrame(nsnull)
, mRemoteBrowser(nsnull) , mRemoteBrowser(nsnull)
#endif
, mRenderMode(RENDER_MODE_DEFAULT) , mRenderMode(RENDER_MODE_DEFAULT)
{ {
} }
@ -441,6 +448,7 @@ nsFrameLoader::ReallyStartLoadingInternal()
return rv; return rv;
} }
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
if (!mRemoteBrowser) { if (!mRemoteBrowser) {
TryRemoteBrowser(); TryRemoteBrowser();
@ -455,6 +463,7 @@ nsFrameLoader::ReallyStartLoadingInternal()
mRemoteBrowser->LoadURL(mURIToLoad); mRemoteBrowser->LoadURL(mURIToLoad);
return NS_OK; return NS_OK;
} }
#endif
NS_ASSERTION(mDocShell, NS_ASSERTION(mDocShell,
"MaybeCreateDocShell succeeded with a null mDocShell"); "MaybeCreateDocShell succeeded with a null mDocShell");
@ -525,9 +534,11 @@ nsFrameLoader::CheckURILoad(nsIURI* aURI)
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
return NS_OK; return NS_OK;
} }
#endif
return CheckForRecursiveLoad(aURI); return CheckForRecursiveLoad(aURI);
} }
@ -543,10 +554,12 @@ nsFrameLoader::GetDocShell(nsIDocShell **aDocShell)
nsresult rv = MaybeCreateDocShell(); nsresult rv = MaybeCreateDocShell();
if (NS_FAILED(rv)) if (NS_FAILED(rv))
return rv; return rv;
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
NS_WARNING("No docshells for remote frames!"); NS_WARNING("No docshells for remote frames!");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ASSERTION(mDocShell, NS_ASSERTION(mDocShell,
"MaybeCreateDocShell succeeded, but null mDocShell"); "MaybeCreateDocShell succeeded, but null mDocShell");
} }
@ -763,7 +776,10 @@ nsFrameLoader::Show(PRInt32 marginWidth, PRInt32 marginHeight,
return PR_FALSE; return PR_FALSE;
} }
if (!mRemoteFrame) { #ifdef MOZ_IPC
if (!mRemoteFrame)
#endif
{
if (!mDocShell) if (!mDocShell)
return PR_FALSE; return PR_FALSE;
nsCOMPtr<nsIPresShell> presShell; nsCOMPtr<nsIPresShell> presShell;
@ -787,9 +803,11 @@ nsFrameLoader::Show(PRInt32 marginWidth, PRInt32 marginHeight,
if (!view) if (!view)
return PR_FALSE; return PR_FALSE;
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
return ShowRemoteFrame(GetSubDocumentSize(frame)); return ShowRemoteFrame(GetSubDocumentSize(frame));
} }
#endif
nsCOMPtr<nsIBaseWindow> baseWindow = do_QueryInterface(mDocShell); nsCOMPtr<nsIBaseWindow> baseWindow = do_QueryInterface(mDocShell);
NS_ASSERTION(baseWindow, "Found a nsIDocShell that isn't a nsIBaseWindow."); NS_ASSERTION(baseWindow, "Found a nsIDocShell that isn't a nsIBaseWindow.");
@ -862,6 +880,7 @@ nsFrameLoader::Show(PRInt32 marginWidth, PRInt32 marginHeight,
return PR_TRUE; return PR_TRUE;
} }
#ifdef MOZ_IPC
bool bool
nsFrameLoader::ShowRemoteFrame(const nsIntSize& size) nsFrameLoader::ShowRemoteFrame(const nsIntSize& size)
{ {
@ -890,6 +909,7 @@ nsFrameLoader::ShowRemoteFrame(const nsIntSize& size)
return true; return true;
} }
#endif
void void
nsFrameLoader::Hide() nsFrameLoader::Hide()
@ -1214,11 +1234,13 @@ nsFrameLoader::SwapWithOtherLoader(nsFrameLoader* aOther,
void void
nsFrameLoader::DestroyChild() nsFrameLoader::DestroyChild()
{ {
#ifdef MOZ_IPC
if (mRemoteBrowser) { if (mRemoteBrowser) {
mRemoteBrowser->SetOwnerElement(nsnull); mRemoteBrowser->SetOwnerElement(nsnull);
mRemoteBrowser->Destroy(); mRemoteBrowser->Destroy();
mRemoteBrowser = nsnull; mRemoteBrowser = nsnull;
} }
#endif
} }
NS_IMETHODIMP NS_IMETHODIMP
@ -1305,11 +1327,14 @@ void
nsFrameLoader::SetOwnerContent(nsIContent* aContent) nsFrameLoader::SetOwnerContent(nsIContent* aContent)
{ {
mOwnerContent = aContent; mOwnerContent = aContent;
#ifdef MOZ_IPC
if (RenderFrameParent* rfp = GetCurrentRemoteFrame()) { if (RenderFrameParent* rfp = GetCurrentRemoteFrame()) {
rfp->OwnerContentChanged(aContent); rfp->OwnerContentChanged(aContent);
} }
#endif
} }
#ifdef MOZ_IPC
bool bool
nsFrameLoader::ShouldUseRemoteProcess() nsFrameLoader::ShouldUseRemoteProcess()
{ {
@ -1345,6 +1370,7 @@ nsFrameLoader::ShouldUseRemoteProcess()
PR_FALSE); PR_FALSE);
return (bool) remoteEnabled; return (bool) remoteEnabled;
} }
#endif
nsresult nsresult
nsFrameLoader::MaybeCreateDocShell() nsFrameLoader::MaybeCreateDocShell()
@ -1352,15 +1378,19 @@ nsFrameLoader::MaybeCreateDocShell()
if (mDocShell) { if (mDocShell) {
return NS_OK; return NS_OK;
} }
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
return NS_OK; return NS_OK;
} }
#endif
NS_ENSURE_STATE(!mDestroyCalled); NS_ENSURE_STATE(!mDestroyCalled);
#ifdef MOZ_IPC
if (ShouldUseRemoteProcess()) { if (ShouldUseRemoteProcess()) {
mRemoteFrame = true; mRemoteFrame = true;
return NS_OK; return NS_OK;
} }
#endif
// Get our parent docshell off the document of mOwnerContent // Get our parent docshell off the document of mOwnerContent
// XXXbz this is such a total hack.... We really need to have a // XXXbz this is such a total hack.... We really need to have a
@ -1509,8 +1539,10 @@ nsFrameLoader::CheckForRecursiveLoad(nsIURI* aURI)
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
#ifdef MOZ_IPC
NS_ASSERTION(!mRemoteFrame, NS_ASSERTION(!mRemoteFrame,
"Shouldn't call CheckForRecursiveLoad on remote frames."); "Shouldn't call CheckForRecursiveLoad on remote frames.");
#endif
if (!mDocShell) { if (!mDocShell) {
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1610,6 +1642,7 @@ nsFrameLoader::CheckForRecursiveLoad(nsIURI* aURI)
NS_IMETHODIMP NS_IMETHODIMP
nsFrameLoader::UpdatePositionAndSize(nsIFrame *aIFrame) nsFrameLoader::UpdatePositionAndSize(nsIFrame *aIFrame)
{ {
#ifdef MOZ_IPC
if (mRemoteFrame) { if (mRemoteFrame) {
if (mRemoteBrowser) { if (mRemoteBrowser) {
nsIntSize size = GetSubDocumentSize(aIFrame); nsIntSize size = GetSubDocumentSize(aIFrame);
@ -1617,6 +1650,7 @@ nsFrameLoader::UpdatePositionAndSize(nsIFrame *aIFrame)
} }
return NS_OK; return NS_OK;
} }
#endif
return UpdateBaseWindowPositionAndSize(aIFrame); return UpdateBaseWindowPositionAndSize(aIFrame);
} }
@ -1684,6 +1718,7 @@ nsFrameLoader::GetSubDocumentSize(const nsIFrame *aIFrame)
presContext->AppUnitsToDevPixels(docSizeAppUnits.height)); presContext->AppUnitsToDevPixels(docSizeAppUnits.height));
} }
#ifdef MOZ_IPC
bool bool
nsFrameLoader::TryRemoteBrowser() nsFrameLoader::TryRemoteBrowser()
{ {
@ -1763,19 +1798,24 @@ nsFrameLoader::TryRemoteBrowser()
} }
return true; return true;
} }
#endif
#ifdef MOZ_IPC
mozilla::dom::PBrowserParent* mozilla::dom::PBrowserParent*
nsFrameLoader::GetRemoteBrowser() nsFrameLoader::GetRemoteBrowser()
{ {
return mRemoteBrowser; return mRemoteBrowser;
} }
#endif
NS_IMETHODIMP NS_IMETHODIMP
nsFrameLoader::ActivateRemoteFrame() { nsFrameLoader::ActivateRemoteFrame() {
#ifdef MOZ_IPC
if (mRemoteBrowser) { if (mRemoteBrowser) {
mRemoteBrowser->Activate(); mRemoteBrowser->Activate();
return NS_OK; return NS_OK;
} }
#endif
return NS_ERROR_UNEXPECTED; return NS_ERROR_UNEXPECTED;
} }
@ -1788,12 +1828,14 @@ nsFrameLoader::SendCrossProcessMouseEvent(const nsAString& aType,
PRInt32 aModifiers, PRInt32 aModifiers,
PRBool aIgnoreRootScrollFrame) PRBool aIgnoreRootScrollFrame)
{ {
#ifdef MOZ_IPC
if (mRemoteBrowser) { if (mRemoteBrowser) {
mRemoteBrowser->SendMouseEvent(aType, aX, aY, aButton, mRemoteBrowser->SendMouseEvent(aType, aX, aY, aButton,
aClickCount, aModifiers, aClickCount, aModifiers,
aIgnoreRootScrollFrame); aIgnoreRootScrollFrame);
return NS_OK; return NS_OK;
} }
#endif
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1801,10 +1843,12 @@ NS_IMETHODIMP
nsFrameLoader::ActivateFrameEvent(const nsAString& aType, nsFrameLoader::ActivateFrameEvent(const nsAString& aType,
PRBool aCapture) PRBool aCapture)
{ {
#ifdef MOZ_IPC
if (mRemoteBrowser) { if (mRemoteBrowser) {
return mRemoteBrowser->SendActivateFrameEvent(nsString(aType), aCapture) ? return mRemoteBrowser->SendActivateFrameEvent(nsString(aType), aCapture) ?
NS_OK : NS_ERROR_NOT_AVAILABLE; NS_OK : NS_ERROR_NOT_AVAILABLE;
} }
#endif
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -1815,24 +1859,31 @@ nsFrameLoader::SendCrossProcessKeyEvent(const nsAString& aType,
PRInt32 aModifiers, PRInt32 aModifiers,
PRBool aPreventDefault) PRBool aPreventDefault)
{ {
#ifdef MOZ_IPC
if (mRemoteBrowser) { if (mRemoteBrowser) {
mRemoteBrowser->SendKeyEvent(aType, aKeyCode, aCharCode, aModifiers, mRemoteBrowser->SendKeyEvent(aType, aKeyCode, aCharCode, aModifiers,
aPreventDefault); aPreventDefault);
return NS_OK; return NS_OK;
} }
#endif
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
NS_IMETHODIMP NS_IMETHODIMP
nsFrameLoader::GetDelayRemoteDialogs(PRBool* aRetVal) nsFrameLoader::GetDelayRemoteDialogs(PRBool* aRetVal)
{ {
#ifdef MOZ_IPC
*aRetVal = mDelayRemoteDialogs; *aRetVal = mDelayRemoteDialogs;
#else
*aRetVal = PR_FALSE;
#endif
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP NS_IMETHODIMP
nsFrameLoader::SetDelayRemoteDialogs(PRBool aDelay) nsFrameLoader::SetDelayRemoteDialogs(PRBool aDelay)
{ {
#ifdef MOZ_IPC
if (mRemoteBrowser && mDelayRemoteDialogs && !aDelay) { if (mRemoteBrowser && mDelayRemoteDialogs && !aDelay) {
nsRefPtr<nsIRunnable> ev = nsRefPtr<nsIRunnable> ev =
NS_NewRunnableMethod(mRemoteBrowser, NS_NewRunnableMethod(mRemoteBrowser,
@ -1840,6 +1891,7 @@ nsFrameLoader::SetDelayRemoteDialogs(PRBool aDelay)
NS_DispatchToCurrentThread(ev); NS_DispatchToCurrentThread(ev);
} }
mDelayRemoteDialogs = aDelay; mDelayRemoteDialogs = aDelay;
#endif
return NS_OK; return NS_OK;
} }
@ -1870,11 +1922,13 @@ nsFrameLoader::CreateStaticClone(nsIFrameLoader* aDest)
bool LoadScript(void* aCallbackData, const nsAString& aURL) bool LoadScript(void* aCallbackData, const nsAString& aURL)
{ {
#ifdef MOZ_IPC
mozilla::dom::PBrowserParent* tabParent = mozilla::dom::PBrowserParent* tabParent =
static_cast<nsFrameLoader*>(aCallbackData)->GetRemoteBrowser(); static_cast<nsFrameLoader*>(aCallbackData)->GetRemoteBrowser();
if (tabParent) { if (tabParent) {
return tabParent->SendLoadRemoteScript(nsString(aURL)); return tabParent->SendLoadRemoteScript(nsString(aURL));
} }
#endif
nsFrameLoader* fl = static_cast<nsFrameLoader*>(aCallbackData); nsFrameLoader* fl = static_cast<nsFrameLoader*>(aCallbackData);
nsRefPtr<nsInProcessTabChildGlobal> tabChild = nsRefPtr<nsInProcessTabChildGlobal> tabChild =
static_cast<nsInProcessTabChildGlobal*>(fl->GetTabChildGlobalAsEventTarget()); static_cast<nsInProcessTabChildGlobal*>(fl->GetTabChildGlobalAsEventTarget());
@ -1911,11 +1965,13 @@ bool SendAsyncMessageToChild(void* aCallbackData,
const nsAString& aMessage, const nsAString& aMessage,
const nsAString& aJSON) const nsAString& aJSON)
{ {
#ifdef MOZ_IPC
mozilla::dom::PBrowserParent* tabParent = mozilla::dom::PBrowserParent* tabParent =
static_cast<nsFrameLoader*>(aCallbackData)->GetRemoteBrowser(); static_cast<nsFrameLoader*>(aCallbackData)->GetRemoteBrowser();
if (tabParent) { if (tabParent) {
return tabParent->SendAsyncMessage(nsString(aMessage), nsString(aJSON)); return tabParent->SendAsyncMessage(nsString(aMessage), nsString(aJSON));
} }
#endif
nsRefPtr<nsIRunnable> ev = nsRefPtr<nsIRunnable> ev =
new nsAsyncMessageToChild(static_cast<nsFrameLoader*>(aCallbackData), new nsAsyncMessageToChild(static_cast<nsFrameLoader*>(aCallbackData),
aMessage, aJSON); aMessage, aJSON);
@ -1940,6 +1996,7 @@ nsFrameLoader::GetContentViewsIn(float aXPx, float aYPx,
PRUint32* aLength, PRUint32* aLength,
nsIContentView*** aResult) nsIContentView*** aResult)
{ {
#ifdef MOZ_IPC
nscoord x = nsPresContext::CSSPixelsToAppUnits(aXPx - aLeftSize); nscoord x = nsPresContext::CSSPixelsToAppUnits(aXPx - aLeftSize);
nscoord y = nsPresContext::CSSPixelsToAppUnits(aYPx - aTopSize); nscoord y = nsPresContext::CSSPixelsToAppUnits(aYPx - aTopSize);
nscoord w = nsPresContext::CSSPixelsToAppUnits(aLeftSize + aRightSize) + 1; nscoord w = nsPresContext::CSSPixelsToAppUnits(aLeftSize + aRightSize) + 1;
@ -1967,6 +2024,10 @@ nsFrameLoader::GetContentViewsIn(float aXPx, float aYPx,
*aResult = result; *aResult = result;
*aLength = ids.Length(); *aLength = ids.Length();
#else
*aResult = nsnull;
*aLength = 0;
#endif
return NS_OK; return NS_OK;
} }
@ -1974,6 +2035,7 @@ nsFrameLoader::GetContentViewsIn(float aXPx, float aYPx,
NS_IMETHODIMP NS_IMETHODIMP
nsFrameLoader::GetRootContentView(nsIContentView** aContentView) nsFrameLoader::GetRootContentView(nsIContentView** aContentView)
{ {
#ifdef MOZ_IPC
RenderFrameParent* rfp = GetCurrentRemoteFrame(); RenderFrameParent* rfp = GetCurrentRemoteFrame();
if (!rfp) { if (!rfp) {
*aContentView = nsnull; *aContentView = nsnull;
@ -1985,6 +2047,10 @@ nsFrameLoader::GetRootContentView(nsIContentView** aContentView)
nsRefPtr<nsIContentView>(view).forget(aContentView); nsRefPtr<nsIContentView>(view).forget(aContentView);
return NS_OK; return NS_OK;
#else
return NS_ERROR_NOT_IMPLEMENTED;
#endif
} }
nsresult nsresult
@ -1997,14 +2063,20 @@ nsFrameLoader::EnsureMessageManager()
return rv; return rv;
} }
if (!mIsTopLevelContent && !mRemoteFrame) { if (!mIsTopLevelContent
#ifdef MOZ_IPC
&& !mRemoteFrame
#endif
) {
return NS_OK; return NS_OK;
} }
if (mMessageManager) { if (mMessageManager) {
#ifdef MOZ_IPC
if (ShouldUseRemoteProcess()) { if (ShouldUseRemoteProcess()) {
mMessageManager->SetCallbackData(mRemoteBrowserShown ? this : nsnull); mMessageManager->SetCallbackData(mRemoteBrowserShown ? this : nsnull);
} }
#endif
return NS_OK; return NS_OK;
} }
@ -2020,6 +2092,7 @@ nsFrameLoader::EnsureMessageManager()
nsCOMPtr<nsIChromeFrameMessageManager> parentManager; nsCOMPtr<nsIChromeFrameMessageManager> parentManager;
chromeWindow->GetMessageManager(getter_AddRefs(parentManager)); chromeWindow->GetMessageManager(getter_AddRefs(parentManager));
#ifdef MOZ_IPC
if (ShouldUseRemoteProcess()) { if (ShouldUseRemoteProcess()) {
mMessageManager = new nsFrameMessageManager(PR_TRUE, mMessageManager = new nsFrameMessageManager(PR_TRUE,
nsnull, nsnull,
@ -2030,6 +2103,7 @@ nsFrameLoader::EnsureMessageManager()
cx); cx);
NS_ENSURE_TRUE(mMessageManager, NS_ERROR_OUT_OF_MEMORY); NS_ENSURE_TRUE(mMessageManager, NS_ERROR_OUT_OF_MEMORY);
} else } else
#endif
{ {
mMessageManager = new nsFrameMessageManager(PR_TRUE, mMessageManager = new nsFrameMessageManager(PR_TRUE,

Просмотреть файл

@ -61,6 +61,7 @@ class nsIView;
class nsIInProcessContentFrameMessageManager; class nsIInProcessContentFrameMessageManager;
class AutoResetInShow; class AutoResetInShow;
#ifdef MOZ_IPC
namespace mozilla { namespace mozilla {
namespace dom { namespace dom {
class PBrowserParent; class PBrowserParent;
@ -78,6 +79,7 @@ typedef struct _GtkWidget GtkWidget;
#ifdef MOZ_WIDGET_QT #ifdef MOZ_WIDGET_QT
class QX11EmbedContainer; class QX11EmbedContainer;
#endif #endif
#endif
/** /**
* Defines a target configuration for this <browser>'s content * Defines a target configuration for this <browser>'s content
@ -165,9 +167,11 @@ class nsFrameLoader : public nsIFrameLoader,
public nsIContentViewManager public nsIContentViewManager
{ {
friend class AutoResetInShow; friend class AutoResetInShow;
#ifdef MOZ_IPC
typedef mozilla::dom::PBrowserParent PBrowserParent; typedef mozilla::dom::PBrowserParent PBrowserParent;
typedef mozilla::dom::TabParent TabParent; typedef mozilla::dom::TabParent TabParent;
typedef mozilla::layout::RenderFrameParent RenderFrameParent; typedef mozilla::layout::RenderFrameParent RenderFrameParent;
#endif
protected: protected:
nsFrameLoader(nsIContent *aOwner, PRBool aNetworkCreated); nsFrameLoader(nsIContent *aOwner, PRBool aNetworkCreated);
@ -242,6 +246,7 @@ public:
nsIDocument* GetOwnerDoc() const nsIDocument* GetOwnerDoc() const
{ return mOwnerContent ? mOwnerContent->GetOwnerDoc() : nsnull; } { return mOwnerContent ? mOwnerContent->GetOwnerDoc() : nsnull; }
#ifdef MOZ_IPC
PBrowserParent* GetRemoteBrowser(); PBrowserParent* GetRemoteBrowser();
/** /**
@ -272,6 +277,7 @@ public:
{ {
mCurrentRemoteFrame = aFrame; mCurrentRemoteFrame = aFrame;
} }
#endif
nsFrameMessageManager* GetFrameMessageManager() { return mMessageManager; } nsFrameMessageManager* GetFrameMessageManager() { return mMessageManager; }
nsIContent* GetOwnerContent() { return mOwnerContent; } nsIContent* GetOwnerContent() { return mOwnerContent; }
@ -279,7 +285,9 @@ public:
private: private:
#ifdef MOZ_IPC
bool ShouldUseRemoteProcess(); bool ShouldUseRemoteProcess();
#endif
/** /**
* If we are an IPC frame, set mRemoteFrame. Otherwise, create and * If we are an IPC frame, set mRemoteFrame. Otherwise, create and
@ -299,11 +307,13 @@ private:
void FireErrorEvent(); void FireErrorEvent();
nsresult ReallyStartLoadingInternal(); nsresult ReallyStartLoadingInternal();
#ifdef MOZ_IPC
// Return true if remote browser created; nothing else to do // Return true if remote browser created; nothing else to do
bool TryRemoteBrowser(); bool TryRemoteBrowser();
// Tell the remote browser that it's now "virtually visible" // Tell the remote browser that it's now "virtually visible"
bool ShowRemoteFrame(const nsIntSize& size); bool ShowRemoteFrame(const nsIntSize& size);
#endif
nsCOMPtr<nsIDocShell> mDocShell; nsCOMPtr<nsIDocShell> mDocShell;
nsCOMPtr<nsIURI> mURIToLoad; nsCOMPtr<nsIURI> mURIToLoad;
@ -325,6 +335,7 @@ private:
// it may lose the flag. // it may lose the flag.
PRPackedBool mNetworkCreated : 1; PRPackedBool mNetworkCreated : 1;
#ifdef MOZ_IPC
PRPackedBool mDelayRemoteDialogs : 1; PRPackedBool mDelayRemoteDialogs : 1;
PRPackedBool mRemoteBrowserShown : 1; PRPackedBool mRemoteBrowserShown : 1;
bool mRemoteFrame; bool mRemoteFrame;
@ -332,6 +343,7 @@ private:
nsCOMPtr<nsIObserver> mChildHost; nsCOMPtr<nsIObserver> mChildHost;
RenderFrameParent* mCurrentRemoteFrame; RenderFrameParent* mCurrentRemoteFrame;
TabParent* mRemoteBrowser; TabParent* mRemoteBrowser;
#endif
// See nsIFrameLoader.idl. Short story, if !(mRenderMode & // See nsIFrameLoader.idl. Short story, if !(mRenderMode &
// RENDER_MODE_ASYNC_SCROLL), all the fields below are ignored in // RENDER_MODE_ASYNC_SCROLL), all the fields below are ignored in

Просмотреть файл

@ -35,8 +35,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "ContentChild.h" #include "ContentChild.h"
#include "ContentParent.h" #include "ContentParent.h"
#endif
#include "jscntxt.h" #include "jscntxt.h"
#include "nsFrameMessageManager.h" #include "nsFrameMessageManager.h"
#include "nsContentUtils.h" #include "nsContentUtils.h"
@ -727,6 +729,7 @@ NS_IMPL_ISUPPORTS1(nsScriptCacheCleaner, nsIObserver)
nsFrameMessageManager* nsFrameMessageManager::sChildProcessManager = nsnull; nsFrameMessageManager* nsFrameMessageManager::sChildProcessManager = nsnull;
nsFrameMessageManager* nsFrameMessageManager::sParentProcessManager = nsnull; nsFrameMessageManager* nsFrameMessageManager::sParentProcessManager = nsnull;
#ifdef MOZ_IPC
bool SendAsyncMessageToChildProcess(void* aCallbackData, bool SendAsyncMessageToChildProcess(void* aCallbackData,
const nsAString& aMessage, const nsAString& aMessage,
const nsAString& aJSON) const nsAString& aJSON)
@ -766,11 +769,14 @@ bool SendAsyncMessageToParentProcess(void* aCallbackData,
return true; return true;
} }
#endif
nsresult nsresult
NS_NewParentProcessMessageManager(nsIFrameMessageManager** aResult) NS_NewParentProcessMessageManager(nsIFrameMessageManager** aResult)
{ {
NS_ASSERTION(!nsFrameMessageManager::sParentProcessManager, NS_ASSERTION(!nsFrameMessageManager::sParentProcessManager,
"Re-creating sParentProcessManager"); "Re-creating sParentProcessManager");
#ifdef MOZ_IPC
NS_ENSURE_TRUE(IsChromeProcess(), NS_ERROR_NOT_AVAILABLE); NS_ENSURE_TRUE(IsChromeProcess(), NS_ERROR_NOT_AVAILABLE);
nsFrameMessageManager* mm = new nsFrameMessageManager(PR_TRUE, nsFrameMessageManager* mm = new nsFrameMessageManager(PR_TRUE,
nsnull, nsnull,
@ -784,6 +790,9 @@ NS_NewParentProcessMessageManager(nsIFrameMessageManager** aResult)
NS_ENSURE_TRUE(mm, NS_ERROR_OUT_OF_MEMORY); NS_ENSURE_TRUE(mm, NS_ERROR_OUT_OF_MEMORY);
nsFrameMessageManager::sParentProcessManager = mm; nsFrameMessageManager::sParentProcessManager = mm;
return CallQueryInterface(mm, aResult); return CallQueryInterface(mm, aResult);
#else
return NS_ERROR_NOT_AVAILABLE;
#endif
} }
@ -792,6 +801,7 @@ NS_NewChildProcessMessageManager(nsISyncMessageSender** aResult)
{ {
NS_ASSERTION(!nsFrameMessageManager::sChildProcessManager, NS_ASSERTION(!nsFrameMessageManager::sChildProcessManager,
"Re-creating sChildProcessManager"); "Re-creating sChildProcessManager");
#ifdef MOZ_IPC
NS_ENSURE_TRUE(!IsChromeProcess(), NS_ERROR_NOT_AVAILABLE); NS_ENSURE_TRUE(!IsChromeProcess(), NS_ERROR_NOT_AVAILABLE);
nsFrameMessageManager* mm = new nsFrameMessageManager(PR_FALSE, nsFrameMessageManager* mm = new nsFrameMessageManager(PR_FALSE,
SendSyncMessageToParentProcess, SendSyncMessageToParentProcess,
@ -805,4 +815,7 @@ NS_NewChildProcessMessageManager(nsISyncMessageSender** aResult)
NS_ENSURE_TRUE(mm, NS_ERROR_OUT_OF_MEMORY); NS_ENSURE_TRUE(mm, NS_ERROR_OUT_OF_MEMORY);
nsFrameMessageManager::sChildProcessManager = mm; nsFrameMessageManager::sChildProcessManager = mm;
return CallQueryInterface(mm, aResult); return CallQueryInterface(mm, aResult);
#else
return NS_ERROR_NOT_AVAILABLE;
#endif
} }

Просмотреть файл

@ -55,9 +55,14 @@ CPPSRCS = \
CanvasImageCache.cpp \ CanvasImageCache.cpp \
CanvasUtils.cpp \ CanvasUtils.cpp \
nsCanvasRenderingContext2D.cpp \ nsCanvasRenderingContext2D.cpp \
$(NULL)
ifdef MOZ_IPC
CPPSRCS += \
DocumentRendererParent.cpp \ DocumentRendererParent.cpp \
DocumentRendererChild.cpp \ DocumentRendererChild.cpp \
$(NULL) $(NULL)
endif
# Canvas 3D Pieces # Canvas 3D Pieces

Просмотреть файл

@ -38,7 +38,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "base/basictypes.h" # include "base/basictypes.h"
#endif
#include "nsIDOMXULElement.h" #include "nsIDOMXULElement.h"
@ -117,6 +119,7 @@
#include "nsStyleUtil.h" #include "nsStyleUtil.h"
#include "CanvasImageCache.h" #include "CanvasImageCache.h"
#ifdef MOZ_IPC
# include <algorithm> # include <algorithm>
# include "mozilla/dom/ContentParent.h" # include "mozilla/dom/ContentParent.h"
# include "mozilla/ipc/PDocumentRendererParent.h" # include "mozilla/ipc/PDocumentRendererParent.h"
@ -127,6 +130,7 @@
# undef DrawText # undef DrawText
using namespace mozilla::ipc; using namespace mozilla::ipc;
#endif
#ifdef MOZ_SVG #ifdef MOZ_SVG
#include "nsSVGEffects.h" #include "nsSVGEffects.h"
@ -1230,6 +1234,7 @@ nsCanvasRenderingContext2D::SetIsOpaque(PRBool isOpaque)
NS_IMETHODIMP NS_IMETHODIMP
nsCanvasRenderingContext2D::SetIsIPC(PRBool isIPC) nsCanvasRenderingContext2D::SetIsIPC(PRBool isIPC)
{ {
#ifdef MOZ_IPC
if (isIPC == mIPC) if (isIPC == mIPC)
return NS_OK; return NS_OK;
@ -1243,6 +1248,9 @@ nsCanvasRenderingContext2D::SetIsIPC(PRBool isIPC)
} }
return NS_OK; return NS_OK;
#else
return NS_ERROR_NOT_IMPLEMENTED;
#endif
} }
NS_IMETHODIMP NS_IMETHODIMP
@ -3759,6 +3767,7 @@ nsCanvasRenderingContext2D::AsyncDrawXULElement(nsIDOMXULElement* aElem, float a
if (!frameloader) if (!frameloader)
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
#ifdef MOZ_IPC
PBrowserParent *child = frameloader->GetRemoteBrowser(); PBrowserParent *child = frameloader->GetRemoteBrowser();
if (!child) { if (!child) {
nsCOMPtr<nsIDOMWindow> window = nsCOMPtr<nsIDOMWindow> window =
@ -3806,6 +3815,14 @@ nsCanvasRenderingContext2D::AsyncDrawXULElement(nsIDOMXULElement* aElem, float a
} }
return NS_OK; return NS_OK;
#else
nsCOMPtr<nsIDOMWindow> window =
do_GetInterface(frameloader->GetExistingDocShell());
if (!window)
return NS_ERROR_FAILURE;
return DrawWindow(window, aX, aY, aW, aH, aBGColor, flags);
#endif
} }
// //

Просмотреть файл

@ -37,8 +37,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#endif
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsDOMEvent.h" #include "nsDOMEvent.h"
#include "nsEventStateManager.h" #include "nsEventStateManager.h"
@ -1368,6 +1370,7 @@ nsDOMEvent::GetPreventDefault(PRBool* aReturn)
void void
nsDOMEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType) nsDOMEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType)
{ {
#ifdef MOZ_IPC
if (aSerializeInterfaceType) { if (aSerializeInterfaceType) {
IPC::WriteParam(aMsg, NS_LITERAL_STRING("event")); IPC::WriteParam(aMsg, NS_LITERAL_STRING("event"));
} }
@ -1389,11 +1392,13 @@ nsDOMEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType)
IPC::WriteParam(aMsg, trusted); IPC::WriteParam(aMsg, trusted);
// No timestamp serialization for now! // No timestamp serialization for now!
#endif
} }
PRBool PRBool
nsDOMEvent::Deserialize(const IPC::Message* aMsg, void** aIter) nsDOMEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
{ {
#ifdef MOZ_IPC
nsString type; nsString type;
NS_ENSURE_TRUE(IPC::ReadParam(aMsg, aIter, &type), PR_FALSE); NS_ENSURE_TRUE(IPC::ReadParam(aMsg, aIter, &type), PR_FALSE);
@ -1411,6 +1416,9 @@ nsDOMEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
SetTrusted(trusted); SetTrusted(trusted);
return PR_TRUE; return PR_TRUE;
#else
return PR_FALSE;
#endif
} }

Просмотреть файл

@ -36,8 +36,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#endif
#include "nsDOMNotifyPaintEvent.h" #include "nsDOMNotifyPaintEvent.h"
#include "nsContentUtils.h" #include "nsContentUtils.h"
#include "nsClientRect.h" #include "nsClientRect.h"
@ -146,6 +148,7 @@ nsDOMNotifyPaintEvent::GetPaintRequests(nsIDOMPaintRequestList** aResult)
return NS_OK; return NS_OK;
} }
#ifdef MOZ_IPC
void void
nsDOMNotifyPaintEvent::Serialize(IPC::Message* aMsg, nsDOMNotifyPaintEvent::Serialize(IPC::Message* aMsg,
PRBool aSerializeInterfaceType) PRBool aSerializeInterfaceType)
@ -187,6 +190,7 @@ nsDOMNotifyPaintEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
return PR_TRUE; return PR_TRUE;
} }
#endif
nsresult NS_NewDOMNotifyPaintEvent(nsIDOMEvent** aInstancePtrResult, nsresult NS_NewDOMNotifyPaintEvent(nsIDOMEvent** aInstancePtrResult,
nsPresContext* aPresContext, nsPresContext* aPresContext,

Просмотреть файл

@ -61,8 +61,10 @@ public:
// Forward to base class // Forward to base class
NS_FORWARD_TO_NSDOMEVENT NS_FORWARD_TO_NSDOMEVENT
#ifdef MOZ_IPC
virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType); virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType);
virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter); virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter);
#endif
private: private:
nsRegion GetRegion(); nsRegion GetRegion();

Просмотреть файл

@ -35,8 +35,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#endif
#include "nsDOMScrollAreaEvent.h" #include "nsDOMScrollAreaEvent.h"
#include "nsGUIEvent.h" #include "nsGUIEvent.h"
@ -114,6 +116,7 @@ nsDOMScrollAreaEvent::InitScrollAreaEvent(const nsAString &aEventType,
return NS_OK; return NS_OK;
} }
#ifdef MOZ_IPC
void void
nsDOMScrollAreaEvent::Serialize(IPC::Message* aMsg, nsDOMScrollAreaEvent::Serialize(IPC::Message* aMsg,
PRBool aSerializeInterfaceType) PRBool aSerializeInterfaceType)
@ -149,6 +152,7 @@ nsDOMScrollAreaEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
return PR_TRUE; return PR_TRUE;
} }
#endif
nsresult nsresult
NS_NewDOMScrollAreaEvent(nsIDOMEvent **aInstancePtrResult, NS_NewDOMScrollAreaEvent(nsIDOMEvent **aInstancePtrResult,

Просмотреть файл

@ -58,8 +58,10 @@ public:
NS_FORWARD_TO_NSDOMUIEVENT NS_FORWARD_TO_NSDOMUIEVENT
#ifdef MOZ_IPC
virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType); virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType);
virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter); virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter);
#endif
protected: protected:
nsClientRect mClientArea; nsClientRect mClientArea;

Просмотреть файл

@ -37,8 +37,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#endif
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsDOMUIEvent.h" #include "nsDOMUIEvent.h"
#include "nsIPresShell.h" #include "nsIPresShell.h"
@ -392,6 +394,7 @@ nsDOMUIEvent::DuplicatePrivateData()
return rv; return rv;
} }
#ifdef MOZ_IPC
void void
nsDOMUIEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType) nsDOMUIEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType)
{ {
@ -413,6 +416,7 @@ nsDOMUIEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
NS_ENSURE_TRUE(IPC::ReadParam(aMsg, aIter, &mDetail), PR_FALSE); NS_ENSURE_TRUE(IPC::ReadParam(aMsg, aIter, &mDetail), PR_FALSE);
return PR_TRUE; return PR_TRUE;
} }
#endif
nsresult NS_NewDOMUIEvent(nsIDOMEvent** aInstancePtrResult, nsresult NS_NewDOMUIEvent(nsIDOMEvent** aInstancePtrResult,
nsPresContext* aPresContext, nsPresContext* aPresContext,

Просмотреть файл

@ -62,8 +62,10 @@ public:
// nsIPrivateDOMEvent interface // nsIPrivateDOMEvent interface
NS_IMETHOD DuplicatePrivateData(); NS_IMETHOD DuplicatePrivateData();
#ifdef MOZ_IPC
virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType); virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType);
virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter); virtual PRBool Deserialize(const IPC::Message* aMsg, void** aIter);
#endif
// Forward to nsDOMEvent // Forward to nsDOMEvent
NS_FORWARD_TO_NSDOMEVENT NS_FORWARD_TO_NSDOMEVENT

Просмотреть файл

@ -44,7 +44,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/TabParent.h" #include "mozilla/dom/TabParent.h"
#endif
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsEventStateManager.h" #include "nsEventStateManager.h"
@ -162,7 +164,9 @@
#import <ApplicationServices/ApplicationServices.h> #import <ApplicationServices/ApplicationServices.h>
#endif #endif
#ifdef MOZ_IPC
using namespace mozilla::dom; using namespace mozilla::dom;
#endif
//#define DEBUG_DOCSHELL_FOCUS //#define DEBUG_DOCSHELL_FOCUS
@ -1334,16 +1338,20 @@ nsEventStateManager::PreHandleEvent(nsPresContext* aPresContext,
break; break;
case NS_QUERY_SELECTED_TEXT: case NS_QUERY_SELECTED_TEXT:
{ {
#ifdef MOZ_IPC
if (RemoteQueryContentEvent(aEvent)) if (RemoteQueryContentEvent(aEvent))
break; break;
#endif
nsContentEventHandler handler(mPresContext); nsContentEventHandler handler(mPresContext);
handler.OnQuerySelectedText((nsQueryContentEvent*)aEvent); handler.OnQuerySelectedText((nsQueryContentEvent*)aEvent);
} }
break; break;
case NS_QUERY_TEXT_CONTENT: case NS_QUERY_TEXT_CONTENT:
{ {
#ifdef MOZ_IPC
if (RemoteQueryContentEvent(aEvent)) if (RemoteQueryContentEvent(aEvent))
break; break;
#endif
nsContentEventHandler handler(mPresContext); nsContentEventHandler handler(mPresContext);
handler.OnQueryTextContent((nsQueryContentEvent*)aEvent); handler.OnQueryTextContent((nsQueryContentEvent*)aEvent);
} }
@ -1399,6 +1407,7 @@ nsEventStateManager::PreHandleEvent(nsPresContext* aPresContext,
break; break;
case NS_SELECTION_SET: case NS_SELECTION_SET:
{ {
#ifdef MOZ_IPC
nsSelectionEvent *selectionEvent = nsSelectionEvent *selectionEvent =
static_cast<nsSelectionEvent*>(aEvent); static_cast<nsSelectionEvent*>(aEvent);
if (IsTargetCrossProcess(selectionEvent)) { if (IsTargetCrossProcess(selectionEvent)) {
@ -1407,6 +1416,7 @@ nsEventStateManager::PreHandleEvent(nsPresContext* aPresContext,
selectionEvent->mSucceeded = PR_TRUE; selectionEvent->mSucceeded = PR_TRUE;
break; break;
} }
#endif
nsContentEventHandler handler(mPresContext); nsContentEventHandler handler(mPresContext);
handler.OnSelectionEvent((nsSelectionEvent*)aEvent); handler.OnSelectionEvent((nsSelectionEvent*)aEvent);
} }
@ -1427,6 +1437,7 @@ nsEventStateManager::PreHandleEvent(nsPresContext* aPresContext,
DoContentCommandScrollEvent(static_cast<nsContentCommandEvent*>(aEvent)); DoContentCommandScrollEvent(static_cast<nsContentCommandEvent*>(aEvent));
} }
break; break;
#ifdef MOZ_IPC
case NS_TEXT_TEXT: case NS_TEXT_TEXT:
{ {
nsTextEvent *textEvent = static_cast<nsTextEvent*>(aEvent); nsTextEvent *textEvent = static_cast<nsTextEvent*>(aEvent);
@ -1453,6 +1464,7 @@ nsEventStateManager::PreHandleEvent(nsPresContext* aPresContext,
} }
} }
break; break;
#endif // MOZ_IPC
} }
return NS_OK; return NS_OK;
} }
@ -3325,6 +3337,7 @@ nsEventStateManager::PostHandleEvent(nsPresContext* aPresContext,
return ret; return ret;
} }
#ifdef MOZ_IPC
PRBool PRBool
nsEventStateManager::RemoteQueryContentEvent(nsEvent *aEvent) nsEventStateManager::RemoteQueryContentEvent(nsEvent *aEvent)
{ {
@ -3354,6 +3367,7 @@ nsEventStateManager::IsTargetCrossProcess(nsGUIEvent *aEvent)
return PR_FALSE; return PR_FALSE;
return TabParent::GetIMETabParent() != nsnull; return TabParent::GetIMETabParent() != nsnull;
} }
#endif
NS_IMETHODIMP NS_IMETHODIMP
nsEventStateManager::NotifyDestroyPresContext(nsPresContext* aPresContext) nsEventStateManager::NotifyDestroyPresContext(nsPresContext* aPresContext)

Просмотреть файл

@ -349,9 +349,11 @@ protected:
nsresult DoContentCommandEvent(nsContentCommandEvent* aEvent); nsresult DoContentCommandEvent(nsContentCommandEvent* aEvent);
nsresult DoContentCommandScrollEvent(nsContentCommandEvent* aEvent); nsresult DoContentCommandScrollEvent(nsContentCommandEvent* aEvent);
#ifdef MOZ_IPC
PRBool RemoteQueryContentEvent(nsEvent *aEvent); PRBool RemoteQueryContentEvent(nsEvent *aEvent);
mozilla::dom::TabParent *GetCrossProcessTarget(); mozilla::dom::TabParent *GetCrossProcessTarget();
PRBool IsTargetCrossProcess(nsGUIEvent *aEvent); PRBool IsTargetCrossProcess(nsGUIEvent *aEvent);
#endif
PRInt32 mLockCursor; PRInt32 mLockCursor;

Просмотреть файл

@ -50,9 +50,14 @@ LIBXUL_LIBRARY = 1
EXPORTS = \ EXPORTS = \
nsImageMapUtils.h \ nsImageMapUtils.h \
nsClientRect.h \ nsClientRect.h \
nsHTMLDNSPrefetch.h \
$(NULL) $(NULL)
ifdef MOZ_IPC
EXPORTS += \
nsHTMLDNSPrefetch.h \
$(NULL)
endif
CPPSRCS = \ CPPSRCS = \
nsClientRect.cpp \ nsClientRect.cpp \
nsHTMLDNSPrefetch.cpp \ nsHTMLDNSPrefetch.cpp \

Просмотреть файл

@ -553,6 +553,7 @@ NS_IMETHODIMP
nsHTMLCanvasElement::MozGetIPCContext(const nsAString& aContextId, nsHTMLCanvasElement::MozGetIPCContext(const nsAString& aContextId,
nsISupports **aContext) nsISupports **aContext)
{ {
#ifdef MOZ_IPC
if(!nsContentUtils::IsCallerTrustedForRead()) { if(!nsContentUtils::IsCallerTrustedForRead()) {
// XXX ERRMSG we need to report an error to developers here! (bug 329026) // XXX ERRMSG we need to report an error to developers here! (bug 329026)
return NS_ERROR_DOM_SECURITY_ERR; return NS_ERROR_DOM_SECURITY_ERR;
@ -587,6 +588,9 @@ nsHTMLCanvasElement::MozGetIPCContext(const nsAString& aContextId,
NS_ADDREF (*aContext = mCurrentContext); NS_ADDREF (*aContext = mCurrentContext);
return NS_OK; return NS_OK;
#else
return NS_ERROR_NOT_IMPLEMENTED;
#endif
} }
nsresult nsresult

Просмотреть файл

@ -36,10 +36,12 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#include "mozilla/net/NeckoCommon.h" #include "mozilla/net/NeckoCommon.h"
#include "mozilla/net/NeckoChild.h" #include "mozilla/net/NeckoChild.h"
#include "nsURLHelper.h" #include "nsURLHelper.h"
#endif
#include "nsHTMLDNSPrefetch.h" #include "nsHTMLDNSPrefetch.h"
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
@ -106,8 +108,10 @@ nsHTMLDNSPrefetch::Initialize()
rv = CallGetService(kDNSServiceCID, &sDNSService); rv = CallGetService(kDNSServiceCID, &sDNSService);
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
#ifdef MOZ_IPC
if (IsNeckoChild()) if (IsNeckoChild())
NeckoChild::InitNeckoChild(); NeckoChild::InitNeckoChild();
#endif
sInitialized = PR_TRUE; sInitialized = PR_TRUE;
return NS_OK; return NS_OK;
@ -138,6 +142,7 @@ nsHTMLDNSPrefetch::IsAllowed (nsIDocument *aDocument)
nsresult nsresult
nsHTMLDNSPrefetch::Prefetch(Link *aElement, PRUint16 flags) nsHTMLDNSPrefetch::Prefetch(Link *aElement, PRUint16 flags)
{ {
#ifdef MOZ_IPC
if (IsNeckoChild()) { if (IsNeckoChild()) {
// Instead of transporting the Link object to the other process // Instead of transporting the Link object to the other process
// we are using the hostname based function here, too. Compared to the // we are using the hostname based function here, too. Compared to the
@ -148,6 +153,7 @@ nsHTMLDNSPrefetch::Prefetch(Link *aElement, PRUint16 flags)
return Prefetch(hostname, flags); return Prefetch(hostname, flags);
} }
#endif
if (!(sInitialized && sPrefetches && sDNSService && sDNSListener)) if (!(sInitialized && sPrefetches && sDNSService && sDNSListener))
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
@ -176,6 +182,7 @@ nsHTMLDNSPrefetch::PrefetchHigh(Link *aElement)
nsresult nsresult
nsHTMLDNSPrefetch::Prefetch(nsAString &hostname, PRUint16 flags) nsHTMLDNSPrefetch::Prefetch(nsAString &hostname, PRUint16 flags)
{ {
#ifdef MOZ_IPC
if (IsNeckoChild()) { if (IsNeckoChild()) {
// We need to check IsEmpty() because net_IsValidHostName() // We need to check IsEmpty() because net_IsValidHostName()
// considers empty strings to be valid hostnames // considers empty strings to be valid hostnames
@ -185,6 +192,7 @@ nsHTMLDNSPrefetch::Prefetch(nsAString &hostname, PRUint16 flags)
} }
return NS_OK; return NS_OK;
} }
#endif
if (!(sInitialized && sDNSService && sPrefetches && sDNSListener)) if (!(sInitialized && sDNSService && sPrefetches && sDNSListener))
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;

Просмотреть файл

@ -143,7 +143,9 @@ public:
} mEntries[sMaxDeferred]; } mEntries[sMaxDeferred];
}; };
#ifdef MOZ_IPC
friend class mozilla::net::NeckoParent; friend class mozilla::net::NeckoParent;
#endif
}; };
#endif #endif

Просмотреть файл

@ -37,12 +37,14 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/PAudioChild.h" #include "mozilla/dom/PAudioChild.h"
#include "mozilla/dom/AudioChild.h" #include "mozilla/dom/AudioChild.h"
#include "mozilla/Monitor.h" #include "mozilla/Monitor.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
using namespace mozilla::dom; using namespace mozilla::dom;
#endif
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
@ -63,7 +65,7 @@ extern "C" {
// Android's audio backend is not available in content processes, so audio must // Android's audio backend is not available in content processes, so audio must
// be remoted to the parent chrome process. // be remoted to the parent chrome process.
#if defined(ANDROID) #if defined(ANDROID) && defined(MOZ_IPC)
#define REMOTE_AUDIO 1 #define REMOTE_AUDIO 1
#endif #endif
@ -120,6 +122,7 @@ class nsAudioStreamLocal : public nsAudioStream
}; };
#ifdef MOZ_IPC
class nsAudioStreamRemote : public nsAudioStream class nsAudioStreamRemote : public nsAudioStream
{ {
public: public:
@ -291,6 +294,7 @@ class AudioShutdownEvent : public nsRunnable
nsRefPtr<AudioChild> mAudioChild; nsRefPtr<AudioChild> mAudioChild;
}; };
#endif // MOZ_IPC
void nsAudioStream::InitLibrary() void nsAudioStream::InitLibrary()
@ -593,6 +597,8 @@ PRInt32 nsAudioStreamLocal::GetMinWriteSamples()
return static_cast<PRInt32>(samples); return static_cast<PRInt32>(samples);
} }
#ifdef MOZ_IPC
nsAudioStreamRemote::nsAudioStreamRemote() nsAudioStreamRemote::nsAudioStreamRemote()
: mAudioChild(NULL), : mAudioChild(NULL),
mFormat(FORMAT_S16_LE), mFormat(FORMAT_S16_LE),
@ -744,3 +750,5 @@ nsAudioStreamRemote::IsPaused()
{ {
return mPaused; return mPaused;
} }
#endif // MOZ_IPC

Просмотреть файл

@ -64,13 +64,14 @@ public:
// library after using it. // library after using it.
static void ShutdownLibrary(); static void ShutdownLibrary();
// Thread that is shared between audio streams. // Thread, usually for MOZ_IPC handling, that is shared between audio streams.
// This may return null in the child process // This may return null in the child process
nsIThread *GetThread(); nsIThread *GetThread();
// AllocateStream will return either a local stream or a remoted stream // AllocateStream will return either a local stream or a remoted stream
// depending on where you call it from. If you call this from a child process, // depending on where you call it from. If MOZ_IPC is enabled, and you
// you may receive an implementation which forwards to a compositing process. // call this from a child process, you may recieve an implementation which
// forwards to a compositing process.
static nsAudioStream* AllocateStream(); static nsAudioStream* AllocateStream();
// Initialize the audio stream. aNumChannels is the number of audio channels // Initialize the audio stream. aNumChannels is the number of audio channels

Просмотреть файл

@ -71,7 +71,7 @@ public:
* UnregisterVisitedCallback. * UnregisterVisitedCallback.
* *
* @pre aURI must not be null. * @pre aURI must not be null.
* @pre aLink may be null only in the parent (chrome) process. * @pre aLink may be null only in the MOZ_IPC parent process.
* *
* @param aURI * @param aURI
* The URI to check. * The URI to check.

Просмотреть файл

@ -229,7 +229,9 @@ static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
#include "nsIChannelPolicy.h" #include "nsIChannelPolicy.h"
#include "nsIContentSecurityPolicy.h" #include "nsIContentSecurityPolicy.h"
#ifdef MOZ_IPC
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
#endif
using namespace mozilla; using namespace mozilla;
@ -6010,10 +6012,12 @@ nsDocShell::OnRedirectStateChange(nsIChannel* aOldChannel,
nsCOMPtr<nsIApplicationCacheChannel> appCacheChannel = nsCOMPtr<nsIApplicationCacheChannel> appCacheChannel =
do_QueryInterface(aNewChannel); do_QueryInterface(aNewChannel);
if (appCacheChannel) { if (appCacheChannel) {
#ifdef MOZ_IPC
// Permission will be checked in the parent process. // Permission will be checked in the parent process.
if (GeckoProcessType_Default != XRE_GetProcessType()) if (GeckoProcessType_Default != XRE_GetProcessType())
appCacheChannel->SetChooseApplicationCache(PR_TRUE); appCacheChannel->SetChooseApplicationCache(PR_TRUE);
else else
#endif
appCacheChannel->SetChooseApplicationCache(ShouldCheckAppCache(newURI)); appCacheChannel->SetChooseApplicationCache(ShouldCheckAppCache(newURI));
} }
@ -8724,10 +8728,12 @@ nsDocShell::DoURILoad(nsIURI * aURI,
// Loads with the correct permissions should check for a matching // Loads with the correct permissions should check for a matching
// application cache. // application cache.
#ifdef MOZ_IPC
// Permission will be checked in the parent process // Permission will be checked in the parent process
if (GeckoProcessType_Default != XRE_GetProcessType()) if (GeckoProcessType_Default != XRE_GetProcessType())
appCacheChannel->SetChooseApplicationCache(PR_TRUE); appCacheChannel->SetChooseApplicationCache(PR_TRUE);
else else
#endif
appCacheChannel->SetChooseApplicationCache( appCacheChannel->SetChooseApplicationCache(
ShouldCheckAppCache(aURI)); ShouldCheckAppCache(aURI));
} }

Просмотреть файл

@ -83,8 +83,13 @@ DIRS += \
plugins \ plugins \
indexedDB \ indexedDB \
system \ system \
$(NULL)
ifdef MOZ_IPC
DIRS += \
ipc \ ipc \
$(NULL) $(NULL)
endif
ifdef ENABLE_TESTS ifdef ENABLE_TESTS
DIRS += tests DIRS += tests

Просмотреть файл

@ -83,7 +83,6 @@ EXPORTS = \
nsPIWindowRoot.h \ nsPIWindowRoot.h \
nsFocusManager.h \ nsFocusManager.h \
nsWrapperCache.h \ nsWrapperCache.h \
nsContentPermissionHelper.h \
$(NULL) $(NULL)
CPPSRCS = \ CPPSRCS = \
@ -107,17 +106,27 @@ CPPSRCS = \
nsScriptNameSpaceManager.cpp \ nsScriptNameSpaceManager.cpp \
nsDOMScriptObjectFactory.cpp \ nsDOMScriptObjectFactory.cpp \
nsQueryContentEventResult.cpp \ nsQueryContentEventResult.cpp \
nsContentPermissionHelper.cpp \
$(NULL) $(NULL)
ifdef MOZ_IPC
EXPORTS += \
nsContentPermissionHelper.h \
$(NULL)
CPPSRCS += \
nsContentPermissionHelper.cpp \
$(NULL)
endif
include $(topsrcdir)/dom/dom-config.mk include $(topsrcdir)/dom/dom-config.mk
ifdef MOZ_JSDEBUGGER ifdef MOZ_JSDEBUGGER
DEFINES += -DMOZ_JSDEBUGGER DEFINES += -DMOZ_JSDEBUGGER
endif endif
ifdef MOZ_IPC
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -46,7 +46,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#endif
// Local Includes // Local Includes
#include "nsGlobalWindow.h" #include "nsGlobalWindow.h"

Просмотреть файл

@ -50,6 +50,8 @@ EXPORTS_mozilla = \
PluginLibrary.h \ PluginLibrary.h \
$(NULL) $(NULL)
ifdef MOZ_IPC
EXPORTS_NAMESPACES = mozilla mozilla/plugins EXPORTS_NAMESPACES = mozilla mozilla/plugins
EXPORTS_mozilla/plugins = \ EXPORTS_mozilla/plugins = \
@ -149,6 +151,7 @@ LOCAL_INCLUDES = \
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -83,7 +83,9 @@ LOCAL_INCLUDES += -I$(topsrcdir)/dom/system/android \
$(NULL) $(NULL)
endif endif
ifdef MOZ_IPC
EXPORTS += nsGeoPositionIPCSerialiser.h EXPORTS += nsGeoPositionIPCSerialiser.h
endif
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk

Просмотреть файл

@ -34,6 +34,7 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "nsContentPermissionHelper.h" #include "nsContentPermissionHelper.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
@ -52,6 +53,7 @@
#include "nsDOMEventTargetHelper.h" #include "nsDOMEventTargetHelper.h"
#include "TabChild.h" #include "TabChild.h"
#endif
#include "nsGeolocation.h" #include "nsGeolocation.h"
#include "nsAutoPtr.h" #include "nsAutoPtr.h"
@ -480,6 +482,7 @@ nsGeolocationRequest::Shutdown()
mErrorCallback = nsnull; mErrorCallback = nsnull;
} }
#ifdef MOZ_IPC
bool nsGeolocationRequest::Recv__delete__(const bool& allow) bool nsGeolocationRequest::Recv__delete__(const bool& allow)
{ {
if (allow) if (allow)
@ -488,6 +491,7 @@ bool nsGeolocationRequest::Recv__delete__(const bool& allow)
(void) Cancel(); (void) Cancel();
return true; return true;
} }
#endif
//////////////////////////////////////////////////// ////////////////////////////////////////////////////
// nsGeolocationService // nsGeolocationService
//////////////////////////////////////////////////// ////////////////////////////////////////////////////
@ -677,11 +681,13 @@ nsGeolocationService::StartDevice()
// inactivivity // inactivivity
SetDisconnectTimer(); SetDisconnectTimer();
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
ContentChild* cpc = ContentChild::GetSingleton(); ContentChild* cpc = ContentChild::GetSingleton();
cpc->SendAddGeolocationListener(); cpc->SendAddGeolocationListener();
return NS_OK; return NS_OK;
} }
#endif
// Start them up! // Start them up!
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
@ -720,11 +726,13 @@ nsGeolocationService::StopDevice()
mDisconnectTimer = nsnull; mDisconnectTimer = nsnull;
} }
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
ContentChild* cpc = ContentChild::GetSingleton(); ContentChild* cpc = ContentChild::GetSingleton();
cpc->SendRemoveGeolocationListener(); cpc->SendRemoveGeolocationListener();
return; // bail early return; // bail early
} }
#endif
nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService();
if (!obs) if (!obs)
@ -1045,6 +1053,7 @@ nsGeolocation::WindowOwnerStillExists()
bool bool
nsGeolocation::RegisterRequestWithPrompt(nsGeolocationRequest* request) nsGeolocation::RegisterRequestWithPrompt(nsGeolocationRequest* request)
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
nsCOMPtr<nsPIDOMWindow> window = do_QueryReferent(mOwner); nsCOMPtr<nsPIDOMWindow> window = do_QueryReferent(mOwner);
if (!window) if (!window)
@ -1066,6 +1075,7 @@ nsGeolocation::RegisterRequestWithPrompt(nsGeolocationRequest* request)
request->Sendprompt(); request->Sendprompt();
return true; return true;
} }
#endif
if (nsContentUtils::GetBoolPref("geo.prompt.testing", PR_FALSE)) if (nsContentUtils::GetBoolPref("geo.prompt.testing", PR_FALSE))
{ {

Просмотреть файл

@ -37,9 +37,11 @@
#ifndef nsGeoLocation_h #ifndef nsGeoLocation_h
#define nsGeoLocation_h #define nsGeoLocation_h
#ifdef MOZ_IPC
#include "mozilla/dom/PContentPermissionRequestChild.h" #include "mozilla/dom/PContentPermissionRequestChild.h"
// Microsoft's API Name hackery sucks // Microsoft's API Name hackery sucks
#undef CreateEvent #undef CreateEvent
#endif
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsAutoPtr.h" #include "nsAutoPtr.h"
@ -65,7 +67,9 @@
#include "nsIGeolocationProvider.h" #include "nsIGeolocationProvider.h"
#include "nsIContentPermissionPrompt.h" #include "nsIContentPermissionPrompt.h"
#ifdef MOZ_IPC
#include "PCOMContentPermissionRequestChild.h" #include "PCOMContentPermissionRequestChild.h"
#endif
class nsGeolocationService; class nsGeolocationService;
class nsGeolocation; class nsGeolocation;
@ -73,7 +77,9 @@ class nsGeolocation;
class nsGeolocationRequest class nsGeolocationRequest
: public nsIContentPermissionRequest : public nsIContentPermissionRequest
, public nsITimerCallback , public nsITimerCallback
#ifdef MOZ_IPC
, public PCOMContentPermissionRequestChild , public PCOMContentPermissionRequestChild
#endif
{ {
public: public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS NS_DECL_CYCLE_COLLECTING_ISUPPORTS
@ -101,8 +107,10 @@ class nsGeolocationRequest
~nsGeolocationRequest(); ~nsGeolocationRequest();
#ifdef MOZ_IPC
bool Recv__delete__(const bool& allow); bool Recv__delete__(const bool& allow);
void IPDLRelease() { Release(); } void IPDLRelease() { Release(); }
#endif
private: private:

Просмотреть файл

@ -36,6 +36,7 @@
#include "nsDesktopNotification.h" #include "nsDesktopNotification.h"
#ifdef MOZ_IPC
#include "nsContentPermissionHelper.h" #include "nsContentPermissionHelper.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
@ -43,6 +44,7 @@
#include "TabChild.h" #include "TabChild.h"
using namespace mozilla::dom; using namespace mozilla::dom;
#endif
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
/* AlertServiceObserver */ /* AlertServiceObserver */
@ -127,6 +129,7 @@ nsDOMDesktopNotification::nsDOMDesktopNotification(const nsAString & title,
nsRefPtr<nsDesktopNotificationRequest> request = new nsDesktopNotificationRequest(this); nsRefPtr<nsDesktopNotificationRequest> request = new nsDesktopNotificationRequest(this);
// if we are in the content process, then remote it to the parent. // if we are in the content process, then remote it to the parent.
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
// if for some reason mOwner is null, just silently // if for some reason mOwner is null, just silently
@ -149,6 +152,7 @@ nsDOMDesktopNotification::nsDOMDesktopNotification(const nsAString & title,
request->Sendprompt(); request->Sendprompt();
return; return;
} }
#endif
// otherwise, dispatch it // otherwise, dispatch it
NS_DispatchToMainThread(request); NS_DispatchToMainThread(request);

Просмотреть файл

@ -37,7 +37,10 @@
#ifndef nsDesktopNotification_h #ifndef nsDesktopNotification_h
#define nsDesktopNotification_h #define nsDesktopNotification_h
#ifdef MOZ_IPC
#include "PCOMContentPermissionRequestChild.h" #include "PCOMContentPermissionRequestChild.h"
#endif
#include "nsDOMClassInfo.h" #include "nsDOMClassInfo.h"
#include "nsIJSContextStack.h" #include "nsIJSContextStack.h"
@ -152,8 +155,10 @@ protected:
* Simple Request * Simple Request
*/ */
class nsDesktopNotificationRequest : public nsIContentPermissionRequest, class nsDesktopNotificationRequest : public nsIContentPermissionRequest,
public nsRunnable, public nsRunnable
public PCOMContentPermissionRequestChild #ifdef MOZ_IPC
, public PCOMContentPermissionRequestChild
#endif
{ {
public: public:
@ -177,6 +182,8 @@ class nsDesktopNotificationRequest : public nsIContentPermissionRequest,
{ {
} }
#ifdef MOZ_IPC
bool Recv__delete__(const bool& allow) bool Recv__delete__(const bool& allow)
{ {
if (allow) if (allow)
@ -186,6 +193,7 @@ class nsDesktopNotificationRequest : public nsIContentPermissionRequest,
return true; return true;
} }
void IPDLRelease() { Release(); } void IPDLRelease() { Release(); }
#endif
nsRefPtr<nsDOMDesktopNotification> mDesktopNotification; nsRefPtr<nsDOMDesktopNotification> mDesktopNotification;
}; };

Просмотреть файл

@ -57,9 +57,14 @@
#include "nsIScriptGlobalObject.h" #include "nsIScriptGlobalObject.h"
#include "nsIWebNavigation.h" #include "nsIWebNavigation.h"
#ifdef MOZ_IPC
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
#define IS_CHILD_PROCESS() \ #define IS_CHILD_PROCESS() \
(GeckoProcessType_Default != XRE_GetProcessType()) (GeckoProcessType_Default != XRE_GetProcessType())
#else
#define IS_CHILD_PROCESS() \
(false)
#endif
// Event names // Event names

Просмотреть файл

@ -55,11 +55,13 @@ CPPSRCS = \
ifdef MOZ_STORAGE ifdef MOZ_STORAGE
CPPSRCS += nsDOMStorageDBWrapper.cpp nsDOMStoragePersistentDB.cpp nsDOMStorageMemoryDB.cpp CPPSRCS += nsDOMStorageDBWrapper.cpp nsDOMStoragePersistentDB.cpp nsDOMStorageMemoryDB.cpp
ifdef MOZ_IPC
CPPSRCS += StorageChild.cpp StorageParent.cpp CPPSRCS += StorageChild.cpp StorageParent.cpp
EXPORTS_NAMESPACES = mozilla/dom EXPORTS_NAMESPACES = mozilla/dom
EXPORTS_mozilla/dom = StorageChild.h StorageParent.h EXPORTS_mozilla/dom = StorageChild.h StorageParent.h
endif endif
endif
# we don't want the shared lib, but we want to force the creation of a static lib. # we don't want the shared lib, but we want to force the creation of a static lib.
FORCE_STATIC_LIB = 1 FORCE_STATIC_LIB = 1

Просмотреть файл

@ -40,10 +40,12 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "StorageChild.h" #include "StorageChild.h"
#include "StorageParent.h" #include "StorageParent.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
using mozilla::dom::StorageChild; using mozilla::dom::StorageChild;
#endif
#include "prnetdb.h" #include "prnetdb.h"
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
@ -269,9 +271,11 @@ nsDOMStorageManager::Initialize()
NS_ADDREF(gStorageManager); NS_ADDREF(gStorageManager);
#ifdef MOZ_IPC
// No observers needed in non-chrome // No observers needed in non-chrome
if (XRE_GetProcessType() != GeckoProcessType_Default) if (XRE_GetProcessType() != GeckoProcessType_Default)
return NS_OK; return NS_OK;
#endif
nsCOMPtr<nsIObserverService> os = mozilla::services::GetObserverService(); nsCOMPtr<nsIObserverService> os = mozilla::services::GetObserverService();
if (!os) if (!os)
@ -1351,10 +1355,12 @@ nsDOMStorage::nsDOMStorage()
{ {
mSecurityChecker = this; mSecurityChecker = this;
#ifdef MOZ_IPC
if (XRE_GetProcessType() != GeckoProcessType_Default) if (XRE_GetProcessType() != GeckoProcessType_Default)
mStorageImpl = new StorageChild(this); mStorageImpl = new StorageChild(this);
else else
mStorageImpl = new DOMStorageImpl(this); #endif
mStorageImpl = new DOMStorageImpl(this);
} }
nsDOMStorage::nsDOMStorage(nsDOMStorage& aThat) nsDOMStorage::nsDOMStorage(nsDOMStorage& aThat)
@ -1363,10 +1369,13 @@ nsDOMStorage::nsDOMStorage(nsDOMStorage& aThat)
{ {
mSecurityChecker = this; mSecurityChecker = this;
#ifdef MOZ_IPC
if (XRE_GetProcessType() != GeckoProcessType_Default) { if (XRE_GetProcessType() != GeckoProcessType_Default) {
StorageChild* other = static_cast<StorageChild*>(aThat.mStorageImpl.get()); StorageChild* other = static_cast<StorageChild*>(aThat.mStorageImpl.get());
mStorageImpl = new StorageChild(this, *other); mStorageImpl = new StorageChild(this, *other);
} else { } else
#endif
{
DOMStorageImpl* other = static_cast<DOMStorageImpl*>(aThat.mStorageImpl.get()); DOMStorageImpl* other = static_cast<DOMStorageImpl*>(aThat.mStorageImpl.get());
mStorageImpl = new DOMStorageImpl(this, *other); mStorageImpl = new DOMStorageImpl(this, *other);
} }

Просмотреть файл

@ -1229,7 +1229,10 @@ NS_IMETHODIMP nsWebBrowser::Create()
} }
mDocShellAsNav->SetSessionHistory(mInitInfo->sessionHistory); mDocShellAsNav->SetSessionHistory(mInitInfo->sessionHistory);
if (XRE_GetProcessType() == GeckoProcessType_Default) { #ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Default)
#endif
{
// Hook up global history. Do not fail if we can't - just warn. // Hook up global history. Do not fail if we can't - just warn.
rv = EnableGlobalHistory(mShouldEnableHistory); rv = EnableGlobalHistory(mShouldEnableHistory);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "EnableGlobalHistory() failed"); NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "EnableGlobalHistory() failed");

Просмотреть файл

@ -37,9 +37,11 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentParent.h" #include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentChild.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
#endif
#include "nsPermissionManager.h" #include "nsPermissionManager.h"
#include "nsPermission.h" #include "nsPermission.h"
#include "nsCRT.h" #include "nsCRT.h"
@ -61,6 +63,7 @@
static nsPermissionManager *gPermissionManager = nsnull; static nsPermissionManager *gPermissionManager = nsnull;
#ifdef MOZ_IPC
using mozilla::dom::ContentParent; using mozilla::dom::ContentParent;
using mozilla::dom::ContentChild; using mozilla::dom::ContentChild;
using mozilla::unused; // ha! using mozilla::unused; // ha!
@ -105,6 +108,7 @@ ParentProcess()
return nsnull; return nsnull;
} }
#endif
#define ENSURE_NOT_CHILD_PROCESS_(onError) \ #define ENSURE_NOT_CHILD_PROCESS_(onError) \
PR_BEGIN_MACRO \ PR_BEGIN_MACRO \
@ -170,7 +174,9 @@ NS_IMPL_ISUPPORTS3(nsPermissionManager, nsIPermissionManager, nsIObserver, nsISu
nsPermissionManager::nsPermissionManager() nsPermissionManager::nsPermissionManager()
: mLargestID(0) : mLargestID(0)
#ifdef MOZ_IPC
, mUpdateChildProcess(PR_FALSE) , mUpdateChildProcess(PR_FALSE)
#endif
{ {
} }
@ -227,6 +233,7 @@ nsPermissionManager::Init()
mObserverService->AddObserver(this, "profile-do-change", PR_TRUE); mObserverService->AddObserver(this, "profile-do-change", PR_TRUE);
} }
#ifdef MOZ_IPC
if (IsChildProcess()) { if (IsChildProcess()) {
// Get the permissions from the parent process // Get the permissions from the parent process
InfallibleTArray<IPC::Permission> perms; InfallibleTArray<IPC::Permission> perms;
@ -241,6 +248,7 @@ nsPermissionManager::Init()
// Stop here; we don't need the DB in the child process // Stop here; we don't need the DB in the child process
return NS_OK; return NS_OK;
} }
#endif
// ignore failure here, since it's non-fatal (we can run fine without // ignore failure here, since it's non-fatal (we can run fine without
// persistent storage - e.g. if there's no profile). // persistent storage - e.g. if there's no profile).
@ -432,7 +440,9 @@ nsPermissionManager::Add(nsIURI *aURI,
PRUint32 aExpireType, PRUint32 aExpireType,
PRInt64 aExpireTime) PRInt64 aExpireTime)
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
NS_ENSURE_ARG_POINTER(aURI); NS_ENSURE_ARG_POINTER(aURI);
NS_ENSURE_ARG_POINTER(aType); NS_ENSURE_ARG_POINTER(aType);
@ -466,6 +476,7 @@ nsPermissionManager::AddInternal(const nsAFlatCString &aHost,
NotifyOperationType aNotifyOperation, NotifyOperationType aNotifyOperation,
DBOperationType aDBOperation) DBOperationType aDBOperation)
{ {
#ifdef MOZ_IPC
if (!IsChildProcess()) { if (!IsChildProcess()) {
// In the parent, send the update now, if the child is ready // In the parent, send the update now, if the child is ready
if (mUpdateChildProcess) { if (mUpdateChildProcess) {
@ -475,6 +486,7 @@ nsPermissionManager::AddInternal(const nsAFlatCString &aHost,
unused << ParentProcess()->SendAddPermission(permission); unused << ParentProcess()->SendAddPermission(permission);
} }
} }
#endif
if (!gHostArena) { if (!gHostArena) {
gHostArena = new PLArenaPool; gHostArena = new PLArenaPool;
@ -615,7 +627,9 @@ NS_IMETHODIMP
nsPermissionManager::Remove(const nsACString &aHost, nsPermissionManager::Remove(const nsACString &aHost,
const char *aType) const char *aType)
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
NS_ENSURE_ARG_POINTER(aType); NS_ENSURE_ARG_POINTER(aType);
@ -633,7 +647,9 @@ nsPermissionManager::Remove(const nsACString &aHost,
NS_IMETHODIMP NS_IMETHODIMP
nsPermissionManager::RemoveAll() nsPermissionManager::RemoveAll()
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
nsresult rv = RemoveAllInternal(); nsresult rv = RemoveAllInternal();
NotifyObservers(nsnull, NS_LITERAL_STRING("cleared").get()); NotifyObservers(nsnull, NS_LITERAL_STRING("cleared").get());
@ -790,7 +806,9 @@ AddPermissionsToList(nsHostEntry *entry, void *arg)
NS_IMETHODIMP nsPermissionManager::GetEnumerator(nsISimpleEnumerator **aEnum) NS_IMETHODIMP nsPermissionManager::GetEnumerator(nsISimpleEnumerator **aEnum)
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
// roll an nsCOMArray of all our permissions, then hand out an enumerator // roll an nsCOMArray of all our permissions, then hand out an enumerator
nsCOMArray<nsIPermission> array; nsCOMArray<nsIPermission> array;
@ -803,7 +821,9 @@ NS_IMETHODIMP nsPermissionManager::GetEnumerator(nsISimpleEnumerator **aEnum)
NS_IMETHODIMP nsPermissionManager::Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) NS_IMETHODIMP nsPermissionManager::Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData)
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
if (!nsCRT::strcmp(aTopic, "profile-before-change")) { if (!nsCRT::strcmp(aTopic, "profile-before-change")) {
// The profile is about to change, // The profile is about to change,
@ -900,7 +920,9 @@ nsPermissionManager::NotifyObservers(nsIPermission *aPermission,
nsresult nsresult
nsPermissionManager::Read() nsPermissionManager::Read()
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
nsresult rv; nsresult rv;
@ -968,7 +990,9 @@ static const char kMatchTypeHost[] = "host";
nsresult nsresult
nsPermissionManager::Import() nsPermissionManager::Import()
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS; ENSURE_NOT_CHILD_PROCESS;
#endif
nsresult rv; nsresult rv;
@ -1074,7 +1098,9 @@ nsPermissionManager::UpdateDB(OperationType aOp,
PRUint32 aExpireType, PRUint32 aExpireType,
PRInt64 aExpireTime) PRInt64 aExpireTime)
{ {
#ifdef MOZ_IPC
ENSURE_NOT_CHILD_PROCESS_NORET; ENSURE_NOT_CHILD_PROCESS_NORET;
#endif
nsresult rv; nsresult rv;

Просмотреть файл

@ -251,6 +251,7 @@ private:
// An array to store the strings identifying the different types. // An array to store the strings identifying the different types.
nsTArray<nsCString> mTypeArray; nsTArray<nsCString> mTypeArray;
#ifdef MOZ_IPC
// Whether we should update the child process with every change to a // Whether we should update the child process with every change to a
// permission. This is set to true once the child is ready to receive // permission. This is set to true once the child is ready to receive
// such updates. // such updates.
@ -261,6 +262,7 @@ public:
{ {
mUpdateChildProcess = PR_TRUE; mUpdateChildProcess = PR_TRUE;
} }
#endif
}; };
// {4F6B5E00-0C36-11d5-A535-0010A401EB10} // {4F6B5E00-0C36-11d5-A535-0010A401EB10}

Просмотреть файл

@ -96,10 +96,12 @@ libs:: $(_BROWSER_TEST_FILES)
XPCSHELL_TESTS = unit XPCSHELL_TESTS = unit
ifdef MOZ_IPC
# FIXME/bug 575918: out-of-process xpcshell is broken on OS X # FIXME/bug 575918: out-of-process xpcshell is broken on OS X
ifneq ($(OS_ARCH),Darwin) ifneq ($(OS_ARCH),Darwin)
XPCSHELL_TESTS += unit_ipc XPCSHELL_TESTS += unit_ipc
endif endif
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -59,12 +59,16 @@ endif
DIRS += angle DIRS += angle
DIRS += src qcms layers harfbuzz/src ots/src thebes src/thebes ipc DIRS += src qcms layers harfbuzz/src ots/src thebes src/thebes
ifdef BUILD_STATIC_LIBS ifdef BUILD_STATIC_LIBS
DIRS += ycbcr DIRS += ycbcr
endif endif
ifdef MOZ_IPC
DIRS += ipc
endif
ifdef ENABLE_TESTS ifdef ENABLE_TESTS
TOOL_DIRS += tests TOOL_DIRS += tests
endif endif

Просмотреть файл

@ -42,6 +42,8 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk include $(DEPTH)/config/autoconf.mk
ifdef MOZ_IPC
MODULE = gfxipc MODULE = gfxipc
LIBRARY_NAME = gfxipc_s LIBRARY_NAME = gfxipc_s
FORCE_STATIC_LIB = 1 FORCE_STATIC_LIB = 1
@ -71,6 +73,8 @@ endif
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)

Просмотреть файл

@ -38,7 +38,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "mozilla/layers/ShadowLayers.h" #ifdef MOZ_IPC
# include "mozilla/layers/ShadowLayers.h"
#endif // MOZ_IPC
#include "ImageLayers.h" #include "ImageLayers.h"
#include "Layers.h" #include "Layers.h"
@ -239,6 +241,7 @@ Layer::CanUseOpaqueSurface()
parent->CanUseOpaqueSurface(); parent->CanUseOpaqueSurface();
} }
#ifdef MOZ_IPC
// NB: eventually these methods will be defined unconditionally, and // NB: eventually these methods will be defined unconditionally, and
// can be moved into Layers.h // can be moved into Layers.h
const nsIntRect* const nsIntRect*
@ -259,6 +262,13 @@ Layer::GetEffectiveVisibleRegion()
return GetVisibleRegion(); return GetVisibleRegion();
} }
#else
const nsIntRect* Layer::GetEffectiveClipRect() { return GetClipRect(); }
const nsIntRegion& Layer::GetEffectiveVisibleRegion() { return GetVisibleRegion(); }
#endif // MOZ_IPC
gfx3DMatrix gfx3DMatrix
Layer::SnapTransform(const gfx3DMatrix& aTransform, Layer::SnapTransform(const gfx3DMatrix& aTransform,
const gfxRect& aSnapRect, const gfxRect& aSnapRect,
@ -351,8 +361,10 @@ Layer::CalculateScissorRect(bool aIntermediate,
const gfx3DMatrix& const gfx3DMatrix&
Layer::GetLocalTransform() Layer::GetLocalTransform()
{ {
#ifdef MOZ_IPC
if (ShadowLayer* shadow = AsShadowLayer()) if (ShadowLayer* shadow = AsShadowLayer())
return shadow->GetShadowTransform(); return shadow->GetShadowTransform();
#endif
return mTransform; return mTransform;
} }
@ -690,6 +702,7 @@ LayerManager::IsLogEnabled()
return PR_LOG_TEST(sLog, PR_LOG_DEBUG); return PR_LOG_TEST(sLog, PR_LOG_DEBUG);
} }
# ifdef MOZ_IPC
static nsACString& static nsACString&
PrintInfo(nsACString& aTo, ShadowLayer* aShadowLayer) PrintInfo(nsACString& aTo, ShadowLayer* aShadowLayer)
{ {
@ -707,6 +720,12 @@ PrintInfo(nsACString& aTo, ShadowLayer* aShadowLayer)
} }
return aTo; return aTo;
} }
# else
static nsACString& PrintInfo(nsACString& aTo, ShadowLayer* aShadowLayer)
{
return aTo;
}
# endif // MOZ_IPC
#else // !MOZ_LAYERS_HAVE_LOG #else // !MOZ_LAYERS_HAVE_LOG

Просмотреть файл

@ -44,11 +44,14 @@ VPATH = \
$(srcdir)/opengl \ $(srcdir)/opengl \
$(srcdir)/d3d9 \ $(srcdir)/d3d9 \
$(srcdir)/d3d10 \ $(srcdir)/d3d10 \
$(srcdir)/ipc \
$(NULL) $(NULL)
include $(DEPTH)/config/autoconf.mk include $(DEPTH)/config/autoconf.mk
ifdef MOZ_IPC
VPATH += $(srcdir)/ipc
endif
MODULE = thebes MODULE = thebes
LIBRARY_NAME = layers LIBRARY_NAME = layers
LIBXUL_LIBRARY = 1 LIBXUL_LIBRARY = 1
@ -124,6 +127,7 @@ CPPSRCS += \
endif endif
endif endif
ifdef MOZ_IPC #{
EXPORTS_NAMESPACES = IPC mozilla/layers EXPORTS_NAMESPACES = IPC mozilla/layers
EXPORTS_IPC = ShadowLayerUtils.h EXPORTS_IPC = ShadowLayerUtils.h
EXPORTS_mozilla/layers =\ EXPORTS_mozilla/layers =\
@ -145,6 +149,8 @@ EXPORTS_mozilla/layers += ShadowLayerUtilsX11.h
CPPSRCS += ShadowLayerUtilsX11.cpp CPPSRCS += ShadowLayerUtilsX11.cpp
endif #} endif #}
endif #}
# Enable GLES2.0 under maemo # Enable GLES2.0 under maemo
ifdef MOZ_X11 ifdef MOZ_X11
ifdef MOZ_PLATFORM_MAEMO ifdef MOZ_PLATFORM_MAEMO
@ -154,7 +160,9 @@ endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
ifdef MOZ_IPC
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS) CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)

Просмотреть файл

@ -36,12 +36,14 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "gfxSharedImageSurface.h" #ifdef MOZ_IPC
# include "gfxSharedImageSurface.h"
#include "mozilla/layers/PLayerChild.h" # include "mozilla/layers/PLayerChild.h"
#include "mozilla/layers/PLayersChild.h" # include "mozilla/layers/PLayersChild.h"
#include "mozilla/layers/PLayersParent.h" # include "mozilla/layers/PLayersParent.h"
#include "ipc/ShadowLayerChild.h" # include "ipc/ShadowLayerChild.h"
#endif
#include "BasicLayers.h" #include "BasicLayers.h"
#include "ImageLayers.h" #include "ImageLayers.h"
@ -1607,6 +1609,8 @@ BasicLayerManager::CreateReadbackLayer()
return layer.forget(); return layer.forget();
} }
#ifdef MOZ_IPC
class BasicShadowableThebesLayer; class BasicShadowableThebesLayer;
class BasicShadowableLayer : public ShadowableLayer class BasicShadowableLayer : public ShadowableLayer
{ {
@ -2890,6 +2894,7 @@ BasicShadowLayerManager::IsCompositingCheap()
return mShadowManager && return mShadowManager &&
LayerManager::IsCompositingCheap(GetParentBackendType()); LayerManager::IsCompositingCheap(GetParentBackendType());
} }
#endif // MOZ_IPC
} }
} }

Просмотреть файл

@ -45,7 +45,9 @@
#include "nsAutoRef.h" #include "nsAutoRef.h"
#include "nsThreadUtils.h" #include "nsThreadUtils.h"
#ifdef MOZ_IPC
#include "mozilla/layers/ShadowLayers.h" #include "mozilla/layers/ShadowLayers.h"
#endif
class nsIWidget; class nsIWidget;
@ -69,7 +71,11 @@ class ReadbackProcessor;
* between layers). * between layers).
*/ */
class THEBES_API BasicLayerManager : class THEBES_API BasicLayerManager :
#ifdef MOZ_IPC
public ShadowLayerManager public ShadowLayerManager
#else
public LayerManager
#endif
{ {
public: public:
/** /**
@ -229,6 +235,7 @@ protected:
}; };
#ifdef MOZ_IPC
class BasicShadowLayerManager : public BasicLayerManager, class BasicShadowLayerManager : public BasicLayerManager,
public ShadowLayerForwarder public ShadowLayerForwarder
{ {
@ -277,6 +284,7 @@ private:
LayerRefArray mKeepAlive; LayerRefArray mKeepAlive;
}; };
#endif // MOZ_IPC
} }
} }

Просмотреть файл

@ -35,7 +35,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "gfxSharedImageSurface.h" # include "gfxSharedImageSurface.h"
#endif
#include "CanvasLayerOGL.h" #include "CanvasLayerOGL.h"
@ -251,6 +253,8 @@ CanvasLayerOGL::RenderLayer(int aPreviousDestination,
} }
#ifdef MOZ_IPC
ShadowCanvasLayerOGL::ShadowCanvasLayerOGL(LayerManagerOGL* aManager) ShadowCanvasLayerOGL::ShadowCanvasLayerOGL(LayerManagerOGL* aManager)
: ShadowCanvasLayer(aManager, nsnull) : ShadowCanvasLayer(aManager, nsnull)
, LayerOGL(aManager) , LayerOGL(aManager)
@ -338,3 +342,5 @@ ShadowCanvasLayerOGL::RenderLayer(int aPreviousFrameBuffer,
mOGLManager->BindAndDrawQuad(program); mOGLManager->BindAndDrawQuad(program);
} }
#endif // MOZ_IPC

Просмотреть файл

@ -38,8 +38,10 @@
#ifndef GFX_CANVASLAYEROGL_H #ifndef GFX_CANVASLAYEROGL_H
#define GFX_CANVASLAYEROGL_H #define GFX_CANVASLAYEROGL_H
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/ShadowLayers.h"
#endif // MOZ_IPC
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
#include "gfxASurface.h" #include "gfxASurface.h"
@ -87,6 +89,7 @@ protected:
PRPackedBool mNeedsYFlip; PRPackedBool mNeedsYFlip;
}; };
#ifdef MOZ_IPC
// NB: eventually we'll have separate shadow canvas2d and shadow // NB: eventually we'll have separate shadow canvas2d and shadow
// canvas3d layers, but currently they look the same from the // canvas3d layers, but currently they look the same from the
// perspective of the compositor process // perspective of the compositor process
@ -127,6 +130,7 @@ private:
}; };
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -80,12 +80,14 @@ ColorLayerOGL::RenderLayer(int,
return RenderColorLayer(this, mOGLManager, aOffset); return RenderColorLayer(this, mOGLManager, aOffset);
} }
#ifdef MOZ_IPC
void void
ShadowColorLayerOGL::RenderLayer(int, ShadowColorLayerOGL::RenderLayer(int,
const nsIntPoint& aOffset) const nsIntPoint& aOffset)
{ {
return RenderColorLayer(this, mOGLManager, aOffset); return RenderColorLayer(this, mOGLManager, aOffset);
} }
#endif // MOZ_IPC
} /* layers */ } /* layers */

Просмотреть файл

@ -38,8 +38,10 @@
#ifndef GFX_COLORLAYEROGL_H #ifndef GFX_COLORLAYEROGL_H
#define GFX_COLORLAYEROGL_H #define GFX_COLORLAYEROGL_H
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/ShadowLayers.h"
#endif // MOZ_IPC
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
@ -67,6 +69,7 @@ public:
const nsIntPoint& aOffset); const nsIntPoint& aOffset);
}; };
#ifdef MOZ_IPC
class ShadowColorLayerOGL : public ShadowColorLayer, class ShadowColorLayerOGL : public ShadowColorLayer,
public LayerOGL public LayerOGL
{ {
@ -87,6 +90,7 @@ public:
virtual void RenderLayer(int aPreviousFrameBuffer, virtual void RenderLayer(int aPreviousFrameBuffer,
const nsIntPoint& aOffset); const nsIntPoint& aOffset);
}; };
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -343,6 +343,8 @@ ContainerLayerOGL::RenderLayer(int aPreviousFrameBuffer,
} }
#ifdef MOZ_IPC
ShadowContainerLayerOGL::ShadowContainerLayerOGL(LayerManagerOGL *aManager) ShadowContainerLayerOGL::ShadowContainerLayerOGL(LayerManagerOGL *aManager)
: ShadowContainerLayer(aManager, NULL) : ShadowContainerLayer(aManager, NULL)
, LayerOGL(aManager) , LayerOGL(aManager)
@ -389,6 +391,8 @@ ShadowContainerLayerOGL::RenderLayer(int aPreviousFrameBuffer,
ContainerRender(this, aPreviousFrameBuffer, aOffset, mOGLManager); ContainerRender(this, aPreviousFrameBuffer, aOffset, mOGLManager);
} }
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -38,8 +38,10 @@
#ifndef GFX_CONTAINERLAYEROGL_H #ifndef GFX_CONTAINERLAYEROGL_H
#define GFX_CONTAINERLAYEROGL_H #define GFX_CONTAINERLAYEROGL_H
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/ShadowLayers.h"
#endif
#include "Layers.h" #include "Layers.h"
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
@ -98,6 +100,7 @@ public:
} }
}; };
#ifdef MOZ_IPC
class ShadowContainerLayerOGL : public ShadowContainerLayer, class ShadowContainerLayerOGL : public ShadowContainerLayer,
public LayerOGL public LayerOGL
{ {
@ -136,6 +139,7 @@ public:
DefaultComputeEffectiveTransforms(aTransformToSurface); DefaultComputeEffectiveTransforms(aTransformToSurface);
} }
}; };
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -36,7 +36,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "gfxSharedImageSurface.h" # include "gfxSharedImageSurface.h"
#endif
#include "ImageLayerOGL.h" #include "ImageLayerOGL.h"
#include "gfxImageSurface.h" #include "gfxImageSurface.h"
@ -743,6 +745,8 @@ CairoImageOGL::SetData(const CairoImage::Data &aData)
tex); tex);
} }
#ifdef MOZ_IPC
ShadowImageLayerOGL::ShadowImageLayerOGL(LayerManagerOGL* aManager) ShadowImageLayerOGL::ShadowImageLayerOGL(LayerManagerOGL* aManager)
: ShadowImageLayer(aManager, nsnull) : ShadowImageLayer(aManager, nsnull)
, LayerOGL(aManager) , LayerOGL(aManager)
@ -833,6 +837,8 @@ ShadowImageLayerOGL::RenderLayer(int aPreviousFrameBuffer,
mOGLManager->BindAndDrawQuad(program); mOGLManager->BindAndDrawQuad(program);
} }
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -38,8 +38,10 @@
#ifndef GFX_IMAGELAYEROGL_H #ifndef GFX_IMAGELAYEROGL_H
#define GFX_IMAGELAYEROGL_H #define GFX_IMAGELAYEROGL_H
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/ShadowLayers.h"
#endif // MOZ_IPC
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
#include "ImageLayers.h" #include "ImageLayers.h"
@ -232,6 +234,7 @@ public:
gl::ShaderProgramType mLayerProgram; gl::ShaderProgramType mLayerProgram;
}; };
#ifdef MOZ_IPC
class ShadowImageLayerOGL : public ShadowImageLayer, class ShadowImageLayerOGL : public ShadowImageLayer,
public LayerOGL public LayerOGL
{ {
@ -268,6 +271,7 @@ private:
}; };
#endif
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -37,7 +37,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
#endif // MOZ_IPC
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
#include "ThebesLayerOGL.h" #include "ThebesLayerOGL.h"
@ -968,6 +970,8 @@ void LayerOGL::ApplyFilter(gfxPattern::GraphicsFilter aFilter)
} }
} }
#ifdef MOZ_IPC
already_AddRefed<ShadowThebesLayer> already_AddRefed<ShadowThebesLayer>
LayerManagerOGL::CreateShadowThebesLayer() LayerManagerOGL::CreateShadowThebesLayer()
{ {
@ -1018,6 +1022,20 @@ LayerManagerOGL::CreateShadowCanvasLayer()
return nsRefPtr<ShadowCanvasLayerOGL>(new ShadowCanvasLayerOGL(this)).forget(); return nsRefPtr<ShadowCanvasLayerOGL>(new ShadowCanvasLayerOGL(this)).forget();
} }
#else
already_AddRefed<ShadowThebesLayer>
LayerManagerOGL::CreateShadowThebesLayer() { return nsnull; }
already_AddRefed<ShadowContainerLayer>
LayerManagerOGL::CreateShadowContainerLayer() { return nsnull; }
already_AddRefed<ShadowImageLayer>
LayerManagerOGL::CreateShadowImageLayer() { return nsnull; }
already_AddRefed<ShadowColorLayer>
LayerManagerOGL::CreateShadowColorLayer() { return nsnull; }
already_AddRefed<ShadowCanvasLayer>
LayerManagerOGL::CreateShadowCanvasLayer() { return nsnull; }
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -42,7 +42,9 @@
#include "Layers.h" #include "Layers.h"
#ifdef MOZ_IPC
#include "mozilla/layers/ShadowLayers.h" #include "mozilla/layers/ShadowLayers.h"
#endif
#ifdef XP_WIN #ifdef XP_WIN
#include <windows.h> #include <windows.h>
@ -82,7 +84,11 @@ class ShadowColorLayer;
* the main thread. * the main thread.
*/ */
class THEBES_API LayerManagerOGL : class THEBES_API LayerManagerOGL :
#ifdef MOZ_IPC
public ShadowLayerManager public ShadowLayerManager
#else
public LayerManager
#endif
{ {
typedef mozilla::gl::GLContext GLContext; typedef mozilla::gl::GLContext GLContext;
typedef mozilla::gl::ShaderProgramType ProgramType; typedef mozilla::gl::ShaderProgramType ProgramType;

Просмотреть файл

@ -36,8 +36,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/ShadowLayers.h"
#endif
#include "ThebesLayerBuffer.h" #include "ThebesLayerBuffer.h"
#include "ThebesLayerOGL.h" #include "ThebesLayerOGL.h"
@ -776,6 +778,8 @@ ThebesLayerOGL::IsEmpty()
} }
#ifdef MOZ_IPC
class ShadowBufferOGL : public ThebesLayerBufferOGL class ShadowBufferOGL : public ThebesLayerBufferOGL
{ {
public: public:
@ -948,6 +952,8 @@ ShadowThebesLayerOGL::RenderLayer(int aPreviousFrameBuffer,
mBuffer->RenderTo(aOffset, mOGLManager); mBuffer->RenderTo(aOffset, mOGLManager);
} }
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -38,8 +38,10 @@
#ifndef GFX_THEBESLAYEROGL_H #ifndef GFX_THEBESLAYEROGL_H
#define GFX_THEBESLAYEROGL_H #define GFX_THEBESLAYEROGL_H
#include "mozilla/layers/PLayers.h" #ifdef MOZ_IPC
#include "mozilla/layers/ShadowLayers.h" # include "mozilla/layers/PLayers.h"
# include "mozilla/layers/ShadowLayers.h"
#endif
#include "Layers.h" #include "Layers.h"
#include "LayerManagerOGL.h" #include "LayerManagerOGL.h"
@ -84,6 +86,7 @@ private:
nsRefPtr<Buffer> mBuffer; nsRefPtr<Buffer> mBuffer;
}; };
#ifdef MOZ_IPC
class ShadowThebesLayerOGL : public ShadowThebesLayer, class ShadowThebesLayerOGL : public ShadowThebesLayer,
public LayerOGL public LayerOGL
{ {
@ -114,6 +117,7 @@ public:
private: private:
nsRefPtr<ShadowBufferOGL> mBuffer; nsRefPtr<ShadowBufferOGL> mBuffer;
}; };
#endif // MOZ_IPC
} /* layers */ } /* layers */
} /* mozilla */ } /* mozilla */

Просмотреть файл

@ -47,8 +47,13 @@ EXPORTS = \
GLContextProviderImpl.h \ GLContextProviderImpl.h \
nsCoreAnimationSupport.h \ nsCoreAnimationSupport.h \
EGLUtils.h \ EGLUtils.h \
$(NULL)
ifdef MOZ_IPC
EXPORTS += \
gfxSharedImageSurface.h \ gfxSharedImageSurface.h \
$(NULL) $(NULL)
endif
ifeq ($(MOZ_WIDGET_TOOLKIT),android) ifeq ($(MOZ_WIDGET_TOOLKIT),android)
EXPORTS += \ EXPORTS += \
@ -180,7 +185,6 @@ CPPSRCS = \
gfxHarfBuzzShaper.cpp \ gfxHarfBuzzShaper.cpp \
GLContext.cpp \ GLContext.cpp \
GLContextProviderOSMesa.cpp \ GLContextProviderOSMesa.cpp \
gfxSharedImageSurface.cpp \
$(NULL) $(NULL)
# Are we targeting x86 or x64? If so, build gfxAlphaRecoverySSE2.cpp. # Are we targeting x86 or x64? If so, build gfxAlphaRecoverySSE2.cpp.
@ -199,6 +203,12 @@ endif
endif endif
ifdef MOZ_IPC
CPPSRCS += \
gfxSharedImageSurface.cpp \
$(NULL)
endif
SHARED_LIBRARY_LIBS += \ SHARED_LIBRARY_LIBS += \
../layers/$(LIB_PREFIX)layers.$(LIB_SUFFIX) \ ../layers/$(LIB_PREFIX)layers.$(LIB_SUFFIX) \
$(NULL) $(NULL)

Просмотреть файл

@ -35,8 +35,10 @@
* the terms of any one of the MPL, the GPL or the LGPL. * the terms of any one of the MPL, the GPL or the LGPL.
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentChild.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
#endif
#include <android/log.h> #include <android/log.h>
@ -171,8 +173,10 @@ public:
mMap.ops = nsnull; mMap.ops = nsnull;
LOG("initializing the map failed"); LOG("initializing the map failed");
} }
#ifdef MOZ_IPC
NS_ABORT_IF_FALSE(XRE_GetProcessType() == GeckoProcessType_Default, NS_ABORT_IF_FALSE(XRE_GetProcessType() == GeckoProcessType_Default,
"StartupCacheFontNameCache should only be used in chrome procsess"); "StartupCacheFontNameCache should only be used in chrome procsess");
#endif
mCache = mozilla::scache::StartupCache::GetSingleton(); mCache = mozilla::scache::StartupCache::GetSingleton();
Init(); Init();
} }

Просмотреть файл

@ -46,6 +46,8 @@ CHROMIUM_CONFIG_INCLUDED = 1
EXTRA_DEPS += $(topsrcdir)/ipc/chromium/chromium-config.mk EXTRA_DEPS += $(topsrcdir)/ipc/chromium/chromium-config.mk
ifdef MOZ_IPC # {
DEFINES += \ DEFINES += \
-DEXCLUDE_SKIA_DEPENDENCIES \ -DEXCLUDE_SKIA_DEPENDENCIES \
-DCHROMIUM_MOZILLA_BUILD \ -DCHROMIUM_MOZILLA_BUILD \
@ -106,3 +108,4 @@ OS_CXXFLAGS := $(filter-out -pedantic,$(OS_CXXFLAGS))
endif # } endif # }
endif # } endif # }
endif # }

Просмотреть файл

@ -678,6 +678,8 @@ Clear(JSContext *cx, uintN argc, jsval *vp)
return JS_TRUE; return JS_TRUE;
} }
#ifdef MOZ_IPC
static JSBool static JSBool
SendCommand(JSContext* cx, SendCommand(JSContext* cx,
uintN argc, uintN argc,
@ -722,6 +724,8 @@ GetChildGlobalObject(JSContext* cx,
return JS_FALSE; return JS_FALSE;
} }
#endif // MOZ_IPC
/* /*
* JSContext option name to flag map. The option names are in alphabetical * JSContext option name to flag map. The option names are in alphabetical
* order for better reporting. * order for better reporting.
@ -856,8 +860,10 @@ static JSFunctionSpec glob_functions[] = {
#ifdef DEBUG #ifdef DEBUG
{"dumpHeap", DumpHeap, 5,0}, {"dumpHeap", DumpHeap, 5,0},
#endif #endif
#ifdef MOZ_IPC
{"sendCommand", SendCommand, 1,0}, {"sendCommand", SendCommand, 1,0},
{"getChildGlobalObject", GetChildGlobalObject, 0,0}, {"getChildGlobalObject", GetChildGlobalObject, 0,0},
#endif
#ifdef MOZ_CALLGRIND #ifdef MOZ_CALLGRIND
{"startCallgrind", js_StartCallgrind, 0,0}, {"startCallgrind", js_StartCallgrind, 0,0},
{"stopCallgrind", js_StopCallgrind, 0,0}, {"stopCallgrind", js_StopCallgrind, 0,0},
@ -2013,8 +2019,10 @@ main(int argc, char **argv)
JS_DestroyContext(cx); JS_DestroyContext(cx);
} // this scopes the nsCOMPtrs } // this scopes the nsCOMPtrs
#ifdef MOZ_IPC
if (!XRE_ShutdownTestShell()) if (!XRE_ShutdownTestShell())
NS_ERROR("problem shutting down testshell"); NS_ERROR("problem shutting down testshell");
#endif
#ifdef MOZ_CRASHREPORTER #ifdef MOZ_CRASHREPORTER
// Get the crashreporter service while XPCOM is still active. // Get the crashreporter service while XPCOM is still active.

Просмотреть файл

@ -52,13 +52,16 @@ PARALLEL_DIRS = \
tables \ tables \
xul/base/public \ xul/base/public \
xul/base/src \ xul/base/src \
ipc \
$(NULL) $(NULL)
ifdef NS_PRINTING ifdef NS_PRINTING
PARALLEL_DIRS += printing PARALLEL_DIRS += printing
endif endif
ifdef MOZ_IPC
PARALLEL_DIRS += ipc
endif
ifdef MOZ_MATHML ifdef MOZ_MATHML
PARALLEL_DIRS += \ PARALLEL_DIRS += \
mathml \ mathml \

Просмотреть файл

@ -148,7 +148,9 @@ FORCE_STATIC_LIB = 1
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
ifdef MOZ_IPC
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
LOCAL_INCLUDES += \ LOCAL_INCLUDES += \
-I$(srcdir) \ -I$(srcdir) \

Просмотреть файл

@ -1701,6 +1701,8 @@ nsDisplayOwnLayer::BuildLayer(nsDisplayListBuilder* aBuilder,
return layer.forget(); return layer.forget();
} }
#ifdef MOZ_IPC
nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder, nsDisplayScrollLayer::nsDisplayScrollLayer(nsDisplayListBuilder* aBuilder,
nsDisplayList* aList, nsDisplayList* aList,
nsIFrame* aForFrame, nsIFrame* aForFrame,
@ -1780,6 +1782,8 @@ nsDisplayScrollLayer::~nsDisplayScrollLayer()
} }
#endif #endif
#endif
nsDisplayClip::nsDisplayClip(nsDisplayListBuilder* aBuilder, nsDisplayClip::nsDisplayClip(nsDisplayListBuilder* aBuilder,
nsIFrame* aFrame, nsDisplayItem* aItem, nsIFrame* aFrame, nsDisplayItem* aItem,
const nsRect& aRect) const nsRect& aRect)

Просмотреть файл

@ -1769,6 +1769,7 @@ public:
NS_DISPLAY_DECL_NAME("OwnLayer", TYPE_OWN_LAYER) NS_DISPLAY_DECL_NAME("OwnLayer", TYPE_OWN_LAYER)
}; };
#ifdef MOZ_IPC
/** /**
* This creates a layer for the given list of items, whose visibility is * This creates a layer for the given list of items, whose visibility is
* determined by the displayport for the given frame instead of what is * determined by the displayport for the given frame instead of what is
@ -1816,6 +1817,7 @@ public:
private: private:
nsIFrame* mViewportFrame; nsIFrame* mViewportFrame;
}; };
#endif
/** /**
* nsDisplayClip can clip a list of items, but we take a single item * nsDisplayClip can clip a list of items, but we take a single item

Просмотреть файл

@ -78,11 +78,17 @@ EXPORTS = \
nsLayoutStatics.h \ nsLayoutStatics.h \
$(NULL) $(NULL)
ifdef MOZ_IPC
GKIPCLIB=../ipc/$(LIB_PREFIX)gkipc_s.$(LIB_SUFFIX)
else
GKIPCLIB=$(NULL)
endif
SHARED_LIBRARY_LIBS = \ SHARED_LIBRARY_LIBS = \
../base/$(LIB_PREFIX)gkbase_s.$(LIB_SUFFIX) \ ../base/$(LIB_PREFIX)gkbase_s.$(LIB_SUFFIX) \
../forms/$(LIB_PREFIX)gkforms_s.$(LIB_SUFFIX) \ ../forms/$(LIB_PREFIX)gkforms_s.$(LIB_SUFFIX) \
../generic/$(LIB_PREFIX)gkgeneric_s.$(LIB_SUFFIX) \ ../generic/$(LIB_PREFIX)gkgeneric_s.$(LIB_SUFFIX) \
../ipc/$(LIB_PREFIX)gkipc_s.$(LIB_SUFFIX) \ $(GKIPCLIB) \
../style/$(LIB_PREFIX)gkstyle_s.$(LIB_SUFFIX) \ ../style/$(LIB_PREFIX)gkstyle_s.$(LIB_SUFFIX) \
../tables/$(LIB_PREFIX)gktable_s.$(LIB_SUFFIX) \ ../tables/$(LIB_PREFIX)gktable_s.$(LIB_SUFFIX) \
../xul/base/src/$(LIB_PREFIX)gkxulbase_s.$(LIB_SUFFIX) \ ../xul/base/src/$(LIB_PREFIX)gkxulbase_s.$(LIB_SUFFIX) \
@ -294,8 +300,10 @@ ifdef MOZ_NATIVE_LIBVPX
EXTRA_DSO_LDOPTS += $(MOZ_LIBVPX_LIBS) EXTRA_DSO_LDOPTS += $(MOZ_LIBVPX_LIBS)
endif endif
ifdef MOZ_IPC
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -36,7 +36,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#endif
#include "xpcmodule.h" #include "xpcmodule.h"
#include "mozilla/ModuleUtils.h" #include "mozilla/ModuleUtils.h"

Просмотреть файл

@ -55,7 +55,9 @@
#undef slots #undef slots
#endif #endif
#ifdef MOZ_IPC
#include "mozilla/plugins/PluginMessageUtils.h" #include "mozilla/plugins/PluginMessageUtils.h"
#endif
#ifdef MOZ_X11 #ifdef MOZ_X11
#include <cairo-xlib.h> #include <cairo-xlib.h>
@ -238,7 +240,9 @@ static PRLogModuleInfo *nsObjectFrameLM = PR_NewLogModule("nsObjectFrame");
#endif #endif
using namespace mozilla; using namespace mozilla;
#ifdef MOZ_IPC
using namespace mozilla::plugins; using namespace mozilla::plugins;
#endif
using namespace mozilla::layers; using namespace mozilla::layers;
// special class for handeling DOM context menu events because for // special class for handeling DOM context menu events because for
@ -2351,6 +2355,7 @@ nsObjectFrame::PaintPlugin(nsDisplayListBuilder* aBuilder,
nsPoint origin; nsPoint origin;
gfxWindowsNativeDrawing nativeDraw(ctx, frameGfxRect); gfxWindowsNativeDrawing nativeDraw(ctx, frameGfxRect);
#ifdef MOZ_IPC
if (nativeDraw.IsDoublePass()) { if (nativeDraw.IsDoublePass()) {
// OOP plugin specific: let the shim know before we paint if we are doing a // OOP plugin specific: let the shim know before we paint if we are doing a
// double pass render. If this plugin isn't oop, the register window message // double pass render. If this plugin isn't oop, the register window message
@ -2362,6 +2367,7 @@ nsObjectFrame::PaintPlugin(nsDisplayListBuilder* aBuilder,
if (pluginEvent.event) if (pluginEvent.event)
inst->HandleEvent(&pluginEvent, nsnull); inst->HandleEvent(&pluginEvent, nsnull);
} }
#endif
do { do {
HDC hdc = nativeDraw.BeginNativeDrawing(); HDC hdc = nativeDraw.BeginNativeDrawing();
if (!hdc) if (!hdc)

Просмотреть файл

@ -43,8 +43,10 @@
* as <frame>, <iframe>, and some <object>s * as <frame>, <iframe>, and some <object>s
*/ */
#ifdef MOZ_IPC
#include "mozilla/layout/RenderFrameParent.h" #include "mozilla/layout/RenderFrameParent.h"
using mozilla::layout::RenderFrameParent; using mozilla::layout::RenderFrameParent;
#endif
#include "nsSubDocumentFrame.h" #include "nsSubDocumentFrame.h"
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
@ -275,6 +277,7 @@ nsSubDocumentFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
if (!mInnerView) if (!mInnerView)
return NS_OK; return NS_OK;
#ifdef MOZ_IPC
nsFrameLoader* frameLoader = FrameLoader(); nsFrameLoader* frameLoader = FrameLoader();
if (frameLoader) { if (frameLoader) {
RenderFrameParent* rfp = frameLoader->GetCurrentRemoteFrame(); RenderFrameParent* rfp = frameLoader->GetCurrentRemoteFrame();
@ -282,6 +285,7 @@ nsSubDocumentFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
return rfp->BuildDisplayList(aBuilder, this, aDirtyRect, aLists); return rfp->BuildDisplayList(aBuilder, this, aDirtyRect, aLists);
} }
} }
#endif
nsIView* subdocView = mInnerView->GetFirstChild(); nsIView* subdocView = mInnerView->GetFirstChild();
if (!subdocView) if (!subdocView)

Просмотреть файл

@ -38,8 +38,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentChild.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
#endif
#include "nsPrefBranch.h" #include "nsPrefBranch.h"
#include "nsILocalFile.h" #include "nsILocalFile.h"
@ -72,6 +74,7 @@ static PLDHashOperator
pref_enumChild(PLDHashTable *table, PLDHashEntryHdr *heh, pref_enumChild(PLDHashTable *table, PLDHashEntryHdr *heh,
PRUint32 i, void *arg); PRUint32 i, void *arg);
#ifdef MOZ_IPC
using mozilla::dom::ContentChild; using mozilla::dom::ContentChild;
static ContentChild* static ContentChild*
@ -86,6 +89,7 @@ GetContentChild()
} }
return nsnull; return nsnull;
} }
#endif // MOZ_IPC
/* /*
* Constructor/Destructor * Constructor/Destructor
@ -166,10 +170,12 @@ NS_IMETHODIMP nsPrefBranch::GetBoolPref(const char *aPrefName, PRBool *_retval)
NS_IMETHODIMP nsPrefBranch::SetBoolPref(const char *aPrefName, PRInt32 aValue) NS_IMETHODIMP nsPrefBranch::SetBoolPref(const char *aPrefName, PRInt32 aValue)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName); const char *pref = getPrefName(aPrefName);
@ -185,10 +191,12 @@ NS_IMETHODIMP nsPrefBranch::GetCharPref(const char *aPrefName, char **_retval)
NS_IMETHODIMP nsPrefBranch::SetCharPref(const char *aPrefName, const char *aValue) NS_IMETHODIMP nsPrefBranch::SetCharPref(const char *aPrefName, const char *aValue)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
NS_ENSURE_ARG(aValue); NS_ENSURE_ARG(aValue);
@ -205,10 +213,12 @@ NS_IMETHODIMP nsPrefBranch::GetIntPref(const char *aPrefName, PRInt32 *_retval)
NS_IMETHODIMP nsPrefBranch::SetIntPref(const char *aPrefName, PRInt32 aValue) NS_IMETHODIMP nsPrefBranch::SetIntPref(const char *aPrefName, PRInt32 aValue)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName); const char *pref = getPrefName(aPrefName);
@ -268,10 +278,12 @@ NS_IMETHODIMP nsPrefBranch::GetComplexValue(const char *aPrefName, const nsIID &
} }
if (aType.Equals(NS_GET_IID(nsILocalFile))) { if (aType.Equals(NS_GET_IID(nsILocalFile))) {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot get nsILocalFile pref from content process"); NS_ERROR("cannot get nsILocalFile pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
nsCOMPtr<nsILocalFile> file(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv)); nsCOMPtr<nsILocalFile> file(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
@ -286,10 +298,12 @@ NS_IMETHODIMP nsPrefBranch::GetComplexValue(const char *aPrefName, const nsIID &
} }
if (aType.Equals(NS_GET_IID(nsIRelativeFilePref))) { if (aType.Equals(NS_GET_IID(nsIRelativeFilePref))) {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot get nsIRelativeFilePref from content process"); NS_ERROR("cannot get nsIRelativeFilePref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
nsACString::const_iterator keyBegin, strEnd; nsACString::const_iterator keyBegin, strEnd;
utf8String.BeginReading(keyBegin); utf8String.BeginReading(keyBegin);
@ -343,10 +357,12 @@ NS_IMETHODIMP nsPrefBranch::GetComplexValue(const char *aPrefName, const nsIID &
NS_IMETHODIMP nsPrefBranch::SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue) NS_IMETHODIMP nsPrefBranch::SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
@ -432,10 +448,12 @@ NS_IMETHODIMP nsPrefBranch::SetComplexValue(const char *aPrefName, const nsIID &
NS_IMETHODIMP nsPrefBranch::ClearUserPref(const char *aPrefName) NS_IMETHODIMP nsPrefBranch::ClearUserPref(const char *aPrefName)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName); const char *pref = getPrefName(aPrefName);
@ -453,10 +471,12 @@ NS_IMETHODIMP nsPrefBranch::PrefHasUserValue(const char *aPrefName, PRBool *_ret
NS_IMETHODIMP nsPrefBranch::LockPref(const char *aPrefName) NS_IMETHODIMP nsPrefBranch::LockPref(const char *aPrefName)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot lock pref from content process"); NS_ERROR("cannot lock pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName); const char *pref = getPrefName(aPrefName);
@ -465,10 +485,12 @@ NS_IMETHODIMP nsPrefBranch::LockPref(const char *aPrefName)
NS_IMETHODIMP nsPrefBranch::PrefIsLocked(const char *aPrefName, PRBool *_retval) NS_IMETHODIMP nsPrefBranch::PrefIsLocked(const char *aPrefName, PRBool *_retval)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot check lock pref from content process"); NS_ERROR("cannot check lock pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG_POINTER(_retval); NS_ENSURE_ARG_POINTER(_retval);
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
@ -479,10 +501,12 @@ NS_IMETHODIMP nsPrefBranch::PrefIsLocked(const char *aPrefName, PRBool *_retval)
NS_IMETHODIMP nsPrefBranch::UnlockPref(const char *aPrefName) NS_IMETHODIMP nsPrefBranch::UnlockPref(const char *aPrefName)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot unlock pref from content process"); NS_ERROR("cannot unlock pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aPrefName); NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName); const char *pref = getPrefName(aPrefName);
@ -497,10 +521,12 @@ NS_IMETHODIMP nsPrefBranch::ResetBranch(const char *aStartingAt)
NS_IMETHODIMP nsPrefBranch::DeleteBranch(const char *aStartingAt) NS_IMETHODIMP nsPrefBranch::DeleteBranch(const char *aStartingAt)
{ {
#ifdef MOZ_IPC
if (GetContentChild()) { if (GetContentChild()) {
NS_ERROR("cannot set pref from content process"); NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NS_ENSURE_ARG(aStartingAt); NS_ENSURE_ARG(aStartingAt);
const char *pref = getPrefName(aStartingAt); const char *pref = getPrefName(aStartingAt);

Просмотреть файл

@ -37,8 +37,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentChild.h"
#include "nsXULAppAPI.h" #include "nsXULAppAPI.h"
#endif
#include "nsPrefService.h" #include "nsPrefService.h"
#include "nsAppDirectoryServiceDefs.h" #include "nsAppDirectoryServiceDefs.h"
@ -139,6 +141,7 @@ nsresult nsPrefService::Init()
rv = pref_InitInitialObjects(); rv = pref_InitInitialObjects();
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
#ifdef MOZ_IPC
using mozilla::dom::ContentChild; using mozilla::dom::ContentChild;
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
InfallibleTArray<PrefTuple> array; InfallibleTArray<PrefTuple> array;
@ -151,6 +154,7 @@ nsresult nsPrefService::Init()
} }
return NS_OK; return NS_OK;
} }
#endif
nsXPIDLCString lockFileName; nsXPIDLCString lockFileName;
/* /*
@ -184,8 +188,10 @@ nsresult nsPrefService::Init()
NS_IMETHODIMP nsPrefService::Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) NS_IMETHODIMP nsPrefService::Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData)
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) if (XRE_GetProcessType() == GeckoProcessType_Content)
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
#endif
nsresult rv = NS_OK; nsresult rv = NS_OK;
@ -213,10 +219,12 @@ NS_IMETHODIMP nsPrefService::Observe(nsISupports *aSubject, const char *aTopic,
NS_IMETHODIMP nsPrefService::ReadUserPrefs(nsIFile *aFile) NS_IMETHODIMP nsPrefService::ReadUserPrefs(nsIFile *aFile)
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
NS_ERROR("cannot load prefs from content process"); NS_ERROR("cannot load prefs from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
nsresult rv; nsresult rv;
@ -234,10 +242,12 @@ NS_IMETHODIMP nsPrefService::ReadUserPrefs(nsIFile *aFile)
NS_IMETHODIMP nsPrefService::ResetPrefs() NS_IMETHODIMP nsPrefService::ResetPrefs()
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
NS_ERROR("cannot set prefs from content process"); NS_ERROR("cannot set prefs from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
NotifyServiceObservers(NS_PREFSERVICE_RESET_TOPIC_ID); NotifyServiceObservers(NS_PREFSERVICE_RESET_TOPIC_ID);
PREF_CleanupPrefs(); PREF_CleanupPrefs();
@ -250,10 +260,12 @@ NS_IMETHODIMP nsPrefService::ResetPrefs()
NS_IMETHODIMP nsPrefService::ResetUserPrefs() NS_IMETHODIMP nsPrefService::ResetUserPrefs()
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
NS_ERROR("cannot set prefs from content process"); NS_ERROR("cannot set prefs from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
PREF_ClearAllUserPrefs(); PREF_ClearAllUserPrefs();
return NS_OK; return NS_OK;
@ -261,10 +273,12 @@ NS_IMETHODIMP nsPrefService::ResetUserPrefs()
NS_IMETHODIMP nsPrefService::SavePrefFile(nsIFile *aFile) NS_IMETHODIMP nsPrefService::SavePrefFile(nsIFile *aFile)
{ {
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Content) { if (XRE_GetProcessType() == GeckoProcessType_Content) {
NS_ERROR("cannot save prefs from content process"); NS_ERROR("cannot save prefs from content process");
return NS_ERROR_NOT_AVAILABLE; return NS_ERROR_NOT_AVAILABLE;
} }
#endif
return SavePrefFileInternal(aFile); return SavePrefFileInternal(aFile);
} }

Просмотреть файл

@ -48,9 +48,11 @@ MODULE = test_libpref
XPCSHELL_TESTS = unit XPCSHELL_TESTS = unit
ifdef MOZ_IPC
# FIXME/bug 575918: out-of-process xpcshell is broken on OS X # FIXME/bug 575918: out-of-process xpcshell is broken on OS X
ifneq ($(OS_ARCH),Darwin) ifneq ($(OS_ARCH),Darwin)
XPCSHELL_TESTS += unit_ipc XPCSHELL_TESTS += unit_ipc
endif endif
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -119,7 +119,9 @@ EXTRA_DSO_LDOPTS += $(TK_LIBS)
endif endif
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
ifdef MOZ_IPC
include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk
ifeq ($(OS_ARCH),WINNT) ifeq ($(OS_ARCH),WINNT)

Просмотреть файл

@ -36,7 +36,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#endif
// FIXME(bug 332648): Give me a real API please! // FIXME(bug 332648): Give me a real API please!
#include "jscntxt.h" #include "jscntxt.h"
@ -57,9 +59,11 @@
using namespace mozilla::plugins::parent; using namespace mozilla::plugins::parent;
#ifdef MOZ_IPC
#include "mozilla/plugins/PluginScriptableObjectParent.h" #include "mozilla/plugins/PluginScriptableObjectParent.h"
using mozilla::plugins::PluginScriptableObjectParent; using mozilla::plugins::PluginScriptableObjectParent;
using mozilla::plugins::ParentNPObject; using mozilla::plugins::ParentNPObject;
#endif
// Hash of JSObject wrappers that wraps JSObjects as NPObjects. There // Hash of JSObject wrappers that wraps JSObjects as NPObjects. There
// will be one wrapper per JSObject per plugin instance, i.e. if two // will be one wrapper per JSObject per plugin instance, i.e. if two
@ -93,7 +97,11 @@ namespace {
inline bool inline bool
NPObjectIsOutOfProcessProxy(NPObject *obj) NPObjectIsOutOfProcessProxy(NPObject *obj)
{ {
#ifdef MOZ_IPC
return obj->_class == PluginScriptableObjectParent::GetClass(); return obj->_class == PluginScriptableObjectParent::GetClass();
#else
return false;
#endif
} }
} // anonymous namespace } // anonymous namespace
@ -1328,6 +1336,7 @@ NPObjWrapper_GetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
NPIdentifier identifier = JSIdToNPIdentifier(id); NPIdentifier identifier = JSIdToNPIdentifier(id);
#ifdef MOZ_IPC
if (NPObjectIsOutOfProcessProxy(npobj)) { if (NPObjectIsOutOfProcessProxy(npobj)) {
PluginScriptableObjectParent* actor = PluginScriptableObjectParent* actor =
static_cast<ParentNPObject*>(npobj)->parent; static_cast<ParentNPObject*>(npobj)->parent;
@ -1359,6 +1368,7 @@ NPObjWrapper_GetProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
} }
return JS_TRUE; return JS_TRUE;
} }
#endif
hasProperty = npobj->_class->hasProperty(npobj, identifier); hasProperty = npobj->_class->hasProperty(npobj, identifier);
if (!ReportExceptionIfPending(cx)) if (!ReportExceptionIfPending(cx))

Просмотреть файл

@ -40,7 +40,9 @@
#include <QX11Info> #include <QX11Info>
#endif #endif
#ifdef MOZ_IPC
#include "base/basictypes.h" #include "base/basictypes.h"
#endif
#include "prtypes.h" #include "prtypes.h"
#include "prmem.h" #include "prmem.h"
@ -112,8 +114,10 @@ using mozilla::PluginLibrary;
#include "mozilla/PluginPRLibrary.h" #include "mozilla/PluginPRLibrary.h"
using mozilla::PluginPRLibrary; using mozilla::PluginPRLibrary;
#ifdef MOZ_IPC
#include "mozilla/plugins/PluginModuleParent.h" #include "mozilla/plugins/PluginModuleParent.h"
using mozilla::plugins::PluginModuleParent; using mozilla::plugins::PluginModuleParent;
#endif
#ifdef MOZ_X11 #ifdef MOZ_X11
#include "mozilla/X11Util.h" #include "mozilla/X11Util.h"
@ -261,6 +265,7 @@ nsNPAPIPlugin::SetPluginRefNum(short aRefNum)
} }
#endif #endif
#ifdef MOZ_IPC
void void
nsNPAPIPlugin::PluginCrashed(const nsAString& pluginDumpID, nsNPAPIPlugin::PluginCrashed(const nsAString& pluginDumpID,
const nsAString& browserDumpID) const nsAString& browserDumpID)
@ -268,6 +273,9 @@ nsNPAPIPlugin::PluginCrashed(const nsAString& pluginDumpID,
nsRefPtr<nsPluginHost> host = dont_AddRef(nsPluginHost::GetInst()); nsRefPtr<nsPluginHost> host = dont_AddRef(nsPluginHost::GetInst());
host->PluginCrashed(this, pluginDumpID, browserDumpID); host->PluginCrashed(this, pluginDumpID, browserDumpID);
} }
#endif
#ifdef MOZ_IPC
#if defined(XP_MACOSX) && defined(__i386__) #if defined(XP_MACOSX) && defined(__i386__)
static PRInt32 OSXVersion() static PRInt32 OSXVersion()
@ -452,6 +460,8 @@ nsNPAPIPlugin::RunPluginOOP(const nsPluginTag *aPluginTag)
return oopPluginsEnabled; return oopPluginsEnabled;
} }
#endif // MOZ_IPC
inline PluginLibrary* inline PluginLibrary*
GetNewPluginLibrary(nsPluginTag *aPluginTag) GetNewPluginLibrary(nsPluginTag *aPluginTag)
{ {
@ -459,9 +469,11 @@ GetNewPluginLibrary(nsPluginTag *aPluginTag)
return nsnull; return nsnull;
} }
#ifdef MOZ_IPC
if (nsNPAPIPlugin::RunPluginOOP(aPluginTag)) { if (nsNPAPIPlugin::RunPluginOOP(aPluginTag)) {
return PluginModuleParent::LoadModule(aPluginTag->mFullPath.get()); return PluginModuleParent::LoadModule(aPluginTag->mFullPath.get());
} }
#endif
return new PluginPRLibrary(aPluginTag->mFullPath.get(), aPluginTag->mLibrary); return new PluginPRLibrary(aPluginTag->mFullPath.get(), aPluginTag->mLibrary);
} }

Просмотреть файл

@ -96,6 +96,7 @@ public:
void SetPluginRefNum(short aRefNum); void SetPluginRefNum(short aRefNum);
#endif #endif
#ifdef MOZ_IPC
// The IPC mechanism notifies the nsNPAPIPlugin if the plugin // The IPC mechanism notifies the nsNPAPIPlugin if the plugin
// crashes and is no longer usable. pluginDumpID/browserDumpID are // crashes and is no longer usable. pluginDumpID/browserDumpID are
// the IDs of respective minidumps that were written, or empty if no // the IDs of respective minidumps that were written, or empty if no
@ -104,6 +105,7 @@ public:
const nsAString& browserDumpID); const nsAString& browserDumpID);
static PRBool RunPluginOOP(const nsPluginTag *aPluginTag); static PRBool RunPluginOOP(const nsPluginTag *aPluginTag);
#endif
protected: protected:

Просмотреть файл

@ -1741,7 +1741,11 @@ static nsresult CreateNPAPIPlugin(nsPluginTag *aPluginTag,
nsNPAPIPlugin **aOutNPAPIPlugin) nsNPAPIPlugin **aOutNPAPIPlugin)
{ {
// If this is an in-process plugin we'll need to load it here if we haven't already. // If this is an in-process plugin we'll need to load it here if we haven't already.
#ifdef MOZ_IPC
if (!nsNPAPIPlugin::RunPluginOOP(aPluginTag)) { if (!nsNPAPIPlugin::RunPluginOOP(aPluginTag)) {
#else
if (!aPluginTag->mLibrary) {
#endif
if (aPluginTag->mFullPath.IsEmpty()) if (aPluginTag->mFullPath.IsEmpty())
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
nsCOMPtr<nsILocalFile> file = do_CreateInstance("@mozilla.org/file/local;1"); nsCOMPtr<nsILocalFile> file = do_CreateInstance("@mozilla.org/file/local;1");
@ -4083,6 +4087,7 @@ NS_IMETHODIMP nsPluginHost::Notify(nsITimer* timer)
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
#ifdef MOZ_IPC
#ifdef XP_WIN #ifdef XP_WIN
// Re-enable any top level browser windows that were disabled by modal dialogs // Re-enable any top level browser windows that were disabled by modal dialogs
// displayed by the crashed plugin. // displayed by the crashed plugin.
@ -4192,6 +4197,7 @@ nsPluginHost::PluginCrashed(nsNPAPIPlugin* aPlugin,
CheckForDisabledWindows(); CheckForDisabledWindows();
#endif #endif
} }
#endif
nsNPAPIPluginInstance* nsNPAPIPluginInstance*
nsPluginHost::FindInstance(const char *mimetype) nsPluginHost::FindInstance(const char *mimetype)

Просмотреть файл

@ -176,9 +176,11 @@ public:
void AddIdleTimeTarget(nsIPluginInstanceOwner* objectFrame, PRBool isVisible); void AddIdleTimeTarget(nsIPluginInstanceOwner* objectFrame, PRBool isVisible);
void RemoveIdleTimeTarget(nsIPluginInstanceOwner* objectFrame); void RemoveIdleTimeTarget(nsIPluginInstanceOwner* objectFrame);
#ifdef MOZ_IPC
void PluginCrashed(nsNPAPIPlugin* plugin, void PluginCrashed(nsNPAPIPlugin* plugin,
const nsAString& pluginDumpID, const nsAString& pluginDumpID,
const nsAString& browserDumpID); const nsAString& browserDumpID);
#endif
nsNPAPIPluginInstance *FindInstance(const char *mimetype); nsNPAPIPluginInstance *FindInstance(const char *mimetype);
nsNPAPIPluginInstance *FindStoppedInstance(const char * url); nsNPAPIPluginInstance *FindStoppedInstance(const char * url);

Просмотреть файл

@ -721,6 +721,7 @@ nsresult nsPluginNativeWindowWin::SubclassAndAssociateWindow()
} }
LONG_PTR style = GetWindowLongPtr(hWnd, GWL_STYLE); LONG_PTR style = GetWindowLongPtr(hWnd, GWL_STYLE);
#ifdef MOZ_IPC
// Out of process plugins must not have the WS_CLIPCHILDREN style set on their // Out of process plugins must not have the WS_CLIPCHILDREN style set on their
// parent windows or else synchronous paints (via UpdateWindow() and others) // parent windows or else synchronous paints (via UpdateWindow() and others)
// will cause deadlocks. // will cause deadlocks.
@ -728,6 +729,9 @@ nsresult nsPluginNativeWindowWin::SubclassAndAssociateWindow()
style &= ~WS_CLIPCHILDREN; style &= ~WS_CLIPCHILDREN;
else else
style |= WS_CLIPCHILDREN; style |= WS_CLIPCHILDREN;
#else
style |= WS_CLIPCHILDREN;
#endif
SetWindowLongPtr(hWnd, GWL_STYLE, style); SetWindowLongPtr(hWnd, GWL_STYLE, style);
mPluginWinProc = (WNDPROC)SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR)PluginWndProc); mPluginWinProc = (WNDPROC)SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR)PluginWndProc);

Просмотреть файл

@ -45,8 +45,10 @@
by Patrick C. Beard. by Patrick C. Beard.
*/ */
#ifdef MOZ_IPC
#include "GeckoChildProcessHost.h" #include "GeckoChildProcessHost.h"
#include "base/process_util.h" #include "base/process_util.h"
#endif
#include "prlink.h" #include "prlink.h"
#include "prnetdb.h" #include "prnetdb.h"
@ -458,6 +460,7 @@ static PRBool IsCompatibleArch(nsIFile *file)
UInt32 packageType, packageCreator; UInt32 packageType, packageCreator;
::CFBundleGetPackageInfo(pluginBundle, &packageType, &packageCreator); ::CFBundleGetPackageInfo(pluginBundle, &packageType, &packageCreator);
if (packageType == 'BRPL' || packageType == 'IEPL' || packageType == 'NSPL') { if (packageType == 'BRPL' || packageType == 'IEPL' || packageType == 'NSPL') {
#ifdef MOZ_IPC
// Get path to plugin as a C string. // Get path to plugin as a C string.
char executablePath[PATH_MAX]; char executablePath[PATH_MAX];
executablePath[0] = '\0'; executablePath[0] = '\0';
@ -475,6 +478,9 @@ static PRBool IsCompatibleArch(nsIFile *file)
// Consider the plugin architecture valid if there is any overlap in the masks. // Consider the plugin architecture valid if there is any overlap in the masks.
isPluginFile = !!(containerArchitectures & pluginLibArchitectures); isPluginFile = !!(containerArchitectures & pluginLibArchitectures);
#else
isPluginFile = !!::CFBundlePreflightExecutable(pluginBundle, NULL);
#endif
} }
::CFRelease(pluginBundle); ::CFRelease(pluginBundle);
} }

Просмотреть файл

@ -54,9 +54,21 @@ DIRS = \
cache \ cache \
protocol \ protocol \
system \ system \
ipc \
$(NULL) $(NULL)
ifdef MOZ_IPC
DIRS += \
ipc \
$(NULL)
else
# Non-IPC builds need NeckoCommon.h
EXPORTS_NAMESPACES = mozilla/net
EXPORTS_mozilla/net = \
ipc/NeckoCommon.h \
$(NULL)
endif
ifdef NECKO_WIFI ifdef NECKO_WIFI
DIRS += wifi DIRS += wifi
endif endif

Просмотреть файл

@ -143,11 +143,15 @@ XPIDLSRCS = \
nsIRedirectResultListener.idl \ nsIRedirectResultListener.idl \
mozIThirdPartyUtil.idl \ mozIThirdPartyUtil.idl \
nsISerializationHelper.idl \ nsISerializationHelper.idl \
$(NULL)
ifdef MOZ_IPC
XPIDLSRCS += \
nsIChildChannel.idl \ nsIChildChannel.idl \
nsIParentChannel.idl \ nsIParentChannel.idl \
nsIParentRedirectingChannel.idl \ nsIParentRedirectingChannel.idl \
nsIRedirectChannelRegistrar.idl \ nsIRedirectChannelRegistrar.idl
$(NULL) endif
ifdef MOZ_TOOLKIT_SEARCH ifdef MOZ_TOOLKIT_SEARCH
XPIDLSRCS += nsIBrowserSearchService.idl XPIDLSRCS += nsIBrowserSearchService.idl

Просмотреть файл

@ -109,7 +109,9 @@
#include "nsISocketProvider.h" #include "nsISocketProvider.h"
#include "mozilla/Services.h" #include "mozilla/Services.h"
#ifdef MOZ_IPC
#include "nsIRedirectChannelRegistrar.h" #include "nsIRedirectChannelRegistrar.h"
#endif
#ifdef MOZILLA_INTERNAL_API #ifdef MOZILLA_INTERNAL_API
@ -1782,6 +1784,7 @@ NS_IsInternalSameURIRedirect(nsIChannel *aOldChannel,
return NS_SUCCEEDED(oldURI->Equals(newURI, &res)) && res; return NS_SUCCEEDED(oldURI->Equals(newURI, &res)) && res;
} }
#ifdef MOZ_IPC
inline nsresult inline nsresult
NS_LinkRedirectChannels(PRUint32 channelId, NS_LinkRedirectChannels(PRUint32 channelId,
nsIParentChannel *parentChannel, nsIParentChannel *parentChannel,
@ -1797,6 +1800,7 @@ NS_LinkRedirectChannels(PRUint32 channelId,
parentChannel, parentChannel,
_result); _result);
} }
#endif // MOZ_IPC
/** /**
* Helper function to create a random URL string that's properly formed * Helper function to create a random URL string that's properly formed

Просмотреть файл

@ -47,7 +47,9 @@ MODULE = necko
LIBRARY_NAME = neckobase_s LIBRARY_NAME = neckobase_s
LIBXUL_LIBRARY = 1 LIBXUL_LIBRARY = 1
EXPORTS = nsURLHelper.h ifdef MOZ_IPC
EXPORTS = nsURLHelper.h
endif
CPPSRCS = \ CPPSRCS = \
nsTransportUtils.cpp \ nsTransportUtils.cpp \
@ -90,9 +92,12 @@ CPPSRCS = \
nsBase64Encoder.cpp \ nsBase64Encoder.cpp \
nsSerializationHelper.cpp \ nsSerializationHelper.cpp \
nsDNSPrefetch.cpp \ nsDNSPrefetch.cpp \
RedirectChannelRegistrar.cpp \
$(NULL) $(NULL)
ifdef MOZ_IPC
CPPSRCS += RedirectChannelRegistrar.cpp
endif
ifeq ($(MOZ_WIDGET_TOOLKIT),os2) ifeq ($(MOZ_WIDGET_TOOLKIT),os2)
CPPSRCS += nsURLHelperOS2.cpp CPPSRCS += nsURLHelperOS2.cpp
else else

Просмотреть файл

@ -35,8 +35,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#include "mozilla/net/NeckoMessageUtils.h" #include "mozilla/net/NeckoMessageUtils.h"
#endif
#include "nsBufferedStreams.h" #include "nsBufferedStreams.h"
#include "nsStreamUtils.h" #include "nsStreamUtils.h"
@ -489,6 +491,7 @@ nsBufferedInputStream::GetUnbufferedStream(nsISupports* *aStream)
PRBool PRBool
nsBufferedInputStream::Read(const IPC::Message *aMsg, void **aIter) nsBufferedInputStream::Read(const IPC::Message *aMsg, void **aIter)
{ {
#ifdef MOZ_IPC
using IPC::ReadParam; using IPC::ReadParam;
PRUint32 bufferSize; PRUint32 bufferSize;
@ -503,17 +506,22 @@ nsBufferedInputStream::Read(const IPC::Message *aMsg, void **aIter)
return PR_FALSE; return PR_FALSE;
return PR_TRUE; return PR_TRUE;
#else
return PR_FALSE;
#endif
} }
void void
nsBufferedInputStream::Write(IPC::Message *aMsg) nsBufferedInputStream::Write(IPC::Message *aMsg)
{ {
#ifdef MOZ_IPC
using IPC::WriteParam; using IPC::WriteParam;
WriteParam(aMsg, mBufferSize); WriteParam(aMsg, mBufferSize);
IPC::InputStream inputStream(Source()); IPC::InputStream inputStream(Source());
WriteParam(aMsg, inputStream); WriteParam(aMsg, inputStream);
#endif
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -35,7 +35,9 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#endif
#if defined(XP_UNIX) || defined(XP_BEOS) #if defined(XP_UNIX) || defined(XP_BEOS)
#include <unistd.h> #include <unistd.h>
@ -439,6 +441,7 @@ nsFileInputStream::Seek(PRInt32 aWhence, PRInt64 aOffset)
PRBool PRBool
nsFileInputStream::Read(const IPC::Message *aMsg, void **aIter) nsFileInputStream::Read(const IPC::Message *aMsg, void **aIter)
{ {
#ifdef MOZ_IPC
using IPC::ReadParam; using IPC::ReadParam;
nsCString path; nsCString path;
@ -461,11 +464,15 @@ nsFileInputStream::Read(const IPC::Message *aMsg, void **aIter)
return PR_FALSE; return PR_FALSE;
return PR_TRUE; return PR_TRUE;
#else
return PR_FALSE;
#endif
} }
void void
nsFileInputStream::Write(IPC::Message *aMsg) nsFileInputStream::Write(IPC::Message *aMsg)
{ {
#ifdef MOZ_IPC
using IPC::WriteParam; using IPC::WriteParam;
nsCString path; nsCString path;
@ -476,6 +483,7 @@ nsFileInputStream::Write(IPC::Message *aMsg)
localFile->GetFollowLinks(&followLinks); localFile->GetFollowLinks(&followLinks);
WriteParam(aMsg, followLinks); WriteParam(aMsg, followLinks);
WriteParam(aMsg, mBehaviorFlags); WriteParam(aMsg, mBehaviorFlags);
#endif
} }
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

Просмотреть файл

@ -262,8 +262,10 @@ nsIOService::Init()
gIOService = this; gIOService = this;
#ifdef MOZ_IPC
// go into managed mode if we can, and chrome process // go into managed mode if we can, and chrome process
if (XRE_GetProcessType() == GeckoProcessType_Default) if (XRE_GetProcessType() == GeckoProcessType_Default)
#endif
mNetworkLinkService = do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID); mNetworkLinkService = do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID);
if (!mNetworkLinkService) if (!mNetworkLinkService)
@ -728,6 +730,7 @@ nsIOService::SetOffline(PRBool offline)
NS_ASSERTION(observerService, "The observer service should not be null"); NS_ASSERTION(observerService, "The observer service should not be null");
#ifdef MOZ_IPC
if (XRE_GetProcessType() == GeckoProcessType_Default) { if (XRE_GetProcessType() == GeckoProcessType_Default) {
if (observerService) { if (observerService) {
(void)observerService->NotifyObservers(nsnull, (void)observerService->NotifyObservers(nsnull,
@ -736,6 +739,7 @@ nsIOService::SetOffline(PRBool offline)
NS_LITERAL_STRING("false").get()); NS_LITERAL_STRING("false").get());
} }
} }
#endif
while (mSetOfflineValue != mOffline) { while (mSetOfflineValue != mOffline) {
offline = mSetOfflineValue; offline = mSetOfflineValue;

Просмотреть файл

@ -41,8 +41,10 @@
* automatic creation of the content-length header. * automatic creation of the content-length header.
*/ */
#ifdef MOZ_IPC
#include "IPC/IPCMessageUtils.h" #include "IPC/IPCMessageUtils.h"
#include "mozilla/net/NeckoMessageUtils.h" #include "mozilla/net/NeckoMessageUtils.h"
#endif
#include "nsCOMPtr.h" #include "nsCOMPtr.h"
#include "nsComponentManagerUtils.h" #include "nsComponentManagerUtils.h"
@ -329,6 +331,7 @@ nsMIMEInputStreamConstructor(nsISupports *outer, REFNSIID iid, void **result)
PRBool PRBool
nsMIMEInputStream::Read(const IPC::Message *aMsg, void **aIter) nsMIMEInputStream::Read(const IPC::Message *aMsg, void **aIter)
{ {
#ifdef MOZ_IPC
using IPC::ReadParam; using IPC::ReadParam;
if (!ReadParam(aMsg, aIter, &mHeaders) || if (!ReadParam(aMsg, aIter, &mHeaders) ||
@ -358,11 +361,15 @@ nsMIMEInputStream::Read(const IPC::Message *aMsg, void **aIter)
return PR_FALSE; return PR_FALSE;
return PR_TRUE; return PR_TRUE;
#else
return PR_FALSE;
#endif
} }
void void
nsMIMEInputStream::Write(IPC::Message *aMsg) nsMIMEInputStream::Write(IPC::Message *aMsg)
{ {
#ifdef MOZ_IPC
using IPC::WriteParam; using IPC::WriteParam;
WriteParam(aMsg, mHeaders); WriteParam(aMsg, mHeaders);
@ -373,4 +380,5 @@ nsMIMEInputStream::Write(IPC::Message *aMsg)
WriteParam(aMsg, inputStream); WriteParam(aMsg, inputStream);
WriteParam(aMsg, mAddContentLength); WriteParam(aMsg, mAddContentLength);
#endif
} }

Просмотреть файл

@ -36,8 +36,10 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "IPCMessageUtils.h" #include "IPCMessageUtils.h"
#include "mozilla/net/NeckoMessageUtils.h" #include "mozilla/net/NeckoMessageUtils.h"
#endif
#include "nsSimpleNestedURI.h" #include "nsSimpleNestedURI.h"
#include "nsIObjectInputStream.h" #include "nsIObjectInputStream.h"
@ -93,6 +95,7 @@ nsSimpleNestedURI::Write(nsIObjectOutputStream* aStream)
PRBool PRBool
nsSimpleNestedURI::Read(const IPC::Message *aMsg, void **aIter) nsSimpleNestedURI::Read(const IPC::Message *aMsg, void **aIter)
{ {
#ifdef MOZ_IPC
if (!nsSimpleURI::Read(aMsg, aIter)) if (!nsSimpleURI::Read(aMsg, aIter))
return PR_FALSE; return PR_FALSE;
@ -103,15 +106,19 @@ nsSimpleNestedURI::Read(const IPC::Message *aMsg, void **aIter)
mInnerURI = uri; mInnerURI = uri;
return PR_TRUE; return PR_TRUE;
#endif
return PR_FALSE;
} }
void void
nsSimpleNestedURI::Write(IPC::Message *aMsg) nsSimpleNestedURI::Write(IPC::Message *aMsg)
{ {
#ifdef MOZ_IPC
nsSimpleURI::Write(aMsg); nsSimpleURI::Write(aMsg);
IPC::URI uri(mInnerURI); IPC::URI uri(mInnerURI);
WriteParam(aMsg, uri); WriteParam(aMsg, uri);
#endif
} }
// nsINestedURI // nsINestedURI

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше