Revert "Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer" because of widespread breakage due to whitelisted executable names in third parties
authorGeorge Wright <george@mozilla.com>
Fri, 08 Apr 2016 13:34:40 -0400
changeset 292484 3ce37297f52f339351935fdb6166d83a9cd0cd27
parent 292483 8d87452bfc44bf502e2a1a172db91f88e5284782
child 292485 6c0267e552613c591e95d64540b89eb202d5418e
push id18623
push userryanvm@gmail.com
push dateSun, 10 Apr 2016 20:21:27 +0000
treeherderfx-team@29d5a4175c8b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersted, jhamer
bugs1114647
milestone48.0a1
Revert "Bug 1114647 - Rename "plugin-container" to "firefox-webcontent" and create a new executable target for Win32 called "firefox-plugin-container" r=ted,jhamer" because of widespread breakage due to whitelisted executable names in third parties This reverts commit a94b5f861bd0d25043a3bb7a0c3128acf8c0b93a.
CLOBBER
browser/installer/Makefile.in
browser/installer/package-manifest.in
browser/installer/windows/nsis/installer.nsi
browser/installer/windows/nsis/uninstaller.nsi
build/win32/Makefile.in
dom/media/gmp/GMPLoader.h
ipc/app/Makefile.in
ipc/app/MozillaRuntimeMain.cpp
ipc/app/app-common.mozbuild
ipc/app/firefox-webcontent.exe.manifest
ipc/app/module.ver
ipc/app/moz.build
ipc/app/plugin-container.exe.manifest
ipc/app/plugin-container/Makefile.in
ipc/app/plugin-container/firefox-plugin-container.exe.manifest
ipc/app/plugin-container/module.ver
ipc/app/plugin-container/moz.build
ipc/contentproc/firefox-webcontent.cpp
ipc/contentproc/moz.build
ipc/contentproc/plugin-container.cpp
ipc/glue/GeckoChildProcessHost.cpp
ipc/glue/moz.build
old-configure.in
python/mozbuild/mozbuild/artifacts.py
testing/talos/talos/cmanager_win32.py
testing/talos/talos/config.py
testing/talos/tests/test_talosconfig.py
toolkit/mozapps/installer/make-eme.mk
tools/power/mach_commands.py
--- a/CLOBBER
+++ b/CLOBBER
@@ -17,9 +17,9 @@
 #
 # Modifying this file will now automatically clobber the buildbot machines \o/
 #
 
 # Are you updating CLOBBER because you think it's needed for your WebIDL
 # changes to stick? As of bug 928195, this shouldn't be necessary! Please
 # don't change CLOBBER for WebIDL changes any more.
 
-Bug 1114647 - Renamed the content process
+Bug 1186060 - Switch Windows compiler from VS2013 to VS2015
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -51,17 +51,16 @@ ifdef MOZ_D3DCOMPILER_VISTA_DLL
 DEFINES += -DMOZ_D3DCOMPILER_VISTA_DLL=$(MOZ_D3DCOMPILER_VISTA_DLL)
 endif
 ifdef MOZ_D3DCOMPILER_XP_DLL
 DEFINES += -DMOZ_D3DCOMPILER_XP_DLL=$(MOZ_D3DCOMPILER_XP_DLL)
 endif
 endif
 
 DEFINES += -DMOZ_CHILD_PROCESS_NAME=$(MOZ_CHILD_PROCESS_NAME)
-DEFINES += -DMOZ_PLUGIN_PROCESS_NAME=$(MOZ_PLUGIN_PROCESS_NAME)
 
 # Set MSVC dlls version to package, if any.
 ifdef MOZ_NO_DEBUG_RTL
 ifdef WIN32_REDIST_DIR
 DEFINES += -DMOZ_PACKAGE_MSVC_DLLS=1
 DEFINES += -DMSVC_C_RUNTIME_DLL=$(MSVC_C_RUNTIME_DLL)
 DEFINES += -DMSVC_CXX_RUNTIME_DLL=$(MSVC_CXX_RUNTIME_DLL)
 endif
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -83,17 +83,16 @@
 #ifdef XP_MACOSX
 @BINPATH@/@MOZ_CHILD_PROCESS_NAME@.app/
 @BINPATH@/@DLL_PREFIX@plugin_child_interpose@DLL_SUFFIX@
 #else
 @BINPATH@/@MOZ_CHILD_PROCESS_NAME@
 #endif
 #ifdef XP_WIN32
 @BINPATH@/plugin-hang-ui@BIN_SUFFIX@
-@BINPATH@/@MOZ_PLUGIN_PROCESS_NAME@
 #if MOZ_PACKAGE_MSVC_DLLS
 @BINPATH@/@MSVC_C_RUNTIME_DLL@
 @BINPATH@/@MSVC_CXX_RUNTIME_DLL@
 #endif
 #if MOZ_PACKAGE_WIN_UCRT_DLLS
 @BINPATH@/api-ms-win-*.dll
 @BINPATH@/ucrtbase.dll
 #endif
--- a/browser/installer/windows/nsis/installer.nsi
+++ b/browser/installer/windows/nsis/installer.nsi
@@ -471,19 +471,17 @@ Section "-Application" APP_IDX
   ; These need special handling on uninstall since they may be overwritten by
   ; an install into a different location.
   StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
   ${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
   ${WriteRegStr2} $TmpVal "$0" "Path" "$INSTDIR" 0
 
   StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
   ${CreateRegKey} "$TmpVal" "$0" 0
-  StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\firefox-webcontent.exe"
-  ${CreateRegKey} "$TmpVal" "$0" 0
-  StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\firefox-plugin-container.exe"
+  StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\plugin-container.exe"
   ${CreateRegKey} "$TmpVal" "$0" 0
 
   ${If} $TmpVal == "HKLM"
     ; Set the permitted LSP Categories for WinVista and above
     ${SetAppLSPCategories} ${LSP_CATEGORIES}
   ${EndIf}
 
   ; Create shortcuts
--- a/browser/installer/windows/nsis/uninstaller.nsi
+++ b/browser/installer/windows/nsis/uninstaller.nsi
@@ -350,20 +350,17 @@ Section "Uninstall"
 
   StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
   ${If} $R9 == "false"
     DeleteRegKey HKLM "$0"
     DeleteRegKey HKCU "$0"
     StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\${FileMainEXE}"
     DeleteRegKey HKLM "$0"
     DeleteRegKey HKCU "$0"
-    StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\firefox-webcontent.exe"
-    DeleteRegKey HKLM "$0"
-    DeleteRegKey HKCU "$0"
-    StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\firefox-plugin-container.exe"
+    StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\plugin-container.exe"
     DeleteRegKey HKLM "$0"
     DeleteRegKey HKCU "$0"
     StrCpy $0 "Software\Classes\MIME\Database\Content Type\application/x-xpinstall;app=firefox"
     DeleteRegKey HKLM "$0"
     DeleteRegKey HKCU "$0"
   ${Else}
     ReadRegStr $R1 HKLM "$0" ""
     ${un.RemoveQuotesFromPath} "$R1" $R1
--- a/build/win32/Makefile.in
+++ b/build/win32/Makefile.in
@@ -26,11 +26,10 @@ libs:: $(libs-preqs)
 endif
 
 # run the binscope tool to make sure the binary and all libraries
 # are using all available Windows OS-level security mechanisms
 # Don't do this in clang-cl since it doesn't support debug information yet.
 ifndef CLANG_CL
 check::
 	$(PYTHON) $(srcdir)/autobinscope.py $(DIST)/bin/$(MOZ_APP_NAME)$(BIN_SUFFIX) $(DIST)/crashreporter-symbols/
-	$(PYTHON) $(srcdir)/autobinscope.py $(DIST)/bin/firefox-webcontent.exe $(DIST)/crashreporter-symbols/
-	$(PYTHON) $(srcdir)/autobinscope.py $(DIST)/bin/firefox-plugin-container.exe $(DIST)/crashreporter-symbols/
+	$(PYTHON) $(srcdir)/autobinscope.py $(DIST)/bin/plugin-container.exe $(DIST)/crashreporter-symbols/
 endif
--- a/dom/media/gmp/GMPLoader.h
+++ b/dom/media/gmp/GMPLoader.h
@@ -27,28 +27,25 @@ public:
   // objects are created.
   virtual void SetSandboxInfo(MacSandboxInfo* aSandboxInfo) = 0;
 #endif
 };
 
 // Encapsulates generating the device-bound node id, activating the sandbox,
 // loading the GMP, and passing the node id to the GMP (in that order).
 //
-// In Desktop Gecko, the implementation of this lives in the content process
-// host binary, and is passed into XUL code from on startup. The GMP IPC child
-// protocol actor uses this interface to load and retrieve interfaces from the
-// GMPs.
+// In Desktop Gecko, the implementation of this lives in plugin-container,
+// and is passed into XUL code from on startup. The GMP IPC child protocol actor
+// uses this interface to load and retrieve interfaces from the GMPs.
 //
-// In Desktop Gecko the implementation lives in the firefox-plugin-container
-// (Windows) or firefox-webcontent (other platforms) so that it can be covered
-// by DRM vendor's voucher. The reason for the extra executable on Windows is
-// because we can't programmatically change the executable name at runtime.
+// In Desktop Gecko the implementation lives in the plugin-container so that
+// it can be covered by DRM vendor's voucher.
 //
 // On Android the GMPLoader implementation lives in libxul (because for the time
-// being GMPLoader relies upon NSPR, which we can't use in firefox-webcontent
+// being GMPLoader relies upon NSPR, which we can't use in plugin-container
 // on Android).
 //
 // There is exactly one GMPLoader per GMP child process, and only one GMP
 // per child process (so the GMPLoader only loads one GMP).
 class GMPLoader {
 public:
   virtual ~GMPLoader() {}
 
@@ -71,18 +68,16 @@ public:
 #if defined(XP_MACOSX) && defined(MOZ_GMP_SANDBOX)
   // On OS X we need to set Mac-specific sandbox info just before we start the
   // sandbox, which we don't yet know when the GMPLoader and SandboxStarter
   // objects are created.
   virtual void SetSandboxInfo(MacSandboxInfo* aSandboxInfo) = 0;
 #endif
 };
 
-// On Desktop, this function resides in firefox-plugin-container on Windows, firefox-webcontent
-// for all other platforms.
-//
+// On Desktop, this function resides in plugin-container.
 // On Mobile, this function resides in XUL.
 GMPLoader* CreateGMPLoader(SandboxStarter* aStarter);
 
 } // namespace gmp
 } // namespace mozilla
 
 #endif // GMP_LOADER_H__
--- a/ipc/app/Makefile.in
+++ b/ipc/app/Makefile.in
@@ -20,18 +20,17 @@ include $(topsrcdir)/config/rules.mk
 
 ifneq ($(MOZ_WIDGET_TOOLKIT),android)
 #LIBS += ../contentproc/$(LIB_PREFIX)plugin-container.$(LIB_SUFFIX)
 endif
 
 ifeq ($(OS_ARCH),WINNT) #{
 # Note the manifest file exists in the tree, so we use the explicit filename
 # here.
-EXTRA_DEPS += firefox-webcontent.exe.manifest
-EXTRA_DEPS += plugin-container/firefox-plugin-container.exe.manifest
+EXTRA_DEPS += plugin-container.exe.manifest
 endif #}
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) #{
 
 libs::
 	$(NSINSTALL) -D $(DIST)/bin/$(PROGRAM).app
 	rsync -a -C --exclude '*.in' $(srcdir)/macbuild/Contents $(DIST)/bin/$(MOZ_CHILD_PROCESS_NAME).app 
 	sed -e 's/%PROGRAM%/$(MOZ_CHILD_PROCESS_NAME)/' $(srcdir)/macbuild/Contents/Info.plist.in > $(DIST)/bin/$(MOZ_CHILD_PROCESS_NAME).app/Contents/Info.plist
--- a/ipc/app/MozillaRuntimeMain.cpp
+++ b/ipc/app/MozillaRuntimeMain.cpp
@@ -1,12 +1,12 @@
 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  * vim: sw=4 ts=4 et :
  * 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 "../contentproc/firefox-webcontent.cpp"
+#include "../contentproc/plugin-container.cpp"
  
 int
 main(int argc, char *argv[]) {
     return content_process_main(argc, argv);
 }
deleted file mode 100644
--- a/ipc/app/app-common.mozbuild
+++ /dev/null
@@ -1,130 +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/.
-
-# Any changes that affect Android need to be made in pie/moz.build as well.
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
-    SOURCES += [
-        'MozillaRuntimeMainAndroid.cpp',
-    ]
-
-    DIRS += ['pie']
-else:
-    kwargs = {
-        'linkage': None,
-    }
-    if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['MOZ_ASAN']:
-        kwargs['msvcrt'] = 'static'
-        if not CONFIG['GNU_CC']:
-            USE_LIBS += [
-                'mozalloc_staticruntime',
-            ]
-
-    SOURCES += [
-        'MozillaRuntimeMain.cpp',
-    ]
-    USE_LIBS += [
-        'nspr',
-        'xul',
-    ]
-
-include('/ipc/chromium/chromium-config.mozbuild')
-
-LOCAL_INCLUDES += [
-    '/ipc/app',
-    '/toolkit/xre',
-    '/xpcom/base',
-]
-
-# We link GMPLoader into plugin-container on desktop so that its code is
-# covered by the desktop DRM vendor's voucher.
-if CONFIG['OS_TARGET'] != 'Android':
-    SOURCES += [
-        '../../dom/media/gmp/GMPLoader.cpp',
-    ]
-
-if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
-    # For sandbox includes and the include dependencies those have
-    LOCAL_INCLUDES += [
-        '/security/sandbox/chromium',
-        '/security/sandbox/chromium-shim',
-    ]
-    USE_LIBS += [
-        'rlz',
-    ]
-
-    if CONFIG['MOZ_ASAN']:
-        USE_LIBS += [
-            'sandbox_s',
-        ]
-    else:
-        USE_LIBS += [
-            'sandbox_staticruntime_s',
-        ]
-
-    DELAYLOAD_DLLS += [
-        'nss3.dll',
-        'xul.dll'
-    ]
-    DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1;
-    SOURCES += [
-        'sha256.c',
-    ]
-
-if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] in ('Linux', 'Android'):
-    USE_LIBS += [
-        'mozsandbox',
-    ]
-
-    # gcc lto likes to put the top level asm in syscall.cc in a different partition
-    # from the function using it which breaks the build.  Work around that by
-    # forcing there to be only one partition.
-    if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']:
-        LDFLAGS += ['--param lto-partitions=1']
-
-if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] == 'Darwin':
-    # For sandbox includes and the include dependencies those have
-    LOCAL_INCLUDES += [
-        '/security/sandbox/chromium',
-        '/security/sandbox/chromium-shim',
-    ]
-    USE_LIBS += [
-        'mozsandbox',
-        'rlz',
-    ]
-
-    DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1;
-    SOURCES += [
-        'sha256.c',
-    ]
-
-if CONFIG['_MSC_VER']:
-    # Always enter a Windows program through wmain, whether or not we're
-    # a console application.
-    WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
-
-LDFLAGS += CONFIG['MOZ_ALLOW_HEAP_EXECUTE_FLAGS']
-
-# Control the default heap size.
-# This is the heap returned by GetProcessHeap().
-# As we use the CRT heap, the default size is too large and wastes VM.
-#
-# The default heap size is 1MB on Win32.
-# The heap will grow if need be.
-#
-# Set it to 256k.  See bug 127069.
-if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
-    LDFLAGS += ['/HEAP:0x40000']
-
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
-    OS_LIBS += [
-        'binder',
-        'utils',
-    ]
-
-if CONFIG['GNU_CXX']:
-    CXXFLAGS += ['-Wshadow']
-
deleted file mode 100644
--- a/ipc/app/firefox-webcontent.exe.manifest
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-<assemblyIdentity
-        version="1.0.0.0"
-        processorArchitecture="*"
-        name="firefox-webcontent"
-        type="win32"
-/>
-<description>Firefox Runtime</description>
-<dependency>
-        <dependentAssembly>
-                <assemblyIdentity
-                        type="win32"
-                        name="Microsoft.Windows.Common-Controls"
-                        version="6.0.0.0"
-                        processorArchitecture="*"
-                        publicKeyToken="6595b64144ccf1df"
-                        language="*"
-                />
-        </dependentAssembly>
-</dependency>
-  <ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
-    <ms_asmv3:security>
-      <ms_asmv3:requestedPrivileges>
-        <ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
-      </ms_asmv3:requestedPrivileges>
-    </ms_asmv3:security>
-  </ms_asmv3:trustInfo>
-  <ms_asmv3:application xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
-    <ms_asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
-      <dpiAware>True/PM</dpiAware>
-    </ms_asmv3:windowsSettings>
-  </ms_asmv3:application>
-  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
-    <application>
-      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
-      <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>
--- a/ipc/app/module.ver
+++ b/ipc/app/module.ver
@@ -1,6 +1,6 @@
 WIN32_MODULE_COMPANYNAME=Mozilla Corporation
 WIN32_MODULE_PRODUCTVERSION=@MOZ_APP_WINVERSION@
 WIN32_MODULE_PRODUCTVERSION_STRING=@MOZ_APP_VERSION@
-WIN32_MODULE_DESCRIPTION=@MOZ_APP_DISPLAYNAME@ Web Content
+WIN32_MODULE_DESCRIPTION=Plugin Container for @MOZ_APP_DISPLAYNAME@
 WIN32_MODULE_PRODUCTNAME=@MOZ_APP_DISPLAYNAME@
 WIN32_MODULE_NAME=@MOZ_APP_DISPLAYNAME@
--- a/ipc/app/moz.build
+++ b/ipc/app/moz.build
@@ -1,15 +1,131 @@
 # -*- 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/.
 
-include('app-common.mozbuild')
+# Any changes that affect Android need to be made in pie/moz.build as well.
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
     Program(CONFIG['MOZ_CHILD_PROCESS_NAME'])
+    SOURCES += [
+        'MozillaRuntimeMainAndroid.cpp',
+    ]
+
+    DIRS += ['pie']
 else:
+    kwargs = {
+        'linkage': None,
+    }
+    if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['MOZ_ASAN']:
+        kwargs['msvcrt'] = 'static'
+        if not CONFIG['GNU_CC']:
+            USE_LIBS += [
+                'mozalloc_staticruntime',
+            ]
     GeckoProgram(CONFIG['MOZ_CHILD_PROCESS_NAME'], **kwargs)
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
-    DIRS += ['plugin-container']
+    SOURCES += [
+        'MozillaRuntimeMain.cpp',
+    ]
+    USE_LIBS += [
+        'nspr',
+        'xul',
+    ]
+
+include('/ipc/chromium/chromium-config.mozbuild')
+
+LOCAL_INCLUDES += [
+    '/toolkit/xre',
+    '/xpcom/base',
+]
+
+# We link GMPLoader into plugin-container on desktop so that its code is
+# covered by the desktop DRM vendor's voucher.
+if CONFIG['OS_TARGET'] != 'Android':
+    SOURCES += [
+        '../../dom/media/gmp/GMPLoader.cpp',
+    ]
+
+if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
+    # For sandbox includes and the include dependencies those have
+    LOCAL_INCLUDES += [
+        '/security/sandbox/chromium',
+        '/security/sandbox/chromium-shim',
+    ]
+    USE_LIBS += [
+        'rlz',
+    ]
+
+    if CONFIG['MOZ_ASAN']:
+        USE_LIBS += [
+            'sandbox_s',
+        ]
+    else:
+        USE_LIBS += [
+            'sandbox_staticruntime_s',
+        ]
+
+    DELAYLOAD_DLLS += [
+        'nss3.dll',
+        'xul.dll'
+    ]
+
+    DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1;
+    SOURCES += [
+        'sha256.c',
+    ]
+
+if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] in ('Linux', 'Android'):
+    USE_LIBS += [
+        'mozsandbox',
+    ]
+
+    # gcc lto likes to put the top level asm in syscall.cc in a different partition
+    # from the function using it which breaks the build.  Work around that by
+    # forcing there to be only one partition.
+    if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']:
+        LDFLAGS += ['--param lto-partitions=1']
+
+if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] == 'Darwin':
+    # For sandbox includes and the include dependencies those have
+    LOCAL_INCLUDES += [
+        '/security/sandbox/chromium',
+        '/security/sandbox/chromium-shim',
+    ]
+    USE_LIBS += [
+        'mozsandbox',
+        'rlz',
+    ]
+
+    DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1;
+    SOURCES += [
+        'sha256.c',
+    ]
+
+if CONFIG['_MSC_VER']:
+    # Always enter a Windows program through wmain, whether or not we're
+    # a console application.
+    WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']
+
+LDFLAGS += CONFIG['MOZ_ALLOW_HEAP_EXECUTE_FLAGS']
+
+# Control the default heap size.
+# This is the heap returned by GetProcessHeap().
+# As we use the CRT heap, the default size is too large and wastes VM.
+#
+# The default heap size is 1MB on Win32.
+# The heap will grow if need be.
+#
+# Set it to 256k.  See bug 127069.
+if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
+    LDFLAGS += ['/HEAP:0x40000']
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
+    OS_LIBS += [
+        'binder',
+        'utils',
+    ]
+
+if CONFIG['GNU_CXX']:
+    CXXFLAGS += ['-Wshadow']
new file mode 100644
--- /dev/null
+++ b/ipc/app/plugin-container.exe.manifest
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+        version="1.0.0.0"
+        processorArchitecture="*"
+        name="plugin-container"
+        type="win32"
+/>
+<description>Firefox Runtime</description>
+<dependency>
+        <dependentAssembly>
+                <assemblyIdentity
+                        type="win32"
+                        name="Microsoft.Windows.Common-Controls"
+                        version="6.0.0.0"
+                        processorArchitecture="*"
+                        publicKeyToken="6595b64144ccf1df"
+                        language="*"
+                />
+        </dependentAssembly>
+</dependency>
+  <ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
+    <ms_asmv3:security>
+      <ms_asmv3:requestedPrivileges>
+        <ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </ms_asmv3:requestedPrivileges>
+    </ms_asmv3:security>
+  </ms_asmv3:trustInfo>
+  <ms_asmv3:application xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
+    <ms_asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+      <dpiAware>True/PM</dpiAware>
+    </ms_asmv3:windowsSettings>
+  </ms_asmv3:application>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+      <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>
deleted file mode 100644
--- a/ipc/app/plugin-container/Makefile.in
+++ /dev/null
@@ -1,29 +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/.
-
-# This switches $(INSTALL) to copy mode, like $(SYSINSTALL), so things that
-# # shouldn't get 755 perms need $(IFLAGS1) for either way of calling nsinstall.
-NSDISTMODE = copy
-
-include $(topsrcdir)/config/config.mk
-
-include $(topsrcdir)/config/rules.mk
-
-ifeq ($(OS_ARCH),WINNT) #{
-# Note the manifest file exists in the tree, so we use the explicit filename
-# here.
-EXTRA_DEPS += firefox-plugin-container.exe.manifest
-endif #}
-
-ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) #{
-
-libs::
-	$(NSINSTALL) -D $(DIST)/bin/$(PROGRAM).app
-	rsync -a -C --exclude '*.in' $(srcdir)/macbuild/Contents $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME).app 
-	sed -e 's/%PROGRAM%/$(MOZ_PLUGIN_PROCESS_NAME)/' $(srcdir)/macbuild/Contents/Info.plist.in > $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME).app/Contents/Info.plist
-	sed -e 's/%APP_NAME%/$(MOZ_APP_DISPLAYNAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | \
-	  iconv -f UTF-8 -t UTF-16 > $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME).app/Contents/Resources/English.lproj/InfoPlist.strings
-	$(NSINSTALL) -D $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME).app/Contents/MacOS
-	$(NSINSTALL) $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME) $(DIST)/bin/$(MOZ_PLUGIN_PROCESS_NAME).app/Contents/MacOS
-endif #}
deleted file mode 100644
--- a/ipc/app/plugin-container/firefox-plugin-container.exe.manifest
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-<assemblyIdentity
-        version="1.0.0.0"
-        processorArchitecture="*"
-        name="firefox-plugin-container"
-        type="win32"
-/>
-<description>Firefox Runtime</description>
-<dependency>
-        <dependentAssembly>
-                <assemblyIdentity
-                        type="win32"
-                        name="Microsoft.Windows.Common-Controls"
-                        version="6.0.0.0"
-                        processorArchitecture="*"
-                        publicKeyToken="6595b64144ccf1df"
-                        language="*"
-                />
-        </dependentAssembly>
-</dependency>
-  <ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
-    <ms_asmv3:security>
-      <ms_asmv3:requestedPrivileges>
-        <ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
-      </ms_asmv3:requestedPrivileges>
-    </ms_asmv3:security>
-  </ms_asmv3:trustInfo>
-  <ms_asmv3:application xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
-    <ms_asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
-      <dpiAware>True/PM</dpiAware>
-    </ms_asmv3:windowsSettings>
-  </ms_asmv3:application>
-  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
-    <application>
-      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
-      <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>
deleted file mode 100644
--- a/ipc/app/plugin-container/module.ver
+++ /dev/null
@@ -1,6 +0,0 @@
-WIN32_MODULE_COMPANYNAME=Mozilla Corporation
-WIN32_MODULE_PRODUCTVERSION=@MOZ_APP_WINVERSION@
-WIN32_MODULE_PRODUCTVERSION_STRING=@MOZ_APP_VERSION@
-WIN32_MODULE_DESCRIPTION=Plugin Container for @MOZ_APP_DISPLAYNAME@
-WIN32_MODULE_PRODUCTNAME=@MOZ_APP_DISPLAYNAME@
-WIN32_MODULE_NAME=@MOZ_APP_DISPLAYNAME@
deleted file mode 100644
--- a/ipc/app/plugin-container/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/.
-
-include('../app-common.mozbuild')
-
-GeckoProgram(CONFIG['MOZ_PLUGIN_PROCESS_NAME'], **kwargs)
-
--- a/ipc/contentproc/moz.build
+++ b/ipc/contentproc/moz.build
@@ -1,20 +1,20 @@
 # -*- 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('firefox-webcontent')
+Library('plugin-container')
 if CONFIG['MOZ_B2G_LOADER']:
     FINAL_LIBRARY = 'xul'
 
 SOURCES += [
-    'firefox-webcontent.cpp',
+    'plugin-container.cpp',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 if CONFIG['OS_ARCH'] == 'WINNT':
     LOCAL_INCLUDES += [
         '/toolkit/xre',
         '/xpcom/base',
rename from ipc/contentproc/firefox-webcontent.cpp
rename to ipc/contentproc/plugin-container.cpp
--- a/ipc/glue/GeckoChildProcessHost.cpp
+++ b/ipc/glue/GeckoChildProcessHost.cpp
@@ -150,17 +150,17 @@ GeckoChildProcessHost::GetPathToBinary(F
 #ifdef OS_WIN
     exePath = FilePath(char16ptr_t(gGREBinPath));
 #elif MOZ_WIDGET_COCOA
     nsCOMPtr<nsIFile> childProcPath;
     NS_NewLocalFile(nsDependentString(gGREBinPath), false,
                     getter_AddRefs(childProcPath));
     // We need to use an App Bundle on OS X so that we can hide
     // the dock icon. See Bug 557225.
-    childProcPath->AppendNative(NS_LITERAL_CSTRING("firefox-webcontent.app"));
+    childProcPath->AppendNative(NS_LITERAL_CSTRING("plugin-container.app"));
     childProcPath->AppendNative(NS_LITERAL_CSTRING("Contents"));
     childProcPath->AppendNative(NS_LITERAL_CSTRING("MacOS"));
     nsCString tempCPath;
     childProcPath->GetNativePath(tempCPath);
     exePath = FilePath(tempCPath.get());
 #else
     nsCString path;
     NS_CopyUnicodeToNative(nsDependentString(gGREBinPath), path);
@@ -181,23 +181,17 @@ GeckoChildProcessHost::GetPathToBinary(F
   exePath = exePath.AppendASCII("lib");
 
   // We must use the PIE binary on 5.0 and higher
   const char* processName = mozilla::AndroidBridge::Bridge()->GetAPIVersion() >= 21 ?
     MOZ_CHILD_PROCESS_NAME_PIE : MOZ_CHILD_PROCESS_NAME;
 
   exePath = exePath.AppendASCII(processName);
 #else
-#ifdef OS_WIN
-  if (XRE_GetProcessType() == GeckoProcessType_Plugin ||
-      XRE_GetProcessType() == GeckoProcessType_GMPlugin) {
-    exePath = exePath.AppendASCII(MOZ_PLUGIN_PROCESS_NAME);
-  } else
-#endif
-    exePath = exePath.AppendASCII(MOZ_CHILD_PROCESS_NAME);
+  exePath = exePath.AppendASCII(MOZ_CHILD_PROCESS_NAME);
 #endif
 }
 
 #ifdef MOZ_WIDGET_COCOA
 class AutoCFTypeObject {
 public:
   explicit AutoCFTypeObject(CFTypeRef object)
   {
--- a/ipc/glue/moz.build
+++ b/ipc/glue/moz.build
@@ -168,18 +168,17 @@ LOCAL_INCLUDES += [
     '/xpcom/threads',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 FINAL_LIBRARY = 'xul'
 
 for var in ('MOZ_CHILD_PROCESS_NAME', 'MOZ_CHILD_PROCESS_NAME_PIE',
-            'MOZ_CHILD_PROCESS_BUNDLE', 'MOZ_PLUGIN_PROCESS_NAME',
-            'DLL_PREFIX', 'DLL_SUFFIX'):
+            'MOZ_CHILD_PROCESS_BUNDLE', 'DLL_PREFIX', 'DLL_SUFFIX'):
     DEFINES[var] = '"%s"' % CONFIG[var]
 
 LOCAL_INCLUDES += [
     '/toolkit/crashreporter',
 ]
 
 if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
     LOCAL_INCLUDES += [
--- a/old-configure.in
+++ b/old-configure.in
@@ -7085,32 +7085,30 @@ fi
 
 AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
 AC_SUBST(MOZ_MACBUNDLE_ID)
 
 dnl ========================================================
 dnl = Child Process Name for IPC
 dnl ========================================================
 if test "$MOZ_WIDGET_TOOLKIT" != "android"; then
-  MOZ_CHILD_PROCESS_NAME="firefox-webcontent${BIN_SUFFIX}"
-  MOZ_PLUGIN_PROCESS_NAME="firefox-plugin-container${BIN_SUFFIX}"
+  MOZ_CHILD_PROCESS_NAME="plugin-container${BIN_SUFFIX}"
 else
   # We want to let Android unpack the file at install time, but it only does
   # so if the file is named libsomething.so. The lib/ path is also required
   # because the unpacked file will be under the lib/ subdirectory and will
   # need to be executed from that path.
-  MOZ_CHILD_PROCESS_NAME="libfirefox-webcontent.so"
+  MOZ_CHILD_PROCESS_NAME="libplugin-container.so"
   MOZ_CHILD_PROCESS_NAME_PIE="libplugin-container-pie.so"
   AC_SUBST(MOZ_CHILD_PROCESS_NAME_PIE)
 fi
 MOZ_CHILD_PROCESS_BUNDLE="plugin-container.app/Contents/MacOS/"
 
 AC_SUBST(MOZ_CHILD_PROCESS_NAME)
 AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
-AC_SUBST(MOZ_PLUGIN_PROCESS_NAME)
 
 # The following variables are available to branding and application
 # configuration ($BRANDING/configure.sh and $APPLICATION/confvars.sh):
 # - MOZ_APP_VENDOR: Used for application.ini's "Vendor" field, which also
 # impacts profile location and user-visible fields.
 # - MOZ_APP_BASENAME: Typically stays consistent for multiple branded
 # versions of a given application (e.g. Aurora and Firefox both use
 # "Firefox"), but may vary for full rebrandings (e.g. Iceweasel). Used
--- a/python/mozbuild/mozbuild/artifacts.py
+++ b/python/mozbuild/mozbuild/artifacts.py
@@ -207,17 +207,17 @@ class LinuxArtifactJob(ArtifactJob):
 
     package_artifact_patterns = {
         'firefox/application.ini',
         'firefox/crashreporter',
         'firefox/dependentlibs.list',
         'firefox/firefox',
         'firefox/firefox-bin',
         'firefox/platform.ini',
-        'firefox/firefox-webcontent',
+        'firefox/plugin-container',
         'firefox/updater',
         'firefox/**/*.so',
         mozpath.join('firefox', buildconfig.substs.get('ICU_DATA_FILE')),
     }
 
     def process_package_artifact(self, filename, processed_filename):
         added_entry = False
 
@@ -288,17 +288,17 @@ class MacArtifactJob(ArtifactJob):
                 'libmozglue.dylib',
                 'libnss3.dylib',
                 'libnssckbi.dylib',
                 'libnssdbm3.dylib',
                 'libplugin_child_interpose.dylib',
                 # 'libreplace_jemalloc.dylib',
                 # 'libreplace_malloc.dylib',
                 'libsoftokn3.dylib',
-                'firefox-webcontent.app/Contents/MacOS/firefox-webcontent',
+                'plugin-container.app/Contents/MacOS/plugin-container',
                 'updater.app/Contents/MacOS/updater',
                 # 'xpcshell',
                 'XUL',
             ])
 
             # These get copied into dist/bin with the path, so "root/a/b/c" -> "dist/bin/a/b/c".
             paths_keep_path = ('Contents/Resources', [
                 'browser/components/libbrowsercomps.dylib',
--- a/testing/talos/talos/cmanager_win32.py
+++ b/testing/talos/talos/cmanager_win32.py
@@ -79,21 +79,19 @@ class _PDH_FMT_COUNTERVALUE(Structure):
                 ('union', _PDH_Counter_Union)]
 
 _PDH_FMT_LONG = 0x00000100
 
 
 class WinCounterManager(CounterManager):
 
     def __init__(self, process_name, process, counters,
-                 childProcess="firefox-webcontent",
-                 pluginProcess="firefox-plugin-container"):
+                 childProcess="plugin-container"):
         CounterManager.__init__(self)
         self.childProcess = childProcess
-        self.pluginProcess = pluginProcess
         self.registeredCounters = {}
         self.registerCounters(counters)
         # PDH might need to be "refreshed" if it has been queried while the
         # browser is closed
         pdh.PdhEnumObjectsA(None, None, 0, 1, 0, True)
 
         for counter in self.registeredCounters:
             try:
@@ -176,18 +174,16 @@ class WinCounterManager(CounterManager):
         # worry about removing invalid paths from the list, as
         # getCounterValue() will generate a value of 0 for those.
         hq = self.registeredCounters[counter][0]
         oldCounterListLength = len(self.registeredCounters[counter][1])
 
         pdh.PdhEnumObjectsA(None, None, 0, 1, 0, True)
 
         expandedPaths = _getExpandedCounterPaths(self.childProcess, counter)
-        expandedPaths.append(_getExpandedCounterPaths(self.pluginProcess,
-                                                      counter))
         if not expandedPaths:
             return
         for expandedPath in expandedPaths:
             alreadyInCounterList = False
             for singleCounter in self.registeredCounters[counter][1]:
                 if expandedPath == singleCounter[1]:
                     alreadyInCounterList = True
             if not alreadyInCounterList:
--- a/testing/talos/talos/config.py
+++ b/testing/talos/talos/config.py
@@ -409,17 +409,17 @@ def tests(config):
     config['tests'] = tests
 
 
 def get_browser_config(config):
     required = ('preferences', 'extensions', 'browser_path', 'browser_wait',
                 'extra_args', 'buildid', 'env', 'init_url', 'webserver')
     optional = {'bcontroller_config': '${talos}/bcontroller.json',
                 'branch_name': '',
-                'child_process': 'firefox-webcontent',
+                'child_process': 'plugin-container',
                 'develop': False,
                 'e10s': False,
                 'process': '',
                 'framework': 'talos',
                 'repository': None,
                 'sourcestamp': None,
                 'symbols_path': None,
                 'test_name_extension': '',
--- a/testing/talos/tests/test_talosconfig.py
+++ b/testing/talos/tests/test_talosconfig.py
@@ -2,17 +2,17 @@ from talos import talosconfig
 from talos.configuration import YAML
 import unittest
 import json
 
 
 #globals
 ffox_path = 'test/path/to/firefox'
 command_args = [ffox_path, '-profile', 'pathtoprofile', '-tp', 'pathtotpmanifest', '-tpchrome', '-tpmozafterpaint', '-tpnoisy', '-rss', '-tpcycles', '1', '-tppagecycles', '1']
-browser_config = {'deviceroot': '', 'dirs': {}, 'test_name_extension': '_paint', 'repository': 'http://hg.mozilla.org/releases/mozilla-release', 'buildid': '20131205075310', 'results_log': 'pathtoresults_log', 'symbols_path': None, 'bcontroller_config': 'pathtobcontroller', 'host': '', 'browser_name': 'Firefox', 'sourcestamp': '39faf812aaec', 'remote': False, 'child_process': 'firefox-webcontent', 'branch_name': '', 'browser_version': '26.0', 'extra_args': '', 'develop': True, 'preferences': {'browser.display.overlaynavbuttons': False, 'extensions.getAddons.get.url': 'http://127.0.0.1/extensions-dummy/repositoryGetURL', 'dom.max_chrome_script_run_time': 0, 'network.proxy.type': 1, 'extensions.update.background.url': 'http://127.0.0.1/extensions-dummy/updateBackgroundURL', 'network.proxy.http': 'localhost', 'plugins.update.url': 'http://127.0.0.1/plugins-dummy/updateCheckURL', 'dom.max_script_run_time': 0, 'extensions.update.enabled': False, 'browser.safebrowsing.keyURL': 'http://127.0.0.1/safebrowsing-dummy/newkey', 'media.navigator.permission.disabled': True, 'app.update.enabled': False, 'extensions.blocklist.url': 'http://127.0.0.1/extensions-dummy/blocklistURL', 'browser.EULA.override': True, 'extensions.checkCompatibility': False, 'talos.logfile': 'pathtofile', 'browser.safebrowsing.gethashURL': 'http://127.0.0.1/safebrowsing-dummy/gethash', 'extensions.hotfix.url': 'http://127.0.0.1/extensions-dummy/hotfixURL', 'dom.disable_window_move_resize': True, 'network.proxy.http_port': 80, 'browser.dom.window.dump.enabled': True, 'extensions.update.url': 'http://127.0.0.1/extensions-dummy/updateURL', 'browser.chrome.dynamictoolbar': False,  'browser.link.open_newwindow': 2, 'extensions.getAddons.search.url': 'http://127.0.0.1/extensions-dummy/repositorySearchURL', 'browser.cache.disk.smart_size.first_run': False, 'security.turn_off_all_security_so_that_viruses_can_take_over_this_computer': True, 'dom.disable_open_during_load': False, 'extensions.getAddons.search.browseURL': 'http://127.0.0.1/extensions-dummy/repositoryBrowseURL', 'browser.cache.disk.smart_size.enabled': False, 'extensions.getAddons.getWithPerformance.url': 'http://127.0.0.1/extensions-dummy/repositoryGetWithPerformanceURL', 'hangmonitor.timeout': 0, 'extensions.getAddons.maxResults': 0, 'dom.send_after_paint_to_content': True, 'security.fileuri.strict_origin_policy': False, 'media.capturestream_hints.enabled': True, 'extensions.update.notifyUser': False, 'extensions.blocklist.enabled': False, 'browser.bookmarks.max_backups': 0, 'browser.shell.checkDefaultBrowser': False, 'media.peerconnection.enabled': True, 'dom.disable_window_flip': True, 'security.enable_java': False, 'browser.warnOnQuit': False, 'media.navigator.enabled': True, 'browser.safebrowsing.updateURL': 'http://127.0.0.1/safebrowsing-dummy/update', 'dom.allow_scripts_to_close_windows': True, 'extensions.webservice.discoverURL': 'http://127.0.0.1/extensions-dummy/discoveryURL'}, 'test_timeout': 1200, 'title': 'qm-pxp01', 'error_filename': 'pathtoerrorfile', 'webserver': 'localhost:15707', 'browser_path':ffox_path, 'port': 20701, 'browser_log': 'browser_output.txt', 'process': 'firefox.exe', 'xperf_path': 'C:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe', 'extensions': ['pathtopageloader'], 'fennecIDs': '', 'env': {'NO_EM_RESTART': '1'}, 'init_url': 'http://localhost:15707/getInfo.html', 'browser_wait': 5}
+browser_config = {'deviceroot': '', 'dirs': {}, 'test_name_extension': '_paint', 'repository': 'http://hg.mozilla.org/releases/mozilla-release', 'buildid': '20131205075310', 'results_log': 'pathtoresults_log', 'symbols_path': None, 'bcontroller_config': 'pathtobcontroller', 'host': '', 'browser_name': 'Firefox', 'sourcestamp': '39faf812aaec', 'remote': False, 'child_process': 'plugin-container', 'branch_name': '', 'browser_version': '26.0', 'extra_args': '', 'develop': True, 'preferences': {'browser.display.overlaynavbuttons': False, 'extensions.getAddons.get.url': 'http://127.0.0.1/extensions-dummy/repositoryGetURL', 'dom.max_chrome_script_run_time': 0, 'network.proxy.type': 1, 'extensions.update.background.url': 'http://127.0.0.1/extensions-dummy/updateBackgroundURL', 'network.proxy.http': 'localhost', 'plugins.update.url': 'http://127.0.0.1/plugins-dummy/updateCheckURL', 'dom.max_script_run_time': 0, 'extensions.update.enabled': False, 'browser.safebrowsing.keyURL': 'http://127.0.0.1/safebrowsing-dummy/newkey', 'media.navigator.permission.disabled': True, 'app.update.enabled': False, 'extensions.blocklist.url': 'http://127.0.0.1/extensions-dummy/blocklistURL', 'browser.EULA.override': True, 'extensions.checkCompatibility': False, 'talos.logfile': 'pathtofile', 'browser.safebrowsing.gethashURL': 'http://127.0.0.1/safebrowsing-dummy/gethash', 'extensions.hotfix.url': 'http://127.0.0.1/extensions-dummy/hotfixURL', 'dom.disable_window_move_resize': True, 'network.proxy.http_port': 80, 'browser.dom.window.dump.enabled': True, 'extensions.update.url': 'http://127.0.0.1/extensions-dummy/updateURL', 'browser.chrome.dynamictoolbar': False,  'browser.link.open_newwindow': 2, 'extensions.getAddons.search.url': 'http://127.0.0.1/extensions-dummy/repositorySearchURL', 'browser.cache.disk.smart_size.first_run': False, 'security.turn_off_all_security_so_that_viruses_can_take_over_this_computer': True, 'dom.disable_open_during_load': False, 'extensions.getAddons.search.browseURL': 'http://127.0.0.1/extensions-dummy/repositoryBrowseURL', 'browser.cache.disk.smart_size.enabled': False, 'extensions.getAddons.getWithPerformance.url': 'http://127.0.0.1/extensions-dummy/repositoryGetWithPerformanceURL', 'hangmonitor.timeout': 0, 'extensions.getAddons.maxResults': 0, 'dom.send_after_paint_to_content': True, 'security.fileuri.strict_origin_policy': False, 'media.capturestream_hints.enabled': True, 'extensions.update.notifyUser': False, 'extensions.blocklist.enabled': False, 'browser.bookmarks.max_backups': 0, 'browser.shell.checkDefaultBrowser': False, 'media.peerconnection.enabled': True, 'dom.disable_window_flip': True, 'security.enable_java': False, 'browser.warnOnQuit': False, 'media.navigator.enabled': True, 'browser.safebrowsing.updateURL': 'http://127.0.0.1/safebrowsing-dummy/update', 'dom.allow_scripts_to_close_windows': True, 'extensions.webservice.discoverURL': 'http://127.0.0.1/extensions-dummy/discoveryURL'}, 'test_timeout': 1200, 'title': 'qm-pxp01', 'error_filename': 'pathtoerrorfile', 'webserver': 'localhost:15707', 'browser_path':ffox_path, 'port': 20701, 'browser_log': 'browser_output.txt', 'process': 'firefox.exe', 'xperf_path': 'C:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe', 'extensions': ['pathtopageloader'], 'fennecIDs': '', 'env': {'NO_EM_RESTART': '1'}, 'init_url': 'http://localhost:15707/getInfo.html', 'browser_wait': 5}
 test_config = {'remote_counters': [], 'filters': [['ignore_first', [5]], ['median', []]], 'xperf_user_providers': ['Mozilla Generic Provider', 'Microsoft-Windows-TCPIP'], 'tpcycles': 1, 'browser_log': 'browser_output.txt', 'shutdown': False, 'fennecIDs': False, 'responsiveness': False, 'tpmozafterpaint': True, 'cleanup': 'pathtofile', 'tprender': False, 'xperf_counters': ['main_startup_fileio', 'main_startup_netio', 'main_normal_fileio', 'main_normal_netio', 'nonmain_startup_fileio', 'nonmain_normal_fileio', 'nonmain_normal_netio', 'mainthread_readcount', 'mainthread_readbytes', 'mainthread_writecount', 'mainthread_writebytes'], 'mac_counters': [], 'tpnoisy': True, 'tppagecycles': 1, 'tploadaboutblank': False, 'xperf_providers': ['PROC_THREAD', 'LOADER', 'HARD_FAULTS', 'FILENAME', 'FILE_IO', 'FILE_IO_INIT'], 'rss': True, 'profile_path': 'path', 'name': 'tp5n', 'url': '-tp pathtotp5n.manifest -tpchrome -tpmozafterpaint -tpnoisy -rss -tpcycles 1 -tppagecycles 1', 'setup': 'pathtosetup', 'linux_counters': [], 'tpmanifest': 'pathtotp5n.manifest', 'w7_counters': [], 'timeout': 1800, 'xperf_stackwalk': ['FileCreate', 'FileRead', 'FileWrite', 'FileFlush', 'FileClose'], 'win_counters': [], 'cycles': 1, 'resolution': 20, 'tpchrome': True}
 
 
 class TestWriteConfig(unittest.TestCase):
     def test_writeConfigFile(self):
         obj = dict(some=123, thing='456', other=789)
 
         self.assertEquals(
@@ -45,17 +45,17 @@ class TalosConfigUnitTest(unittest.TestC
         browser_config_copy = browser_config.copy()
         test_config_copy = test_config.copy()
         test = talosconfig.generateTalosConfig(command_args, browser_config_copy, test_config_copy)
 
         # ensure that the output generated in yaml file is as expected or not.
         yaml = YAML()
         content = yaml.read(browser_config['bcontroller_config'])
         self.validate(content['command'],"test/path/to/firefox -profile pathtoprofile -tp pathtotpmanifest -tpchrome -tpmozafterpaint -tpnoisy -rss -tpcycles 1 -tppagecycles 1")
-        self.validate(content['child_process'],"firefox-webcontent")
+        self.validate(content['child_process'],"plugin-container")
         self.validate(content['process'],"firefox.exe")
         self.validate(content['browser_wait'],5)
         self.validate(content['test_timeout'],1200)
         self.validate(content['browser_log'],"browser_output.txt")
         self.validate(content['browser_path'],"test/path/to/firefox")
         self.validate(content['error_filename'],"pathtoerrorfile")
         self.validate(content['xperf_path'],"C:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe")
         self.validate(content['buildid'],20131205075310L)
--- a/toolkit/mozapps/installer/make-eme.mk
+++ b/toolkit/mozapps/installer/make-eme.mk
@@ -1,14 +1,14 @@
 # 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 $(MOZILLA_DIR)/toolkit/mozapps/installer/signing.mk
 
 ifdef MOZ_SIGN_CMD
   ifeq ($(OS_ARCH),WINNT)
-    # The argument to this macro is the directory where firefox-plugin-container.exe
+    # The argument to this macro is the directory where plugin-container.exe
     # exists, and where voucher.bin will be generated.
-    MAKE_SIGN_EME_VOUCHER = $(PYTHON) $(MOZILLA_DIR)/python/eme/gen-eme-voucher.py -input $(1)/firefox-plugin-container.exe -output $(1)/voucher.bin && \
+    MAKE_SIGN_EME_VOUCHER = $(PYTHON) $(MOZILLA_DIR)/python/eme/gen-eme-voucher.py -input $(1)/plugin-container.exe -output $(1)/voucher.bin && \
       $(MOZ_SIGN_CMD) -f emevoucher "$(1)/voucher.bin"
   endif
 endif
--- a/tools/power/mach_commands.py
+++ b/tools/power/mach_commands.py
@@ -72,17 +72,17 @@ class MachCommands(MachCommandBase):
         # When run with --show-process-coalition, |powermetrics| groups outputs
         # into process coalitions, each of which has a leader.
         #
         # For example, when Firefox runs from the dock, its coalition looks
         # like this:
         #
         #   org.mozilla.firefox
         #     firefox
-        #     firefox-webcontent
+        #     plugin-container
         #
         # When Safari runs from the dock:
         #
         #   com.apple.Safari
         #     Safari
         #     com.apple.WebKit.Networking
         #     com.apple.WebKit.WebContent
         #     com.apple.WebKit.WebContent
@@ -97,17 +97,17 @@ class MachCommands(MachCommandBase):
         # In these cases, we want to print the whole coalition.
         #
         # Also, when you run any of them from the command line, things are the
         # same except that the leader is com.apple.Terminal and there may be
         # non-browser processes in the coalition, e.g.:
         #
         #  com.apple.Terminal
         #    firefox
-        #    firefox-webcontent
+        #    plugin-container
         #    <and possibly other, non-browser processes>
         #
         # Also, the WindowServer and kernel coalitions and processes are often
         # relevant.
         #
         # We want to print all these but omit uninteresting coalitions. We
         # could do this by properly parsing powermetrics output, but it's
         # simpler and more robust to just grep for a handful of identifying
@@ -115,28 +115,28 @@ class MachCommands(MachCommandBase):
 
         print()  # blank line between |rapl| output and |powermetrics| output
 
         for line in lines.splitlines():
             # Search for the following things.
             #
             # - '^Name' is for the columns headings line.
             #
-            # - 'firefox' and 'firefox-webcontent' are for Firefox
+            # - 'firefox' and 'plugin-container' are for Firefox
             #
             # - 'Safari\b' and 'WebKit' are for Safari. The '\b' excludes
             #   SafariCloudHistoryPush, which is a process that always
             #   runs, even when Safari isn't open.
             #
             # - 'Chrome' is for Chrome.
             #
             # - 'Terminal' is for the terminal. If no browser is running from
             #   within the terminal, it will show up unnecessarily. This is a
             #   minor disadvantage of this very simple parsing strategy.
             #
             # - 'WindowServer' is for the WindowServer.
             #
             # - 'kernel' is for the kernel.
             #
-            if re.search(r'(^Name|firefox|firefox-plugin-container|firefox-webcontent|Safari\b|WebKit|Chrome|Terminal|WindowServer|kernel)', line):
+            if re.search(r'(^Name|firefox|plugin-container|Safari\b|WebKit|Chrome|Terminal|WindowServer|kernel)', line):
                 print(line)
 
         return 0