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);
// x86_64 ipc preferences
pref("dom.ipc.plugins.enabled.x86_64", true);
#else
#elifdef MOZ_IPC
pref("dom.ipc.plugins.enabled", true);
#else
pref("dom.ipc.plugins.enabled", false);
#endif
#ifdef XP_WIN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -4950,6 +4950,7 @@ MOZ_BRANDING_DIRECTORY=
MOZ_OFFICIAL_BRANDING=
MOZ_FEEDS=1
MOZ_INSTALLER=1
MOZ_IPC=1
MOZ_JAVAXPCOM=
MOZ_JSDEBUGGER=1
MOZ_MATHML=1
@ -5821,6 +5822,21 @@ MOZ_ARG_DISABLE_BOOL(jsd,
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 = Enable IPDL's "expensive" unit tests
dnl ========================================================

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -38,7 +38,9 @@
*
* ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "base/basictypes.h"
#endif
#include "nsIDOMXULElement.h"
@ -117,6 +119,7 @@
#include "nsStyleUtil.h"
#include "CanvasImageCache.h"
#ifdef MOZ_IPC
# include <algorithm>
# include "mozilla/dom/ContentParent.h"
# include "mozilla/ipc/PDocumentRendererParent.h"
@ -127,6 +130,7 @@
# undef DrawText
using namespace mozilla::ipc;
#endif
#ifdef MOZ_SVG
#include "nsSVGEffects.h"
@ -1230,6 +1234,7 @@ nsCanvasRenderingContext2D::SetIsOpaque(PRBool isOpaque)
NS_IMETHODIMP
nsCanvasRenderingContext2D::SetIsIPC(PRBool isIPC)
{
#ifdef MOZ_IPC
if (isIPC == mIPC)
return NS_OK;
@ -1243,6 +1248,9 @@ nsCanvasRenderingContext2D::SetIsIPC(PRBool isIPC)
}
return NS_OK;
#else
return NS_ERROR_NOT_IMPLEMENTED;
#endif
}
NS_IMETHODIMP
@ -3759,6 +3767,7 @@ nsCanvasRenderingContext2D::AsyncDrawXULElement(nsIDOMXULElement* aElem, float a
if (!frameloader)
return NS_ERROR_FAILURE;
#ifdef MOZ_IPC
PBrowserParent *child = frameloader->GetRemoteBrowser();
if (!child) {
nsCOMPtr<nsIDOMWindow> window =
@ -3806,6 +3815,14 @@ nsCanvasRenderingContext2D::AsyncDrawXULElement(nsIDOMXULElement* aElem, float a
}
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 ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h"
#endif
#include "nsCOMPtr.h"
#include "nsDOMEvent.h"
#include "nsEventStateManager.h"
@ -1368,6 +1370,7 @@ nsDOMEvent::GetPreventDefault(PRBool* aReturn)
void
nsDOMEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType)
{
#ifdef MOZ_IPC
if (aSerializeInterfaceType) {
IPC::WriteParam(aMsg, NS_LITERAL_STRING("event"));
}
@ -1389,11 +1392,13 @@ nsDOMEvent::Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType)
IPC::WriteParam(aMsg, trusted);
// No timestamp serialization for now!
#endif
}
PRBool
nsDOMEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
{
#ifdef MOZ_IPC
nsString type;
NS_ENSURE_TRUE(IPC::ReadParam(aMsg, aIter, &type), PR_FALSE);
@ -1411,6 +1416,9 @@ nsDOMEvent::Deserialize(const IPC::Message* aMsg, void** aIter)
SetTrusted(trusted);
return PR_TRUE;
#else
return PR_FALSE;
#endif
}

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

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

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

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

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

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

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

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

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

@ -37,8 +37,10 @@
*
* ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "base/basictypes.h"
#include "IPC/IPCMessageUtils.h"
#endif
#include "nsCOMPtr.h"
#include "nsDOMUIEvent.h"
#include "nsIPresShell.h"
@ -392,6 +394,7 @@ nsDOMUIEvent::DuplicatePrivateData()
return rv;
}
#ifdef MOZ_IPC
void
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);
return PR_TRUE;
}
#endif
nsresult NS_NewDOMUIEvent(nsIDOMEvent** aInstancePtrResult,
nsPresContext* aPresContext,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -64,13 +64,14 @@ public:
// library after using it.
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
nsIThread *GetThread();
// 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,
// you may receive an implementation which forwards to a compositing process.
// depending on where you call it from. If MOZ_IPC is enabled, and you
// call this from a child process, you may recieve an implementation which
// forwards to a compositing process.
static nsAudioStream* AllocateStream();
// Initialize the audio stream. aNumChannels is the number of audio channels

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

@ -71,7 +71,7 @@ public:
* UnregisterVisitedCallback.
*
* @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
* The URI to check.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1229,7 +1229,10 @@ NS_IMETHODIMP nsWebBrowser::Create()
}
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.
rv = EnableGlobalHistory(mShouldEnableHistory);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "EnableGlobalHistory() failed");

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

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

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

@ -251,6 +251,7 @@ private:
// An array to store the strings identifying the different types.
nsTArray<nsCString> mTypeArray;
#ifdef MOZ_IPC
// 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
// such updates.
@ -261,6 +262,7 @@ public:
{
mUpdateChildProcess = PR_TRUE;
}
#endif
};
// {4F6B5E00-0C36-11d5-A535-0010A401EB10}

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

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

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

@ -59,12 +59,16 @@ endif
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
DIRS += ycbcr
endif
ifdef MOZ_IPC
DIRS += ipc
endif
ifdef ENABLE_TESTS
TOOL_DIRS += tests
endif

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -37,7 +37,9 @@
*
* ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
# include "mozilla/layers/PLayers.h"
#endif // MOZ_IPC
#include "LayerManagerOGL.h"
#include "ThebesLayerOGL.h"
@ -968,6 +970,8 @@ void LayerOGL::ApplyFilter(gfxPattern::GraphicsFilter aFilter)
}
}
#ifdef MOZ_IPC
already_AddRefed<ShadowThebesLayer>
LayerManagerOGL::CreateShadowThebesLayer()
{
@ -1018,6 +1022,20 @@ LayerManagerOGL::CreateShadowCanvasLayer()
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 */
} /* mozilla */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1769,6 +1769,7 @@ public:
NS_DISPLAY_DECL_NAME("OwnLayer", TYPE_OWN_LAYER)
};
#ifdef MOZ_IPC
/**
* 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
@ -1816,6 +1817,7 @@ public:
private:
nsIFrame* mViewportFrame;
};
#endif
/**
* nsDisplayClip can clip a list of items, but we take a single item

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

@ -78,11 +78,17 @@ EXPORTS = \
nsLayoutStatics.h \
$(NULL)
ifdef MOZ_IPC
GKIPCLIB=../ipc/$(LIB_PREFIX)gkipc_s.$(LIB_SUFFIX)
else
GKIPCLIB=$(NULL)
endif
SHARED_LIBRARY_LIBS = \
../base/$(LIB_PREFIX)gkbase_s.$(LIB_SUFFIX) \
../forms/$(LIB_PREFIX)gkforms_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) \
../tables/$(LIB_PREFIX)gktable_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)
endif
ifdef MOZ_IPC
include $(topsrcdir)/config/config.mk
include $(topsrcdir)/ipc/chromium/chromium-config.mk
endif
include $(topsrcdir)/config/rules.mk

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

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

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

@ -55,7 +55,9 @@
#undef slots
#endif
#ifdef MOZ_IPC
#include "mozilla/plugins/PluginMessageUtils.h"
#endif
#ifdef MOZ_X11
#include <cairo-xlib.h>
@ -238,7 +240,9 @@ static PRLogModuleInfo *nsObjectFrameLM = PR_NewLogModule("nsObjectFrame");
#endif
using namespace mozilla;
#ifdef MOZ_IPC
using namespace mozilla::plugins;
#endif
using namespace mozilla::layers;
// special class for handeling DOM context menu events because for
@ -2351,6 +2355,7 @@ nsObjectFrame::PaintPlugin(nsDisplayListBuilder* aBuilder,
nsPoint origin;
gfxWindowsNativeDrawing nativeDraw(ctx, frameGfxRect);
#ifdef MOZ_IPC
if (nativeDraw.IsDoublePass()) {
// 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
@ -2362,6 +2367,7 @@ nsObjectFrame::PaintPlugin(nsDisplayListBuilder* aBuilder,
if (pluginEvent.event)
inst->HandleEvent(&pluginEvent, nsnull);
}
#endif
do {
HDC hdc = nativeDraw.BeginNativeDrawing();
if (!hdc)

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

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

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

@ -38,8 +38,10 @@
*
* ***** END LICENSE BLOCK ***** */
#ifdef MOZ_IPC
#include "mozilla/dom/ContentChild.h"
#include "nsXULAppAPI.h"
#endif
#include "nsPrefBranch.h"
#include "nsILocalFile.h"
@ -72,6 +74,7 @@ static PLDHashOperator
pref_enumChild(PLDHashTable *table, PLDHashEntryHdr *heh,
PRUint32 i, void *arg);
#ifdef MOZ_IPC
using mozilla::dom::ContentChild;
static ContentChild*
@ -86,6 +89,7 @@ GetContentChild()
}
return nsnull;
}
#endif // MOZ_IPC
/*
* Constructor/Destructor
@ -166,10 +170,12 @@ NS_IMETHODIMP nsPrefBranch::GetBoolPref(const char *aPrefName, PRBool *_retval)
NS_IMETHODIMP nsPrefBranch::SetBoolPref(const char *aPrefName, PRInt32 aValue)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(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)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(aPrefName);
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)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(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))) {
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot get nsILocalFile pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
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))) {
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot get nsIRelativeFilePref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
nsACString::const_iterator keyBegin, strEnd;
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)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(aPrefName);
@ -432,10 +448,12 @@ NS_IMETHODIMP nsPrefBranch::SetComplexValue(const char *aPrefName, const nsIID &
NS_IMETHODIMP nsPrefBranch::ClearUserPref(const char *aPrefName)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(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)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot lock pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(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)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot check lock pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG_POINTER(_retval);
NS_ENSURE_ARG(aPrefName);
@ -479,10 +501,12 @@ NS_IMETHODIMP nsPrefBranch::PrefIsLocked(const char *aPrefName, PRBool *_retval)
NS_IMETHODIMP nsPrefBranch::UnlockPref(const char *aPrefName)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot unlock pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName);
@ -497,10 +521,12 @@ NS_IMETHODIMP nsPrefBranch::ResetBranch(const char *aStartingAt)
NS_IMETHODIMP nsPrefBranch::DeleteBranch(const char *aStartingAt)
{
#ifdef MOZ_IPC
if (GetContentChild()) {
NS_ERROR("cannot set pref from content process");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
NS_ENSURE_ARG(aStartingAt);
const char *pref = getPrefName(aStartingAt);

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1741,7 +1741,11 @@ static nsresult CreateNPAPIPlugin(nsPluginTag *aPluginTag,
nsNPAPIPlugin **aOutNPAPIPlugin)
{
// 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)) {
#else
if (!aPluginTag->mLibrary) {
#endif
if (aPluginTag->mFullPath.IsEmpty())
return NS_ERROR_FAILURE;
nsCOMPtr<nsILocalFile> file = do_CreateInstance("@mozilla.org/file/local;1");
@ -4083,6 +4087,7 @@ NS_IMETHODIMP nsPluginHost::Notify(nsITimer* timer)
return NS_ERROR_FAILURE;
}
#ifdef MOZ_IPC
#ifdef XP_WIN
// Re-enable any top level browser windows that were disabled by modal dialogs
// displayed by the crashed plugin.
@ -4192,6 +4197,7 @@ nsPluginHost::PluginCrashed(nsNPAPIPlugin* aPlugin,
CheckForDisabledWindows();
#endif
}
#endif
nsNPAPIPluginInstance*
nsPluginHost::FindInstance(const char *mimetype)

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

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

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

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

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

@ -45,8 +45,10 @@
by Patrick C. Beard.
*/
#ifdef MOZ_IPC
#include "GeckoChildProcessHost.h"
#include "base/process_util.h"
#endif
#include "prlink.h"
#include "prnetdb.h"
@ -458,6 +460,7 @@ static PRBool IsCompatibleArch(nsIFile *file)
UInt32 packageType, packageCreator;
::CFBundleGetPackageInfo(pluginBundle, &packageType, &packageCreator);
if (packageType == 'BRPL' || packageType == 'IEPL' || packageType == 'NSPL') {
#ifdef MOZ_IPC
// Get path to plugin as a C string.
char executablePath[PATH_MAX];
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.
isPluginFile = !!(containerArchitectures & pluginLibArchitectures);
#else
isPluginFile = !!::CFBundlePreflightExecutable(pluginBundle, NULL);
#endif
}
::CFRelease(pluginBundle);
}

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

@ -54,8 +54,20 @@ DIRS = \
cache \
protocol \
system \
$(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
DIRS += wifi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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