Bug 1156632 - Remove unused forward class declarations - patch 2 - dom/media, dom/indexedDB, dom/svg, r=ehsan
authorAndrea Marchesini <amarchesini@mozilla.com>
Wed, 22 Apr 2015 08:29:17 +0200
changeset 270303 29bf41172acdd5a120955f63983a6625dff84f5a
parent 270302 73917a03e7347846cbc9a9f5da14a4c50f04fcde
child 270304 7617f4ffb3145987ec717a29789ff5636889fbf8
push id4830
push userjlund@mozilla.com
push dateMon, 29 Jun 2015 20:18:48 +0000
treeherdermozilla-beta@4c2175bb0420 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersehsan
bugs1156632
milestone40.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
Bug 1156632 - Remove unused forward class declarations - patch 2 - dom/media, dom/indexedDB, dom/svg, r=ehsan
dom/indexedDB/ActorsChild.h
dom/indexedDB/ActorsParent.h
dom/indexedDB/IDBDatabase.h
dom/indexedDB/IDBObjectStore.h
dom/indexedDB/IDBRequest.h
dom/indexedDB/IDBTransaction.h
dom/indexedDB/IndexedDatabase.h
dom/indexedDB/IndexedDatabaseManager.h
dom/indexedDB/PermissionRequestBase.h
dom/media/AbstractMediaDecoder.h
dom/media/AudioSegment.h
dom/media/AudioSink.h
dom/media/AudioTrack.h
dom/media/DOMMediaStream.h
dom/media/EncodedBufferCache.h
dom/media/GraphDriver.h
dom/media/Latency.h
dom/media/MediaDecoderStateMachine.h
dom/media/MediaDeviceInfo.h
dom/media/MediaManager.h
dom/media/MediaShutdownManager.h
dom/media/MediaStreamGraph.h
dom/media/TextTrack.h
dom/media/android/AndroidMediaPluginHost.h
dom/media/android/AndroidMediaReader.h
dom/media/directshow/DirectShowReader.h
dom/media/directshow/SourceFilter.h
dom/media/eme/MediaKeySession.h
dom/media/encoder/fmp4_muxer/ISOMediaBoxes.h
dom/media/encoder/fmp4_muxer/ISOMediaWriter.h
dom/media/fmp4/PlatformDecoderModule.h
dom/media/gmp/GMPContentParent.h
dom/media/gmp/GMPParent.h
dom/media/imagecapture/ImageCapture.h
dom/media/mediasource/SourceBufferList.h
dom/media/omx/MediaOmxReader.h
dom/media/omx/OMXCodecProxy.h
dom/media/systemservices/LoadMonitor.h
dom/media/webaudio/AudioContext.h
dom/media/webaudio/blink/Reverb.h
dom/media/webm/WebMBufferedParser.h
dom/media/webrtc/MediaEngineDefault.h
dom/media/webspeech/recognition/SpeechRecognition.h
dom/media/wmf/WMFReader.h
dom/svg/SVGContentUtils.h
dom/svg/SVGFragmentIdentifier.h
dom/svg/SVGIRect.h
dom/svg/SVGSVGElement.h
dom/svg/SVGTextPositioningElement.h
dom/svg/nsISVGPoint.h
dom/svg/nsSVGBoolean.h
dom/svg/nsSVGElement.h
dom/svg/nsSVGFilters.h
dom/svg/nsSVGPathGeometryElement.h
dom/system/gonk/AutoMounterSetting.h
dom/system/gonk/MozMtpServer.h
dom/system/gonk/nsVolume.h
dom/system/gonk/nsVolumeService.h
dom/workers/DataStore.h
dom/workers/DataStoreCursor.h
dom/workers/FileReaderSync.h
dom/workers/RuntimeService.h
dom/workers/ScriptLoader.h
dom/workers/ServiceWorker.h
dom/workers/ServiceWorkerManager.h
dom/workers/ServiceWorkerRegistrar.h
dom/workers/URL.h
--- a/dom/indexedDB/ActorsChild.h
+++ b/dom/indexedDB/ActorsChild.h
@@ -37,17 +37,16 @@ namespace indexedDB {
 class FileInfo;
 class IDBCursor;
 class IDBDatabase;
 class IDBFactory;
 class IDBMutableFile;
 class IDBOpenDBRequest;
 class IDBRequest;
 class Key;
-class PBackgroundIDBFileChild;
 class PermissionRequestChild;
 class PermissionRequestParent;
 class SerializedStructuredCloneReadInfo;
 
 class ThreadLocal
 {
   friend class nsAutoPtr<ThreadLocal>;
   friend class IDBFactory;
--- a/dom/indexedDB/ActorsParent.h
+++ b/dom/indexedDB/ActorsParent.h
@@ -1,26 +1,22 @@
 /* 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 mozilla_dom_indexeddb_actorsparent_h__
 #define mozilla_dom_indexeddb_actorsparent_h__
 
 template <class> struct already_AddRefed;
-class nsCString;
-struct nsID;
 class nsIPrincipal;
-class nsPIDOMWindow;
 
 namespace mozilla {
 namespace dom {
 
 class Element;
-class TabParent;
 
 namespace quota {
 
 class Client;
 
 } // namespace quota
 
 namespace indexedDB {
--- a/dom/indexedDB/IDBDatabase.h
+++ b/dom/indexedDB/IDBDatabase.h
@@ -14,17 +14,16 @@
 #include "mozilla/dom/quota/PersistenceType.h"
 #include "nsAutoPtr.h"
 #include "nsDataHashtable.h"
 #include "nsHashKeys.h"
 #include "nsString.h"
 #include "nsTHashtable.h"
 
 class nsIDocument;
-class nsIWeakReference;
 class nsPIDOMWindow;
 
 namespace mozilla {
 
 class ErrorResult;
 class EventChainPostVisitor;
 
 namespace dom {
--- a/dom/indexedDB/IDBObjectStore.h
+++ b/dom/indexedDB/IDBObjectStore.h
@@ -22,31 +22,27 @@ class nsPIDOMWindow;
 
 namespace mozilla {
 
 class ErrorResult;
 
 namespace dom {
 
 class DOMStringList;
-class nsIContentParent;
 template <typename> class Sequence;
 
 namespace indexedDB {
 
-class FileManager;
 class IDBCursor;
-class IDBKeyRange;
 class IDBRequest;
 class IDBTransaction;
 class IndexUpdateInfo;
 class Key;
 class KeyPath;
 class ObjectStoreSpec;
-struct StructuredCloneFile;
 struct StructuredCloneReadInfo;
 
 class IDBObjectStore final
   : public nsISupports
   , public nsWrapperCache
 {
   // For AddOrPut() and DeleteInternal().
   friend class IDBCursor; 
--- a/dom/indexedDB/IDBRequest.h
+++ b/dom/indexedDB/IDBRequest.h
@@ -23,17 +23,16 @@ struct PRThread;
 
 namespace mozilla {
 
 class ErrorResult;
 
 namespace dom {
 
 class DOMError;
-struct ErrorEventInit;
 template <typename> struct Nullable;
 class OwningIDBObjectStoreOrIDBIndexOrIDBCursor;
 
 namespace indexedDB {
 
 class IDBCursor;
 class IDBDatabase;
 class IDBFactory;
--- a/dom/indexedDB/IDBTransaction.h
+++ b/dom/indexedDB/IDBTransaction.h
@@ -22,32 +22,30 @@ namespace mozilla {
 
 class ErrorResult;
 class EventChainPreVisitor;
 
 namespace dom {
 
 class DOMError;
 class DOMStringList;
-class PBlobChild;
 
 namespace indexedDB {
 
 class BackgroundCursorChild;
 class BackgroundRequestChild;
 class BackgroundTransactionChild;
 class BackgroundVersionChangeTransactionChild;
 class IDBDatabase;
 class IDBObjectStore;
 class IDBOpenDBRequest;
 class IDBRequest;
 class IndexMetadata;
 class ObjectStoreSpec;
 class OpenCursorParams;
-class PBackgroundIDBDatabaseFileChild;
 class RequestParams;
 
 class IDBTransaction final
   : public IDBWrapperCache
   , public nsIRunnable
 {
   friend class BackgroundCursorChild;
   friend class BackgroundRequestChild;
--- a/dom/indexedDB/IndexedDatabase.h
+++ b/dom/indexedDB/IndexedDatabase.h
@@ -7,30 +7,26 @@
 #ifndef mozilla_dom_indexeddb_indexeddatabase_h__
 #define mozilla_dom_indexeddb_indexeddatabase_h__
 
 #include "js/StructuredClone.h"
 #include "nsAutoPtr.h"
 #include "nsCOMPtr.h"
 #include "nsTArray.h"
 
-class nsIInputStream;
-
 namespace mozilla {
 namespace dom {
 
 class File;
 
 namespace indexedDB {
 
 class FileInfo;
 class IDBDatabase;
-class IDBTransaction;
 class SerializedStructuredCloneReadInfo;
-class SerializedStructuredCloneWriteInfo;
 
 struct StructuredCloneFile
 {
   nsRefPtr<File> mFile;
   nsRefPtr<FileInfo> mFileInfo;
 
   // In IndexedDatabaseInlines.h
   inline
--- a/dom/indexedDB/IndexedDatabaseManager.h
+++ b/dom/indexedDB/IndexedDatabaseManager.h
@@ -11,22 +11,20 @@
 
 #include "js/TypeDecls.h"
 #include "mozilla/Atomics.h"
 #include "mozilla/dom/quota/PersistenceType.h"
 #include "mozilla/Mutex.h"
 #include "nsClassHashtable.h"
 #include "nsHashKeys.h"
 
-class nsPIDOMWindow;
 struct PRLogModuleInfo;
 
 namespace mozilla {
 
-class DOMEventTargetHelper;
 class EventChainPostVisitor;
 
 namespace dom {
 
 class TabContext;
 
 namespace indexedDB {
 
--- a/dom/indexedDB/PermissionRequestBase.h
+++ b/dom/indexedDB/PermissionRequestBase.h
@@ -9,17 +9,16 @@
 #include "nsCOMPtr.h"
 #include "nsIInterfaceRequestor.h"
 #include "nsIObserver.h"
 #include "nsIPermissionManager.h"
 #include "nsISupportsImpl.h"
 #include "nsString.h"
 
 class nsIPrincipal;
-class nsPIDOMWindow;
 
 namespace mozilla {
 namespace dom {
 
 class Element;
 
 namespace indexedDB {
 
--- a/dom/media/AbstractMediaDecoder.h
+++ b/dom/media/AbstractMediaDecoder.h
@@ -18,17 +18,16 @@ namespace mozilla
 
 namespace layers
 {
   class ImageContainer;
 }
 class MediaResource;
 class ReentrantMonitor;
 class VideoFrameContainer;
-class TimedMetadata;
 class MediaDecoderOwner;
 #ifdef MOZ_EME
 class CDMProxy;
 #endif
 
 typedef nsDataHashtable<nsCStringHashKey, nsCString> MetadataTags;
 
 static inline bool IsCurrentThread(nsIThread* aThread) {
--- a/dom/media/AudioSegment.h
+++ b/dom/media/AudioSegment.h
@@ -38,17 +38,16 @@ public:
   virtual size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override
   {
     return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
   }
 
   nsTArray<nsTArray<T> > mBuffers;
 };
 
-class AudioStream;
 class AudioMixer;
 
 /**
  * For auto-arrays etc, guess this as the common number of channels.
  */
 const int GUESS_AUDIO_CHANNELS = 2;
 
 // We ensure that the graph advances in steps that are multiples of the Web
--- a/dom/media/AudioSink.h
+++ b/dom/media/AudioSink.h
@@ -7,17 +7,16 @@
 #define AudioSink_h__
 
 #include "nsISupportsImpl.h"
 #include "MediaDecoderReader.h"
 #include "mozilla/dom/AudioChannelBinding.h"
 
 namespace mozilla {
 
-class AudioAvailableEventManager;
 class AudioStream;
 class MediaDecoderStateMachine;
 
 class AudioSink {
 public:
   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(AudioSink)
 
   AudioSink(MediaDecoderStateMachine* aStateMachine,
--- a/dom/media/AudioTrack.h
+++ b/dom/media/AudioTrack.h
@@ -7,18 +7,16 @@
 #ifndef mozilla_dom_AudioTrack_h
 #define mozilla_dom_AudioTrack_h
 
 #include "MediaTrack.h"
 
 namespace mozilla {
 namespace dom {
 
-class AudioTrackList;
-
 class AudioTrack : public MediaTrack
 {
 public:
   AudioTrack(const nsAString& aId,
              const nsAString& aKind,
              const nsAString& aLabel,
              const nsAString& aLanguage,
              bool aEnabled);
--- a/dom/media/DOMMediaStream.h
+++ b/dom/media/DOMMediaStream.h
@@ -10,18 +10,16 @@
 #include "nsWrapperCache.h"
 #include "StreamBuffer.h"
 #include "nsIDOMWindow.h"
 #include "nsIPrincipal.h"
 #include "mozilla/PeerIdentity.h"
 #include "mozilla/DOMEventTargetHelper.h"
 #include "mozilla/CORSMode.h"
 
-class nsXPCClassInfo;
-
 // GetCurrentTime is defined in winbase.h as zero argument macro forwarding to
 // GetTickCount() and conflicts with NS_DECL_NSIDOMMEDIASTREAM, containing
 // currentTime getter.
 #ifdef GetCurrentTime
 #undef GetCurrentTime
 #endif
 // X11 has a #define for CurrentTime. Unbelievable :-(.
 // See dom/media/webaudio/AudioContext.h for more fun!
--- a/dom/media/EncodedBufferCache.h
+++ b/dom/media/EncodedBufferCache.h
@@ -7,25 +7,23 @@
 #ifndef EncodedBufferCache_h_
 #define EncodedBufferCache_h_
 
 #include "nsCOMPtr.h"
 #include "nsTArray.h"
 #include "mozilla/Mutex.h"
 
 struct PRFileDesc;
-class nsIDOMBlob;
 
 namespace mozilla {
 
 namespace dom {
 class File;
 }
 
-class ReentrantMonitor;
 /**
  * Data is moved into a temporary file when it grows beyond
  * the maximal size passed in the Init function.
  * The AppendBuffer and ExtractBlob methods are thread-safe and can be called on
  * different threads at the same time.
  */
 class EncodedBufferCache
 {
--- a/dom/media/GraphDriver.h
+++ b/dom/media/GraphDriver.h
@@ -55,17 +55,16 @@ static const int AUDIO_TARGET_MS = 2*MED
  * near the end of the iteration of the control loop. The maximum delay
  * to the setting of the next video frame is 2*MEDIA_GRAPH_TARGET_PERIOD_MS +
  * SCHEDULE_SAFETY_MARGIN_MS. This is not optimal yet.
  */
 static const int VIDEO_TARGET_MS = 2*MEDIA_GRAPH_TARGET_PERIOD_MS +
     SCHEDULE_SAFETY_MARGIN_MS;
 
 class MediaStreamGraphImpl;
-class MessageBlock;
 
 /**
  * Microseconds relative to the start of the graph timeline.
  */
 typedef int64_t GraphTime;
 const GraphTime GRAPH_TIME_MAX = MEDIA_TIME_MAX;
 
 class AudioCallbackDriver;
--- a/dom/media/Latency.h
+++ b/dom/media/Latency.h
@@ -11,17 +11,16 @@
 #include "prlog.h"
 #include "nsCOMPtr.h"
 #include "nsIThread.h"
 #include "mozilla/Monitor.h"
 #include "nsISupportsImpl.h"
 #include "nsIObserver.h"
 
 class AsyncLatencyLogger;
-class LogEvent;
 
 PRLogModuleInfo* GetLatencyLog();
 
 // This class is a singleton. It is refcounted.
 class AsyncLatencyLogger : public nsIObserver
 {
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIOBSERVER
--- a/dom/media/MediaDecoderStateMachine.h
+++ b/dom/media/MediaDecoderStateMachine.h
@@ -87,26 +87,21 @@ hardware (via AudioStream).
 #include "MediaDecoder.h"
 #include "mozilla/ReentrantMonitor.h"
 #include "MediaDecoderReader.h"
 #include "MediaDecoderOwner.h"
 #include "MediaMetadataManager.h"
 #include "mozilla/RollingMean.h"
 #include "MediaTimer.h"
 
-class nsITimer;
-
 namespace mozilla {
 
 class AudioSegment;
-class VideoSegment;
 class MediaTaskQueue;
-class SharedThreadPool;
 class AudioSink;
-class MediaDecoderStateMachineScheduler;
 
 // GetCurrentTime is defined in winbase.h as zero argument macro forwarding to
 // GetTickCount() and conflicts with MediaDecoderStateMachine::GetCurrentTime
 // implementation.
 #ifdef GetCurrentTime
 #undef GetCurrentTime
 #endif
 
--- a/dom/media/MediaDeviceInfo.h
+++ b/dom/media/MediaDeviceInfo.h
@@ -9,19 +9,16 @@
 #include "nsISupportsImpl.h"
 #include "mozilla/dom/BindingUtils.h"
 #include "MediaDeviceInfoBinding.h"
 #include "nsPIDOMWindow.h"
 
 namespace mozilla {
 namespace dom {
 
-class Promise;
-struct MediaStreamConstraints;
-
 #define MOZILLA_DOM_MEDIADEVICEINFO_IMPLEMENTATION_IID \
 {0x25091870, 0x84d6, 0x4acf, {0xaf, 0x97, 0x6e, 0xd5, 0x5b, 0xe0, 0x47, 0xb2}}
 
 class MediaDeviceInfo final : public nsISupports, public nsWrapperCache
 {
 public:
   explicit MediaDeviceInfo(const nsAString& aDeviceId,
                            MediaDeviceKind aKind,
--- a/dom/media/MediaManager.h
+++ b/dom/media/MediaManager.h
@@ -40,18 +40,16 @@
 
 #ifdef MOZ_WIDGET_GONK
 #include "DOMCameraManager.h"
 #endif
 
 namespace mozilla {
 namespace dom {
 struct MediaStreamConstraints;
-class NavigatorUserMediaSuccessCallback;
-class NavigatorUserMediaErrorCallback;
 struct MediaTrackConstraintSet;
 }
 
 #ifdef PR_LOGGING
 extern PRLogModuleInfo* GetMediaManagerLog();
 #define MM_LOG(msg) PR_LOG(GetMediaManagerLog(), PR_LOG_DEBUG, msg)
 #else
 #define MM_LOG(msg)
--- a/dom/media/MediaShutdownManager.h
+++ b/dom/media/MediaShutdownManager.h
@@ -14,17 +14,16 @@
 #include "nsIThread.h"
 #include "nsCOMPtr.h"
 #include "nsTHashtable.h"
 #include "nsHashKeys.h"
 
 namespace mozilla {
 
 class MediaDecoder;
-class StateMachineThread;
 
 // The MediaShutdownManager manages shutting down the MediaDecoder
 // infrastructure in response to an xpcom-shutdown notification. This happens
 // when Gecko is shutting down in the middle of operation. This is tricky, as
 // there are a number of moving parts that must be shutdown in a particular
 // order. Additionally the xpcom-shutdown observer *must* block until all
 // threads are shutdown, which is tricky since we have a number of threads
 // here and their shutdown is asynchronous. We can't have each element of
--- a/dom/media/MediaStreamGraph.h
+++ b/dom/media/MediaStreamGraph.h
@@ -243,17 +243,16 @@ struct AudioNodeSizes
 
 class MediaStreamGraphImpl;
 class SourceMediaStream;
 class ProcessedMediaStream;
 class MediaInputPort;
 class AudioNodeEngine;
 class AudioNodeExternalInputStream;
 class AudioNodeStream;
-struct AudioChunk;
 class CameraPreviewMediaStream;
 
 /**
  * A stream of synchronized audio and video data. All (not blocked) streams
  * progress at the same rate --- "real time". Streams cannot seek. The only
  * operation readers can perform on a stream is to read the next data.
  *
  * Consumers of a stream can be reading from it at different offsets, but that
--- a/dom/media/TextTrack.h
+++ b/dom/media/TextTrack.h
@@ -14,17 +14,16 @@
 #include "nsString.h"
 
 namespace mozilla {
 namespace dom {
 
 class TextTrackList;
 class TextTrackCue;
 class TextTrackCueList;
-class TextTrackRegion;
 class HTMLTrackElement;
 
 enum TextTrackSource {
   Track,
   AddTextTrack,
   MediaResourceSpecific
 };
 
--- a/dom/media/android/AndroidMediaPluginHost.h
+++ b/dom/media/android/AndroidMediaPluginHost.h
@@ -8,18 +8,16 @@
 
 #include "nsTArray.h"
 #include "MediaResource.h"
 #include "MPAPI.h"
 #include "AndroidMediaResourceServer.h"
 
 namespace mozilla {
 
-class AndroidMediaReader;
-
 class AndroidMediaPluginHost {
   nsRefPtr<AndroidMediaResourceServer> mResourceServer;
   nsTArray<MPAPI::Manifest *> mPlugins;
 
   MPAPI::Manifest *FindPlugin(const nsACString& aMimeType);
 public:
   AndroidMediaPluginHost();
   ~AndroidMediaPluginHost();
--- a/dom/media/android/AndroidMediaReader.h
+++ b/dom/media/android/AndroidMediaReader.h
@@ -20,20 +20,16 @@ class nsACString;
 namespace mozilla {
 
 class AbstractMediaDecoder;
 
 namespace layers {
 class ImageContainer;
 }
 
-namespace dom {
-class TimeRanges;
-}
- 
 class AndroidMediaReader : public MediaDecoderReader
 {
   nsCString mType;
   MPAPI::Decoder *mPlugin;
   bool mHasAudio;
   bool mHasVideo;
   nsIntRect mPicture;
   nsIntSize mInitialFrame;
--- a/dom/media/directshow/DirectShowReader.h
+++ b/dom/media/directshow/DirectShowReader.h
@@ -10,27 +10,22 @@
 #include "windows.h" // HRESULT, DWORD
 #include "MediaDecoderReader.h"
 #include "mozilla/RefPtr.h"
 #include "MP3FrameParser.h"
 
 struct IGraphBuilder;
 struct IMediaControl;
 struct IMediaSeeking;
-struct IMediaEventEx;
 
 namespace mozilla {
 
 class AudioSinkFilter;
 class SourceFilter;
 
-namespace dom {
-class TimeRanges;
-}
-
 // Decoder backend for decoding MP3 using DirectShow. DirectShow operates as
 // a filter graph. The basic design of the DirectShowReader is that we have
 // a SourceFilter that wraps the MediaResource that connects to the
 // MP3 decoder filter. The MP3 decoder filter "pulls" data as it requires it
 // downstream on its own thread. When the MP3 decoder has produced a block of
 // decoded samples, its thread calls downstream into our AudioSinkFilter,
 // passing the decoded buffer in. The AudioSinkFilter inserts the samples into
 // a SampleSink object. The SampleSink blocks the MP3 decoder's thread until
--- a/dom/media/directshow/SourceFilter.h
+++ b/dom/media/directshow/SourceFilter.h
@@ -14,17 +14,16 @@
 #include "nsDeque.h"
 #include "nsAutoPtr.h"
 #include "DirectShowUtils.h"
 #include "mozilla/RefPtr.h"
 
 namespace mozilla {
 
 class MediaResource;
-class ReadRequest;
 class OutputPin;
 
 
 // SourceFilter is an asynchronous DirectShow source filter which
 // reads from an MediaResource, and supplies data via a pull model downstream
 // using OutputPin. It us used to supply a generic byte stream into
 // DirectShow.
 //
--- a/dom/media/eme/MediaKeySession.h
+++ b/dom/media/eme/MediaKeySession.h
@@ -18,19 +18,16 @@
 #include "mozilla/dom/Promise.h"
 #include "mozilla/dom/MediaKeySessionBinding.h"
 #include "mozilla/dom/MediaKeysBinding.h"
 #include "mozilla/dom/MediaKeyMessageEventBinding.h"
 
 struct JSContext;
 
 namespace mozilla {
-
-class CDMProxy;
-
 namespace dom {
 
 class ArrayBufferViewOrArrayBuffer;
 class MediaKeyError;
 class MediaKeyStatusMap;
 
 class MediaKeySession final : public DOMEventTargetHelper
 {
--- a/dom/media/encoder/fmp4_muxer/ISOMediaBoxes.h
+++ b/dom/media/encoder/fmp4_muxer/ISOMediaBoxes.h
@@ -23,17 +23,16 @@ namespace mozilla {
 /**
  * track type from spec 8.4.3.3
  */
 #define Audio_Track 0x01
 #define Video_Track 0x02
 
 class AudioTrackMetadata;
 class VideoTrackMetadata;
-class ES_Descriptor;
 class ISOControl;
 
 /**
  * This is the base class for all ISO media format boxes.
  * It provides the fields of box type(four CC) and size.
  * The data members in the beginning of a Box (or its descendants)
  * are the 14496-12 defined member. Other members prefix with 'm'
  * are private control data.
--- a/dom/media/encoder/fmp4_muxer/ISOMediaWriter.h
+++ b/dom/media/encoder/fmp4_muxer/ISOMediaWriter.h
@@ -8,17 +8,16 @@
 
 #include "ContainerWriter.h"
 #include "nsIRunnable.h"
 
 namespace mozilla {
 
 class ISOControl;
 class FragmentBuffer;
-class ISOMediaWriterRunnable;
 
 class ISOMediaWriter : public ContainerWriter
 {
 public:
   // Generate an fragmented MP4 stream, ISO/IEC 14496-12.
   // Brand names in 'ftyp' box are 'isom' and 'mp42'.
   const static uint32_t TYPE_FRAG_MP4 = 1 << 0;
 
--- a/dom/media/fmp4/PlatformDecoderModule.h
+++ b/dom/media/fmp4/PlatformDecoderModule.h
@@ -8,32 +8,28 @@
 #define PlatformDecoderModule_h_
 
 #include "MediaDecoderReader.h"
 #include "mozilla/layers/LayersTypes.h"
 #include "nsTArray.h"
 #include "mozilla/RefPtr.h"
 #include <queue>
 
-class nsIThreadPool;
-
 namespace mozilla {
 class TrackInfo;
 class AudioInfo;
 class VideoInfo;
 class MediaRawData;
-class MediaByteBuffer;
 
 namespace layers {
 class ImageContainer;
 }
 
 class MediaDataDecoder;
 class MediaDataDecoderCallback;
-class MediaInputQueue;
 class FlushableMediaTaskQueue;
 class CDMProxy;
 typedef int64_t Microseconds;
 
 // The PlatformDecoderModule interface is used by the MP4Reader to abstract
 // access to the H264 and Audio (AAC/MP3) decoders provided by various platforms.
 // It may be extended to support other codecs in future. Each platform (Windows,
 // MacOSX, Linux, B2G etc) must implement a PlatformDecoderModule to provide
--- a/dom/media/gmp/GMPContentParent.h
+++ b/dom/media/gmp/GMPContentParent.h
@@ -4,24 +4,20 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef GMPContentParent_h_
 #define GMPContentParent_h_
 
 #include "mozilla/gmp/PGMPContentParent.h"
 #include "nsISupportsImpl.h"
 
-class nsITimer;
-
 namespace mozilla {
 namespace gmp {
 
-class GeckoMediaPluginService;
 class GMPAudioDecoderParent;
-class GMPCapability;
 class GMPDecryptorParent;
 class GMPParent;
 class GMPVideoDecoderParent;
 class GMPVideoEncoderParent;
 
 class GMPContentParent final : public PGMPContentParent,
                                public GMPSharedMem
 {
--- a/dom/media/gmp/GMPParent.h
+++ b/dom/media/gmp/GMPParent.h
@@ -18,17 +18,16 @@
 #include "nsCOMPtr.h"
 #include "nscore.h"
 #include "nsISupports.h"
 #include "nsString.h"
 #include "nsTArray.h"
 #include "nsIFile.h"
 #include "ThreadSafeRefcountingWithMainThreadDestruction.h"
 
-class nsILineInputStream;
 class nsIThread;
 
 #ifdef MOZ_CRASHREPORTER
 #include "nsExceptionHandler.h"
 
 namespace mozilla {
 namespace dom {
 class PCrashReporterParent;
--- a/dom/media/imagecapture/ImageCapture.h
+++ b/dom/media/imagecapture/ImageCapture.h
@@ -6,18 +6,16 @@
 
 #ifndef IMAGECAPTURE_H
 #define IMAGECAPTURE_H
 
 #include "mozilla/DOMEventTargetHelper.h"
 #include "mozilla/dom/ImageCaptureBinding.h"
 #include "prlog.h"
 
-class nsIDOMBlob;
-
 namespace mozilla {
 
 #ifdef PR_LOGGING
 
 #ifndef IC_LOG
 PRLogModuleInfo* GetICLog();
 #define IC_LOG(...) PR_LOG(GetICLog(), PR_LOG_DEBUG, (__VA_ARGS__))
 #endif
--- a/dom/media/mediasource/SourceBufferList.h
+++ b/dom/media/mediasource/SourceBufferList.h
@@ -17,17 +17,16 @@
 #include "nsISupports.h"
 #include "nsTArray.h"
 
 struct JSContext;
 class JSObject;
 
 namespace mozilla {
 
-class ErrorResult;
 template <typename T> class AsyncEventRunner;
 
 namespace dom {
 
 class MediaSource;
 
 class SourceBufferList final : public DOMEventTargetHelper
 {
--- a/dom/media/omx/MediaOmxReader.h
+++ b/dom/media/omx/MediaOmxReader.h
@@ -17,20 +17,16 @@
 
 namespace android {
 class OmxDecoder;
 class MOZ_EXPORT MediaExtractor;
 }
 
 namespace mozilla {
 
-namespace dom {
-  class TimeRanges;
-}
-
 class AbstractMediaDecoder;
 
 class MediaOmxReader : public MediaOmxCommonReader
 {
   // This mutex is held when accessing the mIsShutdown variable, which is
   // modified on the decode task queue and read on main and IO threads.
   Mutex mShutdownMutex;
   nsCString mType;
--- a/dom/media/omx/OMXCodecProxy.h
+++ b/dom/media/omx/OMXCodecProxy.h
@@ -12,17 +12,16 @@
 #include <stagefright/MediaBuffer.h>
 #include <stagefright/MediaSource.h>
 #include <utils/threads.h>
 
 #include "MediaResourceManagerClient.h"
 
 namespace android {
 
-struct MediaBufferGroup;
 struct MetaData;
 
 class OMXCodecProxy : public MediaSource,
                       public MediaResourceManagerClient::EventListener
 {
 public:
   struct EventListener : public virtual RefBase {
     virtual void statusChanged() = 0;
--- a/dom/media/systemservices/LoadMonitor.h
+++ b/dom/media/systemservices/LoadMonitor.h
@@ -11,17 +11,16 @@
 #include "mozilla/RefPtr.h"
 #include "mozilla/Atomics.h"
 #include "nsAutoPtr.h"
 #include "nsCOMPtr.h"
 #include "nsIThread.h"
 #include "nsIObserver.h"
 
 namespace mozilla {
-class LoadInfoUpdateRunner;
 class LoadInfoCollectRunner;
 
 class LoadNotificationCallback
 {
 public:
     virtual void LoadChanged(float aSystemLoad, float aProcessLoad) = 0;
 };
 
--- a/dom/media/webaudio/AudioContext.h
+++ b/dom/media/webaudio/AudioContext.h
@@ -30,17 +30,16 @@
 class nsPIDOMWindow;
 
 namespace mozilla {
 
 class DOMMediaStream;
 class ErrorResult;
 class MediaStream;
 class MediaStreamGraph;
-class AudioNodeEngine;
 class AudioNodeStream;
 
 namespace dom {
 
 enum class AudioContextState : uint32_t;
 class AnalyserNode;
 class AudioBuffer;
 class AudioBufferSourceNode;
--- a/dom/media/webaudio/blink/Reverb.h
+++ b/dom/media/webaudio/blink/Reverb.h
@@ -36,19 +36,16 @@
 #include "mozilla/MemoryReporting.h"
 
 namespace mozilla {
 class ThreadSharedFloatArrayBufferList;
 }
 
 namespace WebCore {
 
-class DirectConvolver;
-class FFTConvolver;
-
 // Multi-channel convolution reverb with channel matrixing - one or more ReverbConvolver objects are used internally.
 
 class Reverb {
 public:
     enum { MaxFrameSize = 256 };
 
     // renderSliceSize is a rendering hint, so the FFTs can be optimized to not all occur at the same time (very bad when rendering on a real-time thread).
     Reverb(mozilla::ThreadSharedFloatArrayBufferList* impulseResponseBuffer, size_t impulseResponseBufferLength, size_t renderSliceSize, size_t maxFFTSize, size_t numberOfChannels, bool useBackgroundThreads, bool normalize, float sampleRate);
--- a/dom/media/webm/WebMBufferedParser.h
+++ b/dom/media/webm/WebMBufferedParser.h
@@ -7,20 +7,16 @@
 #define WebMBufferedParser_h_
 
 #include "nsISupportsImpl.h"
 #include "nsTArray.h"
 #include "mozilla/ReentrantMonitor.h"
 
 namespace mozilla {
 
-namespace dom {
-class TimeRanges;
-}
-
 // Stores a stream byte offset and the scaled timecode of the block at
 // that offset.
 struct WebMTimeDataOffset
 {
   WebMTimeDataOffset(int64_t aEndOffset, uint64_t aTimecode, int64_t aSyncOffset)
     : mEndOffset(aEndOffset), mSyncOffset(aSyncOffset), mTimecode(aTimecode)
   {}
 
--- a/dom/media/webrtc/MediaEngineDefault.h
+++ b/dom/media/webrtc/MediaEngineDefault.h
@@ -18,17 +18,16 @@
 #include "AudioSegment.h"
 #include "StreamBuffer.h"
 #include "MediaStreamGraph.h"
 
 namespace mozilla {
 
 namespace layers {
 class ImageContainer;
-class PlanarYCbCrImage;
 }
 
 class MediaEngineDefault;
 
 /**
  * The default implementation of the MediaEngine interface.
  */
 class MediaEngineDefaultVideoSource : public nsITimerCallback,
--- a/dom/media/webspeech/recognition/SpeechRecognition.h
+++ b/dom/media/webspeech/recognition/SpeechRecognition.h
@@ -26,18 +26,16 @@
 #include "SpeechGrammarList.h"
 #include "SpeechRecognitionResultList.h"
 #include "SpeechStreamListener.h"
 #include "nsISpeechRecognitionService.h"
 #include "endpointer.h"
 
 #include "mozilla/dom/SpeechRecognitionError.h"
 
-class nsIDOMWindow;
-
 namespace mozilla {
 
 namespace dom {
 
 #define TEST_PREFERENCE_ENABLE "media.webspeech.test.enable"
 #define TEST_PREFERENCE_FAKE_FSM_EVENTS "media.webspeech.test.fake_fsm_events"
 #define TEST_PREFERENCE_FAKE_RECOGNITION_SERVICE "media.webspeech.test.fake_recognition_service"
 #define SPEECH_RECOGNITION_TEST_EVENT_REQUEST_TOPIC "SpeechRecognitionTest:RequestEvent"
--- a/dom/media/wmf/WMFReader.h
+++ b/dom/media/wmf/WMFReader.h
@@ -13,20 +13,16 @@
 #include "nsRect.h"
 
 namespace mozilla {
 
 class WMFByteStream;
 class WMFSourceReaderCallback;
 class DXVA2Manager;
 
-namespace dom {
-class TimeRanges;
-}
-
 // Decoder backend for reading H.264/AAC in MP4/M4A, and MP3 files using
 // Windows Media Foundation.
 class WMFReader : public MediaDecoderReader
 {
 public:
   WMFReader(AbstractMediaDecoder* aDecoder);
 
   virtual ~WMFReader();
--- a/dom/svg/SVGContentUtils.h
+++ b/dom/svg/SVGContentUtils.h
@@ -16,17 +16,16 @@
 #include "nsError.h"
 #include "nsStringFwd.h"
 #include "gfx2DGlue.h"
 
 class gfxTextContextPaint;
 class nsIContent;
 class nsIDocument;
 class nsIFrame;
-class nsPresContext;
 class nsStyleContext;
 class nsStyleCoord;
 class nsSVGElement;
 
 namespace mozilla {
 class SVGAnimatedPreserveAspectRatio;
 class SVGPreserveAspectRatio;
 namespace dom {
--- a/dom/svg/SVGFragmentIdentifier.h
+++ b/dom/svg/SVGFragmentIdentifier.h
@@ -4,17 +4,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef MOZILLA_SVGFRAGMENTIDENTIFIER_H__
 #define MOZILLA_SVGFRAGMENTIDENTIFIER_H__
 
 #include "nsString.h"
 
 class nsIDocument;
-class nsSVGViewElement;
 
 namespace mozilla {
 
 namespace dom {
 class SVGSVGElement;
 }
 
 /**
--- a/dom/svg/SVGIRect.h
+++ b/dom/svg/SVGIRect.h
@@ -8,17 +8,16 @@
 
 #include "nsCycleCollectionParticipant.h"
 #include "mozilla/dom/SVGRectBinding.h"
 #include "mozilla/Attributes.h"
 #include "mozilla/ErrorResult.h"
 #include "nsWrapperCache.h"
 
 class nsIContent;
-class nsSVGElement;
 
 namespace mozilla {
 namespace dom {
 
 class SVGIRect : public nsISupports,
                  public nsWrapperCache
 {
 public:
--- a/dom/svg/SVGSVGElement.h
+++ b/dom/svg/SVGSVGElement.h
@@ -19,17 +19,16 @@
 
 nsresult NS_NewSVGSVGElement(nsIContent **aResult,
                              already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
                              mozilla::dom::FromParser aFromParser);
 
 class nsSMILTimeContainer;
 class nsSVGOuterSVGFrame;
 class nsSVGInnerSVGFrame;
-class nsSVGImageFrame;
 
 namespace mozilla {
 class AutoSVGRenderingState;
 class DOMSVGAnimatedPreserveAspectRatio;
 class DOMSVGLength;
 class DOMSVGNumber;
 class EventChainPreVisitor;
 class SVGFragmentIdentifier;
--- a/dom/svg/SVGTextPositioningElement.h
+++ b/dom/svg/SVGTextPositioningElement.h
@@ -5,18 +5,16 @@
 
 #ifndef mozilla_dom_SVGTextPositioningElement_h
 #define mozilla_dom_SVGTextPositioningElement_h
 
 #include "mozilla/dom/SVGTextContentElement.h"
 #include "SVGAnimatedLengthList.h"
 #include "SVGAnimatedNumberList.h"
 
-class nsSVGElement;
-
 namespace mozilla {
 class SVGAnimatedLengthList;
 class DOMSVGAnimatedLengthList;
 class DOMSVGAnimatedNumberList;
 
 namespace dom {
 typedef SVGTextContentElement SVGTextPositioningElementBase;
 
--- a/dom/svg/nsISVGPoint.h
+++ b/dom/svg/nsISVGPoint.h
@@ -6,18 +6,16 @@
 #pragma once
 
 #include "nsAutoPtr.h"
 #include "nsCycleCollectionParticipant.h"
 #include "nsWrapperCache.h"
 #include "mozilla/dom/SVGPointBinding.h"
 #include "DOMSVGPointList.h"
 
-class nsSVGElement;
-
 // {d6b6c440-af8d-40ee-856b-02a317cab275}
 #define MOZILLA_NSISVGPOINT_IID \
   { 0xd6b6c440, 0xaf8d, 0x40ee, \
     { 0x85, 0x6b, 0x02, 0xa3, 0x17, 0xca, 0xb2, 0x75 } }
 
 #define MOZ_SVG_LIST_INDEX_BIT_COUNT 29
 
 namespace mozilla {
--- a/dom/svg/nsSVGBoolean.h
+++ b/dom/svg/nsSVGBoolean.h
@@ -7,17 +7,16 @@
 #define __NS_SVGBOOLEAN_H__
 
 #include "nsCOMPtr.h"
 #include "nsError.h"
 #include "nsISMILAttr.h"
 #include "mozilla/Attributes.h"
 
 class nsIAtom;
-class nsISupports;
 class nsSMILValue;
 class nsSVGElement;
 
 namespace mozilla {
 namespace dom {
 class SVGAnimationElement;
 class SVGAnimatedBoolean;
 }
--- a/dom/svg/nsSVGElement.h
+++ b/dom/svg/nsSVGElement.h
@@ -28,23 +28,21 @@
 class nsSVGAngle;
 class nsSVGBoolean;
 class nsSVGEnum;
 class nsSVGInteger;
 class nsSVGIntegerPair;
 class nsSVGLength2;
 class nsSVGNumber2;
 class nsSVGNumberPair;
-class nsSVGPathGeometryElement;
 class nsSVGString;
 class nsSVGViewBox;
 
 namespace mozilla {
 namespace dom {
-class CSSValue;
 class SVGSVGElement;
 
 static const unsigned short SVG_UNIT_TYPE_UNKNOWN           = 0;
 static const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE    = 1;
 static const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
 
 }
 
--- a/dom/svg/nsSVGFilters.h
+++ b/dom/svg/nsSVGFilters.h
@@ -11,17 +11,16 @@
 #include "nsSVGLength2.h"
 #include "nsSVGString.h"
 #include "nsSVGElement.h"
 #include "nsSVGNumber2.h"
 #include "nsSVGNumberPair.h"
 #include "FilterSupport.h"
 
 class nsSVGFilterInstance;
-class nsSVGFilterResource;
 class nsSVGNumberPair;
 
 struct nsSVGStringInfo {
   nsSVGStringInfo(const nsSVGString* aString,
                   nsSVGElement *aElement) :
     mString(aString), mElement(aElement) {}
 
   const nsSVGString* mString;
--- a/dom/svg/nsSVGPathGeometryElement.h
+++ b/dom/svg/nsSVGPathGeometryElement.h
@@ -4,18 +4,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef __NS_SVGPATHGEOMETRYELEMENT_H__
 #define __NS_SVGPATHGEOMETRYELEMENT_H__
 
 #include "mozilla/gfx/2D.h"
 #include "SVGGraphicsElement.h"
 
-class gfxMatrix;
-
 struct nsSVGMark {
   enum Type {
     eStart,
     eMid,
     eEnd,
 
     eTypeCount
   };
--- a/dom/system/gonk/AutoMounterSetting.h
+++ b/dom/system/gonk/AutoMounterSetting.h
@@ -5,18 +5,16 @@
 #ifndef mozilla_system_automountersetting_h__
 #define mozilla_system_automountersetting_h__
 
 #include "nsIObserver.h"
 
 namespace mozilla {
 namespace system {
 
-class ResultListener;
-
 class AutoMounterSetting : public nsIObserver
 {
 public:
   NS_DECL_ISUPPORTS
   NS_DECL_NSIOBSERVER
 
   AutoMounterSetting();
 
--- a/dom/system/gonk/MozMtpServer.h
+++ b/dom/system/gonk/MozMtpServer.h
@@ -11,22 +11,16 @@
 #include "MozMtpDatabase.h"
 
 #include "mozilla/FileUtils.h"
 
 #include "nsAutoPtr.h"
 #include "nsCOMPtr.h"
 #include "nsIThread.h"
 
-namespace mozilla {
-namespace system {
-  class Volume;
-}
-}
-
 BEGIN_MTP_NAMESPACE
 using namespace android;
 
 class RefCountedMtpServer : public MtpServer
 {
 public:
   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(RefCountedMtpServer)
 
--- a/dom/system/gonk/nsVolume.h
+++ b/dom/system/gonk/nsVolume.h
@@ -9,17 +9,16 @@
 #include "nsIVolume.h"
 #include "nsString.h"
 #include "nsTArray.h"
 
 namespace mozilla {
 namespace system {
 
 class Volume;
-class VolumeMountLock;
 
 class nsVolume : public nsIVolume
 {
 public:
   NS_DECL_THREADSAFE_ISUPPORTS
   NS_DECL_NSIVOLUME
 
   // This constructor is used by the UpdateVolumeRunnable constructor
--- a/dom/system/gonk/nsVolumeService.h
+++ b/dom/system/gonk/nsVolumeService.h
@@ -17,17 +17,16 @@
 namespace mozilla {
 
 namespace dom {
 class VolumeInfo;
 } // dom
 
 namespace system {
 
-class WakeLockCallback;
 class Volume;
 
 /***************************************************************************
 * The nsVolumeData class encapsulates the data that is updated/maintained
 * on the main thread in order to support the nsIVolume and nsIVolumeService
 * classes.
 */
 
--- a/dom/workers/DataStore.h
+++ b/dom/workers/DataStore.h
@@ -13,17 +13,16 @@
 namespace mozilla {
 
 class ErrorResult;
 
 namespace dom {
 
 class Promise;
 class DataStore;
-class DataStoreImpl;
 class StringOrUnsignedLong;
 class OwningStringOrUnsignedLong;
 
 namespace workers {
 
 class DataStoreChangeEventProxy;
 class WorkerDataStoreCursor;
 class WorkerGlobalScope;
--- a/dom/workers/DataStoreCursor.h
+++ b/dom/workers/DataStoreCursor.h
@@ -11,17 +11,16 @@ namespace mozilla {
 
 class ErrorResult;
 
 namespace dom {
 
 class Promise;
 class GlobalObject;
 class DataStoreCursor;
-class DataStoreCursorImpl;
 
 namespace workers {
 
 class WorkerDataStore;
 
 class WorkerDataStoreCursor final
 {
 public:
--- a/dom/workers/FileReaderSync.h
+++ b/dom/workers/FileReaderSync.h
@@ -5,17 +5,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifndef mozilla_dom_workers_filereadersync_h__
 #define mozilla_dom_workers_filereadersync_h__
 
 #include "Workers.h"
 
 class nsIInputStream;
-class nsIDOMBlob;
 
 namespace mozilla {
 class ErrorResult;
 
 namespace dom {
 class File;
 class GlobalObject;
 template<typename> class Optional;
--- a/dom/workers/RuntimeService.h
+++ b/dom/workers/RuntimeService.h
@@ -11,17 +11,16 @@
 
 #include "nsIObserver.h"
 
 #include "mozilla/dom/BindingDeclarations.h"
 #include "nsClassHashtable.h"
 #include "nsHashKeys.h"
 #include "nsTArray.h"
 
-class nsIRunnable;
 class nsITimer;
 class nsPIDOMWindow;
 
 BEGIN_WORKERS_NAMESPACE
 
 class SharedWorker;
 class WorkerThread;
 
--- a/dom/workers/ScriptLoader.h
+++ b/dom/workers/ScriptLoader.h
@@ -14,22 +14,16 @@ class nsIDocument;
 class nsILoadGroup;
 class nsString;
 class nsIChannel;
 
 namespace mozilla {
 
 class ErrorResult;
 
-namespace dom {
-
-template <typename T>
-class Sequence;
-
-} // namespace dom
 } // namespace mozilla
 
 BEGIN_WORKERS_NAMESPACE
 
 enum WorkerScriptType {
   WorkerScript,
   DebuggerScript
 };
--- a/dom/workers/ServiceWorker.h
+++ b/dom/workers/ServiceWorker.h
@@ -10,18 +10,16 @@
 #include "mozilla/dom/BindingDeclarations.h"
 #include "mozilla/dom/ServiceWorkerBinding.h" // For ServiceWorkerState.
 
 class nsPIDOMWindow;
 
 namespace mozilla {
 namespace dom {
 
-class Promise;
-
 namespace workers {
 
 class ServiceWorkerInfo;
 class ServiceWorkerManager;
 class SharedWorker;
 
 bool
 ServiceWorkerVisible(JSContext* aCx, JSObject* aObj);
--- a/dom/workers/ServiceWorkerManager.h
+++ b/dom/workers/ServiceWorkerManager.h
@@ -23,18 +23,16 @@
 #include "mozilla/ipc/BackgroundUtils.h"
 #include "nsIIPCBackgroundChildCreateCallback.h"
 #include "nsClassHashtable.h"
 #include "nsDataHashtable.h"
 #include "nsRefPtrHashtable.h"
 #include "nsTArrayForwardDeclare.h"
 #include "nsTObserverArray.h"
 
-class nsIScriptError;
-
 namespace mozilla {
 
 namespace ipc {
 class BackgroundChild;
 }
 
 namespace dom {
 
--- a/dom/workers/ServiceWorkerRegistrar.h
+++ b/dom/workers/ServiceWorkerRegistrar.h
@@ -18,17 +18,16 @@
 #define SERVICEWORKERREGISTRAR_TERMINATOR "#"
 #define SERVICEWORKERREGISTRAR_TRUE "true"
 #define SERVICEWORKERREGISTRAR_FALSE "false"
 #define SERVICEWORKERREGISTRAR_SYSTEM_PRINCIPAL "system"
 #define SERVICEWORKERREGISTRAR_CONTENT_PRINCIPAL "content"
 
 
 class nsIFile;
-class nsRunnable;
 
 namespace mozilla {
 namespace dom {
 
 class ServiceWorkerRegistrationData;
 
 class ServiceWorkerRegistrar : public nsIObserver
 {
--- a/dom/workers/URL.h
+++ b/dom/workers/URL.h
@@ -8,18 +8,16 @@
 #define mozilla_dom_workers_url_h__
 
 #include "Workers.h"
 
 #include "mozilla/ErrorResult.h"
 #include "mozilla/dom/BindingDeclarations.h"
 #include "mozilla/dom/URLSearchParams.h"
 
-class nsIPrincipal;
-
 namespace mozilla {
 namespace dom {
 class File;
 struct objectURLOptions;
 }
 }
 
 BEGIN_WORKERS_NAMESPACE