diff options
353 files changed, 860 insertions, 3554 deletions
diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure index 713b2ce617..2e6034e8e5 100644 --- a/build/moz.configure/init.configure +++ b/build/moz.configure/init.configure @@ -610,7 +610,7 @@ imply_option('--enable-project', application) def default_project(build_env, help): if build_env.topobjdir.endswith('/js/src'): return 'js' - return 'browser' + return 'application/xulrunner' option('--enable-project', nargs=1, default=default_project, help='Project to build') @@ -618,28 +618,22 @@ option('--enable-project', nargs=1, default=default_project, option('--with-external-source-dir', env='EXTERNAL_SOURCE_DIR', nargs=1, help='External directory containing additional build files') -@depends('--enable-project', '--with-external-source-dir', - check_build_environment, '--help') +@depends('--enable-project', '--with-external-source-dir', check_build_environment, '--help') @imports(_from='os.path', _import='exists') def include_project_configure(project, external_source_dir, build_env, help): - if not project: - die('--enable-project is required.') - base_dir = build_env.topsrcdir + if external_source_dir: base_dir = os.path.join(base_dir, external_source_dir[0]) - + build_app = project[0] - if not external_source_dir and build_app not in ('xulrunner', 'js'): - die('Cannot find project %s', build_app) - path_project_src_dir_root = os.path.join(base_dir, build_app, 'moz.configure') if exists(path_project_src_dir_root): return path_project_src_dir_root else: - die('Cannot find project %s', build_app) + return os.path.join(build_env.topsrcdir, 'toolkit', 'moz.configure') @depends('--with-external-source-dir') def external_source_dir(value): @@ -649,12 +643,29 @@ def external_source_dir(value): set_config('EXTERNAL_SOURCE_DIR', external_source_dir) add_old_configure_assignment('EXTERNAL_SOURCE_DIR', external_source_dir) +@depends('--enable-project', '--with-external-source-dir', check_build_environment, '--help') +@imports(_from='os.path', _import='exists') +def build_project(project, external_source_dir, build_env, help): + if not project: + die('--enable-project is required.') + + base_dir = build_env.topsrcdir + + if external_source_dir: + base_dir = os.path.join(base_dir, external_source_dir[0]) + + build_app = project[0] + + if not external_source_dir and build_app not in ('xulrunner', 'js'): + die('Cannot find project %s', build_app) + + build_app_abspath = os.path.join(base_dir, build_app) + + if exists(build_app_abspath): + return os.path.relpath(build_app_abspath, build_env.topsrcdir) + else: + die('Cannot find project %s', build_app) -@depends(include_project_configure, check_build_environment, '--help') -def build_project(include_project_configure, build_env, help): - ret = os.path.dirname(os.path.relpath(include_project_configure, - build_env.topsrcdir)) - return ret set_config('MOZ_BUILD_APP', build_project) set_define('MOZ_BUILD_APP', build_project) diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure index d0f6909b9a..aba1edf858 100644 --- a/build/moz.configure/old.configure +++ b/build/moz.configure/old.configure @@ -157,6 +157,7 @@ def old_configure_options(*options): '--enable-accessibility', '--enable-address-sanitizer', '--enable-alsa', + '--enable-av1', '--enable-b2g-bt', '--enable-b2g-camera', '--enable-b2g-ril', diff --git a/build/mozconfig.common b/build/mozconfig.common index 3d2d0b2895..1bdf69ddc5 100644 --- a/build/mozconfig.common +++ b/build/mozconfig.common @@ -16,11 +16,6 @@ ac_add_options --enable-crashreporter ac_add_options --enable-release -# Disable checking that add-ons are signed by the trusted root -MOZ_ADDON_SIGNING=${MOZ_ADDON_SIGNING-0} -# Disable enforcing that add-ons are signed by the trusted root -MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0} - ac_add_options --enable-js-shell . "$topsrcdir/build/mozconfig.automation" diff --git a/docs/UXP Coding Style.md b/docs/UXP Coding Style.md index 5dc4fd2a59..fc025584f0 100644 --- a/docs/UXP Coding Style.md +++ b/docs/UXP Coding Style.md @@ -126,7 +126,7 @@ switch (variable) { code_for_1; code_for_1; break; - case value2: + case value2: // Comment describing 2 (alternative) code_for_2; code_for_2; // fallthrough @@ -273,7 +273,7 @@ Applies to `*.js` and `*.jsm`. } }, false); ``` -- Use a single space between `{` `}` braces in empty js objects. +- Don't use a space between `{` `}` braces in empty js objects, `{` `}` braces in empty function scopes, or `[` `]` brackets in empty arrays. ### Flow control Flow control expressions should follow the following guidelines: @@ -343,7 +343,7 @@ switch (variable) { code_for_1; code_for_1; break; - case value2: + case value2: // Comment describing 2 (alternative) code_for_2; code_for_2; // fallthrough @@ -397,8 +397,7 @@ try { try { do_something(); -} catch(e) { -} +} catch(e) {} try { do_something(); @@ -414,11 +413,6 @@ try { // No error processing do_something_else(); } - -// No closing brace on its own line -try { - do_something(); -} catch(ex) { } ``` ### Long line wrapping diff --git a/dom/animation/AnimationComparator.h b/dom/animation/AnimationComparator.h index ff665e82aa..730d62f484 100644 --- a/dom/animation/AnimationComparator.h +++ b/dom/animation/AnimationComparator.h @@ -7,6 +7,8 @@ #ifndef mozilla_AnimationComparator_h #define mozilla_AnimationComparator_h +#include "mozilla/dom/Animation.h" + namespace mozilla { // Although this file is called AnimationComparator, we don't actually diff --git a/dom/animation/AnimationEffectReadOnly.cpp b/dom/animation/AnimationEffectReadOnly.cpp index 63d633c2f1..7eb0880c72 100644 --- a/dom/animation/AnimationEffectReadOnly.cpp +++ b/dom/animation/AnimationEffectReadOnly.cpp @@ -6,6 +6,7 @@ #include "mozilla/dom/AnimationEffectReadOnly.h" #include "mozilla/dom/AnimationEffectReadOnlyBinding.h" +#include "mozilla/dom/Animation.h" #include "mozilla/AnimationUtils.h" #include "mozilla/FloatingPoint.h" diff --git a/dom/animation/AnimationPerformanceWarning.h b/dom/animation/AnimationPerformanceWarning.h index 025857e0c0..a1ac35cba0 100644 --- a/dom/animation/AnimationPerformanceWarning.h +++ b/dom/animation/AnimationPerformanceWarning.h @@ -9,6 +9,9 @@ #include <initializer_list> +#include "mozilla/Maybe.h" +#include "nsTArray.h" + class nsXPIDLString; namespace mozilla { diff --git a/dom/animation/CSSPseudoElement.cpp b/dom/animation/CSSPseudoElement.cpp index a4dede0b3b..09aad01efe 100644 --- a/dom/animation/CSSPseudoElement.cpp +++ b/dom/animation/CSSPseudoElement.cpp @@ -7,6 +7,7 @@ #include "mozilla/dom/CSSPseudoElement.h" #include "mozilla/dom/CSSPseudoElementBinding.h" #include "mozilla/dom/Element.h" +#include "mozilla/dom/KeyframeEffectBinding.h" // for ElementOrCSSPseudoElement class #include "mozilla/AnimationComparator.h" namespace mozilla { diff --git a/dom/animation/KeyframeEffect.cpp b/dom/animation/KeyframeEffect.cpp index decbf63050..32f6bd1a10 100644 --- a/dom/animation/KeyframeEffect.cpp +++ b/dom/animation/KeyframeEffect.cpp @@ -11,6 +11,7 @@ #include "mozilla/dom/AnimationEffectTiming.h" #include "mozilla/dom/KeyframeEffectBinding.h" #include "mozilla/KeyframeUtils.h" +#include "nsContentUtils.h" #include "nsDOMMutationObserver.h" // For nsAutoAnimationMutationBatch #include "nsIScriptError.h" diff --git a/dom/animation/KeyframeEffectReadOnly.cpp b/dom/animation/KeyframeEffectReadOnly.cpp index 639e0b2b0d..95f657449c 100644 --- a/dom/animation/KeyframeEffectReadOnly.cpp +++ b/dom/animation/KeyframeEffectReadOnly.cpp @@ -6,6 +6,7 @@ #include "mozilla/dom/KeyframeEffectReadOnly.h" +#include "mozilla/dom/Animation.h" #include "mozilla/dom/KeyframeAnimationOptionsBinding.h" // For UnrestrictedDoubleOrKeyframeAnimationOptions; #include "mozilla/dom/CSSPseudoElement.h" @@ -25,6 +26,7 @@ #include "nsCSSPseudoElements.h" // For CSSPseudoElementType #include "nsIPresShell.h" #include "nsIScriptError.h" +#include "nsRefreshDriver.h" namespace mozilla { diff --git a/dom/animation/moz.build b/dom/animation/moz.build index bd8c937072..356980f002 100644 --- a/dom/animation/moz.build +++ b/dom/animation/moz.build @@ -37,6 +37,11 @@ EXPORTS.mozilla += [ ] UNIFIED_SOURCES += [ + 'KeyframeEffect.cpp', + 'KeyframeEffectReadOnly.cpp', +] + +SOURCES += [ 'Animation.cpp', 'AnimationEffectReadOnly.cpp', 'AnimationEffectTiming.cpp', @@ -50,9 +55,7 @@ UNIFIED_SOURCES += [ 'DocumentTimeline.cpp', 'EffectCompositor.cpp', 'EffectSet.cpp', - 'KeyframeEffect.cpp', 'KeyframeEffectParams.cpp', - 'KeyframeEffectReadOnly.cpp', 'KeyframeUtils.cpp', 'PendingAnimationTracker.cpp', 'TimingParams.cpp', diff --git a/dom/archivereader/ArchiveRequest.cpp b/dom/archivereader/ArchiveRequest.cpp index ec16868042..8505f0e1ff 100644 --- a/dom/archivereader/ArchiveRequest.cpp +++ b/dom/archivereader/ArchiveRequest.cpp @@ -8,10 +8,12 @@ #include "mozilla/EventDispatcher.h" #include "mozilla/dom/ArchiveRequestBinding.h" +#include "mozilla/dom/File.h" #include "mozilla/dom/ScriptSettings.h" #include "nsContentUtils.h" using namespace mozilla; +using namespace mozilla::dom; USING_ARCHIVEREADER_NAMESPACE diff --git a/dom/archivereader/ArchiveZipFile.cpp b/dom/archivereader/ArchiveZipFile.cpp index d374fe91f0..e1716f3481 100644 --- a/dom/archivereader/ArchiveZipFile.cpp +++ b/dom/archivereader/ArchiveZipFile.cpp @@ -12,6 +12,7 @@ #include "mozilla/Attributes.h" #include "mozilla/dom/File.h" +using namespace mozilla; using namespace mozilla::dom; USING_ARCHIVEREADER_NAMESPACE diff --git a/dom/archivereader/moz.build b/dom/archivereader/moz.build index 57dbfa1210..a5d853c917 100644 --- a/dom/archivereader/moz.build +++ b/dom/archivereader/moz.build @@ -13,7 +13,7 @@ EXPORTS.mozilla.dom.archivereader += [ 'ArchiveZipFile.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ArchiveEvent.cpp', 'ArchiveReader.cpp', 'ArchiveRequest.cpp', diff --git a/dom/audiochannel/moz.build b/dom/audiochannel/moz.build index 46923db3c7..547cce24a3 100644 --- a/dom/audiochannel/moz.build +++ b/dom/audiochannel/moz.build @@ -16,14 +16,12 @@ EXPORTS += [ 'AudioChannelService.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'AudioChannelAgent.cpp', 'AudioChannelService.cpp', ] -LOCAL_INCLUDES += [ - '/dom/base/', -] +LOCAL_INCLUDES += ['/dom/base/'] include('/ipc/chromium/chromium-config.mozbuild') diff --git a/dom/broadcastchannel/moz.build b/dom/broadcastchannel/moz.build index a076331e58..c9d687cbc6 100644 --- a/dom/broadcastchannel/moz.build +++ b/dom/broadcastchannel/moz.build @@ -8,20 +8,16 @@ EXPORTS.mozilla.dom += [ 'BroadcastChannel.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'BroadcastChannel.cpp', 'BroadcastChannelChild.cpp', 'BroadcastChannelParent.cpp', 'BroadcastChannelService.cpp', ] -IPDL_SOURCES += [ - 'PBroadcastChannel.ipdl', -] +IPDL_SOURCES += ['PBroadcastChannel.ipdl'] -LOCAL_INCLUDES += [ - '../workers', -] +LOCAL_INCLUDES += ['../workers'] MOCHITEST_MANIFESTS += ['tests/mochitest.ini'] BROWSER_CHROME_MANIFESTS += ['tests/browser.ini'] diff --git a/dom/cache/CacheOpParent.cpp b/dom/cache/CacheOpParent.cpp index 992ee82a76..37fcbc0f30 100644 --- a/dom/cache/CacheOpParent.cpp +++ b/dom/cache/CacheOpParent.cpp @@ -12,6 +12,7 @@ #include "mozilla/dom/cache/SavedTypes.h" #include "mozilla/ipc/FileDescriptorSetParent.h" #include "mozilla/ipc/InputStreamUtils.h" +#include "mozilla/ipc/IPCStreamUtils.h" #include "mozilla/ipc/SendStream.h" namespace mozilla { diff --git a/dom/cache/CacheStorage.cpp b/dom/cache/CacheStorage.cpp index 937e3826f2..a0f4864452 100644 --- a/dom/cache/CacheStorage.cpp +++ b/dom/cache/CacheStorage.cpp @@ -7,6 +7,7 @@ #include "mozilla/dom/cache/CacheStorage.h" #include "mozilla/Unused.h" +#include "mozilla/dom/CacheBinding.h" #include "mozilla/dom/CacheStorageBinding.h" #include "mozilla/dom/Promise.h" #include "mozilla/dom/Response.h" @@ -29,6 +30,8 @@ #include "nsURLParsers.h" #include "WorkerPrivate.h" +using namespace mozilla::dom; + namespace mozilla { namespace dom { namespace cache { diff --git a/dom/cache/CacheStreamControlChild.cpp b/dom/cache/CacheStreamControlChild.cpp index b7ca3a0e71..978019ab69 100644 --- a/dom/cache/CacheStreamControlChild.cpp +++ b/dom/cache/CacheStreamControlChild.cpp @@ -11,6 +11,7 @@ #include "mozilla/dom/cache/CacheTypes.h" #include "mozilla/dom/cache/ReadStream.h" #include "mozilla/ipc/FileDescriptorSetChild.h" +#include "mozilla/ipc/IPCStreamUtils.h" #include "mozilla/ipc/PBackgroundChild.h" #include "mozilla/ipc/PFileDescriptorSetChild.h" #include "nsISupportsImpl.h" diff --git a/dom/cache/CacheStreamControlParent.cpp b/dom/cache/CacheStreamControlParent.cpp index 54eef01d85..02f2fd2d30 100644 --- a/dom/cache/CacheStreamControlParent.cpp +++ b/dom/cache/CacheStreamControlParent.cpp @@ -11,6 +11,7 @@ #include "mozilla/dom/cache/ReadStream.h" #include "mozilla/dom/cache/StreamList.h" #include "mozilla/ipc/FileDescriptorSetParent.h" +#include "mozilla/ipc/IPCStreamUtils.h" #include "mozilla/ipc/PBackgroundParent.h" #include "mozilla/ipc/PFileDescriptorSetParent.h" #include "nsISupportsImpl.h" @@ -20,6 +21,7 @@ namespace dom { namespace cache { using mozilla::dom::OptionalFileDescriptorSet; +using mozilla::ipc::AutoIPCStream; using mozilla::ipc::FileDescriptor; using mozilla::ipc::FileDescriptorSetParent; using mozilla::ipc::PFileDescriptorSetParent; diff --git a/dom/cache/ReadStream.h b/dom/cache/ReadStream.h index 824cedb029..6744f30c22 100644 --- a/dom/cache/ReadStream.h +++ b/dom/cache/ReadStream.h @@ -12,9 +12,12 @@ #include "nsID.h" #include "nsIInputStream.h" #include "nsISupportsImpl.h" +#include "mozilla/ErrorResult.h" #include "mozilla/RefPtr.h" #include "nsTArrayForwardDeclare.h" +using namespace mozilla; + namespace mozilla { namespace ipc { class AutoIPCStream; diff --git a/dom/cache/TypeUtils.cpp b/dom/cache/TypeUtils.cpp index 2d4cb30eb2..f8c5cd7be8 100644 --- a/dom/cache/TypeUtils.cpp +++ b/dom/cache/TypeUtils.cpp @@ -14,6 +14,7 @@ #include "mozilla/dom/cache/CacheTypes.h" #include "mozilla/dom/cache/ReadStream.h" #include "mozilla/ipc/BackgroundChild.h" +#include "mozilla/ipc/IPCStreamUtils.h" #include "mozilla/ipc/PBackgroundChild.h" #include "mozilla/ipc/PFileDescriptorSetChild.h" #include "mozilla/ipc/InputStreamUtils.h" diff --git a/dom/cache/moz.build b/dom/cache/moz.build index 66f9f30fd0..a536e5d758 100644 --- a/dom/cache/moz.build +++ b/dom/cache/moz.build @@ -38,7 +38,7 @@ EXPORTS.mozilla.dom.cache += [ 'TypeUtils.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Action.cpp', 'ActorChild.cpp', 'AutoUtils.cpp', diff --git a/dom/canvas/CanvasImageCache.cpp b/dom/canvas/CanvasImageCache.cpp index 82b3f277c7..2e4e90d338 100644 --- a/dom/canvas/CanvasImageCache.cpp +++ b/dom/canvas/CanvasImageCache.cpp @@ -7,6 +7,7 @@ #include "nsAutoPtr.h" #include "nsIImageLoadingContent.h" #include "nsExpirationTracker.h" +#include "imgIContainer.h" #include "imgIRequest.h" #include "mozilla/dom/Element.h" #include "nsTHashtable.h" diff --git a/dom/canvas/CanvasRenderingContextHelper.cpp b/dom/canvas/CanvasRenderingContextHelper.cpp index 61317fb515..229801ffa7 100644 --- a/dom/canvas/CanvasRenderingContextHelper.cpp +++ b/dom/canvas/CanvasRenderingContextHelper.cpp @@ -4,6 +4,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "CanvasRenderingContextHelper.h" + +#include "CanvasUtils.h" #include "ImageBitmapRenderingContext.h" #include "ImageEncoder.h" #include "mozilla/dom/CanvasRenderingContext2D.h" diff --git a/dom/canvas/ImageBitmap.cpp b/dom/canvas/ImageBitmap.cpp index 6efe1b318b..e4b145d461 100644 --- a/dom/canvas/ImageBitmap.cpp +++ b/dom/canvas/ImageBitmap.cpp @@ -5,19 +5,29 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/dom/ImageBitmap.h" + #include "mozilla/CheckedInt.h" +#include "mozilla/dom/File.h" // for Blob +#include "mozilla/dom/HTMLImageElement.h" #include "mozilla/dom/ImageBitmapBinding.h" #include "mozilla/dom/Promise.h" #include "mozilla/dom/StructuredCloneTags.h" +#include "mozilla/dom/UnionTypes.h" // for ArrayBufferViewOrArrayBuffer #include "mozilla/dom/WorkerPrivate.h" #include "mozilla/dom/WorkerRunnable.h" -#include "mozilla/gfx/2D.h" +#include "CanvasRenderingContext2D.h" +#include "gfxUtils.h" #include "ImageBitmapColorUtils.h" #include "ImageBitmapUtils.h" +#include "ImageData.h" +#include "ImageLayers.h" #include "ImageUtils.h" #include "imgTools.h" #include "libyuv.h" +#include "nsLayoutUtils.h" +#include "OffscreenCanvas.h" +using namespace mozilla::dom; using namespace mozilla::gfx; using namespace mozilla::layers; diff --git a/dom/canvas/ImageBitmap.h b/dom/canvas/ImageBitmap.h index 25084b6ac5..22953e5419 100644 --- a/dom/canvas/ImageBitmap.h +++ b/dom/canvas/ImageBitmap.h @@ -13,7 +13,9 @@ #include "mozilla/gfx/Rect.h" #include "mozilla/Maybe.h" #include "mozilla/UniquePtr.h" +#include "CanvasRenderingContextHelper.h" #include "nsCycleCollectionParticipant.h" +#include "nsIGlobalObject.h" struct JSContext; struct JSStructuredCloneReader; diff --git a/dom/canvas/ImageBitmapColorUtils.cpp b/dom/canvas/ImageBitmapColorUtils.cpp index 2b65c1f100..4ef4ade868 100644 --- a/dom/canvas/ImageBitmapColorUtils.cpp +++ b/dom/canvas/ImageBitmapColorUtils.cpp @@ -6,6 +6,9 @@ #include "ImageBitmapColorUtils.h" +#include "js/LegacyIntTypes.h" +#include <cmath> + namespace mozilla { namespace dom { diff --git a/dom/canvas/ImageBitmapRenderingContext.cpp b/dom/canvas/ImageBitmapRenderingContext.cpp index ad313906a3..9c7af25221 100644 --- a/dom/canvas/ImageBitmapRenderingContext.cpp +++ b/dom/canvas/ImageBitmapRenderingContext.cpp @@ -4,9 +4,19 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "ImageBitmapRenderingContext.h" + #include "mozilla/dom/ImageBitmapRenderingContextBinding.h" +#include "mozilla/gfx/2D.h" +#include "mozilla/gfx/DataSurfaceHelpers.h" +#include "ImageBitmap.h" #include "ImageContainer.h" +#include "ImageEncoder.h" #include "ImageLayers.h" +#include "imgIEncoder.h" +#include "Layers.h" + +using namespace mozilla::gfx; +using namespace mozilla::layers; namespace mozilla { namespace dom { diff --git a/dom/canvas/ImageBitmapUtils.h b/dom/canvas/ImageBitmapUtils.h index 39be43d8ae..bc8d6ad153 100644 --- a/dom/canvas/ImageBitmapUtils.h +++ b/dom/canvas/ImageBitmapUtils.h @@ -7,6 +7,7 @@ #ifndef mozilla_dom_ImageBitmapUtils_h #define mozilla_dom_ImageBitmapUtils_h +#include "ImageBitmap.h" #include "mozilla/UniquePtr.h" #include "nsTArrayForwardDeclare.h" diff --git a/dom/canvas/OffscreenCanvas.cpp b/dom/canvas/OffscreenCanvas.cpp index 0d188c24e3..981faf1b16 100644 --- a/dom/canvas/OffscreenCanvas.cpp +++ b/dom/canvas/OffscreenCanvas.cpp @@ -6,6 +6,9 @@ #include "OffscreenCanvas.h" +#include "mozilla/dom/File.h" // for Blob +#include "mozilla/dom/ImageEncoder.h" +#include "mozilla/dom/Promise.h" #include "mozilla/dom/OffscreenCanvasBinding.h" #include "mozilla/dom/WorkerPrivate.h" #include "mozilla/dom/WorkerScope.h" @@ -15,10 +18,15 @@ #include "mozilla/Telemetry.h" #include "CanvasRenderingContext2D.h" #include "CanvasUtils.h" +#include "GLContext.h" #include "GLScreenBuffer.h" +#include "ImageBitmap.h" #include "WebGL1Context.h" #include "WebGL2Context.h" +using namespace mozilla::layers; +using namespace mozilla::dom::workers; + namespace mozilla { namespace dom { diff --git a/dom/canvas/WebGL2ContextUniforms.cpp b/dom/canvas/WebGL2ContextUniforms.cpp index 7f8c07332b..900f845fd0 100644 --- a/dom/canvas/WebGL2ContextUniforms.cpp +++ b/dom/canvas/WebGL2ContextUniforms.cpp @@ -11,6 +11,7 @@ #include "WebGLBuffer.h" #include "WebGLContext.h" #include "WebGLProgram.h" +#include "WebGLTransformFeedback.h" #include "WebGLUniformLocation.h" #include "WebGLVertexArray.h" #include "WebGLVertexAttribData.h" diff --git a/dom/canvas/WebGLContextBuffers.cpp b/dom/canvas/WebGLContextBuffers.cpp index f53f9d7d75..e787b99143 100644 --- a/dom/canvas/WebGLContextBuffers.cpp +++ b/dom/canvas/WebGLContextBuffers.cpp @@ -7,6 +7,7 @@ #include "GLContext.h" #include "WebGLBuffer.h" +#include "WebGLTransformFeedback.h" #include "WebGLVertexArray.h" #include "mozilla/CheckedInt.h" diff --git a/dom/canvas/WebGLContextVertices.cpp b/dom/canvas/WebGLContextVertices.cpp index ba3156693b..5daf1102a8 100644 --- a/dom/canvas/WebGLContextVertices.cpp +++ b/dom/canvas/WebGLContextVertices.cpp @@ -7,6 +7,7 @@ #include "GLContext.h" #include "mozilla/CheckedInt.h" +#include "WebGL2Context.h" #include "WebGLBuffer.h" #include "WebGLFramebuffer.h" #include "WebGLProgram.h" diff --git a/dom/canvas/WebGLExtensionDebugGet.cpp b/dom/canvas/WebGLExtensionDebugGet.cpp index 39bb3c57a2..a849bd17e2 100644 --- a/dom/canvas/WebGLExtensionDebugGet.cpp +++ b/dom/canvas/WebGLExtensionDebugGet.cpp @@ -6,6 +6,7 @@ #include "WebGLExtensions.h" #include "mozilla/dom/WebGLRenderingContextBinding.h" +#include "GLContext.h" #include "WebGLContext.h" #include "WebGLContextUtils.h" diff --git a/dom/canvas/WebGLExtensions.h b/dom/canvas/WebGLExtensions.h index 7b6b6b54b6..595d1c9489 100644 --- a/dom/canvas/WebGLExtensions.h +++ b/dom/canvas/WebGLExtensions.h @@ -8,7 +8,7 @@ #include "mozilla/AlreadyAddRefed.h" #include "nsWrapperCache.h" -#include "WebGLObjectModel.h" +#include "WebGLContext.h" #include "WebGLTypes.h" namespace mozilla { diff --git a/dom/canvas/WebGLFramebuffer.h b/dom/canvas/WebGLFramebuffer.h index ac457c0988..53e01dfe76 100644 --- a/dom/canvas/WebGLFramebuffer.h +++ b/dom/canvas/WebGLFramebuffer.h @@ -12,7 +12,7 @@ #include "mozilla/WeakPtr.h" #include "nsWrapperCache.h" -#include "WebGLObjectModel.h" +#include "WebGLContext.h" #include "WebGLRenderbuffer.h" #include "WebGLStrongTypes.h" #include "WebGLTexture.h" diff --git a/dom/canvas/WebGLObjectModel.h b/dom/canvas/WebGLObjectModel.h index 6371c7b038..7c6caf2c4a 100644 --- a/dom/canvas/WebGLObjectModel.h +++ b/dom/canvas/WebGLObjectModel.h @@ -15,7 +15,6 @@ namespace mozilla { template<typename> class LinkedList; class WebGLContext; - //// // This class is a mixin for objects that are tied to a specific diff --git a/dom/canvas/WebGLSampler.h b/dom/canvas/WebGLSampler.h index 1cf0399841..73e550dfea 100644 --- a/dom/canvas/WebGLSampler.h +++ b/dom/canvas/WebGLSampler.h @@ -8,6 +8,7 @@ #include "mozilla/LinkedList.h" #include "nsWrapperCache.h" +#include "WebGLContext.h" #include "WebGLObjectModel.h" #include "WebGLStrongTypes.h" diff --git a/dom/canvas/WebGLTransformFeedback.h b/dom/canvas/WebGLTransformFeedback.h index aa57372a59..378794b9fe 100644 --- a/dom/canvas/WebGLTransformFeedback.h +++ b/dom/canvas/WebGLTransformFeedback.h @@ -6,8 +6,11 @@ #ifndef WEBGL_TRANSFORM_FEEDBACK_H_ #define WEBGL_TRANSFORM_FEEDBACK_H_ +#include <vector> #include "mozilla/LinkedList.h" #include "nsWrapperCache.h" +#include "WebGLBuffer.h" +#include "WebGLContext.h" #include "WebGLObjectModel.h" namespace mozilla { diff --git a/dom/canvas/WebGLVertexAttribData.cpp b/dom/canvas/WebGLVertexAttribData.cpp index b5aee18e5c..cea78eb14a 100644 --- a/dom/canvas/WebGLVertexAttribData.cpp +++ b/dom/canvas/WebGLVertexAttribData.cpp @@ -7,6 +7,7 @@ #include "GLContext.h" #include "WebGLBuffer.h" +#include "WebGLContext.h" namespace mozilla { diff --git a/dom/canvas/WebGLVertexAttribData.h b/dom/canvas/WebGLVertexAttribData.h index 9d79b4f943..6318b06d2d 100644 --- a/dom/canvas/WebGLVertexAttribData.h +++ b/dom/canvas/WebGLVertexAttribData.h @@ -7,6 +7,7 @@ #define WEBGL_VERTEX_ATTRIB_DATA_H_ #include "GLDefs.h" +#include "WebGLBuffer.h" #include "WebGLObjectModel.h" namespace mozilla { diff --git a/dom/canvas/moz.build b/dom/canvas/moz.build index 6d5e2756ff..fe39425ec1 100644 --- a/dom/canvas/moz.build +++ b/dom/canvas/moz.build @@ -42,7 +42,7 @@ EXPORTS.mozilla.dom += [ ] # Canvas 2D and common sources -UNIFIED_SOURCES += [ +SOURCES += [ 'CanvasImageCache.cpp', 'CanvasRenderingContext2D.cpp', 'CanvasRenderingContextHelper.cpp', @@ -60,7 +60,7 @@ SOURCES += [ ] # WebGL Sources -UNIFIED_SOURCES += [ +SOURCES += [ 'TexUnpackBlob.cpp', 'WebGL1Context.cpp', 'WebGL1ContextUniforms.cpp', diff --git a/dom/console/moz.build b/dom/console/moz.build index 79bd1cf099..82623e4429 100644 --- a/dom/console/moz.build +++ b/dom/console/moz.build @@ -22,7 +22,7 @@ EXPORTS.mozilla.dom += [ 'Console.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Console.cpp', 'ConsoleReportCollector.cpp', ] diff --git a/dom/crypto/WebCryptoThreadPool.cpp b/dom/crypto/WebCryptoThreadPool.cpp index 6a1e786084..a2b8e6239e 100644 --- a/dom/crypto/WebCryptoThreadPool.cpp +++ b/dom/crypto/WebCryptoThreadPool.cpp @@ -9,6 +9,9 @@ #include "mozilla/Services.h" #include "mozilla/StaticPtr.h" #include "nsComponentManagerUtils.h" +#include "nsContentUtils.h" +#include "nsNSSComponent.h" +#include "nsString.h" #include "nsXPCOMCIDInternal.h" #include "nsXPCOMPrivate.h" #include "nsIObserverService.h" diff --git a/dom/crypto/WebCryptoThreadPool.h b/dom/crypto/WebCryptoThreadPool.h index 77c4afb24d..76bf747087 100644 --- a/dom/crypto/WebCryptoThreadPool.h +++ b/dom/crypto/WebCryptoThreadPool.h @@ -7,6 +7,8 @@ #ifndef mozilla_dom_WebCryptoThreadPool_h #define mozilla_dom_WebCryptoThreadPool_h +#include "mozilla/Mutex.h" +#include "nsIObserver.h" #include "nsIObserverService.h" #include "nsIThreadPool.h" diff --git a/dom/crypto/moz.build b/dom/crypto/moz.build index ba0b5f2cd8..eb15a55309 100644 --- a/dom/crypto/moz.build +++ b/dom/crypto/moz.build @@ -13,7 +13,7 @@ EXPORTS.mozilla.dom += [ 'WebCryptoThreadPool.h' ] -UNIFIED_SOURCES += [ +SOURCES += [ 'CryptoBuffer.cpp', 'CryptoKey.cpp', 'KeyAlgorithmProxy.cpp', diff --git a/dom/encoding/moz.build b/dom/encoding/moz.build index 37292d6e51..7dc360aafd 100644 --- a/dom/encoding/moz.build +++ b/dom/encoding/moz.build @@ -11,7 +11,7 @@ EXPORTS.mozilla.dom += [ 'TextEncoder.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'EncodingUtils.cpp', 'FallbackEncoding.cpp', 'TextDecoder.cpp', @@ -19,9 +19,8 @@ UNIFIED_SOURCES += [ ] FINAL_LIBRARY = 'xul' -LOCAL_INCLUDES += [ - '/intl/locale', -] + +LOCAL_INCLUDES += ['/intl/locale'] props2arrays = '/intl/locale/props2arrays.py' prefixes = ( diff --git a/dom/events/DOMEventTargetHelper.cpp b/dom/events/DOMEventTargetHelper.cpp index dd9a01d8d2..7daf7f7a77 100644 --- a/dom/events/DOMEventTargetHelper.cpp +++ b/dom/events/DOMEventTargetHelper.cpp @@ -13,6 +13,7 @@ #include "mozilla/EventDispatcher.h" #include "mozilla/EventListenerManager.h" #include "mozilla/Likely.h" +#include "mozilla/Unused.h" namespace mozilla { diff --git a/dom/events/EventTarget.cpp b/dom/events/EventTarget.cpp index 6c4cbf2d02..b111b9f9d2 100644 --- a/dom/events/EventTarget.cpp +++ b/dom/events/EventTarget.cpp @@ -5,6 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/EventListenerManager.h" +#include "mozilla/dom/Event.h" #include "mozilla/dom/EventTarget.h" #include "mozilla/dom/EventTargetBinding.h" #include "nsThreadUtils.h" diff --git a/dom/events/IMEContentObserver.h b/dom/events/IMEContentObserver.h index d2f65e1860..e459096d99 100644 --- a/dom/events/IMEContentObserver.h +++ b/dom/events/IMEContentObserver.h @@ -7,6 +7,7 @@ #ifndef mozilla_IMEContentObserver_h_ #define mozilla_IMEContentObserver_h_ +#include "ContentEventHandler.h" #include "mozilla/Attributes.h" #include "nsCOMPtr.h" #include "nsCycleCollectionParticipant.h" diff --git a/dom/events/IMEStateManager.cpp b/dom/events/IMEStateManager.cpp index 80abad3cc0..fd628fb6f2 100644 --- a/dom/events/IMEStateManager.cpp +++ b/dom/events/IMEStateManager.cpp @@ -18,6 +18,7 @@ #include "mozilla/TextComposition.h" #include "mozilla/TextEvents.h" #include "mozilla/Unused.h" +#include "mozilla/dom/Event.h" #include "mozilla/dom/HTMLFormElement.h" #include "mozilla/dom/TabParent.h" diff --git a/dom/events/TextClause.h b/dom/events/TextClause.h index 7f85333e81..b9f3c1519f 100644 --- a/dom/events/TextClause.h +++ b/dom/events/TextClause.h @@ -12,6 +12,7 @@ #include "mozilla/ErrorResult.h" #include "mozilla/dom/BindingDeclarations.h" #include "nsCycleCollectionParticipant.h" +#include "nsPIDOMWindow.h" #include "nsWrapperCache.h" namespace mozilla { diff --git a/dom/events/TouchEvent.cpp b/dom/events/TouchEvent.cpp index 9b7a74ac28..0656021a05 100644 --- a/dom/events/TouchEvent.cpp +++ b/dom/events/TouchEvent.cpp @@ -16,6 +16,8 @@ namespace mozilla { +using namespace widget; + namespace dom { /****************************************************************************** diff --git a/dom/events/moz.build b/dom/events/moz.build index ec38132072..661f56c7e9 100644 --- a/dom/events/moz.build +++ b/dom/events/moz.build @@ -76,7 +76,7 @@ EXPORTS.mozilla.dom += [ if CONFIG['MOZ_WEBSPEECH']: EXPORTS.mozilla.dom += ['SpeechRecognitionError.h'] -UNIFIED_SOURCES += [ +SOURCES += [ 'AnimationEvent.cpp', 'AsyncEventDispatcher.cpp', 'BeforeAfterKeyboardEvent.cpp', @@ -97,6 +97,7 @@ UNIFIED_SOURCES += [ 'EventDispatcher.cpp', 'EventListenerManager.cpp', 'EventListenerService.cpp', + 'EventStateManager.cpp', 'EventTarget.cpp', 'FocusEvent.cpp', 'ImageCaptureError.cpp', @@ -126,13 +127,8 @@ UNIFIED_SOURCES += [ 'XULCommandEvent.cpp', ] -# nsEventStateManager.cpp should be built separately because of Mac OS X headers. -SOURCES += [ - 'EventStateManager.cpp', -] - if CONFIG['MOZ_WEBSPEECH']: - UNIFIED_SOURCES += ['SpeechRecognitionError.cpp'] + SOURCES += ['SpeechRecognitionError.cpp'] include('/ipc/chromium/chromium-config.mozbuild') diff --git a/dom/fetch/FetchConsumer.h b/dom/fetch/FetchConsumer.h index a7509a0ae5..2b57253420 100644 --- a/dom/fetch/FetchConsumer.h +++ b/dom/fetch/FetchConsumer.h @@ -8,11 +8,13 @@ #define mozilla_dom_FetchConsumer_h #include "Fetch.h" +#include "nsIInputStream.h" #include "nsIObserver.h" #include "nsWeakReference.h" #include "mozilla/dom/MutableBlobStorage.h" class nsIThread; +class nsIInputStreamPump; namespace mozilla { namespace dom { diff --git a/dom/fetch/FetchUtil.cpp b/dom/fetch/FetchUtil.cpp index 601d99216e..b384c4f810 100644 --- a/dom/fetch/FetchUtil.cpp +++ b/dom/fetch/FetchUtil.cpp @@ -2,6 +2,7 @@ #include "nsError.h" #include "nsIUnicodeDecoder.h" +#include "nsNetUtil.h" #include "nsString.h" #include "mozilla/dom/EncodingUtils.h" diff --git a/dom/fetch/InternalRequest.cpp b/dom/fetch/InternalRequest.cpp index b2631da6a1..65f8095e28 100644 --- a/dom/fetch/InternalRequest.cpp +++ b/dom/fetch/InternalRequest.cpp @@ -8,6 +8,7 @@ #include "nsIContentPolicy.h" #include "nsIDocument.h" +#include "nsIHttpChannelInternal.h" #include "nsStreamUtils.h" #include "mozilla/ErrorResult.h" diff --git a/dom/fetch/InternalResponse.cpp b/dom/fetch/InternalResponse.cpp index cb7d745972..1b1ae13e3d 100644 --- a/dom/fetch/InternalResponse.cpp +++ b/dom/fetch/InternalResponse.cpp @@ -7,6 +7,7 @@ #include "InternalResponse.h" #include "mozilla/Assertions.h" +#include "mozilla/dom/FetchTypes.h" #include "mozilla/dom/InternalHeaders.h" #include "mozilla/dom/cache/CacheTypes.h" #include "mozilla/ipc/PBackgroundSharedTypes.h" diff --git a/dom/fetch/InternalResponse.h b/dom/fetch/InternalResponse.h index 35467836a0..0801e32506 100644 --- a/dom/fetch/InternalResponse.h +++ b/dom/fetch/InternalResponse.h @@ -12,6 +12,7 @@ #include "mozilla/dom/ResponseBinding.h" #include "mozilla/dom/ChannelInfo.h" +#include "mozilla/dom/InternalHeaders.h" #include "mozilla/UniquePtr.h" namespace mozilla { diff --git a/dom/fetch/Request.cpp b/dom/fetch/Request.cpp index 7ca5b43c4f..6a7885b1aa 100644 --- a/dom/fetch/Request.cpp +++ b/dom/fetch/Request.cpp @@ -7,6 +7,7 @@ #include "Request.h" #include "nsIURI.h" +#include "nsNetUtil.h" #include "nsPIDOMWindow.h" #include "mozilla/ErrorResult.h" @@ -15,14 +16,18 @@ #include "mozilla/dom/FetchUtil.h" #include "mozilla/dom/Promise.h" #include "mozilla/dom/URL.h" -#include "mozilla/dom/WorkerPrivate.h" #include "mozilla/Unused.h" #include "WorkerPrivate.h" +#include "WorkerRunnable.h" +#include "WorkerScope.h" +#include "Workers.h" namespace mozilla { namespace dom { +using namespace workers; + NS_IMPL_CYCLE_COLLECTING_ADDREF(Request) NS_IMPL_CYCLE_COLLECTING_RELEASE(Request) NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Request, mOwner, mHeaders) @@ -237,14 +242,14 @@ GetRequestURLFromWorker(const GlobalObject& aGlobal, const nsAString& aInput, } } -class ReferrerSameOriginChecker final : public workers::WorkerMainThreadRunnable +class ReferrerSameOriginChecker final : public WorkerMainThreadRunnable { public: ReferrerSameOriginChecker(workers::WorkerPrivate* aWorkerPrivate, const nsAString& aReferrerURL, nsresult& aResult) - : workers::WorkerMainThreadRunnable(aWorkerPrivate, - NS_LITERAL_CSTRING("Fetch :: Referrer same origin check")), + : WorkerMainThreadRunnable(aWorkerPrivate, + NS_LITERAL_CSTRING("Fetch :: Referrer same origin check")), mReferrerURL(aReferrerURL), mResult(aResult) { diff --git a/dom/fetch/Response.cpp b/dom/fetch/Response.cpp index 3b3ada6d31..e35de0e12d 100644 --- a/dom/fetch/Response.cpp +++ b/dom/fetch/Response.cpp @@ -8,6 +8,7 @@ #include "nsISupportsImpl.h" #include "nsIURI.h" +#include "nsNetUtil.h" #include "nsPIDOMWindow.h" #include "mozilla/ErrorResult.h" diff --git a/dom/fetch/moz.build b/dom/fetch/moz.build index fb2279fe7c..be820ab570 100644 --- a/dom/fetch/moz.build +++ b/dom/fetch/moz.build @@ -19,17 +19,20 @@ EXPORTS.mozilla.dom += [ ] UNIFIED_SOURCES += [ - 'ChannelInfo.cpp', 'Fetch.cpp', 'FetchConsumer.cpp', + 'Request.cpp', + 'Response.cpp', +] + +SOURCES += [ + 'ChannelInfo.cpp', 'FetchDriver.cpp', 'FetchUtil.cpp', 'Headers.cpp', 'InternalHeaders.cpp', 'InternalRequest.cpp', 'InternalResponse.cpp', - 'Request.cpp', - 'Response.cpp', ] IPDL_SOURCES += [ diff --git a/dom/filehandle/moz.build b/dom/filehandle/moz.build index b4e3b64c05..37e5c22a71 100644 --- a/dom/filehandle/moz.build +++ b/dom/filehandle/moz.build @@ -18,7 +18,7 @@ EXPORTS.mozilla.dom += [ 'MutableFileBase.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ActorsChild.cpp', 'ActorsParent.cpp', 'FileHandleBase.cpp', diff --git a/dom/filesystem/FileSystemBase.cpp b/dom/filesystem/FileSystemBase.cpp index f44f4fbf1a..b19e12738b 100644 --- a/dom/filesystem/FileSystemBase.cpp +++ b/dom/filesystem/FileSystemBase.cpp @@ -7,6 +7,7 @@ #include "mozilla/dom/FileSystemBase.h" #include "nsCharSeparatedTokenizer.h" +#include "FileSystemUtils.h" #include "OSFileSystem.h" namespace mozilla { diff --git a/dom/filesystem/FileSystemRequestParent.cpp b/dom/filesystem/FileSystemRequestParent.cpp index 0b9d6c18aa..95a316b965 100644 --- a/dom/filesystem/FileSystemRequestParent.cpp +++ b/dom/filesystem/FileSystemRequestParent.cpp @@ -9,12 +9,15 @@ #include "GetDirectoryListingTask.h" #include "GetFileOrDirectoryTask.h" +#include "GetFilesTask.h" +#include "OSFileSystem.h" #include "mozilla/AppProcessChecker.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/FileSystemBase.h" #include "mozilla/dom/FileSystemSecurity.h" #include "mozilla/ipc/BackgroundParent.h" +#include "mozilla/Preferences.h" #include "mozilla/Unused.h" #include "nsProxyRelease.h" diff --git a/dom/filesystem/FileSystemSecurity.cpp b/dom/filesystem/FileSystemSecurity.cpp index b3d4258179..7c70374a00 100644 --- a/dom/filesystem/FileSystemSecurity.cpp +++ b/dom/filesystem/FileSystemSecurity.cpp @@ -8,6 +8,9 @@ #include "FileSystemUtils.h" #include "mozilla/ClearOnShutdown.h" #include "mozilla/StaticPtr.h" +#include "mozilla/ipc/BackgroundParent.h" + +using namespace mozilla::ipc; namespace mozilla { namespace dom { diff --git a/dom/filesystem/FileSystemTaskBase.cpp b/dom/filesystem/FileSystemTaskBase.cpp index 481002b7d0..e9eed90ee2 100644 --- a/dom/filesystem/FileSystemTaskBase.cpp +++ b/dom/filesystem/FileSystemTaskBase.cpp @@ -19,6 +19,8 @@ #include "mozilla/Unused.h" #include "nsProxyRelease.h" +using namespace mozilla::ipc; + namespace mozilla { namespace dom { diff --git a/dom/filesystem/FileSystemUtils.cpp b/dom/filesystem/FileSystemUtils.cpp index 872e049ee1..56293cbda1 100644 --- a/dom/filesystem/FileSystemUtils.cpp +++ b/dom/filesystem/FileSystemUtils.cpp @@ -5,6 +5,9 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/dom/FileSystemUtils.h" +#include "nsCharSeparatedTokenizer.h" +#include "nsString.h" +#include "nsTArray.h" namespace mozilla { namespace dom { diff --git a/dom/filesystem/FileSystemUtils.h b/dom/filesystem/FileSystemUtils.h index ae302e07ca..42fc5573c0 100644 --- a/dom/filesystem/FileSystemUtils.h +++ b/dom/filesystem/FileSystemUtils.h @@ -7,6 +7,8 @@ #ifndef mozilla_dom_FileSystemUtils_h #define mozilla_dom_FileSystemUtils_h +#include "nsString.h" + class nsIFile; namespace mozilla { diff --git a/dom/filesystem/GetDirectoryListingTask.cpp b/dom/filesystem/GetDirectoryListingTask.cpp index e3ac2933f9..999366fe89 100644 --- a/dom/filesystem/GetDirectoryListingTask.cpp +++ b/dom/filesystem/GetDirectoryListingTask.cpp @@ -16,10 +16,13 @@ #include "mozilla/dom/UnionTypes.h" #include "mozilla/dom/ipc/BlobChild.h" #include "mozilla/dom/ipc/BlobParent.h" +#include "mozilla/ipc/BackgroundParent.h" #include "nsIFile.h" #include "nsISimpleEnumerator.h" #include "nsStringGlue.h" +using namespace mozilla::ipc; + namespace mozilla { namespace dom { diff --git a/dom/filesystem/GetFileOrDirectoryTask.cpp b/dom/filesystem/GetFileOrDirectoryTask.cpp index f71976503c..446c641f46 100644 --- a/dom/filesystem/GetFileOrDirectoryTask.cpp +++ b/dom/filesystem/GetFileOrDirectoryTask.cpp @@ -14,9 +14,12 @@ #include "mozilla/dom/Promise.h" #include "mozilla/dom/ipc/BlobChild.h" #include "mozilla/dom/ipc/BlobParent.h" +#include "mozilla/ipc/BackgroundParent.h" #include "nsIFile.h" #include "nsStringGlue.h" +using namespace mozilla::ipc; + namespace mozilla { namespace dom { diff --git a/dom/filesystem/GetFilesHelper.cpp b/dom/filesystem/GetFilesHelper.cpp index 21d228a602..c4cbe7f140 100644 --- a/dom/filesystem/GetFilesHelper.cpp +++ b/dom/filesystem/GetFilesHelper.cpp @@ -5,8 +5,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "GetFilesHelper.h" +#include "FileSystemUtils.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" +#include "mozilla/dom/Directory.h" +#include "mozilla/dom/Promise.h" +#include "mozilla/dom/UnionTypes.h" +#include "mozilla/dom/ipc/BlobParent.h" +#include "nsContentUtils.h" +#include "nsNetCID.h" +#include "nsISimpleEnumerator.h" #include "nsProxyRelease.h" namespace mozilla { diff --git a/dom/filesystem/GetFilesHelper.h b/dom/filesystem/GetFilesHelper.h index a1bb1b27a6..371c73ef24 100644 --- a/dom/filesystem/GetFilesHelper.h +++ b/dom/filesystem/GetFilesHelper.h @@ -9,9 +9,12 @@ #include "mozilla/Mutex.h" #include "mozilla/RefPtr.h" +#include "mozilla/dom/File.h" +#include "nsClassHashtable.h" #include "nsCycleCollectionTraversalCallback.h" #include "nsTArray.h" #include "nsTHashtable.h" +#include "nsThreadUtils.h" class nsIGlobalObject; diff --git a/dom/filesystem/GetFilesTask.cpp b/dom/filesystem/GetFilesTask.cpp index 6682fb7d3e..b283eec54f 100644 --- a/dom/filesystem/GetFilesTask.cpp +++ b/dom/filesystem/GetFilesTask.cpp @@ -15,9 +15,12 @@ #include "mozilla/dom/Promise.h" #include "mozilla/dom/ipc/BlobChild.h" #include "mozilla/dom/ipc/BlobParent.h" +#include "mozilla/ipc/BackgroundParent.h" #include "nsIFile.h" #include "nsStringGlue.h" +using namespace mozilla::ipc; + namespace mozilla { namespace dom { diff --git a/dom/filesystem/moz.build b/dom/filesystem/moz.build index 6e516c3a78..1b6a8d3cae 100644 --- a/dom/filesystem/moz.build +++ b/dom/filesystem/moz.build @@ -19,7 +19,7 @@ EXPORTS.mozilla.dom += [ 'OSFileSystem.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Directory.cpp', 'FileSystemBase.cpp', 'FileSystemRequestParent.cpp', diff --git a/dom/gamepad/GamepadManager.cpp b/dom/gamepad/GamepadManager.cpp index e178296522..0c05b3ddba 100644 --- a/dom/gamepad/GamepadManager.cpp +++ b/dom/gamepad/GamepadManager.cpp @@ -20,7 +20,6 @@ #include "mozilla/StaticPtr.h" #include "nsAutoPtr.h" -#include "nsGlobalWindow.h" #include "nsIDOMEvent.h" #include "nsIDOMDocument.h" #include "nsIDOMWindow.h" diff --git a/dom/gamepad/GamepadManager.h b/dom/gamepad/GamepadManager.h index a772221cac..38fdfc342a 100644 --- a/dom/gamepad/GamepadManager.h +++ b/dom/gamepad/GamepadManager.h @@ -7,11 +7,14 @@ #ifndef mozilla_dom_GamepadManager_h_ #define mozilla_dom_GamepadManager_h_ +#include "nsGlobalWindow.h" #include "nsIIPCBackgroundChildCreateCallback.h" #include "nsIObserver.h" // Needed for GamepadMappingType #include "mozilla/dom/GamepadBinding.h" +#include "mozilla/dom/GamepadPoseState.h" #include "mozilla/dom/GamepadServiceType.h" +#include "nsRefPtrHashtable.h" class nsGlobalWindow; diff --git a/dom/gamepad/GamepadPlatformService.h b/dom/gamepad/GamepadPlatformService.h index 0a61281e42..77a08ae17d 100644 --- a/dom/gamepad/GamepadPlatformService.h +++ b/dom/gamepad/GamepadPlatformService.h @@ -15,6 +15,7 @@ namespace mozilla { namespace dom { +class GamepadChangeEvent; class GamepadEventChannelParent; // Platform Service for building and transmitting IPDL messages diff --git a/dom/gamepad/GamepadPoseState.h b/dom/gamepad/GamepadPoseState.h index 958b26139f..dc5903aba6 100644 --- a/dom/gamepad/GamepadPoseState.h +++ b/dom/gamepad/GamepadPoseState.h @@ -2,6 +2,8 @@ #ifndef mozilla_dom_gamepad_GamepadPoseState_h_ #define mozilla_dom_gamepad_GamepadPoseState_h_ +#include "mozilla/TypedEnumBits.h" + namespace mozilla{ namespace dom{ diff --git a/dom/gamepad/GamepadServiceTest.cpp b/dom/gamepad/GamepadServiceTest.cpp index 89429b52a2..e8ec46cfe1 100644 --- a/dom/gamepad/GamepadServiceTest.cpp +++ b/dom/gamepad/GamepadServiceTest.cpp @@ -22,6 +22,8 @@ #include "nsIObserver.h" #include "nsIObserverService.h" +using namespace mozilla::ipc; + namespace mozilla { namespace dom { diff --git a/dom/gamepad/android/AndroidGamepad.cpp b/dom/gamepad/android/AndroidGamepad.cpp index 706d02617b..6ed1ef2eec 100644 --- a/dom/gamepad/android/AndroidGamepad.cpp +++ b/dom/gamepad/android/AndroidGamepad.cpp @@ -7,6 +7,7 @@ #include "GeneratedJNIWrappers.h" #include "GeneratedJNINatives.h" #include "nsThreadUtils.h" +#include "mozilla/dom/Gamepad.h" namespace mozilla { namespace dom { diff --git a/dom/gamepad/cocoa/CocoaGamepad.cpp b/dom/gamepad/cocoa/CocoaGamepad.cpp index e7c986e22a..7fcf48532b 100644 --- a/dom/gamepad/cocoa/CocoaGamepad.cpp +++ b/dom/gamepad/cocoa/CocoaGamepad.cpp @@ -7,8 +7,10 @@ // mostly derived from the Allegro source code at: // http://alleg.svn.sourceforge.net/viewvc/alleg/allegro/branches/4.9/src/macosx/hidjoy.m?revision=13760&view=markup +#include "mozilla/dom/Gamepad.h" #include "mozilla/dom/GamepadPlatformService.h" #include "mozilla/ArrayUtils.h" +#include "mozilla/Unused.h" #include "nsThreadUtils.h" #include <CoreFoundation/CoreFoundation.h> #include <IOKit/hid/IOHIDBase.h> diff --git a/dom/gamepad/ipc/GamepadEventChannelParent.cpp b/dom/gamepad/ipc/GamepadEventChannelParent.cpp index c3c8fd2c8b..8060817895 100644 --- a/dom/gamepad/ipc/GamepadEventChannelParent.cpp +++ b/dom/gamepad/ipc/GamepadEventChannelParent.cpp @@ -1,9 +1,13 @@ /* 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 "GamepadEventChannelParent.h" + #include "GamepadPlatformService.h" +#include "mozilla/Unused.h" #include "mozilla/dom/GamepadMonitoring.h" +#include "mozilla/ipc/BackgroundParent.h" #include "nsThreadUtils.h" namespace mozilla { diff --git a/dom/gamepad/ipc/GamepadTestChannelParent.cpp b/dom/gamepad/ipc/GamepadTestChannelParent.cpp index 421447fe06..9730f7d167 100644 --- a/dom/gamepad/ipc/GamepadTestChannelParent.cpp +++ b/dom/gamepad/ipc/GamepadTestChannelParent.cpp @@ -5,6 +5,7 @@ #include "GamepadTestChannelParent.h" #include "mozilla/dom/GamepadPlatformService.h" +#include "mozilla/ipc/BackgroundParent.h" #include "mozilla/Unused.h" namespace mozilla { diff --git a/dom/gamepad/linux/LinuxGamepad.cpp b/dom/gamepad/linux/LinuxGamepad.cpp index c45f4174a2..8c6e8ea758 100644 --- a/dom/gamepad/linux/LinuxGamepad.cpp +++ b/dom/gamepad/linux/LinuxGamepad.cpp @@ -19,6 +19,7 @@ #include <sys/ioctl.h> #include <unistd.h> #include "nscore.h" +#include "mozilla/dom/Gamepad.h" #include "mozilla/dom/GamepadPlatformService.h" #include "udev.h" diff --git a/dom/gamepad/moz.build b/dom/gamepad/moz.build index a809d1ebaa..81ff376314 100644 --- a/dom/gamepad/moz.build +++ b/dom/gamepad/moz.build @@ -31,7 +31,7 @@ if CONFIG['MOZ_GAMEPAD']: 'ipc/GamepadTestChannelParent.h' ] - UNIFIED_SOURCES = [ + SOURCES = [ 'Gamepad.cpp', 'GamepadButton.cpp', 'GamepadManager.cpp', @@ -46,23 +46,23 @@ if CONFIG['MOZ_GAMEPAD']: ] if CONFIG['MOZ_GAMEPAD_BACKEND'] == 'stub': - UNIFIED_SOURCES += [ + SOURCES += [ 'fallback/FallbackGamepad.cpp' ] elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'cocoa': - UNIFIED_SOURCES += [ + SOURCES += [ 'cocoa/CocoaGamepad.cpp' ] elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'windows': - UNIFIED_SOURCES += [ + SOURCES += [ 'windows/WindowsGamepad.cpp' ] elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'linux': - UNIFIED_SOURCES += [ + SOURCES += [ 'linux/LinuxGamepad.cpp' ] elif CONFIG['MOZ_GAMEPAD_BACKEND'] == 'android': - UNIFIED_SOURCES += [ + SOURCES += [ 'android/AndroidGamepad.cpp' ] diff --git a/dom/gamepad/windows/WindowsGamepad.cpp b/dom/gamepad/windows/WindowsGamepad.cpp index e1965c00c8..ddab2f28cf 100644 --- a/dom/gamepad/windows/WindowsGamepad.cpp +++ b/dom/gamepad/windows/WindowsGamepad.cpp @@ -24,6 +24,7 @@ #include "mozilla/Services.h" #include "mozilla/ipc/BackgroundParent.h" +#include "mozilla/dom/Gamepad.h" #include "mozilla/dom/GamepadPlatformService.h" namespace { diff --git a/dom/geolocation/moz.build b/dom/geolocation/moz.build index 4339d5a7f3..8ac79e8b3c 100644 --- a/dom/geolocation/moz.build +++ b/dom/geolocation/moz.build @@ -13,7 +13,7 @@ SOURCES += [ 'nsGeolocation.cpp', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'MLSFallback.cpp', 'nsGeoPosition.cpp', ] diff --git a/dom/geolocation/nsGeoPosition.h b/dom/geolocation/nsGeoPosition.h index 06b406c32d..cefb4ae8d7 100644 --- a/dom/geolocation/nsGeoPosition.h +++ b/dom/geolocation/nsGeoPosition.h @@ -7,6 +7,7 @@ #ifndef nsGeoPosition_h #define nsGeoPosition_h +#include "nsCOMPtr.h" #include "nsIDOMGeoPositionCoords.h" #include "nsIDOMGeoPosition.h" #include "nsString.h" diff --git a/dom/grid/GridDimension.h b/dom/grid/GridDimension.h index 7a33735216..ec96354441 100644 --- a/dom/grid/GridDimension.h +++ b/dom/grid/GridDimension.h @@ -7,11 +7,13 @@ #ifndef mozilla_dom_GridDimension_h #define mozilla_dom_GridDimension_h +#include "mozilla/dom/GridBinding.h" #include "nsWrapperCache.h" namespace mozilla { struct ComputedGridTrackInfo; +struct ComputedGridLineInfo; namespace dom { diff --git a/dom/grid/GridLines.cpp b/dom/grid/GridLines.cpp index 8988853464..2604eff6cf 100644 --- a/dom/grid/GridLines.cpp +++ b/dom/grid/GridLines.cpp @@ -6,6 +6,7 @@ #include "GridLines.h" +#include "GridArea.h" #include "GridDimension.h" #include "GridLine.h" #include "mozilla/dom/GridBinding.h" diff --git a/dom/grid/GridLines.h b/dom/grid/GridLines.h index 9211682040..784fe2d28a 100644 --- a/dom/grid/GridLines.h +++ b/dom/grid/GridLines.h @@ -7,10 +7,15 @@ #ifndef mozilla_dom_GridLines_h #define mozilla_dom_GridLines_h -#include "nsTArray.h" +#include "mozilla/dom/GridBinding.h" +#include "nsGridContainerFrame.h" #include "nsWrapperCache.h" namespace mozilla { + +struct ComputedGridTrackInfo; +struct ComputedGridLineInfo; + namespace dom { class GridDimension; diff --git a/dom/grid/moz.build b/dom/grid/moz.build index 96d5c31510..62025c98ec 100644 --- a/dom/grid/moz.build +++ b/dom/grid/moz.build @@ -16,7 +16,7 @@ EXPORTS.mozilla.dom += [ 'GridTracks.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Grid.cpp', 'GridArea.cpp', 'GridDimension.cpp', diff --git a/dom/html/HTMLBodyElement.cpp b/dom/html/HTMLBodyElement.cpp index 6230cb6ca0..ee1bced02c 100644 --- a/dom/html/HTMLBodyElement.cpp +++ b/dom/html/HTMLBodyElement.cpp @@ -7,6 +7,7 @@ #include "HTMLBodyElement.h" #include "mozilla/dom/HTMLBodyElementBinding.h" #include "nsAttrValueInlines.h" +#include "nsContentUtils.h" #include "nsGkAtoms.h" #include "nsStyleConsts.h" #include "nsPresContext.h" diff --git a/dom/html/HTMLFrameSetElement.cpp b/dom/html/HTMLFrameSetElement.cpp index 6d39caa19a..5d49cd78e0 100644 --- a/dom/html/HTMLFrameSetElement.cpp +++ b/dom/html/HTMLFrameSetElement.cpp @@ -7,6 +7,7 @@ #include "HTMLFrameSetElement.h" #include "mozilla/dom/HTMLFrameSetElementBinding.h" #include "mozilla/dom/EventHandlerBinding.h" +#include "nsContentUtils.h" #include "nsGlobalWindow.h" #include "mozilla/UniquePtrExtensions.h" diff --git a/dom/html/HTMLLabelElement.cpp b/dom/html/HTMLLabelElement.cpp index d1c037336e..ec36c8b99d 100644 --- a/dom/html/HTMLLabelElement.cpp +++ b/dom/html/HTMLLabelElement.cpp @@ -8,6 +8,7 @@ * Implementation of HTML <label> elements. */ #include "HTMLLabelElement.h" +#include "HTMLFormElement.h" #include "mozilla/EventDispatcher.h" #include "mozilla/MouseEvents.h" #include "mozilla/dom/HTMLLabelElementBinding.h" diff --git a/dom/html/HTMLMetaElement.cpp b/dom/html/HTMLMetaElement.cpp index 47effa2bc5..de7dc184c8 100644 --- a/dom/html/HTMLMetaElement.cpp +++ b/dom/html/HTMLMetaElement.cpp @@ -11,6 +11,7 @@ #include "nsContentUtils.h" #include "nsStyleConsts.h" #include "nsIContentSecurityPolicy.h" +#include "nsIDOMDocument.h" NS_IMPL_NS_NEW_HTML_ELEMENT(Meta) diff --git a/dom/html/ValidityState.h b/dom/html/ValidityState.h index 4dbb94aada..adbd86c1d4 100644 --- a/dom/html/ValidityState.h +++ b/dom/html/ValidityState.h @@ -11,6 +11,7 @@ #include "nsIConstraintValidation.h" #include "nsWrapperCache.h" #include "js/TypeDecls.h" +#include "nsCOMPtr.h" namespace mozilla { namespace dom { diff --git a/dom/html/moz.build b/dom/html/moz.build index c86c169b5c..82d6e07b3c 100644 --- a/dom/html/moz.build +++ b/dom/html/moz.build @@ -122,7 +122,7 @@ EXPORTS.mozilla.dom += [ 'ValidityState.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'HTMLAllCollection.cpp', 'HTMLAnchorElement.cpp', 'HTMLAreaElement.cpp', @@ -206,6 +206,7 @@ UNIFIED_SOURCES += [ 'nsIConstraintValidation.cpp', 'nsRadioVisitor.cpp', 'nsTextEditorState.cpp', + 'PluginDocument.cpp', 'RadioNodeList.cpp', 'TextTrackManager.cpp', 'TimeRanges.cpp', @@ -213,11 +214,6 @@ UNIFIED_SOURCES += [ 'VideoDocument.cpp', ] -SOURCES += [ - # Includes npapi.h. - 'PluginDocument.cpp', -] - EXTRA_COMPONENTS += [ 'htmlMenuBuilder.js', 'htmlMenuBuilder.manifest' diff --git a/dom/html/nsBrowserElement.cpp b/dom/html/nsBrowserElement.cpp index 858d1c7cb5..1c2f00c158 100644 --- a/dom/html/nsBrowserElement.cpp +++ b/dom/html/nsBrowserElement.cpp @@ -18,8 +18,10 @@ #include "mozIApplication.h" #include "nsComponentManagerUtils.h" +#include "nsContentUtils.h" #include "nsFrameLoader.h" #include "nsIAppsService.h" +#include "nsIDOMDocument.h" #include "nsIDOMDOMRequest.h" #include "nsIDOMElement.h" #include "nsIMozBrowserFrame.h" diff --git a/dom/html/nsHTMLDocument.cpp b/dom/html/nsHTMLDocument.cpp index 0f2d906734..fc5268acc5 100644 --- a/dom/html/nsHTMLDocument.cpp +++ b/dom/html/nsHTMLDocument.cpp @@ -28,6 +28,7 @@ #include "nsIDOMElement.h" #include "nsPIDOMWindow.h" #include "nsDOMString.h" +#include "nsIProtocolHandler.h" #include "nsIStreamListener.h" #include "nsIURI.h" #include "nsIIOService.h" diff --git a/dom/html/nsIConstraintValidation.cpp b/dom/html/nsIConstraintValidation.cpp index 00f34df67a..db69cba07d 100644 --- a/dom/html/nsIConstraintValidation.cpp +++ b/dom/html/nsIConstraintValidation.cpp @@ -13,6 +13,8 @@ #include "mozilla/dom/HTMLInputElement.h" #include "mozilla/dom/ValidityState.h" #include "nsIFormControl.h" +#include "nsIMutableArray.h" +#include "nsISimpleEnumerator.h" #include "nsContentUtils.h" #include "nsIFormSubmitObserver.h" diff --git a/dom/indexedDB/IDBDatabase.cpp b/dom/indexedDB/IDBDatabase.cpp index 6ef3528011..8a1fa4b217 100644 --- a/dom/indexedDB/IDBDatabase.cpp +++ b/dom/indexedDB/IDBDatabase.cpp @@ -16,6 +16,7 @@ #include "IDBTransaction.h" #include "IDBFactory.h" #include "IndexedDatabaseManager.h" +#include "KeyPath.h" #include "mozilla/ErrorResult.h" #include "mozilla/EventDispatcher.h" #include "MainThreadUtils.h" @@ -54,13 +55,15 @@ // Include this last to avoid path problems on Windows. #include "ActorsChild.h" -namespace mozilla { -namespace dom { +using namespace mozilla::dom::indexedDB; using namespace mozilla::dom::quota; using namespace mozilla::ipc; using namespace mozilla::services; +namespace mozilla { +namespace dom { + namespace { const char kCycleCollectionObserverTopic[] = "cycle-collector-end"; diff --git a/dom/indexedDB/IDBFactory.cpp b/dom/indexedDB/IDBFactory.cpp index 66471fe24b..1fae686b4e 100644 --- a/dom/indexedDB/IDBFactory.cpp +++ b/dom/indexedDB/IDBFactory.cpp @@ -41,6 +41,8 @@ #include "nsContentUtils.h" // For assertions. #endif +using namespace mozilla::dom::indexedDB; + namespace mozilla { namespace dom { diff --git a/dom/indexedDB/IDBFileHandle.cpp b/dom/indexedDB/IDBFileHandle.cpp index 8b88e1722a..3287cf4048 100644 --- a/dom/indexedDB/IDBFileHandle.cpp +++ b/dom/indexedDB/IDBFileHandle.cpp @@ -12,6 +12,8 @@ #include "mozilla/dom/IDBFileHandleBinding.h" #include "mozilla/dom/filehandle/ActorsChild.h" #include "mozilla/EventDispatcher.h" +#include "nsContentUtils.h" +#include "nsQueryObject.h" #include "nsServiceManagerUtils.h" #include "nsWidgetsCID.h" diff --git a/dom/indexedDB/IDBIndex.cpp b/dom/indexedDB/IDBIndex.cpp index af50926e62..f47098fce0 100644 --- a/dom/indexedDB/IDBIndex.cpp +++ b/dom/indexedDB/IDBIndex.cpp @@ -23,6 +23,9 @@ // Include this last to avoid path problems on Windows. #include "ActorsChild.h" +using namespace mozilla::dom; +using namespace mozilla::dom::indexedDB; + namespace mozilla { namespace dom { diff --git a/dom/indexedDB/IDBObjectStore.cpp b/dom/indexedDB/IDBObjectStore.cpp index cbac308947..1216c8f843 100644 --- a/dom/indexedDB/IDBObjectStore.cpp +++ b/dom/indexedDB/IDBObjectStore.cpp @@ -52,6 +52,8 @@ // Include this last to avoid path problems on Windows. #include "ActorsChild.h" +using namespace mozilla::dom::indexedDB; + namespace mozilla { namespace dom { diff --git a/dom/indexedDB/IDBTransaction.cpp b/dom/indexedDB/IDBTransaction.cpp index a50489898a..61b49b137c 100644 --- a/dom/indexedDB/IDBTransaction.cpp +++ b/dom/indexedDB/IDBTransaction.cpp @@ -18,6 +18,7 @@ #include "mozilla/ipc/BackgroundChild.h" #include "nsAutoPtr.h" #include "nsPIDOMWindow.h" +#include "nsQueryObject.h" #include "nsServiceManagerUtils.h" #include "nsTHashtable.h" #include "ProfilerHelpers.h" diff --git a/dom/indexedDB/KeyPath.cpp b/dom/indexedDB/KeyPath.cpp index 0221c94500..74316f4653 100644 --- a/dom/indexedDB/KeyPath.cpp +++ b/dom/indexedDB/KeyPath.cpp @@ -11,10 +11,12 @@ #include "nsCharSeparatedTokenizer.h" #include "nsJSUtils.h" +#include "nsPrintfCString.h" #include "xpcpublic.h" #include "mozilla/dom/BindingDeclarations.h" #include "mozilla/dom/BlobBinding.h" +#include "mozilla/dom/File.h" // for Blob #include "mozilla/dom/IDBObjectStoreBinding.h" namespace mozilla { diff --git a/dom/indexedDB/ScriptErrorHelper.h b/dom/indexedDB/ScriptErrorHelper.h index d1cd8c7493..1716af87f3 100644 --- a/dom/indexedDB/ScriptErrorHelper.h +++ b/dom/indexedDB/ScriptErrorHelper.h @@ -7,6 +7,8 @@ #ifndef mozilla_dom_indexeddb_scripterrorhelper_h__ #define mozilla_dom_indexeddb_scripterrorhelper_h__ +#include "nsString.h" + class nsAString; namespace mozilla { diff --git a/dom/indexedDB/moz.build b/dom/indexedDB/moz.build index d8c217f381..0505993931 100644 --- a/dom/indexedDB/moz.build +++ b/dom/indexedDB/moz.build @@ -45,7 +45,7 @@ EXPORTS.mozilla.dom.indexedDB += [ 'SerializationHelpers.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ActorsChild.cpp', 'FileInfo.cpp', 'FileSnapshot.cpp', diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp index 0d11fb8898..deea691f37 100644 --- a/dom/ipc/ContentParent.cpp +++ b/dom/ipc/ContentParent.cpp @@ -109,6 +109,7 @@ #include "nsIDOMWindow.h" #include "nsIExternalProtocolService.h" #include "nsIFormProcessor.h" +#include "nsIFrameLoader.h" #include "nsIGfxInfo.h" #include "nsIIdleService.h" #include "nsIInterfaceRequestorUtils.h" @@ -229,6 +230,7 @@ static NS_DEFINE_CID(kCClipboardCID, NS_CLIPBOARD_CID); using base::ChildPrivileges; using base::KillProcess; +using namespace mozilla::dom; using namespace mozilla::dom::power; using namespace mozilla::media; using namespace mozilla::embedding; diff --git a/dom/ipc/StructuredCloneData.cpp b/dom/ipc/StructuredCloneData.cpp index 2c1fff2ac3..6b3ee0cd1a 100644 --- a/dom/ipc/StructuredCloneData.cpp +++ b/dom/ipc/StructuredCloneData.cpp @@ -13,6 +13,7 @@ #include "ipc/IPCMessageUtils.h" #include "mozilla/dom/BindingUtils.h" #include "mozilla/dom/BlobBinding.h" +#include "mozilla/dom/DOMTypes.h" #include "mozilla/dom/File.h" #include "mozilla/dom/ToJSValue.h" #include "nsContentUtils.h" diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index e1355adee0..aac95ae025 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -71,6 +71,7 @@ #include "nsIURI.h" #include "nsIURIFixup.h" #include "nsCDefaultURIFixup.h" +#include "nsISupportsPrimitives.h" #include "nsIWebBrowser.h" #include "nsIWebBrowserFocus.h" #include "nsIWebBrowserSetup.h" diff --git a/dom/ipc/moz.build b/dom/ipc/moz.build index 5629ab2c6e..455d0eff78 100644 --- a/dom/ipc/moz.build +++ b/dom/ipc/moz.build @@ -44,11 +44,13 @@ EXPORTS.mozilla += [ 'ProcessPriorityManager.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'AppProcessChecker.cpp', + 'Blob.cpp', 'ColorPickerParent.cpp', 'ContentBridgeChild.cpp', 'ContentBridgeParent.cpp', + 'ContentChild.cpp', 'ContentParent.cpp', 'ContentProcess.cpp', 'ContentProcessManager.cpp', @@ -57,6 +59,7 @@ UNIFIED_SOURCES += [ 'nsIContentParent.cpp', 'PermissionMessageUtils.cpp', 'PreallocatedProcessManager.cpp', + 'ProcessHangMonitor.cpp', 'ProcessPriorityManager.cpp', 'ScreenManagerParent.cpp', 'StructuredCloneData.cpp', @@ -66,14 +69,6 @@ UNIFIED_SOURCES += [ 'TabParent.cpp', ] -# Blob.cpp cannot be compiled in unified mode because it triggers a fatal gcc warning. -# ContentChild.cpp cannot be compiled in unified mode on linux due to Time conflict -SOURCES += [ - 'Blob.cpp', - 'ContentChild.cpp', - 'ProcessHangMonitor.cpp', -] - IPDL_SOURCES += [ 'BlobTypes.ipdlh', 'DOMTypes.ipdlh', diff --git a/dom/ipc/nsIContentParent.cpp b/dom/ipc/nsIContentParent.cpp index 0ef1abdf72..77bfae4c74 100644 --- a/dom/ipc/nsIContentParent.cpp +++ b/dom/ipc/nsIContentParent.cpp @@ -27,6 +27,7 @@ #include "nsPrintfCString.h" #include "xpcpublic.h" +using namespace mozilla::ipc; using namespace mozilla::jsipc; // XXX need another bug to move this to a common header. diff --git a/dom/json/moz.build b/dom/json/moz.build index 635dca2554..28711b19a1 100644 --- a/dom/json/moz.build +++ b/dom/json/moz.build @@ -4,17 +4,11 @@ # 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/. -EXPORTS += [ - 'nsJSON.h', -] +EXPORTS += ['nsJSON.h'] -UNIFIED_SOURCES += [ - 'nsJSON.cpp', -] +SOURCES += ['nsJSON.cpp'] -LOCAL_INCLUDES += [ - '/dom/base', -] +LOCAL_INCLUDES += ['/dom/base'] FINAL_LIBRARY = 'xul' diff --git a/dom/jsurl/moz.build b/dom/jsurl/moz.build index f5579b64da..c0c82a141f 100644 --- a/dom/jsurl/moz.build +++ b/dom/jsurl/moz.build @@ -8,7 +8,7 @@ EXPORTS += [ 'nsJSProtocolHandler.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsJSProtocolHandler.cpp', ] diff --git a/dom/mathml/moz.build b/dom/mathml/moz.build index 307c1603e7..d483008aaa 100644 --- a/dom/mathml/moz.build +++ b/dom/mathml/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'nsMathMLElement.cpp', 'nsMathMLElementFactory.cpp', ] @@ -12,6 +12,5 @@ UNIFIED_SOURCES += [ include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' -LOCAL_INCLUDES += [ - '/dom/base', -] + +LOCAL_INCLUDES += ['/dom/base'] diff --git a/dom/media/Benchmark.cpp b/dom/media/Benchmark.cpp index 7394f8036b..e2b4abe7bb 100644 --- a/dom/media/Benchmark.cpp +++ b/dom/media/Benchmark.cpp @@ -11,6 +11,7 @@ #include "PDMFactory.h" #include "WebMDemuxer.h" #include "mozilla/Preferences.h" +#include "mozilla/SharedThreadPool.h" #include "mozilla/dom/ContentChild.h" #ifndef MOZ_WIDGET_ANDROID diff --git a/dom/media/CanvasCaptureMediaStream.cpp b/dom/media/CanvasCaptureMediaStream.cpp index f40f01e210..acf2059c77 100644 --- a/dom/media/CanvasCaptureMediaStream.cpp +++ b/dom/media/CanvasCaptureMediaStream.cpp @@ -8,6 +8,7 @@ #include "gfxPlatform.h" #include "ImageContainer.h" #include "MediaStreamGraph.h" +#include "MediaStreamListener.h" #include "mozilla/dom/CanvasCaptureMediaStreamBinding.h" #include "mozilla/gfx/2D.h" #include "mozilla/Atomics.h" diff --git a/dom/media/CubebUtils.cpp b/dom/media/CubebUtils.cpp index 6bb846afe2..7f203ce629 100644 --- a/dom/media/CubebUtils.cpp +++ b/dom/media/CubebUtils.cpp @@ -10,6 +10,8 @@ #include "nsDebug.h" #include "nsString.h" #include "mozilla/Preferences.h" +#include "mozilla/Services.h" +#include "mozilla/Sprintf.h" #include "mozilla/StaticMutex.h" #include "mozilla/StaticPtr.h" #include "mozilla/Telemetry.h" diff --git a/dom/media/DOMMediaStream.cpp b/dom/media/DOMMediaStream.cpp index 118d845a3c..53d096d6e3 100755 --- a/dom/media/DOMMediaStream.cpp +++ b/dom/media/DOMMediaStream.cpp @@ -14,6 +14,7 @@ #include "mozilla/dom/MediaStreamTrackEvent.h" #include "mozilla/dom/LocalMediaStreamBinding.h" #include "mozilla/dom/AudioNode.h" +#include "AudioCaptureStream.h" #include "AudioChannelAgent.h" #include "mozilla/dom/AudioTrack.h" #include "mozilla/dom/AudioTrackList.h" @@ -22,6 +23,7 @@ #include "mozilla/dom/HTMLCanvasElement.h" #include "mozilla/media/MediaUtils.h" #include "MediaStreamGraph.h" +#include "MediaStreamListener.h" #include "AudioStreamTrack.h" #include "VideoStreamTrack.h" #include "Layers.h" diff --git a/dom/media/MediaDecoder.cpp b/dom/media/MediaDecoder.cpp index 0cce91ccb7..b1f2f95d7c 100644 --- a/dom/media/MediaDecoder.cpp +++ b/dom/media/MediaDecoder.cpp @@ -788,6 +788,13 @@ MediaDecoder::CallSeek(const SeekTarget& aTarget, dom::Promise* aPromise) &MediaDecoder::OnSeekResolved, &MediaDecoder::OnSeekRejected)); } +// GetCurrentTime is defined in winbase.h as a zero argument macro forwarding to +// GetTickCount(), which conflicts with the MediaDecoder::GetCurrentTime +// implementation here. Clear the macro. +#ifdef GetCurrentTime +#undef GetCurrentTime +#endif + double MediaDecoder::GetCurrentTime() { diff --git a/dom/media/MediaDecoderReader.cpp b/dom/media/MediaDecoderReader.cpp index b6cdf9080c..046f81b2e3 100644 --- a/dom/media/MediaDecoderReader.cpp +++ b/dom/media/MediaDecoderReader.cpp @@ -14,6 +14,7 @@ #include "nsPrintfCString.h" #include "mozilla/mozalloc.h" #include "mozilla/Mutex.h" +#include "mozilla/SharedThreadPool.h" #include <stdint.h> #include <algorithm> diff --git a/dom/media/MediaStreamListener.h b/dom/media/MediaStreamListener.h index 2b6be85cf4..eefd4adac8 100644 --- a/dom/media/MediaStreamListener.h +++ b/dom/media/MediaStreamListener.h @@ -7,7 +7,9 @@ #ifndef MOZILLA_MEDIASTREAMLISTENER_h_ #define MOZILLA_MEDIASTREAMLISTENER_h_ +#include "MediaStreamGraph.h" #include "StreamTracks.h" +#include "MediaStreamGraph.h" namespace mozilla { diff --git a/dom/media/MediaStreamTrack.cpp b/dom/media/MediaStreamTrack.cpp index 75cdeb1d16..648ec82a0f 100644 --- a/dom/media/MediaStreamTrack.cpp +++ b/dom/media/MediaStreamTrack.cpp @@ -7,8 +7,10 @@ #include "DOMMediaStream.h" #include "MediaStreamGraph.h" +#include "nsContentUtils.h" #include "nsIUUIDGenerator.h" #include "nsServiceManagerUtils.h" +#include "MediaStreamError.h" #include "MediaStreamListener.h" #include "systemservices/MediaUtils.h" @@ -21,6 +23,8 @@ static mozilla::LazyLogModule gMediaStreamTrackLog("MediaStreamTrack"); #define LOG(type, msg) MOZ_LOG(gMediaStreamTrackLog, type, msg) +using namespace mozilla::media; + namespace mozilla { namespace dom { diff --git a/dom/media/eme/MediaKeySystemAccess.cpp b/dom/media/eme/MediaKeySystemAccess.cpp index 4a5a7a30cf..e4e86f4c5b 100644 --- a/dom/media/eme/MediaKeySystemAccess.cpp +++ b/dom/media/eme/MediaKeySystemAccess.cpp @@ -36,9 +36,11 @@ #include "mozilla/ClearOnShutdown.h" #include "nsUnicharUtils.h" #include "mozilla/dom/MediaSource.h" +#include "DecoderTraits.h" #ifdef MOZ_WIDGET_ANDROID #include "FennecJNIWrappers.h" #endif + namespace mozilla { namespace dom { diff --git a/dom/media/eme/mediadrm/moz.build b/dom/media/eme/mediadrm/moz.build index c01f7a52e2..83479d670e 100644 --- a/dom/media/eme/mediadrm/moz.build +++ b/dom/media/eme/mediadrm/moz.build @@ -10,7 +10,7 @@ EXPORTS.mozilla += [ 'MediaDrmProxySupport.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'MediaDrmCDMCallbackProxy.cpp', 'MediaDrmCDMProxy.cpp', 'MediaDrmProxySupport.cpp', diff --git a/dom/media/eme/moz.build b/dom/media/eme/moz.build index 47e622ae36..b55ae3df59 100644 --- a/dom/media/eme/moz.build +++ b/dom/media/eme/moz.build @@ -23,7 +23,7 @@ EXPORTS.mozilla += [ 'EMEUtils.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'CDMCaps.cpp', 'DetailedPromise.cpp', 'EMEUtils.cpp', diff --git a/dom/media/encoder/OpusTrackEncoder.cpp b/dom/media/encoder/OpusTrackEncoder.cpp index 4b55b3954f..aa732b392e 100644 --- a/dom/media/encoder/OpusTrackEncoder.cpp +++ b/dom/media/encoder/OpusTrackEncoder.cpp @@ -2,7 +2,9 @@ /* 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 "OpusTrackEncoder.h" +#include "VideoUtils.h" #include "nsString.h" #include "GeckoProfiler.h" diff --git a/dom/media/encoder/moz.build b/dom/media/encoder/moz.build index f29430cb03..925c36f90f 100644 --- a/dom/media/encoder/moz.build +++ b/dom/media/encoder/moz.build @@ -16,7 +16,7 @@ EXPORTS += [ 'TrackMetadataBase.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'MediaEncoder.cpp', 'OpusTrackEncoder.cpp', 'TrackEncoder.cpp', @@ -25,8 +25,10 @@ UNIFIED_SOURCES += [ if CONFIG['MOZ_WEBM_ENCODER']: EXPORTS += ['VP8TrackEncoder.h', ] - UNIFIED_SOURCES += ['VP8TrackEncoder.cpp', + + SOURCES += ['VP8TrackEncoder.cpp', ] + LOCAL_INCLUDES += ['/media/libyuv/include'] FINAL_LIBRARY = 'xul' diff --git a/dom/media/flac/FlacDemuxer.cpp b/dom/media/flac/FlacDemuxer.cpp index 7a98edbee6..6df09cc256 100644 --- a/dom/media/flac/FlacDemuxer.cpp +++ b/dom/media/flac/FlacDemuxer.cpp @@ -33,14 +33,6 @@ namespace flac { // flac::FrameHeader - Holds the flac frame header and its parsing // state. -#define FLAC_MAX_CHANNELS 8 -#define FLAC_MIN_BLOCKSIZE 16 -#define FLAC_MAX_BLOCKSIZE 65535 -#define FLAC_MIN_FRAME_SIZE 11 -#define FLAC_MAX_FRAME_HEADER_SIZE 16 -#define FLAC_MAX_FRAME_SIZE (FLAC_MAX_FRAME_HEADER_SIZE \ - +FLAC_MAX_BLOCKSIZE*FLAC_MAX_CHANNELS*3) - class FrameHeader { public: const AudioInfo& Info() const { return mInfo; } diff --git a/dom/media/flac/FlacDemuxer.h b/dom/media/flac/FlacDemuxer.h index fd0e35c94e..248ae861f8 100644 --- a/dom/media/flac/FlacDemuxer.h +++ b/dom/media/flac/FlacDemuxer.h @@ -13,6 +13,15 @@ namespace mozilla { namespace flac { + +#define FLAC_MAX_CHANNELS 8 +#define FLAC_MIN_BLOCKSIZE 16 +#define FLAC_MAX_BLOCKSIZE 65535 +#define FLAC_MIN_FRAME_SIZE 11 +#define FLAC_MAX_FRAME_HEADER_SIZE 16 +#define FLAC_MAX_FRAME_SIZE (FLAC_MAX_FRAME_HEADER_SIZE \ + +FLAC_MAX_BLOCKSIZE*FLAC_MAX_CHANNELS*3) + class Frame; class FrameParser; } diff --git a/dom/media/flac/FlacFrameParser.cpp b/dom/media/flac/FlacFrameParser.cpp index f2d6c1367e..c31161cbc0 100644 --- a/dom/media/flac/FlacFrameParser.cpp +++ b/dom/media/flac/FlacFrameParser.cpp @@ -7,6 +7,7 @@ #include "FlacFrameParser.h" #include "mp4_demuxer/ByteReader.h" #include "nsTArray.h" +#include "FlacDemuxer.h" #include "OggCodecState.h" #include "OpusParser.h" #include "VideoUtils.h" diff --git a/dom/media/flac/moz.build b/dom/media/flac/moz.build index 6933ded1f9..86427e0dd9 100644 --- a/dom/media/flac/moz.build +++ b/dom/media/flac/moz.build @@ -10,7 +10,7 @@ EXPORTS += [ 'FlacFrameParser.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'FlacDecoder.cpp', 'FlacDemuxer.cpp', 'FlacFrameParser.cpp', diff --git a/dom/media/fmp4/moz.build b/dom/media/fmp4/moz.build index a79fb02295..535a992539 100644 --- a/dom/media/fmp4/moz.build +++ b/dom/media/fmp4/moz.build @@ -10,13 +10,10 @@ EXPORTS += [ 'MP4Stream.h', ] -UNIFIED_SOURCES += [ - 'MP4Decoder.cpp', - 'MP4Stream.cpp', -] - SOURCES += [ + 'MP4Decoder.cpp', 'MP4Demuxer.cpp', + 'MP4Stream.cpp', ] FINAL_LIBRARY = 'xul' diff --git a/dom/media/gmp/GMPDecryptorParent.cpp b/dom/media/gmp/GMPDecryptorParent.cpp index 4f54021605..56474e9736 100644 --- a/dom/media/gmp/GMPDecryptorParent.cpp +++ b/dom/media/gmp/GMPDecryptorParent.cpp @@ -4,7 +4,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "GMPDecryptorParent.h" + #include "GMPContentParent.h" +#include "GMPUtils.h" #include "MediaData.h" #include "mozilla/Unused.h" diff --git a/dom/media/gmp/GMPUtils.cpp b/dom/media/gmp/GMPUtils.cpp index d275237605..6c2147ae23 100644 --- a/dom/media/gmp/GMPUtils.cpp +++ b/dom/media/gmp/GMPUtils.cpp @@ -10,8 +10,10 @@ #include "nsCOMPtr.h" #include "nsLiteralString.h" #include "nsCRTGlue.h" +#include "mozIGeckoMediaPluginService.h" #include "mozilla/Base64.h" #include "nsISimpleEnumerator.h" +#include "prio.h" namespace mozilla { diff --git a/dom/media/gmp/moz.build b/dom/media/gmp/moz.build index 79de6e1d96..8595ee0de2 100644 --- a/dom/media/gmp/moz.build +++ b/dom/media/gmp/moz.build @@ -87,7 +87,7 @@ if CONFIG['OS_TARGET'] == 'Android': 'rlz', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'GMPAudioDecoderChild.cpp', 'GMPAudioDecoderParent.cpp', 'GMPAudioHost.cpp', @@ -123,7 +123,7 @@ UNIFIED_SOURCES += [ ] if CONFIG['MOZ_EME']: - UNIFIED_SOURCES += [ + SOURCES += [ 'GMPCDMCallbackProxy.cpp', 'GMPCDMProxy.cpp', ] diff --git a/dom/media/imagecapture/CaptureTask.cpp b/dom/media/imagecapture/CaptureTask.cpp index 589ba5a429..9f1eea9ef6 100644 --- a/dom/media/imagecapture/CaptureTask.cpp +++ b/dom/media/imagecapture/CaptureTask.cpp @@ -15,24 +15,6 @@ namespace mozilla { -class CaptureTask::MediaStreamEventListener : public MediaStreamTrackListener -{ -public: - explicit MediaStreamEventListener(CaptureTask* aCaptureTask) - : mCaptureTask(aCaptureTask) {}; - - // MediaStreamListener methods. - void NotifyEnded() override - { - if(!mCaptureTask->mImageGrabbedOrTrackEnd) { - mCaptureTask->PostTrackEndEvent(); - } - } - -private: - CaptureTask* mCaptureTask; -}; - CaptureTask::CaptureTask(dom::ImageCapture* aImageCapture) : mImageCapture(aImageCapture) , mEventListener(new MediaStreamEventListener(this)) diff --git a/dom/media/imagecapture/CaptureTask.h b/dom/media/imagecapture/CaptureTask.h index 2b4f0a04ce..f9c810158c 100644 --- a/dom/media/imagecapture/CaptureTask.h +++ b/dom/media/imagecapture/CaptureTask.h @@ -86,6 +86,24 @@ protected: bool mPrincipalChanged; }; +class CaptureTask::MediaStreamEventListener : public MediaStreamTrackListener +{ +public: + explicit MediaStreamEventListener(CaptureTask* aCaptureTask) + : mCaptureTask(aCaptureTask) {}; + + // MediaStreamListener methods. + void NotifyEnded() override + { + if(!mCaptureTask->mImageGrabbedOrTrackEnd) { + mCaptureTask->PostTrackEndEvent(); + } + } + +private: + CaptureTask* mCaptureTask; +}; + } // namespace mozilla #endif // CAPTURETASK_H diff --git a/dom/media/imagecapture/moz.build b/dom/media/imagecapture/moz.build index f47649c5e2..c1a58ff378 100644 --- a/dom/media/imagecapture/moz.build +++ b/dom/media/imagecapture/moz.build @@ -8,7 +8,7 @@ EXPORTS.mozilla.dom += [ 'ImageCapture.h' ] -UNIFIED_SOURCES += [ +SOURCES += [ 'CaptureTask.cpp', 'ImageCapture.cpp', ] diff --git a/dom/media/mediasink/DecodedStream.cpp b/dom/media/mediasink/DecodedStream.cpp index 00bc5ea493..54161be5cf 100644 --- a/dom/media/mediasink/DecodedStream.cpp +++ b/dom/media/mediasink/DecodedStream.cpp @@ -19,6 +19,8 @@ #include "VideoSegment.h" #include "VideoUtils.h" +#include "nsPrintfCString.h" + namespace mozilla { #undef DUMP_LOG diff --git a/dom/media/mediasink/VideoSink.cpp b/dom/media/mediasink/VideoSink.cpp index 18c0b22ad5..a438cf8a4f 100644 --- a/dom/media/mediasink/VideoSink.cpp +++ b/dom/media/mediasink/VideoSink.cpp @@ -4,9 +4,11 @@ * 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 "MediaStreamGraph.h" #include "MediaQueue.h" #include "VideoSink.h" #include "MediaPrefs.h" +#include "nsPrintfCString.h" namespace mozilla { diff --git a/dom/media/mediasink/moz.build b/dom/media/mediasink/moz.build index c093413744..34c78a7493 100644 --- a/dom/media/mediasink/moz.build +++ b/dom/media/mediasink/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'AudioSinkWrapper.cpp', 'DecodedAudioDataSink.cpp', 'DecodedStream.cpp', diff --git a/dom/media/mediasource/TrackBuffersManager.cpp b/dom/media/mediasource/TrackBuffersManager.cpp index 9a2d00ad8d..b9cf194924 100644 --- a/dom/media/mediasource/TrackBuffersManager.cpp +++ b/dom/media/mediasource/TrackBuffersManager.cpp @@ -40,6 +40,7 @@ using media::TimeUnit; using media::TimeInterval; using media::TimeIntervals; typedef SourceBufferTask::AppendBufferResult AppendBufferResult; +typedef SourceBufferAttributes::AppendState AppendState; static const char* AppendStateToStr(SourceBufferAttributes::AppendState aState) diff --git a/dom/media/mediasource/moz.build b/dom/media/mediasource/moz.build index a1689c2169..dfa227a86c 100644 --- a/dom/media/mediasource/moz.build +++ b/dom/media/mediasource/moz.build @@ -21,7 +21,7 @@ EXPORTS.mozilla.dom += [ 'SourceBufferList.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ContainerParser.cpp', 'MediaSource.cpp', 'MediaSourceDecoder.cpp', diff --git a/dom/media/moz.build b/dom/media/moz.build index 41267a6ef4..4cb514a084 100644 --- a/dom/media/moz.build +++ b/dom/media/moz.build @@ -184,7 +184,7 @@ EXPORTS.mozilla.dom += [ 'VideoTrackList.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'AccurateSeekTask.cpp', 'ADTSDecoder.cpp', 'ADTSDemuxer.cpp', @@ -201,6 +201,7 @@ UNIFIED_SOURCES += [ 'CanvasCaptureMediaStream.cpp', 'CubebUtils.cpp', 'DecoderDoctorDiagnostics.cpp', + 'DecoderTraits.cpp', 'DOMMediaStream.cpp', 'EncodedBufferCache.cpp', 'FileBlockCache.cpp', @@ -256,11 +257,6 @@ UNIFIED_SOURCES += [ if CONFIG['OS_TARGET'] == 'WINNT': SOURCES += [ 'ThreadPoolCOMListener.cpp' ] -# DecoderTraits.cpp needs to be built separately because of Mac OS X headers. -SOURCES += [ - 'DecoderTraits.cpp', -] - # Some codec-related code uses multi-character constants, which GCC and clang # warn about. Suppress turning this warning into an error. if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']: diff --git a/dom/media/mp3/moz.build b/dom/media/mp3/moz.build index 596d061f81..838a5a8540 100644 --- a/dom/media/mp3/moz.build +++ b/dom/media/mp3/moz.build @@ -9,7 +9,7 @@ EXPORTS += [ 'MP3Demuxer.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'MP3Decoder.cpp', 'MP3Demuxer.cpp', ] diff --git a/dom/media/ogg/OggDemuxer.cpp b/dom/media/ogg/OggDemuxer.cpp index 0cc4846878..f9475700a2 100644 --- a/dom/media/ogg/OggDemuxer.cpp +++ b/dom/media/ogg/OggDemuxer.cpp @@ -21,6 +21,7 @@ #include <algorithm> extern mozilla::LazyLogModule gMediaDemuxerLog; +#define LOG(type, msg) MOZ_LOG(gMediaDecoderLog, type, msg) #define OGG_DEBUG(arg, ...) MOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, ("OggDemuxer(%p)::%s: " arg, this, __func__, ##__VA_ARGS__)) // Un-comment to enable logging of seek bisections. diff --git a/dom/media/ogg/moz.build b/dom/media/ogg/moz.build index 07e195b6f7..c47abf690d 100644 --- a/dom/media/ogg/moz.build +++ b/dom/media/ogg/moz.build @@ -13,7 +13,7 @@ EXPORTS += [ 'OpusParser.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'OggCodecState.cpp', 'OggCodecStore.cpp', 'OggDecoder.cpp', diff --git a/dom/media/platforms/PlatformDecoderModule.h b/dom/media/platforms/PlatformDecoderModule.h index 7480d8ff9a..5684dea2de 100644 --- a/dom/media/platforms/PlatformDecoderModule.h +++ b/dom/media/platforms/PlatformDecoderModule.h @@ -7,6 +7,8 @@ #if !defined(PlatformDecoderModule_h_) #define PlatformDecoderModule_h_ +#include "ImageContainer.h" +#include "DecoderDoctorDiagnostics.h" #include "MediaDecoderReader.h" #include "MediaInfo.h" #include "mozilla/MozPromise.h" diff --git a/dom/media/platforms/agnostic/TheoraDecoder.cpp b/dom/media/platforms/agnostic/TheoraDecoder.cpp index b216791e49..695e697d7c 100644 --- a/dom/media/platforms/agnostic/TheoraDecoder.cpp +++ b/dom/media/platforms/agnostic/TheoraDecoder.cpp @@ -10,6 +10,7 @@ #include "nsError.h" #include "TimeUnits.h" #include "mozilla/PodOperations.h" +#include "mozilla/SyncRunnable.h" #include <algorithm> diff --git a/dom/media/platforms/agnostic/eme/moz.build b/dom/media/platforms/agnostic/eme/moz.build index 78b76d4d44..e48d49d809 100644 --- a/dom/media/platforms/agnostic/eme/moz.build +++ b/dom/media/platforms/agnostic/eme/moz.build @@ -11,7 +11,7 @@ EXPORTS += [ 'SamplesWaitingForKey.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'EMEAudioDecoder.cpp', 'EMEDecoderModule.cpp', 'EMEVideoDecoder.cpp', diff --git a/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp b/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp index 912b88ce12..26d029da05 100644 --- a/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp +++ b/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp @@ -10,6 +10,7 @@ #include "prsystem.h" #include "MediaData.h" #include "GMPDecoderModule.h" +#include "MP4Decoder.h" #include "VPXDecoder.h" namespace mozilla { diff --git a/dom/media/platforms/agnostic/gmp/moz.build b/dom/media/platforms/agnostic/gmp/moz.build index eb2738e26d..644df47a37 100644 --- a/dom/media/platforms/agnostic/gmp/moz.build +++ b/dom/media/platforms/agnostic/gmp/moz.build @@ -11,7 +11,7 @@ EXPORTS += [ 'MediaDataDecoderProxy.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'GMPAudioDecoder.cpp', 'GMPDecoderModule.cpp', 'GMPVideoDecoder.cpp', diff --git a/dom/media/platforms/apple/AppleCMLinker.cpp b/dom/media/platforms/apple/AppleCMLinker.cpp index 5227bf9e55..b1417b46a7 100644 --- a/dom/media/platforms/apple/AppleCMLinker.cpp +++ b/dom/media/platforms/apple/AppleCMLinker.cpp @@ -7,7 +7,9 @@ #include <dlfcn.h> #include "AppleCMLinker.h" +#include "PlatformDecoderModule.h" #include "mozilla/ArrayUtils.h" +#include "mozilla/Logging.h" #include "nsDebug.h" #define LOG(...) MOZ_LOG(sPDMLog, mozilla::LogLevel::Debug, (__VA_ARGS__)) diff --git a/dom/media/platforms/apple/AppleVTDecoder.cpp b/dom/media/platforms/apple/AppleVTDecoder.cpp index 81638870a0..93a480266d 100644 --- a/dom/media/platforms/apple/AppleVTDecoder.cpp +++ b/dom/media/platforms/apple/AppleVTDecoder.cpp @@ -11,12 +11,15 @@ #include "AppleUtils.h" #include "AppleVTDecoder.h" #include "AppleVTLinker.h" +#include "MacIOSurfaceImage.h" #include "MediaData.h" #include "mozilla/ArrayUtils.h" #include "mp4_demuxer/H264.h" #include "nsAutoPtr.h" #include "nsThreadUtils.h" #include "mozilla/Logging.h" +#include "mozilla/SyncRunnable.h" +#include "mozilla/gfx/MacIOSurface.h" #include "VideoUtils.h" #include "gfxPlatform.h" @@ -360,7 +363,7 @@ AppleVTDecoder::OutputFrame(CVPixelBufferRef aImage, RefPtr<MacIOSurface> macSurface = new MacIOSurface(surface); - RefPtr<layers::Image> image = new MacIOSurfaceImage(macSurface); + RefPtr<layers::Image> image = new layers::MacIOSurfaceImage(macSurface); data = VideoData::CreateFromImage(info, diff --git a/dom/media/platforms/apple/AppleVTLinker.cpp b/dom/media/platforms/apple/AppleVTLinker.cpp index 51a8a01227..287de3ed3b 100644 --- a/dom/media/platforms/apple/AppleVTLinker.cpp +++ b/dom/media/platforms/apple/AppleVTLinker.cpp @@ -7,7 +7,9 @@ #include <dlfcn.h> #include "AppleVTLinker.h" +#include "PlatformDecoderModule.h" #include "mozilla/ArrayUtils.h" +#include "mozilla/Logging.h" #include "nsDebug.h" #define LOG(...) MOZ_LOG(sPDMLog, mozilla::LogLevel::Debug, (__VA_ARGS__)) diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp index f3101e44ce..f9e8a2d268 100644 --- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp +++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp @@ -16,6 +16,7 @@ #include "FFmpegVideoDecoder.h" #include "FFmpegLog.h" #include "mozilla/PodOperations.h" +#include "prsystem.h" // for PR_GetNumberOfProcessors #include "libavutil/pixfmt.h" #if LIBAVCODEC_VERSION_MAJOR < 54 diff --git a/dom/media/platforms/ffmpeg/ffmpeg57/moz.build b/dom/media/platforms/ffmpeg/ffmpeg57/moz.build index 6bd5db8d72..7a55d7685e 100644 --- a/dom/media/platforms/ffmpeg/ffmpeg57/moz.build +++ b/dom/media/platforms/ffmpeg/ffmpeg57/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/ffmpeg58/moz.build b/dom/media/platforms/ffmpeg/ffmpeg58/moz.build index 6bd5db8d72..7a55d7685e 100644 --- a/dom/media/platforms/ffmpeg/ffmpeg58/moz.build +++ b/dom/media/platforms/ffmpeg/ffmpeg58/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/ffvpx/moz.build b/dom/media/platforms/ffmpeg/ffvpx/moz.build index c0041a4d4f..95f8eec65f 100644 --- a/dom/media/platforms/ffmpeg/ffvpx/moz.build +++ b/dom/media/platforms/ffmpeg/ffvpx/moz.build @@ -9,7 +9,7 @@ EXPORTS += [ 'FFVPXRuntimeLinker.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/libav53/moz.build b/dom/media/platforms/ffmpeg/libav53/moz.build index 2bdc1dc34c..471edd701c 100644 --- a/dom/media/platforms/ffmpeg/libav53/moz.build +++ b/dom/media/platforms/ffmpeg/libav53/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/libav54/moz.build b/dom/media/platforms/ffmpeg/libav54/moz.build index 2bdc1dc34c..471edd701c 100644 --- a/dom/media/platforms/ffmpeg/libav54/moz.build +++ b/dom/media/platforms/ffmpeg/libav54/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/libav55/moz.build b/dom/media/platforms/ffmpeg/libav55/moz.build index 6bd5db8d72..7a55d7685e 100644 --- a/dom/media/platforms/ffmpeg/libav55/moz.build +++ b/dom/media/platforms/ffmpeg/libav55/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ '../FFmpegAudioDecoder.cpp', '../FFmpegDataDecoder.cpp', '../FFmpegDecoderModule.cpp', diff --git a/dom/media/platforms/ffmpeg/moz.build b/dom/media/platforms/ffmpeg/moz.build index af96fb521e..e42a8aa4d0 100644 --- a/dom/media/platforms/ffmpeg/moz.build +++ b/dom/media/platforms/ffmpeg/moz.build @@ -16,7 +16,7 @@ DIRS += [ 'ffmpeg58', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'FFmpegRuntimeLinker.cpp', ] diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build index c46d52e3f4..23bea20dda 100644 --- a/dom/media/platforms/moz.build +++ b/dom/media/platforms/moz.build @@ -16,7 +16,7 @@ EXPORTS += [ 'wrappers/H264Converter.h' ] -UNIFIED_SOURCES += [ +SOURCES += [ 'agnostic/AgnosticDecoderModule.cpp', 'agnostic/BlankDecoderModule.cpp', 'agnostic/OpusDecoder.cpp', @@ -42,7 +42,7 @@ if CONFIG['MOZ_WMF']: if CONFIG['MOZ_FFVPX'] or CONFIG['MOZ_FFMPEG']: # common code to either FFmpeg or FFVPX - UNIFIED_SOURCES += [ + SOURCES += [ 'ffmpeg/FFmpegLibWrapper.cpp', ] @@ -60,7 +60,7 @@ if CONFIG['MOZ_AV1']: EXPORTS += [ 'agnostic/AOMDecoder.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'agnostic/AOMDecoder.cpp', ] @@ -68,7 +68,7 @@ if CONFIG['MOZ_APPLEMEDIA']: EXPORTS += [ 'apple/AppleDecoderModule.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'apple/AppleATDecoder.cpp', 'apple/AppleCMLinker.cpp', 'apple/AppleDecoderModule.cpp', @@ -85,7 +85,7 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': EXPORTS += [ 'android/AndroidDecoderModule.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'android/AndroidDecoderModule.cpp', 'android/MediaCodecDataDecoder.cpp', 'android/RemoteDataDecoder.cpp', diff --git a/dom/media/platforms/omx/OmxPlatformLayer.cpp b/dom/media/platforms/omx/OmxPlatformLayer.cpp index 15b3062a4b..12a7d05956 100644 --- a/dom/media/platforms/omx/OmxPlatformLayer.cpp +++ b/dom/media/platforms/omx/OmxPlatformLayer.cpp @@ -6,6 +6,8 @@ #include "OmxPlatformLayer.h" +#include "OmxDataDecoder.h" + #include "OMX_VideoExt.h" // For VP8. #include "VPXDecoder.h" diff --git a/dom/media/platforms/omx/OmxPlatformLayer.h b/dom/media/platforms/omx/OmxPlatformLayer.h index 67d9e448f6..8e751e1a7a 100644 --- a/dom/media/platforms/omx/OmxPlatformLayer.h +++ b/dom/media/platforms/omx/OmxPlatformLayer.h @@ -7,6 +7,7 @@ #if !defined(OmxPlatformLayer_h_) #define OmxPlatformLayer_h_ +#include "OMX_Component.h" #include "OMX_Core.h" #include "OMX_Types.h" diff --git a/dom/media/platforms/omx/moz.build b/dom/media/platforms/omx/moz.build index 661e280e03..ee7202bd3d 100644 --- a/dom/media/platforms/omx/moz.build +++ b/dom/media/platforms/omx/moz.build @@ -8,7 +8,7 @@ EXPORTS += [ 'OmxDecoderModule.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'OmxDataDecoder.cpp', 'OmxDecoderModule.cpp', 'OmxPlatformLayer.cpp', diff --git a/dom/media/platforms/wmf/moz.build b/dom/media/platforms/wmf/moz.build index fa966bea23..83c2249e13 100644 --- a/dom/media/platforms/wmf/moz.build +++ b/dom/media/platforms/wmf/moz.build @@ -14,6 +14,7 @@ EXPORTS += [ 'WMFUtils.h', 'WMFVideoMFTManager.h', ] + UNIFIED_SOURCES += [ 'DXVA2Manager.cpp', 'MFTDecoder.cpp', diff --git a/dom/media/platforms/wrappers/FuzzingWrapper.cpp b/dom/media/platforms/wrappers/FuzzingWrapper.cpp index 7df020f463..e8b451cc8c 100644 --- a/dom/media/platforms/wrappers/FuzzingWrapper.cpp +++ b/dom/media/platforms/wrappers/FuzzingWrapper.cpp @@ -6,6 +6,8 @@ #include "FuzzingWrapper.h" +#include "mozilla/SharedThreadPool.h" + mozilla::LogModule* GetFuzzingWrapperLog() { static mozilla::LazyLogModule log("MediaFuzzingWrapper"); return log; diff --git a/dom/media/platforms/wrappers/H264Converter.cpp b/dom/media/platforms/wrappers/H264Converter.cpp index 0edbfc10ca..cca03fceb8 100644 --- a/dom/media/platforms/wrappers/H264Converter.cpp +++ b/dom/media/platforms/wrappers/H264Converter.cpp @@ -6,9 +6,11 @@ #include "mozilla/TaskQueue.h" +#include "DecoderDoctorDiagnostics.h" #include "H264Converter.h" #include "ImageContainer.h" #include "MediaInfo.h" +#include "PDMFactory.h" #include "mp4_demuxer/AnnexB.h" #include "mp4_demuxer/H264.h" diff --git a/dom/media/standalone/moz.build b/dom/media/standalone/moz.build index 9597037654..a3cc3545fb 100644 --- a/dom/media/standalone/moz.build +++ b/dom/media/standalone/moz.build @@ -7,7 +7,7 @@ if CONFIG['OS_TARGET'] != 'WINNT': Library('media_standalone') -UNIFIED_SOURCES += [ +SOURCES += [ '../AudioChannelFormat.cpp', '../AudioSegment.cpp', '../SimpleImageBuffer.cpp', diff --git a/dom/media/systemservices/MediaParent.cpp b/dom/media/systemservices/MediaParent.cpp index 89a495f6aa..16c399f373 100644 --- a/dom/media/systemservices/MediaParent.cpp +++ b/dom/media/systemservices/MediaParent.cpp @@ -23,6 +23,7 @@ #include "nsAppDirectoryServiceDefs.h" #include "nsISupportsImpl.h" #include "mozilla/Logging.h" +#include "mozilla/MediaManager.h" #undef LOG mozilla::LazyLogModule gMediaParentLog("MediaParent"); diff --git a/dom/media/systemservices/MediaSystemResourceManager.cpp b/dom/media/systemservices/MediaSystemResourceManager.cpp index 29db0ef3ea..a66e946eb5 100644 --- a/dom/media/systemservices/MediaSystemResourceManager.cpp +++ b/dom/media/systemservices/MediaSystemResourceManager.cpp @@ -7,6 +7,7 @@ #include "mozilla/TaskQueue.h" #include "gfxPrefs.h" +#include "MediaSystemResourceClient.h" #include "MediaSystemResourceManagerChild.h" #include "mozilla/layers/ImageBridgeChild.h" diff --git a/dom/media/systemservices/moz.build b/dom/media/systemservices/moz.build index 82a5c5e720..c582b7ba17 100644 --- a/dom/media/systemservices/moz.build +++ b/dom/media/systemservices/moz.build @@ -12,7 +12,7 @@ if CONFIG['MOZ_WEBRTC']: 'LoadManagerFactory.h', 'LoadMonitor.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'CamerasChild.cpp', 'CamerasParent.cpp', 'LoadManager.cpp', @@ -24,6 +24,7 @@ if CONFIG['MOZ_WEBRTC']: '/media/webrtc/signaling', '/media/webrtc/trunk', ] + if CONFIG['OS_TARGET'] == 'WINNT': DEFINES['WEBRTC_WIN'] = True else: @@ -34,12 +35,12 @@ if CONFIG['OS_TARGET'] == 'Android': EXPORTS += [ 'OpenSLESProvider.h' ] - UNIFIED_SOURCES += [ + SOURCES += [ 'OpenSLESProvider.cpp', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': - UNIFIED_SOURCES += ['OSXRunLoopSingleton.cpp'] + SOURCES += ['OSXRunLoopSingleton.cpp'] EXPORTS += ['OSXRunLoopSingleton.h'] if CONFIG['_MSC_VER']: @@ -66,7 +67,8 @@ EXPORTS.mozilla.media += ['CamerasTypes.h', 'MediaTaskUtils.h', 'MediaUtils.h', ] -UNIFIED_SOURCES += [ + +SOURCES += [ 'MediaChild.cpp', 'MediaParent.cpp', 'MediaSystemResourceClient.cpp', @@ -76,11 +78,13 @@ UNIFIED_SOURCES += [ 'MediaSystemResourceService.cpp', 'MediaUtils.cpp', ] + IPDL_SOURCES += [ 'PCameras.ipdl', 'PMedia.ipdl', 'PMediaSystemResourceManager.ipdl', ] + # /dom/base needed for nsGlobalWindow.h in MediaChild.cpp LOCAL_INCLUDES += [ '/dom/base', diff --git a/dom/media/wave/moz.build b/dom/media/wave/moz.build index f91e8eaebe..d62d3bea48 100644 --- a/dom/media/wave/moz.build +++ b/dom/media/wave/moz.build @@ -9,7 +9,7 @@ EXPORTS += [ 'WaveDemuxer.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'WaveDecoder.cpp', 'WaveDemuxer.cpp', ] diff --git a/dom/media/webaudio/AudioContext.cpp b/dom/media/webaudio/AudioContext.cpp index d58441309a..75f57a630b 100755 --- a/dom/media/webaudio/AudioContext.cpp +++ b/dom/media/webaudio/AudioContext.cpp @@ -22,6 +22,7 @@ #include "AudioChannelService.h" #include "AudioDestinationNode.h" #include "AudioListener.h" +#include "AudioNodeStream.h" #include "AudioStream.h" #include "BiquadFilterNode.h" #include "ChannelMergerNode.h" diff --git a/dom/media/webaudio/AudioDestinationNode.cpp b/dom/media/webaudio/AudioDestinationNode.cpp index 29a9de736c..f23eb03772 100644 --- a/dom/media/webaudio/AudioDestinationNode.cpp +++ b/dom/media/webaudio/AudioDestinationNode.cpp @@ -7,6 +7,7 @@ #include "AudioDestinationNode.h" #include "AlignmentUtils.h" #include "AudioContext.h" +#include "mozilla/dom/AudioContextBinding.h" #include "mozilla/dom/AudioDestinationNodeBinding.h" #include "mozilla/dom/ScriptSettings.h" #include "mozilla/Services.h" diff --git a/dom/media/webaudio/AudioEventTimeline.h b/dom/media/webaudio/AudioEventTimeline.h index ae06ad4db9..ba6da56a3f 100644 --- a/dom/media/webaudio/AudioEventTimeline.h +++ b/dom/media/webaudio/AudioEventTimeline.h @@ -13,6 +13,7 @@ #include "mozilla/PodOperations.h" #include "MainThreadUtils.h" +#include "MediaStreamGraph.h" #include "nsTArray.h" #include "math.h" #include "WebAudioUtils.h" diff --git a/dom/media/webaudio/AudioNodeEngine.cpp b/dom/media/webaudio/AudioNodeEngine.cpp index 91170adb31..89eefef312 100644 --- a/dom/media/webaudio/AudioNodeEngine.cpp +++ b/dom/media/webaudio/AudioNodeEngine.cpp @@ -14,6 +14,7 @@ #include "AlignmentUtils.h" #include "AudioNodeEngineSSE2.h" #endif +#include "AudioBlock.h" namespace mozilla { diff --git a/dom/media/webaudio/AudioNodeStream.cpp b/dom/media/webaudio/AudioNodeStream.cpp index 0e5aa3fc73..ba002b70e3 100644 --- a/dom/media/webaudio/AudioNodeStream.cpp +++ b/dom/media/webaudio/AudioNodeStream.cpp @@ -5,6 +5,7 @@ #include "AudioNodeStream.h" +#include "AlignmentUtils.h" #include "MediaStreamGraphImpl.h" #include "MediaStreamListener.h" #include "AudioNodeEngine.h" diff --git a/dom/media/webaudio/ConstantSourceNode.cpp b/dom/media/webaudio/ConstantSourceNode.cpp index b6884105cf..8b9df7c89a 100644 --- a/dom/media/webaudio/ConstantSourceNode.cpp +++ b/dom/media/webaudio/ConstantSourceNode.cpp @@ -7,6 +7,8 @@ #include "ConstantSourceNode.h" #include "AudioDestinationNode.h" +#include "AudioNodeEngine.h" +#include "AudioNodeStream.h" #include "nsContentUtils.h" namespace mozilla { diff --git a/dom/media/webaudio/DelayBuffer.h b/dom/media/webaudio/DelayBuffer.h index e55d0ba83a..e6c9434bf5 100644 --- a/dom/media/webaudio/DelayBuffer.h +++ b/dom/media/webaudio/DelayBuffer.h @@ -8,6 +8,7 @@ #define DelayBuffer_h_ #include "nsTArray.h" +#include "AudioBlock.h" #include "AudioSegment.h" #include "mozilla/dom/AudioNodeBinding.h" // for ChannelInterpretation diff --git a/dom/media/webaudio/IIRFilterNode.cpp b/dom/media/webaudio/IIRFilterNode.cpp index 3a69a94c8c..9175cc4c92 100644 --- a/dom/media/webaudio/IIRFilterNode.cpp +++ b/dom/media/webaudio/IIRFilterNode.cpp @@ -5,7 +5,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "IIRFilterNode.h" +#include "AlignmentUtils.h" +#include "AudioBlock.h" #include "AudioNodeEngine.h" +#include "AudioNodeStream.h" +#include "AudioDestinationNode.h" +#include "PlayingRefChangeHandler.h" +#include "mozilla/dom/AudioDestinationNodeBinding.h" #include "blink/IIRFilter.h" diff --git a/dom/media/webaudio/MediaBufferDecoder.cpp b/dom/media/webaudio/MediaBufferDecoder.cpp index f3b75ca1a7..f590d2f686 100644 --- a/dom/media/webaudio/MediaBufferDecoder.cpp +++ b/dom/media/webaudio/MediaBufferDecoder.cpp @@ -16,6 +16,7 @@ #include "DecoderTraits.h" #include "AudioContext.h" #include "AudioBuffer.h" +#include "AudioNodeEngine.h" #include "nsContentUtils.h" #include "nsIScriptObjectPrincipal.h" #include "nsIScriptError.h" diff --git a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp index beedd53004..31b276a547 100644 --- a/dom/media/webaudio/MediaStreamAudioSourceNode.cpp +++ b/dom/media/webaudio/MediaStreamAudioSourceNode.cpp @@ -9,7 +9,9 @@ #include "AudioNodeEngine.h" #include "AudioNodeExternalInputStream.h" #include "AudioStreamTrack.h" +#include "nsContentUtils.h" #include "nsIDocument.h" +#include "nsIScriptError.h" #include "mozilla/CORSMode.h" namespace mozilla { diff --git a/dom/media/webaudio/WebAudioUtils.cpp b/dom/media/webaudio/WebAudioUtils.cpp index 6289f803b3..aa0c7f9eae 100644 --- a/dom/media/webaudio/WebAudioUtils.cpp +++ b/dom/media/webaudio/WebAudioUtils.cpp @@ -5,6 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "WebAudioUtils.h" +#include "AudioEventTimeline.h" #include "AudioNodeStream.h" #include "blink/HRTFDatabaseLoader.h" diff --git a/dom/media/webaudio/moz.build b/dom/media/webaudio/moz.build index d1a9f56809..c4bfcea600 100644 --- a/dom/media/webaudio/moz.build +++ b/dom/media/webaudio/moz.build @@ -75,7 +75,7 @@ EXPORTS.mozilla.dom += [ 'WaveShaperNode.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'AnalyserNode.cpp', 'AudioBlock.cpp', 'AudioBuffer.cpp', diff --git a/dom/media/webm/moz.build b/dom/media/webm/moz.build index f2898fafd4..4dacfe0953 100644 --- a/dom/media/webm/moz.build +++ b/dom/media/webm/moz.build @@ -11,7 +11,7 @@ EXPORTS += [ 'WebMDemuxer.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'WebMBufferedParser.cpp', 'WebMDecoder.cpp', 'WebMDemuxer.cpp', @@ -19,8 +19,10 @@ UNIFIED_SOURCES += [ if CONFIG['MOZ_WEBM_ENCODER']: EXPORTS += ['WebMWriter.h'] - UNIFIED_SOURCES += ['EbmlComposer.cpp', - 'WebMWriter.cpp', + + SOURCES += [ + 'EbmlComposer.cpp', + 'WebMWriter.cpp', ] CXXFLAGS += CONFIG['MOZ_LIBVPX_CFLAGS'] diff --git a/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp b/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp index 881d85b4a5..e79d8249c4 100644 --- a/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp +++ b/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp @@ -6,6 +6,7 @@ #include "MediaEngineRemoteVideoSource.h" #include "mozilla/RefPtr.h" +#include "Layers.h" #include "VideoUtils.h" #include "nsIPrefService.h" #include "MediaTrackConstraints.h" @@ -15,6 +16,8 @@ extern mozilla::LogModule* GetMediaManagerLog(); #define LOG(msg) MOZ_LOG(GetMediaManagerLog(), mozilla::LogLevel::Debug, msg) #define LOGFRAME(msg) MOZ_LOG(GetMediaManagerLog(), mozilla::LogLevel::Verbose, msg) +typedef mozilla::gfx::IntSize IntSize; + namespace mozilla { // These need a definition somewhere because template diff --git a/dom/media/webrtc/MediaEngineTabVideoSource.cpp b/dom/media/webrtc/MediaEngineTabVideoSource.cpp index d101bab1e7..1ac24aae52 100644 --- a/dom/media/webrtc/MediaEngineTabVideoSource.cpp +++ b/dom/media/webrtc/MediaEngineTabVideoSource.cpp @@ -29,6 +29,7 @@ namespace mozilla { using namespace mozilla::gfx; +using namespace mozilla::dom; NS_IMPL_ISUPPORTS(MediaEngineTabVideoSource, nsIDOMEventListener, nsITimerCallback) diff --git a/dom/media/webrtc/MediaEngineWebRTCAudio.cpp b/dom/media/webrtc/MediaEngineWebRTCAudio.cpp index 1e2e13d01a..0eda3aac1b 100644 --- a/dom/media/webrtc/MediaEngineWebRTCAudio.cpp +++ b/dom/media/webrtc/MediaEngineWebRTCAudio.cpp @@ -9,6 +9,7 @@ #include "MediaTrackConstraints.h" #include "mtransport/runnable_utils.h" #include "nsAutoPtr.h" +#include "nsContentUtils.h" // scoped_ptr.h uses FF #ifdef FF diff --git a/dom/media/webrtc/MediaTrackConstraints.cpp b/dom/media/webrtc/MediaTrackConstraints.cpp index 6225b6d49a..42582e3c29 100644 --- a/dom/media/webrtc/MediaTrackConstraints.cpp +++ b/dom/media/webrtc/MediaTrackConstraints.cpp @@ -5,6 +5,7 @@ #include "MediaTrackConstraints.h" #include "mozilla/dom/MediaStreamTrackBinding.h" +#include "mozilla/Unused.h" #include <limits> #include <algorithm> diff --git a/dom/media/webrtc/PeerIdentity.h b/dom/media/webrtc/PeerIdentity.h index bdfa1d2b37..1f3413bf61 100644 --- a/dom/media/webrtc/PeerIdentity.h +++ b/dom/media/webrtc/PeerIdentity.h @@ -13,6 +13,8 @@ #include "nsStringAPI.h" #endif +#include "mozilla/RefCounted.h" + template <class T> class nsCOMPtr; class nsIIDNService; diff --git a/dom/media/webrtc/moz.build b/dom/media/webrtc/moz.build index 66def8719c..5b76e17cb9 100644 --- a/dom/media/webrtc/moz.build +++ b/dom/media/webrtc/moz.build @@ -31,15 +31,14 @@ if CONFIG['MOZ_WEBRTC']: UNIFIED_SOURCES += [ 'MediaEngineCameraVideoSource.cpp', 'MediaEngineRemoteVideoSource.cpp', + ] + SOURCES += [ 'MediaEngineTabVideoSource.cpp', + 'MediaEngineWebRTC.cpp', 'MediaEngineWebRTCAudio.cpp', 'RTCCertificate.cpp', 'RTCIdentityProviderRegistrar.cpp', ] - # MediaEngineWebRTC.cpp needs to be built separately. - SOURCES += [ - 'MediaEngineWebRTC.cpp', - ] LOCAL_INCLUDES += [ '/dom/base', '/media/libyuv/include', @@ -53,8 +52,10 @@ XPIDL_SOURCES += [ ] UNIFIED_SOURCES += [ - 'MediaEngineDefault.cpp', 'MediaTrackConstraints.cpp', +] +SOURCES += [ + 'MediaEngineDefault.cpp', 'PeerIdentity.cpp', ] diff --git a/dom/media/webspeech/recognition/SpeechGrammarList.cpp b/dom/media/webspeech/recognition/SpeechGrammarList.cpp index d4883378fe..925e591aa5 100644 --- a/dom/media/webspeech/recognition/SpeechGrammarList.cpp +++ b/dom/media/webspeech/recognition/SpeechGrammarList.cpp @@ -10,6 +10,7 @@ #include "mozilla/ErrorResult.h" #include "nsCOMPtr.h" #include "nsXPCOMStrings.h" +#include "SpeechGrammar.h" #include "SpeechRecognition.h" namespace mozilla { diff --git a/dom/media/webspeech/recognition/SpeechGrammarList.h b/dom/media/webspeech/recognition/SpeechGrammarList.h index dbe7117fee..32c0ddbdd0 100644 --- a/dom/media/webspeech/recognition/SpeechGrammarList.h +++ b/dom/media/webspeech/recognition/SpeechGrammarList.h @@ -9,6 +9,7 @@ #include "mozilla/Attributes.h" #include "nsCOMPtr.h" +#include "nsTArray.h" #include "nsCycleCollectionParticipant.h" #include "nsWrapperCache.h" diff --git a/dom/media/webspeech/recognition/SpeechRecognition.cpp b/dom/media/webspeech/recognition/SpeechRecognition.cpp index 48b1177b22..cd57f03ca7 100644 --- a/dom/media/webspeech/recognition/SpeechRecognition.cpp +++ b/dom/media/webspeech/recognition/SpeechRecognition.cpp @@ -22,6 +22,7 @@ #include "AudioSegment.h" #include "endpointer.h" +#include "SpeechGrammar.h" #include "mozilla/dom/SpeechRecognitionEvent.h" #include "nsContentUtils.h" #include "nsIDocument.h" diff --git a/dom/media/webspeech/recognition/moz.build b/dom/media/webspeech/recognition/moz.build index 0a26021b00..c296cd40da 100644 --- a/dom/media/webspeech/recognition/moz.build +++ b/dom/media/webspeech/recognition/moz.build @@ -31,7 +31,7 @@ if CONFIG['MOZ_WEBSPEECH_POCKETSPHINX']: 'PocketSphinxSpeechRecognitionService.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'endpointer.cc', 'energy_endpointer.cc', 'energy_endpointer_params.cc', @@ -45,12 +45,12 @@ UNIFIED_SOURCES += [ ] if CONFIG['MOZ_WEBSPEECH_TEST_BACKEND']: - UNIFIED_SOURCES += [ + SOURCES += [ 'test/FakeSpeechRecognitionService.cpp', ] if CONFIG['MOZ_WEBSPEECH_POCKETSPHINX']: - UNIFIED_SOURCES += [ + SOURCES += [ 'PocketSphinxSpeechRecognitionService.cpp', ] diff --git a/dom/media/webspeech/synth/moz.build b/dom/media/webspeech/synth/moz.build index bb26515afd..7b8c4cd313 100644 --- a/dom/media/webspeech/synth/moz.build +++ b/dom/media/webspeech/synth/moz.build @@ -26,7 +26,7 @@ if CONFIG['MOZ_WEBSPEECH']: 'SpeechSynthesisVoice.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'ipc/SpeechSynthesisChild.cpp', 'ipc/SpeechSynthesisParent.cpp', 'nsSpeechTask.cpp', @@ -37,7 +37,7 @@ if CONFIG['MOZ_WEBSPEECH']: ] if CONFIG['MOZ_WEBSPEECH_TEST_BACKEND']: - UNIFIED_SOURCES += [ + SOURCES += [ 'test/FakeSynthModule.cpp', 'test/nsFakeSynthServices.cpp' ] diff --git a/dom/media/webspeech/synth/pico/moz.build b/dom/media/webspeech/synth/pico/moz.build index 01ef304509..8c360bc85b 100644 --- a/dom/media/webspeech/synth/pico/moz.build +++ b/dom/media/webspeech/synth/pico/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'nsPicoService.cpp', 'PicoModule.cpp' ] diff --git a/dom/media/webspeech/synth/speechd/moz.build b/dom/media/webspeech/synth/speechd/moz.build index 51d675c10a..552ccf856c 100644 --- a/dom/media/webspeech/synth/speechd/moz.build +++ b/dom/media/webspeech/synth/speechd/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'SpeechDispatcherModule.cpp', 'SpeechDispatcherService.cpp' ] diff --git a/dom/media/webspeech/synth/windows/moz.build b/dom/media/webspeech/synth/windows/moz.build index f0ff9f2c94..2ab20c05a3 100644 --- a/dom/media/webspeech/synth/windows/moz.build +++ b/dom/media/webspeech/synth/windows/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'SapiModule.cpp', 'SapiService.cpp' ] diff --git a/dom/messagechannel/moz.build b/dom/messagechannel/moz.build index 679d7eeb83..6ace4d77ff 100644 --- a/dom/messagechannel/moz.build +++ b/dom/messagechannel/moz.build @@ -13,7 +13,7 @@ EXPORTS.mozilla.dom += [ 'MessagePortParent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'MessageChannel.cpp', 'MessagePort.cpp', 'MessagePortChild.cpp', @@ -22,9 +22,7 @@ UNIFIED_SOURCES += [ 'SharedMessagePortMessage.cpp', ] -IPDL_SOURCES += [ - 'PMessagePort.ipdl', -] +IPDL_SOURCES += ['PMessagePort.ipdl'] LOCAL_INCLUDES += [ '../base', diff --git a/dom/network/TCPServerSocketParent.cpp b/dom/network/TCPServerSocketParent.cpp index 8f98d8b785..aec0ad1984 100644 --- a/dom/network/TCPServerSocketParent.cpp +++ b/dom/network/TCPServerSocketParent.cpp @@ -4,15 +4,18 @@ * 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 "TCPServerSocketParent.h" + #include "nsIScriptSecurityManager.h" +#include "TCPSocket.h" #include "TCPServerSocket.h" -#include "TCPServerSocketParent.h" #include "nsJSUtils.h" #include "TCPSocketParent.h" #include "mozilla/Unused.h" #include "mozilla/AppProcessChecker.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/TabParent.h" +#include "mozilla/dom/TCPServerSocketEvent.h" namespace mozilla { namespace dom { diff --git a/dom/network/TCPSocket.cpp b/dom/network/TCPSocket.cpp index 38827a9ac4..3f4fb696e5 100644 --- a/dom/network/TCPSocket.cpp +++ b/dom/network/TCPSocket.cpp @@ -6,7 +6,9 @@ #include "mozilla/ErrorResult.h" #include "TCPSocket.h" #include "TCPServerSocket.h" +#include "TCPSocketParent.h" #include "TCPSocketChild.h" +#include "mozilla/Unused.h" #include "mozilla/dom/DOMError.h" #include "mozilla/dom/TCPSocketBinding.h" #include "mozilla/dom/TCPSocketErrorEvent.h" diff --git a/dom/network/TCPSocketParent.cpp b/dom/network/TCPSocketParent.cpp index 54167234e8..5fd53067df 100644 --- a/dom/network/TCPSocketParent.cpp +++ b/dom/network/TCPSocketParent.cpp @@ -5,6 +5,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "TCPSocketParent.h" +#include "TCPSocket.h" #include "jsapi.h" #include "jsfriendapi.h" #include "nsJSUtils.h" diff --git a/dom/network/UDPSocket.cpp b/dom/network/UDPSocket.cpp index e275e39029..3e18463ae2 100644 --- a/dom/network/UDPSocket.cpp +++ b/dom/network/UDPSocket.cpp @@ -17,6 +17,8 @@ #include "nsINetAddr.h" #include "nsStringStream.h" +using namespace mozilla::net; + namespace mozilla { namespace dom { diff --git a/dom/network/UDPSocketChild.cpp b/dom/network/UDPSocketChild.cpp index d205e7e8a1..9d6ec09787 100644 --- a/dom/network/UDPSocketChild.cpp +++ b/dom/network/UDPSocketChild.cpp @@ -5,6 +5,8 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "UDPSocketChild.h" + +#include "UDPSocket.h" #include "mozilla/Unused.h" #include "mozilla/ipc/InputStreamUtils.h" #include "mozilla/net/NeckoChild.h" diff --git a/dom/network/UDPSocketParent.cpp b/dom/network/UDPSocketParent.cpp index 904a995ed4..2f258badb2 100644 --- a/dom/network/UDPSocketParent.cpp +++ b/dom/network/UDPSocketParent.cpp @@ -6,9 +6,11 @@ #include "nsIServiceManager.h" #include "UDPSocketParent.h" +#include "UDPSocket.h" #include "nsComponentManagerUtils.h" #include "nsIUDPSocket.h" #include "nsINetAddr.h" +#include "nsNetCID.h" #include "mozilla/AppProcessChecker.h" #include "mozilla/Unused.h" #include "mozilla/ipc/InputStreamUtils.h" @@ -17,9 +19,12 @@ #include "mozilla/net/PNeckoParent.h" #include "nsIPermissionManager.h" #include "nsIScriptSecurityManager.h" +#include "mozilla/dom/ContentParent.h" #include "mozilla/ipc/PBackgroundParent.h" #include "mtransport/runnable_utils.h" +using namespace mozilla::net; + namespace mozilla { namespace dom { diff --git a/dom/network/moz.build b/dom/network/moz.build index ffb90d116c..79f8fe0097 100644 --- a/dom/network/moz.build +++ b/dom/network/moz.build @@ -27,7 +27,7 @@ EXPORTS.mozilla.dom.network += [ 'UDPSocketParent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Connection.cpp', 'TCPServerSocket.cpp', 'TCPServerSocketChild.cpp', diff --git a/dom/notification/moz.build b/dom/notification/moz.build index d966b160df..8297daa6b7 100644 --- a/dom/notification/moz.build +++ b/dom/notification/moz.build @@ -9,9 +9,7 @@ EXTRA_COMPONENTS += [ 'NotificationStorage.manifest', ] -EXTRA_JS_MODULES += [ - 'NotificationDB.jsm' -] +EXTRA_JS_MODULES += ['NotificationDB.jsm'] EXPORTS.mozilla.dom += [ 'DesktopNotification.h', @@ -19,7 +17,7 @@ EXPORTS.mozilla.dom += [ 'NotificationEvent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'DesktopNotification.cpp', 'Notification.cpp', 'NotificationEvent.cpp', @@ -28,6 +26,7 @@ UNIFIED_SOURCES += [ include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' + LOCAL_INCLUDES += [ '/dom/base', '/dom/ipc', diff --git a/dom/offline/moz.build b/dom/offline/moz.build index 1e3c192c50..2baa124962 100644 --- a/dom/offline/moz.build +++ b/dom/offline/moz.build @@ -4,15 +4,10 @@ # 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/. -EXPORTS += [ - 'nsDOMOfflineResourceList.h', -] -UNIFIED_SOURCES += [ - 'nsDOMOfflineResourceList.cpp', -] +EXPORTS += ['nsDOMOfflineResourceList.h'] -LOCAL_INCLUDES += [ - '/dom/base', -] +SOURCES += ['nsDOMOfflineResourceList.cpp'] + +LOCAL_INCLUDES += ['/dom/base'] FINAL_LIBRARY = 'xul' diff --git a/dom/performance/PerformanceMainThread.cpp b/dom/performance/PerformanceMainThread.cpp index b95a91ea67..60eccf5955 100644 --- a/dom/performance/PerformanceMainThread.cpp +++ b/dom/performance/PerformanceMainThread.cpp @@ -6,7 +6,12 @@ #include "PerformanceMainThread.h" #include "PerformanceNavigation.h" +#include "PerformanceNavigationTiming.h" +#include "PerformanceResourceTiming.h" +#include "PerformanceTiming.h" #include "nsICacheInfoChannel.h" +#include "nsITimedChannel.h" +#include "mozilla/dom/Event.h" namespace mozilla { namespace dom { diff --git a/dom/performance/PerformanceService.cpp b/dom/performance/PerformanceService.cpp index cf119af898..21d1aaa261 100644 --- a/dom/performance/PerformanceService.cpp +++ b/dom/performance/PerformanceService.cpp @@ -9,6 +9,7 @@ #include "mozilla/ClearOnShutdown.h" #include "mozilla/StaticMutex.h" #include "mozilla/StaticPtr.h" +#include "prtime.h" namespace mozilla { namespace dom { diff --git a/dom/performance/PerformanceTiming.cpp b/dom/performance/PerformanceTiming.cpp index 887a23938c..f1d75ca034 100755 --- a/dom/performance/PerformanceTiming.cpp +++ b/dom/performance/PerformanceTiming.cpp @@ -6,6 +6,7 @@ #include "PerformanceTiming.h" #include "mozilla/dom/PerformanceTimingBinding.h" +#include "nsITimedChannel.h" namespace mozilla { namespace dom { diff --git a/dom/performance/moz.build b/dom/performance/moz.build index e1f96fec84..454f8f5443 100644 --- a/dom/performance/moz.build +++ b/dom/performance/moz.build @@ -18,7 +18,7 @@ EXPORTS.mozilla.dom += [ 'PerformanceTiming.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Performance.cpp', 'PerformanceEntry.cpp', 'PerformanceMainThread.cpp', diff --git a/dom/permission/PermissionUtils.cpp b/dom/permission/PermissionUtils.cpp index 1bb1c1c0d1..a1d4fea437 100644 --- a/dom/permission/PermissionUtils.cpp +++ b/dom/permission/PermissionUtils.cpp @@ -4,6 +4,7 @@ * 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 "nsIPermissionManager.h" #include "PermissionUtils.h" namespace mozilla { diff --git a/dom/permission/Permissions.cpp b/dom/permission/Permissions.cpp index ddbfc5ffe8..99654055a3 100644 --- a/dom/permission/Permissions.cpp +++ b/dom/permission/Permissions.cpp @@ -11,6 +11,7 @@ #include "mozilla/dom/Promise.h" #include "mozilla/Services.h" #include "nsIPermissionManager.h" +#include "PermissionStatus.h" #include "PermissionUtils.h" namespace mozilla { diff --git a/dom/permission/moz.build b/dom/permission/moz.build index 0be8a7535b..ea17c738f1 100644 --- a/dom/permission/moz.build +++ b/dom/permission/moz.build @@ -9,7 +9,7 @@ EXPORTS.mozilla.dom += [ 'PermissionStatus.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'PermissionObserver.cpp', 'Permissions.cpp', 'PermissionStatus.cpp', diff --git a/dom/plugins/base/moz.build b/dom/plugins/base/moz.build index a159d6fc1d..d63ca51ce1 100644 --- a/dom/plugins/base/moz.build +++ b/dom/plugins/base/moz.build @@ -38,10 +38,12 @@ EXPORTS.mozilla += [ 'PluginPRLibrary.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsJSNPRuntime.cpp', + 'nsNPAPIPlugin.cpp', 'nsNPAPIPluginInstance.cpp', 'nsNPAPIPluginStreamListener.cpp', + 'nsPluginHost.cpp', 'nsPluginInstanceOwner.cpp', 'nsPluginModule.cpp', 'nsPluginStreamListenerPeer.cpp', @@ -49,24 +51,19 @@ UNIFIED_SOURCES += [ 'PluginPRLibrary.cpp', ] -SOURCES += [ - 'nsNPAPIPlugin.cpp', # Conflict with X11 headers - 'nsPluginHost.cpp', # Conflict with NS_NPAPIPLUGIN_CALLBACK -] - if CONFIG['OS_ARCH'] == 'WINNT': - UNIFIED_SOURCES += [ + SOURCES += [ 'nsPluginDirServiceProvider.cpp', 'nsPluginNativeWindowWin.cpp', 'nsPluginsDirWin.cpp', ] elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': - UNIFIED_SOURCES += [ + SOURCES += [ 'nsPluginNativeWindow.cpp', 'nsPluginsDirDarwin.cpp', ] else: - UNIFIED_SOURCES += [ + SOURCES += [ 'nsPluginsDirUnix.cpp', ] if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: @@ -75,7 +72,7 @@ else: 'nsPluginNativeWindowGtk.cpp', ] else: - UNIFIED_SOURCES += [ + SOURCES += [ 'nsPluginNativeWindow.cpp', ] diff --git a/dom/plugins/base/nsNPAPIPluginInstance.cpp b/dom/plugins/base/nsNPAPIPluginInstance.cpp index ce24b62967..7ee71c8f72 100644 --- a/dom/plugins/base/nsNPAPIPluginInstance.cpp +++ b/dom/plugins/base/nsNPAPIPluginInstance.cpp @@ -36,6 +36,7 @@ #include "nsILoadContext.h" #include "mozilla/dom/HTMLObjectElementBinding.h" #include "AudioChannelService.h" +#include "GeckoProfiler.h" using namespace mozilla; using namespace mozilla::dom; diff --git a/dom/plugins/base/nsNPAPIPluginStreamListener.cpp b/dom/plugins/base/nsNPAPIPluginStreamListener.cpp index 0f500a1ae4..2b5f65ef4b 100644 --- a/dom/plugins/base/nsNPAPIPluginStreamListener.cpp +++ b/dom/plugins/base/nsNPAPIPluginStreamListener.cpp @@ -9,11 +9,13 @@ #include "nsDirectoryServiceDefs.h" #include "nsDirectoryServiceUtils.h" #include "nsIFile.h" +#include "nsIHttpChannel.h" #include "nsNetUtil.h" #include "nsPluginHost.h" #include "nsNPAPIPlugin.h" #include "nsPluginLogging.h" #include "nsPluginStreamListenerPeer.h" +#include "GeckoProfiler.h" #include <stdint.h> #include <algorithm> diff --git a/dom/plugins/base/nsNPAPIPluginStreamListener.h b/dom/plugins/base/nsNPAPIPluginStreamListener.h index dd567f99b0..cb9c616d03 100644 --- a/dom/plugins/base/nsNPAPIPluginStreamListener.h +++ b/dom/plugins/base/nsNPAPIPluginStreamListener.h @@ -10,6 +10,7 @@ #include "nsIHTTPHeaderListener.h" #include "nsIRequest.h" #include "nsITimer.h" +#include "nsCOMPtr.h" #include "nsCOMArray.h" #include "nsIOutputStream.h" #include "nsIPluginInstanceOwner.h" diff --git a/dom/plugins/base/nsPluginInstanceOwner.cpp b/dom/plugins/base/nsPluginInstanceOwner.cpp index 22c4783ca1..0d4dc68ccc 100644 --- a/dom/plugins/base/nsPluginInstanceOwner.cpp +++ b/dom/plugins/base/nsPluginInstanceOwner.cpp @@ -64,6 +64,7 @@ using mozilla::DefaultXDisplay; #include "mozilla/IMEStateManager.h" #include "mozilla/TextComposition.h" #include "mozilla/AutoRestore.h" +#include "mozilla/plugins/PluginAsyncSurrogate.h" #include "nsContentCID.h" #include "nsWidgetsCID.h" @@ -90,6 +91,7 @@ static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); using namespace mozilla; using namespace mozilla::dom; using namespace mozilla::layers; +using namespace mozilla::plugins; static inline nsPoint AsNsPoint(const nsIntPoint &p) { return nsPoint(p.x, p.y); diff --git a/dom/plugins/base/nsPluginNativeWindowWin.cpp b/dom/plugins/base/nsPluginNativeWindowWin.cpp index 106dcaf77a..82f8511742 100644 --- a/dom/plugins/base/nsPluginNativeWindowWin.cpp +++ b/dom/plugins/base/nsPluginNativeWindowWin.cpp @@ -5,6 +5,7 @@ #include "mozilla/BasicEvents.h" #include "mozilla/DebugOnly.h" +#include "nsPluginHost.h" #include "windows.h" #include "windowsx.h" diff --git a/dom/plugins/base/nsPluginStreamListenerPeer.cpp b/dom/plugins/base/nsPluginStreamListenerPeer.cpp index 0476315d58..603f2408c8 100644 --- a/dom/plugins/base/nsPluginStreamListenerPeer.cpp +++ b/dom/plugins/base/nsPluginStreamListenerPeer.cpp @@ -34,6 +34,7 @@ #include "nsPluginInstanceOwner.h" #include "nsDataHashtable.h" #include "nsNullPrincipal.h" +#include "prtime.h" #define BYTERANGE_REQUEST_CONTEXT 0x01020304 diff --git a/dom/plugins/base/nsPluginTags.cpp b/dom/plugins/base/nsPluginTags.cpp index 58b4133888..5fd63f3773 100644 --- a/dom/plugins/base/nsPluginTags.cpp +++ b/dom/plugins/base/nsPluginTags.cpp @@ -13,6 +13,7 @@ #include "nsIBlocklistService.h" #include "nsIUnicodeDecoder.h" #include "nsIPlatformCharset.h" +#include "nsIURI.h" #include "nsPluginLogging.h" #include "nsNPAPIPlugin.h" #include "nsCharSeparatedTokenizer.h" @@ -26,6 +27,7 @@ using mozilla::dom::EncodingUtils; using mozilla::dom::FakePluginTagInit; +using mozilla::dom::FakePluginMimeEntry; using namespace mozilla; // These legacy flags are used in the plugin registry. The states are now diff --git a/dom/plugins/ipc/D3D11SurfaceHolder.h b/dom/plugins/ipc/D3D11SurfaceHolder.h index 16cd2d1829..2d23423472 100644 --- a/dom/plugins/ipc/D3D11SurfaceHolder.h +++ b/dom/plugins/ipc/D3D11SurfaceHolder.h @@ -6,6 +6,7 @@ #define _include_dom_plugins_ipc_D3D11SurfaceHolder_h__ #include "ipc/IPCMessageUtils.h" +#include "mozilla/gfx/2D.h" #include "mozilla/gfx/Point.h" #include "mozilla/gfx/Types.h" diff --git a/dom/plugins/ipc/PluginAsyncSurrogate.h b/dom/plugins/ipc/PluginAsyncSurrogate.h index 5b63157152..8e69a57a4b 100644 --- a/dom/plugins/ipc/PluginAsyncSurrogate.h +++ b/dom/plugins/ipc/PluginAsyncSurrogate.h @@ -8,6 +8,7 @@ #define dom_plugins_ipc_PluginAsyncSurrogate_h #include "mozilla/UniquePtr.h" +#include "mozilla/WeakPtr.h" #include "npapi.h" #include "npfunctions.h" #include "npruntime.h" diff --git a/dom/plugins/ipc/PluginInstanceParent.cpp b/dom/plugins/ipc/PluginInstanceParent.cpp index 24b1410bc1..523dc5c803 100644 --- a/dom/plugins/ipc/PluginInstanceParent.cpp +++ b/dom/plugins/ipc/PluginInstanceParent.cpp @@ -9,6 +9,8 @@ #include "mozilla/BasicEvents.h" #include "mozilla/Preferences.h" +#include "mozilla/D3DMessageUtils.h" +#include "D3D11SurfaceHolder.h" #include "PluginInstanceParent.h" #include "BrowserStreamParent.h" #include "PluginAsyncSurrogate.h" @@ -69,8 +71,10 @@ extern const wchar_t* kFlashFullscreenClass; #include <ApplicationServices/ApplicationServices.h> #endif // defined(XP_MACOSX) +using namespace mozilla; using namespace mozilla::plugins; using namespace mozilla::layers; +using namespace mozilla::gfx; using namespace mozilla::gl; void diff --git a/dom/plugins/ipc/PluginModuleParent.cpp b/dom/plugins/ipc/PluginModuleParent.cpp index 4a509676d9..6ea205ef0f 100755 --- a/dom/plugins/ipc/PluginModuleParent.cpp +++ b/dom/plugins/ipc/PluginModuleParent.cpp @@ -29,10 +29,14 @@ #include "nsNPAPIPlugin.h" #include "nsPrintfCString.h" #include "prsystem.h" +#include "PluginBackgroundDestroyer.h" #include "PluginQuirks.h" +#include "PluginStreamParent.h" +#include "StreamNotifyParent.h" #include "GeckoProfiler.h" #include "nsPluginTags.h" #include "nsUnicharUtils.h" +#include "mozilla/layers/ImageBridgeChild.h" #include "mozilla/layers/TextureClientRecycleAllocator.h" #ifdef XP_WIN @@ -56,6 +60,7 @@ using mozilla::ipc::MessageChannel; using mozilla::ipc::GeckoChildProcessHost; using namespace mozilla; +using namespace mozilla::layers; using namespace mozilla::plugins; using namespace mozilla::plugins::parent; diff --git a/dom/plugins/ipc/PluginQuirks.h b/dom/plugins/ipc/PluginQuirks.h index f0a6b6a305..66dc8fba60 100644 --- a/dom/plugins/ipc/PluginQuirks.h +++ b/dom/plugins/ipc/PluginQuirks.h @@ -7,6 +7,8 @@ #ifndef dom_plugins_PluginQuirks_h #define dom_plugins_PluginQuirks_h +#include "nsString.h" + namespace mozilla { namespace plugins { diff --git a/dom/plugins/ipc/PluginUtilsWin.h b/dom/plugins/ipc/PluginUtilsWin.h index 097ae52621..a1a7c2aa60 100644 --- a/dom/plugins/ipc/PluginUtilsWin.h +++ b/dom/plugins/ipc/PluginUtilsWin.h @@ -8,6 +8,7 @@ #define dom_plugins_PluginUtilsWin_h 1
#include "npapi.h"
+#include "PluginModuleParent.h"
namespace mozilla {
namespace plugins {
diff --git a/dom/plugins/ipc/hangui/moz.build b/dom/plugins/ipc/hangui/moz.build index 0b84cfb8f6..52c2f14952 100644 --- a/dom/plugins/ipc/hangui/moz.build +++ b/dom/plugins/ipc/hangui/moz.build @@ -6,7 +6,7 @@ Program('plugin-hang-ui') -UNIFIED_SOURCES += [ +SOURCES += [ 'MiniShmChild.cpp', 'PluginHangUIChild.cpp', ] diff --git a/dom/plugins/ipc/interpose/moz.build b/dom/plugins/ipc/interpose/moz.build index 8bd8ee651b..10171afd04 100644 --- a/dom/plugins/ipc/interpose/moz.build +++ b/dom/plugins/ipc/interpose/moz.build @@ -6,7 +6,7 @@ SharedLibrary('plugin_child_interpose') -UNIFIED_SOURCES += [ "%s.mm" % (LIBRARY_NAME) ] +SOURCES += [ "%s.mm" % (LIBRARY_NAME) ] OS_LIBS += ['-framework Carbon'] diff --git a/dom/plugins/ipc/moz.build b/dom/plugins/ipc/moz.build index 051d5a3b4d..182a115622 100644 --- a/dom/plugins/ipc/moz.build +++ b/dom/plugins/ipc/moz.build @@ -48,13 +48,11 @@ if CONFIG['OS_ARCH'] == 'WINNT': EXPORTS.mozilla.plugins += [ 'PluginSurfaceParent.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ + 'MiniShmParent.cpp', 'PluginHangUIParent.cpp', 'PluginSurfaceParent.cpp', ] - SOURCES += [ - 'MiniShmParent.cpp', # Issues with CreateEvent - ] DEFINES['MOZ_HANGUI_PROCESS_NAME'] = '"plugin-hang-ui%s"' % CONFIG['BIN_SUFFIX'] LOCAL_INCLUDES += [ '/widget', @@ -66,15 +64,17 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': 'PluginInterposeOSX.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'BrowserStreamChild.cpp', 'BrowserStreamParent.cpp', 'ChildAsyncCall.cpp', 'ChildTimer.cpp', 'PluginAsyncSurrogate.cpp', 'PluginBackgroundDestroyer.cpp', + 'PluginInstanceChild.cpp', 'PluginInstanceParent.cpp', 'PluginMessageUtils.cpp', + 'PluginModuleChild.cpp', 'PluginModuleParent.cpp', 'PluginProcessChild.cpp', 'PluginProcessParent.cpp', @@ -83,23 +83,18 @@ UNIFIED_SOURCES += [ 'PluginScriptableObjectParent.cpp', 'PluginStreamChild.cpp', 'PluginStreamParent.cpp', -] - -SOURCES += [ - 'PluginInstanceChild.cpp', # 'PluginThreadCallback' : ambiguous symbol - 'PluginModuleChild.cpp', # Redefinition of mozilla::WindowsDllInterceptor sUser32Intercept 'PluginWidgetChild.cpp', 'PluginWidgetParent.cpp', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': - UNIFIED_SOURCES += [ + SOURCES += [ 'PluginInterposeOSX.mm', 'PluginUtilsOSX.mm', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': - UNIFIED_SOURCES += [ + SOURCES += [ 'D3D11SurfaceHolder.cpp', 'PluginUtilsWin.cpp' ] diff --git a/dom/power/moz.build b/dom/power/moz.build index cdd99264d7..5474ebadaa 100644 --- a/dom/power/moz.build +++ b/dom/power/moz.build @@ -21,7 +21,7 @@ EXPORTS.mozilla.dom.power += [ 'Types.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'PowerManager.cpp', 'PowerManagerService.cpp', 'WakeLock.cpp', diff --git a/dom/push/PushSubscriptionOptions.cpp b/dom/push/PushSubscriptionOptions.cpp index 39252e9e87..8f6ce5499e 100644 --- a/dom/push/PushSubscriptionOptions.cpp +++ b/dom/push/PushSubscriptionOptions.cpp @@ -6,6 +6,7 @@ #include "mozilla/dom/PushSubscriptionOptionsBinding.h" #include "mozilla/HoldDropJSObjects.h" +#include "PushUtil.h" namespace mozilla { namespace dom { diff --git a/dom/push/PushUtil.cpp b/dom/push/PushUtil.cpp index 408b62048d..1aba0e0662 100644 --- a/dom/push/PushUtil.cpp +++ b/dom/push/PushUtil.cpp @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/dom/PushUtil.h" +#include "mozilla/dom/UnionTypes.h" // for OwningArrayBufferViewOrArrayBuffer namespace mozilla { namespace dom { diff --git a/dom/push/PushUtil.h b/dom/push/PushUtil.h index 548ae23491..71a7af478a 100644 --- a/dom/push/PushUtil.h +++ b/dom/push/PushUtil.h @@ -7,6 +7,7 @@ #include "nsTArray.h" +#include "mozilla/ErrorResult.h" #include "mozilla/dom/TypedArray.h" namespace mozilla { diff --git a/dom/push/moz.build b/dom/push/moz.build index d138b270c2..ca72c5f5da 100644 --- a/dom/push/moz.build +++ b/dom/push/moz.build @@ -37,7 +37,7 @@ EXPORTS.mozilla.dom += [ 'PushUtil.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'PushManager.cpp', 'PushNotifier.cpp', 'PushSubscription.cpp', diff --git a/dom/quota/QuotaManagerService.cpp b/dom/quota/QuotaManagerService.cpp index fb5f0f3a17..bd811dc9b3 100644 --- a/dom/quota/QuotaManagerService.cpp +++ b/dom/quota/QuotaManagerService.cpp @@ -16,6 +16,7 @@ #include "mozilla/ipc/BackgroundParent.h" #include "mozilla/ipc/BackgroundUtils.h" #include "mozilla/ipc/PBackgroundChild.h" +#include "nsContentUtils.h" #include "nsIIdleService.h" #include "nsIIPCBackgroundChildCreateCallback.h" #include "nsIObserverService.h" diff --git a/dom/quota/QuotaRequests.cpp b/dom/quota/QuotaRequests.cpp index 369bc790c3..7d1c37731f 100644 --- a/dom/quota/QuotaRequests.cpp +++ b/dom/quota/QuotaRequests.cpp @@ -8,6 +8,7 @@ #include "ActorsChild.h" #include "nsIQuotaCallbacks.h" +#include "nsIVariant.h" namespace mozilla { namespace dom { diff --git a/dom/quota/QuotaResults.h b/dom/quota/QuotaResults.h index 73fe6b7901..246bfe9c99 100644 --- a/dom/quota/QuotaResults.h +++ b/dom/quota/QuotaResults.h @@ -8,6 +8,7 @@ #define mozilla_dom_quota_QuotaResults_h #include "nsIQuotaResults.h" +#include "nsString.h" namespace mozilla { namespace dom { diff --git a/dom/quota/StorageManager.cpp b/dom/quota/StorageManager.cpp index 4e9f0cf8c6..3aad3c3e7d 100644 --- a/dom/quota/StorageManager.cpp +++ b/dom/quota/StorageManager.cpp @@ -13,9 +13,12 @@ #include "mozilla/ErrorResult.h" #include "nsIQuotaCallbacks.h" #include "nsIQuotaRequests.h" +#include "nsIQuotaResults.h" #include "nsPIDOMWindow.h" +#include "QuotaManagerService.h" using namespace mozilla::dom::workers; +using namespace mozilla::dom::quota; namespace mozilla { namespace dom { diff --git a/dom/quota/StorageManager.h b/dom/quota/StorageManager.h index 162390f488..11dc01b6fd 100644 --- a/dom/quota/StorageManager.h +++ b/dom/quota/StorageManager.h @@ -7,8 +7,10 @@ #ifndef mozilla_dom_StorageManager_h #define mozilla_dom_StorageManager_h +#include "mozilla/ErrorResult.h" #include "nsCOMPtr.h" #include "nsCycleCollectionParticipant.h" +#include "nsIGlobalObject.h" #include "nsISupports.h" #include "nsWrapperCache.h" diff --git a/dom/quota/moz.build b/dom/quota/moz.build index 66c4f4f45e..1826965691 100644 --- a/dom/quota/moz.build +++ b/dom/quota/moz.build @@ -31,7 +31,7 @@ EXPORTS.mozilla.dom.quota += [ 'UsageInfo.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ActorsChild.cpp', 'ActorsParent.cpp', 'FileStreams.cpp', diff --git a/dom/security/SRICheck.h b/dom/security/SRICheck.h index 82929fe36a..46de0532f1 100644 --- a/dom/security/SRICheck.h +++ b/dom/security/SRICheck.h @@ -9,6 +9,7 @@ #include "nsCOMPtr.h" #include "nsICryptoHash.h" +#include "nsString.h" class nsIChannel; class nsIUnicharStreamLoader; diff --git a/dom/security/moz.build b/dom/security/moz.build index 00f7376a85..587e1e898f 100644 --- a/dom/security/moz.build +++ b/dom/security/moz.build @@ -24,12 +24,15 @@ EXPORTS += [ ] UNIFIED_SOURCES += [ + 'nsCSPContext.cpp', + 'nsCSPUtils.cpp', +] + +SOURCES += [ 'ContentVerifier.cpp', 'nsContentSecurityManager.cpp', - 'nsCSPContext.cpp', 'nsCSPParser.cpp', 'nsCSPService.cpp', - 'nsCSPUtils.cpp', 'nsMixedContentBlocker.cpp', 'SRICheck.cpp', 'SRIMetadata.cpp', diff --git a/dom/security/nsCSPParser.h b/dom/security/nsCSPParser.h index d500a1c18d..59f5d2d6d2 100644 --- a/dom/security/nsCSPParser.h +++ b/dom/security/nsCSPParser.h @@ -7,6 +7,7 @@ #ifndef nsCSPParser_h___ #define nsCSPParser_h___ +#include "nsCSPContext.h" #include "nsCSPUtils.h" #include "nsIURI.h" #include "nsString.h" diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp index 6d4f297d6d..e9f218c145 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -17,6 +17,10 @@ #include "nsIURL.h" #include "nsReadableUtils.h" #include "nsSandboxFlags.h" +#include "nsString.h" +#include "mozilla/Logging.h" + +using namespace mozilla; #define DEFAULT_PORT -1 @@ -30,6 +34,29 @@ GetCspUtilsLog() #define CSPUTILSLOG(args) MOZ_LOG(GetCspUtilsLog(), mozilla::LogLevel::Debug, args) #define CSPUTILSLOGENABLED() MOZ_LOG_TEST(GetCspUtilsLog(), mozilla::LogLevel::Debug) +static const char16_t PERCENT_SIGN = '%'; + +static bool +isCharacterToken(char16_t aSymbol) +{ + return (aSymbol >= 'a' && aSymbol <= 'z') || + (aSymbol >= 'A' && aSymbol <= 'Z'); +} + +static bool +isNumberToken(char16_t aSymbol) +{ + return (aSymbol >= '0' && aSymbol <= '9'); +} + +static bool +isValidHexDig(char16_t aHexDig) +{ + return (isNumberToken(aHexDig) || + (aHexDig >= 'A' && aHexDig <= 'F') || + (aHexDig >= 'a' && aHexDig <= 'f')); +} + void CSP_PercentDecodeStr(const nsAString& aEncStr, nsAString& outDecStr) { diff --git a/dom/security/nsContentSecurityManager.cpp b/dom/security/nsContentSecurityManager.cpp index 5c6701992f..298dc810ea 100644 --- a/dom/security/nsContentSecurityManager.cpp +++ b/dom/security/nsContentSecurityManager.cpp @@ -5,16 +5,26 @@ #include "nsIStreamListener.h" #include "nsILoadInfo.h" #include "nsIOService.h" +#include "nsIProtocolHandler.h" #include "nsContentUtils.h" #include "nsCORSListenerProxy.h" #include "nsIStreamListener.h" +#include "nsIScriptError.h" #include "nsCDefaultURIFixup.h" #include "nsIURIFixup.h" #include "nsIImageLoadingContent.h" +#include "nsNetUtil.h" +#include "mozilla/ArrayUtils.h" +#include "nsString.h" +#include "nsMimeTypes.h" +#include "nsContentPolicyUtils.h" +#include "nsCharSeparatedTokenizer.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/TabChild.h" +using namespace mozilla; + NS_IMPL_ISUPPORTS(nsContentSecurityManager, nsIContentSecurityManager, nsIChannelEventSink) diff --git a/dom/security/nsMixedContentBlocker.cpp b/dom/security/nsMixedContentBlocker.cpp index 543429aff2..85fb06d8d7 100644 --- a/dom/security/nsMixedContentBlocker.cpp +++ b/dom/security/nsMixedContentBlocker.cpp @@ -20,6 +20,8 @@ #include "nsIContentViewer.h" #include "nsIChannel.h" #include "nsIHttpChannel.h" +#include "nsIProtocolHandler.h" +#include "nsIInterfaceRequestorUtils.h" #include "nsIParentChannel.h" #include "mozilla/Preferences.h" #include "nsIScriptObjectPrincipal.h" @@ -33,12 +35,12 @@ #include "nsAsyncRedirectVerifyHelper.h" #include "mozilla/LoadInfo.h" #include "nsISiteSecurityService.h" +#include "nsNetUtil.h" #include "mozilla/Logging.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/ipc/URIUtils.h" - using namespace mozilla; enum nsMixedContentBlockerMessageType { diff --git a/dom/smil/moz.build b/dom/smil/moz.build index 5b37ce642a..3c432898f0 100644 --- a/dom/smil/moz.build +++ b/dom/smil/moz.build @@ -35,7 +35,7 @@ EXPORTS.mozilla.dom += [ 'TimeEvent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsSMILAnimationController.cpp', 'nsSMILAnimationFunction.cpp', 'nsSMILCompositor.cpp', diff --git a/dom/smil/nsSMILAnimationFunction.cpp b/dom/smil/nsSMILAnimationFunction.cpp index 767181897f..cd57054fb7 100644 --- a/dom/smil/nsSMILAnimationFunction.cpp +++ b/dom/smil/nsSMILAnimationFunction.cpp @@ -24,6 +24,7 @@ #include <math.h> #include <algorithm> +using namespace mozilla; using namespace mozilla::dom; //---------------------------------------------------------------------- diff --git a/dom/smil/nsSMILCSSProperty.cpp b/dom/smil/nsSMILCSSProperty.cpp index e745124432..14e428c05b 100644 --- a/dom/smil/nsSMILCSSProperty.cpp +++ b/dom/smil/nsSMILCSSProperty.cpp @@ -17,6 +17,7 @@ #include "nsIDOMElement.h" #include "nsIDocument.h" +using namespace mozilla; using namespace mozilla::dom; // Helper function diff --git a/dom/smil/nsSMILCSSValueType.cpp b/dom/smil/nsSMILCSSValueType.cpp index ed89e7710a..2940c13671 100644 --- a/dom/smil/nsSMILCSSValueType.cpp +++ b/dom/smil/nsSMILCSSValueType.cpp @@ -18,6 +18,7 @@ #include "nsDebug.h" #include "nsStyleUtil.h" #include "nsIDocument.h" +#include "nsComputedDOMStyle.h" using namespace mozilla::dom; using mozilla::StyleAnimationValue; diff --git a/dom/smil/nsSMILCompositor.cpp b/dom/smil/nsSMILCompositor.cpp index fe7b2c8286..e7bf60932c 100644 --- a/dom/smil/nsSMILCompositor.cpp +++ b/dom/smil/nsSMILCompositor.cpp @@ -9,6 +9,9 @@ #include "nsCSSProps.h" #include "nsHashKeys.h" #include "nsSMILCSSProperty.h" +#include "mozilla/CSSEnabledState.h" + +using namespace mozilla; // PLDHashEntryHdr methods bool diff --git a/dom/smil/nsSMILInstanceTime.h b/dom/smil/nsSMILInstanceTime.h index d5a5807e3b..4602c9127f 100644 --- a/dom/smil/nsSMILInstanceTime.h +++ b/dom/smil/nsSMILInstanceTime.h @@ -8,6 +8,7 @@ #define NS_SMILINSTANCETIME_H_ #include "nsSMILTimeValue.h" +#include "nsISupports.h" class nsSMILInterval; class nsSMILTimeContainer; diff --git a/dom/smil/nsSMILTimeContainer.cpp b/dom/smil/nsSMILTimeContainer.cpp index 3df8a64cac..e3ebf5b099 100644 --- a/dom/smil/nsSMILTimeContainer.cpp +++ b/dom/smil/nsSMILTimeContainer.cpp @@ -11,6 +11,8 @@ #include "mozilla/AutoRestore.h" +using namespace mozilla; + nsSMILTimeContainer::nsSMILTimeContainer() : mParent(nullptr), diff --git a/dom/storage/DOMStorageDBUpdater.cpp b/dom/storage/DOMStorageDBUpdater.cpp index 8e3f07d7ce..61d86ca6c7 100644 --- a/dom/storage/DOMStorageDBUpdater.cpp +++ b/dom/storage/DOMStorageDBUpdater.cpp @@ -4,12 +4,16 @@ * 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 "DOMStorageDBThread.h" #include "DOMStorageManager.h" #include "mozIStorageBindingParamsArray.h" #include "mozIStorageBindingParams.h" #include "mozIStorageValueArray.h" #include "mozIStorageFunction.h" + +#include "mozStorageHelper.h" + #include "mozilla/BasePrincipal.h" #include "nsVariant.h" #include "mozilla/Services.h" diff --git a/dom/storage/DOMStorageManager.cpp b/dom/storage/DOMStorageManager.cpp index 8f50fcfb48..55a360e16d 100644 --- a/dom/storage/DOMStorageManager.cpp +++ b/dom/storage/DOMStorageManager.cpp @@ -14,6 +14,7 @@ #include "nsNetUtil.h" #include "nsNetCID.h" #include "nsIURL.h" +#include "nsPIDOMWindow.h" #include "nsPrintfCString.h" #include "nsXULAppAPI.h" #include "nsThreadUtils.h" diff --git a/dom/storage/moz.build b/dom/storage/moz.build index 47c2fb85f7..7d52d6d7b0 100644 --- a/dom/storage/moz.build +++ b/dom/storage/moz.build @@ -9,7 +9,7 @@ EXPORTS.mozilla.dom += [ 'DOMStorageIPC.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'DOMStorage.cpp', 'DOMStorageCache.cpp', 'DOMStorageDBThread.cpp', @@ -19,16 +19,13 @@ UNIFIED_SOURCES += [ 'DOMStorageObserver.cpp', ] -IPDL_SOURCES += [ - 'PStorage.ipdl', -] +IPDL_SOURCES += ['PStorage.ipdl'] include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' -LOCAL_INCLUDES += [ - '/dom/base', -] + +LOCAL_INCLUDES += ['/dom/base'] if CONFIG['ENABLE_TESTS']: DEFINES['DOM_STORAGE_TESTS'] = True diff --git a/dom/svg/SVGDocument.cpp b/dom/svg/SVGDocument.cpp index f992e52f5c..8b677d2e33 100644 --- a/dom/svg/SVGDocument.cpp +++ b/dom/svg/SVGDocument.cpp @@ -21,6 +21,8 @@ #include "nsSVGElement.h" #include "mozilla/StyleSheet.h" #include "mozilla/StyleSheetInlines.h" +#include "nsContentUtils.h" +#include "nsLayoutUtils.h" using namespace mozilla::css; using namespace mozilla::dom; diff --git a/dom/svg/SVGElementFactory.cpp b/dom/svg/SVGElementFactory.cpp index abbb0a8651..3738275f31 100644 --- a/dom/svg/SVGElementFactory.cpp +++ b/dom/svg/SVGElementFactory.cpp @@ -7,9 +7,7 @@ #include "SVGElementFactory.h" #include "nsGkAtoms.h" #include "nsIContent.h" -#include "mozilla/dom/NodeInfo.h" #include "mozilla/dom/Element.h" -#include "mozilla/dom/FromParser.h" using namespace mozilla; using namespace mozilla::dom; diff --git a/dom/svg/SVGElementFactory.h b/dom/svg/SVGElementFactory.h index 3a75ef750b..4c57b296d0 100644 --- a/dom/svg/SVGElementFactory.h +++ b/dom/svg/SVGElementFactory.h @@ -7,6 +7,11 @@ #ifndef mozilla_dom_SVGElementFactory_h #define mozilla_dom_SVGElementFactory_h +#include "nsError.h" +#include "nsIContent.h" +#include "mozilla/dom/FromParser.h" +#include "mozilla/dom/NodeInfo.h" + class nsIAtom; namespace mozilla { diff --git a/dom/svg/SVGGraphicsElement.cpp b/dom/svg/SVGGraphicsElement.cpp index ba63066803..4b85c9abbf 100644 --- a/dom/svg/SVGGraphicsElement.cpp +++ b/dom/svg/SVGGraphicsElement.cpp @@ -6,6 +6,8 @@ #include "mozilla/dom/SVGGraphicsElement.h" +#include "nsContentUtils.h" + namespace mozilla { namespace dom { diff --git a/dom/svg/SVGSymbolElement.cpp b/dom/svg/SVGSymbolElement.cpp index 42de96efd1..a1b52bfab4 100644 --- a/dom/svg/SVGSymbolElement.cpp +++ b/dom/svg/SVGSymbolElement.cpp @@ -7,6 +7,8 @@ #include "mozilla/dom/SVGSymbolElement.h" #include "mozilla/dom/SVGSymbolElementBinding.h" +#include "nsContentUtils.h" + NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Symbol) namespace mozilla { diff --git a/dom/svg/SVGTests.cpp b/dom/svg/SVGTests.cpp index 963ac27e46..03b205f679 100644 --- a/dom/svg/SVGTests.cpp +++ b/dom/svg/SVGTests.cpp @@ -11,6 +11,7 @@ #include "nsCharSeparatedTokenizer.h" #include "nsStyleUtil.h" #include "mozilla/Preferences.h" +#include "nsIContentInlines.h" namespace mozilla { namespace dom { diff --git a/dom/svg/moz.build b/dom/svg/moz.build index 298a7293d8..3bbb26dd83 100644 --- a/dom/svg/moz.build +++ b/dom/svg/moz.build @@ -101,7 +101,7 @@ EXPORTS.mozilla.dom += [ 'SVGZoomEvent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'DOMSVGAnimatedLengthList.cpp', 'DOMSVGAnimatedNumberList.cpp', 'DOMSVGLength.cpp', diff --git a/dom/system/moz.build b/dom/system/moz.build index fc8cf533b0..cb0818b345 100644 --- a/dom/system/moz.build +++ b/dom/system/moz.build @@ -30,7 +30,7 @@ EXPORTS.mozilla += [ 'OSFileConstants.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsDeviceSensors.cpp', 'OSFileConstants.cpp', ] diff --git a/dom/time/moz.build b/dom/time/moz.build index f6ef682c6b..b68f5c0896 100644 --- a/dom/time/moz.build +++ b/dom/time/moz.build @@ -4,9 +4,7 @@ # 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/. -XPIDL_SOURCES += [ - 'nsITimeService.idl', -] +XPIDL_SOURCES += ['nsITimeService.idl'] XPIDL_MODULE = 'dom_time' @@ -17,7 +15,7 @@ EXPORTS.mozilla.dom.time += [ 'TimeService.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'DateCacheCleaner.cpp', 'TimeChangeObserver.cpp', 'TimeManager.cpp', diff --git a/dom/u2f/moz.build b/dom/u2f/moz.build index 1c851e1d82..19325205a4 100644 --- a/dom/u2f/moz.build +++ b/dom/u2f/moz.build @@ -10,7 +10,7 @@ EXPORTS.mozilla.dom += [ 'USBToken.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'NSSU2FTokenRemote.cpp', 'U2F.cpp', 'USBToken.cpp', diff --git a/dom/url/moz.build b/dom/url/moz.build index 628b691014..4e88f27233 100644 --- a/dom/url/moz.build +++ b/dom/url/moz.build @@ -9,14 +9,12 @@ EXPORTS.mozilla.dom += [ 'URLSearchParams.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'URL.cpp', 'URLSearchParams.cpp', ] -LOCAL_INCLUDES += [ - '../workers', -] +LOCAL_INCLUDES += ['../workers'] MOCHITEST_MANIFESTS += ['tests/mochitest.ini'] MOCHITEST_CHROME_MANIFESTS += [ 'tests/chrome.ini' ] diff --git a/dom/workers/ServiceWorkerCommon.h b/dom/workers/ServiceWorkerCommon.h index 1c272c125c..d7e2ec21b2 100644 --- a/dom/workers/ServiceWorkerCommon.h +++ b/dom/workers/ServiceWorkerCommon.h @@ -7,6 +7,8 @@ #ifndef mozilla_dom_ServiceWorkerCommon_h #define mozilla_dom_ServiceWorkerCommon_h +#include "mozilla/TypedEnumBits.h" + namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerEvents.cpp b/dom/workers/ServiceWorkerEvents.cpp index 8b375c635f..a8b69bc481 100644 --- a/dom/workers/ServiceWorkerEvents.cpp +++ b/dom/workers/ServiceWorkerEvents.cpp @@ -28,6 +28,7 @@ #include "ServiceWorkerManager.h" #include "mozilla/ErrorResult.h" +#include "mozilla/Move.h" #include "mozilla/Preferences.h" #include "mozilla/dom/BodyUtil.h" #include "mozilla/dom/DOMException.h" @@ -50,6 +51,7 @@ #include "WorkerPrivate.h" #include "xpcpublic.h" +using namespace mozilla; using namespace mozilla::dom; using namespace mozilla::dom::workers; diff --git a/dom/workers/ServiceWorkerInfo.cpp b/dom/workers/ServiceWorkerInfo.cpp index fa08b97a6b..04fba7f8ed 100644 --- a/dom/workers/ServiceWorkerInfo.cpp +++ b/dom/workers/ServiceWorkerInfo.cpp @@ -6,6 +6,8 @@ #include "ServiceWorkerInfo.h" +#include "ServiceWorker.h" +#include "ServiceWorkerPrivate.h" #include "ServiceWorkerScriptCache.h" BEGIN_WORKERS_NAMESPACE diff --git a/dom/workers/ServiceWorkerInfo.h b/dom/workers/ServiceWorkerInfo.h index 80910bdad1..8c3220c1a9 100644 --- a/dom/workers/ServiceWorkerInfo.h +++ b/dom/workers/ServiceWorkerInfo.h @@ -9,6 +9,7 @@ #include "mozilla/dom/ServiceWorkerBinding.h" // For ServiceWorkerState #include "nsIServiceWorkerManager.h" +#include "Workers.h" namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerJob.cpp b/dom/workers/ServiceWorkerJob.cpp index 3d0a8e2cdc..d80dddfb6b 100644 --- a/dom/workers/ServiceWorkerJob.cpp +++ b/dom/workers/ServiceWorkerJob.cpp @@ -9,6 +9,7 @@ #include "nsProxyRelease.h" #include "nsThreadUtils.h" #include "Workers.h" +#include "ServiceWorkerManager.h" namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerRegisterJob.cpp b/dom/workers/ServiceWorkerRegisterJob.cpp index 8f771e7629..595c029e16 100644 --- a/dom/workers/ServiceWorkerRegisterJob.cpp +++ b/dom/workers/ServiceWorkerRegisterJob.cpp @@ -6,6 +6,7 @@ #include "ServiceWorkerRegisterJob.h" +#include "ServiceWorkerManager.h" #include "Workers.h" namespace mozilla { diff --git a/dom/workers/ServiceWorkerRegistrationInfo.cpp b/dom/workers/ServiceWorkerRegistrationInfo.cpp index 26ad74bdac..28d9fa9de0 100644 --- a/dom/workers/ServiceWorkerRegistrationInfo.cpp +++ b/dom/workers/ServiceWorkerRegistrationInfo.cpp @@ -6,6 +6,10 @@ #include "ServiceWorkerRegistrationInfo.h" +#include "ServiceWorkerManager.h" +#include "ServiceWorkerPrivate.h" +#include "nsProxyRelease.h" + BEGIN_WORKERS_NAMESPACE namespace { diff --git a/dom/workers/ServiceWorkerRegistrationInfo.h b/dom/workers/ServiceWorkerRegistrationInfo.h index d2d217be0f..a7175ef58d 100644 --- a/dom/workers/ServiceWorkerRegistrationInfo.h +++ b/dom/workers/ServiceWorkerRegistrationInfo.h @@ -8,6 +8,7 @@ #define mozilla_dom_workers_serviceworkerregistrationinfo_h #include "mozilla/dom/workers/ServiceWorkerInfo.h" +#include "mozilla/dom/workers/ServiceWorkerCommon.h" namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerUnregisterJob.cpp b/dom/workers/ServiceWorkerUnregisterJob.cpp index 8fd76b63d8..9fd3777009 100644 --- a/dom/workers/ServiceWorkerUnregisterJob.cpp +++ b/dom/workers/ServiceWorkerUnregisterJob.cpp @@ -7,6 +7,10 @@ #include "ServiceWorkerUnregisterJob.h" #include "nsIPushService.h" +#include "nsServiceManagerUtils.h" +#include "mozilla/Unused.h" +#include "Workers.h" +#include "ServiceWorkerManager.h" namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerUpdateJob.cpp b/dom/workers/ServiceWorkerUpdateJob.cpp index 69877dfe4c..38f58a3f95 100644 --- a/dom/workers/ServiceWorkerUpdateJob.cpp +++ b/dom/workers/ServiceWorkerUpdateJob.cpp @@ -6,9 +6,13 @@ #include "ServiceWorkerUpdateJob.h" +#include "nsProxyRelease.h" #include "nsIScriptError.h" #include "nsIURL.h" +#include "nsNetUtil.h" #include "ServiceWorkerScriptCache.h" +#include "ServiceWorkerPrivate.h" +#include "ServiceWorkerManager.h" #include "Workers.h" namespace mozilla { diff --git a/dom/workers/ServiceWorkerUpdateJob.h b/dom/workers/ServiceWorkerUpdateJob.h index 77adb22125..e5bfdc81de 100644 --- a/dom/workers/ServiceWorkerUpdateJob.h +++ b/dom/workers/ServiceWorkerUpdateJob.h @@ -8,6 +8,8 @@ #define mozilla_dom_workers_serviceworkerupdatejob_h #include "ServiceWorkerJob.h" +#include "ServiceWorkerRegistrationInfo.h" +#include "nsILoadGroup.h" namespace mozilla { namespace dom { diff --git a/dom/workers/ServiceWorkerWindowClient.cpp b/dom/workers/ServiceWorkerWindowClient.cpp index bae747214c..bf22a7b284 100644 --- a/dom/workers/ServiceWorkerWindowClient.cpp +++ b/dom/workers/ServiceWorkerWindowClient.cpp @@ -19,16 +19,19 @@ #include "nsIDocShellLoadInfo.h" #include "nsIDocument.h" #include "nsIGlobalObject.h" +#include "nsIInterfaceRequestor.h" #include "nsIPrincipal.h" #include "nsIScriptSecurityManager.h" #include "nsIWebNavigation.h" #include "nsIWebProgress.h" #include "nsIWebProgressListener.h" +#include "nsNetUtil.h" #include "nsString.h" #include "nsWeakReference.h" #include "ServiceWorker.h" #include "ServiceWorkerInfo.h" #include "ServiceWorkerManager.h" +#include "ServiceWorkerPrivate.h" #include "WorkerPrivate.h" #include "WorkerScope.h" diff --git a/dom/workers/SharedWorker.cpp b/dom/workers/SharedWorker.cpp index 99bb503397..a9192e6265 100644 --- a/dom/workers/SharedWorker.cpp +++ b/dom/workers/SharedWorker.cpp @@ -8,6 +8,7 @@ #include "nsPIDOMWindow.h" +#include "mozilla/dom/Event.h" #include "mozilla/EventDispatcher.h" #include "mozilla/Preferences.h" #include "mozilla/dom/MessagePort.h" diff --git a/dom/workers/WorkerRunnable.cpp b/dom/workers/WorkerRunnable.cpp index 60d69d4e42..8944c751ca 100644 --- a/dom/workers/WorkerRunnable.cpp +++ b/dom/workers/WorkerRunnable.cpp @@ -14,6 +14,7 @@ #include "mozilla/DebugOnly.h" #include "mozilla/ErrorResult.h" +#include "mozilla/Unused.h" #include "mozilla/dom/ScriptSettings.h" #include "js/RootingAPI.h" @@ -22,6 +23,7 @@ #include "WorkerPrivate.h" #include "WorkerScope.h" +using namespace mozilla; USING_WORKERS_NAMESPACE namespace { diff --git a/dom/workers/WorkerRunnable.h b/dom/workers/WorkerRunnable.h index 8249a8053e..2c9fb3b1d8 100644 --- a/dom/workers/WorkerRunnable.h +++ b/dom/workers/WorkerRunnable.h @@ -14,6 +14,7 @@ #include "mozilla/Atomics.h" #include "nsISupportsImpl.h" #include "nsThreadUtils.h" /* nsRunnable */ +#include "WorkerHolder.h" struct JSContext; class nsIEventTarget; diff --git a/dom/workers/moz.build b/dom/workers/moz.build index 9fea841937..0ba7d9ad64 100644 --- a/dom/workers/moz.build +++ b/dom/workers/moz.build @@ -22,6 +22,7 @@ EXPORTS.mozilla.dom += [ EXPORTS.mozilla.dom.workers += [ 'RuntimeService.h', + 'ServiceWorkerCommon.h', 'ServiceWorkerInfo.h', 'ServiceWorkerManager.h', 'ServiceWorkerRegistrationInfo.h', @@ -46,7 +47,7 @@ XPIDL_SOURCES += [ 'nsIWorkerDebuggerManager.idl', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'ChromeWorkerScope.cpp', 'FileReaderSync.cpp', 'Principal.cpp', diff --git a/dom/worklet/moz.build b/dom/worklet/moz.build index 80c0bf0c9f..7903dcf888 100644 --- a/dom/worklet/moz.build +++ b/dom/worklet/moz.build @@ -9,7 +9,7 @@ EXPORTS.mozilla.dom += [ 'WorkletGlobalScope.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'Worklet.cpp', 'WorkletGlobalScope.cpp', ] diff --git a/dom/xbl/moz.build b/dom/xbl/moz.build index 0950db0361..7a88148787 100644 --- a/dom/xbl/moz.build +++ b/dom/xbl/moz.build @@ -16,7 +16,7 @@ EXPORTS.mozilla.dom += [ 'XBLChildrenElement.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsBindingManager.cpp', 'nsXBLBinding.cpp', 'nsXBLContentSink.cpp', diff --git a/dom/xhr/XMLHttpRequestString.cpp b/dom/xhr/XMLHttpRequestString.cpp index c668b94f65..c2bde5e0eb 100644 --- a/dom/xhr/XMLHttpRequestString.cpp +++ b/dom/xhr/XMLHttpRequestString.cpp @@ -12,97 +12,6 @@ namespace mozilla { namespace dom { -class XMLHttpRequestStringBuffer final -{ - friend class XMLHttpRequestStringWriterHelper; - friend class XMLHttpRequestStringSnapshotReaderHelper; - -public: - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(XMLHttpRequestStringBuffer) - NS_DECL_OWNINGTHREAD - - XMLHttpRequestStringBuffer() - : mMutex("XMLHttpRequestStringBuffer::mMutex") - { - } - - uint32_t - Length() - { - MutexAutoLock lock(mMutex); - return mData.Length(); - } - - uint32_t - UnsafeLength() const - { - return mData.Length(); - } - - void - Append(const nsAString& aString) - { - NS_ASSERT_OWNINGTHREAD(XMLHttpRequestStringBuffer); - - MutexAutoLock lock(mMutex); - mData.Append(aString); - } - - MOZ_MUST_USE bool - GetAsString(nsAString& aString) - { - MutexAutoLock lock(mMutex); - return aString.Assign(mData, mozilla::fallible); - } - - size_t - SizeOfThis(MallocSizeOf aMallocSizeOf) const - { - return mData.SizeOfExcludingThisIfUnshared(aMallocSizeOf); - } - - MOZ_MUST_USE bool - GetAsString(DOMString& aString, uint32_t aLength) - { - MutexAutoLock lock(mMutex); - MOZ_ASSERT(aLength <= mData.Length()); - nsStringBuffer* buf = nsStringBuffer::FromString(mData); - if (buf) { - // We have to use SetEphemeralStringBuffer, because once we release our - // mutex mData can get mutated from some other thread while the DOMString - // is still alive. - aString.SetEphemeralStringBuffer(buf, aLength); - return true; - } - - // We can get here if mData is empty. In that case it won't have an - // nsStringBuffer.... - MOZ_ASSERT(mData.IsEmpty()); - return aString.AsAString().Assign(mData.BeginReading(), aLength, - mozilla::fallible); - } - - void - CreateSnapshot(XMLHttpRequestStringSnapshot& aSnapshot) - { - MutexAutoLock lock(mMutex); - aSnapshot.Set(this, mData.Length()); - } - -private: - ~XMLHttpRequestStringBuffer() - {} - - nsString& UnsafeData() - { - return mData; - } - - Mutex mMutex; - - // The following member variable is protected by mutex. - nsString mData; -}; // --------------------------------------------------------------------------- // XMLHttpRequestString diff --git a/dom/xhr/XMLHttpRequestString.h b/dom/xhr/XMLHttpRequestString.h index b6b12483f3..5709c1aa2f 100644 --- a/dom/xhr/XMLHttpRequestString.h +++ b/dom/xhr/XMLHttpRequestString.h @@ -7,6 +7,9 @@ #ifndef mozilla_dom_XMLHttpRequestString_h #define mozilla_dom_XMLHttpRequestString_h +#include "mozilla/Mutex.h" +#include "mozilla/RefPtr.h" +#include "mozilla/dom/DOMString.h" #include "nsString.h" namespace mozilla { @@ -155,6 +158,98 @@ private: MutexAutoLock mLock; }; +class XMLHttpRequestStringBuffer final +{ + friend class XMLHttpRequestStringWriterHelper; + friend class XMLHttpRequestStringSnapshotReaderHelper; + +public: + NS_INLINE_DECL_THREADSAFE_REFCOUNTING(XMLHttpRequestStringBuffer) + NS_DECL_OWNINGTHREAD + + XMLHttpRequestStringBuffer() + : mMutex("XMLHttpRequestStringBuffer::mMutex") + { + } + + uint32_t + Length() + { + MutexAutoLock lock(mMutex); + return mData.Length(); + } + + uint32_t + UnsafeLength() const + { + return mData.Length(); + } + + void + Append(const nsAString& aString) + { + NS_ASSERT_OWNINGTHREAD(XMLHttpRequestStringBuffer); + + MutexAutoLock lock(mMutex); + mData.Append(aString); + } + + MOZ_MUST_USE bool + GetAsString(nsAString& aString) + { + MutexAutoLock lock(mMutex); + return aString.Assign(mData, mozilla::fallible); + } + + size_t + SizeOfThis(MallocSizeOf aMallocSizeOf) const + { + return mData.SizeOfExcludingThisIfUnshared(aMallocSizeOf); + } + + MOZ_MUST_USE bool + GetAsString(DOMString& aString, uint32_t aLength) + { + MutexAutoLock lock(mMutex); + MOZ_ASSERT(aLength <= mData.Length()); + nsStringBuffer* buf = nsStringBuffer::FromString(mData); + if (buf) { + // We have to use SetEphemeralStringBuffer, because once we release our + // mutex mData can get mutated from some other thread while the DOMString + // is still alive. + aString.SetEphemeralStringBuffer(buf, aLength); + return true; + } + + // We can get here if mData is empty. In that case it won't have an + // nsStringBuffer.... + MOZ_ASSERT(mData.IsEmpty()); + return aString.AsAString().Assign(mData.BeginReading(), aLength, + mozilla::fallible); + } + + void + CreateSnapshot(XMLHttpRequestStringSnapshot& aSnapshot) + { + MutexAutoLock lock(mMutex); + aSnapshot.Set(this, mData.Length()); + } + +private: + ~XMLHttpRequestStringBuffer() + {} + + nsString& UnsafeData() + { + return mData; + } + + Mutex mMutex; + + // The following member variable is protected by mutex. + nsString mData; +}; + } // dom namespace } // mozilla namespace diff --git a/dom/xhr/XMLHttpRequestWorker.cpp b/dom/xhr/XMLHttpRequestWorker.cpp index 2af61bd7dd..7bec379aa0 100644 --- a/dom/xhr/XMLHttpRequestWorker.cpp +++ b/dom/xhr/XMLHttpRequestWorker.cpp @@ -33,6 +33,8 @@ #include "WorkerScope.h" #include "WorkerPrivate.h" #include "WorkerRunnable.h" +#include "XMLHttpRequestMainThread.h" +#include "XMLHttpRequestString.h" #include "XMLHttpRequestUpload.h" #include "mozilla/UniquePtr.h" diff --git a/dom/xhr/moz.build b/dom/xhr/moz.build index 4ad91deea3..d4803015fa 100644 --- a/dom/xhr/moz.build +++ b/dom/xhr/moz.build @@ -18,7 +18,7 @@ EXPORTS.mozilla.dom += [ 'XMLHttpRequestUpload.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'XMLHttpRequest.cpp', 'XMLHttpRequestEventTarget.cpp', 'XMLHttpRequestMainThread.cpp', diff --git a/dom/xml/moz.build b/dom/xml/moz.build index f3af9968d3..0eb3ee686b 100644 --- a/dom/xml/moz.build +++ b/dom/xml/moz.build @@ -20,7 +20,7 @@ EXPORTS.mozilla.dom += [ 'XMLStylesheetProcessingInstruction.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'CDATASection.cpp', 'nsXMLContentSink.cpp', 'nsXMLElement.cpp', diff --git a/dom/xml/nsXMLPrettyPrinter.cpp b/dom/xml/nsXMLPrettyPrinter.cpp index 2e086dde0b..7f1f2b07a8 100644 --- a/dom/xml/nsXMLPrettyPrinter.cpp +++ b/dom/xml/nsXMLPrettyPrinter.cpp @@ -11,6 +11,7 @@ #include "nsIXSLTProcessor.h" #include "nsSyncLoadService.h" #include "nsPIDOMWindow.h" +#include "nsIDOMDocument.h" #include "nsIDOMElement.h" #include "nsIServiceManager.h" #include "nsNetUtil.h" diff --git a/dom/xslt/base/moz.build b/dom/xslt/base/moz.build index 7d9cd70fa8..d08db49352 100644 --- a/dom/xslt/base/moz.build +++ b/dom/xslt/base/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'txDouble.cpp', 'txExpandedName.cpp', 'txExpandedNameMap.cpp', diff --git a/dom/xslt/xml/moz.build b/dom/xslt/xml/moz.build index f20a27bba3..9670354669 100644 --- a/dom/xslt/xml/moz.build +++ b/dom/xslt/xml/moz.build @@ -4,7 +4,7 @@ # 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/. -UNIFIED_SOURCES += [ +SOURCES += [ 'txXMLParser.cpp', 'txXMLUtils.cpp', ] diff --git a/dom/xslt/xpath/moz.build b/dom/xslt/xpath/moz.build index 1a7dbf89fc..aa989ee91f 100644 --- a/dom/xslt/xpath/moz.build +++ b/dom/xslt/xpath/moz.build @@ -10,7 +10,7 @@ EXPORTS.mozilla.dom += [ 'XPathResult.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'txBooleanExpr.cpp', 'txBooleanResult.cpp', 'txCoreFunctionCall.cpp', diff --git a/dom/xslt/xslt/moz.build b/dom/xslt/xslt/moz.build index d629e1d3e1..8c9e98a0ab 100644 --- a/dom/xslt/xslt/moz.build +++ b/dom/xslt/xslt/moz.build @@ -8,7 +8,7 @@ EXPORTS.mozilla.dom += [ 'txMozillaXSLTProcessor.h' ] -UNIFIED_SOURCES += [ +SOURCES += [ 'txBufferingHandler.cpp', 'txCurrentFunctionCall.cpp', 'txDocumentFunctionCall.cpp', diff --git a/dom/xslt/xslt/txExecutionState.cpp b/dom/xslt/xslt/txExecutionState.cpp index 869c3968b7..5caaf77f0c 100644 --- a/dom/xslt/xslt/txExecutionState.cpp +++ b/dom/xslt/xslt/txExecutionState.cpp @@ -13,6 +13,9 @@ #include "txLog.h" #include "txURIUtils.h" #include "txXMLParser.h" +#include "mozilla/Logging.h" + +using mozilla::LogLevel; const int32_t txExecutionState::kMaxRecursionDepth = 20000; diff --git a/dom/xslt/xslt/txMozillaXSLTProcessor.cpp b/dom/xslt/xslt/txMozillaXSLTProcessor.cpp index facb435b4c..24c0595ddd 100644 --- a/dom/xslt/xslt/txMozillaXSLTProcessor.cpp +++ b/dom/xslt/xslt/txMozillaXSLTProcessor.cpp @@ -37,7 +37,9 @@ #include "nsVariant.h" #include "mozilla/dom/DocumentFragment.h" #include "mozilla/dom/XSLTProcessorBinding.h" +#include "mozilla/ErrorResult.h" +using namespace mozilla; using namespace mozilla::dom; static NS_DEFINE_CID(kXMLDocumentCID, NS_XMLDOCUMENT_CID); diff --git a/dom/xul/moz.build b/dom/xul/moz.build index 8dff722bee..dad38a2c4c 100644 --- a/dom/xul/moz.build +++ b/dom/xul/moz.build @@ -19,7 +19,7 @@ if CONFIG['MOZ_XUL']: 'nsIXULDocument.h', ] - UNIFIED_SOURCES += [ + SOURCES += [ 'nsXULCommandDispatcher.cpp', 'nsXULContentSink.cpp', 'nsXULElement.cpp', @@ -36,7 +36,7 @@ XPIDL_SOURCES += [ XPIDL_MODULE = 'xul' -UNIFIED_SOURCES += [ +SOURCES += [ 'nsXULControllers.cpp', ] diff --git a/dom/xul/nsXULContentSink.cpp b/dom/xul/nsXULContentSink.cpp index 7103be758d..edeee87280 100644 --- a/dom/xul/nsXULContentSink.cpp +++ b/dom/xul/nsXULContentSink.cpp @@ -42,6 +42,7 @@ #include "nsReadableUtils.h" #include "nsXULElement.h" #include "mozilla/Logging.h" +#include "mozilla/CheckedInt.h" #include "prmem.h" #include "nsCRT.h" @@ -57,6 +58,7 @@ #include "nsIScriptError.h" #include "nsContentTypeParser.h" +using namespace mozilla; static mozilla::LazyLogModule gContentSinkLog("nsXULContentSink");; //---------------------------------------------------------------------- diff --git a/dom/xul/templates/moz.build b/dom/xul/templates/moz.build index 3beb0b7e5b..780f019418 100644 --- a/dom/xul/templates/moz.build +++ b/dom/xul/templates/moz.build @@ -17,7 +17,7 @@ XPIDL_SOURCES += [ XPIDL_MODULE = 'xultmpl' -UNIFIED_SOURCES += [ +SOURCES += [ 'nsContentSupportMap.cpp', 'nsContentTestNode.cpp', 'nsInstantiationNode.cpp', diff --git a/dom/xul/templates/nsInstantiationNode.cpp b/dom/xul/templates/nsInstantiationNode.cpp index 9079d4189e..ebf12acadd 100644 --- a/dom/xul/templates/nsInstantiationNode.cpp +++ b/dom/xul/templates/nsInstantiationNode.cpp @@ -8,6 +8,9 @@ #include "nsXULTemplateQueryProcessorRDF.h" #include "mozilla/Logging.h" + +using namespace mozilla; + extern mozilla::LazyLogModule gXULTemplateLog; nsInstantiationNode::nsInstantiationNode(nsXULTemplateQueryProcessorRDF* aProcessor, diff --git a/dom/xul/templates/nsTemplateMap.h b/dom/xul/templates/nsTemplateMap.h index cb828b0933..dfa7d611a5 100644 --- a/dom/xul/templates/nsTemplateMap.h +++ b/dom/xul/templates/nsTemplateMap.h @@ -9,6 +9,8 @@ #include "PLDHashTable.h" #include "nsXULElement.h" +using mozilla::fallible; + class nsTemplateMap { protected: struct Entry : public PLDHashEntryHdr { diff --git a/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp b/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp index 732e545d05..ecf6b64c5f 100644 --- a/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp +++ b/dom/xul/templates/nsXULTemplateQueryProcessorRDF.cpp @@ -35,6 +35,10 @@ #include "nsXULSortService.h" #include "nsIDocument.h" +#include "mozilla/Logging.h" + +using namespace mozilla; + //---------------------------------------------------------------------- #define PARSE_TYPE_INTEGER "Integer" diff --git a/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp b/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp index a70307bf53..cd7c32eaee 100644 --- a/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp +++ b/dom/xul/templates/nsXULTemplateQueryProcessorStorage.cpp @@ -28,6 +28,8 @@ #include "nsIDocument.h" #include "nsNetUtil.h" +using mozilla::fallible; + //---------------------------------------------------------------------- // // nsXULTemplateResultSetStorage diff --git a/dom/xul/templates/nsXULTreeBuilder.cpp b/dom/xul/templates/nsXULTreeBuilder.cpp index b421334849..3356700bec 100644 --- a/dom/xul/templates/nsXULTreeBuilder.cpp +++ b/dom/xul/templates/nsXULTreeBuilder.cpp @@ -32,6 +32,9 @@ #include "nsTreeContentView.h" #include "nsIXULStore.h" #include "mozilla/BinarySearch.h" +#include "mozilla/Logging.h" + +using mozilla::LogLevel; // For security check #include "nsIDocument.h" diff --git a/layout/build/moz.build b/layout/build/moz.build index ecf180d78e..360fe3c974 100644 --- a/layout/build/moz.build +++ b/layout/build/moz.build @@ -10,7 +10,7 @@ EXPORTS += [ 'nsLayoutStatics.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsContentDLF.cpp', 'nsLayoutModule.cpp', 'nsLayoutStatics.cpp', diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp index 0f4560afea..124bcbf10b 100644 --- a/layout/build/nsLayoutStatics.cpp +++ b/layout/build/nsLayoutStatics.cpp @@ -112,11 +112,13 @@ #include "nsApplicationCacheService.h" #include "mozilla/dom/CustomElementRegistry.h" #include "mozilla/dom/time/DateCacheCleaner.h" +#include "mozilla/dom/workers/ServiceWorkerManager.h" #include "mozilla/EventDispatcher.h" #include "mozilla/IMEStateManager.h" #include "mozilla/dom/HTMLVideoElement.h" #include "TouchManager.h" #include "MediaDecoder.h" +#include "MediaManager.h" #include "MediaPrefs.h" #include "mozilla/ServoBindings.h" #include "mozilla/StaticPresData.h" diff --git a/layout/forms/moz.build b/layout/forms/moz.build index 4fecbad388..50e364ce2f 100644 --- a/layout/forms/moz.build +++ b/layout/forms/moz.build @@ -18,7 +18,7 @@ EXPORTS += [ 'nsITextControlFrame.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsButtonFrameRenderer.cpp', 'nsColorControlFrame.cpp', 'nsComboboxControlFrame.cpp', diff --git a/layout/forms/nsHTMLButtonControlFrame.cpp b/layout/forms/nsHTMLButtonControlFrame.cpp index 2e4fa9f67a..c6d8e1c4f5 100644 --- a/layout/forms/nsHTMLButtonControlFrame.cpp +++ b/layout/forms/nsHTMLButtonControlFrame.cpp @@ -7,6 +7,7 @@ #include "nsContainerFrame.h" #include "nsIFormControlFrame.h" +#include "nsIFrameInlines.h" #include "nsPresContext.h" #include "nsGkAtoms.h" #include "nsButtonFrameRenderer.h" diff --git a/layout/forms/nsLegendFrame.cpp b/layout/forms/nsLegendFrame.cpp index 60056f15d5..95efc2c878 100644 --- a/layout/forms/nsLegendFrame.cpp +++ b/layout/forms/nsLegendFrame.cpp @@ -12,6 +12,8 @@ #include "nsStyleConsts.h" #include "nsFormControlFrame.h" +using namespace mozilla; + nsIFrame* NS_NewLegendFrame(nsIPresShell* aPresShell, nsStyleContext* aContext) { diff --git a/layout/forms/nsTextControlFrame.cpp b/layout/forms/nsTextControlFrame.cpp index f8fdf3420a..a65e5b9723 100644 --- a/layout/forms/nsTextControlFrame.cpp +++ b/layout/forms/nsTextControlFrame.cpp @@ -55,6 +55,7 @@ #define DEFAULT_COLUMN_WIDTH 20 using namespace mozilla; +using namespace mozilla::dom; nsIFrame* NS_NewTextControlFrame(nsIPresShell* aPresShell, nsStyleContext* aContext) diff --git a/layout/inspector/moz.build b/layout/inspector/moz.build index 1576b7d148..bbf8082929 100644 --- a/layout/inspector/moz.build +++ b/layout/inspector/moz.build @@ -26,7 +26,7 @@ EXPORTS += [ 'nsFontFaceList.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'inCSSValueSearch.cpp', 'inDeepTreeWalker.cpp', 'inDOMUtils.cpp', @@ -37,7 +37,7 @@ UNIFIED_SOURCES += [ ] if CONFIG['MOZ_XUL']: - UNIFIED_SOURCES += [ + SOURCES += [ 'inDOMView.cpp', ] diff --git a/layout/ipc/moz.build b/layout/ipc/moz.build index d9cf962ca2..919a9df7a3 100644 --- a/layout/ipc/moz.build +++ b/layout/ipc/moz.build @@ -14,12 +14,9 @@ EXPORTS.mozilla.layout += [ 'VsyncParent.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'RenderFrameChild.cpp', 'RenderFrameParent.cpp', -] - -SOURCES += [ 'VsyncChild.cpp', 'VsyncParent.cpp', ] diff --git a/layout/mathml/moz.build b/layout/mathml/moz.build index f40b2c2c65..07dd446a3b 100644 --- a/layout/mathml/moz.build +++ b/layout/mathml/moz.build @@ -16,7 +16,7 @@ if CONFIG['ENABLE_TESTS']: 'tests/chrome.ini', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsMathMLChar.cpp', 'nsMathMLContainerFrame.cpp', 'nsMathMLFrame.cpp', diff --git a/layout/mathml/nsMathMLOperators.cpp b/layout/mathml/nsMathMLOperators.cpp index bbb03014b7..9a9f413b4a 100644 --- a/layout/mathml/nsMathMLOperators.cpp +++ b/layout/mathml/nsMathMLOperators.cpp @@ -7,6 +7,7 @@ #include "nsCOMPtr.h" #include "nsDataHashtable.h" #include "nsHashKeys.h" +#include "nsNetUtil.h" #include "nsTArray.h" #include "nsIPersistentProperties2.h" diff --git a/layout/mathml/nsMathMLmfencedFrame.cpp b/layout/mathml/nsMathMLmfencedFrame.cpp index ca780e649b..a5f5ed4d9e 100644 --- a/layout/mathml/nsMathMLmfencedFrame.cpp +++ b/layout/mathml/nsMathMLmfencedFrame.cpp @@ -3,13 +3,13 @@ * 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 "nsMathMLmfencedFrame.h" #include "nsRenderingContext.h" #include "nsMathMLChar.h" #include <algorithm> using namespace mozilla; +using namespace mozilla::gfx; // // <mfenced> -- surround content with a pair of fences diff --git a/layout/tools/layout-debug/src/moz.build b/layout/tools/layout-debug/src/moz.build index be7abcab0f..b3f7d5e062 100644 --- a/layout/tools/layout-debug/src/moz.build +++ b/layout/tools/layout-debug/src/moz.build @@ -15,7 +15,7 @@ EXPORTS += [ 'nsLayoutDebugCIID.h', ] -UNIFIED_SOURCES += [ +SOURCES += [ 'nsDebugFactory.cpp', 'nsLayoutDebugCLH.cpp', 'nsLayoutDebuggingTools.cpp', diff --git a/old-configure.in b/old-configure.in index 86cf2ae181..2965f60b75 100644 --- a/old-configure.in +++ b/old-configure.in @@ -2113,6 +2113,7 @@ if test "$MOZ_IOS"; then MOZ_AUTH_EXTENSION= fi MOZ_RAW= +MOZ_AV1= MOZ_VORBIS= MOZ_TREMOR= MOZ_SAMPLE_TYPE_FLOAT32= @@ -2167,6 +2168,7 @@ MOZ_LDAP_XPCOM= MOZ_MORK= MOZ_MAPI_SUPPORT= MOZ_INCOMPLETE_EXTERNAL_LINKAGE= +MOZ_CAN_DRAW_IN_TITLEBAR= case "$target_os" in mingw*) @@ -2816,6 +2818,22 @@ fi AC_SUBST(MOZ_MAPI_SUPPORT) dnl ======================================================== +dnl = Client drawing in titlebar +dnl ======================================================== +if test -n "$MOZ_CAN_DRAW_IN_TITLEBAR"; then + case "$OS_TARGET" in + WINNT|Darwin) + AC_DEFINE(MOZ_CAN_DRAW_IN_TITLEBAR) + ;; + *) + AC_MSG_ERROR([Drawing in the titlebar is only supported on Windows and Macintosh targets]) + ;; + esac +fi + +AC_SUBST(MOZ_CAN_DRAW_IN_TITLEBAR) + +dnl ======================================================== dnl = Enable WebRTC code dnl ======================================================== MOZ_ARG_ENABLE_BOOL(webrtc, @@ -2898,6 +2916,20 @@ fi AC_SUBST(MOZ_RAW) dnl ======================================================== +dnl = Enable Libaom AV1 Codec +dnl ======================================================== +MOZ_ARG_ENABLE_BOOL(av1, +[ --enable-av1 Enable libaom for av1 video support], + MOZ_AV1=1, + MOZ_AV1=) + +if test -n "$MOZ_AV1"; then + AC_DEFINE(MOZ_AV1) +fi + +AC_SUBST(MOZ_AV1) + +dnl ======================================================== dnl = Apple platform decoder support dnl ======================================================== if test "$COMPILE_ENVIRONMENT"; then @@ -4897,15 +4929,6 @@ AC_SUBST(MOZ_FIX_LINK_PATHS) AC_SUBST(MOZ_POST_PROGRAM_COMMAND) AC_SUBST(MOZ_LINKER_EXTRACT) -AC_SUBST(MOZ_ADDON_SIGNING) -if test "$MOZ_ADDON_SIGNING" = 1; then - AC_DEFINE(MOZ_ADDON_SIGNING) -fi -AC_SUBST(MOZ_REQUIRE_SIGNING) -if test "$MOZ_REQUIRE_SIGNING" = 1; then - AC_DEFINE(MOZ_REQUIRE_SIGNING) -fi - AC_SUBST(MOZ_JSDOWNLOADS) if test -n "$MOZ_JSDOWNLOADS"; then AC_DEFINE(MOZ_JSDOWNLOADS) diff --git a/python/mozbuild/mozbuild/mozinfo.py b/python/mozbuild/mozbuild/mozinfo.py index 230ca119ae..3bdde249ce 100755 --- a/python/mozbuild/mozbuild/mozinfo.py +++ b/python/mozbuild/mozbuild/mozinfo.py @@ -88,8 +88,6 @@ def build_dict(config, env=os.environ): d['telemetry'] = substs.get('MOZ_TELEMETRY_REPORTING') == '1' d['tests_enabled'] = substs.get('ENABLE_TESTS') == "1" d['bin_suffix'] = substs.get('BIN_SUFFIX', '') - d['addon_signing'] = substs.get('MOZ_ADDON_SIGNING') == '1' - d['require_signing'] = substs.get('MOZ_REQUIRE_SIGNING') == '1' d['official'] = bool(substs.get('MC_OFFICIAL')) def guess_platform(): diff --git a/toolkit/components/contextualidentity/ContextualIdentityService.jsm b/toolkit/components/contextualidentity/ContextualIdentityService.jsm deleted file mode 100644 index 6aae3673d2..0000000000 --- a/toolkit/components/contextualidentity/ContextualIdentityService.jsm +++ /dev/null @@ -1,344 +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.EXPORTED_SYMBOLS = ["ContextualIdentityService"]; - -const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -const DEFAULT_TAB_COLOR = "#909090"; -const SAVE_DELAY_MS = 1500; - -XPCOMUtils.defineLazyGetter(this, "gBrowserBundle", function() { - return Services.strings.createBundle("chrome://browser/locale/browser.properties"); -}); - -XPCOMUtils.defineLazyGetter(this, "gTextDecoder", function () { - return new TextDecoder(); -}); - -XPCOMUtils.defineLazyGetter(this, "gTextEncoder", function () { - return new TextEncoder(); -}); - -XPCOMUtils.defineLazyModuleGetter(this, "AsyncShutdown", - "resource://gre/modules/AsyncShutdown.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "OS", - "resource://gre/modules/osfile.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "DeferredTask", - "resource://gre/modules/DeferredTask.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "FileUtils", - "resource://gre/modules/FileUtils.jsm"); - -function _ContextualIdentityService(path) { - this.init(path); -} - -_ContextualIdentityService.prototype = { - _defaultIdentities: [ - { userContextId: 1, - public: true, - icon: "fingerprint", - color: "blue", - l10nID: "userContextPersonal.label", - accessKey: "userContextPersonal.accesskey", - telemetryId: 1, - }, - { userContextId: 2, - public: true, - icon: "briefcase", - color: "orange", - l10nID: "userContextWork.label", - accessKey: "userContextWork.accesskey", - telemetryId: 2, - }, - { userContextId: 3, - public: true, - icon: "dollar", - color: "green", - l10nID: "userContextBanking.label", - accessKey: "userContextBanking.accesskey", - telemetryId: 3, - }, - { userContextId: 4, - public: true, - icon: "cart", - color: "pink", - l10nID: "userContextShopping.label", - accessKey: "userContextShopping.accesskey", - telemetryId: 4, - }, - { userContextId: 5, - public: false, - icon: "", - color: "", - name: "userContextIdInternal.thumbnail", - accessKey: "" }, - ], - - _identities: null, - _openedIdentities: new Set(), - _lastUserContextId: 0, - - _path: null, - _dataReady: false, - - _saver: null, - - init(path) { - this._path = path; - this._saver = new DeferredTask(() => this.save(), SAVE_DELAY_MS); - AsyncShutdown.profileBeforeChange.addBlocker("ContextualIdentityService: writing data", - () => this._saver.finalize()); - - this.load(); - }, - - load() { - OS.File.read(this._path).then(bytes => { - // If synchronous loading happened in the meantime, exit now. - if (this._dataReady) { - return; - } - - try { - let data = JSON.parse(gTextDecoder.decode(bytes)); - if (data.version == 1) { - this.resetDefault(); - } - if (data.version != 2) { - dump("ERROR - ContextualIdentityService - Unknown version found in " + this._path + "\n"); - this.loadError(null); - return; - } - - this._identities = data.identities; - this._lastUserContextId = data.lastUserContextId; - - this._dataReady = true; - } catch (error) { - this.loadError(error); - } - }, (error) => { - this.loadError(error); - }); - }, - - resetDefault() { - this._identities = this._defaultIdentities; - this._lastUserContextId = this._defaultIdentities.length; - - this._dataReady = true; - - this.saveSoon(); - }, - - loadError(error) { - if (error != null && - !(error instanceof OS.File.Error && error.becauseNoSuchFile) && - !(error instanceof Components.Exception && - error.result == Cr.NS_ERROR_FILE_NOT_FOUND)) { - // Let's report the error. - Cu.reportError(error); - } - - // If synchronous loading happened in the meantime, exit now. - if (this._dataReady) { - return; - } - - this.resetDefault(); - }, - - saveSoon() { - this._saver.arm(); - }, - - save() { - let object = { - version: 2, - lastUserContextId: this._lastUserContextId, - identities: this._identities - }; - - let bytes = gTextEncoder.encode(JSON.stringify(object)); - return OS.File.writeAtomic(this._path, bytes, - { tmpPath: this._path + ".tmp" }); - }, - - create(name, icon, color) { - let identity = { - userContextId: ++this._lastUserContextId, - public: true, - icon, - color, - name - }; - - this._identities.push(identity); - this.saveSoon(); - - return Cu.cloneInto(identity, {}); - }, - - update(userContextId, name, icon, color) { - let identity = this._identities.find(identity => identity.userContextId == userContextId && - identity.public); - if (identity && name) { - identity.name = name; - identity.color = color; - identity.icon = icon; - delete identity.l10nID; - delete identity.accessKey; - this.saveSoon(); - } - - return !!identity; - }, - - remove(userContextId) { - let index = this._identities.findIndex(i => i.userContextId == userContextId && i.public); - if (index == -1) { - return false; - } - - Services.obs.notifyObservers(null, "clear-origin-attributes-data", - JSON.stringify({ userContextId })); - - this._identities.splice(index, 1); - this._openedIdentities.delete(userContextId); - this.saveSoon(); - - return true; - }, - - ensureDataReady() { - if (this._dataReady) { - return; - } - - try { - // This reads the file and automatically detects the UTF-8 encoding. - let inputStream = Cc["@mozilla.org/network/file-input-stream;1"] - .createInstance(Ci.nsIFileInputStream); - inputStream.init(new FileUtils.File(this._path), - FileUtils.MODE_RDONLY, FileUtils.PERMS_FILE, 0); - try { - let json = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); - let data = json.decodeFromStream(inputStream, - inputStream.available()); - this._identities = data.identities; - this._lastUserContextId = data.lastUserContextId; - - this._dataReady = true; - } finally { - inputStream.close(); - } - } catch (error) { - this.loadError(error); - return; - } - }, - - getIdentities() { - this.ensureDataReady(); - return Cu.cloneInto(this._identities.filter(info => info.public), {}); - }, - - getPrivateIdentity(name) { - this.ensureDataReady(); - return Cu.cloneInto(this._identities.find(info => !info.public && info.name == name), {}); - }, - - getIdentityFromId(userContextId) { - this.ensureDataReady(); - return Cu.cloneInto(this._identities.find(info => info.userContextId == userContextId && - info.public), {}); - }, - - getUserContextLabel(userContextId) { - let identity = this.getIdentityFromId(userContextId); - if (!identity || !identity.public) { - return ""; - } - - // We cannot localize the user-created identity names. - if (identity.name) { - return identity.name; - } - - return gBrowserBundle.GetStringFromName(identity.l10nID); - }, - - setTabStyle(tab) { - if (!tab.hasAttribute("usercontextid")) { - return; - } - - let userContextId = tab.getAttribute("usercontextid"); - let identity = this.getIdentityFromId(userContextId); - tab.setAttribute("data-identity-color", identity ? identity.color : ""); - }, - - countContainerTabs() { - let count = 0; - this._forEachContainerTab(function() { ++count; }); - return count; - }, - - closeAllContainerTabs() { - this._forEachContainerTab(function(tab, tabbrowser) { - tabbrowser.removeTab(tab); - }); - }, - - _forEachContainerTab(callback) { - let windowList = Services.wm.getEnumerator("navigator:browser"); - while (windowList.hasMoreElements()) { - let win = windowList.getNext(); - - if (win.closed || !win.gBrowser) { - continue; - } - - let tabbrowser = win.gBrowser; - for (let i = tabbrowser.tabContainer.childNodes.length - 1; i >= 0; --i) { - let tab = tabbrowser.tabContainer.childNodes[i]; - if (tab.hasAttribute("usercontextid")) { - callback(tab, tabbrowser); - } - } - } - }, - - telemetry(userContextId) { - let identity = this.getIdentityFromId(userContextId); - - // Let's ignore unknown identities for now. - if (!identity || !identity.public) { - return; - } - - if (!this._openedIdentities.has(userContextId)) { - this._openedIdentities.add(userContextId); - Services.telemetry.getHistogramById("UNIQUE_CONTAINERS_OPENED").add(1); - } - - Services.telemetry.getHistogramById("TOTAL_CONTAINERS_OPENED").add(1); - - if (identity.telemetryId) { - Services.telemetry.getHistogramById("CONTAINER_USED") - .add(identity.telemetryId); - } - }, - - createNewInstanceForTesting(path) { - return new _ContextualIdentityService(path); - }, -}; - -let path = OS.Path.join(OS.Constants.Path.profileDir, "containers.json"); -this.ContextualIdentityService = new _ContextualIdentityService(path); diff --git a/toolkit/components/contextualidentity/moz.build b/toolkit/components/contextualidentity/moz.build deleted file mode 100644 index 524d5e779f..0000000000 --- a/toolkit/components/contextualidentity/moz.build +++ /dev/null @@ -1,7 +0,0 @@ -# -*- Mode: python; 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/. - -EXTRA_JS_MODULES += ['ContextualIdentityService.jsm'] diff --git a/toolkit/components/moz.build b/toolkit/components/moz.build index ff71d7c9dd..8c72e4b171 100644 --- a/toolkit/components/moz.build +++ b/toolkit/components/moz.build @@ -21,7 +21,6 @@ DIRS += [ 'commandlines', 'console', 'contentprefs', - 'contextualidentity', 'cookie', 'crashmonitor', 'downloads', diff --git a/toolkit/components/prompts/content/tabprompts.xml b/toolkit/components/prompts/content/tabprompts.xml index 07c6c8efbc..0ce13203c1 100644 --- a/toolkit/components/prompts/content/tabprompts.xml +++ b/toolkit/components/prompts/content/tabprompts.xml @@ -323,21 +323,19 @@ let bnum = this.args.defaultButtonNum || 0; let defaultButton = this.ui["button" + bnum]; - let { AppConstants } = - Components.utils.import("resource://gre/modules/AppConstants.jsm", {}); - if (AppConstants.platform == "macosx") { - // On OS X, the default button always stays marked as such (until - // the entire prompt blurs). - defaultButton.setAttribute("default", true); - } else { - // On other platforms, the default button is only marked as such - // when no other button has focus. XUL buttons on not-OSX will - // react to pressing enter as a command, so you can't trigger the - // default without tabbing to it or something that isn't a button. - let focusedDefault = (event.originalTarget == defaultButton); - let someButtonFocused = event.originalTarget instanceof Ci.nsIDOMXULButtonElement; - defaultButton.setAttribute("default", focusedDefault || !someButtonFocused); - } +#ifdef XP_MACOSX + // On OS X, the default button always stays marked as such (until + // the entire prompt blurs). + defaultButton.setAttribute("default", true); +#else + // On other platforms, the default button is only marked as such + // when no other button has focus. XUL buttons on not-OSX will + // react to pressing enter as a command, so you can't trigger the + // default without tabbing to it or something that isn't a button. + let focusedDefault = (event.originalTarget == defaultButton); + let someButtonFocused = event.originalTarget instanceof Ci.nsIDOMXULButtonElement; + defaultButton.setAttribute("default", focusedDefault || !someButtonFocused); +#endif </handler> <handler event="blur"> // If focus shifted to somewhere else in the browser, don't make diff --git a/toolkit/identity/Identity.jsm b/toolkit/identity/Identity.jsm deleted file mode 100644 index a27b7c93d7..0000000000 --- a/toolkit/identity/Identity.jsm +++ /dev/null @@ -1,309 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -this.EXPORTED_SYMBOLS = ["IdentityService"]; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/identity/LogUtils.jsm"); -Cu.import("resource://gre/modules/identity/IdentityStore.jsm"); -Cu.import("resource://gre/modules/identity/RelyingParty.jsm"); -Cu.import("resource://gre/modules/identity/IdentityProvider.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, - "jwcrypto", - "resource://gre/modules/identity/jwcrypto.jsm"); - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["core"].concat(aMessageArgs)); -} -function reportError(...aMessageArgs) { - Logger.reportError.apply(Logger, ["core"].concat(aMessageArgs)); -} - -function IDService() { - Services.obs.addObserver(this, "quit-application-granted", false); - Services.obs.addObserver(this, "identity-auth-complete", false); - - this._store = IdentityStore; - this.RP = RelyingParty; - this.IDP = IdentityProvider; -} - -IDService.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "quit-application-granted": - Services.obs.removeObserver(this, "quit-application-granted"); - this.shutdown(); - break; - case "identity-auth-complete": - if (!aSubject || !aSubject.wrappedJSObject) - break; - let subject = aSubject.wrappedJSObject; - log("Auth complete:", aSubject.wrappedJSObject); - // We have authenticated in order to provision an identity. - // So try again. - this.selectIdentity(subject.rpId, subject.identity); - break; - } - }, - - reset: function reset() { - // Explicitly call reset() on our RP and IDP classes. - // This is here to make testing easier. When the - // quit-application-granted signal is emitted, reset() will be - // called here, on RP, on IDP, and on the store. So you don't - // need to use this :) - this._store.reset(); - this.RP.reset(); - this.IDP.reset(); - }, - - shutdown: function shutdown() { - log("shutdown"); - Services.obs.removeObserver(this, "identity-auth-complete"); - // try to prevent abort/crash during shutdown of mochitest-browser2... - try { - Services.obs.removeObserver(this, "quit-application-granted"); - } catch (e) {} - }, - - /** - * Parse an email into username and domain if it is valid, else return null - */ - parseEmail: function parseEmail(email) { - var match = email.match(/^([^@]+)@([^@^/]+.[a-z]+)$/); - if (match) { - return { - username: match[1], - domain: match[2] - }; - } - return null; - }, - - /** - * The UX wants to add a new identity - * often followed by selectIdentity() - * - * @param aIdentity - * (string) the email chosen for login - */ - addIdentity: function addIdentity(aIdentity) { - if (this._store.fetchIdentity(aIdentity) === null) { - this._store.addIdentity(aIdentity, null, null); - } - }, - - /** - * The UX comes back and calls selectIdentity once the user has picked - * an identity. - * - * @param aRPId - * (integer) the id of the doc object obtained in .watch() and - * passed to the UX component. - * - * @param aIdentity - * (string) the email chosen for login - */ - selectIdentity: function selectIdentity(aRPId, aIdentity) { - log("selectIdentity: RP id:", aRPId, "identity:", aIdentity); - - // Get the RP that was stored when watch() was invoked. - let rp = this.RP._rpFlows[aRPId]; - if (!rp) { - reportError("selectIdentity", "Invalid RP id: ", aRPId); - return; - } - - // It's possible that we are in the process of provisioning an - // identity. - let provId = rp.provId; - - let rpLoginOptions = { - loggedInUser: aIdentity, - origin: rp.origin - }; - log("selectIdentity: provId:", provId, "origin:", rp.origin); - - // Once we have a cert, and once the user is authenticated with the - // IdP, we can generate an assertion and deliver it to the doc. - let self = this; - this.RP._generateAssertion(rp.origin, aIdentity, function hadReadyAssertion(err, assertion) { - if (!err && assertion) { - self.RP._doLogin(rp, rpLoginOptions, assertion); - return; - - } - // Need to provision an identity first. Begin by discovering - // the user's IdP. - self._discoverIdentityProvider(aIdentity, function gotIDP(err, idpParams) { - if (err) { - rp.doError(err); - return; - } - - // The idpParams tell us where to go to provision and authenticate - // the identity. - self.IDP._provisionIdentity(aIdentity, idpParams, provId, function gotID(err, aProvId) { - - // Provision identity may have created a new provision flow - // for us. To make it easier to relate provision flows with - // RP callers, we cross index the two here. - rp.provId = aProvId; - self.IDP._provisionFlows[aProvId].rpId = aRPId; - - // At this point, we already have a cert. If the user is also - // already authenticated with the IdP, then we can try again - // to generate an assertion and login. - if (err) { - // We are not authenticated. If we have already tried to - // authenticate and failed, then this is a "hard fail" and - // we give up. Otherwise we try to authenticate with the - // IdP. - - if (self.IDP._provisionFlows[aProvId].didAuthentication) { - self.IDP._cleanUpProvisionFlow(aProvId); - self.RP._cleanUpProvisionFlow(aRPId, aProvId); - log("ERROR: selectIdentity: authentication hard fail"); - rp.doError("Authentication fail."); - return; - } - // Try to authenticate with the IdP. Note that we do - // not clean up the provision flow here. We will continue - // to use it. - self.IDP._doAuthentication(aProvId, idpParams); - return; - } - - // Provisioning flows end when a certificate has been registered. - // Thus IdentityProvider's registerCertificate() cleans up the - // current provisioning flow. We only do this here on error. - self.RP._generateAssertion(rp.origin, aIdentity, function gotAssertion(err, assertion) { - if (err) { - rp.doError(err); - return; - } - self.RP._doLogin(rp, rpLoginOptions, assertion); - self.RP._cleanUpProvisionFlow(aRPId, aProvId); - return; - }); - }); - }); - }); - }, - - // methods for chrome and add-ons - - /** - * Discover the IdP for an identity - * - * @param aIdentity - * (string) the email we're logging in with - * - * @param aCallback - * (function) callback to invoke on completion - * with first-positional parameter the error. - */ - _discoverIdentityProvider: function _discoverIdentityProvider(aIdentity, aCallback) { - // XXX bug 767610 - validate email address call - // When that is available, we can remove this custom parser - var parsedEmail = this.parseEmail(aIdentity); - if (parsedEmail === null) { - aCallback("Could not parse email: " + aIdentity); - return; - } - log("_discoverIdentityProvider: identity:", aIdentity, "domain:", parsedEmail.domain); - - this._fetchWellKnownFile(parsedEmail.domain, function fetchedWellKnown(err, idpParams) { - // idpParams includes the pk, authorization url, and - // provisioning url. - - // XXX bug 769861 follow any authority delegations - // if no well-known at any point in the delegation - // fall back to browserid.org as IdP - return aCallback(err, idpParams); - }); - }, - - /** - * Fetch the well-known file from the domain. - * - * @param aDomain - * - * @param aScheme - * (string) (optional) Protocol to use. Default is https. - * This is necessary because we are unable to test - * https. - * - * @param aCallback - * - */ - _fetchWellKnownFile: function _fetchWellKnownFile(aDomain, aCallback, aScheme='https') { - // XXX bug 769854 make tests https and remove aScheme option - let url = aScheme + '://' + aDomain + "/.well-known/browserid"; - log("_fetchWellKnownFile:", url); - - // this appears to be a more successful way to get at xmlhttprequest (which supposedly will close with a window - let req = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] - .createInstance(Ci.nsIXMLHttpRequest); - - // XXX bug 769865 gracefully handle being off-line - // XXX bug 769866 decide on how to handle redirects - req.open("GET", url, true); - req.responseType = "json"; - req.mozBackgroundRequest = true; - req.onload = function _fetchWellKnownFile_onload() { - if (req.status < 200 || req.status >= 400) { - log("_fetchWellKnownFile", url, ": server returned status:", req.status); - return aCallback("Error"); - } - try { - let idpParams = req.response; - - // Verify that the IdP returned a valid configuration - if (! (idpParams.provisioning && - idpParams.authentication && - idpParams['public-key'])) { - let errStr= "Invalid well-known file from: " + aDomain; - log("_fetchWellKnownFile:", errStr); - return aCallback(errStr); - } - - let callbackObj = { - domain: aDomain, - idpParams: idpParams, - }; - log("_fetchWellKnownFile result: ", callbackObj); - // Yay. Valid IdP configuration for the domain. - return aCallback(null, callbackObj); - - } catch (err) { - reportError("_fetchWellKnownFile", "Bad configuration from", aDomain, err); - return aCallback(err.toString()); - } - }; - req.onerror = function _fetchWellKnownFile_onerror() { - log("_fetchWellKnownFile", "ERROR:", req.status, req.statusText); - log("ERROR: _fetchWellKnownFile:", err); - return aCallback("Error"); - }; - req.send(null); - }, - -}; - -this.IdentityService = new IDService(); diff --git a/toolkit/identity/IdentityCryptoService.cpp b/toolkit/identity/IdentityCryptoService.cpp deleted file mode 100644 index cafe079996..0000000000 --- a/toolkit/identity/IdentityCryptoService.cpp +++ /dev/null @@ -1,571 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "nsIIdentityCryptoService.h" -#include "mozilla/ModuleUtils.h" -#include "nsServiceManagerUtils.h" -#include "nsNSSShutDown.h" -#include "nsIThread.h" -#include "nsThreadUtils.h" -#include "nsCOMPtr.h" -#include "nsProxyRelease.h" -#include "nsString.h" -#include "mozilla/ArrayUtils.h" // ArrayLength -#include "mozilla/Base64.h" -#include "ScopedNSSTypes.h" -#include "NSSErrorsService.h" - -#include "nss.h" -#include "pk11pub.h" -#include "secmod.h" -#include "secerr.h" -#include "keyhi.h" -#include "cryptohi.h" - -#include <limits.h> - -using namespace mozilla; - -namespace { - -void -HexEncode(const SECItem * it, nsACString & result) -{ - const char * digits = "0123456789ABCDEF"; - result.SetCapacity((it->len * 2) + 1); - result.SetLength(it->len * 2); - char * p = result.BeginWriting(); - for (unsigned int i = 0; i < it->len; ++i) { - *p++ = digits[it->data[i] >> 4]; - *p++ = digits[it->data[i] & 0x0f]; - } -} - -#define DSA_KEY_TYPE_STRING (NS_LITERAL_CSTRING("DS160")) -#define RSA_KEY_TYPE_STRING (NS_LITERAL_CSTRING("RS256")) - -class KeyPair : public nsIIdentityKeyPair, public nsNSSShutDownObject -{ -public: - NS_DECL_THREADSAFE_ISUPPORTS - NS_DECL_NSIIDENTITYKEYPAIR - - KeyPair(SECKEYPrivateKey* aPrivateKey, SECKEYPublicKey* aPublicKey, - nsIEventTarget* aOperationThread); - -private: - ~KeyPair() - { - nsNSSShutDownPreventionLock locker; - if (isAlreadyShutDown()) { - return; - } - destructorSafeDestroyNSSReference(); - shutdown(ShutdownCalledFrom::Object); - } - - void virtualDestroyNSSReference() override - { - destructorSafeDestroyNSSReference(); - } - - void destructorSafeDestroyNSSReference() - { - SECKEY_DestroyPrivateKey(mPrivateKey); - mPrivateKey = nullptr; - SECKEY_DestroyPublicKey(mPublicKey); - mPublicKey = nullptr; - } - - SECKEYPrivateKey * mPrivateKey; - SECKEYPublicKey * mPublicKey; - nsCOMPtr<nsIEventTarget> mThread; - - KeyPair(const KeyPair &) = delete; - void operator=(const KeyPair &) = delete; -}; - -NS_IMPL_ISUPPORTS(KeyPair, nsIIdentityKeyPair) - -class KeyGenRunnable : public Runnable, public nsNSSShutDownObject -{ -public: - NS_DECL_NSIRUNNABLE - - KeyGenRunnable(KeyType keyType, nsIIdentityKeyGenCallback * aCallback, - nsIEventTarget* aOperationThread); - -private: - ~KeyGenRunnable() - { - nsNSSShutDownPreventionLock locker; - if (isAlreadyShutDown()) { - return; - } - destructorSafeDestroyNSSReference(); - shutdown(ShutdownCalledFrom::Object); - } - - virtual void virtualDestroyNSSReference() override - { - destructorSafeDestroyNSSReference(); - } - - void destructorSafeDestroyNSSReference() - { - } - - const KeyType mKeyType; // in - nsMainThreadPtrHandle<nsIIdentityKeyGenCallback> mCallback; // in - nsresult mRv; // out - nsCOMPtr<nsIIdentityKeyPair> mKeyPair; // out - nsCOMPtr<nsIEventTarget> mThread; - - KeyGenRunnable(const KeyGenRunnable &) = delete; - void operator=(const KeyGenRunnable &) = delete; -}; - -class SignRunnable : public Runnable, public nsNSSShutDownObject -{ -public: - NS_DECL_NSIRUNNABLE - - SignRunnable(const nsACString & textToSign, SECKEYPrivateKey * privateKey, - nsIIdentitySignCallback * aCallback); - -private: - ~SignRunnable() - { - nsNSSShutDownPreventionLock locker; - if (isAlreadyShutDown()) { - return; - } - destructorSafeDestroyNSSReference(); - shutdown(ShutdownCalledFrom::Object); - } - - void virtualDestroyNSSReference() override - { - destructorSafeDestroyNSSReference(); - } - - void destructorSafeDestroyNSSReference() - { - SECKEY_DestroyPrivateKey(mPrivateKey); - mPrivateKey = nullptr; - } - - const nsCString mTextToSign; // in - SECKEYPrivateKey* mPrivateKey; // in - nsMainThreadPtrHandle<nsIIdentitySignCallback> mCallback; // in - nsresult mRv; // out - nsCString mSignature; // out - -private: - SignRunnable(const SignRunnable &) = delete; - void operator=(const SignRunnable &) = delete; -}; - -class IdentityCryptoService final : public nsIIdentityCryptoService -{ -public: - NS_DECL_THREADSAFE_ISUPPORTS - NS_DECL_NSIIDENTITYCRYPTOSERVICE - - IdentityCryptoService() { } - nsresult Init() - { - nsresult rv; - nsCOMPtr<nsISupports> dummyUsedToEnsureNSSIsInitialized - = do_GetService("@mozilla.org/psm;1", &rv); - NS_ENSURE_SUCCESS(rv, rv); - - nsCOMPtr<nsIThread> thread; - rv = NS_NewNamedThread("IdentityCrypto", getter_AddRefs(thread)); - NS_ENSURE_SUCCESS(rv, rv); - - mThread = thread.forget(); - - return NS_OK; - } - -private: - ~IdentityCryptoService() { } - IdentityCryptoService(const KeyPair &) = delete; - void operator=(const IdentityCryptoService &) = delete; - - nsCOMPtr<nsIEventTarget> mThread; -}; - -NS_IMPL_ISUPPORTS(IdentityCryptoService, nsIIdentityCryptoService) - -NS_IMETHODIMP -IdentityCryptoService::GenerateKeyPair( - const nsACString & keyTypeString, nsIIdentityKeyGenCallback * callback) -{ - KeyType keyType; - if (keyTypeString.Equals(RSA_KEY_TYPE_STRING)) { - keyType = rsaKey; - } else if (keyTypeString.Equals(DSA_KEY_TYPE_STRING)) { - keyType = dsaKey; - } else { - return NS_ERROR_UNEXPECTED; - } - - nsCOMPtr<nsIRunnable> r = new KeyGenRunnable(keyType, callback, mThread); - nsresult rv = mThread->Dispatch(r.forget(), NS_DISPATCH_NORMAL); - NS_ENSURE_SUCCESS(rv, rv); - - return NS_OK; -} - -NS_IMETHODIMP -IdentityCryptoService::Base64UrlEncode(const nsACString & utf8Input, - nsACString & result) -{ - return Base64URLEncode(utf8Input.Length(), - reinterpret_cast<const uint8_t*>(utf8Input.BeginReading()), - Base64URLEncodePaddingPolicy::Include, result); -} - -KeyPair::KeyPair(SECKEYPrivateKey * privateKey, SECKEYPublicKey * publicKey, - nsIEventTarget* operationThread) - : mPrivateKey(privateKey) - , mPublicKey(publicKey) - , mThread(operationThread) -{ - MOZ_ASSERT(!NS_IsMainThread()); -} - -NS_IMETHODIMP -KeyPair::GetHexRSAPublicKeyExponent(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == rsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.rsa.publicExponent, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetHexRSAPublicKeyModulus(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == rsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.rsa.modulus, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetHexDSAPrime(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == dsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.dsa.params.prime, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetHexDSASubPrime(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == dsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.dsa.params.subPrime, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetHexDSAGenerator(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == dsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.dsa.params.base, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetHexDSAPublicValue(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - NS_ENSURE_TRUE(mPublicKey->keyType == dsaKey, NS_ERROR_NOT_AVAILABLE); - HexEncode(&mPublicKey->u.dsa.publicValue, result); - return NS_OK; -} - -NS_IMETHODIMP -KeyPair::GetKeyType(nsACString & result) -{ - MOZ_ASSERT(NS_IsMainThread()); - NS_ENSURE_TRUE(mPublicKey, NS_ERROR_NOT_AVAILABLE); - - switch (mPublicKey->keyType) { - case rsaKey: result = RSA_KEY_TYPE_STRING; return NS_OK; - case dsaKey: result = DSA_KEY_TYPE_STRING; return NS_OK; - default: return NS_ERROR_UNEXPECTED; - } -} - -NS_IMETHODIMP -KeyPair::Sign(const nsACString & textToSign, - nsIIdentitySignCallback* callback) -{ - MOZ_ASSERT(NS_IsMainThread()); - nsCOMPtr<nsIRunnable> r = new SignRunnable(textToSign, mPrivateKey, - callback); - - return mThread->Dispatch(r, NS_DISPATCH_NORMAL); -} - -KeyGenRunnable::KeyGenRunnable(KeyType keyType, - nsIIdentityKeyGenCallback * callback, - nsIEventTarget* operationThread) - : mKeyType(keyType) - , mCallback(new nsMainThreadPtrHolder<nsIIdentityKeyGenCallback>(callback)) - , mRv(NS_ERROR_NOT_INITIALIZED) - , mThread(operationThread) -{ -} - -MOZ_MUST_USE nsresult -GenerateKeyPair(PK11SlotInfo * slot, - SECKEYPrivateKey ** privateKey, - SECKEYPublicKey ** publicKey, - CK_MECHANISM_TYPE mechanism, - void * params) -{ - *publicKey = nullptr; - *privateKey = PK11_GenerateKeyPair(slot, mechanism, params, publicKey, - PR_FALSE /*isPerm*/, - PR_TRUE /*isSensitive*/, - nullptr /*&pwdata*/); - if (!*privateKey) { - MOZ_ASSERT(!*publicKey); - return mozilla::psm::GetXPCOMFromNSSError(PR_GetError()); - } - if (!*publicKey) { - SECKEY_DestroyPrivateKey(*privateKey); - *privateKey = nullptr; - MOZ_CRASH("PK11_GnerateKeyPair returned private key without public key"); - } - - return NS_OK; -} - - -MOZ_MUST_USE nsresult -GenerateRSAKeyPair(PK11SlotInfo * slot, - SECKEYPrivateKey ** privateKey, - SECKEYPublicKey ** publicKey) -{ - MOZ_ASSERT(!NS_IsMainThread()); - - PK11RSAGenParams rsaParams; - rsaParams.keySizeInBits = 2048; - rsaParams.pe = 0x10001; - return GenerateKeyPair(slot, privateKey, publicKey, CKM_RSA_PKCS_KEY_PAIR_GEN, - &rsaParams); -} - -MOZ_MUST_USE nsresult -GenerateDSAKeyPair(PK11SlotInfo * slot, - SECKEYPrivateKey ** privateKey, - SECKEYPublicKey ** publicKey) -{ - MOZ_ASSERT(!NS_IsMainThread()); - - // XXX: These could probably be static const arrays, but this way we avoid - // compiler warnings and also we avoid having to worry much about whether the - // functions that take these inputs will (unexpectedly) modify them. - - // Using NIST parameters. Some other BrowserID components require that these - // exact parameters are used. - uint8_t P[] = { - 0xFF,0x60,0x04,0x83,0xDB,0x6A,0xBF,0xC5,0xB4,0x5E,0xAB,0x78, - 0x59,0x4B,0x35,0x33,0xD5,0x50,0xD9,0xF1,0xBF,0x2A,0x99,0x2A, - 0x7A,0x8D,0xAA,0x6D,0xC3,0x4F,0x80,0x45,0xAD,0x4E,0x6E,0x0C, - 0x42,0x9D,0x33,0x4E,0xEE,0xAA,0xEF,0xD7,0xE2,0x3D,0x48,0x10, - 0xBE,0x00,0xE4,0xCC,0x14,0x92,0xCB,0xA3,0x25,0xBA,0x81,0xFF, - 0x2D,0x5A,0x5B,0x30,0x5A,0x8D,0x17,0xEB,0x3B,0xF4,0xA0,0x6A, - 0x34,0x9D,0x39,0x2E,0x00,0xD3,0x29,0x74,0x4A,0x51,0x79,0x38, - 0x03,0x44,0xE8,0x2A,0x18,0xC4,0x79,0x33,0x43,0x8F,0x89,0x1E, - 0x22,0xAE,0xEF,0x81,0x2D,0x69,0xC8,0xF7,0x5E,0x32,0x6C,0xB7, - 0x0E,0xA0,0x00,0xC3,0xF7,0x76,0xDF,0xDB,0xD6,0x04,0x63,0x8C, - 0x2E,0xF7,0x17,0xFC,0x26,0xD0,0x2E,0x17 - }; - - uint8_t Q[] = { - 0xE2,0x1E,0x04,0xF9,0x11,0xD1,0xED,0x79,0x91,0x00,0x8E,0xCA, - 0xAB,0x3B,0xF7,0x75,0x98,0x43,0x09,0xC3 - }; - - uint8_t G[] = { - 0xC5,0x2A,0x4A,0x0F,0xF3,0xB7,0xE6,0x1F,0xDF,0x18,0x67,0xCE, - 0x84,0x13,0x83,0x69,0xA6,0x15,0x4F,0x4A,0xFA,0x92,0x96,0x6E, - 0x3C,0x82,0x7E,0x25,0xCF,0xA6,0xCF,0x50,0x8B,0x90,0xE5,0xDE, - 0x41,0x9E,0x13,0x37,0xE0,0x7A,0x2E,0x9E,0x2A,0x3C,0xD5,0xDE, - 0xA7,0x04,0xD1,0x75,0xF8,0xEB,0xF6,0xAF,0x39,0x7D,0x69,0xE1, - 0x10,0xB9,0x6A,0xFB,0x17,0xC7,0xA0,0x32,0x59,0x32,0x9E,0x48, - 0x29,0xB0,0xD0,0x3B,0xBC,0x78,0x96,0xB1,0x5B,0x4A,0xDE,0x53, - 0xE1,0x30,0x85,0x8C,0xC3,0x4D,0x96,0x26,0x9A,0xA8,0x90,0x41, - 0xF4,0x09,0x13,0x6C,0x72,0x42,0xA3,0x88,0x95,0xC9,0xD5,0xBC, - 0xCA,0xD4,0xF3,0x89,0xAF,0x1D,0x7A,0x4B,0xD1,0x39,0x8B,0xD0, - 0x72,0xDF,0xFA,0x89,0x62,0x33,0x39,0x7A - }; - - static_assert(MOZ_ARRAY_LENGTH(P) == 1024 / CHAR_BIT, "bad DSA P"); - static_assert(MOZ_ARRAY_LENGTH(Q) == 160 / CHAR_BIT, "bad DSA Q"); - static_assert(MOZ_ARRAY_LENGTH(G) == 1024 / CHAR_BIT, "bad DSA G"); - - PQGParams pqgParams = { - nullptr /*arena*/, - { siBuffer, P, static_cast<unsigned int>(mozilla::ArrayLength(P)) }, - { siBuffer, Q, static_cast<unsigned int>(mozilla::ArrayLength(Q)) }, - { siBuffer, G, static_cast<unsigned int>(mozilla::ArrayLength(G)) } - }; - - return GenerateKeyPair(slot, privateKey, publicKey, CKM_DSA_KEY_PAIR_GEN, - &pqgParams); -} - -NS_IMETHODIMP -KeyGenRunnable::Run() -{ - if (!NS_IsMainThread()) { - nsNSSShutDownPreventionLock locker; - if (isAlreadyShutDown()) { - mRv = NS_ERROR_NOT_AVAILABLE; - } else { - // We always want to use the internal slot for BrowserID; in particular, - // we want to avoid smartcard slots. - PK11SlotInfo *slot = PK11_GetInternalSlot(); - if (!slot) { - mRv = NS_ERROR_UNEXPECTED; - } else { - SECKEYPrivateKey *privk = nullptr; - SECKEYPublicKey *pubk = nullptr; - - switch (mKeyType) { - case rsaKey: - mRv = GenerateRSAKeyPair(slot, &privk, &pubk); - break; - case dsaKey: - mRv = GenerateDSAKeyPair(slot, &privk, &pubk); - break; - default: - MOZ_CRASH("unknown key type"); - } - - PK11_FreeSlot(slot); - - if (NS_SUCCEEDED(mRv)) { - MOZ_ASSERT(privk); - MOZ_ASSERT(pubk); - // mKeyPair will take over ownership of privk and pubk - mKeyPair = new KeyPair(privk, pubk, mThread); - } - } - } - - NS_DispatchToMainThread(this); - } else { - // Back on Main Thread - (void) mCallback->GenerateKeyPairFinished(mRv, mKeyPair); - } - return NS_OK; -} - -SignRunnable::SignRunnable(const nsACString & aText, - SECKEYPrivateKey * privateKey, - nsIIdentitySignCallback * aCallback) - : mTextToSign(aText) - , mPrivateKey(SECKEY_CopyPrivateKey(privateKey)) - , mCallback(new nsMainThreadPtrHolder<nsIIdentitySignCallback>(aCallback)) - , mRv(NS_ERROR_NOT_INITIALIZED) -{ -} - -NS_IMETHODIMP -SignRunnable::Run() -{ - if (!NS_IsMainThread()) { - nsNSSShutDownPreventionLock locker; - if (isAlreadyShutDown()) { - mRv = NS_ERROR_NOT_AVAILABLE; - } else { - // We need the output in PKCS#11 format, not DER encoding, so we must use - // PK11_HashBuf and PK11_Sign instead of SEC_SignData. - - SECItem sig = { siBuffer, nullptr, 0 }; - int sigLength = PK11_SignatureLen(mPrivateKey); - if (sigLength <= 0) { - mRv = mozilla::psm::GetXPCOMFromNSSError(PR_GetError()); - } else if (!SECITEM_AllocItem(nullptr, &sig, sigLength)) { - mRv = mozilla::psm::GetXPCOMFromNSSError(PR_GetError()); - } else { - uint8_t hash[32]; // big enough for SHA-1 or SHA-256 - SECOidTag hashAlg = mPrivateKey->keyType == dsaKey ? SEC_OID_SHA1 - : SEC_OID_SHA256; - SECItem hashItem = { siBuffer, hash, - hashAlg == SEC_OID_SHA1 ? 20u : 32u }; - - mRv = MapSECStatus(PK11_HashBuf(hashAlg, hash, - const_cast<uint8_t*>(reinterpret_cast<const uint8_t *>( - mTextToSign.get())), - mTextToSign.Length())); - if (NS_SUCCEEDED(mRv)) { - mRv = MapSECStatus(PK11_Sign(mPrivateKey, &sig, &hashItem)); - } - if (NS_SUCCEEDED(mRv)) { - mRv = Base64URLEncode(sig.len, sig.data, - Base64URLEncodePaddingPolicy::Include, - mSignature); - } - SECITEM_FreeItem(&sig, false); - } - } - - NS_DispatchToMainThread(this); - } else { - // Back on Main Thread - (void) mCallback->SignFinished(mRv, mSignature); - } - - return NS_OK; -} - -// XPCOM module registration - -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(IdentityCryptoService, Init) - -#define NS_IDENTITYCRYPTOSERVICE_CID \ - {0xbea13a3a, 0x44e8, 0x4d7f, {0xa0, 0xa2, 0x2c, 0x67, 0xf8, 0x4e, 0x3a, 0x97}} - -NS_DEFINE_NAMED_CID(NS_IDENTITYCRYPTOSERVICE_CID); - -const mozilla::Module::CIDEntry kCIDs[] = { - { &kNS_IDENTITYCRYPTOSERVICE_CID, false, nullptr, IdentityCryptoServiceConstructor }, - { nullptr } -}; - -const mozilla::Module::ContractIDEntry kContracts[] = { - { "@mozilla.org/identity/crypto-service;1", &kNS_IDENTITYCRYPTOSERVICE_CID }, - { nullptr } -}; - -const mozilla::Module kModule = { - mozilla::Module::kVersion, - kCIDs, - kContracts -}; - -} // unnamed namespace - -NSMODULE_DEFN(identity) = &kModule; diff --git a/toolkit/identity/IdentityProvider.jsm b/toolkit/identity/IdentityProvider.jsm deleted file mode 100644 index 11529bfbaa..0000000000 --- a/toolkit/identity/IdentityProvider.jsm +++ /dev/null @@ -1,496 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/identity/LogUtils.jsm"); -Cu.import("resource://gre/modules/identity/Sandbox.jsm"); - -this.EXPORTED_SYMBOLS = ["IdentityProvider"]; -const FALLBACK_PROVIDER = "browserid.org"; - -XPCOMUtils.defineLazyModuleGetter(this, - "jwcrypto", - "resource://gre/modules/identity/jwcrypto.jsm"); - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["IDP"].concat(aMessageArgs)); -} -function reportError(...aMessageArgs) { - Logger.reportError.apply(Logger, ["IDP"].concat(aMessageArgs)); -} - - -function IdentityProviderService() { - XPCOMUtils.defineLazyModuleGetter(this, - "_store", - "resource://gre/modules/identity/IdentityStore.jsm", - "IdentityStore"); - - this.reset(); -} - -IdentityProviderService.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - _sandboxConfigured: false, - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "quit-application-granted": - Services.obs.removeObserver(this, "quit-application-granted"); - this.shutdown(); - break; - } - }, - - reset: function IDP_reset() { - // Clear the provisioning flows. Provision flows contain an - // identity, idpParams (how to reach the IdP to provision and - // authenticate), a callback (a completion callback for when things - // are done), and a provisioningFrame (which is the provisioning - // sandbox). Additionally, two callbacks will be attached: - // beginProvisioningCallback and genKeyPairCallback. - this._provisionFlows = {}; - - // Clear the authentication flows. Authentication flows attach - // to provision flows. In the process of provisioning an id, it - // may be necessary to authenticate with an IdP. The authentication - // flow maintains the state of that authentication process. - this._authenticationFlows = {}; - }, - - getProvisionFlow: function getProvisionFlow(aProvId, aErrBack) { - let provFlow = this._provisionFlows[aProvId]; - if (provFlow) { - return provFlow; - } - - let err = "No provisioning flow found with id " + aProvId; - log("ERROR:", err); - if (typeof aErrBack === 'function') { - aErrBack(err); - } - - return undefined; - }, - - shutdown: function RP_shutdown() { - this.reset(); - - if (this._sandboxConfigured) { - // Tear down message manager listening on the hidden window - Cu.import("resource://gre/modules/DOMIdentity.jsm"); - DOMIdentity._configureMessages(Services.appShell.hiddenDOMWindow, false); - this._sandboxConfigured = false; - } - - Services.obs.removeObserver(this, "quit-application-granted"); - }, - - get securityLevel() { - return 1; - }, - - get certDuration() { - switch (this.securityLevel) { - default: - return 3600; - } - }, - - /** - * Provision an Identity - * - * @param aIdentity - * (string) the email we're logging in with - * - * @param aIDPParams - * (object) parameters of the IdP - * - * @param aCallback - * (function) callback to invoke on completion - * with first-positional parameter the error. - */ - _provisionIdentity: function _provisionIdentity(aIdentity, aIDPParams, aProvId, aCallback) { - let provPath = aIDPParams.idpParams.provisioning; - let url = Services.io.newURI("https://" + aIDPParams.domain, null, null).resolve(provPath); - log("_provisionIdentity: identity:", aIdentity, "url:", url); - - // If aProvId is not null, then we already have a flow - // with a sandbox. Otherwise, get a sandbox and create a - // new provision flow. - - if (aProvId) { - // Re-use an existing sandbox - log("_provisionIdentity: re-using sandbox in provisioning flow with id:", aProvId); - this._provisionFlows[aProvId].provisioningSandbox.reload(); - - } else { - this._createProvisioningSandbox(url, function createdSandbox(aSandbox) { - // create a provisioning flow, using the sandbox id, and - // stash callback associated with this provisioning workflow. - - let provId = aSandbox.id; - this._provisionFlows[provId] = { - identity: aIdentity, - idpParams: aIDPParams, - securityLevel: this.securityLevel, - provisioningSandbox: aSandbox, - callback: function doCallback(aErr) { - aCallback(aErr, provId); - }, - }; - - log("_provisionIdentity: Created sandbox and provisioning flow with id:", provId); - // XXX bug 769862 - provisioning flow should timeout after N seconds - - }.bind(this)); - } - }, - - // DOM Methods - /** - * the provisioning iframe sandbox has called navigator.id.beginProvisioning() - * - * @param aCaller - * (object) the iframe sandbox caller with all callbacks and - * other information. Callbacks include: - * - doBeginProvisioningCallback(id, duration_s) - * - doGenKeyPairCallback(pk) - */ - beginProvisioning: function beginProvisioning(aCaller) { - log("beginProvisioning:", aCaller.id); - - // Expect a flow for this caller already to be underway. - let provFlow = this.getProvisionFlow(aCaller.id, aCaller.doError); - - // keep the caller object around - provFlow.caller = aCaller; - - let identity = provFlow.identity; - let frame = provFlow.provisioningFrame; - - // Determine recommended length of cert. - let duration = this.certDuration; - - // Make a record that we have begun provisioning. This is required - // for genKeyPair. - provFlow.didBeginProvisioning = true; - - // Let the sandbox know to invoke the callback to beginProvisioning with - // the identity and cert length. - return aCaller.doBeginProvisioningCallback(identity, duration); - }, - - /** - * the provisioning iframe sandbox has called - * navigator.id.raiseProvisioningFailure() - * - * @param aProvId - * (int) the identifier of the provisioning flow tied to that sandbox - * @param aReason - */ - raiseProvisioningFailure: function raiseProvisioningFailure(aProvId, aReason) { - reportError("Provisioning failure", aReason); - - // look up the provisioning caller and its callback - let provFlow = this.getProvisionFlow(aProvId); - - // Sandbox is deleted in _cleanUpProvisionFlow in case we re-use it. - - // This may be either a "soft" or "hard" fail. If it's a - // soft fail, we'll flow through setAuthenticationFlow, where - // the provision flow data will be copied into a new auth - // flow. If it's a hard fail, then the callback will be - // responsible for cleaning up the now defunct provision flow. - - // invoke the callback with an error. - provFlow.callback(aReason); - }, - - /** - * When navigator.id.genKeyPair is called from provisioning iframe sandbox. - * Generates a keypair for the current user being provisioned. - * - * @param aProvId - * (int) the identifier of the provisioning caller tied to that sandbox - * - * It is an error to call genKeypair without receiving the callback for - * the beginProvisioning() call first. - */ - genKeyPair: function genKeyPair(aProvId) { - // Look up the provisioning caller and make sure it's valid. - let provFlow = this.getProvisionFlow(aProvId); - - if (!provFlow.didBeginProvisioning) { - let errStr = "ERROR: genKeyPair called before beginProvisioning"; - log(errStr); - provFlow.callback(errStr); - return; - } - - // Ok generate a keypair - jwcrypto.generateKeyPair(jwcrypto.ALGORITHMS.DS160, function gkpCb(err, kp) { - log("in gkp callback"); - if (err) { - log("ERROR: genKeyPair:", err); - provFlow.callback(err); - return; - } - - provFlow.kp = kp; - - // Serialize the publicKey of the keypair and send it back to the - // sandbox. - log("genKeyPair: generated keypair for provisioning flow with id:", aProvId); - provFlow.caller.doGenKeyPairCallback(provFlow.kp.serializedPublicKey); - }.bind(this)); - }, - - /** - * When navigator.id.registerCertificate is called from provisioning iframe - * sandbox. - * - * Sets the certificate for the user for which a certificate was requested - * via a preceding call to beginProvisioning (and genKeypair). - * - * @param aProvId - * (integer) the identifier of the provisioning caller tied to that - * sandbox - * - * @param aCert - * (String) A JWT representing the signed certificate for the user - * being provisioned, provided by the IdP. - */ - registerCertificate: function registerCertificate(aProvId, aCert) { - log("registerCertificate:", aProvId, aCert); - - // look up provisioning caller, make sure it's valid. - let provFlow = this.getProvisionFlow(aProvId); - - if (!provFlow.caller) { - reportError("registerCertificate", "No provision flow or caller"); - return; - } - if (!provFlow.kp) { - let errStr = "Cannot register a certificate without a keypair"; - reportError("registerCertificate", errStr); - provFlow.callback(errStr); - return; - } - - // store the keypair and certificate just provided in IDStore. - this._store.addIdentity(provFlow.identity, provFlow.kp, aCert); - - // Great success! - provFlow.callback(null); - - // Clean up the flow. - this._cleanUpProvisionFlow(aProvId); - }, - - /** - * Begin the authentication process with an IdP - * - * @param aProvId - * (int) the identifier of the provisioning flow which failed - * - * @param aCallback - * (function) to invoke upon completion, with - * first-positional-param error. - */ - _doAuthentication: function _doAuthentication(aProvId, aIDPParams) { - log("_doAuthentication: provId:", aProvId, "idpParams:", aIDPParams); - // create an authentication caller and its identifier AuthId - // stash aIdentity, idpparams, and callback in it. - - // extract authentication URL from idpParams - let authPath = aIDPParams.idpParams.authentication; - let authURI = Services.io.newURI("https://" + aIDPParams.domain, null, null).resolve(authPath); - - // beginAuthenticationFlow causes the "identity-auth" topic to be - // observed. Since it's sending a notification to the DOM, there's - // no callback. We wait for the DOM to trigger the next phase of - // provisioning. - this._beginAuthenticationFlow(aProvId, authURI); - - // either we bind the AuthID to the sandbox ourselves, or UX does that, - // in which case we need to tell UX the AuthId. - // Currently, the UX creates the UI and gets the AuthId from the window - // and sets is with setAuthenticationFlow - }, - - /** - * The authentication frame has called navigator.id.beginAuthentication - * - * IMPORTANT: the aCaller is *always* non-null, even if this is called from - * a regular content page. We have to make sure, on every DOM call, that - * aCaller is an expected authentication-flow identifier. If not, we throw - * an error or something. - * - * @param aCaller - * (object) the authentication caller - * - */ - beginAuthentication: function beginAuthentication(aCaller) { - log("beginAuthentication: caller id:", aCaller.id); - - // Begin the authentication flow after having concluded a provisioning - // flow. The aCaller that the DOM gives us will have the same ID as - // the provisioning flow we just concluded. (see setAuthenticationFlow) - let authFlow = this._authenticationFlows[aCaller.id]; - if (!authFlow) { - return aCaller.doError("beginAuthentication: no flow for caller id", aCaller.id); - } - - authFlow.caller = aCaller; - - let identity = this._provisionFlows[authFlow.provId].identity; - - // tell the UI to start the authentication process - log("beginAuthentication: authFlow:", aCaller.id, "identity:", identity); - return authFlow.caller.doBeginAuthenticationCallback(identity); - }, - - /** - * The auth frame has called navigator.id.completeAuthentication - * - * @param aAuthId - * (int) the identifier of the authentication caller tied to that sandbox - * - */ - completeAuthentication: function completeAuthentication(aAuthId) { - log("completeAuthentication:", aAuthId); - - // look up the AuthId caller, and get its callback. - let authFlow = this._authenticationFlows[aAuthId]; - if (!authFlow) { - reportError("completeAuthentication", "No auth flow with id", aAuthId); - return; - } - let provId = authFlow.provId; - - // delete caller - delete authFlow['caller']; - delete this._authenticationFlows[aAuthId]; - - let provFlow = this.getProvisionFlow(provId); - provFlow.didAuthentication = true; - let subject = { - rpId: provFlow.rpId, - identity: provFlow.identity, - }; - Services.obs.notifyObservers({ wrappedJSObject: subject }, "identity-auth-complete", aAuthId); - }, - - /** - * The auth frame has called navigator.id.cancelAuthentication - * - * @param aAuthId - * (int) the identifier of the authentication caller - * - */ - cancelAuthentication: function cancelAuthentication(aAuthId) { - log("cancelAuthentication:", aAuthId); - - // look up the AuthId caller, and get its callback. - let authFlow = this._authenticationFlows[aAuthId]; - if (!authFlow) { - reportError("cancelAuthentication", "No auth flow with id:", aAuthId); - return; - } - let provId = authFlow.provId; - - // delete caller - delete authFlow['caller']; - delete this._authenticationFlows[aAuthId]; - - let provFlow = this.getProvisionFlow(provId); - provFlow.didAuthentication = true; - Services.obs.notifyObservers(null, "identity-auth-complete", aAuthId); - - // invoke callback with ERROR. - let errStr = "Authentication canceled by IDP"; - log("ERROR: cancelAuthentication:", errStr); - provFlow.callback(errStr); - }, - - /** - * Called by the UI to set the ID and caller for the authentication flow after it gets its ID - */ - setAuthenticationFlow: function(aAuthId, aProvId) { - // this is the transition point between the two flows, - // provision and authenticate. We tell the auth flow which - // provisioning flow it is started from. - log("setAuthenticationFlow: authId:", aAuthId, "provId:", aProvId); - this._authenticationFlows[aAuthId] = { provId: aProvId }; - this._provisionFlows[aProvId].authId = aAuthId; - }, - - /** - * Load the provisioning URL in a hidden frame to start the provisioning - * process. - */ - _createProvisioningSandbox: function _createProvisioningSandbox(aURL, aCallback) { - log("_createProvisioningSandbox:", aURL); - - if (!this._sandboxConfigured) { - // Configure message manager listening on the hidden window - Cu.import("resource://gre/modules/DOMIdentity.jsm"); - DOMIdentity._configureMessages(Services.appShell.hiddenDOMWindow, true); - this._sandboxConfigured = true; - } - - new Sandbox(aURL, aCallback); - }, - - /** - * Load the authentication UI to start the authentication process. - */ - _beginAuthenticationFlow: function _beginAuthenticationFlow(aProvId, aURL) { - log("_beginAuthenticationFlow:", aProvId, aURL); - let propBag = {provId: aProvId}; - - Services.obs.notifyObservers({wrappedJSObject:propBag}, "identity-auth", aURL); - }, - - /** - * Clean up a provision flow and the authentication flow and sandbox - * that may be attached to it. - */ - _cleanUpProvisionFlow: function _cleanUpProvisionFlow(aProvId) { - log('_cleanUpProvisionFlow:', aProvId); - let prov = this._provisionFlows[aProvId]; - - // Clean up the sandbox, if there is one. - if (prov.provisioningSandbox) { - let sandbox = this._provisionFlows[aProvId]['provisioningSandbox']; - if (sandbox.free) { - log('_cleanUpProvisionFlow: freeing sandbox'); - sandbox.free(); - } - delete this._provisionFlows[aProvId]['provisioningSandbox']; - } - - // Clean up a related authentication flow, if there is one. - if (this._authenticationFlows[prov.authId]) { - delete this._authenticationFlows[prov.authId]; - } - - // Finally delete the provision flow - delete this._provisionFlows[aProvId]; - } - -}; - -this.IdentityProvider = new IdentityProviderService(); diff --git a/toolkit/identity/IdentityStore.jsm b/toolkit/identity/IdentityStore.jsm deleted file mode 100644 index 1827a839e7..0000000000 --- a/toolkit/identity/IdentityStore.jsm +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -this.EXPORTED_SYMBOLS = ["IdentityStore"]; - -// the data store for IDService -// written as a separate thing so it can easily be mocked -function IDServiceStore() { - this.reset(); -} - -// Note: eventually these methods may be async, but we haven no need for this -// for now, since we're not storing to disk. -IDServiceStore.prototype = { - addIdentity: function addIdentity(aEmail, aKeyPair, aCert) { - this._identities[aEmail] = {keyPair: aKeyPair, cert: aCert}; - }, - fetchIdentity: function fetchIdentity(aEmail) { - return aEmail in this._identities ? this._identities[aEmail] : null; - }, - removeIdentity: function removeIdentity(aEmail) { - let data = this._identities[aEmail]; - delete this._identities[aEmail]; - return data; - }, - getIdentities: function getIdentities() { - // XXX - should clone? - return this._identities; - }, - clearCert: function clearCert(aEmail) { - // XXX - should remove key from store? - this._identities[aEmail].cert = null; - this._identities[aEmail].keyPair = null; - }, - - /** - * set the login state for a given origin - * - * @param aOrigin - * (string) a web origin - * - * @param aState - * (boolean) whether or not the user is logged in - * - * @param aEmail - * (email) the email address the user is logged in with, - * or, if not logged in, the default email for that origin. - */ - setLoginState: function setLoginState(aOrigin, aState, aEmail) { - if (aState && !aEmail) { - throw "isLoggedIn cannot be set to true without an email"; - } - return this._loginStates[aOrigin] = {isLoggedIn: aState, email: aEmail}; - }, - getLoginState: function getLoginState(aOrigin) { - return aOrigin in this._loginStates ? this._loginStates[aOrigin] : null; - }, - clearLoginState: function clearLoginState(aOrigin) { - delete this._loginStates[aOrigin]; - }, - - reset: function Store_reset() { - // _identities associates emails with keypairs and certificates - this._identities = {}; - - // _loginStates associates. remote origins with a login status and - // the email the user has chosen as his or her identity when logging - // into that origin. - this._loginStates = {}; - }, - - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "quit-application-granted": - Services.obs.removeObserver(this, "quit-application-granted"); - this.reset(); - break; - } - }, -}; - -this.IdentityStore = new IDServiceStore(); diff --git a/toolkit/identity/IdentityUtils.jsm b/toolkit/identity/IdentityUtils.jsm deleted file mode 100644 index a34c0b1339..0000000000 --- a/toolkit/identity/IdentityUtils.jsm +++ /dev/null @@ -1,111 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -// functions common to Identity.jsm and MinimalIdentity.jsm - -"use strict"; - -this.EXPORTED_SYMBOLS = [ - "checkDeprecated", - "checkRenamed", - "getRandomId", - "objectCopy", - "makeMessageObject", -]; - -const Cu = Components.utils; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -XPCOMUtils.defineLazyServiceGetter(this, "uuidgen", - "@mozilla.org/uuid-generator;1", - "nsIUUIDGenerator"); - -XPCOMUtils.defineLazyModuleGetter(this, "Logger", - "resource://gre/modules/identity/LogUtils.jsm"); - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["Identity"].concat(aMessageArgs)); -} - -function defined(item) { - return typeof item !== 'undefined'; -} - -var checkDeprecated = this.checkDeprecated = function checkDeprecated(aOptions, aField) { - if (defined(aOptions[aField])) { - log("WARNING: field is deprecated:", aField); - return true; - } - return false; -}; - -this.checkRenamed = function checkRenamed(aOptions, aOldName, aNewName) { - if (defined(aOptions[aOldName]) && - defined(aOptions[aNewName])) { - let err = "You cannot provide both " + aOldName + " and " + aNewName; - Logger.reportError(err); - throw new Error(err); - } - - if (checkDeprecated(aOptions, aOldName)) { - aOptions[aNewName] = aOptions[aOldName]; - delete(aOptions[aOldName]); - } -}; - -this.getRandomId = function getRandomId() { - return uuidgen.generateUUID().toString(); -}; - -/* - * copy source object into target, excluding private properties - * (those whose names begin with an underscore) - */ -this.objectCopy = function objectCopy(source, target) { - let desc; - Object.getOwnPropertyNames(source).forEach(function(name) { - if (name[0] !== '_') { - desc = Object.getOwnPropertyDescriptor(source, name); - Object.defineProperty(target, name, desc); - } - }); -}; - -this.makeMessageObject = function makeMessageObject(aRpCaller) { - let options = {}; - - options.id = aRpCaller.id; - options.origin = aRpCaller.origin; - - // Backwards compatibility with Persona beta: - // loggedInUser can be undefined, null, or a string - options.loggedInUser = aRpCaller.loggedInUser; - - // Special flag for internal calls for Persona in b2g - options._internal = aRpCaller._internal; - - Object.keys(aRpCaller).forEach(function(option) { - // Duplicate the callerobject, scrubbing out functions and other - // internal variables (like _mm, the message manager object) - if (!Object.hasOwnProperty(this, option) - && option[0] !== '_' - && typeof aRpCaller[option] !== 'function') { - options[option] = aRpCaller[option]; - } - }); - - // check validity of message structure - if ((typeof options.id === 'undefined') || - (typeof options.origin === 'undefined')) { - let err = "id and origin required in relying-party message: " + JSON.stringify(options); - reportError(err); - throw new Error(err); - } - - return options; -} - diff --git a/toolkit/identity/LogUtils.jsm b/toolkit/identity/LogUtils.jsm deleted file mode 100644 index ec0f4c420d..0000000000 --- a/toolkit/identity/LogUtils.jsm +++ /dev/null @@ -1,103 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -this.EXPORTED_SYMBOLS = ["Logger"]; -const PREF_DEBUG = "toolkit.identity.debug"; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -function IdentityLogger() { - Services.prefs.addObserver(PREF_DEBUG, this, false); - this._debug = Services.prefs.getBoolPref(PREF_DEBUG); - return this; -} - -IdentityLogger.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "nsPref:changed": - this._debug = Services.prefs.getBoolPref(PREF_DEBUG); - break; - - case "quit-application-granted": - Services.prefs.removeObserver(PREF_DEBUG, this); - break; - - default: - this.log("Logger observer", "Unknown topic:", aTopic); - break; - } - }, - - _generateLogMessage: function _generateLogMessage(aPrefix, args) { - // create a string representation of a list of arbitrary things - let strings = []; - - // XXX bug 770418 - args look like flattened array, not list of strings - - args.forEach(function(arg) { - if (typeof arg === 'string') { - strings.push(arg); - } else if (typeof arg === 'undefined') { - strings.push('undefined'); - } else if (arg === null) { - strings.push('null'); - } else { - try { - strings.push(JSON.stringify(arg, null, 2)); - } catch (err) { - strings.push("<<something>>"); - } - } - }); - return 'Identity ' + aPrefix + ': ' + strings.join(' '); - }, - - /** - * log() - utility function to print a list of arbitrary things - * - * Enable with about:config pref toolkit.identity.debug - */ - log: function log(aPrefix, ...args) { - if (!this._debug) { - return; - } - let output = this._generateLogMessage(aPrefix, args); - dump(output + "\n"); - - // Additionally, make the output visible in the Error Console - Services.console.logStringMessage(output); - }, - - /** - * reportError() - report an error through component utils as well as - * our log function - */ - reportError: function reportError(aPrefix, ...aArgs) { - let prefix = aPrefix + ' ERROR'; - - // Report the error in the browser - let output = this._generateLogMessage(aPrefix, aArgs); - Cu.reportError(output); - dump("ERROR: " + output + "\n"); - for (let frame = Components.stack.caller; frame; frame = frame.caller) { - dump(frame + "\n"); - } - } - -}; - -this.Logger = new IdentityLogger(); diff --git a/toolkit/identity/MinimalIdentity.jsm b/toolkit/identity/MinimalIdentity.jsm deleted file mode 100644 index bceb656596..0000000000 --- a/toolkit/identity/MinimalIdentity.jsm +++ /dev/null @@ -1,242 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/* - * This alternate implementation of IdentityService provides just the - * channels for navigator.id, leaving the certificate storage to a - * server-provided app. - * - * On b2g, the messages identity-controller-watch, -request, and - * -logout, are observed by the component SignInToWebsite.jsm. - */ - -"use strict"; - -this.EXPORTED_SYMBOLS = ["IdentityService"]; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/identity/LogUtils.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "objectCopy", - "resource://gre/modules/identity/IdentityUtils.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "makeMessageObject", - "resource://gre/modules/identity/IdentityUtils.jsm"); - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["minimal core"].concat(aMessageArgs)); -} -function reportError(...aMessageArgs) { - Logger.reportError.apply(Logger, ["core"].concat(aMessageArgs)); -} - -function IDService() { - Services.obs.addObserver(this, "quit-application-granted", false); - - // simplify, it's one object - this.RP = this; - this.IDP = this; - - // keep track of flows - this._rpFlows = {}; - this._authFlows = {}; - this._provFlows = {}; -} - -IDService.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "quit-application-granted": - this.shutdown(); - break; - } - }, - - shutdown: function() { - Services.obs.removeObserver(this, "quit-application-granted"); - }, - - /** - * Parse an email into username and domain if it is valid, else return null - */ - parseEmail: function parseEmail(email) { - var match = email.match(/^([^@]+)@([^@^/]+.[a-z]+)$/); - if (match) { - return { - username: match[1], - domain: match[2] - }; - } - return null; - }, - - /** - * Register a listener for a given windowID as a result of a call to - * navigator.id.watch(). - * - * @param aCaller - * (Object) an object that represents the caller document, and - * is expected to have properties: - * - id (unique, e.g. uuid) - * - loggedInUser (string or null) - * - origin (string) - * - * and a bunch of callbacks - * - doReady() - * - doLogin() - * - doLogout() - * - doError() - * - doCancel() - * - */ - watch: function watch(aRpCaller) { - // store the caller structure and notify the UI observers - this._rpFlows[aRpCaller.id] = aRpCaller; - - log("flows:", Object.keys(this._rpFlows).join(', ')); - - let options = makeMessageObject(aRpCaller); - log("sending identity-controller-watch:", options); - Services.obs.notifyObservers({wrappedJSObject: options}, "identity-controller-watch", null); - }, - - /* - * The RP has gone away; remove handles to the hidden iframe. - * It's probable that the frame will already have been cleaned up. - */ - unwatch: function unwatch(aRpId, aTargetMM) { - let rp = this._rpFlows[aRpId]; - if (!rp) { - return; - } - - let options = makeMessageObject({ - id: aRpId, - origin: rp.origin, - messageManager: aTargetMM - }); - log("sending identity-controller-unwatch for id", options.id, options.origin); - Services.obs.notifyObservers({wrappedJSObject: options}, "identity-controller-unwatch", null); - - // Stop sending messages to this window - delete this._rpFlows[aRpId]; - }, - - /** - * Initiate a login with user interaction as a result of a call to - * navigator.id.request(). - * - * @param aRPId - * (integer) the id of the doc object obtained in .watch() - * - * @param aOptions - * (Object) options including privacyPolicy, termsOfService - */ - request: function request(aRPId, aOptions) { - let rp = this._rpFlows[aRPId]; - if (!rp) { - reportError("request() called before watch()"); - return; - } - - // Notify UX to display identity picker. - // Pass the doc id to UX so it can pass it back to us later. - let options = makeMessageObject(rp); - objectCopy(aOptions, options); - Services.obs.notifyObservers({wrappedJSObject: options}, "identity-controller-request", null); - }, - - /** - * Invoked when a user wishes to logout of a site (for instance, when clicking - * on an in-content logout button). - * - * @param aRpCallerId - * (integer) the id of the doc object obtained in .watch() - * - */ - logout: function logout(aRpCallerId) { - let rp = this._rpFlows[aRpCallerId]; - if (!rp) { - reportError("logout() called before watch()"); - return; - } - - let options = makeMessageObject(rp); - Services.obs.notifyObservers({wrappedJSObject: options}, "identity-controller-logout", null); - }, - - childProcessShutdown: function childProcessShutdown(messageManager) { - Object.keys(this._rpFlows).forEach(function(key) { - if (this._rpFlows[key]._mm === messageManager) { - log("child process shutdown for rp", key, "- deleting flow"); - delete this._rpFlows[key]; - } - }, this); - }, - - /* - * once the UI-and-display-logic components have received - * notifications, they call back with direct invocation of the - * following functions (doLogin, doLogout, or doReady) - */ - - doLogin: function doLogin(aRpCallerId, aAssertion, aInternalParams) { - let rp = this._rpFlows[aRpCallerId]; - if (!rp) { - log("WARNING: doLogin found no rp to go with callerId " + aRpCallerId); - return; - } - - rp.doLogin(aAssertion, aInternalParams); - }, - - doLogout: function doLogout(aRpCallerId) { - let rp = this._rpFlows[aRpCallerId]; - if (!rp) { - log("WARNING: doLogout found no rp to go with callerId " + aRpCallerId); - return; - } - - // Logout from every site with the same origin - let origin = rp.origin; - Object.keys(this._rpFlows).forEach(function(key) { - let rp = this._rpFlows[key]; - if (rp.origin === origin) { - rp.doLogout(); - } - }.bind(this)); - }, - - doReady: function doReady(aRpCallerId) { - let rp = this._rpFlows[aRpCallerId]; - if (!rp) { - log("WARNING: doReady found no rp to go with callerId " + aRpCallerId); - return; - } - - rp.doReady(); - }, - - doCancel: function doCancel(aRpCallerId) { - let rp = this._rpFlows[aRpCallerId]; - if (!rp) { - log("WARNING: doCancel found no rp to go with callerId " + aRpCallerId); - return; - } - - rp.doCancel(); - } -}; - -this.IdentityService = new IDService(); diff --git a/toolkit/identity/RelyingParty.jsm b/toolkit/identity/RelyingParty.jsm deleted file mode 100644 index 5996383ca1..0000000000 --- a/toolkit/identity/RelyingParty.jsm +++ /dev/null @@ -1,367 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/identity/LogUtils.jsm"); -Cu.import("resource://gre/modules/identity/IdentityStore.jsm"); - -this.EXPORTED_SYMBOLS = ["RelyingParty"]; - -XPCOMUtils.defineLazyModuleGetter(this, "objectCopy", - "resource://gre/modules/identity/IdentityUtils.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, - "jwcrypto", - "resource://gre/modules/identity/jwcrypto.jsm"); - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["RP"].concat(aMessageArgs)); -} -function reportError(...aMessageArgs) { - Logger.reportError.apply(Logger, ["RP"].concat(aMessageArgs)); -} - -function IdentityRelyingParty() { - // The store is a singleton shared among Identity, RelyingParty, and - // IdentityProvider. The Identity module takes care of resetting - // state in the _store on shutdown. - this._store = IdentityStore; - - this.reset(); -} - -IdentityRelyingParty.prototype = { - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]), - - observe: function observe(aSubject, aTopic, aData) { - switch (aTopic) { - case "quit-application-granted": - Services.obs.removeObserver(this, "quit-application-granted"); - this.shutdown(); - break; - - } - }, - - reset: function RP_reset() { - // Forget all documents that call in. (These are sometimes - // referred to as callers.) - this._rpFlows = {}; - }, - - shutdown: function RP_shutdown() { - this.reset(); - Services.obs.removeObserver(this, "quit-application-granted"); - }, - - /** - * Register a listener for a given windowID as a result of a call to - * navigator.id.watch(). - * - * @param aCaller - * (Object) an object that represents the caller document, and - * is expected to have properties: - * - id (unique, e.g. uuid) - * - loggedInUser (string or null) - * - origin (string) - * - * and a bunch of callbacks - * - doReady() - * - doLogin() - * - doLogout() - * - doError() - * - doCancel() - * - */ - watch: function watch(aRpCaller) { - this._rpFlows[aRpCaller.id] = aRpCaller; - let origin = aRpCaller.origin; - let state = this._store.getLoginState(origin) || { isLoggedIn: false, email: null }; - - log("watch: rpId:", aRpCaller.id, - "origin:", origin, - "loggedInUser:", aRpCaller.loggedInUser, - "loggedIn:", state.isLoggedIn, - "email:", state.email); - - // If the user is already logged in, then there are three cases - // to deal with: - // - // 1. the email is valid and unchanged: 'ready' - // 2. the email is null: 'login'; 'ready' - // 3. the email has changed: 'login'; 'ready' - if (state.isLoggedIn) { - if (state.email && aRpCaller.loggedInUser === state.email) { - this._notifyLoginStateChanged(aRpCaller.id, state.email); - return aRpCaller.doReady(); - - } else if (aRpCaller.loggedInUser === null) { - // Generate assertion for existing login - let options = {loggedInUser: state.email, origin: origin}; - return this._doLogin(aRpCaller, options); - } - // A loggedInUser different from state.email has been specified. - // Change login identity. - - let options = {loggedInUser: state.email, origin: origin}; - return this._doLogin(aRpCaller, options); - - // If the user is not logged in, there are two cases: - // - // 1. a logged in email was provided: 'ready'; 'logout' - // 2. not logged in, no email given: 'ready'; - - } - if (aRpCaller.loggedInUser) { - return this._doLogout(aRpCaller, {origin: origin}); - } - return aRpCaller.doReady(); - }, - - /** - * A utility for watch() to set state and notify the dom - * on login - * - * Note that this calls _getAssertion - */ - _doLogin: function _doLogin(aRpCaller, aOptions, aAssertion) { - log("_doLogin: rpId:", aRpCaller.id, "origin:", aOptions.origin); - - let loginWithAssertion = function loginWithAssertion(assertion) { - this._store.setLoginState(aOptions.origin, true, aOptions.loggedInUser); - this._notifyLoginStateChanged(aRpCaller.id, aOptions.loggedInUser); - aRpCaller.doLogin(assertion); - aRpCaller.doReady(); - }.bind(this); - - if (aAssertion) { - loginWithAssertion(aAssertion); - } else { - this._getAssertion(aOptions, function gotAssertion(err, assertion) { - if (err) { - reportError("_doLogin:", "Failed to get assertion on login attempt:", err); - this._doLogout(aRpCaller); - } else { - loginWithAssertion(assertion); - } - }.bind(this)); - } - }, - - /** - * A utility for watch() to set state and notify the dom - * on logout. - */ - _doLogout: function _doLogout(aRpCaller, aOptions) { - log("_doLogout: rpId:", aRpCaller.id, "origin:", aOptions.origin); - - let state = this._store.getLoginState(aOptions.origin) || {}; - - state.isLoggedIn = false; - this._notifyLoginStateChanged(aRpCaller.id, null); - - aRpCaller.doLogout(); - aRpCaller.doReady(); - }, - - /** - * For use with login or logout, emit 'identity-login-state-changed' - * - * The notification will send the rp caller id in the properties, - * and the email of the user in the message. - * - * @param aRpCallerId - * (integer) The id of the RP caller - * - * @param aIdentity - * (string) The email of the user whose login state has changed - */ - _notifyLoginStateChanged: function _notifyLoginStateChanged(aRpCallerId, aIdentity) { - log("_notifyLoginStateChanged: rpId:", aRpCallerId, "identity:", aIdentity); - - let options = {rpId: aRpCallerId}; - Services.obs.notifyObservers({wrappedJSObject: options}, - "identity-login-state-changed", - aIdentity); - }, - - /** - * Initiate a login with user interaction as a result of a call to - * navigator.id.request(). - * - * @param aRPId - * (integer) the id of the doc object obtained in .watch() - * - * @param aOptions - * (Object) options including privacyPolicy, termsOfService - */ - request: function request(aRPId, aOptions) { - log("request: rpId:", aRPId); - let rp = this._rpFlows[aRPId]; - - // Notify UX to display identity picker. - // Pass the doc id to UX so it can pass it back to us later. - let options = {rpId: aRPId, origin: rp.origin}; - objectCopy(aOptions, options); - - // Append URLs after resolving - let baseURI = Services.io.newURI(rp.origin, null, null); - for (let optionName of ["privacyPolicy", "termsOfService"]) { - if (aOptions[optionName]) { - options[optionName] = baseURI.resolve(aOptions[optionName]); - } - } - - Services.obs.notifyObservers({wrappedJSObject: options}, "identity-request", null); - }, - - /** - * Invoked when a user wishes to logout of a site (for instance, when clicking - * on an in-content logout button). - * - * @param aRpCallerId - * (integer) the id of the doc object obtained in .watch() - * - */ - logout: function logout(aRpCallerId) { - log("logout: RP caller id:", aRpCallerId); - let rp = this._rpFlows[aRpCallerId]; - if (rp && rp.origin) { - let origin = rp.origin; - log("logout: origin:", origin); - this._doLogout(rp, {origin: origin}); - } else { - log("logout: no RP found with id:", aRpCallerId); - } - // We don't delete this._rpFlows[aRpCallerId], because - // the user might log back in again. - }, - - getDefaultEmailForOrigin: function getDefaultEmailForOrigin(aOrigin) { - let identities = this.getIdentitiesForSite(aOrigin); - let result = identities.lastUsed || null; - log("getDefaultEmailForOrigin:", aOrigin, "->", result); - return result; - }, - - /** - * Return the list of identities a user may want to use to login to aOrigin. - */ - getIdentitiesForSite: function getIdentitiesForSite(aOrigin) { - let rv = { result: [] }; - for (let id in this._store.getIdentities()) { - rv.result.push(id); - } - let loginState = this._store.getLoginState(aOrigin); - if (loginState && loginState.email) - rv.lastUsed = loginState.email; - return rv; - }, - - /** - * Obtain a BrowserID assertion with the specified characteristics. - * - * @param aCallback - * (Function) Callback to be called with (err, assertion) where 'err' - * can be an Error or NULL, and 'assertion' can be NULL or a valid - * BrowserID assertion. If no callback is provided, an exception is - * thrown. - * - * @param aOptions - * (Object) An object that may contain the following properties: - * - * "audience" : The audience for which the assertion is to be - * issued. If this property is not set an exception - * will be thrown. - * - * Any properties not listed above will be ignored. - */ - _getAssertion: function _getAssertion(aOptions, aCallback) { - let audience = aOptions.origin; - let email = aOptions.loggedInUser || this.getDefaultEmailForOrigin(audience); - log("_getAssertion: audience:", audience, "email:", email); - if (!audience) { - throw "audience required for _getAssertion"; - } - - // We might not have any identity info for this email - if (!this._store.fetchIdentity(email)) { - this._store.addIdentity(email, null, null); - } - - let cert = this._store.fetchIdentity(email)['cert']; - if (cert) { - this._generateAssertion(audience, email, function generatedAssertion(err, assertion) { - if (err) { - log("ERROR: _getAssertion:", err); - } - log("_getAssertion: generated assertion:", assertion); - return aCallback(err, assertion); - }); - } - }, - - /** - * Generate an assertion, including provisioning via IdP if necessary, - * but no user interaction, so if provisioning fails, aCallback is invoked - * with an error. - * - * @param aAudience - * (string) web origin - * - * @param aIdentity - * (string) the email we're logging in with - * - * @param aCallback - * (function) callback to invoke on completion - * with first-positional parameter the error. - */ - _generateAssertion: function _generateAssertion(aAudience, aIdentity, aCallback) { - log("_generateAssertion: audience:", aAudience, "identity:", aIdentity); - - let id = this._store.fetchIdentity(aIdentity); - if (! (id && id.cert)) { - let errStr = "Cannot generate an assertion without a certificate"; - log("ERROR: _generateAssertion:", errStr); - aCallback(errStr); - return; - } - - let kp = id.keyPair; - - if (!kp) { - let errStr = "Cannot generate an assertion without a keypair"; - log("ERROR: _generateAssertion:", errStr); - aCallback(errStr); - return; - } - - jwcrypto.generateAssertion(id.cert, kp, aAudience, aCallback); - }, - - /** - * Clean up references to the provisioning flow for the specified RP. - */ - _cleanUpProvisionFlow: function RP_cleanUpProvisionFlow(aRPId, aProvId) { - let rp = this._rpFlows[aRPId]; - if (rp) { - delete rp['provId']; - } else { - log("Error: Couldn't delete provision flow ", aProvId, " for RP ", aRPId); - } - }, - -}; - -this.RelyingParty = new IdentityRelyingParty(); diff --git a/toolkit/identity/Sandbox.jsm b/toolkit/identity/Sandbox.jsm deleted file mode 100644 index 68757c212f..0000000000 --- a/toolkit/identity/Sandbox.jsm +++ /dev/null @@ -1,152 +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/. */ - -"use strict"; - -this.EXPORTED_SYMBOLS = ["Sandbox"]; - -const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -const XHTML_NS = "http://www.w3.org/1999/xhtml"; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, - "Logger", - "resource://gre/modules/identity/LogUtils.jsm"); - -/** - * An object that represents a sandbox in an iframe loaded with aURL. The - * callback provided to the constructor will be invoked when the sandbox is - * ready to be used. The callback will receive this object as its only argument. - * - * You must call free() when you are finished with the sandbox to explicitly - * free up all associated resources. - * - * @param aURL - * (string) URL to load in the sandbox. - * - * @param aCallback - * (function) Callback to be invoked with a Sandbox, when ready. - */ -this.Sandbox = function Sandbox(aURL, aCallback) { - // Normalize the URL so the comparison in _makeSandboxContentLoaded works - this._url = Services.io.newURI(aURL, null, null).spec; - this._log("Creating sandbox for:", this._url); - this._createFrame(); - this._createSandbox(aCallback); -}; - -this.Sandbox.prototype = { - - /** - * Use the outer window ID as the identifier of the sandbox. - */ - get id() { - return this._frame.contentWindow.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindowUtils).outerWindowID; - }, - - /** - * Reload the URL in the sandbox. This is useful to reuse a Sandbox (same - * id and URL). - */ - reload: function Sandbox_reload(aCallback) { - this._log("reload:", this.id, ":", this._url); - this._createSandbox(function createdSandbox(aSandbox) { - this._log("reloaded sandbox id:", aSandbox.id); - aCallback(aSandbox); - }.bind(this)); - }, - - /** - * Frees the sandbox and releases the iframe created to host it. - */ - free: function Sandbox_free() { - this._log("free:", this.id); - this._container.removeChild(this._frame); - this._frame = null; - this._container = null; - this._url = null; - }, - - /** - * Creates an empty, hidden iframe and sets it to the _frame - * property of this object. - */ - _createFrame: function Sandbox__createFrame() { - let hiddenWindow = Services.appShell.hiddenDOMWindow; - let doc = hiddenWindow.document; - - // Insert iframe in to create docshell. - let frame = doc.createElementNS(XHTML_NS, "iframe"); - frame.setAttribute("mozframetype", "content"); - frame.sandbox = "allow-forms allow-scripts allow-same-origin"; - frame.style.visibility = "collapse"; - doc.documentElement.appendChild(frame); - - let docShell = frame.contentWindow.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDocShell); - - // Stop about:blank from being loaded. - docShell.stop(Ci.nsIWebNavigation.STOP_NETWORK); - - // Disable some types of content - docShell.allowAuth = false; - docShell.allowPlugins = false; - docShell.allowImages = false; - docShell.allowMedia = false; - docShell.allowWindowControl = false; - - // Disable stylesheet loading since the document is not visible. - let markupDocViewer = docShell.contentViewer; - markupDocViewer.authorStyleDisabled = true; - - // Set instance properties. - this._frame = frame; - this._container = doc.documentElement; - }, - - _createSandbox: function Sandbox__createSandbox(aCallback) { - let self = this; - function _makeSandboxContentLoaded(event) { - self._log("_makeSandboxContentLoaded:", self.id, - event.target.location.toString()); - if (event.target != self._frame.contentDocument) { - return; - } - self._frame.removeEventListener( - "DOMWindowCreated", _makeSandboxContentLoaded, true - ); - - aCallback(self); - } - - this._frame.addEventListener("DOMWindowCreated", - _makeSandboxContentLoaded, - true); - - // Load the iframe. - let webNav = this._frame.contentWindow - .QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation); - - webNav.loadURI( - this._url, - Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE, - null, // referrer - null, // postData - null // headers - ); - - }, - - _log: function Sandbox__log(...aMessageArgs) { - Logger.log.apply(Logger, ["sandbox"].concat(aMessageArgs)); - }, - -}; diff --git a/toolkit/identity/jwcrypto.jsm b/toolkit/identity/jwcrypto.jsm deleted file mode 100644 index 4bcba730ff..0000000000 --- a/toolkit/identity/jwcrypto.jsm +++ /dev/null @@ -1,180 +0,0 @@ -/* -*- js-indent-level: 2; indent-tabs-mode: nil -*- */ -/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -"use strict"; - - -const Cu = Components.utils; -const Ci = Components.interfaces; -const Cc = Components.classes; -const Cr = Components.results; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/identity/LogUtils.jsm"); - -XPCOMUtils.defineLazyServiceGetter(this, - "IdentityCryptoService", - "@mozilla.org/identity/crypto-service;1", - "nsIIdentityCryptoService"); - -this.EXPORTED_SYMBOLS = ["jwcrypto"]; - -const ALGORITHMS = { RS256: "RS256", DS160: "DS160" }; -const DURATION_MS = 1000 * 60 * 2; // 2 minutes default assertion lifetime - -function log(...aMessageArgs) { - Logger.log.apply(Logger, ["jwcrypto"].concat(aMessageArgs)); -} - -function generateKeyPair(aAlgorithmName, aCallback) { - log("Generate key pair; alg =", aAlgorithmName); - - IdentityCryptoService.generateKeyPair(aAlgorithmName, function(rv, aKeyPair) { - if (!Components.isSuccessCode(rv)) { - return aCallback("key generation failed"); - } - - var publicKey; - - switch (aKeyPair.keyType) { - case ALGORITHMS.RS256: - publicKey = { - algorithm: "RS", - exponent: aKeyPair.hexRSAPublicKeyExponent, - modulus: aKeyPair.hexRSAPublicKeyModulus - }; - break; - - case ALGORITHMS.DS160: - publicKey = { - algorithm: "DS", - y: aKeyPair.hexDSAPublicValue, - p: aKeyPair.hexDSAPrime, - q: aKeyPair.hexDSASubPrime, - g: aKeyPair.hexDSAGenerator - }; - break; - - default: - return aCallback("unknown key type"); - } - - let keyWrapper = { - serializedPublicKey: JSON.stringify(publicKey), - _kp: aKeyPair - }; - - return aCallback(null, keyWrapper); - }); -} - -function sign(aPayload, aKeypair, aCallback) { - aKeypair._kp.sign(aPayload, function(rv, signature) { - if (!Components.isSuccessCode(rv)) { - log("ERROR: signer.sign failed"); - return aCallback("Sign failed"); - } - log("signer.sign: success"); - return aCallback(null, signature); - }); -} - -function jwcryptoClass() -{ -} - -jwcryptoClass.prototype = { - /* - * Determine the expiration of the assertion. Returns expiry date - * in milliseconds as integer. - * - * @param localtimeOffsetMsec (optional) - * The number of milliseconds that must be added to the local clock - * for it to agree with the server. For example, if the local clock - * if two minutes fast, localtimeOffsetMsec would be -120000 - * - * @param now (options) - * Current date in milliseconds. Useful for mocking clock - * skew in testing. - */ - getExpiration: function(duration=DURATION_MS, localtimeOffsetMsec=0, now=Date.now()) { - return now + localtimeOffsetMsec + duration; - }, - - isCertValid: function(aCert, aCallback) { - // XXX check expiration, bug 769850 - aCallback(true); - }, - - generateKeyPair: function(aAlgorithmName, aCallback) { - log("generating"); - generateKeyPair(aAlgorithmName, aCallback); - }, - - /* - * Generate an assertion and return it through the provided callback. - * - * @param aCert - * Identity certificate - * - * @param aKeyPair - * KeyPair object - * - * @param aAudience - * Audience of the assertion - * - * @param aOptions (optional) - * Can include: - * { - * localtimeOffsetMsec: <clock offset in milliseconds>, - * now: <current date in milliseconds> - * duration: <validity duration for this assertion in milliseconds> - * } - * - * localtimeOffsetMsec is the number of milliseconds that need to be - * added to the local clock time to make it concur with the server. - * For example, if the local clock is two minutes fast, the offset in - * milliseconds would be -120000. - * - * @param aCallback - * Function to invoke with resulting assertion. Assertion - * will be string or null on failure. - */ - generateAssertion: function(aCert, aKeyPair, aAudience, aOptions, aCallback) { - if (typeof aOptions == "function") { - aCallback = aOptions; - aOptions = { }; - } - - // for now, we hack the algorithm name - // XXX bug 769851 - var header = {"alg": "DS128"}; - var headerBytes = IdentityCryptoService.base64UrlEncode( - JSON.stringify(header)); - - var payload = { - exp: this.getExpiration( - aOptions.duration, aOptions.localtimeOffsetMsec, aOptions.now), - aud: aAudience - }; - var payloadBytes = IdentityCryptoService.base64UrlEncode( - JSON.stringify(payload)); - - log("payload bytes", payload, payloadBytes); - sign(headerBytes + "." + payloadBytes, aKeyPair, function(err, signature) { - if (err) - return aCallback(err); - - var signedAssertion = headerBytes + "." + payloadBytes + "." + signature; - return aCallback(null, aCert + "~" + signedAssertion); - }); - } - -}; - -this.jwcrypto = new jwcryptoClass(); -this.jwcrypto.ALGORITHMS = ALGORITHMS; diff --git a/toolkit/identity/moz.build b/toolkit/identity/moz.build deleted file mode 100644 index fd2ba9c8c6..0000000000 --- a/toolkit/identity/moz.build +++ /dev/null @@ -1,25 +0,0 @@ -# -*- Mode: python; 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/. - -XPIDL_SOURCES += ['nsIIdentityCryptoService.idl'] - -XPIDL_MODULE = 'identity' - -SOURCES += ['IdentityCryptoService.cpp'] - -EXTRA_JS_MODULES.identity += [ - 'Identity.jsm', - 'IdentityProvider.jsm', - 'IdentityStore.jsm', - 'IdentityUtils.jsm', - 'jwcrypto.jsm', - 'LogUtils.jsm', - 'MinimalIdentity.jsm', - 'RelyingParty.jsm', - 'Sandbox.jsm', -] - -FINAL_LIBRARY = 'xul' diff --git a/toolkit/identity/nsIIdentityCryptoService.idl b/toolkit/identity/nsIIdentityCryptoService.idl deleted file mode 100644 index 90149e2e82..0000000000 --- a/toolkit/identity/nsIIdentityCryptoService.idl +++ /dev/null @@ -1,106 +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 "nsISupports.idl" - -interface nsIURI; -interface nsIIdentityKeyGenCallback; -interface nsIIdentitySignCallback; - -/* Naming and calling conventions: - * - * A"hex" prefix means "hex-encoded string representation of a byte sequence" - * e.g. "ae34bcdf123" - * - * A "base64url" prefix means "base-64-URL-encoded string repressentation of a - * byte sequence. - * e.g. "eyJhbGciOiJSUzI1NiJ9" - * http://en.wikipedia.org/wiki/Base64#Variants_summary_table - * we use the padded approach to base64-url-encoding - * - * Callbacks take an "in nsresult rv" argument that indicates whether the async - * operation succeeded. On success, rv will be a success code - * (NS_SUCCEEDED(rv) / Components.isSuccessCode(rv)) and the remaining - * arguments are as defined in the documentation for the callback. When the - * operation fails, rv will be a failure code (NS_FAILED(rv) / - * !Components.isSuccessCode(rv)) and the values of the remaining arguments will - * be unspecified. - * - * Key Types: - * - * "RS256": RSA + SHA-256. - * - * "DS160": DSA with SHA-1. A 1024-bit prime and a 160-bit subprime with SHA-1. - * - * we use these abbreviated algorithm names as per the JWA spec - * http://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-02 - */ - -// "@mozilla.org/identity/crypto-service;1" -[scriptable, builtinclass, uuid(f087e6bc-dd33-4f6c-a106-dd786e052ee9)] -interface nsIIdentityCryptoService : nsISupports -{ - void generateKeyPair(in AUTF8String algorithm, - in nsIIdentityKeyGenCallback callback); - - ACString base64UrlEncode(in AUTF8String toEncode); -}; - -/** - * This interface provides a keypair and signing interface for Identity functionality - */ -[scriptable, uuid(73962dc7-8ee7-4346-a12b-b039e1d9b54d)] -interface nsIIdentityKeyPair : nsISupports -{ - readonly attribute AUTF8String keyType; - - // RSA properties, only accessible when keyType == "RS256" - - readonly attribute AUTF8String hexRSAPublicKeyExponent; - readonly attribute AUTF8String hexRSAPublicKeyModulus; - - // DSA properties, only accessible when keyType == "DS128" - readonly attribute AUTF8String hexDSAPrime; // p - readonly attribute AUTF8String hexDSASubPrime; // q - readonly attribute AUTF8String hexDSAGenerator; // g - readonly attribute AUTF8String hexDSAPublicValue; // y - - void sign(in AUTF8String aText, - in nsIIdentitySignCallback callback); - - // XXX implement verification bug 769856 - // AUTF8String verify(in AUTF8String aSignature, in AUTF8String encodedPublicKey); - -}; - -/** - * This interface provides a JavaScript callback object used to collect the - * nsIIdentityServeKeyPair when the keygen operation is complete - * - * though there is discussion as to whether we need the nsresult, - * we keep it so we can track deeper crypto errors. - */ -[scriptable, function, uuid(90f24ca2-2b05-4ca9-8aec-89d38e2f905a)] -interface nsIIdentityKeyGenCallback : nsISupports -{ - void generateKeyPairFinished(in nsresult rv, - in nsIIdentityKeyPair keyPair); -}; - -/** - * This interface provides a JavaScript callback object used to collect the - * AUTF8String signature - */ -[scriptable, function, uuid(2d3e5036-374b-4b47-a430-1196b67b890f)] -interface nsIIdentitySignCallback : nsISupports -{ - /** On success, base64urlSignature is the base-64-URL-encoded signature - * - * For RS256 signatures, XXX bug 769858 - * - * For DSA128 signatures, the signature is the r value concatenated with the - * s value, each component padded with leading zeroes as necessary. - */ - void signFinished(in nsresult rv, in ACString base64urlSignature); -}; diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm index 41b398efc1..5eea04b0fb 100644 --- a/toolkit/modules/AppConstants.jsm +++ b/toolkit/modules/AppConstants.jsm @@ -194,13 +194,6 @@ MOZ_SAFE_BROWSING: false, #endif - MOZ_REQUIRE_SIGNING: -#ifdef MOZ_REQUIRE_SIGNING - true, -#else - false, -#endif - MENUBAR_CAN_AUTOHIDE: #ifdef MENUBAR_CAN_AUTOHIDE true, @@ -209,7 +202,7 @@ MOZ_SAFE_BROWSING: #endif CAN_DRAW_IN_TITLEBAR: -#ifdef CAN_DRAW_IN_TITLEBAR +#ifdef MOZ_CAN_DRAW_IN_TITLEBAR true, #else false, diff --git a/toolkit/modules/LightweightThemeConsumer.jsm b/toolkit/modules/LightweightThemeConsumer.jsm index 325f711b78..4010a9ff22 100644 --- a/toolkit/modules/LightweightThemeConsumer.jsm +++ b/toolkit/modules/LightweightThemeConsumer.jsm @@ -147,7 +147,7 @@ LightweightThemeConsumer.prototype = { footer.removeAttribute("lwthemefooter"); } -#ifdef XP_MACOSX +#if defined(XP_MACOSX) && defined(MOZ_CAN_DRAW_IN_TITLEBAR) // On OS X, we extend the lightweight theme into the titlebar, which means setting // the chromemargin attribute. Some XUL applications already draw in the titlebar, // so we need to save the chromemargin value before we overwrite it with the value diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build index 8a364df8c2..54adae4cf6 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build @@ -92,9 +92,6 @@ EXTRA_PP_JS_MODULES += [ 'WindowDraggingUtils.jsm', ] -if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'cocoa'): - DEFINES['CAN_DRAW_IN_TITLEBAR'] = 1 - if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('windows', 'gtk2', 'gtk3'): DEFINES['MENUBAR_CAN_AUTOHIDE'] = 1 diff --git a/toolkit/moz.build b/toolkit/moz.build index 9c5102a013..708a6ff373 100644 --- a/toolkit/moz.build +++ b/toolkit/moz.build @@ -8,7 +8,6 @@ DIRS += [ 'components', 'content', 'forgetaboutsite', - 'identity', 'locales', 'modules', 'mozapps/downloads', diff --git a/toolkit/moz.configure b/toolkit/moz.configure index 128402257f..fe14cb5672 100644 --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -345,20 +345,6 @@ set_config('MOZ_FMP4', fmp4) set_define('MOZ_FMP4', fmp4) add_old_configure_assignment('MOZ_FMP4', fmp4) -# Libaom AV1 Video Codec Support -# ============================================================== -option('--enable-av1', - help='Enable libaom for av1 video support') - -@depends('--enable-av1') -def av1(value): - enabled = bool(value) - if enabled: - return True - -set_config('MOZ_AV1', av1) -set_define('MOZ_AV1', av1) - # Miscellaneous # ============================================================== option(name='--enable-chrome-format', |