merge mozilla-central to mozilla-inbound to fix spidermonkey bustage. r=merge a=merge
authorSebastian Hengst <archaeopteryx@coole-files.de>
Wed, 07 Sep 2016 18:49:04 +0200
changeset 313057 1aa180309dacc3f0f8fe622839b86ef405ef0d99
parent 313056 bfe117203e0cf267f180e0710b06e8425b99515f (current diff)
parent 312973 33e7ae9b3104e90ce56bbde1906efa97fb116449 (diff)
child 313058 4c763f86c46269e4ed00835cb3e083432b3abe13
push id30669
push userkwierso@gmail.com
push dateThu, 08 Sep 2016 00:56:12 +0000
treeherdermozilla-central@77940cbf0c2a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge, merge
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
merge mozilla-central to mozilla-inbound to fix spidermonkey bustage. r=merge a=merge
toolkit/xre/nsAppRunner.cpp
tools/fuzzing/libfuzzer/FuzzerCustomMain.cpp
tools/fuzzing/libfuzzer/Makefile.in
tools/fuzzing/libfuzzer/clone_libfuzzer.sh
tools/fuzzing/libfuzzer/harness/LibFuzzerRegistry.cpp
tools/fuzzing/libfuzzer/harness/LibFuzzerRegistry.h
tools/fuzzing/libfuzzer/harness/LibFuzzerRunner.cpp
tools/fuzzing/libfuzzer/harness/LibFuzzerRunner.h
tools/fuzzing/libfuzzer/harness/LibFuzzerTestHarness.h
tools/fuzzing/libfuzzer/harness/moz.build
tools/fuzzing/libfuzzer/moz.build
tools/fuzzing/moz.build
--- a/browser/app/moz.build
+++ b/browser/app/moz.build
@@ -28,19 +28,16 @@ LOCAL_INCLUDES += [
     '/xpcom/base',
     '/xpcom/build',
 ]
 
 USE_LIBS += [
     'mozglue',
 ]
 
-if CONFIG['LIBFUZZER']:
-  USE_LIBS += [ 'fuzzer' ]
-
 if CONFIG['_MSC_VER']:
     # Always enter a Windows program through wmain, whether or not we're
     # a console application.
     WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     RCINCLUDE = 'splash.rc'
     DEFINES['MOZ_PHOENIX'] = True
--- a/browser/app/nsBrowserApp.cpp
+++ b/browser/app/nsBrowserApp.cpp
@@ -124,52 +124,33 @@ XRE_TelemetryAccumulateType XRE_Telemetr
 XRE_StartupTimelineRecordType XRE_StartupTimelineRecord;
 XRE_mainType XRE_main;
 XRE_StopLateWriteChecksType XRE_StopLateWriteChecks;
 XRE_XPCShellMainType XRE_XPCShellMain;
 XRE_GetProcessTypeType XRE_GetProcessType;
 XRE_SetProcessTypeType XRE_SetProcessType;
 XRE_InitChildProcessType XRE_InitChildProcess;
 XRE_EnableSameExecutableForContentProcType XRE_EnableSameExecutableForContentProc;
-#ifdef LIBFUZZER
-XRE_LibFuzzerSetMainType XRE_LibFuzzerSetMain;
-XRE_LibFuzzerGetFuncsType XRE_LibFuzzerGetFuncs;
-#endif
 
 static const nsDynamicFunctionLoad kXULFuncs[] = {
     { "XRE_GetFileFromPath", (NSFuncPtr*) &XRE_GetFileFromPath },
     { "XRE_CreateAppData", (NSFuncPtr*) &XRE_CreateAppData },
     { "XRE_FreeAppData", (NSFuncPtr*) &XRE_FreeAppData },
     { "XRE_TelemetryAccumulate", (NSFuncPtr*) &XRE_TelemetryAccumulate },
     { "XRE_StartupTimelineRecord", (NSFuncPtr*) &XRE_StartupTimelineRecord },
     { "XRE_main", (NSFuncPtr*) &XRE_main },
     { "XRE_StopLateWriteChecks", (NSFuncPtr*) &XRE_StopLateWriteChecks },
     { "XRE_XPCShellMain", (NSFuncPtr*) &XRE_XPCShellMain },
     { "XRE_GetProcessType", (NSFuncPtr*) &XRE_GetProcessType },
     { "XRE_SetProcessType", (NSFuncPtr*) &XRE_SetProcessType },
     { "XRE_InitChildProcess", (NSFuncPtr*) &XRE_InitChildProcess },
     { "XRE_EnableSameExecutableForContentProc", (NSFuncPtr*) &XRE_EnableSameExecutableForContentProc },
-#ifdef LIBFUZZER
-    { "XRE_LibFuzzerSetMain", (NSFuncPtr*) &XRE_LibFuzzerSetMain },
-    { "XRE_LibFuzzerGetFuncs", (NSFuncPtr*) &XRE_LibFuzzerGetFuncs },
-#endif
     { nullptr, nullptr }
 };
 
-#ifdef LIBFUZZER
-int libfuzzer_main(int argc, char **argv);
-
-/* This wrapper is used by the libFuzzer main to call into libxul */
-
-void libFuzzerGetFuncs(const char* moduleName, LibFuzzerInitFunc* initFunc,
-                       LibFuzzerTestingFunc* testingFunc) {
-  return XRE_LibFuzzerGetFuncs(moduleName, initFunc, testingFunc);
-}
-#endif
-
 static int do_main(int argc, char* argv[], char* envp[], nsIFile *xreDirectory)
 {
   nsCOMPtr<nsIFile> appini;
   nsresult rv;
   uint32_t mainFlags = 0;
 
   // Allow firefox.exe to launch XULRunner apps via -app <application.ini>
   // Note that -app must be the *first* argument.
@@ -270,21 +251,16 @@ static int do_main(int argc, char* argv[
   if (!brokerServices) {
     Output("Couldn't initialize the broker services.\n");
     return 255;
   }
 #endif
   appData.sandboxBrokerServices = brokerServices;
 #endif
 
-#ifdef LIBFUZZER
-  if (getenv("LIBFUZZER"))
-    XRE_LibFuzzerSetMain(argc, argv, libfuzzer_main);
-#endif
-
   return XRE_main(argc, argv, &appData, mainFlags);
 }
 
 static bool
 FileExists(const char *path)
 {
 #ifdef XP_WIN
   wchar_t wideDir[MAX_PATH];
--- a/moz.build
+++ b/moz.build
@@ -52,17 +52,16 @@ if not CONFIG['JS_STANDALONE']:
 
 DIRS += [
     'config/external/fdlibm',
     'config/external/nspr',
     'config/external/zlib',
     'memory',
     'mfbt',
     'mozglue',
-    'tools/fuzzing',
 ]
 
 if not CONFIG['JS_STANDALONE']:
     DIRS += ['xpcom/xpidl']
 
 if CONFIG['USE_ICU']:
     DIRS += ['config/external/icu']
 
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
@@ -759,20 +759,8 @@ def skia_includes(skia, skia_gpu):
         includes += [
             '/gfx/skia/skia/include/gpu',
             '/gfx/skia/skia/include/utils',
         ]
 
     return includes
 
 set_config('SKIA_INCLUDES', skia_includes)
-
-# Support various fuzzing options
-# ==============================================================
-option('--enable-libfuzzer', help='Enable libfuzzer support')
-
-@depends('--enable-libfuzzer')
-def enable_libfuzzer(value):
-    if value:
-        return True
-
-set_config('LIBFUZZER', enable_libfuzzer)
-set_define('LIBFUZZER', enable_libfuzzer)
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -253,28 +253,16 @@ nsString gAbsoluteArgv0Path;
 // build backends.
 #include "buildid.h"
 #endif
 
 #ifdef MOZ_LINKER
 extern "C" MFBT_API bool IsSignalHandlingBroken();
 #endif
 
-#ifdef LIBFUZZER
-#include "LibFuzzerRunner.h"
-
-namespace mozilla {
-LibFuzzerRunner* libFuzzerRunner = 0;
-} // namespace mozilla
-
-extern "C" MOZ_EXPORT void XRE_LibFuzzerSetMain(int argc, char** argv, LibFuzzerMain main) {
-  mozilla::libFuzzerRunner->setParams(argc, argv, main);
-}
-#endif
-
 namespace mozilla {
 int (*RunGTest)() = 0;
 } // namespace mozilla
 
 using namespace mozilla;
 using mozilla::Unused;
 using mozilla::scache::StartupCache;
 using mozilla::dom::ContentParent;
@@ -3651,23 +3639,16 @@ XREMain::XRE_mainStartup(bool* aExitFlag
 
   // Open the display ourselves instead of using gtk_init, so that we can
   // close it without fear that one day gtk might clean up the display it
   // opens.
   if (!gtk_parse_args(&gArgc, &gArgv))
     return 1;
 #endif /* MOZ_WIDGET_GTK */
 
-#ifdef LIBFUZZER
-  if (PR_GetEnv("LIBFUZZER")) {
-    *aExitFlag = true;
-    return mozilla::libFuzzerRunner->Run();
-  }
-#endif
-
   if (PR_GetEnv("MOZ_RUN_GTEST")) {
     int result;
 #ifdef XP_WIN
     UseParentConsole();
 #endif
     // RunGTest will only be set if we're in xul-unit
     if (mozilla::RunGTest) {
       gIsGtest = true;
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/FuzzerCustomMain.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * * 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/. */
-
-#include <cstdlib>
-
-#include "FuzzerInterface.h"
-#include "FuzzerInternal.h"
-#include "harness/LibFuzzerRegistry.h"
-
-/* This is a wrapper defined in browser/app/nsBrowserApp.cpp,
- * encapsulating the XRE_ equivalent defined in libxul */
-extern void libFuzzerGetFuncs(const char*, LibFuzzerInitFunc*,
-                                 LibFuzzerTestingFunc*);
-
-int libfuzzer_main(int argc, char **argv) {
-  LibFuzzerInitFunc initFunc = nullptr;
-  LibFuzzerTestingFunc testingFunc = nullptr;
-
-  libFuzzerGetFuncs(getenv("LIBFUZZER"), &initFunc, &testingFunc);
-
-  if (initFunc) {
-    int ret = initFunc(&argc, &argv);
-    if (ret) {
-      fprintf(stderr, "LibFuzzer: Error: Initialize callback failed\n");
-      return ret;
-    }
-  }
-
-  if (!testingFunc) {
-      fprintf(stderr, "LibFuzzer: Error: No testing callback found\n");
-      return 1;
-  }
-
-  return fuzzer::FuzzerDriver(&argc, &argv, testingFunc);
-}
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/Makefile.in
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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/.
-
-include $(topsrcdir)/config/rules.mk
-
-# According to the LLVM docs, LibFuzzer isn't supposed to be built with any
-# sanitizer flags and in fact, building it with ASan coverage currently causes
-# Clang 3.9+ to crash, so we filter out all sanitizer-related flags here.
-CXXFLAGS := $(filter-out -fsanitize%,$(CXXFLAGS))
-CFLAGS := $(filter-out -fsanitize%,$(CFLAGS))
-LDFLAGS := $(filter-out -fsanitize%,$(LDFLAGS))
deleted file mode 100755
--- a/tools/fuzzing/libfuzzer/clone_libfuzzer.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-mkdir tmp/
-git clone --no-checkout --depth 1 https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer tmp/
-mv tmp/.git .
-rm -Rf tmp
-git reset --hard HEAD
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/LibFuzzerRegistry.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * * 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/. */
-
-#include "LibFuzzerRegistry.h"
-
-extern "C" {
-    void MOZ_EXPORT XRE_LibFuzzerGetFuncs(const char* moduleName, LibFuzzerInitFunc* initFunc, LibFuzzerTestingFunc* testingFunc) {
-        std::string moduleNameStr(moduleName);
-        mozilla::LibFuzzerFunctions funcs = mozilla::LibFuzzerRegistry::getInstance().getModuleFunctions(moduleNameStr);
-        *initFunc = funcs.first;
-        *testingFunc = funcs.second;
-    }
-}
-
-namespace mozilla {
-
-LibFuzzerRegistry& LibFuzzerRegistry::getInstance() {
-    static LibFuzzerRegistry instance;
-    return instance;
-}
-
-void LibFuzzerRegistry::registerModule(std::string moduleName, LibFuzzerInitFunc initFunc, LibFuzzerTestingFunc testingFunc) {
-    moduleMap.insert(std::pair<std::string, LibFuzzerFunctions>(moduleName,LibFuzzerFunctions(initFunc, testingFunc)));
-}
-
-LibFuzzerFunctions LibFuzzerRegistry::getModuleFunctions(std::string& moduleName) {
-    return moduleMap[moduleName];
-}
-
-} // namespace mozilla
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/LibFuzzerRegistry.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * * 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/. */
-
-#ifndef _LibFuzzerRegistry_h__
-#define _LibFuzzerRegistry_h__
-
-#include <cstdint>
-#include <map>
-#include <string>
-#include <utility>
-
-#include "mozilla/Attributes.h"
-
-typedef int(*LibFuzzerMain)(int, char**);
-typedef int(*LibFuzzerInitFunc)(int*, char***);
-typedef int(*LibFuzzerTestingFunc)(const uint8_t*, size_t);
-
-namespace mozilla {
-
-typedef std::pair<LibFuzzerInitFunc, LibFuzzerTestingFunc> LibFuzzerFunctions;
-
-class LibFuzzerRegistry {
-    public:
-        MOZ_EXPORT static LibFuzzerRegistry& getInstance();
-        MOZ_EXPORT void registerModule(std::string moduleName, LibFuzzerInitFunc initFunc, LibFuzzerTestingFunc testingFunc);
-        MOZ_EXPORT LibFuzzerFunctions getModuleFunctions(std::string& moduleName);
-
-        LibFuzzerRegistry(LibFuzzerRegistry const&) = delete;
-        void operator=(LibFuzzerRegistry const&) = delete;
-
-    private:
-        LibFuzzerRegistry() {};
-        std::map<std::string, LibFuzzerFunctions> moduleMap;
-};
-
-} // namespace mozilla
-
-
-#endif // _LibFuzzerRegistry_h__
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/LibFuzzerRunner.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * * 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/. */
-
-#include "LibFuzzerRunner.h"
-#include "mozilla/Attributes.h"
-#include "prenv.h"
-
-#include "LibFuzzerTestHarness.h"
-
-namespace mozilla {
-
-// We use a static var 'libFuzzerRunner' defined in nsAppRunner.cpp.
-// libFuzzerRunner is initialized to nullptr but if LibFuzzer (this file)
-// is linked in then libFuzzerRunner will be set here indicating that
-// we want to call into LibFuzzer's main.
-class _InitLibFuzzer {
-public:
-  _InitLibFuzzer() {
-    libFuzzerRunner = new LibFuzzerRunner();
-  }
-} InitLibFuzzer;
-
-int LibFuzzerRunner::Run() {
-  ScopedXPCOM xpcom("LibFuzzer");
-  return mFuzzerMain(mArgc, mArgv);
-}
-
-typedef int(*LibFuzzerMain)(int, char**);
-
-void LibFuzzerRunner::setParams(int argc, char** argv, LibFuzzerMain main) {
-  mArgc = argc;
-  mArgv = argv;
-  mFuzzerMain = main;
-}
-
-} // namespace mozilla
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/LibFuzzerRunner.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * * 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/. */
-
-namespace mozilla {
-
-typedef int(*LibFuzzerMain)(int, char**);
-
-class LibFuzzerRunner {
-public:
-  int Run();
-  void setParams(int argc, char** argv, LibFuzzerMain main);
-
-private:
-  int mArgc;
-  char** mArgv;
-  LibFuzzerMain mFuzzerMain;
-};
-
-extern LibFuzzerRunner* libFuzzerRunner;
-
-} // namespace mozilla
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/LibFuzzerTestHarness.h
+++ /dev/null
@@ -1,312 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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/. */
-
-/*
- * Test harness for XPCOM objects, providing a scoped XPCOM initializer,
- * nsCOMPtr, nsRefPtr, do_CreateInstance, do_GetService, ns(Auto|C|)String,
- * and stdio.h/stdlib.h.
- */
-
-#ifndef LibFuzzerTestHarness_h__
-#define LibFuzzerTestHarness_h__
-
-#include "mozilla/ArrayUtils.h"
-
-#include "prenv.h"
-#include "nsComponentManagerUtils.h"
-#include "nsServiceManagerUtils.h"
-#include "nsCOMPtr.h"
-#include "nsAutoPtr.h"
-#include "nsStringGlue.h"
-#include "nsAppDirectoryServiceDefs.h"
-#include "nsDirectoryServiceDefs.h"
-#include "nsDirectoryServiceUtils.h"
-#include "nsIDirectoryService.h"
-#include "nsIFile.h"
-#include "nsIProperties.h"
-#include "nsIObserverService.h"
-#include "nsXULAppAPI.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-namespace {
-
-static uint32_t gFailCount = 0;
-
-/**
- * Prints the given failure message and arguments using printf, prepending
- * "TEST-UNEXPECTED-FAIL " for the benefit of the test harness and
- * appending "\n" to eliminate having to type it at each call site.
- */
-void fail(const char* msg, ...)
-{
-  va_list ap;
-
-  printf("TEST-UNEXPECTED-FAIL | ");
-
-  va_start(ap, msg);
-  vprintf(msg, ap);
-  va_end(ap);
-
-  putchar('\n');
-  ++gFailCount;
-}
-
-/**
- * Prints the given success message and arguments using printf, prepending
- * "TEST-PASS " for the benefit of the test harness and
- * appending "\n" to eliminate having to type it at each call site.
- */
-void passed(const char* msg, ...)
-{
-  va_list ap;
-
-  printf("TEST-PASS | ");
-
-  va_start(ap, msg);
-  vprintf(msg, ap);
-  va_end(ap);
-
-  putchar('\n');
-}
-
-//-----------------------------------------------------------------------------
-
-class ScopedLogging
-{
-public:
-    ScopedLogging()
-    {
-        NS_LogInit();
-    }
-
-    ~ScopedLogging()
-    {
-        NS_LogTerm();
-    }
-};
-
-static class ScopedXPCOM : public nsIDirectoryServiceProvider2
-{
-  public:
-    NS_DECL_ISUPPORTS
-
-    explicit ScopedXPCOM(const char* testName,
-                         nsIDirectoryServiceProvider *dirSvcProvider = nullptr)
-    : mDirSvcProvider(dirSvcProvider)
-    {
-      mTestName = testName;
-      printf("Running %s tests...\n", mTestName);
-
-      nsresult rv = NS_InitXPCOM2(&mServMgr, nullptr, this);
-      if (NS_FAILED(rv))
-      {
-        fail("NS_InitXPCOM2 returned failure code 0x%x", rv);
-        mServMgr = nullptr;
-        return;
-      }
-    }
-
-    ~ScopedXPCOM()
-    {
-      // If we created a profile directory, we need to remove it.
-      if (mProfD) {
-        nsCOMPtr<nsIObserverService> os =
-          do_GetService(NS_OBSERVERSERVICE_CONTRACTID);
-        MOZ_ASSERT(os);
-        if (os) {
-          MOZ_ALWAYS_SUCCEEDS(os->NotifyObservers(nullptr, "profile-change-net-teardown", nullptr));
-          MOZ_ALWAYS_SUCCEEDS(os->NotifyObservers(nullptr, "profile-change-teardown", nullptr));
-          MOZ_ALWAYS_SUCCEEDS(os->NotifyObservers(nullptr, "profile-before-change", nullptr));
-          MOZ_ALWAYS_SUCCEEDS(os->NotifyObservers(nullptr, "profile-before-change-qm", nullptr));
-          MOZ_ALWAYS_SUCCEEDS(os->NotifyObservers(nullptr, "profile-before-change-telemetry", nullptr));
-        }
-
-        if (NS_FAILED(mProfD->Remove(true))) {
-          NS_WARNING("Problem removing profile directory");
-        }
-
-        mProfD = nullptr;
-      }
-
-      if (mServMgr)
-      {
-        NS_RELEASE(mServMgr);
-        nsresult rv = NS_ShutdownXPCOM(nullptr);
-        if (NS_FAILED(rv))
-        {
-          fail("XPCOM shutdown failed with code 0x%x", rv);
-          exit(1);
-        }
-      }
-
-      printf("Finished running %s tests.\n", mTestName);
-    }
-
-    bool failed()
-    {
-      return mServMgr == nullptr;
-    }
-
-    already_AddRefed<nsIFile> GetProfileDirectory()
-    {
-      if (mProfD) {
-        nsCOMPtr<nsIFile> copy = mProfD;
-        return copy.forget();
-      }
-
-      // Create a unique temporary folder to use for this test.
-      // Note that runcppunittests.py will run tests with a temp
-      // directory as the cwd, so just put something under that.
-      nsCOMPtr<nsIFile> profD;
-      nsresult rv = NS_GetSpecialDirectory(NS_OS_CURRENT_PROCESS_DIR,
-                                           getter_AddRefs(profD));
-      NS_ENSURE_SUCCESS(rv, nullptr);
-
-      rv = profD->Append(NS_LITERAL_STRING("cpp-unit-profd"));
-      NS_ENSURE_SUCCESS(rv, nullptr);
-
-      rv = profD->CreateUnique(nsIFile::DIRECTORY_TYPE, 0755);
-      NS_ENSURE_SUCCESS(rv, nullptr);
-
-      mProfD = profD;
-      return profD.forget();
-    }
-
-    already_AddRefed<nsIFile> GetGREDirectory()
-    {
-      if (mGRED) {
-        nsCOMPtr<nsIFile> copy = mGRED;
-        return copy.forget();
-      }
-
-      char* env = PR_GetEnv("MOZ_XRE_DIR");
-      nsCOMPtr<nsIFile> greD;
-      if (env) {
-        NS_NewLocalFile(NS_ConvertUTF8toUTF16(env), false,
-                        getter_AddRefs(greD));
-      }
-
-      mGRED = greD;
-      return greD.forget();
-    }
-
-    already_AddRefed<nsIFile> GetGREBinDirectory()
-    {
-      if (mGREBinD) {
-        nsCOMPtr<nsIFile> copy = mGREBinD;
-        return copy.forget();
-      }
-
-      nsCOMPtr<nsIFile> greD = GetGREDirectory();
-      if (!greD) {
-        return greD.forget();
-      }
-      greD->Clone(getter_AddRefs(mGREBinD));
-
-#ifdef XP_MACOSX
-      nsAutoCString leafName;
-      mGREBinD->GetNativeLeafName(leafName);
-      if (leafName.Equals("Resources")) {
-        mGREBinD->SetNativeLeafName(NS_LITERAL_CSTRING("MacOS"));
-      }
-#endif
-
-      nsCOMPtr<nsIFile> copy = mGREBinD;
-      return copy.forget();
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    //// nsIDirectoryServiceProvider
-
-    NS_IMETHODIMP GetFile(const char *aProperty, bool *_persistent,
-                          nsIFile **_result) override
-    {
-      // If we were supplied a directory service provider, ask it first.
-      if (mDirSvcProvider &&
-          NS_SUCCEEDED(mDirSvcProvider->GetFile(aProperty, _persistent,
-                                                _result))) {
-        return NS_OK;
-      }
-
-      // Otherwise, the test harness provides some directories automatically.
-      if (0 == strcmp(aProperty, NS_APP_USER_PROFILE_50_DIR) ||
-          0 == strcmp(aProperty, NS_APP_USER_PROFILE_LOCAL_50_DIR) ||
-          0 == strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
-        nsCOMPtr<nsIFile> profD = GetProfileDirectory();
-        NS_ENSURE_TRUE(profD, NS_ERROR_FAILURE);
-
-        nsCOMPtr<nsIFile> clone;
-        nsresult rv = profD->Clone(getter_AddRefs(clone));
-        NS_ENSURE_SUCCESS(rv, rv);
-
-        *_persistent = true;
-        clone.forget(_result);
-        return NS_OK;
-      } else if (0 == strcmp(aProperty, NS_GRE_DIR)) {
-        nsCOMPtr<nsIFile> greD = GetGREDirectory();
-        NS_ENSURE_TRUE(greD, NS_ERROR_FAILURE);
-
-        *_persistent = true;
-        greD.forget(_result);
-        return NS_OK;
-      } else if (0 == strcmp(aProperty, NS_GRE_BIN_DIR)) {
-        nsCOMPtr<nsIFile> greBinD = GetGREBinDirectory();
-        NS_ENSURE_TRUE(greBinD, NS_ERROR_FAILURE);
-
-        *_persistent = true;
-        greBinD.forget(_result);
-        return NS_OK;
-      }
-
-      return NS_ERROR_FAILURE;
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    //// nsIDirectoryServiceProvider2
-
-    NS_IMETHODIMP GetFiles(const char *aProperty, nsISimpleEnumerator **_enum) override
-    {
-      // If we were supplied a directory service provider, ask it first.
-      nsCOMPtr<nsIDirectoryServiceProvider2> provider =
-        do_QueryInterface(mDirSvcProvider);
-      if (provider && NS_SUCCEEDED(provider->GetFiles(aProperty, _enum))) {
-        return NS_OK;
-      }
-
-     return NS_ERROR_FAILURE;
-   }
-
-  private:
-    const char* mTestName;
-    nsIServiceManager* mServMgr;
-    nsCOMPtr<nsIDirectoryServiceProvider> mDirSvcProvider;
-    nsCOMPtr<nsIFile> mProfD;
-    nsCOMPtr<nsIFile> mGRED;
-    nsCOMPtr<nsIFile> mGREBinD;
-};
-
-NS_IMPL_QUERY_INTERFACE(
-  ScopedXPCOM,
-  nsIDirectoryServiceProvider,
-  nsIDirectoryServiceProvider2
-)
-
-NS_IMETHODIMP_(MozExternalRefCountType)
-ScopedXPCOM::AddRef()
-{
-  return 2;
-}
-
-NS_IMETHODIMP_(MozExternalRefCountType)
-ScopedXPCOM::Release()
-{
-  return 1;
-}
-
-} // namespace
-
-#endif  // LibFuzzerTestHarness_h__
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/harness/moz.build
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-Library('fuzzer-runner')
-
-SOURCES += [
-    'LibFuzzerRegistry.cpp',
-    'LibFuzzerRunner.cpp',
-]
-
-EXPORTS += [
-    'LibFuzzerRegistry.h',
-    'LibFuzzerRunner.h',
-]
-
-FINAL_LIBRARY = "xul"
deleted file mode 100644
--- a/tools/fuzzing/libfuzzer/moz.build
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-Library('fuzzer')
-
-DIRS += [
-  'harness',
-]
-
-SOURCES += [
-    'FuzzerCrossOver.cpp',
-    'FuzzerCustomMain.cpp',
-    'FuzzerDriver.cpp',
-    'FuzzerExtFunctionsDlsym.cpp',
-    'FuzzerExtFunctionsWeak.cpp',
-    'FuzzerIO.cpp',
-    'FuzzerLoop.cpp',
-    'FuzzerMutate.cpp',
-    'FuzzerSHA1.cpp',
-    'FuzzerTracePC.cpp',
-    'FuzzerTraceState.cpp',
-    'FuzzerUtil.cpp',
-]
deleted file mode 100644
--- a/tools/fuzzing/moz.build
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-if CONFIG['LIBFUZZER']:
-  DIRS += [
-    'libfuzzer',
-  ]
--- a/xpcom/build/nsXULAppAPI.h
+++ b/xpcom/build/nsXULAppAPI.h
@@ -515,21 +515,9 @@ XRE_API(int,
         XRE_XPCShellMain, (int argc, char** argv, char** envp,
                            const XREShellData* aShellData))
 
 #if MOZ_WIDGET_GTK == 2
 XRE_API(void,
         XRE_GlibInit, ())
 #endif
 
-
-#ifdef LIBFUZZER
-#include "LibFuzzerRegistry.h"
-
-XRE_API(void,
-        XRE_LibFuzzerSetMain, (int, char**, LibFuzzerMain))
-
-XRE_API(void,
-        XRE_LibFuzzerGetFuncs, (const char*, LibFuzzerInitFunc*,
-                                LibFuzzerTestingFunc*))
-#endif // LIBFUZZER
-
 #endif // _nsXULAppAPI_h__