summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc')
-rw-r--r--ipc/app/plugin-container.exe.manifest1
-rw-r--r--ipc/chromium/src/base/process_util_win.cc37
-rw-r--r--ipc/glue/CrashReporterHost.cpp103
-rw-r--r--ipc/glue/CrashReporterHost.h20
-rw-r--r--ipc/glue/CrashReporterMetadataShmem.cpp23
-rw-r--r--ipc/glue/CrashReporterMetadataShmem.h4
-rw-r--r--ipc/glue/GeckoChildProcessHost.cpp31
-rw-r--r--ipc/glue/IPCMessageUtils.h11
-rw-r--r--ipc/glue/MessageChannel.h4
-rw-r--r--ipc/glue/MessageLink.cpp7
-rw-r--r--ipc/glue/ProtocolUtils.cpp67
-rw-r--r--ipc/glue/ProtocolUtils.h12
-rw-r--r--ipc/glue/WindowsMessageLoop.cpp2
-rw-r--r--ipc/ipdl/ipdl/lower.py7
-rw-r--r--ipc/mscom/MainThreadRuntime.cpp14
15 files changed, 6 insertions, 337 deletions
diff --git a/ipc/app/plugin-container.exe.manifest b/ipc/app/plugin-container.exe.manifest
index d61ddec1a..303109523 100644
--- a/ipc/app/plugin-container.exe.manifest
+++ b/ipc/app/plugin-container.exe.manifest
@@ -37,7 +37,6 @@
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
- <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
</assembly>
diff --git a/ipc/chromium/src/base/process_util_win.cc b/ipc/chromium/src/base/process_util_win.cc
index 12fbc23a5..f22f7216f 100644
--- a/ipc/chromium/src/base/process_util_win.cc
+++ b/ipc/chromium/src/base/process_util_win.cc
@@ -297,43 +297,6 @@ bool LaunchApp(const std::wstring& cmdline,
startup_info.wShowWindow = start_hidden ? SW_HIDE : SW_SHOW;
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList = NULL;
- // Don't even bother trying pre-Vista...
- if (mozilla::IsVistaOrLater()) {
- // setup our handle array first - if we end up with no handles that can
- // be inherited we can avoid trying to do the ThreadAttributeList dance...
- HANDLE handlesToInherit[2];
- int handleCount = 0;
- HANDLE stdOut = ::GetStdHandle(STD_OUTPUT_HANDLE);
- HANDLE stdErr = ::GetStdHandle(STD_ERROR_HANDLE);
-
- if (IsInheritableHandle(stdOut))
- handlesToInherit[handleCount++] = stdOut;
- if (stdErr != stdOut && IsInheritableHandle(stdErr))
- handlesToInherit[handleCount++] = stdErr;
-
- if (handleCount) {
- lpAttributeList = CreateThreadAttributeList(handlesToInherit, handleCount);
- if (lpAttributeList) {
- // it's safe to inherit handles, so arrange for that...
- startup_info.cb = sizeof(startup_info_ex);
- startup_info.dwFlags |= STARTF_USESTDHANDLES;
- startup_info.hStdOutput = stdOut;
- startup_info.hStdError = stdErr;
- startup_info.hStdInput = INVALID_HANDLE_VALUE;
- startup_info_ex.lpAttributeList = lpAttributeList;
- dwCreationFlags |= EXTENDED_STARTUPINFO_PRESENT;
- bInheritHandles = TRUE;
- }
- }
- } else if (PR_GetEnv("MOZ_WIN_INHERIT_STD_HANDLES_PRE_VISTA")) {
- // Even if we can't limit what gets inherited, we sometimes want to inherit
- // stdout/err for testing purposes.
- startup_info.dwFlags |= STARTF_USESTDHANDLES;
- startup_info.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE);
- startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE);
- startup_info.hStdInput = INVALID_HANDLE_VALUE;
- bInheritHandles = TRUE;
- }
PROCESS_INFORMATION process_info;
BOOL createdOK = CreateProcess(NULL,
diff --git a/ipc/glue/CrashReporterHost.cpp b/ipc/glue/CrashReporterHost.cpp
index 76052ae66..85552cba5 100644
--- a/ipc/glue/CrashReporterHost.cpp
+++ b/ipc/glue/CrashReporterHost.cpp
@@ -9,9 +9,6 @@
#include "mozilla/Sprintf.h"
#include "mozilla/SyncRunnable.h"
#include "mozilla/Telemetry.h"
-#ifdef MOZ_CRASHREPORTER
-# include "nsICrashService.h"
-#endif
namespace mozilla {
namespace ipc {
@@ -24,105 +21,5 @@ CrashReporterHost::CrashReporterHost(GeckoProcessType aProcessType,
{
}
-#ifdef MOZ_CRASHREPORTER
-void
-CrashReporterHost::GenerateCrashReport(RefPtr<nsIFile> aCrashDump)
-{
- nsString dumpID;
- if (!CrashReporter::GetIDFromMinidump(aCrashDump, dumpID)) {
- return;
- }
-
- CrashReporter::AnnotationTable notes;
-
- nsAutoCString type;
- switch (mProcessType) {
- case GeckoProcessType_Content:
- type = NS_LITERAL_CSTRING("content");
- break;
- case GeckoProcessType_Plugin:
- case GeckoProcessType_GMPlugin:
- type = NS_LITERAL_CSTRING("plugin");
- break;
- case GeckoProcessType_GPU:
- type = NS_LITERAL_CSTRING("gpu");
- break;
- default:
- NS_ERROR("unknown process type");
- break;
- }
- notes.Put(NS_LITERAL_CSTRING("ProcessType"), type);
-
- char startTime[32];
- SprintfLiteral(startTime, "%lld", static_cast<long long>(mStartTime));
- notes.Put(NS_LITERAL_CSTRING("StartupTime"), nsDependentCString(startTime));
-
- CrashReporterMetadataShmem::ReadAppNotes(mShmem, &notes);
-
- CrashReporter::AppendExtraData(dumpID, notes);
- NotifyCrashService(mProcessType, dumpID, &notes);
-}
-
-/* static */ void
-CrashReporterHost::NotifyCrashService(GeckoProcessType aProcessType,
- const nsString& aChildDumpID,
- const AnnotationTable* aNotes)
-{
- if (!NS_IsMainThread()) {
- RefPtr<Runnable> runnable = NS_NewRunnableFunction([=] () -> void {
- CrashReporterHost::NotifyCrashService(aProcessType, aChildDumpID, aNotes);
- });
- RefPtr<nsIThread> mainThread = do_GetMainThread();
- SyncRunnable::DispatchToThread(mainThread, runnable);
- return;
- }
-
- MOZ_ASSERT(!aChildDumpID.IsEmpty());
-
- nsCOMPtr<nsICrashService> crashService =
- do_GetService("@mozilla.org/crashservice;1");
- if (!crashService) {
- return;
- }
-
- int32_t processType;
- int32_t crashType = nsICrashService::CRASH_TYPE_CRASH;
-
- nsCString telemetryKey;
-
- switch (aProcessType) {
- case GeckoProcessType_Content:
- processType = nsICrashService::PROCESS_TYPE_CONTENT;
- telemetryKey.AssignLiteral("content");
- break;
- case GeckoProcessType_Plugin: {
- processType = nsICrashService::PROCESS_TYPE_PLUGIN;
- telemetryKey.AssignLiteral("plugin");
- nsAutoCString val;
- if (aNotes->Get(NS_LITERAL_CSTRING("PluginHang"), &val) &&
- val.Equals(NS_LITERAL_CSTRING("1"))) {
- crashType = nsICrashService::CRASH_TYPE_HANG;
- telemetryKey.AssignLiteral("pluginhang");
- }
- break;
- }
- case GeckoProcessType_GMPlugin:
- processType = nsICrashService::PROCESS_TYPE_GMPLUGIN;
- telemetryKey.AssignLiteral("gmplugin");
- break;
- case GeckoProcessType_GPU:
- processType = nsICrashService::PROCESS_TYPE_GPU;
- telemetryKey.AssignLiteral("gpu");
- break;
- default:
- NS_ERROR("unknown process type");
- return;
- }
-
- crashService->AddCrash(processType, crashType, aChildDumpID);
- Telemetry::Accumulate(Telemetry::SUBPROCESS_CRASHES_WITH_DUMP, telemetryKey, 1);
-}
-#endif
-
} // namespace ipc
} // namespace mozilla
diff --git a/ipc/glue/CrashReporterHost.h b/ipc/glue/CrashReporterHost.h
index 36c5923c2..1089781c5 100644
--- a/ipc/glue/CrashReporterHost.h
+++ b/ipc/glue/CrashReporterHost.h
@@ -28,26 +28,6 @@ class CrashReporterHost
public:
CrashReporterHost(GeckoProcessType aProcessType, const Shmem& aShmem);
-#ifdef MOZ_CRASHREPORTER
- void GenerateCrashReport(base::ProcessId aPid) {
- RefPtr<nsIFile> crashDump;
- if (!XRE_TakeMinidumpForChild(aPid, getter_AddRefs(crashDump), nullptr)) {
- return;
- }
- GenerateCrashReport(crashDump);
- }
-
- // This is a static helper function to notify the crash service that a
- // crash has occurred. When PCrashReporter is removed, we can make this
- // a member function. This can be called from any thread, and if not
- // called from the main thread, will post a synchronous message to the
- // main thread.
- static void NotifyCrashService(
- GeckoProcessType aProcessType,
- const nsString& aChildDumpID,
- const AnnotationTable* aNotes);
-#endif
-
private:
void GenerateCrashReport(RefPtr<nsIFile> aCrashDump);
diff --git a/ipc/glue/CrashReporterMetadataShmem.cpp b/ipc/glue/CrashReporterMetadataShmem.cpp
index f579d5bb0..5b889948b 100644
--- a/ipc/glue/CrashReporterMetadataShmem.cpp
+++ b/ipc/glue/CrashReporterMetadataShmem.cpp
@@ -208,28 +208,5 @@ private:
EntryType mEntryType;
};
-#ifdef MOZ_CRASHREPORTER
-void
-CrashReporterMetadataShmem::ReadAppNotes(const Shmem& aShmem, CrashReporter::AnnotationTable* aNotes)
-{
- for (MetadataShmemReader reader(aShmem); !reader.Done(); reader.Next()) {
- switch (reader.Type()) {
- case EntryType::Annotation: {
- nsCString key, value;
- if (!reader.Read(key) || !reader.Read(value)) {
- return;
- }
-
- aNotes->Put(key, value);
- break;
- }
- default:
- NS_ASSERTION(false, "Unknown metadata entry type");
- break;
- }
- }
-}
-#endif
-
} // namespace ipc
} // namespace mozilla
diff --git a/ipc/glue/CrashReporterMetadataShmem.h b/ipc/glue/CrashReporterMetadataShmem.h
index d2d8670a2..ad67c6d75 100644
--- a/ipc/glue/CrashReporterMetadataShmem.h
+++ b/ipc/glue/CrashReporterMetadataShmem.h
@@ -28,10 +28,6 @@ public:
void AnnotateCrashReport(const nsCString& aKey, const nsCString& aData);
void AppendAppNotes(const nsCString& aData);
-#ifdef MOZ_CRASHREPORTER
- static void ReadAppNotes(const Shmem& aShmem, CrashReporter::AnnotationTable* aNotes);
-#endif
-
private:
void SyncNotesToShmem();
diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
index 48051472a..db8ab3d0a 100644
--- a/ipc/glue/GeckoChildProcessHost.cpp
+++ b/ipc/glue/GeckoChildProcessHost.cpp
@@ -307,12 +307,6 @@ GeckoChildProcessHost::GetUniqueID()
void
GeckoChildProcessHost::PrepareLaunch()
{
-#ifdef MOZ_CRASHREPORTER
- if (CrashReporter::GetEnabled()) {
- CrashReporter::OOPInit();
- }
-#endif
-
#ifdef XP_WIN
if (mProcessType == GeckoProcessType_Plugin) {
InitWindowsGroupID();
@@ -902,26 +896,6 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
childArgv.push_back(pidstring);
-#if defined(MOZ_CRASHREPORTER)
-# if defined(OS_LINUX) || defined(OS_BSD)
- int childCrashFd, childCrashRemapFd;
- if (!CrashReporter::CreateNotificationPipeForChild(
- &childCrashFd, &childCrashRemapFd))
- return false;
- if (0 <= childCrashFd) {
- mFileMap.push_back(std::pair<int,int>(childCrashFd, childCrashRemapFd));
- // "true" == crash reporting enabled
- childArgv.push_back("true");
- }
- else {
- // "false" == crash reporting disabled
- childArgv.push_back("false");
- }
-# elif defined(MOZ_WIDGET_COCOA)
- childArgv.push_back(CrashReporter::GetChildNotificationPipe());
-# endif // OS_LINUX
-#endif
-
#ifdef MOZ_WIDGET_COCOA
// Add a mach port to the command line so the child can communicate its
// 'task_t' back to the parent.
@@ -1139,11 +1113,6 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt
// Process id
cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
-#if defined(MOZ_CRASHREPORTER)
- cmdLine.AppendLooseValue(
- UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
-#endif
-
// Process type
cmdLine.AppendLooseValue(UTF8ToWide(childProcessType));
diff --git a/ipc/glue/IPCMessageUtils.h b/ipc/glue/IPCMessageUtils.h
index 094aa978a..15834a854 100644
--- a/ipc/glue/IPCMessageUtils.h
+++ b/ipc/glue/IPCMessageUtils.h
@@ -25,9 +25,6 @@
#include <stdint.h>
-#ifdef MOZ_CRASHREPORTER
-#include "nsExceptionHandler.h"
-#endif
#include "nsID.h"
#include "nsIWidget.h"
#include "nsMemory.h"
@@ -127,16 +124,8 @@ struct EnumSerializer {
static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult) {
uintParamType value;
if (!ReadParam(aMsg, aIter, &value)) {
-#ifdef MOZ_CRASHREPORTER
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCReadErrorReason"),
- NS_LITERAL_CSTRING("Bad iter"));
-#endif
return false;
} else if (!EnumValidator::IsLegalValue(paramType(value))) {
-#ifdef MOZ_CRASHREPORTER
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCReadErrorReason"),
- NS_LITERAL_CSTRING("Illegal value"));
-#endif
return false;
}
*aResult = paramType(value);
diff --git a/ipc/glue/MessageChannel.h b/ipc/glue/MessageChannel.h
index df70899df..4c9edf9dd 100644
--- a/ipc/glue/MessageChannel.h
+++ b/ipc/glue/MessageChannel.h
@@ -19,10 +19,6 @@
#include "mozilla/ipc/Neutering.h"
#endif // defined(OS_WIN)
#include "mozilla/ipc/Transport.h"
-#if defined(MOZ_CRASHREPORTER) && defined(OS_WIN)
-#include "mozilla/mozalloc_oom.h"
-#include "nsExceptionHandler.h"
-#endif
#include "MessageLink.h"
#include <deque>
diff --git a/ipc/glue/MessageLink.cpp b/ipc/glue/MessageLink.cpp
index 6a1bda02d..a66fbbb32 100644
--- a/ipc/glue/MessageLink.cpp
+++ b/ipc/glue/MessageLink.cpp
@@ -14,9 +14,6 @@
#include "mozilla/Assertions.h"
#include "mozilla/DebugOnly.h"
#include "nsDebug.h"
-#ifdef MOZ_CRASHREPORTER
-#include "nsExceptionHandler.h"
-#endif
#include "nsISupportsImpl.h"
#include "nsXULAppAPI.h"
@@ -135,10 +132,6 @@ void
ProcessLink::SendMessage(Message *msg)
{
if (msg->size() > IPC::Channel::kMaximumMessageSize) {
-#ifdef MOZ_CRASHREPORTER
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCMessageName"), nsDependentCString(msg->name()));
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCMessageSize"), nsPrintfCString("%d", msg->size()));
-#endif
MOZ_CRASH("IPC message size is too large");
}
diff --git a/ipc/glue/ProtocolUtils.cpp b/ipc/glue/ProtocolUtils.cpp
index 1a022048f..4de131469 100644
--- a/ipc/glue/ProtocolUtils.cpp
+++ b/ipc/glue/ProtocolUtils.cpp
@@ -25,13 +25,6 @@
#include "mozilla/sandboxTarget.h"
#endif
-#if defined(MOZ_CRASHREPORTER) && defined(XP_WIN)
-#include "aclapi.h"
-#include "sddl.h"
-
-#include "mozilla/TypeTraits.h"
-#endif
-
#include "nsAutoPtr.h"
using namespace IPC;
@@ -42,16 +35,6 @@ using base::ProcessId;
namespace mozilla {
-#if defined(MOZ_CRASHREPORTER) && defined(XP_WIN)
-// Generate RAII classes for LPTSTR and PSECURITY_DESCRIPTOR.
-MOZ_TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE(ScopedLPTStr, \
- RemovePointer<LPTSTR>::Type, \
- ::LocalFree)
-MOZ_TYPE_SPECIFIC_SCOPED_POINTER_TEMPLATE(ScopedPSecurityDescriptor, \
- RemovePointer<PSECURITY_DESCRIPTOR>::Type, \
- ::LocalFree)
-#endif
-
namespace ipc {
class ChannelOpened : public IPC::Message
@@ -195,11 +178,6 @@ bool DuplicateHandle(HANDLE aSourceHandle,
FALSE,
aTargetProcessId));
if (!targetProcess) {
-#ifdef MOZ_CRASHREPORTER
- CrashReporter::AnnotateCrashReport(
- NS_LITERAL_CSTRING("IPCTransportFailureReason"),
- NS_LITERAL_CSTRING("Failed to open target process."));
-#endif
return false;
}
@@ -209,34 +187,6 @@ bool DuplicateHandle(HANDLE aSourceHandle,
}
#endif
-#ifdef MOZ_CRASHREPORTER
-void
-AnnotateSystemError()
-{
- int64_t error = 0;
-#if defined(XP_WIN)
- error = ::GetLastError();
-#elif defined(OS_POSIX)
- error = errno;
-#endif
- if (error) {
- CrashReporter::AnnotateCrashReport(
- NS_LITERAL_CSTRING("IPCSystemError"),
- nsPrintfCString("%lld", error));
- }
-}
-#endif
-
-#if defined(MOZ_CRASHREPORTER) && defined(XP_MACOSX)
-void
-AnnotateCrashReportWithErrno(const char* tag, int error)
-{
- CrashReporter::AnnotateCrashReport(
- nsCString(tag),
- nsPrintfCString("%d", error));
-}
-#endif
-
void
LogMessageForProtocol(const char* aTopLevelProtocol, base::ProcessId aOtherPid,
const char* aContextDescription,
@@ -274,18 +224,6 @@ FatalError(const char* aProtocolName, const char* aMsg, bool aIsParent)
formattedMessage.AppendLiteral("]: \"");
formattedMessage.AppendASCII(aMsg);
if (aIsParent) {
-#ifdef MOZ_CRASHREPORTER
- // We're going to crash the parent process because at this time
- // there's no other really nice way of getting a minidump out of
- // this process if we're off the main thread.
- formattedMessage.AppendLiteral("\". Intentionally crashing.");
- NS_ERROR(formattedMessage.get());
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCFatalErrorProtocol"),
- nsDependentCString(aProtocolName));
- CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCFatalErrorMsg"),
- nsDependentCString(aMsg));
- AnnotateSystemError();
-#endif
MOZ_CRASH("IPC FatalError in the parent process!");
} else {
formattedMessage.AppendLiteral("\". abort()ing as a result.");
@@ -540,12 +478,9 @@ IToplevelProtocol::SetOtherProcessId(base::ProcessId aOtherPid)
bool
IToplevelProtocol::TakeMinidump(nsIFile** aDump, uint32_t* aSequence)
{
+ /*** STUB ***/
MOZ_RELEASE_ASSERT(GetSide() == ParentSide);
-#ifdef MOZ_CRASHREPORTER
- return XRE_TakeMinidumpForChild(OtherPid(), aDump, aSequence);
-#else
return false;
-#endif
}
bool
diff --git a/ipc/glue/ProtocolUtils.h b/ipc/glue/ProtocolUtils.h
index 9184aae54..83860d93a 100644
--- a/ipc/glue/ProtocolUtils.h
+++ b/ipc/glue/ProtocolUtils.h
@@ -472,14 +472,10 @@ DuplicateHandle(HANDLE aSourceHandle,
#endif
/**
- * Annotate the crash reporter with the error code from the most recent system
- * call. Returns the system error.
+ * Hist: Annotated the crash reporter with the error code from the most
+ * recent system call. Returned the system error.
*/
-#ifdef MOZ_CRASHREPORTER
-void AnnotateSystemError();
-#else
#define AnnotateSystemError() do { } while (0)
-#endif
/**
* An endpoint represents one end of a partially initialized IPDL channel. To
@@ -599,12 +595,8 @@ private:
ProtocolId mProtocolId;
};
-#if defined(MOZ_CRASHREPORTER) && defined(XP_MACOSX)
-void AnnotateCrashReportWithErrno(const char* tag, int error);
-#else
static inline void AnnotateCrashReportWithErrno(const char* tag, int error)
{}
-#endif
// This function is used internally to create a pair of Endpoints. See the
// comment above Endpoint for a description of how it might be used.
diff --git a/ipc/glue/WindowsMessageLoop.cpp b/ipc/glue/WindowsMessageLoop.cpp
index 8057ee25d..8f3471efc 100644
--- a/ipc/glue/WindowsMessageLoop.cpp
+++ b/ipc/glue/WindowsMessageLoop.cpp
@@ -1034,7 +1034,7 @@ MessageChannel::WaitForSyncNotify(bool aHandleWindowsMessages)
MOZ_ASSERT(gUIThreadId, "InitUIThread was not called!");
#if defined(ACCESSIBILITY)
- if (IsVistaOrLater() && (mFlags & REQUIRE_A11Y_REENTRY)) {
+ if (mFlags & REQUIRE_A11Y_REENTRY) {
MOZ_ASSERT(!(mFlags & REQUIRE_DEFERRED_MESSAGE_PROTECTION));
return WaitForSyncNotifyWithA11yReentry();
}
diff --git a/ipc/ipdl/ipdl/lower.py b/ipc/ipdl/ipdl/lower.py
index f810cccb0..61855a7a9 100644
--- a/ipc/ipdl/ipdl/lower.py
+++ b/ipc/ipdl/ipdl/lower.py
@@ -2610,13 +2610,6 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
'"'+ _protocolHeaderName(self.protocol, self.side) +'.h"') ]
+ setToIncludes(self.externalIncludes))
- if self.protocol.decl.type.isToplevel():
- cf.addthings([
- CppDirective('ifdef', 'MOZ_CRASHREPORTER'),
- CppDirective(' include', '"nsXULAppAPI.h"'),
- CppDirective('endif')
- ])
-
cppheaders = [CppDirective('include', '"%s"' % filename)
for filename in ipdl.builtin.CppIncludes]
diff --git a/ipc/mscom/MainThreadRuntime.cpp b/ipc/mscom/MainThreadRuntime.cpp
index d86317966..a061eaf54 100644
--- a/ipc/mscom/MainThreadRuntime.cpp
+++ b/ipc/mscom/MainThreadRuntime.cpp
@@ -44,13 +44,6 @@ MainThreadRuntime::MainThreadRuntime()
return;
}
- // Windows XP doesn't support setting of the COM exception policy, so we'll
- // just stop here in that case.
- if (!IsVistaOrLater()) {
- mInitResult = S_OK;
- return;
- }
-
// We are required to initialize security in order to configure global options.
mInitResult = InitializeSecurity();
MOZ_ASSERT(SUCCEEDED(mInitResult));
@@ -67,11 +60,8 @@ MainThreadRuntime::MainThreadRuntime()
return;
}
- // Windows 7 has a policy that is even more strict. We should use that one
- // whenever possible.
- ULONG_PTR exceptionSetting = IsWin7OrLater() ?
- COMGLB_EXCEPTION_DONOT_HANDLE_ANY :
- COMGLB_EXCEPTION_DONOT_HANDLE;
+ // Use the strictest policy available.
+ ULONG_PTR exceptionSetting = COMGLB_EXCEPTION_DONOT_HANDLE_ANY;
mInitResult = globalOpts->Set(COMGLB_EXCEPTION_HANDLING, exceptionSetting);
MOZ_ASSERT(SUCCEEDED(mInitResult));
}