mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
89 lines
2.6 KiB
C++
89 lines
2.6 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
// Original author: ekr@rtfm.com
|
|
|
|
#ifndef mtransport_test_utils_h__
|
|
#define mtransport_test_utils_h__
|
|
|
|
#include "nspr.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "nsNetCID.h"
|
|
#include "nsXPCOMGlue.h"
|
|
#include "nsXPCOM.h"
|
|
|
|
#include "nsIComponentManager.h"
|
|
#include "nsIComponentRegistrar.h"
|
|
#include "nsIIOService.h"
|
|
#include "nsIServiceManager.h"
|
|
#include "nsISocketTransportService.h"
|
|
#include "nsDirectoryServiceUtils.h"
|
|
#include "nsDirectoryServiceDefs.h"
|
|
#ifdef MOZ_CRASHREPORTER
|
|
#include "nsICrashReporter.h"
|
|
#endif
|
|
|
|
#include "nsServiceManagerUtils.h"
|
|
|
|
|
|
class MtransportTestUtils {
|
|
public:
|
|
bool InitServices() {
|
|
nsresult rv;
|
|
|
|
NS_InitXPCOM2(getter_AddRefs(servMan_), nullptr, nullptr);
|
|
manager_ = do_QueryInterface(servMan_);
|
|
rv = manager_->CreateInstanceByContractID(NS_IOSERVICE_CONTRACTID,
|
|
nullptr, NS_GET_IID(nsIIOService),
|
|
getter_AddRefs(ioservice_));
|
|
if (!NS_SUCCEEDED(rv))
|
|
return false;
|
|
|
|
sts_target_ = do_GetService(NS_SOCKETTRANSPORTSERVICE_CONTRACTID, &rv);
|
|
if (!NS_SUCCEEDED(rv))
|
|
return false;
|
|
|
|
#ifdef MOZ_CRASHREPORTER
|
|
char *crashreporter = PR_GetEnv("MOZ_CRASHREPORTER");
|
|
if (crashreporter && !strcmp(crashreporter, "1")) {
|
|
//TODO: move this to an even-more-common location to use in all
|
|
// C++ unittests
|
|
crashreporter_ = do_GetService("@mozilla.org/toolkit/crash-reporter;1");
|
|
if (crashreporter_) {
|
|
std::cerr << "Setting up crash reporting" << std::endl;
|
|
|
|
nsCOMPtr<nsIProperties> dirsvc =
|
|
do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID);
|
|
nsCOMPtr<nsIFile> cwd;
|
|
rv = dirsvc->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
|
|
NS_GET_IID(nsIFile),
|
|
getter_AddRefs(cwd));
|
|
if (!NS_SUCCEEDED(rv))
|
|
return false;
|
|
crashreporter_->SetEnabled(true);
|
|
crashreporter_->SetMinidumpPath(cwd);
|
|
}
|
|
}
|
|
#endif
|
|
return true;
|
|
}
|
|
|
|
nsCOMPtr<nsIEventTarget> sts_target() { return sts_target_; }
|
|
|
|
private:
|
|
nsCOMPtr<nsIServiceManager> servMan_;
|
|
nsCOMPtr<nsIComponentManager> manager_;
|
|
nsCOMPtr<nsIIOService> ioservice_;
|
|
nsCOMPtr<nsIEventTarget> sts_target_;
|
|
#ifdef MOZ_CRASHREPORTER
|
|
nsCOMPtr<nsICrashReporter> crashreporter_;
|
|
#endif
|
|
};
|
|
|
|
|
|
#endif
|
|
|