merge mozilla-inbound to mozilla-central a=merge
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Mon, 28 Jul 2014 15:32:36 +0200
changeset 196316 70b3fc807a70c47833d1707762c63c8fe27edbf1
parent 196315 a4dcfbebcb588b9893900152eb512c3810880d68 (current diff)
parent 196250 b70f46a09115e84657f389eda7db7d62c25021bb (diff)
child 196335 d77f6a96ff960d0755cafa0e1dd976d9d285d311
push id46844
push usercbook@mozilla.com
push dateMon, 28 Jul 2014 14:30:47 +0000
treeherdermozilla-inbound@7dd701896de8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone34.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
merge mozilla-inbound to mozilla-central a=merge
browser/components/customizableui/src/CustomizableUI.jsm
browser/components/customizableui/src/CustomizableWidgets.jsm
browser/components/customizableui/src/CustomizeMode.jsm
browser/components/customizableui/src/DragPositionManager.jsm
browser/components/customizableui/src/PanelWideWidgetTracker.jsm
browser/components/customizableui/src/ScrollbarSampler.jsm
browser/components/customizableui/src/logging.js
browser/components/customizableui/src/moz.build
browser/components/downloads/src/BrowserDownloads.manifest
browser/components/downloads/src/DownloadsCommon.jsm
browser/components/downloads/src/DownloadsLogger.jsm
browser/components/downloads/src/DownloadsStartup.js
browser/components/downloads/src/DownloadsTaskbar.jsm
browser/components/downloads/src/DownloadsUI.js
browser/components/downloads/src/moz.build
browser/components/feeds/public/moz.build
browser/components/feeds/public/nsIFeedResultService.idl
browser/components/feeds/public/nsIWebContentConverterRegistrar.idl
browser/components/feeds/src/BrowserFeeds.manifest
browser/components/feeds/src/FeedConverter.js
browser/components/feeds/src/FeedWriter.js
browser/components/feeds/src/WebContentConverter.js
browser/components/feeds/src/moz.build
browser/components/feeds/src/nsFeedSniffer.cpp
browser/components/feeds/src/nsFeedSniffer.h
browser/components/migration/public/moz.build
browser/components/migration/public/nsIBrowserProfileMigrator.idl
browser/components/migration/src/BrowserProfileMigrators.manifest
browser/components/migration/src/ChromeProfileMigrator.js
browser/components/migration/src/FirefoxProfileMigrator.js
browser/components/migration/src/IEProfileMigrator.js
browser/components/migration/src/MigrationUtils.jsm
browser/components/migration/src/ProfileMigrator.js
browser/components/migration/src/SafariProfileMigrator.js
browser/components/migration/src/moz.build
browser/components/migration/src/nsIEHistoryEnumerator.cpp
browser/components/migration/src/nsIEHistoryEnumerator.h
browser/components/places/src/BrowserPlaces.manifest
browser/components/places/src/PlacesProtocolHandler.js
browser/components/places/src/PlacesUIUtils.jsm
browser/components/places/src/moz.build
browser/components/sessionstore/src/ContentRestore.jsm
browser/components/sessionstore/src/DocShellCapabilities.jsm
browser/components/sessionstore/src/FrameTree.jsm
browser/components/sessionstore/src/GlobalState.jsm
browser/components/sessionstore/src/PageStyle.jsm
browser/components/sessionstore/src/PrivacyFilter.jsm
browser/components/sessionstore/src/PrivacyLevel.jsm
browser/components/sessionstore/src/RecentlyClosedTabsAndWindowsMenuUtils.jsm
browser/components/sessionstore/src/SessionCookies.jsm
browser/components/sessionstore/src/SessionFile.jsm
browser/components/sessionstore/src/SessionHistory.jsm
browser/components/sessionstore/src/SessionMigration.jsm
browser/components/sessionstore/src/SessionSaver.jsm
browser/components/sessionstore/src/SessionStorage.jsm
browser/components/sessionstore/src/SessionStore.jsm
browser/components/sessionstore/src/SessionWorker.js
browser/components/sessionstore/src/SessionWorker.jsm
browser/components/sessionstore/src/TabAttributes.jsm
browser/components/sessionstore/src/TabState.jsm
browser/components/sessionstore/src/TabStateCache.jsm
browser/components/sessionstore/src/Utils.jsm
browser/components/sessionstore/src/moz.build
browser/components/sessionstore/src/nsSessionStartup.js
browser/components/sessionstore/src/nsSessionStore.js
browser/components/sessionstore/src/nsSessionStore.manifest
browser/components/shell/public/moz.build
browser/components/shell/public/nsIMacShellService.idl
browser/components/shell/public/nsIShellService.idl
browser/components/shell/public/nsIWindowsShellService.idl
browser/components/shell/src/Makefile.in
browser/components/shell/src/moz.build
browser/components/shell/src/nsGNOMEShellService.cpp
browser/components/shell/src/nsGNOMEShellService.h
browser/components/shell/src/nsMacShellService.cpp
browser/components/shell/src/nsMacShellService.h
browser/components/shell/src/nsSetDefaultBrowser.js
browser/components/shell/src/nsSetDefaultBrowser.manifest
browser/components/shell/src/nsShellService.h
browser/components/shell/src/nsWindowsShellService.cpp
browser/components/shell/src/nsWindowsShellService.h
browser/devtools/Makefile.in
browser/devtools/app-manager/Makefile.in
browser/devtools/markupview/Makefile.in
browser/devtools/profiler/Makefile.in
browser/devtools/styleinspector/Makefile.in
browser/devtools/webconsole/Makefile.in
browser/modules/test/unit/social/Makefile.in
browser/modules/test/unit/social/moz.build
content/canvas/compiledtest/TestWebGLElementArrayCache.cpp
content/canvas/compiledtest/moz.build
content/canvas/crashtests/0px-size-font-667225.html
content/canvas/crashtests/0px-size-font-shadow.html
content/canvas/crashtests/360293-1.html
content/canvas/crashtests/421715-1.html
content/canvas/crashtests/553938-1.html
content/canvas/crashtests/647480.html
content/canvas/crashtests/727547.html
content/canvas/crashtests/729116.html
content/canvas/crashtests/743499-negative-size.html
content/canvas/crashtests/745699-1.html
content/canvas/crashtests/745818-large-source.html
content/canvas/crashtests/746813-1.html
content/canvas/crashtests/767337-1.html
content/canvas/crashtests/780392-1.html
content/canvas/crashtests/789933-1.html
content/canvas/crashtests/794463-1.html
content/canvas/crashtests/802926-1.html
content/canvas/crashtests/896047-1.html
content/canvas/crashtests/896047-2.html
content/canvas/crashtests/916128-1.html
content/canvas/crashtests/934939-1.html
content/canvas/crashtests/crashtests.list
content/canvas/crashtests/texImage2D.html
content/canvas/moz.build
content/canvas/public/DocumentRendererChild.h
content/canvas/public/DocumentRendererParent.h
content/canvas/public/moz.build
content/canvas/public/nsICanvasRenderingContextInternal.h
content/canvas/src/CanvasGradient.h
content/canvas/src/CanvasImageCache.cpp
content/canvas/src/CanvasImageCache.h
content/canvas/src/CanvasPattern.h
content/canvas/src/CanvasRenderingContext2D.cpp
content/canvas/src/CanvasRenderingContext2D.h
content/canvas/src/CanvasUtils.cpp
content/canvas/src/CanvasUtils.h
content/canvas/src/DocumentRendererChild.cpp
content/canvas/src/DocumentRendererParent.cpp
content/canvas/src/ImageData.cpp
content/canvas/src/ImageData.h
content/canvas/src/ImageEncoder.cpp
content/canvas/src/ImageEncoder.h
content/canvas/src/Makefile.in
content/canvas/src/MurmurHash3.cpp
content/canvas/src/MurmurHash3.h
content/canvas/src/TextMetrics.h
content/canvas/src/WebGL1Context.cpp
content/canvas/src/WebGL1Context.h
content/canvas/src/WebGL2Context.cpp
content/canvas/src/WebGL2Context.h
content/canvas/src/WebGLActiveInfo.cpp
content/canvas/src/WebGLActiveInfo.h
content/canvas/src/WebGLBuffer.cpp
content/canvas/src/WebGLBuffer.h
content/canvas/src/WebGLContext.cpp
content/canvas/src/WebGLContext.h
content/canvas/src/WebGLContextAsyncQueries.cpp
content/canvas/src/WebGLContextBuffers.cpp
content/canvas/src/WebGLContextDraw.cpp
content/canvas/src/WebGLContextExtensions.cpp
content/canvas/src/WebGLContextFramebufferOperations.cpp
content/canvas/src/WebGLContextGL.cpp
content/canvas/src/WebGLContextLossTimer.cpp
content/canvas/src/WebGLContextNotSupported.cpp
content/canvas/src/WebGLContextReporter.cpp
content/canvas/src/WebGLContextState.cpp
content/canvas/src/WebGLContextUtils.cpp
content/canvas/src/WebGLContextUtils.h
content/canvas/src/WebGLContextValidate.cpp
content/canvas/src/WebGLContextVertexArray.cpp
content/canvas/src/WebGLContextVertices.cpp
content/canvas/src/WebGLElementArrayCache.cpp
content/canvas/src/WebGLElementArrayCache.h
content/canvas/src/WebGLExtensionBase.cpp
content/canvas/src/WebGLExtensionBlendMinMax.cpp
content/canvas/src/WebGLExtensionColorBufferFloat.cpp
content/canvas/src/WebGLExtensionColorBufferHalfFloat.cpp
content/canvas/src/WebGLExtensionCompressedTextureATC.cpp
content/canvas/src/WebGLExtensionCompressedTextureETC1.cpp
content/canvas/src/WebGLExtensionCompressedTexturePVRTC.cpp
content/canvas/src/WebGLExtensionCompressedTextureS3TC.cpp
content/canvas/src/WebGLExtensionDebugRendererInfo.cpp
content/canvas/src/WebGLExtensionDebugShaders.cpp
content/canvas/src/WebGLExtensionDepthTexture.cpp
content/canvas/src/WebGLExtensionDrawBuffers.cpp
content/canvas/src/WebGLExtensionElementIndexUint.cpp
content/canvas/src/WebGLExtensionFragDepth.cpp
content/canvas/src/WebGLExtensionInstancedArrays.cpp
content/canvas/src/WebGLExtensionLoseContext.cpp
content/canvas/src/WebGLExtensionSRGB.cpp
content/canvas/src/WebGLExtensionStandardDerivatives.cpp
content/canvas/src/WebGLExtensionTextureFilterAnisotropic.cpp
content/canvas/src/WebGLExtensionTextureFloat.cpp
content/canvas/src/WebGLExtensionTextureFloatLinear.cpp
content/canvas/src/WebGLExtensionTextureHalfFloat.cpp
content/canvas/src/WebGLExtensionTextureHalfFloatLinear.cpp
content/canvas/src/WebGLExtensionVertexArray.cpp
content/canvas/src/WebGLExtensions.h
content/canvas/src/WebGLFramebuffer.cpp
content/canvas/src/WebGLFramebuffer.h
content/canvas/src/WebGLFramebufferAttachable.cpp
content/canvas/src/WebGLFramebufferAttachable.h
content/canvas/src/WebGLMemoryTracker.h
content/canvas/src/WebGLObjectModel.cpp
content/canvas/src/WebGLObjectModel.h
content/canvas/src/WebGLProgram.cpp
content/canvas/src/WebGLProgram.h
content/canvas/src/WebGLQuery.cpp
content/canvas/src/WebGLQuery.h
content/canvas/src/WebGLRenderbuffer.cpp
content/canvas/src/WebGLRenderbuffer.h
content/canvas/src/WebGLShader.cpp
content/canvas/src/WebGLShader.h
content/canvas/src/WebGLShaderPrecisionFormat.cpp
content/canvas/src/WebGLShaderPrecisionFormat.h
content/canvas/src/WebGLTexelConversions.cpp
content/canvas/src/WebGLTexelConversions.h
content/canvas/src/WebGLTexture.cpp
content/canvas/src/WebGLTexture.h
content/canvas/src/WebGLTypes.h
content/canvas/src/WebGLUniformInfo.h
content/canvas/src/WebGLUniformLocation.cpp
content/canvas/src/WebGLUniformLocation.h
content/canvas/src/WebGLValidateStrings.h
content/canvas/src/WebGLVertexArray.cpp
content/canvas/src/WebGLVertexArray.h
content/canvas/src/WebGLVertexArrayFake.cpp
content/canvas/src/WebGLVertexArrayFake.h
content/canvas/src/WebGLVertexArrayGL.cpp
content/canvas/src/WebGLVertexArrayGL.h
content/canvas/src/WebGLVertexAttribData.h
content/canvas/src/moz.build
content/canvas/test/android.json
content/canvas/test/chrome/chrome.ini
content/canvas/test/chrome/nonchrome_webgl_debug_renderer_info.html
content/canvas/test/chrome/test_drawWindow_widget_layers.html
content/canvas/test/chrome/test_webgl_debug_renderer_info.html
content/canvas/test/crossorigin/image-allow-credentials.png
content/canvas/test/crossorigin/image-allow-credentials.png^headers^
content/canvas/test/crossorigin/image-allow-star.png
content/canvas/test/crossorigin/image-allow-star.png^headers^
content/canvas/test/crossorigin/image.png
content/canvas/test/crossorigin/mochitest.ini
content/canvas/test/crossorigin/test_canvas2d_crossorigin.html
content/canvas/test/crossorigin/test_video_crossorigin.html
content/canvas/test/crossorigin/test_webgl_crossorigin_textures.html
content/canvas/test/crossorigin/video.sjs
content/canvas/test/file_drawImage_document_domain.html
content/canvas/test/file_drawWindow_common.js
content/canvas/test/file_drawWindow_source.html
content/canvas/test/image_anim-gr.gif
content/canvas/test/image_anim-gr.png
content/canvas/test/image_anim-poster-gr.png
content/canvas/test/image_broken.png
content/canvas/test/image_ggrr-256x256.png
content/canvas/test/image_green-16x16.png
content/canvas/test/image_green-1x1.png
content/canvas/test/image_green-redirect
content/canvas/test/image_green-redirect^headers^
content/canvas/test/image_green.png
content/canvas/test/image_red-16x16.png
content/canvas/test/image_red.png
content/canvas/test/image_redtransparent.png
content/canvas/test/image_rgrg-256x256.png
content/canvas/test/image_rrgg-256x256.png
content/canvas/test/image_transparent.png
content/canvas/test/image_transparent50.png
content/canvas/test/image_yellow.png
content/canvas/test/image_yellow75.png
content/canvas/test/mochitest.ini
content/canvas/test/moz.build
content/canvas/test/reftest/black.html
content/canvas/test/reftest/clip-multiple-paths-badref.html
content/canvas/test/reftest/clip-multiple-paths.html
content/canvas/test/reftest/colors-half-alpha.png
content/canvas/test/reftest/colors.png
content/canvas/test/reftest/drawCustomFocusRing-ref.html
content/canvas/test/reftest/drawCustomFocusRing.html
content/canvas/test/reftest/drawFocusIfNeeded-ref.html
content/canvas/test/reftest/drawFocusIfNeeded.html
content/canvas/test/reftest/green.png
content/canvas/test/reftest/half-colors-half-alpha.png
content/canvas/test/reftest/half-colors.png
content/canvas/test/reftest/reftest.list
content/canvas/test/reftest/stroketext-shadow-ref.html
content/canvas/test/reftest/stroketext-shadow.html
content/canvas/test/reftest/webgl-clear-test.html
content/canvas/test/reftest/webgl-color-alpha-test.html
content/canvas/test/reftest/webgl-color-test.html
content/canvas/test/reftest/webgl-disable-test.html
content/canvas/test/reftest/webgl-hanging-fb-test.html
content/canvas/test/reftest/webgl-hanging-scissor-test.html
content/canvas/test/reftest/webgl-orientation-test.html
content/canvas/test/reftest/webgl-resize-test.html
content/canvas/test/reftest/webgl-utils.js
content/canvas/test/reftest/white-top-left.png
content/canvas/test/reftest/white.png
content/canvas/test/reftest/wrapper.html
content/canvas/test/test_2d.clearRect.image.offscreen.html
content/canvas/test/test_2d.clip.winding.html
content/canvas/test/test_2d.composite.canvas.color-burn.html
content/canvas/test/test_2d.composite.canvas.color-dodge.html
content/canvas/test/test_2d.composite.canvas.color.html
content/canvas/test/test_2d.composite.canvas.darken.html
content/canvas/test/test_2d.composite.canvas.destination-atop.html
content/canvas/test/test_2d.composite.canvas.destination-in.html
content/canvas/test/test_2d.composite.canvas.difference.html
content/canvas/test/test_2d.composite.canvas.exclusion.html
content/canvas/test/test_2d.composite.canvas.hard-light.html
content/canvas/test/test_2d.composite.canvas.hue.html
content/canvas/test/test_2d.composite.canvas.lighten.html
content/canvas/test/test_2d.composite.canvas.lighter.html
content/canvas/test/test_2d.composite.canvas.luminosity.html
content/canvas/test/test_2d.composite.canvas.multiply.html
content/canvas/test/test_2d.composite.canvas.overlay.html
content/canvas/test/test_2d.composite.canvas.saturation.html
content/canvas/test/test_2d.composite.canvas.screen.html
content/canvas/test/test_2d.composite.canvas.soft-light.html
content/canvas/test/test_2d.composite.canvas.source-in.html
content/canvas/test/test_2d.composite.canvas.source-out.html
content/canvas/test/test_2d.composite.canvas.xor.html
content/canvas/test/test_2d.composite.clip.lighter.html
content/canvas/test/test_2d.composite.clip.xor.html
content/canvas/test/test_2d.composite.image.destination-atop.html
content/canvas/test/test_2d.composite.image.destination-in.html
content/canvas/test/test_2d.composite.image.lighter.html
content/canvas/test/test_2d.composite.image.source-in.html
content/canvas/test/test_2d.composite.image.source-out.html
content/canvas/test/test_2d.composite.image.xor.html
content/canvas/test/test_2d.composite.solid.color-burn.html
content/canvas/test/test_2d.composite.solid.color-dodge.html
content/canvas/test/test_2d.composite.solid.color.html
content/canvas/test/test_2d.composite.solid.darken.html
content/canvas/test/test_2d.composite.solid.difference.html
content/canvas/test/test_2d.composite.solid.exclusion.html
content/canvas/test/test_2d.composite.solid.hard-light.html
content/canvas/test/test_2d.composite.solid.hue.html
content/canvas/test/test_2d.composite.solid.lighten.html
content/canvas/test/test_2d.composite.solid.lighter.html
content/canvas/test/test_2d.composite.solid.luminosity.html
content/canvas/test/test_2d.composite.solid.multiply.html
content/canvas/test/test_2d.composite.solid.overlay.html
content/canvas/test/test_2d.composite.solid.saturation.html
content/canvas/test/test_2d.composite.solid.screen.html
content/canvas/test/test_2d.composite.solid.soft-light.html
content/canvas/test/test_2d.composite.solid.xor.html
content/canvas/test/test_2d.composite.transparent.lighter.html
content/canvas/test/test_2d.composite.transparent.xor.html
content/canvas/test/test_2d.composite.uncovered.fill.color-burn.html
content/canvas/test/test_2d.composite.uncovered.fill.color-dodge.html
content/canvas/test/test_2d.composite.uncovered.fill.color.html
content/canvas/test/test_2d.composite.uncovered.fill.darken.html
content/canvas/test/test_2d.composite.uncovered.fill.destination-atop.html
content/canvas/test/test_2d.composite.uncovered.fill.destination-in.html
content/canvas/test/test_2d.composite.uncovered.fill.difference.html
content/canvas/test/test_2d.composite.uncovered.fill.exclusion.html
content/canvas/test/test_2d.composite.uncovered.fill.hard-light.html
content/canvas/test/test_2d.composite.uncovered.fill.hue.html
content/canvas/test/test_2d.composite.uncovered.fill.lighten.html
content/canvas/test/test_2d.composite.uncovered.fill.luminosity.html
content/canvas/test/test_2d.composite.uncovered.fill.multiply.html
content/canvas/test/test_2d.composite.uncovered.fill.overlay.html
content/canvas/test/test_2d.composite.uncovered.fill.saturation.html
content/canvas/test/test_2d.composite.uncovered.fill.screen.html
content/canvas/test/test_2d.composite.uncovered.fill.soft-light.html
content/canvas/test/test_2d.composite.uncovered.fill.source-in.html
content/canvas/test/test_2d.composite.uncovered.fill.source-out.html
content/canvas/test/test_2d.composite.uncovered.image.destination-atop.html
content/canvas/test/test_2d.composite.uncovered.image.destination-in.html
content/canvas/test/test_2d.composite.uncovered.image.source-in.html
content/canvas/test/test_2d.composite.uncovered.image.source-out.html
content/canvas/test/test_2d.composite.uncovered.pattern.destination-atop.html
content/canvas/test/test_2d.composite.uncovered.pattern.destination-in.html
content/canvas/test/test_2d.composite.uncovered.pattern.source-in.html
content/canvas/test/test_2d.composite.uncovered.pattern.source-out.html
content/canvas/test/test_2d.drawImage.zerocanvas.html
content/canvas/test/test_2d.fill.winding.html
content/canvas/test/test_2d.fillText.gradient.html
content/canvas/test/test_2d.gradient.radial.cone.behind.html
content/canvas/test/test_2d.gradient.radial.cone.beside.html
content/canvas/test/test_2d.gradient.radial.cone.front.html
content/canvas/test/test_2d.gradient.radial.cone.shape2.html
content/canvas/test/test_2d.gradient.radial.cone.top.html
content/canvas/test/test_2d.gradient.radial.equal.html
content/canvas/test/test_2d.gradient.radial.inside2.html
content/canvas/test/test_2d.gradient.radial.inside3.html
content/canvas/test/test_2d.gradient.radial.outside1.html
content/canvas/test/test_2d.gradient.radial.outside2.html
content/canvas/test/test_2d.gradient.radial.outside3.html
content/canvas/test/test_2d.gradient.radial.touch1.html
content/canvas/test/test_2d.gradient.radial.touch2.html
content/canvas/test/test_2d.gradient.radial.touch3.html
content/canvas/test/test_2d.isPointInPath.winding.html
content/canvas/test/test_2d.line.cap.closed.html
content/canvas/test/test_2d.line.join.parallel.html
content/canvas/test/test_2d.path.arc.shape.3.html
content/canvas/test/test_2d.path.rect.selfintersect.html
content/canvas/test/test_2d.path.rect.zero.6.html
content/canvas/test/test_2d.strokeRect.zero.5.html
content/canvas/test/test_2d_composite_canvaspattern_setTransform.html
content/canvas/test/test_ImageData_ctor.html
content/canvas/test/test_bug613794.html
content/canvas/test/test_bug753758.html
content/canvas/test/test_bug764125.html
content/canvas/test/test_bug856472.html
content/canvas/test/test_bug866575.html
content/canvas/test/test_bug902651.html
content/canvas/test/test_canvas.html
content/canvas/test/test_canvas_focusring.html
content/canvas/test/test_canvas_font_setter.html
content/canvas/test/test_canvas_path.html
content/canvas/test/test_canvas_strokeStyle_getter.html
content/canvas/test/test_createPattern_broken.html
content/canvas/test/test_drawImageIncomplete.html
content/canvas/test/test_drawImage_document_domain.html
content/canvas/test/test_drawImage_edge_cases.html
content/canvas/test/test_drawWindow.html
content/canvas/test/test_hitregion_canvas.html
content/canvas/test/test_hitregion_event.html
content/canvas/test/test_isPointInStroke.html
content/canvas/test/test_mozDashOffset.html
content/canvas/test/test_mozGetAsFile.html
content/canvas/test/test_setlinedash.html
content/canvas/test/test_strokeText_throw.html
content/canvas/test/test_toBlob.html
content/canvas/test/test_toDataURL_alpha.html
content/canvas/test/test_toDataURL_lowercase_ascii.html
content/canvas/test/test_toDataURL_parameters.html
content/canvas/test/test_windingRuleUndefined.html
content/canvas/test/webgl-conformance/00_test_list.txt
content/canvas/test/webgl-conformance/README.mozilla
content/canvas/test/webgl-conformance/README.txt
content/canvas/test/webgl-conformance/conformance/00_readme.txt
content/canvas/test/webgl-conformance/conformance/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/LICENSE_CHROMIUM
content/canvas/test/webgl-conformance/conformance/attribs/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/attribs/gl-enable-vertex-attrib.html
content/canvas/test/webgl-conformance/conformance/attribs/gl-vertex-attrib-zero-issues.html
content/canvas/test/webgl-conformance/conformance/attribs/gl-vertex-attrib.html
content/canvas/test/webgl-conformance/conformance/attribs/gl-vertexattribpointer-offsets.html
content/canvas/test/webgl-conformance/conformance/attribs/gl-vertexattribpointer.html
content/canvas/test/webgl-conformance/conformance/buffers/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/buffers/buffer-bind-test.html
content/canvas/test/webgl-conformance/conformance/buffers/buffer-data-array-buffer.html
content/canvas/test/webgl-conformance/conformance/buffers/index-validation-copies-indices.html
content/canvas/test/webgl-conformance/conformance/buffers/index-validation-crash-with-buffer-sub-data.html
content/canvas/test/webgl-conformance/conformance/buffers/index-validation-verifies-too-many-indices.html
content/canvas/test/webgl-conformance/conformance/buffers/index-validation-with-resized-buffer.html
content/canvas/test/webgl-conformance/conformance/buffers/index-validation.html
content/canvas/test/webgl-conformance/conformance/canvas/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/canvas/buffer-offscreen-test.html
content/canvas/test/webgl-conformance/conformance/canvas/buffer-preserve-test.html
content/canvas/test/webgl-conformance/conformance/canvas/canvas-test.html
content/canvas/test/webgl-conformance/conformance/canvas/canvas-zero-size.html
content/canvas/test/webgl-conformance/conformance/canvas/drawingbuffer-static-canvas-test.html
content/canvas/test/webgl-conformance/conformance/canvas/drawingbuffer-test.html
content/canvas/test/webgl-conformance/conformance/canvas/viewport-unchanged-upon-resize.html
content/canvas/test/webgl-conformance/conformance/context/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/context/constants.html
content/canvas/test/webgl-conformance/conformance/context/context-attribute-preserve-drawing-buffer.html
content/canvas/test/webgl-conformance/conformance/context/context-attributes-alpha-depth-stencil-antialias.html
content/canvas/test/webgl-conformance/conformance/context/context-lost-restored.html
content/canvas/test/webgl-conformance/conformance/context/context-lost.html
content/canvas/test/webgl-conformance/conformance/context/context-type-test.html
content/canvas/test/webgl-conformance/conformance/context/incorrect-context-object-behaviour.html
content/canvas/test/webgl-conformance/conformance/context/methods.html
content/canvas/test/webgl-conformance/conformance/context/premultiplyalpha-test.html
content/canvas/test/webgl-conformance/conformance/context/resource-sharing-test.html
content/canvas/test/webgl-conformance/conformance/extensions/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/extensions/ext-sRGB.html
content/canvas/test/webgl-conformance/conformance/extensions/ext-texture-filter-anisotropic.html
content/canvas/test/webgl-conformance/conformance/extensions/oes-standard-derivatives.html
content/canvas/test/webgl-conformance/conformance/extensions/oes-texture-float.html
content/canvas/test/webgl-conformance/conformance/extensions/oes-vertex-array-object.html
content/canvas/test/webgl-conformance/conformance/extensions/webgl-compressed-texture-etc1.html
content/canvas/test/webgl-conformance/conformance/extensions/webgl-compressed-texture-s3tc.html
content/canvas/test/webgl-conformance/conformance/extensions/webgl-debug-renderer-info.html
content/canvas/test/webgl-conformance/conformance/extensions/webgl-debug-shaders.html
content/canvas/test/webgl-conformance/conformance/extensions/webgl-depth-texture.html
content/canvas/test/webgl-conformance/conformance/glsl/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/functions/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-abs.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-acos.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-asin.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-atan-xy.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-atan.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-ceil.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-clamp-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-clamp-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-cos.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-cross.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-distance.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-dot.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-faceforward.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-floor.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-fract.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-length.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-lessThan.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-max-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-max-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-min-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-min-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mix-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mix-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mod-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-mod-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-normalize.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-reflect.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-refract.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-sign.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-sin.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-smoothstep-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-step-float.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-step-gentype.html
content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_mat4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_int_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/add_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_int_to_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec2_to_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec3_to_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/assign_ivec4_to_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/construct_struct.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_mat4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_int_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/divide_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/equal_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/function_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/function_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/greater_than.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/greater_than_equal.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/less_than.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/less_than_equal.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_mat4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_int_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/multiply_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/not_equal_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_mat4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_int_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/subtract_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_int_float.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec2_vec2.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec3_vec3.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/implicit/ternary_ivec4_vec4.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/matrices/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/matrices/glsl-mat4-to-mat3.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/misc/attrib-location-length-limits.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/embedded-struct-definitions-forbidden.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-2types-of-textures-on-same-unit.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-function-nodes.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-long-variable-names.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/glsl-vertex-branch.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/include.vs
content/canvas/test/webgl-conformance/conformance/glsl/misc/non-ascii-comments.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/non-ascii.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/re-compile-re-link.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-256-character-identifier.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-257-character-identifier.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-_webgl-identifier.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-arbitrary-indexing.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-attrib-array.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-attrib-struct.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-clipvertex.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-comma-assignment.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-comma-conditional-assignment.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-conditional-scoping.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-default-precision.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-default-precision.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-define-line-continuation.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-dfdx-no-ext.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-dfdx.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-do-scoping.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-error-directive.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-explicit-int-cast.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-float-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-for-loop.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-for-scoping.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-frag-depth.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-function-recursion.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-function-scoped-struct.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-functional-scoping.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-glcolor.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-gles-1.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-gles-symbol.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-glprojectionmatrix.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-hex-int-constant-macro.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-implicit-vec3-to-vec4-cast.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-include.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-int-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-invalid-identifier.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec2-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec3-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-ivec4-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-limited-indexing.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-line-directive.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-long-line.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-non-ascii-error.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-precision.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-quoted-error.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-undefined-preprocessor-symbol.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-uniform-in-loop-condition.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec2-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec3-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec4-return-value.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-vec4-vec3-vec4-conditional.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-100.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-100.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-120.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-version-130.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-webgl-identifier.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-without-precision.frag.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/shared.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/struct-nesting-exceeds-maximum.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/struct-nesting-under-maximum.html
content/canvas/test/webgl-conformance/conformance/glsl/misc/uniform-location-length-limits.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_field.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_function.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_struct.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/_webgl_variable.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_field.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_function.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_struct.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/reserved/webgl_variable.vert.html
content/canvas/test/webgl-conformance/conformance/glsl/samplers/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2d-bias.html
content/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dlod.html
content/canvas/test/webgl-conformance/conformance/glsl/samplers/glsl-function-texture2dproj.html
content/canvas/test/webgl-conformance/conformance/glsl/variables/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/glsl/variables/gl-fragcoord.html
content/canvas/test/webgl-conformance/conformance/glsl/variables/gl-frontfacing.html
content/canvas/test/webgl-conformance/conformance/glsl/variables/gl-pointcoord.html
content/canvas/test/webgl-conformance/conformance/limits/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/limits/gl-max-texture-dimensions.html
content/canvas/test/webgl-conformance/conformance/limits/gl-min-attribs.html
content/canvas/test/webgl-conformance/conformance/limits/gl-min-textures.html
content/canvas/test/webgl-conformance/conformance/limits/gl-min-uniforms.html
content/canvas/test/webgl-conformance/conformance/misc/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/misc/bad-arguments-test.html
content/canvas/test/webgl-conformance/conformance/misc/delayed-drawing.html
content/canvas/test/webgl-conformance/conformance/misc/error-reporting.html
content/canvas/test/webgl-conformance/conformance/misc/functions-returning-strings.html
content/canvas/test/webgl-conformance/conformance/misc/instanceof-test.html
content/canvas/test/webgl-conformance/conformance/misc/invalid-passed-params.html
content/canvas/test/webgl-conformance/conformance/misc/is-object.html
content/canvas/test/webgl-conformance/conformance/misc/null-object-behaviour.html
content/canvas/test/webgl-conformance/conformance/misc/object-deletion-behaviour.html
content/canvas/test/webgl-conformance/conformance/misc/shader-precision-format.html
content/canvas/test/webgl-conformance/conformance/misc/type-conversion-test.html
content/canvas/test/webgl-conformance/conformance/misc/uninitialized-test.html
content/canvas/test/webgl-conformance/conformance/misc/webgl-specific.html
content/canvas/test/webgl-conformance/conformance/more/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/more/README.md
content/canvas/test/webgl-conformance/conformance/more/all_tests.html
content/canvas/test/webgl-conformance/conformance/more/all_tests_linkonly.html
content/canvas/test/webgl-conformance/conformance/more/all_tests_sequential.html
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-A.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B1.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B2.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B3.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-B4.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-C.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-D_G.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-G_I.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-L_S.js
content/canvas/test/webgl-conformance/conformance/more/conformance/argGenerators-S_V.js
content/canvas/test/webgl-conformance/conformance/more/conformance/badArgsArityLessThanArgc.html
content/canvas/test/webgl-conformance/conformance/more/conformance/constants.html
content/canvas/test/webgl-conformance/conformance/more/conformance/fuzzTheAPI.html
content/canvas/test/webgl-conformance/conformance/more/conformance/getContext.html
content/canvas/test/webgl-conformance/conformance/more/conformance/methods.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-A.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B1.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B2.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B3.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-B4.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-C.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-D_G.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-G_I.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-L_S.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI-S_V.html
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPI.js
content/canvas/test/webgl-conformance/conformance/more/conformance/quickCheckAPIBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/conformance/webGLArrays.html
content/canvas/test/webgl-conformance/conformance/more/demos/opengl_web.html
content/canvas/test/webgl-conformance/conformance/more/demos/video.html
content/canvas/test/webgl-conformance/conformance/more/functions/bindBuffer.html
content/canvas/test/webgl-conformance/conformance/more/functions/bindBufferBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/bindFramebufferLeaveNonZero.html
content/canvas/test/webgl-conformance/conformance/more/functions/bufferData.html
content/canvas/test/webgl-conformance/conformance/more/functions/bufferDataBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/bufferSubData.html
content/canvas/test/webgl-conformance/conformance/more/functions/bufferSubDataBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/copyTexImage2D.html
content/canvas/test/webgl-conformance/conformance/more/functions/copyTexImage2DBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/copyTexSubImage2D.html
content/canvas/test/webgl-conformance/conformance/more/functions/copyTexSubImage2DBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/deleteBufferBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/drawArrays.html
content/canvas/test/webgl-conformance/conformance/more/functions/drawArraysOutOfBounds.html
content/canvas/test/webgl-conformance/conformance/more/functions/drawElements.html
content/canvas/test/webgl-conformance/conformance/more/functions/drawElementsBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/isTests.html
content/canvas/test/webgl-conformance/conformance/more/functions/readPixels.html
content/canvas/test/webgl-conformance/conformance/more/functions/readPixelsBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/texImage2D.html
content/canvas/test/webgl-conformance/conformance/more/functions/texImage2DBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/texImage2DHTML.html
content/canvas/test/webgl-conformance/conformance/more/functions/texImage2DHTMLBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2D.html
content/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DHTML.html
content/canvas/test/webgl-conformance/conformance/more/functions/texSubImage2DHTMLBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformMatrix.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformMatrixBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformf.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformfArrayLen1.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformfBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformi.html
content/canvas/test/webgl-conformance/conformance/more/functions/uniformiBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/vertexAttrib.html
content/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribPointer.html
content/canvas/test/webgl-conformance/conformance/more/functions/vertexAttribPointerBadArgs.html
content/canvas/test/webgl-conformance/conformance/more/glsl/arrayOutOfBounds.html
content/canvas/test/webgl-conformance/conformance/more/glsl/longLoops.html
content/canvas/test/webgl-conformance/conformance/more/glsl/uniformOutOfBounds.html
content/canvas/test/webgl-conformance/conformance/more/glsl/unusedAttribsUniforms.html
content/canvas/test/webgl-conformance/conformance/more/index.html
content/canvas/test/webgl-conformance/conformance/more/performance/CPUvsGPU.html
content/canvas/test/webgl-conformance/conformance/more/performance/bandwidth.html
content/canvas/test/webgl-conformance/conformance/more/performance/jsGCPause.html
content/canvas/test/webgl-conformance/conformance/more/performance/jsMatrixMult.html
content/canvas/test/webgl-conformance/conformance/more/performance/jsToGLOverhead.html
content/canvas/test/webgl-conformance/conformance/more/unit.css
content/canvas/test/webgl-conformance/conformance/more/unit.js
content/canvas/test/webgl-conformance/conformance/more/util.js
content/canvas/test/webgl-conformance/conformance/programs/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/programs/get-active-test.html
content/canvas/test/webgl-conformance/conformance/programs/gl-bind-attrib-location-test.html
content/canvas/test/webgl-conformance/conformance/programs/gl-get-active-attribute.html
content/canvas/test/webgl-conformance/conformance/programs/gl-get-active-uniform.html
content/canvas/test/webgl-conformance/conformance/programs/gl-getshadersource.html
content/canvas/test/webgl-conformance/conformance/programs/gl-shader-test.html
content/canvas/test/webgl-conformance/conformance/programs/invalid-UTF-16.html
content/canvas/test/webgl-conformance/conformance/programs/program-test.html
content/canvas/test/webgl-conformance/conformance/reading/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/reading/read-pixels-pack-alignment.html
content/canvas/test/webgl-conformance/conformance/reading/read-pixels-test.html
content/canvas/test/webgl-conformance/conformance/renderbuffers/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/renderbuffers/framebuffer-object-attachment.html
content/canvas/test/webgl-conformance/conformance/renderbuffers/framebuffer-test.html
content/canvas/test/webgl-conformance/conformance/renderbuffers/renderbuffer-initialization.html
content/canvas/test/webgl-conformance/conformance/rendering/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/rendering/draw-arrays-out-of-bounds.html
content/canvas/test/webgl-conformance/conformance/rendering/draw-elements-out-of-bounds.html
content/canvas/test/webgl-conformance/conformance/rendering/gl-clear.html
content/canvas/test/webgl-conformance/conformance/rendering/gl-drawelements.html
content/canvas/test/webgl-conformance/conformance/rendering/gl-scissor-test.html
content/canvas/test/webgl-conformance/conformance/rendering/line-loop-tri-fan.html
content/canvas/test/webgl-conformance/conformance/rendering/more-than-65536-indices.html
content/canvas/test/webgl-conformance/conformance/rendering/point-size.html
content/canvas/test/webgl-conformance/conformance/rendering/triangle.html
content/canvas/test/webgl-conformance/conformance/resources/3x3.png
content/canvas/test/webgl-conformance/conformance/resources/blue-1x1.jpg
content/canvas/test/webgl-conformance/conformance/resources/boolUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/bug-32888-texture.png
content/canvas/test/webgl-conformance/conformance/resources/floatUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/fragmentShader.frag
content/canvas/test/webgl-conformance/conformance/resources/glsl-conformance-test.js
content/canvas/test/webgl-conformance/conformance/resources/glsl-feature-tests.css
content/canvas/test/webgl-conformance/conformance/resources/glsl-generator.js
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-256-with-128-alpha.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-256.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-default-gamma.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma0.1.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma1.0.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma2.0.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma4.0.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp-gamma9.0.png
content/canvas/test/webgl-conformance/conformance/resources/gray-ramp.png
content/canvas/test/webgl-conformance/conformance/resources/green-2x2-16bit.png
content/canvas/test/webgl-conformance/conformance/resources/intArrayUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/intUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/matUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/noopUniformShader.frag
content/canvas/test/webgl-conformance/conformance/resources/noopUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/npot-video.mp4
content/canvas/test/webgl-conformance/conformance/resources/npot-video.theora.ogv
content/canvas/test/webgl-conformance/conformance/resources/npot-video.webmvp8.webm
content/canvas/test/webgl-conformance/conformance/resources/pnglib.js
content/canvas/test/webgl-conformance/conformance/resources/red-green.mp4
content/canvas/test/webgl-conformance/conformance/resources/red-green.png
content/canvas/test/webgl-conformance/conformance/resources/red-green.theora.ogv
content/canvas/test/webgl-conformance/conformance/resources/red-green.webmvp8.webm
content/canvas/test/webgl-conformance/conformance/resources/red-indexed.png
content/canvas/test/webgl-conformance/conformance/resources/samplerUniformShader.frag
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-cie-rgb-profile.png
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-colormatch-profile.png
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-colorspin-profile.jpg
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-colorspin-profile.png
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-e-srgb-profile.png
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-smpte-c-profile.png
content/canvas/test/webgl-conformance/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png
content/canvas/test/webgl-conformance/conformance/resources/structUniformShader.vert
content/canvas/test/webgl-conformance/conformance/resources/vertexShader.vert
content/canvas/test/webgl-conformance/conformance/resources/webgl-test-utils.js
content/canvas/test/webgl-conformance/conformance/resources/webgl-test.js
content/canvas/test/webgl-conformance/conformance/resources/zero-alpha.png
content/canvas/test/webgl-conformance/conformance/state/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/state/gl-enable-enum-test.html
content/canvas/test/webgl-conformance/conformance/state/gl-enum-tests.html
content/canvas/test/webgl-conformance/conformance/state/gl-get-calls.html
content/canvas/test/webgl-conformance/conformance/state/gl-geterror.html
content/canvas/test/webgl-conformance/conformance/state/gl-getstring.html
content/canvas/test/webgl-conformance/conformance/state/gl-object-get-calls.html
content/canvas/test/webgl-conformance/conformance/textures/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/textures/compressed-tex-image.html
content/canvas/test/webgl-conformance/conformance/textures/copy-tex-image-and-sub-image-2d.html
content/canvas/test/webgl-conformance/conformance/textures/gl-pixelstorei.html
content/canvas/test/webgl-conformance/conformance/textures/gl-teximage.html
content/canvas/test/webgl-conformance/conformance/textures/origin-clean-conformance.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-array-buffer-view.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image-data.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-image.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-sub-image-2d-with-video.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-and-uniform-binding-bugs.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-with-format-and-type.html
content/canvas/test/webgl-conformance/conformance/textures/tex-image-with-invalid-data.html
content/canvas/test/webgl-conformance/conformance/textures/tex-input-validation.html
content/canvas/test/webgl-conformance/conformance/textures/tex-sub-image-2d-bad-args.html
content/canvas/test/webgl-conformance/conformance/textures/tex-sub-image-2d.html
content/canvas/test/webgl-conformance/conformance/textures/texparameter-test.html
content/canvas/test/webgl-conformance/conformance/textures/texture-active-bind-2.html
content/canvas/test/webgl-conformance/conformance/textures/texture-active-bind.html
content/canvas/test/webgl-conformance/conformance/textures/texture-clear.html
content/canvas/test/webgl-conformance/conformance/textures/texture-complete.html
content/canvas/test/webgl-conformance/conformance/textures/texture-formats-test.html
content/canvas/test/webgl-conformance/conformance/textures/texture-mips.html
content/canvas/test/webgl-conformance/conformance/textures/texture-npot-video.html
content/canvas/test/webgl-conformance/conformance/textures/texture-npot.html
content/canvas/test/webgl-conformance/conformance/textures/texture-size-cube-maps.html
content/canvas/test/webgl-conformance/conformance/textures/texture-size.html
content/canvas/test/webgl-conformance/conformance/textures/texture-transparent-pixels-initialized.html
content/canvas/test/webgl-conformance/conformance/typedarrays/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/typedarrays/array-buffer-crash.html
content/canvas/test/webgl-conformance/conformance/typedarrays/array-buffer-view-crash.html
content/canvas/test/webgl-conformance/conformance/typedarrays/array-unit-tests.html
content/canvas/test/webgl-conformance/conformance/uniforms/00_test_list.txt
content/canvas/test/webgl-conformance/conformance/uniforms/gl-uniform-arrays.html
content/canvas/test/webgl-conformance/conformance/uniforms/gl-uniform-bool.html
content/canvas/test/webgl-conformance/conformance/uniforms/gl-uniformmatrix4fv.html
content/canvas/test/webgl-conformance/conformance/uniforms/gl-unknown-uniform.html
content/canvas/test/webgl-conformance/conformance/uniforms/null-uniform-location.html
content/canvas/test/webgl-conformance/conformance/uniforms/uniform-location.html
content/canvas/test/webgl-conformance/conformance/uniforms/uniform-samplers-test.html
content/canvas/test/webgl-conformance/dont-load-image-from-internet.patch
content/canvas/test/webgl-conformance/ext-texture-filter-anisotropic.patch
content/canvas/test/webgl-conformance/extra/50x50pixel-black-with-red-triangle.png
content/canvas/test/webgl-conformance/extra/big-fbos-example.html
content/canvas/test/webgl-conformance/extra/canvas-compositing-test.html
content/canvas/test/webgl-conformance/extra/canvas-compositing-test.png
content/canvas/test/webgl-conformance/extra/fbo-lost-context.html
content/canvas/test/webgl-conformance/extra/lots-of-polys-example.html
content/canvas/test/webgl-conformance/extra/offscreen-issue.html
content/canvas/test/webgl-conformance/extra/out-of-bounds-uniform-array-access.html
content/canvas/test/webgl-conformance/extra/out-of-memory.html
content/canvas/test/webgl-conformance/extra/out-of-resources.html
content/canvas/test/webgl-conformance/extra/out-of-vram.html
content/canvas/test/webgl-conformance/extra/simulated-attrib-0-bug-test.html
content/canvas/test/webgl-conformance/extra/slow-shader-example.html
content/canvas/test/webgl-conformance/extra/webgl-info.html
content/canvas/test/webgl-conformance/failing_tests_android.txt
content/canvas/test/webgl-conformance/failing_tests_android_nvidia.txt
content/canvas/test/webgl-conformance/failing_tests_android_x86.txt
content/canvas/test/webgl-conformance/failing_tests_linux.txt
content/canvas/test/webgl-conformance/failing_tests_linux_mesa.txt
content/canvas/test/webgl-conformance/failing_tests_linux_nvidia.txt
content/canvas/test/webgl-conformance/failing_tests_mac.txt
content/canvas/test/webgl-conformance/failing_tests_mac_mtnlion.txt
content/canvas/test/webgl-conformance/failing_tests_windows.txt
content/canvas/test/webgl-conformance/fix-webgl-harness-async.patch
content/canvas/test/webgl-conformance/gc.patch
content/canvas/test/webgl-conformance/log-more-info-about-test-failures.patch
content/canvas/test/webgl-conformance/misc/program-test-1.html
content/canvas/test/webgl-conformance/mochitest-conformance-files.ini
content/canvas/test/webgl-conformance/mochitest.ini
content/canvas/test/webgl-conformance/moz.build
content/canvas/test/webgl-conformance/reference-cycle-test.patch
content/canvas/test/webgl-conformance/resources/cors-util.js
content/canvas/test/webgl-conformance/resources/desktop-gl-constants.js
content/canvas/test/webgl-conformance/resources/js-test-pre.js
content/canvas/test/webgl-conformance/resources/js-test-style.css
content/canvas/test/webgl-conformance/resources/opengl_logo.jpg
content/canvas/test/webgl-conformance/resources/thunderbird-logo-64x64.png
content/canvas/test/webgl-conformance/resources/webgl-logo.png
content/canvas/test/webgl-conformance/resources/webgl-test-harness.js
content/canvas/test/webgl-conformance/skipped_tests_android.txt
content/canvas/test/webgl-conformance/skipped_tests_android_x86.txt
content/canvas/test/webgl-conformance/skipped_tests_linux.txt
content/canvas/test/webgl-conformance/skipped_tests_linux_mesa.txt
content/canvas/test/webgl-conformance/skipped_tests_win_vista.txt
content/canvas/test/webgl-conformance/skipped_tests_winxp.txt
content/canvas/test/webgl-conformance/test_webgl_conformance_test_suite.html
content/canvas/test/webgl-conformance/webgl-conformance-tests.html
content/canvas/test/webgl-conformance/writemanifest.py
content/canvas/test/webgl-mochitest/driver-info.js
content/canvas/test/webgl-mochitest/mochi-to-testcase.py
content/canvas/test/webgl-mochitest/mochitest.ini
content/canvas/test/webgl-mochitest/moz.build
content/canvas/test/webgl-mochitest/test_depth_readpixels.html
content/canvas/test/webgl-mochitest/test_draw.html
content/canvas/test/webgl-mochitest/test_fb_param.html
content/canvas/test/webgl-mochitest/test_fb_param_crash.html
content/canvas/test/webgl-mochitest/test_highp_fs.html
content/canvas/test/webgl-mochitest/test_no_arr_points.html
content/canvas/test/webgl-mochitest/test_noprog_draw.html
content/canvas/test/webgl-mochitest/test_privileged_exts.html
content/canvas/test/webgl-mochitest/test_texsubimage_float.html
content/canvas/test/webgl-mochitest/test_webgl2_not_exposed.html
content/canvas/test/webgl-mochitest/test_webgl_available.html
content/canvas/test/webgl-mochitest/test_webgl_conformance.html
content/canvas/test/webgl-mochitest/test_webgl_request_context.html
content/canvas/test/webgl-mochitest/test_webgl_request_mismatch.html
content/canvas/test/webgl-mochitest/webgl-util.js
content/mathml/content/crashtests/462929-1.html
content/mathml/content/crashtests/770710-1.html
content/mathml/content/crashtests/crashtests.list
content/mathml/content/src/moz.build
content/mathml/content/src/nsMathMLElement.cpp
content/mathml/content/src/nsMathMLElement.h
content/mathml/content/src/nsMathMLElementFactory.cpp
content/media/webrtc/LoadManager.cpp
content/media/webrtc/LoadManager.h
content/media/webrtc/LoadManagerFactory.cpp
content/media/webrtc/LoadManagerFactory.h
content/media/webrtc/LoadMonitor.cpp
content/media/webrtc/LoadMonitor.h
content/xml/content/crashtest/420429.xul
content/xml/content/crashtest/453278-frame.xml
content/xml/content/crashtest/453278.html
content/xml/content/crashtest/803586.xhtml
content/xml/content/crashtest/crashtests.list
content/xml/content/src/CDATASection.cpp
content/xml/content/src/CDATASection.h
content/xml/content/src/ProcessingInstruction.cpp
content/xml/content/src/ProcessingInstruction.h
content/xml/content/src/XMLStylesheetProcessingInstruction.cpp
content/xml/content/src/XMLStylesheetProcessingInstruction.h
content/xml/content/src/htmlmathml-f.ent
content/xml/content/src/moz.build
content/xml/content/src/nsXMLElement.cpp
content/xml/content/src/nsXMLElement.h
content/xml/document/crashtests/136896-1.xml
content/xml/document/crashtests/185285-1.xml
content/xml/document/crashtests/382636-1.xml
content/xml/document/crashtests/382636-2.svg
content/xml/document/crashtests/382636-3.xhtml
content/xml/document/crashtests/382636-4.xul
content/xml/document/crashtests/431703-1.xhtml
content/xml/document/crashtests/994740-1.xhtml
content/xml/document/crashtests/crashtests.list
content/xml/document/crashtests/tree.gif
content/xml/document/moz.build
content/xml/document/public/moz.build
content/xml/document/public/nsIXMLContentSink.h
content/xml/document/resources/XMLMonoPrint.css
content/xml/document/resources/XMLPrettyPrint.css
content/xml/document/resources/XMLPrettyPrint.xml
content/xml/document/resources/XMLPrettyPrint.xsl
content/xml/document/resources/jar.mn
content/xml/document/resources/moz.build
content/xml/document/src/XMLDocument.cpp
content/xml/document/src/XMLDocument.h
content/xml/document/src/moz.build
content/xml/document/src/nsXMLContentSink.cpp
content/xml/document/src/nsXMLContentSink.h
content/xml/document/src/nsXMLFragmentContentSink.cpp
content/xml/document/src/nsXMLPrettyPrinter.cpp
content/xml/document/src/nsXMLPrettyPrinter.h
content/xml/document/test/file_bug293347.xml
content/xml/document/test/file_bug293347xslt.xml
content/xml/document/test/mochitest.ini
content/xml/document/test/moz.build
content/xml/document/test/test_bug232004.xhtml
content/xml/document/test/test_bug293347.html
content/xml/document/test/test_bug343870.xhtml
content/xml/document/test/test_bug355213.xhtml
content/xml/document/test/test_bug392338.html
content/xml/document/test/test_bug399502.xhtml
content/xml/document/test/test_bug445330.html
content/xml/document/test/test_bug691215.html
content/xml/document/test/test_viewport.xhtml
content/xml/moz.build
content/xml/tests/books/bethlehem.gif
content/xml/tests/books/bill.gif
content/xml/tests/books/books.js
content/xml/tests/books/books.xml
content/xml/tests/books/charing.gif
content/xml/tests/books/classic.css
content/xml/tests/books/common.css
content/xml/tests/books/kerouac.gif
content/xml/tests/books/list.css
content/xml/tests/books/road.gif
content/xml/tests/books/welville.gif
content/xml/tests/docbook.css
content/xml/tests/docbooktest.xml
content/xml/tests/flamer.gif
content/xml/tests/load/display.css
content/xml/tests/load/display.xml
content/xml/tests/load/load.html
content/xml/tests/load/loadauth.html
content/xml/tests/load/loaddisplay.html
content/xml/tests/load/test.xml
content/xml/tests/script.xml
content/xml/tests/simple.xml
content/xml/tests/toc/book.css
content/xml/tests/toc/irslogo.gif
content/xml/tests/toc/minus.gif
content/xml/tests/toc/plus.gif
content/xml/tests/toc/rights.xml
content/xml/tests/toc/toc.css
content/xml/tests/toc/toc.js
content/xml/tests/xlink/auto.xml
content/xml/tests/xlink/link.css
content/xml/tests/xlink/manual.xml
content/xml/tests/xmlbase/xmlbase.css
content/xml/tests/xmlbase/xmlbase.xml
dom/activities/tests/moz.build
dom/alarm/test/moz.build
dom/archivereader/test/moz.build
dom/asmjscache/test/moz.build
dom/base/test/moz.build
dom/battery/test/moz.build
dom/camera/test/moz.build
dom/cellbroadcast/tests/moz.build
dom/contacts/tests/moz.build
dom/crypto/test/moz.build
dom/downloads/tests/moz.build
dom/icc/tests/moz.build
dom/identity/tests/moz.build
dom/indexedDB/test/moz.build
dom/indexedDB/test/unit/moz.build
dom/inputmethod/mochitest/moz.build
dom/ipc/tests/moz.build
dom/media/tests/identity/moz.build
dom/media/tests/ipc/moz.build
dom/media/tests/mochitest/moz.build
dom/messages/test/moz.build
dom/mobileconnection/tests/moz.build
dom/mobileid/test/moz.build
dom/mobilemessage/tests/moz.build
dom/network/tests/moz.build
dom/nfc/tests/moz.build
dom/payment/tests/moz.build
dom/permission/tests/moz.build
dom/phonenumberutils/tests/moz.build
dom/power/test/moz.build
dom/promise/tests/moz.build
dom/resourcestats/tests/moz.build
dom/settings/tests/moz.build
dom/src/json/test/moz.build
dom/src/jsurl/test/moz.build
dom/system/tests/moz.build
dom/tests/mochitest/ajax/moz.build
dom/tests/mochitest/beacon/moz.build
dom/tests/mochitest/bugs/moz.build
dom/tests/mochitest/dom-level0/moz.build
dom/tests/mochitest/gamepad/Makefile.in
dom/tests/mochitest/gamepad/moz.build
dom/tests/mochitest/general/moz.build
dom/tests/mochitest/geolocation/moz.build
dom/tests/mochitest/localstorage/moz.build
dom/tests/mochitest/moz.build
dom/tests/mochitest/notification/moz.build
dom/tests/mochitest/orientation/moz.build
dom/tests/mochitest/sessionstorage/moz.build
dom/tests/mochitest/storageevent/moz.build
dom/tests/mochitest/webcomponents/moz.build
dom/workers/test/moz.build
dom/workers/test/serviceworkers/moz.build
dom/xbl/test/moz.build
dom/xslt/tests/buster/moz.build
dom/xslt/tests/mochitest/moz.build
toolkit/components/workerloader/Makefile.in
toolkit/devtools/webconsole/Makefile.in
--- a/CLOBBER
+++ b/CLOBBER
@@ -17,9 +17,9 @@
 #
 # Modifying this file will now automatically clobber the buildbot machines \o/
 #
 
 # Are you updating CLOBBER because you think it's needed for your WebIDL
 # changes to stick? As of bug 928195, this shouldn't be necessary! Please
 # don't change CLOBBER for WebIDL changes any more.
 
-Bug 1016529 - Updating Android SDK to include Google Play Services
+Multiple bugs that happened to trigger bug 1042115.
--- a/Makefile.in
+++ b/Makefile.in
@@ -195,16 +195,17 @@ MAKE_SYM_STORE_PATH := $(DIST)/bin
 endif
 DUMP_SYMS_BIN ?= $(DIST)/host/bin/dump_syms
 endif
 ifeq (,$(filter-out Linux SunOS,$(OS_ARCH)))
 MAKE_SYM_STORE_ARGS := -c --vcs-info
 DUMP_SYMS_BIN ?= $(DIST)/host/bin/dump_syms
 MAKE_SYM_STORE_PATH := $(DIST)/bin
 endif
+MAKE_SYM_STORE_ARGS += --install-manifest=$(DEPTH)/_build_manifests/install/dist_include,$(DIST)/include
 
 SYM_STORE_SOURCE_DIRS := $(topsrcdir)
 
 ifndef JS_STANDALONE
 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
 
 ifdef MOZ_SYMBOLS_EXTRA_BUILDID
 EXTRA_BUILDID := -$(MOZ_SYMBOLS_EXTRA_BUILDID)
--- a/browser/base/content/aboutneterror/info.svg
+++ b/browser/base/content/aboutneterror/info.svg
@@ -1,7 +1,7 @@
 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 100 100">
-<g fill="#85898C">
-  <circle cx="50" cy="50" r="44" style="stroke: #85898C; stroke-width: 11; fill: transparent;"/>
+<g fill="#424E5A">
+  <circle cx="50" cy="50" r="44" style="stroke: #424E5A; stroke-width: 11; fill: transparent;"/>
   <circle cx="50" cy="24.6" r="6.4"/>
   <rect x="45" y="39.9" width="10.1" height="41.8"/>
 </g>
 </svg>
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -5599,17 +5599,17 @@ var OfflineApps = {
       this.offlineAppRequested(event.originalTarget.defaultView);
     }
   },
 
   /////////////////////////////////////////////////////////////////////////////
   // OfflineApps Implementation Methods
 
   // XXX: _getBrowserWindowForContentWindow and _getBrowserForContentWindow
-  // were taken from browser/components/feeds/src/WebContentConverter.
+  // were taken from browser/components/feeds/WebContentConverter.
   _getBrowserWindowForContentWindow: function(aContentWindow) {
     return aContentWindow.QueryInterface(Ci.nsIInterfaceRequestor)
                          .getInterface(Ci.nsIWebNavigation)
                          .QueryInterface(Ci.nsIDocShellTreeItem)
                          .rootTreeItem
                          .QueryInterface(Ci.nsIInterfaceRequestor)
                          .getInterface(Ci.nsIDOMWindow)
                          .wrappedJSObject;
--- a/browser/components/build/moz.build
+++ b/browser/components/build/moz.build
@@ -14,18 +14,18 @@ SOURCES += [
 
 LIBRARY_NAME = 'browsercomps'
 
 IS_COMPONENT = True
 
 LOCAL_INCLUDES += [
     '../about',
     '../dirprovider',
-    '../feeds/src',
-    '../migration/src',
-    '../shell/src',
+    '../feeds',
+    '../migration',
+    '../shell',
 ]
 
 USE_LIBS += [
     'mozalloc',
     'xpcomglue_s',
     'xul',
 ]
rename from browser/components/customizableui/src/CustomizableUI.jsm
rename to browser/components/customizableui/CustomizableUI.jsm
rename from browser/components/customizableui/src/CustomizableWidgets.jsm
rename to browser/components/customizableui/CustomizableWidgets.jsm
rename from browser/components/customizableui/src/CustomizeMode.jsm
rename to browser/components/customizableui/CustomizeMode.jsm
rename from browser/components/customizableui/src/DragPositionManager.jsm
rename to browser/components/customizableui/DragPositionManager.jsm
rename from browser/components/customizableui/src/PanelWideWidgetTracker.jsm
rename to browser/components/customizableui/PanelWideWidgetTracker.jsm
rename from browser/components/customizableui/src/ScrollbarSampler.jsm
rename to browser/components/customizableui/ScrollbarSampler.jsm
rename from browser/components/customizableui/src/logging.js
rename to browser/components/customizableui/logging.js
--- a/browser/components/customizableui/moz.build
+++ b/browser/components/customizableui/moz.build
@@ -1,12 +1,31 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 PARALLEL_DIRS += [
     'content',
-    'src',
 ]
 
 BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
+
+EXTRA_JS_MODULES += [
+    'DragPositionManager.jsm',
+    'ScrollbarSampler.jsm',
+]
+
+DEFINES['E10S_TESTING_ONLY'] = CONFIG['E10S_TESTING_ONLY']
+
+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
+
+EXTRA_PP_JS_MODULES += [
+    'CustomizableUI.jsm',
+    'CustomizableWidgets.jsm',
+    'CustomizeMode.jsm',
+    'PanelWideWidgetTracker.jsm',
+]
deleted file mode 100644
--- a/browser/components/customizableui/src/moz.build
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXTRA_JS_MODULES += [
-    'DragPositionManager.jsm',
-    'ScrollbarSampler.jsm',
-]
-
-DEFINES['E10S_TESTING_ONLY'] = CONFIG['E10S_TESTING_ONLY']
-
-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
-
-EXTRA_PP_JS_MODULES += [
-    'CustomizableUI.jsm',
-    'CustomizableWidgets.jsm',
-    'CustomizeMode.jsm',
-    'PanelWideWidgetTracker.jsm',
-]
rename from browser/components/downloads/src/BrowserDownloads.manifest
rename to browser/components/downloads/BrowserDownloads.manifest
rename from browser/components/downloads/src/DownloadsCommon.jsm
rename to browser/components/downloads/DownloadsCommon.jsm
rename from browser/components/downloads/src/DownloadsLogger.jsm
rename to browser/components/downloads/DownloadsLogger.jsm
rename from browser/components/downloads/src/DownloadsStartup.js
rename to browser/components/downloads/DownloadsStartup.js
rename from browser/components/downloads/src/DownloadsTaskbar.jsm
rename to browser/components/downloads/DownloadsTaskbar.jsm
rename from browser/components/downloads/src/DownloadsUI.js
rename to browser/components/downloads/DownloadsUI.js
--- a/browser/components/downloads/moz.build
+++ b/browser/components/downloads/moz.build
@@ -1,17 +1,22 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['src']
+XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
+BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
+
+JAR_MANIFESTS += ['jar.mn']
 
-XPCSHELL_TESTS_MANIFESTS += [
-    'test/unit/xpcshell.ini',
+EXTRA_COMPONENTS += [
+    'BrowserDownloads.manifest',
+    'DownloadsStartup.js',
+    'DownloadsUI.js',
 ]
 
-BROWSER_CHROME_MANIFESTS += [
-    'test/browser/browser.ini',
+EXTRA_JS_MODULES += [
+    'DownloadsCommon.jsm',
+    'DownloadsLogger.jsm',
+    'DownloadsTaskbar.jsm',
 ]
-
-JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
deleted file mode 100644
--- a/browser/components/downloads/src/moz.build
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-EXTRA_COMPONENTS += [
-    'BrowserDownloads.manifest',
-    'DownloadsStartup.js',
-    'DownloadsUI.js',
-]
-
-EXTRA_JS_MODULES += [
-    'DownloadsCommon.jsm',
-    'DownloadsLogger.jsm',
-    'DownloadsTaskbar.jsm',
-]
-
rename from browser/components/feeds/src/BrowserFeeds.manifest
rename to browser/components/feeds/BrowserFeeds.manifest
rename from browser/components/feeds/src/FeedConverter.js
rename to browser/components/feeds/FeedConverter.js
rename from browser/components/feeds/src/FeedWriter.js
rename to browser/components/feeds/FeedWriter.js
rename from browser/components/feeds/src/WebContentConverter.js
rename to browser/components/feeds/WebContentConverter.js
--- a/browser/components/feeds/moz.build
+++ b/browser/components/feeds/moz.build
@@ -1,21 +1,41 @@
 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['public', 'src']
+XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
+MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini']
+MOCHITEST_MANIFESTS += ['test/mochitest.ini']
+
+JAR_MANIFESTS += ['jar.mn']
 
-XPCSHELL_TESTS_MANIFESTS += [
-    'test/unit/xpcshell.ini',
+XPIDL_SOURCES += [
+    'nsIFeedResultService.idl',
+    'nsIWebContentConverterRegistrar.idl',
+]
+
+XPIDL_MODULE = 'browser-feeds'
+
+SOURCES += [
+    'nsFeedSniffer.cpp',
 ]
 
-MOCHITEST_CHROME_MANIFESTS += [
-    'test/chrome/chrome.ini',
+EXTRA_COMPONENTS += [
+    'BrowserFeeds.manifest',
+    'FeedConverter.js',
+    'WebContentConverter.js',
 ]
 
-MOCHITEST_MANIFESTS += [
-    'test/mochitest.ini'
+EXTRA_PP_COMPONENTS += [
+    'FeedWriter.js',
 ]
 
-JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
+FINAL_LIBRARY = 'browsercomps'
+
+for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
+    DEFINES[var] = CONFIG[var]
+
+LOCAL_INCLUDES += [
+    '../build',
+]
rename from browser/components/feeds/src/nsFeedSniffer.cpp
rename to browser/components/feeds/nsFeedSniffer.cpp
rename from browser/components/feeds/src/nsFeedSniffer.h
rename to browser/components/feeds/nsFeedSniffer.h
rename from browser/components/feeds/public/nsIFeedResultService.idl
rename to browser/components/feeds/nsIFeedResultService.idl
rename from browser/components/feeds/public/nsIWebContentConverterRegistrar.idl
rename to browser/components/feeds/nsIWebContentConverterRegistrar.idl
deleted file mode 100644
--- a/browser/components/feeds/public/moz.build
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-XPIDL_SOURCES += [
-    'nsIFeedResultService.idl',
-    'nsIWebContentConverterRegistrar.idl',
-]
-
-XPIDL_MODULE = 'browser-feeds'
-
deleted file mode 100644
--- a/browser/components/feeds/src/moz.build
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-SOURCES += [
-    'nsFeedSniffer.cpp',
-]
-
-EXTRA_COMPONENTS += [
-    'BrowserFeeds.manifest',
-    'FeedConverter.js',
-    'WebContentConverter.js',
-]
-
-EXTRA_PP_COMPONENTS += [
-    'FeedWriter.js',
-]
-
-FINAL_LIBRARY = 'browsercomps'
-
-for var in ('MOZ_APP_NAME', 'MOZ_MACBUNDLE_NAME'):
-    DEFINES[var] = CONFIG[var]
-
-LOCAL_INCLUDES += [
-    '../../build',
-]
-
--- a/browser/components/loop/content/js/client.js
+++ b/browser/components/loop/content/js/client.js
@@ -77,17 +77,25 @@ loop.Client = (function($) {
      * Ensures the client is registered with the push server.
      *
      * Callback parameters:
      * - err null on successful registration, non-null otherwise.
      *
      * @param {Function} cb Callback(err)
      */
     _ensureRegistered: function(cb) {
-      this.mozLoop.ensureRegistered(cb);
+      this.mozLoop.ensureRegistered(function(error) {
+        if (error) {
+          console.log("Error registering with Loop server, code: " + error);
+          cb(error);
+          return;
+        } else {
+          cb(null);
+        }
+      });
     },
 
     /**
      * Internal handler for requesting a call url from the server.
      *
      * Callback parameters:
      * - err null on successful registration, non-null otherwise.
      * - callUrlData an object of the obtained call url data if successful:
@@ -121,33 +129,71 @@ loop.Client = (function($) {
         } catch (err) {
           console.log("Error requesting call info", err);
           cb(err);
         }
       });
     },
 
     /**
+     * Block call URL based on the token identifier
+     *
+     * @param {string} token Conversation identifier used to block the URL
+     * @param {function} cb Callback function used for handling an error
+     *                      response. XXX The incoming call panel does not
+     *                      exist after the block button is clicked therefore
+     *                      it does not make sense to display an error.
+     **/
+    deleteCallUrl: function(token, cb) {
+      this._ensureRegistered(function(err) {
+        if (err) {
+          cb(err);
+          return;
+        }
+
+        this._deleteCallUrlInternal(token, cb);
+      }.bind(this));
+    },
+
+    _deleteCallUrlInternal: function(token, cb) {
+      this.mozLoop.hawkRequest("/call-url/" + token, "DELETE", null,
+                               (error, responseText) => {
+        if (error) {
+          this._failureHandler(cb, error);
+          return;
+        }
+
+        try {
+          cb(null);
+
+          this.mozLoop.noteCallUrlExpiry((new Date()).getTime() / 1000);
+        } catch (err) {
+          console.log("Error deleting call info", err);
+          cb(err);
+        }
+      });
+    },
+
+    /**
      * Requests a call URL from the Loop server. It will note the
      * expiry time for the url with the mozLoop api.
      *
      * Callback parameters:
      * - err null on successful registration, non-null otherwise.
      * - callUrlData an object of the obtained call url data if successful:
      * -- call_url: The url of the call
      * -- expiresAt: The amount of hours until expiry of the url
      *
      * @param  {String} simplepushUrl a registered Simple Push URL
      * @param  {string} nickname the nickname of the future caller
      * @param  {Function} cb Callback(err, callUrlData)
      */
     requestCallUrl: function(nickname, cb) {
       this._ensureRegistered(function(err) {
         if (err) {
-          console.log("Error registering with Loop server, code: " + err);
           cb(err);
           return;
         }
 
         this._requestCallUrlInternal(nickname, cb);
       }.bind(this));
     },
 
--- a/browser/components/loop/content/js/conversation.js
+++ b/browser/components/loop/content/js/conversation.js
@@ -22,16 +22,37 @@ loop.conversation = (function(OT, mozL10
   var router;
 
   var IncomingCallView = React.createClass({displayName: 'IncomingCallView',
 
     propTypes: {
       model: React.PropTypes.func.isRequired
     },
 
+    getInitialState: function() {
+      return {showDeclineMenu: false};
+    },
+
+    componentDidMount: function() {
+      window.addEventListener('click', this.clickHandler);
+      window.addEventListener('blur', this._hideDeclineMenu);
+    },
+
+    componentWillUnmount: function() {
+      window.removeEventListener('click', this.clickHandler);
+      window.removeEventListener('blur', this._hideDeclineMenu);
+    },
+
+    clickHandler: function(e) {
+      var target = e.target;
+      if (!target.classList.contains('btn-chevron')) {
+        this._hideDeclineMenu();
+      }
+    },
+
     /**
      * Used for adding different styles to the panel
      * @returns {String} Corresponds to the client platform
      * */
     _getTargetPlatform: function() {
       var platform="unknown_platform";
 
       if (navigator.platform.indexOf("Win") !== -1) {
@@ -50,29 +71,66 @@ loop.conversation = (function(OT, mozL10
     _handleAccept: function() {
       this.props.model.trigger("accept");
     },
 
     _handleDecline: function() {
       this.props.model.trigger("decline");
     },
 
+    _handleDeclineBlock: function(e) {
+      this.props.model.trigger("declineAndBlock");
+      /* Prevent event propagation
+       * stop the click from reaching parent element */
+      return false;
+    },
+
+    _toggleDeclineMenu: function() {
+      var currentState = this.state.showDeclineMenu;
+      this.setState({showDeclineMenu: !currentState});
+    },
+
+    _hideDeclineMenu: function() {
+      this.setState({showDeclineMenu: false});
+    },
+
     render: function() {
       /* jshint ignore:start */
-      var btnClassAccept = "btn btn-error btn-decline";
-      var btnClassDecline = "btn btn-success btn-accept";
+      var btnClassAccept = "btn btn-success btn-accept";
+      var btnClassBlock = "btn btn-error btn-block";
+      var btnClassDecline = "btn btn-error btn-decline";
       var conversationPanelClass = "incoming-call " + this._getTargetPlatform();
+      var cx = React.addons.classSet;
+      var declineDropdownMenuClasses = cx({
+        "native-dropdown-menu": true,
+        "decline-block-menu": true,
+        "visually-hidden": !this.state.showDeclineMenu
+      });
       return (
-        React.DOM.div( {className:conversationPanelClass}, 
-          React.DOM.h2(null, __("incoming_call")),
-          React.DOM.div( {className:"button-group"}, 
-            React.DOM.button( {className:btnClassAccept, onClick:this._handleDecline}, 
-              __("incoming_call_decline_button")
-            ),
-            React.DOM.button( {className:btnClassDecline, onClick:this._handleAccept}, 
+        React.DOM.div({className: conversationPanelClass}, 
+          React.DOM.h2(null, __("incoming_call")), 
+          React.DOM.div({className: "button-group incoming-call-action-group"}, 
+            React.DOM.div({className: "button-chevron-menu-group"}, 
+              React.DOM.div({className: "button-group-chevron"}, 
+                React.DOM.div({className: "button-group"}, 
+                  React.DOM.button({className: btnClassDecline, onClick: this._handleDecline}, 
+                    __("incoming_call_decline_button")
+                  ), 
+                  React.DOM.div({className: "btn-chevron", 
+                    onClick: this._toggleDeclineMenu}
+                  )
+                ), 
+                React.DOM.ul({className: declineDropdownMenuClasses}, 
+                  React.DOM.li({className: "btn-block", onClick: this._handleDeclineBlock}, 
+                    __("incoming_call_decline_and_block_button")
+                  )
+                )
+              )
+            ), 
+            React.DOM.button({className: btnClassAccept, onClick: this._handleAccept}, 
               __("incoming_call_answer_button")
             )
           )
         )
       );
       /* jshint ignore:end */
     }
   });
@@ -111,17 +169,18 @@ loop.conversation = (function(OT, mozL10
    * @type {loop.shared.router.BaseConversationRouter}
    */
   var ConversationRouter = loop.desktopRouter.DesktopConversationRouter.extend({
     routes: {
       "incoming/:version": "incoming",
       "call/accept": "accept",
       "call/decline": "decline",
       "call/ongoing": "conversation",
-      "call/ended": "ended"
+      "call/ended": "ended",
+      "call/declineAndBlock": "declineAndBlock"
     },
 
     /**
      * @override {loop.shared.router.BaseConversationRouter.startCall}
      */
     startCall: function() {
       this.navigate("call/ongoing", {trigger: true});
     },
@@ -143,16 +202,19 @@ loop.conversation = (function(OT, mozL10
       window.navigator.mozLoop.startAlerting();
       this._conversation.set({loopVersion: loopVersion});
       this._conversation.once("accept", function() {
         this.navigate("call/accept", {trigger: true});
       }.bind(this));
       this._conversation.once("decline", function() {
         this.navigate("call/decline", {trigger: true});
       }.bind(this));
+      this._conversation.once("declineAndBlock", function() {
+        this.navigate("call/declineAndBlock", {trigger: true});
+      }.bind(this));
       this.loadReactComponent(loop.conversation.IncomingCallView({
         model: this._conversation
       }));
     },
 
     /**
      * Accepts an incoming call.
      */
@@ -169,16 +231,34 @@ loop.conversation = (function(OT, mozL10
      */
     decline: function() {
       window.navigator.mozLoop.stopAlerting();
       // XXX For now, we just close the window
       window.close();
     },
 
     /**
+     * Decline and block an incoming call
+     * @note:
+     * - loopToken is the callUrl identifier. It gets set in the panel
+     *   after a callUrl is received
+     */
+    declineAndBlock: function() {
+      window.navigator.mozLoop.stopAlerting();
+      var token = navigator.mozLoop.getLoopCharPref('loopToken');
+      var client = new loop.Client();
+      client.deleteCallUrl(token, function(error) {
+        // XXX The conversation window will be closed when this cb is triggered
+        // figure out if there is a better way to report the error to the user
+        console.log(error);
+      });
+      window.close();
+    },
+
+    /**
      * conversation is the route when the conversation is active. The start
      * route should be navigated to first.
      */
     conversation: function() {
       if (!this._conversation.isSessionReady()) {
         console.error("Error: navigated to conversation route without " +
           "the start route to initialise the call first");
         this._notifier.errorL10n("cannot_start_call_session_not_ready");
--- a/browser/components/loop/content/js/conversation.jsx
+++ b/browser/components/loop/content/js/conversation.jsx
@@ -22,16 +22,37 @@ loop.conversation = (function(OT, mozL10
   var router;
 
   var IncomingCallView = React.createClass({
 
     propTypes: {
       model: React.PropTypes.func.isRequired
     },
 
+    getInitialState: function() {
+      return {showDeclineMenu: false};
+    },
+
+    componentDidMount: function() {
+      window.addEventListener('click', this.clickHandler);
+      window.addEventListener('blur', this._hideDeclineMenu);
+    },
+
+    componentWillUnmount: function() {
+      window.removeEventListener('click', this.clickHandler);
+      window.removeEventListener('blur', this._hideDeclineMenu);
+    },
+
+    clickHandler: function(e) {
+      var target = e.target;
+      if (!target.classList.contains('btn-chevron')) {
+        this._hideDeclineMenu();
+      }
+    },
+
     /**
      * Used for adding different styles to the panel
      * @returns {String} Corresponds to the client platform
      * */
     _getTargetPlatform: function() {
       var platform="unknown_platform";
 
       if (navigator.platform.indexOf("Win") !== -1) {
@@ -50,29 +71,66 @@ loop.conversation = (function(OT, mozL10
     _handleAccept: function() {
       this.props.model.trigger("accept");
     },
 
     _handleDecline: function() {
       this.props.model.trigger("decline");
     },
 
+    _handleDeclineBlock: function(e) {
+      this.props.model.trigger("declineAndBlock");
+      /* Prevent event propagation
+       * stop the click from reaching parent element */
+      return false;
+    },
+
+    _toggleDeclineMenu: function() {
+      var currentState = this.state.showDeclineMenu;
+      this.setState({showDeclineMenu: !currentState});
+    },
+
+    _hideDeclineMenu: function() {
+      this.setState({showDeclineMenu: false});
+    },
+
     render: function() {
       /* jshint ignore:start */
-      var btnClassAccept = "btn btn-error btn-decline";
-      var btnClassDecline = "btn btn-success btn-accept";
+      var btnClassAccept = "btn btn-success btn-accept";
+      var btnClassBlock = "btn btn-error btn-block";
+      var btnClassDecline = "btn btn-error btn-decline";
       var conversationPanelClass = "incoming-call " + this._getTargetPlatform();
+      var cx = React.addons.classSet;
+      var declineDropdownMenuClasses = cx({
+        "native-dropdown-menu": true,
+        "decline-block-menu": true,
+        "visually-hidden": !this.state.showDeclineMenu
+      });
       return (
         <div className={conversationPanelClass}>
           <h2>{__("incoming_call")}</h2>
-          <div className="button-group">
-            <button className={btnClassAccept} onClick={this._handleDecline}>
-              {__("incoming_call_decline_button")}
-            </button>
-            <button className={btnClassDecline} onClick={this._handleAccept}>
+          <div className="button-group incoming-call-action-group">
+            <div className="button-chevron-menu-group">
+              <div className="button-group-chevron">
+                <div className="button-group">
+                  <button className={btnClassDecline} onClick={this._handleDecline}>
+                    {__("incoming_call_decline_button")}
+                  </button>
+                  <div className="btn-chevron"
+                    onClick={this._toggleDeclineMenu}>
+                  </div>
+                </div>
+                <ul className={declineDropdownMenuClasses}>
+                  <li className="btn-block" onClick={this._handleDeclineBlock}>
+                    {__("incoming_call_decline_and_block_button")}
+                  </li>
+                </ul>
+              </div>
+            </div>
+            <button className={btnClassAccept} onClick={this._handleAccept}>
               {__("incoming_call_answer_button")}
             </button>
           </div>
         </div>
       );
       /* jshint ignore:end */
     }
   });
@@ -111,17 +169,18 @@ loop.conversation = (function(OT, mozL10
    * @type {loop.shared.router.BaseConversationRouter}
    */
   var ConversationRouter = loop.desktopRouter.DesktopConversationRouter.extend({
     routes: {
       "incoming/:version": "incoming",
       "call/accept": "accept",
       "call/decline": "decline",
       "call/ongoing": "conversation",
-      "call/ended": "ended"
+      "call/ended": "ended",
+      "call/declineAndBlock": "declineAndBlock"
     },
 
     /**
      * @override {loop.shared.router.BaseConversationRouter.startCall}
      */
     startCall: function() {
       this.navigate("call/ongoing", {trigger: true});
     },
@@ -143,16 +202,19 @@ loop.conversation = (function(OT, mozL10
       window.navigator.mozLoop.startAlerting();
       this._conversation.set({loopVersion: loopVersion});
       this._conversation.once("accept", function() {
         this.navigate("call/accept", {trigger: true});
       }.bind(this));
       this._conversation.once("decline", function() {
         this.navigate("call/decline", {trigger: true});
       }.bind(this));
+      this._conversation.once("declineAndBlock", function() {
+        this.navigate("call/declineAndBlock", {trigger: true});
+      }.bind(this));
       this.loadReactComponent(loop.conversation.IncomingCallView({
         model: this._conversation
       }));
     },
 
     /**
      * Accepts an incoming call.
      */
@@ -169,16 +231,34 @@ loop.conversation = (function(OT, mozL10
      */
     decline: function() {
       window.navigator.mozLoop.stopAlerting();
       // XXX For now, we just close the window
       window.close();
     },
 
     /**
+     * Decline and block an incoming call
+     * @note:
+     * - loopToken is the callUrl identifier. It gets set in the panel
+     *   after a callUrl is received
+     */
+    declineAndBlock: function() {
+      window.navigator.mozLoop.stopAlerting();
+      var token = navigator.mozLoop.getLoopCharPref('loopToken');
+      var client = new loop.Client();
+      client.deleteCallUrl(token, function(error) {
+        // XXX The conversation window will be closed when this cb is triggered
+        // figure out if there is a better way to report the error to the user
+        console.log(error);
+      });
+      window.close();
+    },
+
+    /**
      * conversation is the route when the conversation is active. The start
      * route should be navigated to first.
      */
     conversation: function() {
       if (!this._conversation.isSessionReady()) {
         console.error("Error: navigated to conversation route without " +
           "the start route to initialise the call first");
         this._notifier.errorL10n("cannot_start_call_session_not_ready");
--- a/browser/components/loop/content/js/panel.js
+++ b/browser/components/loop/content/js/panel.js
@@ -72,32 +72,32 @@ loop.panel = (function(_, mozL10n) {
         'dnd-menu': true,
         'hide': !this.state.showMenu
       });
       var availabilityText = this.state.doNotDisturb ?
                               __("display_name_dnd_status") :
                               __("display_name_available_status");
 
       return (
-        React.DOM.div( {className:"footer component-spacer"}, 
-          React.DOM.div( {className:"do-not-disturb"}, 
-            React.DOM.p( {className:"dnd-status", onClick:this.showDropdownMenu}, 
-              React.DOM.span(null, availabilityText),
-              React.DOM.i( {className:availabilityStatus})
-            ),
-            React.DOM.ul( {className:availabilityDropdown,
-                onMouseLeave:this.hideDropdownMenu}, 
-              React.DOM.li( {onClick:this.changeAvailability("available"),
-                  className:"dnd-menu-item dnd-make-available"}, 
-                React.DOM.i( {className:"status status-available"}),
+        React.DOM.div({className: "footer component-spacer"}, 
+          React.DOM.div({className: "do-not-disturb"}, 
+            React.DOM.p({className: "dnd-status", onClick: this.showDropdownMenu}, 
+              React.DOM.span(null, availabilityText), 
+              React.DOM.i({className: availabilityStatus})
+            ), 
+            React.DOM.ul({className: availabilityDropdown, 
+                onMouseLeave: this.hideDropdownMenu}, 
+              React.DOM.li({onClick: this.changeAvailability("available"), 
+                  className: "dnd-menu-item dnd-make-available"}, 
+                React.DOM.i({className: "status status-available"}), 
                 React.DOM.span(null, __("display_name_available_status"))
-              ),
-              React.DOM.li( {onClick:this.changeAvailability("do-not-disturb"),
-                  className:"dnd-menu-item dnd-make-unavailable"}, 
-                React.DOM.i( {className:"status status-dnd"}),
+              ), 
+              React.DOM.li({onClick: this.changeAvailability("do-not-disturb"), 
+                  className: "dnd-menu-item dnd-make-unavailable"}, 
+                React.DOM.i({className: "status status-dnd"}), 
                 React.DOM.span(null, __("display_name_dnd_status"))
               )
             )
           )
         )
       );
     }
   });
@@ -110,36 +110,36 @@ loop.panel = (function(_, mozL10n) {
     render: function() {
       var tosHTML = __("legal_text_and_links", {
         "terms_of_use_url": "https://accounts.firefox.com/legal/terms",
         "privacy_notice_url": "www.mozilla.org/privacy/"
       });
 
       if (this.state.seenToS == "unseen") {
         navigator.mozLoop.setLoopCharPref('seenToS', 'seen');
-        return React.DOM.p( {className:"terms-service",
-                  dangerouslySetInnerHTML:{__html: tosHTML}});
+        return React.DOM.p({className: "terms-service", 
+                  dangerouslySetInnerHTML: {__html: tosHTML}});
       } else {
-        return React.DOM.div(null );
+        return React.DOM.div(null);
       }
     }
   });
 
   var PanelLayout = React.createClass({displayName: 'PanelLayout',
     propTypes: {
       summary: React.PropTypes.string.isRequired
     },
 
     render: function() {
       return (
-        React.DOM.div( {className:"component-spacer share generate-url"}, 
-          React.DOM.div( {className:"description"}, 
-            React.DOM.p( {className:"description-content"}, this.props.summary)
-          ),
-          React.DOM.div( {className:"action"}, 
+        React.DOM.div({className: "component-spacer share generate-url"}, 
+          React.DOM.div({className: "description"}, 
+            React.DOM.p({className: "description-content"}, this.props.summary)
+          ), 
+          React.DOM.div({className: "action"}, 
             this.props.children
           )
         )
       );
     }
   });
 
   var CallUrlResult = React.createClass({displayName: 'CallUrlResult',
@@ -150,57 +150,67 @@ loop.panel = (function(_, mozL10n) {
         callUrl: ''
       };
     },
 
     /**
     * Returns a random 5 character string used to identify
     * the conversation.
     * XXX this will go away once the backend changes
+    * @note:
+    * - When we get back a callUrl we use setLoopCharPref to store the token
+    *   (the last fragment of the URL) so that it can be used to ignore&block
+    *   the call. The preference is used by the conversation router.
     */
     conversationIdentifier: function() {
       return Math.random().toString(36).substring(5);
     },
 
     componentDidMount: function() {
       this.setState({pending: true});
       this.props.client.requestCallUrl(this.conversationIdentifier(),
                                        this._onCallUrlReceived);
     },
 
     _onCallUrlReceived: function(err, callUrlData) {
-      // XXX this initializer is a bug, as it will cause
-      // setState to set the callUrl to false if one is not returned.
-      // Should decide on an implement correct behavior and state
-      // (eg set widget as disabled, state.callUrl == '')
-      //
-      var callUrl = false;
-
       this.props.notifier.clear();
 
       if (err) {
         this.props.notifier.errorL10n("unable_retrieve_url");
+        this.setState({pending: false});
       } else {
-        callUrl = callUrlData.callUrl || callUrlData.call_url;
+        try {
+          var callUrl = new window.URL(callUrlData.callUrl ||
+                                       callUrlData.call_url);
+          // XXX the current server vers does not implement the callToken field
+          // but it exists in the API. This workaround should be removed in the future
+          var token = callUrlData.callToken ||
+                      callUrl.pathname.split('/').pop();
+
+          navigator.mozLoop.setLoopCharPref('loopToken', token);
+          this.setState({pending: false, callUrl: callUrl.href});
+        } catch(e) {
+          console.log(e);
+          this.props.notifier.errorL10n("unable_retrieve_url");
+          this.setState({pending: false});
+        }
       }
-
-      this.setState({pending: false, callUrl: callUrl});
     },
 
     render: function() {
       // XXX setting elem value from a state (in the callUrl input)
       // makes it immutable ie read only but that is fine in our case.
       // readOnly attr will suppress a warning regarding this issue
       // from the react lib.
       var cx = React.addons.classSet;
       return (
-        PanelLayout( {summary:__("share_link_header_text")}, 
-          React.DOM.div( {className:"invite"}, 
-            React.DOM.input( {type:"url", value:this.state.callUrl, readOnly:"true",
-                   className:cx({'pending': this.state.pending})} )
+        PanelLayout({summary: __("share_link_header_text")}, 
+          React.DOM.div({className: "invite"}, 
+            React.DOM.input({type: "url", value: this.state.callUrl, readOnly: "true", 
+                   className: cx({'pending': this.state.pending})})
           )
         )
       );
     }
   });
 
   /**
    * Panel view.
@@ -209,20 +219,20 @@ loop.panel = (function(_, mozL10n) {
     propTypes: {
       notifier: React.PropTypes.object.isRequired,
       client: React.PropTypes.object.isRequired
     },
 
     render: function() {
       return (
         React.DOM.div(null, 
-          CallUrlResult( {client:this.props.client,
-                       notifier:this.props.notifier} ),
-          ToSView(null ),
-          AvailabilityDropdown(null )
+          CallUrlResult({client: this.props.client, 
+                       notifier: this.props.notifier}), 
+          ToSView(null), 
+          AvailabilityDropdown(null)
         )
       );
     }
   });
 
   var PanelRouter = loop.desktopRouter.DesktopRouter.extend({
     /**
      * DOM document object.
@@ -279,18 +289,18 @@ loop.panel = (function(_, mozL10n) {
     /**
      * Resets this router to its initial state.
      */
     reset: function() {
       this._notifier.clear();
       var client = new loop.Client({
         baseServerUrl: navigator.mozLoop.serverUrl
       });
-      this.loadReactComponent(PanelView( {client:client,
-                                         notifier:this._notifier} ));
+      this.loadReactComponent(PanelView({client: client, 
+                                         notifier: this._notifier}));
     }
   });
 
   /**
    * Panel initialisation.
    */
   function init() {
     // Do the initial L10n setup, we do this before anything
--- a/browser/components/loop/content/js/panel.jsx
+++ b/browser/components/loop/content/js/panel.jsx
@@ -150,44 +150,54 @@ loop.panel = (function(_, mozL10n) {
         callUrl: ''
       };
     },
 
     /**
     * Returns a random 5 character string used to identify
     * the conversation.
     * XXX this will go away once the backend changes
+    * @note:
+    * - When we get back a callUrl we use setLoopCharPref to store the token
+    *   (the last fragment of the URL) so that it can be used to ignore&block
+    *   the call. The preference is used by the conversation router.
     */
     conversationIdentifier: function() {
       return Math.random().toString(36).substring(5);
     },
 
     componentDidMount: function() {
       this.setState({pending: true});
       this.props.client.requestCallUrl(this.conversationIdentifier(),
                                        this._onCallUrlReceived);
     },
 
     _onCallUrlReceived: function(err, callUrlData) {
-      // XXX this initializer is a bug, as it will cause
-      // setState to set the callUrl to false if one is not returned.
-      // Should decide on an implement correct behavior and state
-      // (eg set widget as disabled, state.callUrl == '')
-      //
-      var callUrl = false;
-
       this.props.notifier.clear();
 
       if (err) {
         this.props.notifier.errorL10n("unable_retrieve_url");
+        this.setState({pending: false});
       } else {
-        callUrl = callUrlData.callUrl || callUrlData.call_url;
+        try {
+          var callUrl = new window.URL(callUrlData.callUrl ||
+                                       callUrlData.call_url);
+          // XXX the current server vers does not implement the callToken field
+          // but it exists in the API. This workaround should be removed in the future
+          var token = callUrlData.callToken ||
+                      callUrl.pathname.split('/').pop();
+
+          navigator.mozLoop.setLoopCharPref('loopToken', token);
+          this.setState({pending: false, callUrl: callUrl.href});
+        } catch(e) {
+          console.log(e);
+          this.props.notifier.errorL10n("unable_retrieve_url");
+          this.setState({pending: false});
+        }
       }
-
-      this.setState({pending: false, callUrl: callUrl});
     },
 
     render: function() {
       // XXX setting elem value from a state (in the callUrl input)
       // makes it immutable ie read only but that is fine in our case.
       // readOnly attr will suppress a warning regarding this issue
       // from the react lib.
       var cx = React.addons.classSet;
--- a/browser/components/loop/content/shared/css/common.css
+++ b/browser/components/loop/content/shared/css/common.css
@@ -48,16 +48,20 @@ img {
 .cf:after {
   clear: both;
 }
 
 .hide {
   display: none;
 }
 
+.visually-hidden {
+  visibility: hidden;
+}
+
 .tc {
   text-align: center;
 }
 
 .full-width {
   width: 100%;
 }
 
@@ -68,82 +72,134 @@ img {
   background: #a5a;
   border: none;
   color: #fff;
   text-decoration: none;
   height: 26px;
   padding: 0 0.5em;
   border-radius: 2px;
   cursor: pointer;
+  font-size: .9em;
+  text-align: center;
 }
 
 .btn-info {
-  background: #0096dd;
+  background-color: #0096dd;
   border: 1px solid #0095dd;
 }
 
   .btn-info:hover {
-    background: #008acb;
+    background-color: #008acb;
     border: 1px solid #008acb;
   }
 
   .btn-info:active {
-    background: #006b9d;
+    background-color: #006b9d;
     border: 1px solid #006b9d;
   }
 
 .btn-success {
-  background: #74bf43;
+  background-color: #74bf43;
   border: 1px solid #74bf43;
 }
 
   .btn-success:hover {
-    background: #6cb23e;
+    background-color: #6cb23e;
     border: 1px solid #6cb23e;
   }
 
   .btn-success:active {
-    background: #64a43a;
+    background-color: #64a43a;
     border: 1px solid #64a43a;
   }
 
 .btn-warning {
-  background: #f0ad4e;
+  background-color: #f0ad4e;
 }
 
-.btn-error {
-  background: #d74345;
+.btn-error,
+.btn-error + .btn-chevron {
+  background-color: #d74345;
   border: 1px solid #d74345;
 }
 
-  .btn-error:hover {
-    background: #c53436;
+  .btn-error:hover,
+  .btn-error + .btn-chevron:hover {
+    background-color: #c53436;
     border: 1px solid #c53436;
   }
 
-  .btn-error:active {
-    background: #ae2325;
+  .btn-error:active,
+  .btn-error + .btn-chevron:active {
+    background-color: #ae2325;
     border: 1px solid #ae2325;
   }
 
+.btn-chevron {
+  width: 26px;
+  height: 26px;
+  border-top-right-radius: 2px;
+  border-bottom-right-radius: 2px;
+}
+
+/* Groups together a button and a chevron */
+.button-group-chevron {
+  display: flex;
+  flex-direction: column;
+  flex: 1;
+}
+
+/* Groups together a button-group-chevron
+ * and the dropdown menu */
+.button-chevron-menu-group {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+  flex: 1;
+}
+
+.button-group-chevron .btn {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+  flex: 2;
+}
+
+  .btn + .btn-chevron,
+  .btn + .btn-chevron:hover,
+  .btn + .btn-chevron:active {
+    border-left: 1px solid rgba(255,255,255,.4);
+    background-image: url("../img/dropdown-inverse.png");
+    background-repeat: no-repeat;
+    background-position: center;
+    background-size: 10px;
+  }
+
+@media (min-resolution: 2dppx) {
+  .btn-chevron {
+    background-image: url(../img/dropdown-inverse@2x.png);
+    background-position: center;
+    background-size: 10px;
+    background-repeat: no-repeat;
+  }
+}
+
 .disabled, button[disabled] {
   cursor: not-allowed;