Merge m-c to b2g-inbound
authorWes Kocher <wkocher@mozilla.com>
Tue, 18 Feb 2014 21:58:12 -0800
changeset 169850 a8065fb1d95cb6c455bf0ee42b43482331fdb8a5
parent 169849 f47f7c3df99115cea2eda95f18407611e717bd56 (current diff)
parent 169834 bf0e76f2a7d431337f51602bbc5a2f5d3a9d3f5f (diff)
child 169851 bb030d47c9463292c5180aafc84e805c3b584e95
child 169907 fb1e20021f2d45df8f4871c856135739d253bb9f
push id270
push userpvanderbeken@mozilla.com
push dateThu, 06 Mar 2014 09:24:21 +0000
milestone30.0a1
Merge m-c to b2g-inbound
gfx/skia/include/animator/SkAnimator.h
gfx/skia/include/animator/SkAnimatorView.h
gfx/skia/include/config/SkUserConfig.h
gfx/skia/include/config/sk_stdint.h
gfx/skia/include/core/Sk64.h
gfx/skia/include/core/SkAdvancedTypefaceMetrics.h
gfx/skia/include/core/SkAnnotation.h
gfx/skia/include/core/SkBitmap.h
gfx/skia/include/core/SkBlitRow.h
gfx/skia/include/core/SkBounder.h
gfx/skia/include/core/SkCanvas.h
gfx/skia/include/core/SkChecksum.h
gfx/skia/include/core/SkChunkAlloc.h
gfx/skia/include/core/SkClipStack.h
gfx/skia/include/core/SkColor.h
gfx/skia/include/core/SkColorFilter.h
gfx/skia/include/core/SkColorPriv.h
gfx/skia/include/core/SkColorShader.h
gfx/skia/include/core/SkColorTable.h
gfx/skia/include/core/SkComposeShader.h
gfx/skia/include/core/SkData.h
gfx/skia/include/core/SkDataSet.h
gfx/skia/include/core/SkDeque.h
gfx/skia/include/core/SkDevice.h
gfx/skia/include/core/SkDeviceProperties.h
gfx/skia/include/core/SkDither.h
gfx/skia/include/core/SkDraw.h
gfx/skia/include/core/SkDrawFilter.h
gfx/skia/include/core/SkDrawLooper.h
gfx/skia/include/core/SkEmptyShader.h
gfx/skia/include/core/SkEndian.h
gfx/skia/include/core/SkFixed.h
gfx/skia/include/core/SkFlate.h
gfx/skia/include/core/SkFlattenable.h
gfx/skia/include/core/SkFlattenableBuffers.h
gfx/skia/include/core/SkFloatBits.h
gfx/skia/include/core/SkFloatingPoint.h
gfx/skia/include/core/SkFontHost.h
gfx/skia/include/core/SkFontLCDConfig.h
gfx/skia/include/core/SkGeometry.h
gfx/skia/include/core/SkGraphics.h
gfx/skia/include/core/SkImage.h
gfx/skia/include/core/SkImageFilter.h
gfx/skia/include/core/SkImageTypes.h
gfx/skia/include/core/SkInstCnt.h
gfx/skia/include/core/SkLineClipper.h
gfx/skia/include/core/SkMallocPixelRef.h
gfx/skia/include/core/SkMask.h
gfx/skia/include/core/SkMaskFilter.h
gfx/skia/include/core/SkMath.h
gfx/skia/include/core/SkMatrix.h
gfx/skia/include/core/SkMetaData.h
gfx/skia/include/core/SkOSFile.h
gfx/skia/include/core/SkPackBits.h
gfx/skia/include/core/SkPaint.h
gfx/skia/include/core/SkPath.h
gfx/skia/include/core/SkPathEffect.h
gfx/skia/include/core/SkPathMeasure.h
gfx/skia/include/core/SkPicture.h
gfx/skia/include/core/SkPixelRef.h
gfx/skia/include/core/SkPoint.h
gfx/skia/include/core/SkPostConfig.h
gfx/skia/include/core/SkPreConfig.h
gfx/skia/include/core/SkRRect.h
gfx/skia/include/core/SkRasterizer.h
gfx/skia/include/core/SkReader32.h
gfx/skia/include/core/SkRect.h
gfx/skia/include/core/SkRefCnt.h
gfx/skia/include/core/SkRegion.h
gfx/skia/include/core/SkScalar.h
gfx/skia/include/core/SkScalarCompare.h
gfx/skia/include/core/SkShader.h
gfx/skia/include/core/SkSize.h
gfx/skia/include/core/SkStream.h
gfx/skia/include/core/SkString.h
gfx/skia/include/core/SkStringUtils.h
gfx/skia/include/core/SkStrokeRec.h
gfx/skia/include/core/SkSurface.h
gfx/skia/include/core/SkTArray.h
gfx/skia/include/core/SkTDArray.h
gfx/skia/include/core/SkTDStack.h
gfx/skia/include/core/SkTDict.h
gfx/skia/include/core/SkTInternalLList.h
gfx/skia/include/core/SkTLazy.h
gfx/skia/include/core/SkTRegistry.h
gfx/skia/include/core/SkTScopedPtr.h
gfx/skia/include/core/SkTSearch.h
gfx/skia/include/core/SkTemplates.h
gfx/skia/include/core/SkThread.h
gfx/skia/include/core/SkThread_platform.h
gfx/skia/include/core/SkTileGridPicture.h
gfx/skia/include/core/SkTime.h
gfx/skia/include/core/SkTrace.h
gfx/skia/include/core/SkTypeface.h
gfx/skia/include/core/SkTypes.h
gfx/skia/include/core/SkUnPreMultiply.h
gfx/skia/include/core/SkUnitMapper.h
gfx/skia/include/core/SkUtils.h
gfx/skia/include/core/SkWeakRefCnt.h
gfx/skia/include/core/SkWriter32.h
gfx/skia/include/core/SkXfermode.h
gfx/skia/include/device/xps/SkConstexprMath.h
gfx/skia/include/device/xps/SkXPSDevice.h
gfx/skia/include/effects/Sk1DPathEffect.h
gfx/skia/include/effects/Sk2DPathEffect.h
gfx/skia/include/effects/SkArithmeticMode.h
gfx/skia/include/effects/SkAvoidXfermode.h
gfx/skia/include/effects/SkBicubicImageFilter.h
gfx/skia/include/effects/SkBitmapSource.h
gfx/skia/include/effects/SkBlendImageFilter.h
gfx/skia/include/effects/SkBlurDrawLooper.h
gfx/skia/include/effects/SkBlurImageFilter.h
gfx/skia/include/effects/SkBlurMaskFilter.h
gfx/skia/include/effects/SkColorFilterImageFilter.h
gfx/skia/include/effects/SkColorMatrix.h
gfx/skia/include/effects/SkColorMatrixFilter.h
gfx/skia/include/effects/SkCornerPathEffect.h
gfx/skia/include/effects/SkDashPathEffect.h
gfx/skia/include/effects/SkDiscretePathEffect.h
gfx/skia/include/effects/SkDisplacementMapEffect.h
gfx/skia/include/effects/SkDrawExtraPathEffect.h
gfx/skia/include/effects/SkEmbossMaskFilter.h
gfx/skia/include/effects/SkGradientShader.h
gfx/skia/include/effects/SkImageFilterUtils.h
gfx/skia/include/effects/SkKernel33MaskFilter.h
gfx/skia/include/effects/SkLayerDrawLooper.h
gfx/skia/include/effects/SkLayerRasterizer.h
gfx/skia/include/effects/SkLightingImageFilter.h
gfx/skia/include/effects/SkMagnifierImageFilter.h
gfx/skia/include/effects/SkMatrixConvolutionImageFilter.h
gfx/skia/include/effects/SkMergeImageFilter.h
gfx/skia/include/effects/SkMorphologyImageFilter.h
gfx/skia/include/effects/SkOffsetImageFilter.h
gfx/skia/include/effects/SkPaintFlagsDrawFilter.h
gfx/skia/include/effects/SkPixelXorXfermode.h
gfx/skia/include/effects/SkPorterDuff.h
gfx/skia/include/effects/SkRectShaderImageFilter.h
gfx/skia/include/effects/SkStippleMaskFilter.h
gfx/skia/include/effects/SkTableColorFilter.h
gfx/skia/include/effects/SkTableMaskFilter.h
gfx/skia/include/effects/SkTestImageFilters.h
gfx/skia/include/effects/SkTransparentShader.h
gfx/skia/include/gpu/GrAARectRenderer.h
gfx/skia/include/gpu/GrBackendEffectFactory.h
gfx/skia/include/gpu/GrClipData.h
gfx/skia/include/gpu/GrColor.h
gfx/skia/include/gpu/GrConfig.h
gfx/skia/include/gpu/GrContext.h
gfx/skia/include/gpu/GrContextFactory.h
gfx/skia/include/gpu/GrDrawEffect.h
gfx/skia/include/gpu/GrEffect.h
gfx/skia/include/gpu/GrEffectStage.h
gfx/skia/include/gpu/GrEffectUnitTest.h
gfx/skia/include/gpu/GrFontScaler.h
gfx/skia/include/gpu/GrGlyph.h
gfx/skia/include/gpu/GrKey.h
gfx/skia/include/gpu/GrNoncopyable.h
gfx/skia/include/gpu/GrOvalRenderer.h
gfx/skia/include/gpu/GrPaint.h
gfx/skia/include/gpu/GrPathRendererChain.h
gfx/skia/include/gpu/GrPoint.h
gfx/skia/include/gpu/GrRect.h
gfx/skia/include/gpu/GrRefCnt.h
gfx/skia/include/gpu/GrRenderTarget.h
gfx/skia/include/gpu/GrResource.h
gfx/skia/include/gpu/GrSurface.h
gfx/skia/include/gpu/GrTBackendEffectFactory.h
gfx/skia/include/gpu/GrTextContext.h
gfx/skia/include/gpu/GrTexture.h
gfx/skia/include/gpu/GrTextureAccess.h
gfx/skia/include/gpu/GrTypes.h
gfx/skia/include/gpu/GrTypesPriv.h
gfx/skia/include/gpu/GrUserConfig.h
gfx/skia/include/gpu/SkGpuDevice.h
gfx/skia/include/gpu/SkGr.h
gfx/skia/include/gpu/SkGrPixelRef.h
gfx/skia/include/gpu/SkGrTexturePixelRef.h
gfx/skia/include/gpu/gl/GrGLConfig.h
gfx/skia/include/gpu/gl/GrGLConfig_chrome.h
gfx/skia/include/gpu/gl/GrGLExtensions.h
gfx/skia/include/gpu/gl/GrGLFunctions.h
gfx/skia/include/gpu/gl/GrGLInterface.h
gfx/skia/include/gpu/gl/SkANGLEGLContext.h
gfx/skia/include/gpu/gl/SkDebugGLContext.h
gfx/skia/include/gpu/gl/SkGLContextHelper.h
gfx/skia/include/gpu/gl/SkMesaGLContext.h
gfx/skia/include/gpu/gl/SkNativeGLContext.h
gfx/skia/include/gpu/gl/SkNullGLContext.h
gfx/skia/include/images/SkBitmapRegionDecoder.h
gfx/skia/include/images/SkImageDecoder.h
gfx/skia/include/images/SkImageEncoder.h
gfx/skia/include/images/SkImageRef.h
gfx/skia/include/images/SkImageRef_GlobalPool.h
gfx/skia/include/images/SkImages.h
gfx/skia/include/images/SkMovie.h
gfx/skia/include/images/SkPageFlipper.h
gfx/skia/include/lazy/SkBitmapFactory.h
gfx/skia/include/lazy/SkImageCache.h
gfx/skia/include/lazy/SkLruImageCache.h
gfx/skia/include/lazy/SkPurgeableImageCache.h
gfx/skia/include/pdf/SkPDFDevice.h
gfx/skia/include/pdf/SkPDFDocument.h
gfx/skia/include/pipe/SkGPipe.h
gfx/skia/include/ports/SkFontConfigInterface.h
gfx/skia/include/ports/SkFontMgr.h
gfx/skia/include/ports/SkFontStyle.h
gfx/skia/include/ports/SkHarfBuzzFont.h
gfx/skia/include/ports/SkTypeface_android.h
gfx/skia/include/ports/SkTypeface_cairo.h
gfx/skia/include/ports/SkTypeface_mac.h
gfx/skia/include/ports/SkTypeface_win.h
gfx/skia/include/svg/SkSVGAttribute.h
gfx/skia/include/svg/SkSVGBase.h
gfx/skia/include/svg/SkSVGPaintState.h
gfx/skia/include/svg/SkSVGParser.h
gfx/skia/include/svg/SkSVGTypes.h
gfx/skia/include/text/SkTextLayout.h
gfx/skia/include/utils/SkBoundaryPatch.h
gfx/skia/include/utils/SkCamera.h
gfx/skia/include/utils/SkCondVar.h
gfx/skia/include/utils/SkCountdown.h
gfx/skia/include/utils/SkCubicInterval.h
gfx/skia/include/utils/SkCullPoints.h
gfx/skia/include/utils/SkDebugUtils.h
gfx/skia/include/utils/SkDeferredCanvas.h
gfx/skia/include/utils/SkDumpCanvas.h
gfx/skia/include/utils/SkInterpolator.h
gfx/skia/include/utils/SkJSON.h
gfx/skia/include/utils/SkLayer.h
gfx/skia/include/utils/SkMatrix44.h
gfx/skia/include/utils/SkMeshUtils.h
gfx/skia/include/utils/SkNWayCanvas.h
gfx/skia/include/utils/SkNinePatch.h
gfx/skia/include/utils/SkNullCanvas.h
gfx/skia/include/utils/SkParse.h
gfx/skia/include/utils/SkParsePaint.h
gfx/skia/include/utils/SkParsePath.h
gfx/skia/include/utils/SkPictureUtils.h
gfx/skia/include/utils/SkProxyCanvas.h
gfx/skia/include/utils/SkRTConf.h
gfx/skia/include/utils/SkRandom.h
gfx/skia/include/utils/SkRunnable.h
gfx/skia/include/utils/SkThreadPool.h
gfx/skia/include/utils/SkUnitMappers.h
gfx/skia/include/utils/SkWGL.h
gfx/skia/include/utils/ios/SkStream_NSData.h
gfx/skia/include/utils/mac/SkCGUtils.h
gfx/skia/include/utils/win/SkAutoCoInitialize.h
gfx/skia/include/utils/win/SkHRESULT.h
gfx/skia/include/utils/win/SkIStream.h
gfx/skia/include/utils/win/SkTScopedComPtr.h
gfx/skia/include/views/SkApplication.h
gfx/skia/include/views/SkBGViewArtist.h
gfx/skia/include/views/SkEvent.h
gfx/skia/include/views/SkEventSink.h
gfx/skia/include/views/SkKey.h
gfx/skia/include/views/SkOSMenu.h
gfx/skia/include/views/SkOSWindow_Android.h
gfx/skia/include/views/SkOSWindow_Mac.h
gfx/skia/include/views/SkOSWindow_NaCl.h
gfx/skia/include/views/SkOSWindow_SDL.h
gfx/skia/include/views/SkOSWindow_Unix.h
gfx/skia/include/views/SkOSWindow_Win.h
gfx/skia/include/views/SkOSWindow_iOS.h
gfx/skia/include/views/SkStackViewLayout.h
gfx/skia/include/views/SkSystemEventTypes.h
gfx/skia/include/views/SkTextBox.h
gfx/skia/include/views/SkTouchGesture.h
gfx/skia/include/views/SkView.h
gfx/skia/include/views/SkViewInflate.h
gfx/skia/include/views/SkWidget.h
gfx/skia/include/views/SkWindow.h
gfx/skia/include/views/android/AndroidKeyToSkKey.h
gfx/skia/include/views/animated/SkBorderView.h
gfx/skia/include/views/animated/SkImageView.h
gfx/skia/include/views/animated/SkProgressBarView.h
gfx/skia/include/views/animated/SkScrollBarView.h
gfx/skia/include/views/animated/SkWidgetViews.h
gfx/skia/include/views/unix/XkeysToSkKeys.h
gfx/skia/include/views/unix/keysym2ucs.h
gfx/skia/include/xml/SkBML_WXMLParser.h
gfx/skia/include/xml/SkBML_XMLParser.h
gfx/skia/include/xml/SkDOM.h
gfx/skia/include/xml/SkJS.h
gfx/skia/include/xml/SkXMLParser.h
gfx/skia/include/xml/SkXMLWriter.h
gfx/skia/src/animator/SkAnimate.h
gfx/skia/src/animator/SkAnimate3DSchema.xsd
gfx/skia/src/animator/SkAnimate3DSchema.xsx
gfx/skia/src/animator/SkAnimateActive.cpp
gfx/skia/src/animator/SkAnimateActive.h
gfx/skia/src/animator/SkAnimateBase.cpp
gfx/skia/src/animator/SkAnimateBase.h
gfx/skia/src/animator/SkAnimateField.cpp
gfx/skia/src/animator/SkAnimateMaker.cpp
gfx/skia/src/animator/SkAnimateMaker.h
gfx/skia/src/animator/SkAnimateProperties.h
gfx/skia/src/animator/SkAnimateSchema.xsd
gfx/skia/src/animator/SkAnimateSchema.xsx
gfx/skia/src/animator/SkAnimateSet.cpp
gfx/skia/src/animator/SkAnimateSet.h
gfx/skia/src/animator/SkAnimator.cpp
gfx/skia/src/animator/SkAnimatorScript.cpp
gfx/skia/src/animator/SkAnimatorScript.h
gfx/skia/src/animator/SkAnimatorScript2.cpp
gfx/skia/src/animator/SkAnimatorScript2.h
gfx/skia/src/animator/SkBoundable.cpp
gfx/skia/src/animator/SkBoundable.h
gfx/skia/src/animator/SkBuildCondensedInfo.cpp
gfx/skia/src/animator/SkCondensedDebug.cpp
gfx/skia/src/animator/SkCondensedRelease.cpp
gfx/skia/src/animator/SkDisplayAdd.cpp
gfx/skia/src/animator/SkDisplayAdd.h
gfx/skia/src/animator/SkDisplayApply.cpp
gfx/skia/src/animator/SkDisplayApply.h
gfx/skia/src/animator/SkDisplayBounds.cpp
gfx/skia/src/animator/SkDisplayBounds.h
gfx/skia/src/animator/SkDisplayEvent.cpp
gfx/skia/src/animator/SkDisplayEvent.h
gfx/skia/src/animator/SkDisplayEvents.cpp
gfx/skia/src/animator/SkDisplayEvents.h
gfx/skia/src/animator/SkDisplayInclude.cpp
gfx/skia/src/animator/SkDisplayInclude.h
gfx/skia/src/animator/SkDisplayInput.cpp
gfx/skia/src/animator/SkDisplayInput.h
gfx/skia/src/animator/SkDisplayList.cpp
gfx/skia/src/animator/SkDisplayList.h
gfx/skia/src/animator/SkDisplayMath.cpp
gfx/skia/src/animator/SkDisplayMath.h
gfx/skia/src/animator/SkDisplayMovie.cpp
gfx/skia/src/animator/SkDisplayMovie.h
gfx/skia/src/animator/SkDisplayNumber.cpp
gfx/skia/src/animator/SkDisplayNumber.h
gfx/skia/src/animator/SkDisplayPost.cpp
gfx/skia/src/animator/SkDisplayPost.h
gfx/skia/src/animator/SkDisplayRandom.cpp
gfx/skia/src/animator/SkDisplayRandom.h
gfx/skia/src/animator/SkDisplayScreenplay.cpp
gfx/skia/src/animator/SkDisplayScreenplay.h
gfx/skia/src/animator/SkDisplayType.cpp
gfx/skia/src/animator/SkDisplayType.h
gfx/skia/src/animator/SkDisplayTypes.cpp
gfx/skia/src/animator/SkDisplayTypes.h
gfx/skia/src/animator/SkDisplayXMLParser.cpp
gfx/skia/src/animator/SkDisplayXMLParser.h
gfx/skia/src/animator/SkDisplayable.cpp
gfx/skia/src/animator/SkDisplayable.h
gfx/skia/src/animator/SkDraw3D.cpp
gfx/skia/src/animator/SkDraw3D.h
gfx/skia/src/animator/SkDrawBitmap.cpp
gfx/skia/src/animator/SkDrawBitmap.h
gfx/skia/src/animator/SkDrawBlur.cpp
gfx/skia/src/animator/SkDrawBlur.h
gfx/skia/src/animator/SkDrawClip.cpp
gfx/skia/src/animator/SkDrawClip.h
gfx/skia/src/animator/SkDrawColor.cpp
gfx/skia/src/animator/SkDrawColor.h
gfx/skia/src/animator/SkDrawDash.cpp
gfx/skia/src/animator/SkDrawDash.h
gfx/skia/src/animator/SkDrawDiscrete.cpp
gfx/skia/src/animator/SkDrawDiscrete.h
gfx/skia/src/animator/SkDrawEmboss.cpp
gfx/skia/src/animator/SkDrawEmboss.h
gfx/skia/src/animator/SkDrawExtraPathEffect.cpp
gfx/skia/src/animator/SkDrawFull.cpp
gfx/skia/src/animator/SkDrawFull.h
gfx/skia/src/animator/SkDrawGradient.cpp
gfx/skia/src/animator/SkDrawGradient.h
gfx/skia/src/animator/SkDrawGroup.cpp
gfx/skia/src/animator/SkDrawGroup.h
gfx/skia/src/animator/SkDrawLine.cpp
gfx/skia/src/animator/SkDrawLine.h
gfx/skia/src/animator/SkDrawMatrix.cpp
gfx/skia/src/animator/SkDrawMatrix.h
gfx/skia/src/animator/SkDrawOval.cpp
gfx/skia/src/animator/SkDrawOval.h
gfx/skia/src/animator/SkDrawPaint.cpp
gfx/skia/src/animator/SkDrawPaint.h
gfx/skia/src/animator/SkDrawPath.cpp
gfx/skia/src/animator/SkDrawPath.h
gfx/skia/src/animator/SkDrawPoint.cpp
gfx/skia/src/animator/SkDrawPoint.h
gfx/skia/src/animator/SkDrawRectangle.cpp
gfx/skia/src/animator/SkDrawRectangle.h
gfx/skia/src/animator/SkDrawSaveLayer.cpp
gfx/skia/src/animator/SkDrawSaveLayer.h
gfx/skia/src/animator/SkDrawShader.cpp
gfx/skia/src/animator/SkDrawShader.h
gfx/skia/src/animator/SkDrawText.cpp
gfx/skia/src/animator/SkDrawText.h
gfx/skia/src/animator/SkDrawTextBox.cpp
gfx/skia/src/animator/SkDrawTextBox.h
gfx/skia/src/animator/SkDrawTo.cpp
gfx/skia/src/animator/SkDrawTo.h
gfx/skia/src/animator/SkDrawTransparentShader.cpp
gfx/skia/src/animator/SkDrawTransparentShader.h
gfx/skia/src/animator/SkDrawable.cpp
gfx/skia/src/animator/SkDrawable.h
gfx/skia/src/animator/SkDump.cpp
gfx/skia/src/animator/SkDump.h
gfx/skia/src/animator/SkExtraPathEffects.xsd
gfx/skia/src/animator/SkExtras.h
gfx/skia/src/animator/SkGetCondensedInfo.cpp
gfx/skia/src/animator/SkHitClear.cpp
gfx/skia/src/animator/SkHitClear.h
gfx/skia/src/animator/SkHitTest.cpp
gfx/skia/src/animator/SkHitTest.h
gfx/skia/src/animator/SkIntArray.h
gfx/skia/src/animator/SkMatrixParts.cpp
gfx/skia/src/animator/SkMatrixParts.h
gfx/skia/src/animator/SkMemberInfo.cpp
gfx/skia/src/animator/SkMemberInfo.h
gfx/skia/src/animator/SkOpArray.cpp
gfx/skia/src/animator/SkOpArray.h
gfx/skia/src/animator/SkOperand.h
gfx/skia/src/animator/SkOperand2.h
gfx/skia/src/animator/SkOperandInterpolator.h
gfx/skia/src/animator/SkOperandIterpolator.cpp
gfx/skia/src/animator/SkPaintParts.cpp
gfx/skia/src/animator/SkPaintParts.h
gfx/skia/src/animator/SkParseSVGPath.cpp
gfx/skia/src/animator/SkPathParts.cpp
gfx/skia/src/animator/SkPathParts.h
gfx/skia/src/animator/SkPostParts.cpp
gfx/skia/src/animator/SkPostParts.h
gfx/skia/src/animator/SkScript.cpp
gfx/skia/src/animator/SkScript.h
gfx/skia/src/animator/SkScript2.h
gfx/skia/src/animator/SkScriptCallBack.h
gfx/skia/src/animator/SkScriptDecompile.cpp
gfx/skia/src/animator/SkScriptRuntime.cpp
gfx/skia/src/animator/SkScriptRuntime.h
gfx/skia/src/animator/SkScriptTokenizer.cpp
gfx/skia/src/animator/SkSnapshot.cpp
gfx/skia/src/animator/SkSnapshot.h
gfx/skia/src/animator/SkTDArray_Experimental.h
gfx/skia/src/animator/SkTextOnPath.cpp
gfx/skia/src/animator/SkTextOnPath.h
gfx/skia/src/animator/SkTextToPath.cpp
gfx/skia/src/animator/SkTextToPath.h
gfx/skia/src/animator/SkTime.cpp
gfx/skia/src/animator/SkTypedArray.cpp
gfx/skia/src/animator/SkTypedArray.h
gfx/skia/src/animator/SkXMLAnimatorWriter.cpp
gfx/skia/src/animator/SkXMLAnimatorWriter.h
gfx/skia/src/animator/thingstodo.txt
gfx/skia/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h
gfx/skia/src/core/Sk64.cpp
gfx/skia/src/core/SkAAClip.cpp
gfx/skia/src/core/SkAAClip.h
gfx/skia/src/core/SkAdvancedTypefaceMetrics.cpp
gfx/skia/src/core/SkAlphaRuns.cpp
gfx/skia/src/core/SkAnnotation.cpp
gfx/skia/src/core/SkAntiRun.h
gfx/skia/src/core/SkAutoKern.h
gfx/skia/src/core/SkBBoxHierarchy.cpp
gfx/skia/src/core/SkBBoxHierarchy.h
gfx/skia/src/core/SkBBoxHierarchyRecord.cpp
gfx/skia/src/core/SkBBoxHierarchyRecord.h
gfx/skia/src/core/SkBBoxRecord.cpp
gfx/skia/src/core/SkBBoxRecord.h
gfx/skia/src/core/SkBitmap.cpp
gfx/skia/src/core/SkBitmapHeap.cpp
gfx/skia/src/core/SkBitmapHeap.h
gfx/skia/src/core/SkBitmapProcShader.cpp
gfx/skia/src/core/SkBitmapProcShader.h
gfx/skia/src/core/SkBitmapProcState.cpp
gfx/skia/src/core/SkBitmapProcState.h
gfx/skia/src/core/SkBitmapProcState_filter.h
gfx/skia/src/core/SkBitmapProcState_matrix.h
gfx/skia/src/core/SkBitmapProcState_matrixProcs.cpp
gfx/skia/src/core/SkBitmapProcState_procs.h
gfx/skia/src/core/SkBitmapProcState_sample.h
gfx/skia/src/core/SkBitmapProcState_shaderproc.h
gfx/skia/src/core/SkBitmapSampler.cpp
gfx/skia/src/core/SkBitmapSampler.h
gfx/skia/src/core/SkBitmapSamplerTemplate.h
gfx/skia/src/core/SkBitmapShader16BilerpTemplate.h
gfx/skia/src/core/SkBitmapShaderTemplate.h
gfx/skia/src/core/SkBitmap_scroll.cpp
gfx/skia/src/core/SkBlitBWMaskTemplate.h
gfx/skia/src/core/SkBlitMask.h
gfx/skia/src/core/SkBlitMask_D32.cpp
gfx/skia/src/core/SkBlitRow_D16.cpp
gfx/skia/src/core/SkBlitRow_D32.cpp
gfx/skia/src/core/SkBlitRow_D4444.cpp
gfx/skia/src/core/SkBlitter.cpp
gfx/skia/src/core/SkBlitter.h
gfx/skia/src/core/SkBlitter_4444.cpp
gfx/skia/src/core/SkBlitter_A1.cpp
gfx/skia/src/core/SkBlitter_A8.cpp
gfx/skia/src/core/SkBlitter_ARGB32.cpp
gfx/skia/src/core/SkBlitter_RGB16.cpp
gfx/skia/src/core/SkBlitter_Sprite.cpp
gfx/skia/src/core/SkBuffer.cpp
gfx/skia/src/core/SkBuffer.h
gfx/skia/src/core/SkCanvas.cpp
gfx/skia/src/core/SkChunkAlloc.cpp
gfx/skia/src/core/SkClipStack.cpp
gfx/skia/src/core/SkColor.cpp
gfx/skia/src/core/SkColorFilter.cpp
gfx/skia/src/core/SkColorTable.cpp
gfx/skia/src/core/SkComposeShader.cpp
gfx/skia/src/core/SkConfig8888.cpp
gfx/skia/src/core/SkConfig8888.h
gfx/skia/src/core/SkCordic.cpp
gfx/skia/src/core/SkCordic.h
gfx/skia/src/core/SkCoreBlitters.h
gfx/skia/src/core/SkCubicClipper.cpp
gfx/skia/src/core/SkCubicClipper.h
gfx/skia/src/core/SkData.cpp
gfx/skia/src/core/SkDebug.cpp
gfx/skia/src/core/SkDeque.cpp
gfx/skia/src/core/SkDescriptor.h
gfx/skia/src/core/SkDevice.cpp
gfx/skia/src/core/SkDeviceImageFilterProxy.h
gfx/skia/src/core/SkDeviceProfile.cpp
gfx/skia/src/core/SkDeviceProfile.h
gfx/skia/src/core/SkDither.cpp
gfx/skia/src/core/SkDraw.cpp
gfx/skia/src/core/SkDrawProcs.h
gfx/skia/src/core/SkEdge.cpp
gfx/skia/src/core/SkEdge.h
gfx/skia/src/core/SkEdgeBuilder.cpp
gfx/skia/src/core/SkEdgeBuilder.h
gfx/skia/src/core/SkEdgeClipper.cpp
gfx/skia/src/core/SkEdgeClipper.h
gfx/skia/src/core/SkFDStream.cpp
gfx/skia/src/core/SkFDot6.h
gfx/skia/src/core/SkFP.h
gfx/skia/src/core/SkFilterProc.cpp
gfx/skia/src/core/SkFilterProc.h
gfx/skia/src/core/SkFilterShader.h
gfx/skia/src/core/SkFlate.cpp
gfx/skia/src/core/SkFlattenable.cpp
gfx/skia/src/core/SkFlattenableBuffers.cpp
gfx/skia/src/core/SkFloat.cpp
gfx/skia/src/core/SkFloat.h
gfx/skia/src/core/SkFloatBits.cpp
gfx/skia/src/core/SkFontDescriptor.cpp
gfx/skia/src/core/SkFontDescriptor.h
gfx/skia/src/core/SkFontHost.cpp
gfx/skia/src/core/SkFontStream.cpp
gfx/skia/src/core/SkFontStream.h
gfx/skia/src/core/SkGeometry.cpp
gfx/skia/src/core/SkGlyph.h
gfx/skia/src/core/SkGlyphCache.cpp
gfx/skia/src/core/SkGlyphCache.h
gfx/skia/src/core/SkGraphics.cpp
gfx/skia/src/core/SkImageFilter.cpp
gfx/skia/src/core/SkInstCnt.cpp
gfx/skia/src/core/SkLineClipper.cpp
gfx/skia/src/core/SkMallocPixelRef.cpp
gfx/skia/src/core/SkMask.cpp
gfx/skia/src/core/SkMaskFilter.cpp
gfx/skia/src/core/SkMaskGamma.cpp
gfx/skia/src/core/SkMaskGamma.h
gfx/skia/src/core/SkMath.cpp
gfx/skia/src/core/SkMathPriv.h
gfx/skia/src/core/SkMatrix.cpp
gfx/skia/src/core/SkMatrixUtils.h
gfx/skia/src/core/SkMemory_stdlib.cpp
gfx/skia/src/core/SkMetaData.cpp
gfx/skia/src/core/SkOrderedReadBuffer.cpp
gfx/skia/src/core/SkOrderedReadBuffer.h
gfx/skia/src/core/SkOrderedWriteBuffer.cpp
gfx/skia/src/core/SkOrderedWriteBuffer.h
gfx/skia/src/core/SkPackBits.cpp
gfx/skia/src/core/SkPaint.cpp
gfx/skia/src/core/SkPaintDefaults.h
gfx/skia/src/core/SkPaintPriv.cpp
gfx/skia/src/core/SkPaintPriv.h
gfx/skia/src/core/SkPath.cpp
gfx/skia/src/core/SkPathEffect.cpp
gfx/skia/src/core/SkPathHeap.cpp
gfx/skia/src/core/SkPathHeap.h
gfx/skia/src/core/SkPathMeasure.cpp
gfx/skia/src/core/SkPathRef.h
gfx/skia/src/core/SkPerspIter.h
gfx/skia/src/core/SkPicture.cpp
gfx/skia/src/core/SkPictureFlat.cpp
gfx/skia/src/core/SkPictureFlat.h
gfx/skia/src/core/SkPicturePlayback.cpp
gfx/skia/src/core/SkPicturePlayback.h
gfx/skia/src/core/SkPictureRecord.cpp
gfx/skia/src/core/SkPictureRecord.h
gfx/skia/src/core/SkPictureStateTree.cpp
gfx/skia/src/core/SkPictureStateTree.h
gfx/skia/src/core/SkPixelRef.cpp
gfx/skia/src/core/SkPoint.cpp
gfx/skia/src/core/SkProcSpriteBlitter.cpp
gfx/skia/src/core/SkPtrRecorder.cpp
gfx/skia/src/core/SkPtrRecorder.h
gfx/skia/src/core/SkQuadClipper.cpp
gfx/skia/src/core/SkQuadClipper.h
gfx/skia/src/core/SkRRect.cpp
gfx/skia/src/core/SkRTree.cpp
gfx/skia/src/core/SkRTree.h
gfx/skia/src/core/SkRasterClip.cpp
gfx/skia/src/core/SkRasterClip.h
gfx/skia/src/core/SkRasterizer.cpp
gfx/skia/src/core/SkRect.cpp
gfx/skia/src/core/SkRefCnt.cpp
gfx/skia/src/core/SkRefDict.cpp
gfx/skia/src/core/SkRefDict.h
gfx/skia/src/core/SkRegion.cpp
gfx/skia/src/core/SkRegionPriv.h
gfx/skia/src/core/SkRegion_path.cpp
gfx/skia/src/core/SkRegion_rects.cpp
gfx/skia/src/core/SkScalar.cpp
gfx/skia/src/core/SkScalerContext.cpp
gfx/skia/src/core/SkScalerContext.h
gfx/skia/src/core/SkScan.cpp
gfx/skia/src/core/SkScan.h
gfx/skia/src/core/SkScanPriv.h
gfx/skia/src/core/SkScan_AntiPath.cpp
gfx/skia/src/core/SkScan_Antihair.cpp
gfx/skia/src/core/SkScan_Hairline.cpp
gfx/skia/src/core/SkScan_Path.cpp
gfx/skia/src/core/SkShader.cpp
gfx/skia/src/core/SkSinTable.h
gfx/skia/src/core/SkSpriteBlitter.h
gfx/skia/src/core/SkSpriteBlitterTemplate.h
gfx/skia/src/core/SkSpriteBlitter_ARGB32.cpp
gfx/skia/src/core/SkSpriteBlitter_RGB16.cpp
gfx/skia/src/core/SkStream.cpp
gfx/skia/src/core/SkString.cpp
gfx/skia/src/core/SkStringUtils.cpp
gfx/skia/src/core/SkStroke.cpp
gfx/skia/src/core/SkStroke.h
gfx/skia/src/core/SkStrokeRec.cpp
gfx/skia/src/core/SkStrokerPriv.cpp
gfx/skia/src/core/SkStrokerPriv.h
gfx/skia/src/core/SkTLList.h
gfx/skia/src/core/SkTLS.cpp
gfx/skia/src/core/SkTLS.h
gfx/skia/src/core/SkTRefArray.h
gfx/skia/src/core/SkTSearch.cpp
gfx/skia/src/core/SkTSort.h
gfx/skia/src/core/SkTemplatesPriv.h
gfx/skia/src/core/SkTextFormatParams.h
gfx/skia/src/core/SkTextToPathIter.h
gfx/skia/src/core/SkTileGrid.cpp
gfx/skia/src/core/SkTileGrid.h
gfx/skia/src/core/SkTileGridPicture.cpp
gfx/skia/src/core/SkTypeface.cpp
gfx/skia/src/core/SkTypefaceCache.cpp
gfx/skia/src/core/SkTypefaceCache.h
gfx/skia/src/core/SkTypefacePriv.h
gfx/skia/src/core/SkUnPreMultiply.cpp
gfx/skia/src/core/SkUtils.cpp
gfx/skia/src/core/SkUtilsArm.cpp
gfx/skia/src/core/SkUtilsArm.h
gfx/skia/src/core/SkWriter32.cpp
gfx/skia/src/core/SkXfermode.cpp
gfx/skia/src/device/xps/SkXPSDevice.cpp
gfx/skia/src/effects/Sk1DPathEffect.cpp
gfx/skia/src/effects/Sk2DPathEffect.cpp
gfx/skia/src/effects/SkArithmeticMode.cpp
gfx/skia/src/effects/SkAvoidXfermode.cpp
gfx/skia/src/effects/SkBicubicImageFilter.cpp
gfx/skia/src/effects/SkBitmapSource.cpp
gfx/skia/src/effects/SkBlendImageFilter.cpp
gfx/skia/src/effects/SkBlurDrawLooper.cpp
gfx/skia/src/effects/SkBlurImageFilter.cpp
gfx/skia/src/effects/SkBlurMask.cpp
gfx/skia/src/effects/SkBlurMask.h
gfx/skia/src/effects/SkBlurMaskFilter.cpp
gfx/skia/src/effects/SkColorFilterImageFilter.cpp
gfx/skia/src/effects/SkColorFilters.cpp
gfx/skia/src/effects/SkColorMatrix.cpp
gfx/skia/src/effects/SkColorMatrixFilter.cpp
gfx/skia/src/effects/SkCornerPathEffect.cpp
gfx/skia/src/effects/SkDashPathEffect.cpp
gfx/skia/src/effects/SkDiscretePathEffect.cpp
gfx/skia/src/effects/SkDisplacementMapEffect.cpp
gfx/skia/src/effects/SkEmbossMask.cpp
gfx/skia/src/effects/SkEmbossMask.h
gfx/skia/src/effects/SkEmbossMaskFilter.cpp
gfx/skia/src/effects/SkEmbossMask_Table.h
gfx/skia/src/effects/SkImageFilterUtils.cpp
gfx/skia/src/effects/SkKernel33MaskFilter.cpp
gfx/skia/src/effects/SkLayerDrawLooper.cpp
gfx/skia/src/effects/SkLayerRasterizer.cpp
gfx/skia/src/effects/SkLightingImageFilter.cpp
gfx/skia/src/effects/SkMagnifierImageFilter.cpp
gfx/skia/src/effects/SkMatrixConvolutionImageFilter.cpp
gfx/skia/src/effects/SkMergeImageFilter.cpp
gfx/skia/src/effects/SkMorphologyImageFilter.cpp
gfx/skia/src/effects/SkOffsetImageFilter.cpp
gfx/skia/src/effects/SkPaintFlagsDrawFilter.cpp
gfx/skia/src/effects/SkPixelXorXfermode.cpp
gfx/skia/src/effects/SkPorterDuff.cpp
gfx/skia/src/effects/SkRectShaderImageFilter.cpp
gfx/skia/src/effects/SkStippleMaskFilter.cpp
gfx/skia/src/effects/SkTableColorFilter.cpp
gfx/skia/src/effects/SkTableMaskFilter.cpp
gfx/skia/src/effects/SkTestImageFilters.cpp
gfx/skia/src/effects/SkTransparentShader.cpp
gfx/skia/src/effects/gradients/SkBitmapCache.cpp
gfx/skia/src/effects/gradients/SkBitmapCache.h
gfx/skia/src/effects/gradients/SkClampRange.cpp
gfx/skia/src/effects/gradients/SkClampRange.h
gfx/skia/src/effects/gradients/SkGradientShader.cpp
gfx/skia/src/effects/gradients/SkGradientShaderPriv.h
gfx/skia/src/effects/gradients/SkGradientTileProc.cpp
gfx/skia/src/effects/gradients/SkLinearGradient.cpp
gfx/skia/src/effects/gradients/SkLinearGradient.h
gfx/skia/src/effects/gradients/SkRadialGradient.cpp
gfx/skia/src/effects/gradients/SkRadialGradient.h
gfx/skia/src/effects/gradients/SkRadialGradient_Table.h
gfx/skia/src/effects/gradients/SkSweepGradient.cpp
gfx/skia/src/effects/gradients/SkSweepGradient.h
gfx/skia/src/effects/gradients/SkTwoPointConicalGradient.cpp
gfx/skia/src/effects/gradients/SkTwoPointConicalGradient.h
gfx/skia/src/effects/gradients/SkTwoPointRadialGradient.cpp
gfx/skia/src/effects/gradients/SkTwoPointRadialGradient.h
gfx/skia/src/gpu/FlingState.cpp
gfx/skia/src/gpu/GrAAConvexPathRenderer.cpp
gfx/skia/src/gpu/GrAAConvexPathRenderer.h
gfx/skia/src/gpu/GrAAHairLinePathRenderer.cpp
gfx/skia/src/gpu/GrAAHairLinePathRenderer.h
gfx/skia/src/gpu/GrAARectRenderer.cpp
gfx/skia/src/gpu/GrAddPathRenderers_default.cpp
gfx/skia/src/gpu/GrAddPathRenderers_none.cpp
gfx/skia/src/gpu/GrAllocPool.cpp
gfx/skia/src/gpu/GrAllocPool.h
gfx/skia/src/gpu/GrAllocator.h
gfx/skia/src/gpu/GrAtlas.cpp
gfx/skia/src/gpu/GrAtlas.h
gfx/skia/src/gpu/GrBinHashKey.h
gfx/skia/src/gpu/GrBufferAllocPool.cpp
gfx/skia/src/gpu/GrBufferAllocPool.h
gfx/skia/src/gpu/GrCacheID.cpp
gfx/skia/src/gpu/GrClipData.cpp
gfx/skia/src/gpu/GrClipMaskCache.cpp
gfx/skia/src/gpu/GrClipMaskCache.h
gfx/skia/src/gpu/GrClipMaskManager.cpp
gfx/skia/src/gpu/GrClipMaskManager.h
gfx/skia/src/gpu/GrContext.cpp
gfx/skia/src/gpu/GrDefaultPathRenderer.cpp
gfx/skia/src/gpu/GrDefaultPathRenderer.h
gfx/skia/src/gpu/GrDrawState.cpp
gfx/skia/src/gpu/GrDrawState.h
gfx/skia/src/gpu/GrDrawTarget.cpp
gfx/skia/src/gpu/GrDrawTarget.h
gfx/skia/src/gpu/GrDrawTargetCaps.h
gfx/skia/src/gpu/GrEffect.cpp
gfx/skia/src/gpu/GrGeometryBuffer.cpp
gfx/skia/src/gpu/GrGeometryBuffer.h
gfx/skia/src/gpu/GrGpu.cpp
gfx/skia/src/gpu/GrGpu.h
gfx/skia/src/gpu/GrGpuFactory.cpp
gfx/skia/src/gpu/GrInOrderDrawBuffer.cpp
gfx/skia/src/gpu/GrInOrderDrawBuffer.h
gfx/skia/src/gpu/GrIndexBuffer.h
gfx/skia/src/gpu/GrMemory.cpp
gfx/skia/src/gpu/GrMemoryPool.cpp
gfx/skia/src/gpu/GrMemoryPool.h
gfx/skia/src/gpu/GrOvalRenderer.cpp
gfx/skia/src/gpu/GrPath.cpp
gfx/skia/src/gpu/GrPath.h
gfx/skia/src/gpu/GrPathRenderer.cpp
gfx/skia/src/gpu/GrPathRenderer.h
gfx/skia/src/gpu/GrPathRendererChain.cpp
gfx/skia/src/gpu/GrPathUtils.cpp
gfx/skia/src/gpu/GrPathUtils.h
gfx/skia/src/gpu/GrPlotMgr.h
gfx/skia/src/gpu/GrRectanizer.cpp
gfx/skia/src/gpu/GrRectanizer.h
gfx/skia/src/gpu/GrRectanizer_fifo.cpp
gfx/skia/src/gpu/GrRedBlackTree.h
gfx/skia/src/gpu/GrReducedClip.cpp
gfx/skia/src/gpu/GrReducedClip.h
gfx/skia/src/gpu/GrRenderTarget.cpp
gfx/skia/src/gpu/GrResource.cpp
gfx/skia/src/gpu/GrResourceCache.cpp
gfx/skia/src/gpu/GrResourceCache.h
gfx/skia/src/gpu/GrSWMaskHelper.cpp
gfx/skia/src/gpu/GrSWMaskHelper.h
gfx/skia/src/gpu/GrSoftwarePathRenderer.cpp
gfx/skia/src/gpu/GrSoftwarePathRenderer.h
gfx/skia/src/gpu/GrStencil.cpp
gfx/skia/src/gpu/GrStencil.h
gfx/skia/src/gpu/GrStencilAndCoverPathRenderer.cpp
gfx/skia/src/gpu/GrStencilAndCoverPathRenderer.h
gfx/skia/src/gpu/GrStencilBuffer.cpp
gfx/skia/src/gpu/GrStencilBuffer.h
gfx/skia/src/gpu/GrSurface.cpp
gfx/skia/src/gpu/GrTBSearch.h
gfx/skia/src/gpu/GrTHashCache.h
gfx/skia/src/gpu/GrTemplates.h
gfx/skia/src/gpu/GrTextContext.cpp
gfx/skia/src/gpu/GrTextStrike.cpp
gfx/skia/src/gpu/GrTextStrike.h
gfx/skia/src/gpu/GrTextStrike_impl.h
gfx/skia/src/gpu/GrTexture.cpp
gfx/skia/src/gpu/GrTextureAccess.cpp
gfx/skia/src/gpu/GrVertexBuffer.h
gfx/skia/src/gpu/SkGpuDevice.cpp
gfx/skia/src/gpu/SkGr.cpp
gfx/skia/src/gpu/SkGrFontScaler.cpp
gfx/skia/src/gpu/SkGrPixelRef.cpp
gfx/skia/src/gpu/SkGrTexturePixelRef.cpp
gfx/skia/src/gpu/effects/Gr1DKernelEffect.h
gfx/skia/src/gpu/effects/GrConfigConversionEffect.cpp
gfx/skia/src/gpu/effects/GrConfigConversionEffect.h
gfx/skia/src/gpu/effects/GrConvolutionEffect.cpp
gfx/skia/src/gpu/effects/GrConvolutionEffect.h
gfx/skia/src/gpu/effects/GrSimpleTextureEffect.cpp
gfx/skia/src/gpu/effects/GrSimpleTextureEffect.h
gfx/skia/src/gpu/effects/GrSingleTextureEffect.cpp
gfx/skia/src/gpu/effects/GrSingleTextureEffect.h
gfx/skia/src/gpu/effects/GrTextureDomainEffect.cpp
gfx/skia/src/gpu/effects/GrTextureDomainEffect.h
gfx/skia/src/gpu/effects/GrTextureStripAtlas.cpp
gfx/skia/src/gpu/effects/GrTextureStripAtlas.h
gfx/skia/src/gpu/gl/GrGLBufferImpl.cpp
gfx/skia/src/gpu/gl/GrGLBufferImpl.h
gfx/skia/src/gpu/gl/GrGLCaps.cpp
gfx/skia/src/gpu/gl/GrGLCaps.h
gfx/skia/src/gpu/gl/GrGLContext.cpp
gfx/skia/src/gpu/gl/GrGLContext.h
gfx/skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp
gfx/skia/src/gpu/gl/GrGLCreateNullInterface.cpp
gfx/skia/src/gpu/gl/GrGLDefaultInterface_native.cpp
gfx/skia/src/gpu/gl/GrGLDefaultInterface_none.cpp
gfx/skia/src/gpu/gl/GrGLDefines.h
gfx/skia/src/gpu/gl/GrGLEffect.cpp
gfx/skia/src/gpu/gl/GrGLEffect.h
gfx/skia/src/gpu/gl/GrGLEffectMatrix.cpp
gfx/skia/src/gpu/gl/GrGLEffectMatrix.h
gfx/skia/src/gpu/gl/GrGLExtensions.cpp
gfx/skia/src/gpu/gl/GrGLIRect.h
gfx/skia/src/gpu/gl/GrGLIndexBuffer.cpp
gfx/skia/src/gpu/gl/GrGLIndexBuffer.h
gfx/skia/src/gpu/gl/GrGLInterface.cpp
gfx/skia/src/gpu/gl/GrGLNoOpInterface.cpp
gfx/skia/src/gpu/gl/GrGLNoOpInterface.h
gfx/skia/src/gpu/gl/GrGLPath.cpp
gfx/skia/src/gpu/gl/GrGLPath.h
gfx/skia/src/gpu/gl/GrGLProgram.cpp
gfx/skia/src/gpu/gl/GrGLProgram.h
gfx/skia/src/gpu/gl/GrGLProgramDesc.cpp
gfx/skia/src/gpu/gl/GrGLProgramDesc.h
gfx/skia/src/gpu/gl/GrGLRenderTarget.cpp
gfx/skia/src/gpu/gl/GrGLRenderTarget.h
gfx/skia/src/gpu/gl/GrGLSL.cpp
gfx/skia/src/gpu/gl/GrGLSL.h
gfx/skia/src/gpu/gl/GrGLShaderBuilder.cpp
gfx/skia/src/gpu/gl/GrGLShaderBuilder.h
gfx/skia/src/gpu/gl/GrGLShaderVar.h
gfx/skia/src/gpu/gl/GrGLStencilBuffer.cpp
gfx/skia/src/gpu/gl/GrGLStencilBuffer.h
gfx/skia/src/gpu/gl/GrGLTexture.cpp
gfx/skia/src/gpu/gl/GrGLTexture.h
gfx/skia/src/gpu/gl/GrGLUniformHandle.h
gfx/skia/src/gpu/gl/GrGLUniformManager.cpp
gfx/skia/src/gpu/gl/GrGLUniformManager.h
gfx/skia/src/gpu/gl/GrGLUtil.cpp
gfx/skia/src/gpu/gl/GrGLUtil.h
gfx/skia/src/gpu/gl/GrGLVertexArray.cpp
gfx/skia/src/gpu/gl/GrGLVertexArray.h
gfx/skia/src/gpu/gl/GrGLVertexBuffer.cpp
gfx/skia/src/gpu/gl/GrGLVertexBuffer.h
gfx/skia/src/gpu/gl/GrGpuGL.cpp
gfx/skia/src/gpu/gl/GrGpuGL.h
gfx/skia/src/gpu/gl/GrGpuGL_program.cpp
gfx/skia/src/gpu/gl/SkGLContextHelper.cpp
gfx/skia/src/gpu/gl/SkNullGLContext.cpp
gfx/skia/src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp
gfx/skia/src/gpu/gl/android/SkNativeGLContext_android.cpp
gfx/skia/src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp
gfx/skia/src/gpu/gl/angle/SkANGLEGLContext.cpp
gfx/skia/src/gpu/gl/debug/GrBufferObj.cpp
gfx/skia/src/gpu/gl/debug/GrBufferObj.h
gfx/skia/src/gpu/gl/debug/GrDebugGL.cpp
gfx/skia/src/gpu/gl/debug/GrDebugGL.h
gfx/skia/src/gpu/gl/debug/GrFBBindableObj.h
gfx/skia/src/gpu/gl/debug/GrFakeRefObj.h
gfx/skia/src/gpu/gl/debug/GrFrameBufferObj.cpp
gfx/skia/src/gpu/gl/debug/GrFrameBufferObj.h
gfx/skia/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
gfx/skia/src/gpu/gl/debug/GrProgramObj.cpp
gfx/skia/src/gpu/gl/debug/GrProgramObj.h
gfx/skia/src/gpu/gl/debug/GrRenderBufferObj.h
gfx/skia/src/gpu/gl/debug/GrShaderObj.cpp
gfx/skia/src/gpu/gl/debug/GrShaderObj.h
gfx/skia/src/gpu/gl/debug/GrTextureObj.cpp
gfx/skia/src/gpu/gl/debug/GrTextureObj.h
gfx/skia/src/gpu/gl/debug/GrTextureUnitObj.cpp
gfx/skia/src/gpu/gl/debug/GrTextureUnitObj.h
gfx/skia/src/gpu/gl/debug/GrVertexArrayObj.h
gfx/skia/src/gpu/gl/debug/SkDebugGLContext.cpp
gfx/skia/src/gpu/gl/iOS/GrGLCreateNativeInterface_iOS.cpp
gfx/skia/src/gpu/gl/iOS/SkNativeGLContext_iOS.mm
gfx/skia/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp
gfx/skia/src/gpu/gl/mac/SkNativeGLContext_mac.cpp
gfx/skia/src/gpu/gl/mesa/GrGLCreateMesaInterface.cpp
gfx/skia/src/gpu/gl/mesa/SkMesaGLContext.cpp
gfx/skia/src/gpu/gl/mesa/osmesa_wrapper.h
gfx/skia/src/gpu/gl/nacl/SkNativeGLContext_nacl.cpp
gfx/skia/src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp
gfx/skia/src/gpu/gl/unix/SkNativeGLContext_unix.cpp
gfx/skia/src/gpu/gl/win/GrGLCreateNativeInterface_win.cpp
gfx/skia/src/gpu/gl/win/SkNativeGLContext_win.cpp
gfx/skia/src/gpu/gr_unittests.cpp
gfx/skia/src/image/SkDataPixelRef.cpp
gfx/skia/src/image/SkDataPixelRef.h
gfx/skia/src/image/SkImage.cpp
gfx/skia/src/image/SkImagePriv.cpp
gfx/skia/src/image/SkImagePriv.h
gfx/skia/src/image/SkImage_Base.h
gfx/skia/src/image/SkImage_Codec.cpp
gfx/skia/src/image/SkImage_Gpu.cpp
gfx/skia/src/image/SkImage_Picture.cpp
gfx/skia/src/image/SkImage_Raster.cpp
gfx/skia/src/image/SkSurface.cpp
gfx/skia/src/image/SkSurface_Base.h
gfx/skia/src/image/SkSurface_Gpu.cpp
gfx/skia/src/image/SkSurface_Picture.cpp
gfx/skia/src/image/SkSurface_Raster.cpp
gfx/skia/src/images/SkBitmapRegionDecoder.cpp
gfx/skia/src/images/SkImageDecoder.cpp
gfx/skia/src/images/SkImageDecoder_Factory.cpp
gfx/skia/src/images/SkImageDecoder_libbmp.cpp
gfx/skia/src/images/SkImageDecoder_libgif.cpp
gfx/skia/src/images/SkImageDecoder_libico.cpp
gfx/skia/src/images/SkImageDecoder_libjpeg.cpp
gfx/skia/src/images/SkImageDecoder_libpng.cpp
gfx/skia/src/images/SkImageDecoder_libwebp.cpp
gfx/skia/src/images/SkImageDecoder_wbmp.cpp
gfx/skia/src/images/SkImageEncoder.cpp
gfx/skia/src/images/SkImageEncoder_Factory.cpp
gfx/skia/src/images/SkImageRef.cpp
gfx/skia/src/images/SkImageRefPool.cpp
gfx/skia/src/images/SkImageRefPool.h
gfx/skia/src/images/SkImageRef_GlobalPool.cpp
gfx/skia/src/images/SkImageRef_ashmem.cpp
gfx/skia/src/images/SkImageRef_ashmem.h
gfx/skia/src/images/SkImages.cpp
gfx/skia/src/images/SkJpegUtility.cpp
gfx/skia/src/images/SkJpegUtility.h
gfx/skia/src/images/SkMovie.cpp
gfx/skia/src/images/SkMovie_gif.cpp
gfx/skia/src/images/SkPageFlipper.cpp
gfx/skia/src/images/SkScaledBitmapSampler.cpp
gfx/skia/src/images/SkScaledBitmapSampler.h
gfx/skia/src/images/bmpdecoderhelper.cpp
gfx/skia/src/images/bmpdecoderhelper.h
gfx/skia/src/images/transform_scanline.h
gfx/skia/src/lazy/SkBitmapFactory.cpp
gfx/skia/src/lazy/SkLazyPixelRef.cpp
gfx/skia/src/lazy/SkLazyPixelRef.h
gfx/skia/src/lazy/SkLruImageCache.cpp
gfx/skia/src/lazy/SkPurgeableImageCache.cpp
gfx/skia/src/lazy/SkPurgeableMemoryBlock.h
gfx/skia/src/lazy/SkPurgeableMemoryBlock_common.cpp
gfx/skia/src/opts/SkBitmapProcState_arm_neon.cpp
gfx/skia/src/opts/SkBitmapProcState_filter_neon.h
gfx/skia/src/opts/SkBitmapProcState_matrixProcs_neon.cpp
gfx/skia/src/opts/SkBitmapProcState_matrix_clamp_neon.h
gfx/skia/src/opts/SkBitmapProcState_matrix_repeat_neon.h
gfx/skia/src/opts/SkBitmapProcState_opts_SSE2.cpp
gfx/skia/src/opts/SkBitmapProcState_opts_SSE2.h
gfx/skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp
gfx/skia/src/opts/SkBitmapProcState_opts_SSSE3.h
gfx/skia/src/opts/SkBitmapProcState_opts_arm.cpp
gfx/skia/src/opts/SkBitmapProcState_opts_none.cpp
gfx/skia/src/opts/SkBlitRect_opts_SSE2.cpp
gfx/skia/src/opts/SkBlitRect_opts_SSE2.h
gfx/skia/src/opts/SkBlitRow_opts_SSE2.cpp
gfx/skia/src/opts/SkBlitRow_opts_SSE2.h
gfx/skia/src/opts/SkBlitRow_opts_arm.cpp
gfx/skia/src/opts/SkBlitRow_opts_arm.h
gfx/skia/src/opts/SkBlitRow_opts_arm_neon.cpp
gfx/skia/src/opts/SkBlitRow_opts_none.cpp
gfx/skia/src/opts/SkCachePreload_arm.h
gfx/skia/src/opts/SkUtils_opts_SSE2.cpp
gfx/skia/src/opts/SkUtils_opts_SSE2.h
gfx/skia/src/opts/SkUtils_opts_none.cpp
gfx/skia/src/opts/memset.arm.S
gfx/skia/src/opts/memset16_neon.S
gfx/skia/src/opts/memset32_neon.S
gfx/skia/src/opts/opts_check_SSE2.cpp
gfx/skia/src/opts/opts_check_arm.cpp
gfx/skia/src/pdf/SkPDFCatalog.cpp
gfx/skia/src/pdf/SkPDFCatalog.h
gfx/skia/src/pdf/SkPDFDevice.cpp
gfx/skia/src/pdf/SkPDFDocument.cpp
gfx/skia/src/pdf/SkPDFFont.cpp
gfx/skia/src/pdf/SkPDFFont.h
gfx/skia/src/pdf/SkPDFFontImpl.h
gfx/skia/src/pdf/SkPDFFormXObject.cpp
gfx/skia/src/pdf/SkPDFFormXObject.h
gfx/skia/src/pdf/SkPDFGraphicState.cpp
gfx/skia/src/pdf/SkPDFGraphicState.h
gfx/skia/src/pdf/SkPDFImage.cpp
gfx/skia/src/pdf/SkPDFImage.h
gfx/skia/src/pdf/SkPDFPage.cpp
gfx/skia/src/pdf/SkPDFPage.h
gfx/skia/src/pdf/SkPDFShader.cpp
gfx/skia/src/pdf/SkPDFShader.h
gfx/skia/src/pdf/SkPDFStream.cpp
gfx/skia/src/pdf/SkPDFStream.h
gfx/skia/src/pdf/SkPDFTypes.cpp
gfx/skia/src/pdf/SkPDFTypes.h
gfx/skia/src/pdf/SkPDFUtils.cpp
gfx/skia/src/pdf/SkPDFUtils.h
gfx/skia/src/pdf/SkTSet.h
gfx/skia/src/pipe/SkGPipePriv.h
gfx/skia/src/pipe/SkGPipeRead.cpp
gfx/skia/src/pipe/SkGPipeWrite.cpp
gfx/skia/src/pipe/utils/SamplePipeControllers.cpp
gfx/skia/src/pipe/utils/SamplePipeControllers.h
gfx/skia/src/ports/FontHostConfiguration_android.cpp
gfx/skia/src/ports/FontHostConfiguration_android.h
gfx/skia/src/ports/SkDebug_android.cpp
gfx/skia/src/ports/SkDebug_brew.cpp
gfx/skia/src/ports/SkDebug_nacl.cpp
gfx/skia/src/ports/SkDebug_stdio.cpp
gfx/skia/src/ports/SkDebug_win.cpp
gfx/skia/src/ports/SkFontConfigInterface_direct.cpp
gfx/skia/src/ports/SkFontHost_FreeType.cpp
gfx/skia/src/ports/SkFontHost_FreeType_common.cpp
gfx/skia/src/ports/SkFontHost_FreeType_common.h
gfx/skia/src/ports/SkFontHost_android.cpp
gfx/skia/src/ports/SkFontHost_android_old.cpp
gfx/skia/src/ports/SkFontHost_cairo.cpp
gfx/skia/src/ports/SkFontHost_fontconfig.cpp
gfx/skia/src/ports/SkFontHost_linux.cpp
gfx/skia/src/ports/SkFontHost_mac.cpp
gfx/skia/src/ports/SkFontHost_none.cpp
gfx/skia/src/ports/SkFontHost_sandbox_none.cpp
gfx/skia/src/ports/SkFontHost_win.cpp
gfx/skia/src/ports/SkFontHost_win_dw.cpp
gfx/skia/src/ports/SkGlobalInitialization_chromium.cpp
gfx/skia/src/ports/SkGlobalInitialization_default.cpp
gfx/skia/src/ports/SkHarfBuzzFont.cpp
gfx/skia/src/ports/SkImageDecoder_CG.cpp
gfx/skia/src/ports/SkImageDecoder_WIC.cpp
gfx/skia/src/ports/SkImageDecoder_empty.cpp
gfx/skia/src/ports/SkMemory_brew.cpp
gfx/skia/src/ports/SkMemory_malloc.cpp
gfx/skia/src/ports/SkMemory_mozalloc.cpp
gfx/skia/src/ports/SkOSFile_brew.cpp
gfx/skia/src/ports/SkOSFile_stdio.cpp
gfx/skia/src/ports/SkPurgeableMemoryBlock_android.cpp
gfx/skia/src/ports/SkPurgeableMemoryBlock_mac.cpp
gfx/skia/src/ports/SkPurgeableMemoryBlock_none.cpp
gfx/skia/src/ports/SkThread_none.cpp
gfx/skia/src/ports/SkThread_pthread.cpp
gfx/skia/src/ports/SkThread_win.cpp
gfx/skia/src/ports/SkTime_Unix.cpp
gfx/skia/src/ports/SkTime_win.cpp
gfx/skia/src/ports/SkXMLParser_empty.cpp
gfx/skia/src/ports/SkXMLParser_expat.cpp
gfx/skia/src/ports/SkXMLParser_tinyxml.cpp
gfx/skia/src/ports/SkXMLPullParser_expat.cpp
gfx/skia/src/sfnt/SkIBMFamilyClass.h
gfx/skia/src/sfnt/SkOTTableTypes.h
gfx/skia/src/sfnt/SkOTTable_OS_2.h
gfx/skia/src/sfnt/SkOTTable_OS_2_V0.h
gfx/skia/src/sfnt/SkOTTable_OS_2_V1.h
gfx/skia/src/sfnt/SkOTTable_OS_2_V2.h
gfx/skia/src/sfnt/SkOTTable_OS_2_V3.h
gfx/skia/src/sfnt/SkOTTable_OS_2_V4.h
gfx/skia/src/sfnt/SkOTTable_OS_2_VA.h
gfx/skia/src/sfnt/SkOTTable_glyf.h
gfx/skia/src/sfnt/SkOTTable_head.h
gfx/skia/src/sfnt/SkOTTable_hhea.h
gfx/skia/src/sfnt/SkOTTable_loca.h
gfx/skia/src/sfnt/SkOTTable_maxp.h
gfx/skia/src/sfnt/SkOTTable_maxp_CFF.h
gfx/skia/src/sfnt/SkOTTable_maxp_TT.h
gfx/skia/src/sfnt/SkOTTable_name.cpp
gfx/skia/src/sfnt/SkOTTable_name.h
gfx/skia/src/sfnt/SkOTTable_post.h
gfx/skia/src/sfnt/SkOTUtils.cpp
gfx/skia/src/sfnt/SkOTUtils.h
gfx/skia/src/sfnt/SkPanose.h
gfx/skia/src/sfnt/SkPreprocessorSeq.h
gfx/skia/src/sfnt/SkSFNTHeader.h
gfx/skia/src/sfnt/SkTypedEnum.h
gfx/skia/src/svg/SkSVG.cpp
gfx/skia/src/svg/SkSVGCircle.cpp
gfx/skia/src/svg/SkSVGCircle.h
gfx/skia/src/svg/SkSVGClipPath.cpp
gfx/skia/src/svg/SkSVGClipPath.h
gfx/skia/src/svg/SkSVGDefs.cpp
gfx/skia/src/svg/SkSVGDefs.h
gfx/skia/src/svg/SkSVGElements.cpp
gfx/skia/src/svg/SkSVGElements.h
gfx/skia/src/svg/SkSVGEllipse.cpp
gfx/skia/src/svg/SkSVGEllipse.h
gfx/skia/src/svg/SkSVGFeColorMatrix.cpp
gfx/skia/src/svg/SkSVGFeColorMatrix.h
gfx/skia/src/svg/SkSVGFilter.cpp
gfx/skia/src/svg/SkSVGFilter.h
gfx/skia/src/svg/SkSVGG.cpp
gfx/skia/src/svg/SkSVGG.h
gfx/skia/src/svg/SkSVGGradient.cpp
gfx/skia/src/svg/SkSVGGradient.h
gfx/skia/src/svg/SkSVGGroup.cpp
gfx/skia/src/svg/SkSVGGroup.h
gfx/skia/src/svg/SkSVGImage.cpp
gfx/skia/src/svg/SkSVGImage.h
gfx/skia/src/svg/SkSVGLine.cpp
gfx/skia/src/svg/SkSVGLine.h
gfx/skia/src/svg/SkSVGLinearGradient.cpp
gfx/skia/src/svg/SkSVGLinearGradient.h
gfx/skia/src/svg/SkSVGMask.cpp
gfx/skia/src/svg/SkSVGMask.h
gfx/skia/src/svg/SkSVGMetadata.cpp
gfx/skia/src/svg/SkSVGMetadata.h
gfx/skia/src/svg/SkSVGPaintState.cpp
gfx/skia/src/svg/SkSVGParser.cpp
gfx/skia/src/svg/SkSVGPath.cpp
gfx/skia/src/svg/SkSVGPath.h
gfx/skia/src/svg/SkSVGPolygon.cpp
gfx/skia/src/svg/SkSVGPolygon.h
gfx/skia/src/svg/SkSVGPolyline.cpp
gfx/skia/src/svg/SkSVGPolyline.h
gfx/skia/src/svg/SkSVGRadialGradient.cpp
gfx/skia/src/svg/SkSVGRadialGradient.h
gfx/skia/src/svg/SkSVGRect.cpp
gfx/skia/src/svg/SkSVGRect.h
gfx/skia/src/svg/SkSVGSVG.cpp
gfx/skia/src/svg/SkSVGSVG.h
gfx/skia/src/svg/SkSVGStop.cpp
gfx/skia/src/svg/SkSVGStop.h
gfx/skia/src/svg/SkSVGSymbol.cpp
gfx/skia/src/svg/SkSVGSymbol.h
gfx/skia/src/svg/SkSVGText.cpp
gfx/skia/src/svg/SkSVGText.h
gfx/skia/src/svg/SkSVGUse.cpp
gfx/skia/src/svg/SkSVGUse.h
gfx/skia/src/text/SkTextLayout.cpp
gfx/skia/src/utils/SkBase64.cpp
gfx/skia/src/utils/SkBase64.h
gfx/skia/src/utils/SkBitSet.cpp
gfx/skia/src/utils/SkBitSet.h
gfx/skia/src/utils/SkBitmapChecksummer.cpp
gfx/skia/src/utils/SkBitmapChecksummer.h
gfx/skia/src/utils/SkBitmapTransformer.cpp
gfx/skia/src/utils/SkBitmapTransformer.h
gfx/skia/src/utils/SkBoundaryPatch.cpp
gfx/skia/src/utils/SkCamera.cpp
gfx/skia/src/utils/SkCityHash.cpp
gfx/skia/src/utils/SkCityHash.h
gfx/skia/src/utils/SkCondVar.cpp
gfx/skia/src/utils/SkCountdown.cpp
gfx/skia/src/utils/SkCubicInterval.cpp
gfx/skia/src/utils/SkCullPoints.cpp
gfx/skia/src/utils/SkDebugTrace.h
gfx/skia/src/utils/SkDeferredCanvas.cpp
gfx/skia/src/utils/SkDumpCanvas.cpp
gfx/skia/src/utils/SkFloatUtils.h
gfx/skia/src/utils/SkInterpolator.cpp
gfx/skia/src/utils/SkJSON.cpp
gfx/skia/src/utils/SkLayer.cpp
gfx/skia/src/utils/SkMD5.cpp
gfx/skia/src/utils/SkMD5.h
gfx/skia/src/utils/SkMatrix44.cpp
gfx/skia/src/utils/SkMeshUtils.cpp
gfx/skia/src/utils/SkNWayCanvas.cpp
gfx/skia/src/utils/SkNinePatch.cpp
gfx/skia/src/utils/SkNullCanvas.cpp
gfx/skia/src/utils/SkOSFile.cpp
gfx/skia/src/utils/SkParse.cpp
gfx/skia/src/utils/SkParseColor.cpp
gfx/skia/src/utils/SkParsePath.cpp
gfx/skia/src/utils/SkPictureUtils.cpp
gfx/skia/src/utils/SkProxyCanvas.cpp
gfx/skia/src/utils/SkRTConf.cpp
gfx/skia/src/utils/SkSHA1.cpp
gfx/skia/src/utils/SkSHA1.h
gfx/skia/src/utils/SkThreadPool.cpp
gfx/skia/src/utils/SkThreadUtils.h
gfx/skia/src/utils/SkThreadUtils_pthread.cpp
gfx/skia/src/utils/SkThreadUtils_pthread.h
gfx/skia/src/utils/SkThreadUtils_pthread_linux.cpp
gfx/skia/src/utils/SkThreadUtils_pthread_mach.cpp
gfx/skia/src/utils/SkThreadUtils_pthread_other.cpp
gfx/skia/src/utils/SkThreadUtils_win.cpp
gfx/skia/src/utils/SkThreadUtils_win.h
gfx/skia/src/utils/SkUnitMappers.cpp
gfx/skia/src/utils/android/ashmem.cpp
gfx/skia/src/utils/android/ashmem.h
gfx/skia/src/utils/cityhash/README
gfx/skia/src/utils/cityhash/config.h
gfx/skia/src/utils/ios/SkFontHost_iOS.mm
gfx/skia/src/utils/ios/SkImageDecoder_iOS.mm
gfx/skia/src/utils/ios/SkOSFile_iOS.mm
gfx/skia/src/utils/ios/SkStream_NSData.mm
gfx/skia/src/utils/mac/SkBitmap_Mac.cpp
gfx/skia/src/utils/mac/SkCreateCGImageRef.cpp
gfx/skia/src/utils/mac/SkStream_mac.cpp
gfx/skia/src/utils/win/SkAutoCoInitialize.cpp
gfx/skia/src/utils/win/SkDWriteFontFileStream.cpp
gfx/skia/src/utils/win/SkDWriteFontFileStream.h
gfx/skia/src/utils/win/SkDWriteGeometrySink.cpp
gfx/skia/src/utils/win/SkDWriteGeometrySink.h
gfx/skia/src/utils/win/SkHRESULT.cpp
gfx/skia/src/utils/win/SkIStream.cpp
gfx/skia/src/utils/win/SkWGL_win.cpp
gfx/skia/src/views/SkBGViewArtist.cpp
gfx/skia/src/views/SkEvent.cpp
gfx/skia/src/views/SkEventSink.cpp
gfx/skia/src/views/SkOSMenu.cpp
gfx/skia/src/views/SkParsePaint.cpp
gfx/skia/src/views/SkProgressView.cpp
gfx/skia/src/views/SkStackViewLayout.cpp
gfx/skia/src/views/SkTagList.cpp
gfx/skia/src/views/SkTagList.h
gfx/skia/src/views/SkTextBox.cpp
gfx/skia/src/views/SkTouchGesture.cpp
gfx/skia/src/views/SkView.cpp
gfx/skia/src/views/SkViewInflate.cpp
gfx/skia/src/views/SkViewPriv.cpp
gfx/skia/src/views/SkViewPriv.h
gfx/skia/src/views/SkWidgets.cpp
gfx/skia/src/views/SkWindow.cpp
gfx/skia/src/views/animated/SkBorderView.cpp
gfx/skia/src/views/animated/SkImageView.cpp
gfx/skia/src/views/animated/SkProgressBarView.cpp
gfx/skia/src/views/animated/SkScrollBarView.cpp
gfx/skia/src/views/animated/SkStaticTextView.cpp
gfx/skia/src/views/animated/SkWidgetViews.cpp
gfx/skia/src/views/ios/SkOSWindow_iOS.mm
gfx/skia/src/views/mac/SampleApp-Info.plist
gfx/skia/src/views/mac/SampleApp.xib
gfx/skia/src/views/mac/SampleAppDelegate.h
gfx/skia/src/views/mac/SampleAppDelegate.mm
gfx/skia/src/views/mac/SkEventNotifier.h
gfx/skia/src/views/mac/SkEventNotifier.mm
gfx/skia/src/views/mac/SkNSView.h
gfx/skia/src/views/mac/SkNSView.mm
gfx/skia/src/views/mac/SkOSWindow_Mac.cpp
gfx/skia/src/views/mac/SkOSWindow_Mac.mm
gfx/skia/src/views/mac/SkOptionsTableView.h
gfx/skia/src/views/mac/SkOptionsTableView.mm
gfx/skia/src/views/mac/SkSampleNSView.h
gfx/skia/src/views/mac/SkSampleNSView.mm
gfx/skia/src/views/mac/SkTextFieldCell.h
gfx/skia/src/views/mac/SkTextFieldCell.m
gfx/skia/src/views/mac/skia_mac.mm
gfx/skia/src/views/sdl/SkOSWindow_SDL.cpp
gfx/skia/src/views/unix/SkOSWindow_Unix.cpp
gfx/skia/src/views/unix/keysym2ucs.c
gfx/skia/src/views/unix/skia_unix.cpp
gfx/skia/src/views/views_files.mk
gfx/skia/src/views/win/SkOSWindow_win.cpp
gfx/skia/src/views/win/skia_win.cpp
gfx/skia/src/xml/SkBML_Verbs.h
gfx/skia/src/xml/SkBML_XMLParser.cpp
gfx/skia/src/xml/SkDOM.cpp
gfx/skia/src/xml/SkJS.cpp
gfx/skia/src/xml/SkJSDisplayable.cpp
gfx/skia/src/xml/SkXMLParser.cpp
gfx/skia/src/xml/SkXMLPullParser.cpp
gfx/skia/src/xml/SkXMLWriter.cpp
gfx/skia/src/xml/xml_files.mk
--- 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.
 
-Recent Android build system changes from bug 961339 and bug 946083 seem to be needs-clobbery.
+Skia update from Bug 910754 needs a CLOBBER build
--- a/gfx/2d/DrawTargetCG.cpp
+++ b/gfx/2d/DrawTargetCG.cpp
@@ -8,16 +8,17 @@
 #include "Rect.h"
 #include "ScaledFontMac.h"
 #include "Tools.h"
 #include <vector>
 #include <algorithm>
 #include "MacIOSurface.h"
 #include "FilterNodeSoftware.h"
 #include "mozilla/Assertions.h"
+#include "mozilla/FloatingPoint.h"
 
 using namespace std;
 
 //CG_EXTERN void CGContextSetCompositeOperation (CGContextRef, PrivateCGCompositeMode);
 
 // A private API that Cairo has been using for a long time
 CG_EXTERN void CGContextSetCTM(CGContextRef, CGAffineTransform);
 
@@ -408,16 +409,18 @@ DrawTargetCG::CreateGradientStops(Gradie
 }
 
 static void
 UpdateLinearParametersToIncludePoint(double *min_t, double *max_t,
                                      CGPoint *start,
                                      double dx, double dy,
                                      double x, double y)
 {
+  MOZ_ASSERT(IsFinite(x) && IsFinite(y));
+
   /**
    * Compute a parameter t such that a line perpendicular to the (dx,dy)
    * vector, passing through (start->x + dx*t, start->y + dy*t), also
    * passes through (x,y).
    *
    * Let px = x - start->x, py = y - start->y.
    * t is given by
    *   (px - dx*t)*dx + (py - dy*t)*dy = 0
@@ -604,16 +607,20 @@ DrawRadialRepeatingGradient(CGContextRef
   CGContextDrawRadialGradient(cg, gradient, startCenter, startRadius, endCenter, endRadius,
                               kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);
   CGGradientRelease(gradient);
 }
 
 static void
 DrawGradient(CGContextRef cg, const Pattern &aPattern, const CGRect &aExtents)
 {
+  if (CGRectIsEmpty(aExtents)) {
+    return;
+  }
+
   if (aPattern.GetType() == PatternType::LINEAR_GRADIENT) {
     const LinearGradientPattern& pat = static_cast<const LinearGradientPattern&>(aPattern);
     GradientStopsCG *stops = static_cast<GradientStopsCG*>(pat.mStops.get());
     CGContextConcatCTM(cg, GfxMatrixToCGAffineTransform(pat.mMatrix));
     if (stops->mExtend == ExtendMode::CLAMP) {
 
       // XXX: we should take the m out of the properties of LinearGradientPatterns
       CGPoint startPoint = { pat.mBegin.x, pat.mBegin.y };
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -2,17 +2,18 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "DrawTargetSkia.h"
 #include "SourceSurfaceSkia.h"
 #include "ScaledFontBase.h"
 #include "ScaledFontCairo.h"
-#include "skia/SkDevice.h"
+#include "skia/SkGpuDevice.h"
+#include "skia/SkBitmapDevice.h"
 #include "FilterNodeSoftware.h"
 
 #ifdef USE_SKIA_GPU
 #include "skia/SkGpuDevice.h"
 #include "skia/GrGLInterface.h"
 #endif
 
 #include "skia/SkTypeface.h"
@@ -742,19 +743,19 @@ DrawTargetSkia::CopySurface(SourceSurfac
 
   mCanvas->drawBitmapRect(bitmap.mBitmap, &source, dest, &paint);
   mCanvas->restore();
 }
 
 bool
 DrawTargetSkia::Init(const IntSize &aSize, SurfaceFormat aFormat)
 {
-  SkAutoTUnref<SkDevice> device(new SkDevice(GfxFormatToSkiaConfig(aFormat),
-                                             aSize.width, aSize.height,
-                                             aFormat == SurfaceFormat::B8G8R8X8));
+  SkAutoTUnref<SkBaseDevice> device(new SkBitmapDevice(GfxFormatToSkiaConfig(aFormat),
+                                                       aSize.width, aSize.height,
+                                                       aFormat == SurfaceFormat::B8G8R8X8));
 
   SkBitmap bitmap = device->accessBitmap(true);
   if (!bitmap.allocPixels()) {
     return false;
   }
 
   bitmap.eraseARGB(0, 0, 0, 0);
 
@@ -789,17 +790,17 @@ DrawTargetSkia::InitWithGLContextAndGrGL
   targetDescriptor.fWidth = mSize.width;
   targetDescriptor.fHeight = mSize.height;
   targetDescriptor.fConfig = GfxFormatToGrConfig(mFormat);
   targetDescriptor.fOrigin = kBottomLeft_GrSurfaceOrigin;
   targetDescriptor.fSampleCnt = 0;
   targetDescriptor.fRenderTargetHandle = 0; // GLContext always exposes the right framebuffer as id 0
 
   SkAutoTUnref<GrRenderTarget> target(mGrContext->wrapBackendRenderTarget(targetDescriptor));
-  SkAutoTUnref<SkDevice> device(new SkGpuDevice(mGrContext.get(), target.get()));
+  SkAutoTUnref<SkBaseDevice> device(new SkGpuDevice(mGrContext.get(), target.get()));
   SkAutoTUnref<SkCanvas> canvas(new SkCanvas(device.get()));
   mCanvas = canvas.get();
 
   AddGLDrawTarget(this);
 }
 
 void
 DrawTargetSkia::SetCacheLimits(int aCount, int aSizeInBytes)
@@ -807,28 +808,27 @@ DrawTargetSkia::SetCacheLimits(int aCoun
   MOZ_ASSERT(mGrContext, "No GrContext!");
   mGrContext->setTextureCacheLimits(aCount, aSizeInBytes);
 }
 #endif
 
 void
 DrawTargetSkia::Init(unsigned char* aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat)
 {
-  bool isOpaque = false;
+  SkAlphaType alphaType = kPremul_SkAlphaType;
   if (aFormat == SurfaceFormat::B8G8R8X8) {
     // We have to manually set the A channel to be 255 as Skia doesn't understand BGRX
     ConvertBGRXToBGRA(aData, aSize, aStride);
-    isOpaque = true;
+    alphaType = kOpaque_SkAlphaType;
   }
 
   SkBitmap bitmap;
-  bitmap.setConfig(GfxFormatToSkiaConfig(aFormat), aSize.width, aSize.height, aStride);
+  bitmap.setConfig(GfxFormatToSkiaConfig(aFormat), aSize.width, aSize.height, aStride, alphaType);
   bitmap.setPixels(aData);
-  bitmap.setIsOpaque(isOpaque);
-  SkAutoTUnref<SkCanvas> canvas(new SkCanvas(new SkDevice(bitmap)));
+  SkAutoTUnref<SkCanvas> canvas(new SkCanvas(new SkBitmapDevice(bitmap)));
 
   mSize = aSize;
   mCanvas = canvas.get();
   mFormat = aFormat;
 }
 
 void
 DrawTargetSkia::SetTransform(const Matrix& aTransform)
--- a/gfx/2d/Scale.cpp
+++ b/gfx/2d/Scale.cpp
@@ -13,29 +13,28 @@
 namespace mozilla {
 namespace gfx {
 
 bool Scale(uint8_t* srcData, int32_t srcWidth, int32_t srcHeight, int32_t srcStride,
            uint8_t* dstData, int32_t dstWidth, int32_t dstHeight, int32_t dstStride,
            SurfaceFormat format)
 {
 #ifdef USE_SKIA
-  bool opaque;
+  SkAlphaType alphaType;
   if (format == SurfaceFormat::B8G8R8A8) {
-    opaque = false;
+    alphaType = kPremul_SkAlphaType;
   } else {
-    opaque = true;
+    alphaType = kOpaque_SkAlphaType;
   }
 
   SkBitmap::Config config = GfxFormatToSkiaConfig(format);
 
   SkBitmap imgSrc;
-  imgSrc.setConfig(config, srcWidth, srcHeight, srcStride);
+  imgSrc.setConfig(config, srcWidth, srcHeight, srcStride, alphaType);
   imgSrc.setPixels(srcData);
-  imgSrc.setIsOpaque(opaque);
 
   // Rescaler is compatible with 32 bpp only. Convert to RGB32 if needed.
   if (config != SkBitmap::kARGB_8888_Config) {
     imgSrc.copyTo(&imgSrc, SkBitmap::kARGB_8888_Config);
   }
 
   // This returns an SkBitmap backed by dstData; since it also wrote to dstData,
   // we don't need to look at that SkBitmap.
--- a/gfx/2d/SourceSurfaceSkia.cpp
+++ b/gfx/2d/SourceSurfaceSkia.cpp
@@ -73,17 +73,17 @@ SourceSurfaceSkia::InitFromData(unsigned
   }
 
   if (aFormat == SurfaceFormat::B8G8R8X8) {
     mBitmap.lockPixels();
     // We have to manually set the A channel to be 255 as Skia doesn't understand BGRX
     ConvertBGRXToBGRA(reinterpret_cast<unsigned char*>(mBitmap.getPixels()), aSize, mBitmap.rowBytes());
     mBitmap.unlockPixels();
     mBitmap.notifyPixelsChanged();
-    mBitmap.setIsOpaque(true);
+    mBitmap.setAlphaType(kOpaque_SkAlphaType);
   }
 
   mSize = aSize;
   mFormat = aFormat;
   mStride = mBitmap.rowBytes();
   return true;
 }
 
--- a/gfx/2d/image_operations.cpp
+++ b/gfx/2d/image_operations.cpp
@@ -465,17 +465,17 @@ SkBitmap ImageOperations::ResizeSubpixel
       a = a > r ? a : r;
       a = a > g ? a : g;
       a = a > b ? a : b;
       *dst = SkPackARGB32(a, r, g, b);
     }
     src_row += h * row_words;
     dst_row += result.rowBytes() / 4;
   }
-  result.setIsOpaque(img.isOpaque());
+  result.setAlphaType(img.alphaType());
   return result;
 #else
   return SkBitmap();
 #endif  // OS_POSIX && !OS_MACOSX && !defined(OS_ANDROID)
 }
 
 // static
 SkBitmap ImageOperations::ResizeBasic(const SkBitmap& source,
@@ -529,17 +529,17 @@ SkBitmap ImageOperations::ResizeBasic(co
 
   BGRAConvolve2D(source_subset, static_cast<int>(source.rowBytes()),
                  !source.isOpaque(), filter.x_filter(), filter.y_filter(),
                  static_cast<int>(result.rowBytes()),
                  static_cast<unsigned char*>(result.getPixels()),
                  /* sse = */ false);
 
   // Preserve the "opaque" flag for use as an optimization later.
-  result.setIsOpaque(source.isOpaque());
+  result.setAlphaType(source.alphaType());
 
   return result;
 }
 
 // static
 SkBitmap ImageOperations::Resize(const SkBitmap& source,
                                  ResizeMethod method,
                                  int dest_width, int dest_height,
--- a/gfx/gl/GLContext.cpp
+++ b/gfx/gl/GLContext.cpp
@@ -494,16 +494,29 @@ GLContext::InitWithPrefix(const char *pr
             SymLoadStruct symbols_desktop[] = {
                 { (PRFuncPtr*) &mSymbols.fClearDepth, { "ClearDepth", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fDepthRange, { "DepthRange", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fReadBuffer, { "ReadBuffer", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fMapBuffer, { "MapBuffer", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fUnmapBuffer, { "UnmapBuffer", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fPointParameterf, { "PointParameterf", nullptr } },
                 { (PRFuncPtr*) &mSymbols.fDrawBuffer, { "DrawBuffer", nullptr } },
+                    // These functions are only used by Skia/GL in desktop mode.
+                    // Other parts of Gecko should avoid using these
+                    { (PRFuncPtr*) &mSymbols.fDrawBuffers, { "DrawBuffers", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fClientActiveTexture, { "ClientActiveTexture", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fDisableClientState, { "DisableClientState", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fEnableClientState, { "EnableClientState", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fLoadIdentity, { "LoadIdentity", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fLoadMatrixf, { "LoadMatrixf", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fMatrixMode, { "MatrixMode", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fTexGeni, { "TexGeni", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fTexGenf, { "TexGenf", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fTexGenfv, { "TexGenfv", nullptr } },
+                    { (PRFuncPtr*) &mSymbols.fVertexPointer, { "VertexPointer", nullptr } },
                 { nullptr, { nullptr } },
             };
 
             if (!LoadSymbols(&symbols_desktop[0], trygl, prefix)) {
                 NS_ERROR("Desktop symbols failed to load.");
                 mInitialized = false;
             }
         }
--- a/gfx/gl/GLContext.h
+++ b/gfx/gl/GLContext.h
@@ -857,16 +857,22 @@ public:
     }
 
     void fClearStencil(GLint s) {
         BEFORE_GL_CALL;
         mSymbols.fClearStencil(s);
         AFTER_GL_CALL;
     }
 
+    void fClientActiveTexture(GLenum texture) {
+        BEFORE_GL_CALL;
+        mSymbols.fClientActiveTexture(texture);
+        AFTER_GL_CALL;
+    }
+
     void fColorMask(realGLboolean red, realGLboolean green, realGLboolean blue, realGLboolean alpha) {
         BEFORE_GL_CALL;
         mSymbols.fColorMask(red, green, blue, alpha);
         AFTER_GL_CALL;
     }
 
     void fCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *pixels) {
         BEFORE_GL_CALL;
@@ -949,16 +955,22 @@ public:
     }
 
     void fDisable(GLenum capability) {
         BEFORE_GL_CALL;
         mSymbols.fDisable(capability);
         AFTER_GL_CALL;
     }
 
+    void fDisableClientState(GLenum capability) {
+        BEFORE_GL_CALL;
+        mSymbols.fDisableClientState(capability);
+        AFTER_GL_CALL;
+    }
+
     void fDisableVertexAttribArray(GLuint index) {
         BEFORE_GL_CALL;
         mSymbols.fDisableVertexAttribArray(index);
         AFTER_GL_CALL;
     }
 
     void fDrawBuffer(GLenum mode) {
         BEFORE_GL_CALL;
@@ -993,16 +1005,22 @@ public:
     }
 
     void fEnable(GLenum capability) {
         BEFORE_GL_CALL;
         mSymbols.fEnable(capability);
         AFTER_GL_CALL;
     }
 
+    void fEnableClientState(GLenum capability) {
+        BEFORE_GL_CALL;
+        mSymbols.fEnableClientState(capability);
+        AFTER_GL_CALL;
+    }
+
     void fEnableVertexAttribArray(GLuint index) {
         BEFORE_GL_CALL;
         mSymbols.fEnableVertexAttribArray(index);
         AFTER_GL_CALL;
     }
 
     void fEndQuery(GLenum target) {
         BEFORE_GL_CALL;
@@ -1338,16 +1356,34 @@ public:
 
     void fObjectPtrLabel(const GLvoid* ptr, GLsizei length, const GLchar* label) {
         BEFORE_GL_CALL;
         ASSERT_SYMBOL_PRESENT(fObjectPtrLabel);
         mSymbols.fObjectPtrLabel(ptr, length, label);
         AFTER_GL_CALL;
     }
 
+    void fLoadIdentity() {
+        BEFORE_GL_CALL;
+        mSymbols.fLoadIdentity();
+        AFTER_GL_CALL;
+    }
+
+    void fLoadMatrixf(const GLfloat *matrix) {
+        BEFORE_GL_CALL;
+        mSymbols.fLoadMatrixf(matrix);
+        AFTER_GL_CALL;
+    }
+
+    void fMatrixMode(GLenum mode) {
+        BEFORE_GL_CALL;
+        mSymbols.fMatrixMode(mode);
+        AFTER_GL_CALL;
+    }
+
     void fPixelStorei(GLenum pname, GLint param) {
         BEFORE_GL_CALL;
         mSymbols.fPixelStorei(pname, param);
         AFTER_GL_CALL;
     }
 
     void fTextureRangeAPPLE(GLenum target, GLsizei length, GLvoid *pointer) {
         BEFORE_GL_CALL;
@@ -1465,16 +1501,34 @@ public:
     }
 
     void fStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {
         BEFORE_GL_CALL;
         mSymbols.fStencilOpSeparate(face, sfail, dpfail, dppass);
         AFTER_GL_CALL;
     }
 
+    void fTexGeni(GLenum coord, GLenum pname, GLint param) {
+        BEFORE_GL_CALL;
+        mSymbols.fTexGeni(coord, pname, param);
+        AFTER_GL_CALL;
+    }
+
+    void fTexGenf(GLenum coord, GLenum pname, GLfloat param) {
+        BEFORE_GL_CALL;
+        mSymbols.fTexGenf(coord, pname, param);
+        AFTER_GL_CALL;
+    }
+
+    void fTexGenfv(GLenum coord, GLenum pname, const GLfloat *params) {
+        BEFORE_GL_CALL;
+        mSymbols.fTexGenfv(coord, pname, params);
+        AFTER_GL_CALL;
+    }
+
 private:
     void raw_fTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
         BEFORE_GL_CALL;
         mSymbols.fTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
         AFTER_GL_CALL;
     }
 
 public:
@@ -1671,16 +1725,22 @@ public:
     }
 
     void fVertexAttrib4fv(GLuint index, const GLfloat* v) {
         BEFORE_GL_CALL;
         mSymbols.fVertexAttrib4fv(index, v);
         AFTER_GL_CALL;
     }
 
+    void fVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) {
+        BEFORE_GL_CALL;
+        mSymbols.fVertexPointer(size, type, stride, pointer);
+        AFTER_GL_CALL;
+    }
+
     void fCompileShader(GLuint shader) {
         BEFORE_GL_CALL;
         mSymbols.fCompileShader(shader);
         AFTER_GL_CALL;
     }
 
 private:
     void raw_fCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
--- a/gfx/gl/GLContextSkia.cpp
+++ b/gfx/gl/GLContextSkia.cpp
@@ -120,16 +120,22 @@ GrGLvoid glColorMask_mozilla(GrGLboolean
     return sGLContext.get()->fColorMask(red, green, blue, alpha);
 }
 
 GrGLvoid glCompileShader_mozilla(GrGLuint shader)
 {
     return sGLContext.get()->fCompileShader(shader);
 }
 
+GrGLvoid glCopyTexSubImage2D_mozilla(GrGLenum target, GrGLint level, GrGLint xoffset, GrGLint yoffset,
+                                     GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height)
+{
+    return sGLContext.get()->fCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
 GrGLuint glCreateProgram_mozilla(void)
 {
     return sGLContext.get()->fCreateProgram();
 }
 
 GrGLuint glCreateShader_mozilla(GrGLenum type)
 {
     return sGLContext.get()->fCreateShader(type);
@@ -245,16 +251,21 @@ GrGLvoid glGenRenderbuffers_mozilla(GrGL
     return sGLContext.get()->fGenRenderbuffers(n, renderbuffers);
 }
 
 GrGLvoid glGenTextures_mozilla(GrGLsizei n, GrGLuint* textures)
 {
     return sGLContext.get()->fGenTextures(n, textures);
 }
 
+GrGLvoid glGenerateMipmap_mozilla(GrGLenum target)
+{
+    return sGLContext.get()->fGenerateMipmap(target);
+}
+
 GrGLvoid glGetBufferParameteriv_mozilla(GrGLenum target, GrGLenum pname, GrGLint* params)
 {
     return sGLContext.get()->fGetBufferParameteriv(target, pname, params);
 }
 
 GrGLvoid glGetFramebufferAttachmentParameteriv_mozilla(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params)
 {
     return sGLContext.get()->fGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
@@ -705,16 +716,67 @@ GrGLvoid glBindVertexArray_mozilla(GrGLu
 GrGLvoid glDeleteVertexArrays_mozilla(GrGLsizei n, const GrGLuint *arrays) {
     return sGLContext.get()->fDeleteVertexArrays(n, arrays);
 }
 
 GrGLvoid glGenVertexArrays_mozilla(GrGLsizei n, GrGLuint *arrays) {
     return sGLContext.get()->fGenVertexArrays(n, arrays);
 }
 
+// Additional functions required for desktop GL < version 3.2
+
+GrGLvoid glClientActiveTexture_mozilla(GrGLenum texture)
+{
+    return sGLContext.get()->fClientActiveTexture(texture);
+}
+
+GrGLvoid glDisableClientState_mozilla(GrGLenum capability)
+{
+    return sGLContext.get()->fDisableClientState(capability);
+}
+
+GrGLvoid glEnableClientState_mozilla(GrGLenum capability)
+{
+    return sGLContext.get()->fEnableClientState(capability);
+}
+
+GrGLvoid glLoadMatrixf_mozilla(const GLfloat* matrix)
+{
+    return sGLContext.get()->fLoadMatrixf(matrix);
+}
+
+GrGLvoid glLoadIdentity_mozilla()
+{
+    return sGLContext.get()->fLoadIdentity();
+}
+
+GrGLvoid glMatrixMode_mozilla(GrGLenum mode)
+{
+    return sGLContext.get()->fMatrixMode(mode);
+}
+
+GrGLvoid glTexGeni_mozilla(GrGLenum coord, GrGLenum pname, GrGLint param)
+{
+    return sGLContext.get()->fTexGeni(coord, pname, param);
+}
+
+GrGLvoid glTexGenf_mozilla(GrGLenum coord, GrGLenum pname, GrGLfloat param)
+{
+    return sGLContext.get()->fTexGenf(coord, pname, param);
+}
+
+GrGLvoid glTexGenfv_mozilla(GrGLenum coord, GrGLenum pname, const GrGLfloat* param)
+{
+    return sGLContext.get()->fTexGenfv(coord, pname, param);
+}
+
+GrGLvoid glVertexPointer_mozilla(GrGLint size, GrGLenum type, GrGLsizei stride, const GrGLvoid* pointer)
+{
+    return sGLContext.get()->fVertexPointer(size, type, stride, pointer);
+}
 
 } // extern "C"
 
 GrGLInterface* CreateGrGLInterfaceFromGLContext(GLContext* context)
 {
     GrGLInterface* i = new GrGLInterface();
     i->fCallback = EnsureGLContext;
     i->fCallbackData = 0; // must be later initialized to be a valid DrawTargetSkia* pointer
@@ -732,16 +794,17 @@ GrGLInterface* CreateGrGLInterfaceFromGL
     i->fBufferData = glBufferData_mozilla;
     i->fBufferSubData = glBufferSubData_mozilla;
     i->fCheckFramebufferStatus = glCheckFramebufferStatus_mozilla;
     i->fClear = glClear_mozilla;
     i->fClearColor = glClearColor_mozilla;
     i->fClearStencil = glClearStencil_mozilla;
     i->fColorMask = glColorMask_mozilla;
     i->fCompileShader = glCompileShader_mozilla;
+    i->fCopyTexSubImage2D = glCopyTexSubImage2D_mozilla;
     i->fCreateProgram = glCreateProgram_mozilla;
     i->fCreateShader = glCreateShader_mozilla;
     i->fCullFace = glCullFace_mozilla;
     i->fDeleteBuffers = glDeleteBuffers_mozilla;
     i->fDeleteFramebuffers = glDeleteFramebuffers_mozilla;
     i->fDeleteProgram = glDeleteProgram_mozilla;
     i->fDeleteRenderbuffers = glDeleteRenderbuffers_mozilla;
     i->fDeleteShader = glDeleteShader_mozilla;
@@ -758,16 +821,17 @@ GrGLInterface* CreateGrGLInterfaceFromGL
     i->fFramebufferRenderbuffer = glFramebufferRenderbuffer_mozilla;
     i->fFramebufferTexture2D = glFramebufferTexture2D_mozilla;
     i->fFrontFace = glFrontFace_mozilla;
     i->fGenBuffers = glGenBuffers_mozilla;
     i->fGenFramebuffers = glGenFramebuffers_mozilla;
     i->fGenRenderbuffers = glGenRenderbuffers_mozilla;
     i->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameteriv_mozilla;
     i->fGenTextures = glGenTextures_mozilla;
+    i->fGenerateMipmap = glGenerateMipmap_mozilla;
     i->fGetBufferParameteriv = glGetBufferParameteriv_mozilla;
     i->fGetError = glGetError_mozilla;
     i->fGetIntegerv = glGetIntegerv_mozilla;
     i->fGetProgramInfoLog = glGetProgramInfoLog_mozilla;
     i->fGetProgramiv = glGetProgramiv_mozilla;
     i->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv_mozilla;
     i->fGetShaderInfoLog = glGetShaderInfoLog_mozilla;
     i->fGetShaderiv = glGetShaderiv_mozilla;
@@ -844,16 +908,28 @@ GrGLInterface* CreateGrGLInterfaceFromGL
     i->fEndQuery = glEndQuery_mozilla;
     i->fGetQueryiv = glGetQueryiv_mozilla;
     i->fGetQueryObjectiv = glGetQueryObjectiv_mozilla;
     i->fGetQueryObjectuiv = glGetQueryObjectuiv_mozilla;
 
     // Desktop OpenGL > 2.0
     i->fDrawBuffers = glDrawBuffers_mozilla;
 
+    // Desktop OpenGL < 3.2 (which we pretend to be)
+    i->fClientActiveTexture = glClientActiveTexture_mozilla;
+    i->fDisableClientState = glDisableClientState_mozilla;
+    i->fEnableClientState = glEnableClientState_mozilla;
+    i->fLoadIdentity = glLoadIdentity_mozilla;
+    i->fLoadMatrixf = glLoadMatrixf_mozilla;
+    i->fMatrixMode = glMatrixMode_mozilla;
+    i->fTexGenf = glTexGenf_mozilla;
+    i->fTexGenfv = glTexGenfv_mozilla;
+    i->fTexGeni = glTexGeni_mozilla;
+    i->fVertexPointer = glVertexPointer_mozilla;
+
     // We support both desktop GL and GLES2
     if (context->IsGLES2()) {
         i->fBindingsExported = kES2_GrGLBinding;
     } else {
         i->fBindingsExported = kDesktop_GrGLBinding;
     }
 
     return i;
--- a/gfx/gl/GLContextSymbols.h
+++ b/gfx/gl/GLContextSymbols.h
@@ -308,16 +308,41 @@ struct GLContextSymbols
     PFNGLISFRAMEBUFFER fIsFramebuffer;
     typedef realGLboolean (GLAPIENTRY * PFNGLISRENDERBUFFER) (GLuint renderbuffer);
     PFNGLISRENDERBUFFER fIsRenderbuffer;
     typedef realGLboolean (GLAPIENTRY * PFNGLISVERTEXARRAY) (GLuint array);
     PFNGLISVERTEXARRAY fIsVertexArray;
     typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGE) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
     PFNGLRENDERBUFFERSTORAGE fRenderbufferStorage;
 
+        // These functions are only used by Skia/GL in desktop mode.
+        // Other parts of Gecko should avoid using these
+        typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTURE) (GLenum texture);
+        PFNGLCLIENTACTIVETEXTURE fClientActiveTexture;
+        typedef void (GLAPIENTRY * PFNDISABLECLIENTSTATE) (GLenum capability);
+        PFNDISABLECLIENTSTATE fDisableClientState;
+        typedef void (GLAPIENTRY * PFNENABLECLIENTSTATE) (GLenum capability);
+        PFNENABLECLIENTSTATE fEnableClientState;
+        typedef void (GLAPIENTRY * PFNLOADIDENTITY) (void);
+        PFNLOADIDENTITY fLoadIdentity;
+        typedef void (GLAPIENTRY * PFNLOADMATRIXD) (const GLdouble* matrix);
+        PFNLOADMATRIXD fLoadMatrixd;
+        typedef void (GLAPIENTRY * PFNLOADMATRIXF) (const GLfloat* matrix);
+        PFNLOADMATRIXF fLoadMatrixf;
+        typedef void (GLAPIENTRY * PFNMATRIXMODE) (GLenum mode);
+        PFNMATRIXMODE fMatrixMode;
+        typedef void (GLAPIENTRY * PFNTEXGENI) (GLenum coord, GLenum pname, GLint param);
+        PFNTEXGENI fTexGeni;
+        typedef void (GLAPIENTRY * PFNTEXGENF) (GLenum coord, GLenum pname, GLfloat param);
+        PFNTEXGENF fTexGenf;
+        typedef void (GLAPIENTRY * PFNTEXGENFV) (GLenum coord, GLenum pname, const GLfloat* param);
+        PFNTEXGENFV fTexGenfv;
+        typedef void (GLAPIENTRY * PFNVERTEXPOINTER) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+        PFNVERTEXPOINTER fVertexPointer;
+
     typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFER) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
     PFNGLBLITFRAMEBUFFER fBlitFramebuffer;
     typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLE) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
     PFNGLRENDERBUFFERSTORAGEMULTISAMPLE fRenderbufferStorageMultisample;
 
 
     /* These are different between GLES2 and desktop GL; we hide those differences, use the GL
      * names, but the most limited data type.
--- a/gfx/layers/Layers.cpp
+++ b/gfx/layers/Layers.cpp
@@ -808,19 +808,23 @@ ContainerLayer::RepositionChild(Layer* a
   Layer* prev = aChild->GetPrevSibling();
   Layer* next = aChild->GetNextSibling();
   if (prev == aAfter) {
     // aChild is already in the correct position, nothing to do.
     return;
   }
   if (prev) {
     prev->SetNextSibling(next);
+  } else {
+    mFirstChild = next;
   }
   if (next) {
     next->SetPrevSibling(prev);
+  } else {
+    mLastChild = prev;
   }
   if (!aAfter) {
     aChild->SetPrevSibling(nullptr);
     aChild->SetNextSibling(mFirstChild);
     if (mFirstChild) {
       mFirstChild->SetPrevSibling(aChild);
     }
     mFirstChild = aChild;
--- a/gfx/skia/Makefile.in
+++ b/gfx/skia/Makefile.in
@@ -14,20 +14,23 @@ endif
 ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
 OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS)
 endif
 
 include $(topsrcdir)/config/rules.mk
 
 ifneq (,$(INTEL_ARCHITECTURE))
 ifdef GNU_CC
+SkBitmapFilter_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
 SkBitmapProcState_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
 SkBitmapProcState_opts_SSSE3.$(OBJ_SUFFIX): CXXFLAGS+=-mssse3
+SkBlitRect_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
 SkBlitRow_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
-SkBlitRect_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
+SkBlurImage_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
+SkMorphology_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
 SkUtils_opts_SSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2
 endif
 endif
 
 ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1)
 # The assembly uses the frame pointer register (r7 in Thumb/r11 in
 # ARM), the compiler doesn't like that.
 CXXFLAGS := $(filter-out -fno-omit-frame-pointer,$(CXXFLAGS)) -fomit-frame-pointer
--- a/gfx/skia/README_MOZILLA
+++ b/gfx/skia/README_MOZILLA
@@ -1,5 +1,15 @@
 The source from this directory was copied from the skia subversion trunk
 using the update.sh script. The changes made were those applied by update.sh,
 the addition/update of Makefile.in files for the Mozilla build system.
 
-The subversion revision used was r8495.
+The subversion revision used was r13424.
+
+To update to a new version of Skia:
+
+- Copy the entire trunk/ directory from a Skia clone to mozilla-central/gfx/skia
+- cd gfx/skia && ./gyp_mozbuild
+
+Once that's done, use git status to view the files that have changed. Keep an eye on GrUserConfig.h
+and SkUserConfig.h as those probably don't want to be overwritten by upstream versions.
+
+This process will be made more automatic in the future.
new file mode 100644
--- /dev/null
+++ b/gfx/skia/dump_mozbuild.py
@@ -0,0 +1,92 @@
+# Copyright (c) 2012 Google Inc. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import collections
+import os
+import gyp
+import gyp.common
+import gyp.msvs_emulation
+import json
+import sys
+
+generator_supports_multiple_toolsets = True
+
+generator_wants_static_library_dependencies_adjusted = False
+
+generator_default_variables = {
+}
+for dirname in ['INTERMEDIATE_DIR', 'SHARED_INTERMEDIATE_DIR', 'PRODUCT_DIR',
+                'LIB_DIR', 'SHARED_LIB_DIR']:
+  # Some gyp steps fail if these are empty(!).
+  generator_default_variables[dirname] = 'dir'
+for unused in ['RULE_INPUT_PATH', 'RULE_INPUT_ROOT', 'RULE_INPUT_NAME',
+               'RULE_INPUT_DIRNAME', 'RULE_INPUT_EXT',
+               'EXECUTABLE_PREFIX', 'EXECUTABLE_SUFFIX',
+               'STATIC_LIB_PREFIX', 'STATIC_LIB_SUFFIX',
+               'SHARED_LIB_PREFIX', 'SHARED_LIB_SUFFIX',
+               'CONFIGURATION_NAME']:
+  generator_default_variables[unused] = ''
+
+
+def CalculateVariables(default_variables, params):
+  generator_flags = params.get('generator_flags', {})
+  for key, val in generator_flags.items():
+    default_variables.setdefault(key, val)
+  default_variables.setdefault('OS', gyp.common.GetFlavor(params))
+
+  flavor = gyp.common.GetFlavor(params)
+  if flavor =='win':
+    # Copy additional generator configuration data from VS, which is shared
+    # by the Windows Ninja generator.
+    import gyp.generator.msvs as msvs_generator
+    generator_additional_non_configuration_keys = getattr(msvs_generator,
+        'generator_additional_non_configuration_keys', [])
+    generator_additional_path_sections = getattr(msvs_generator,
+        'generator_additional_path_sections', [])
+
+    gyp.msvs_emulation.CalculateCommonVariables(default_variables, params)
+
+
+def CalculateGeneratorInputInfo(params):
+  """Calculate the generator specific info that gets fed to input (called by
+  gyp)."""
+  generator_flags = params.get('generator_flags', {})
+  if generator_flags.get('adjust_static_libraries', False):
+    global generator_wants_static_library_dependencies_adjusted
+    generator_wants_static_library_dependencies_adjusted = True
+
+def GetOS(params):
+  for d in params['defines']:
+    pass
+
+def GenerateOutput(target_list, target_dicts, data, params):
+  # Map of target -> list of targets it depends on.
+  edges = {}
+
+  # Queue of targets to visit.
+  targets_to_visit = target_list[:]
+
+  sources = [];
+
+  while len(targets_to_visit) > 0:
+    target = targets_to_visit.pop()
+    if target in edges:
+      continue
+    edges[target] = []
+
+    target_sources = target_dicts[target].get('sources')
+    if target_sources:
+      for source in target_sources:
+        if source.endswith('.cpp'):
+          sources.append(source)
+
+    for dep in target_dicts[target].get('dependencies', []):
+      edges[target].append(dep)
+      targets_to_visit.append(dep)
+
+  skia_os = data['gyp/core.gyp']['variables']['skia_os%']
+
+  f = open('sources.json', 'w')
+  json.dump(sources, f)
+  f.close()
\ No newline at end of file
new file mode 100755
--- /dev/null
+++ b/gfx/skia/generate_mozbuild.py
@@ -0,0 +1,295 @@
+#!/usr/bin/env python
+
+import os
+
+import locale
+locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
+
+footer = """
+
+# left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with
+if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']:
+    SOURCES += [
+        'trunk/src/opts/memset.arm.S',
+    ]
+
+MSVC_ENABLE_PGO = True
+
+FINAL_LIBRARY = 'gkmedias'
+LOCAL_INCLUDES += [
+    'trunk/include/config',
+    'trunk/include/core',
+    'trunk/include/effects',
+    'trunk/include/gpu',
+    'trunk/include/images',
+    'trunk/include/lazy',
+    'trunk/include/pathops',
+    'trunk/include/pipe',
+    'trunk/include/ports',
+    'trunk/include/utils',
+    'trunk/include/utils/mac',
+    'trunk/include/utils/win',
+    'trunk/include/views',
+    'trunk/src/core',
+    'trunk/src/gpu',
+    'trunk/src/gpu/effects',
+    'trunk/src/gpu/gl',
+    'trunk/src/image',
+    'trunk/src/lazy',
+    'trunk/src/opts',
+    'trunk/src/sfnt',
+    'trunk/src/utils',
+    'trunk/src/utils/android',
+    'trunk/src/utils/mac',
+    'trunk/src/utils/win',
+]
+
+DEFINES['SK_A32_SHIFT'] = 24
+DEFINES['SK_R32_SHIFT'] = 16
+DEFINES['SK_G32_SHIFT'] = 8
+DEFINES['SK_B32_SHIFT'] = 0
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk2', 'gtk3', 'gonk', 'cocoa'):
+    DEFINES['SK_USE_POSIX_THREADS'] = 1
+
+if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3']:
+    DEFINES['SK_BUILD_SSSE3'] = 1
+
+if (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android') or \
+   (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa') or \
+   CONFIG['MOZ_WIDGET_GTK']:
+    DEFINES['SK_FONTHOST_DOES_NOT_USE_FONTMGR'] = 1
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+    DEFINES['SKIA_DLL'] = 1
+
+DEFINES['SKIA_IMPLEMENTATION'] = 1
+DEFINES['GR_IMPLEMENTATION'] = 1
+"""
+
+import json
+
+platforms = ['linux', 'mac', 'android', 'win']
+
+custom_includes = {
+  'trunk/src/ports/SkAtomics_android.h': True,
+  'trunk/src/ports/SkAtomics_sync.h': True,
+  'trunk/src/ports/SkAtomics_win.h': True,
+  'trunk/src/ports/SkMutex_pthread.h': True,
+  'trunk/src/ports/SkMutex_win.h': True
+}
+
+def generate_includes():
+  includes = {}
+  for root, dirs, files in os.walk('trunk/include'):
+    for name in files:
+      if name.endswith('.h'):
+        includes[os.path.join(root, name)] = True
+
+  return dict(includes.items() + custom_includes.items())
+
+def generate_opt_sources():
+  opt_sources = {'opts': {''}}
+  for root, dirs, files in os.walk('trunk/src/opts'):
+    for name in files:
+      if name.endswith('.cpp'):
+        opt_sources['opts'].add(os.path.join(root, name))
+
+  return opt_sources
+
+def generate_platform_sources():
+  sources = {}
+
+  for plat in platforms:
+    if os.system("cd trunk && GYP_GENERATORS=dump_mozbuild ./gyp_skia -D OS=%s gyp/skia_lib.gyp" % plat) != 0:
+      print 'Failed to generate sources for ' + plat
+      continue
+
+
+    f = open('trunk/sources.json');
+    sources[plat] = set(json.load(f));
+    f.close()
+
+  return dict(sources.items() + generate_opt_sources().items())
+
+
+def generate_separated_sources(platform_sources):
+  blacklist = [
+    'ChromeUtils',
+    'SkImageDecoder_',
+    '_gif',
+    'SkFontConfigParser_android',
+    'SkJpeg',
+    'SkXML',
+    'SkCity',
+    'GrGLCreateNativeInterface',
+    'fontconfig',
+    '_neon',
+    'SkImage_Codec',
+    'SkBitmapChecksummer',
+    'SkNativeGLContext',
+    'SkFontConfig',
+    'SkFontHost_win_dw',
+    'SkForceLinking',
+    'SkMovie',
+    'SkImageDecoder',
+    'SkImageEncoder',
+    'SkBitmapHasher',
+    'SkWGL',
+    'SkImages',
+    'SkDiscardableMemory_ashmem'
+  ]
+
+  def isblacklisted(value):
+    for item in blacklist:
+      if value.find(item) >= 0:
+        return True
+
+    return False
+
+  separated = {
+    'common': {
+      #'trunk/src/effects/gradients/SkGradientTileProc.cpp',
+      'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+      'trunk/src/ports/SkDiscardableMemory_none.cpp',
+      'trunk/src/ports/SkImageDecoder_empty.cpp',
+      # 'trunk/src/images/SkImages.cpp',
+      # 'trunk/src/images/SkImageRef.cpp',
+      # 'trunk/src/images/SkImageRef_GlobalPool.cpp',
+      # 'trunk/src/images/SkImageRefPool.cpp',
+      # 'trunk/src/images/SkImageDecoder.cpp',
+      # 'trunk/src/images/SkImageDecoder_Factory.cpp',
+    },
+    'android': {
+      # 'trunk/src/ports/SkDebug_android.cpp',
+      'trunk/src/ports/SkFontHost_cairo.cpp',
+      # 'trunk/src/ports/SkFontHost_FreeType.cpp',
+      # 'trunk/src/ports/SkFontHost_FreeType_common.cpp',
+      # 'trunk/src/ports/SkThread_pthread.cpp',
+      # 'trunk/src/ports/SkPurgeableMemoryBlock_android.cpp',
+      # 'trunk/src/ports/SkTime_Unix.cpp',
+      # 'trunk/src/utils/SkThreadUtils_pthread.cpp',
+      # 'trunk/src/utils/SkThreadUtils_pthread_other.cpp',
+      # 'trunk/src/images/SkImageRef_ashmem.cpp',
+      # 'trunk/src/utils/android/ashmem.cpp',
+    },
+    'linux': {
+      'trunk/src/ports/SkFontHost_cairo.cpp',
+    },
+    'intel': {
+      'trunk/src/opts/SkXfermode_opts_none.cpp',
+    },
+    'arm': {
+      'trunk/src/opts/SkUtils_opts_arm.cpp',
+    },
+    'none': {
+      'trunk/src/opts/SkUtils_opts_none.cpp',
+    }
+  }
+
+  for plat in platform_sources.keys():
+    if not separated.has_key(plat):
+      separated[plat] = set()
+
+    for value in platform_sources[plat]:
+      if isblacklisted(value):
+        continue
+
+      if value.find('_SSE') > 0 or value.find('_SSSE') > 0: #lol
+        separated['intel'].add(value)
+        continue
+
+      if value.find('_arm') > 0 or value.find('_neon') > 0:
+        separated['arm'].add(value)
+        continue
+
+      if value.find('_none') > 0:
+        separated['none'].add(value)
+        continue
+
+      found = True
+      for other in platforms:
+        if other == plat or not platform_sources.has_key(other):
+          continue
+
+        if not value in platform_sources[other]:
+          found = False
+          break;
+
+      if found:
+        separated['common'].add(value)
+      else:
+        separated[plat].add(value)
+
+  return separated
+
+def uniq(seq):
+  seen = set()
+  seen_add = seen.add
+  return [ x for x in seq if x not in seen and not seen_add(x)]
+
+def write_list(f, name, values, indent):
+  def write_indent(indent):
+    for _ in range(indent):
+        f.write(' ')
+
+  val_list = uniq(sorted(map(lambda val: val.replace('../', 'trunk/'), values), key=lambda x: x.lower()))
+
+  if len(val_list) == 0:
+    return
+
+  write_indent(indent)
+  f.write(name + ' += [\n')
+  for val in val_list:
+    write_indent(indent + 4)
+    f.write('\'' + val + '\',\n')
+
+  write_indent(4)
+  f.write(']\n')
+
+def write_mozbuild(includes, sources):
+  filename = 'moz.build'
+  f = open(filename, 'w')
+
+
+  write_list(f, 'EXPORTS.skia', includes, 0)
+
+  write_list(f, 'SOURCES', sources['common'], 0)
+
+  f.write("if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):\n")
+  write_list(f, 'SOURCES', sources['android'], 4)
+
+  f.write("if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':\n")
+  write_list(f, 'SOURCES', sources['mac'], 4)
+
+  f.write("if CONFIG['MOZ_WIDGET_GTK']:\n")
+  write_list(f, 'SOURCES', sources['linux'], 4)
+
+  f.write("if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':\n")
+  write_list(f, 'SOURCES', sources['win'], 4)
+
+  f.write("\n\n")
+  f.write("if CONFIG['INTEL_ARCHITECTURE']:\n")
+  write_list(f, 'SOURCES', sources['intel'], 4)
+
+  f.write("elif CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']:\n")
+  write_list(f, 'SOURCES', sources['arm'], 4)
+
+  f.write("else:\n")
+  write_list(f, 'SOURCES', sources['none'], 4)
+
+  f.write(footer)
+
+  f.close()
+
+  print 'Wrote ' + filename
+
+def main():
+  includes = generate_includes()
+  platform_sources = generate_platform_sources()
+  separated_sources = generate_separated_sources(platform_sources)
+  write_mozbuild(includes, separated_sources)
+
+
+if __name__ == '__main__':
+  main()
new file mode 100755
--- /dev/null
+++ b/gfx/skia/gyp_mozbuild
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# Install our generator
+cp dump_mozbuild.py trunk/third_party/externals/gyp/pylib/gyp/generator
+
+# pushd trunk
+# for OS in win linux mac; do
+#     GYP_GENERATORS=dump_mozbuild ./gyp_skia -D OS=$OS -D arm_neon=0 gyp/effects.gyp
+# done
+# popd
+
+./generate_mozbuild.py
+
deleted file mode 100644
--- a/gfx/skia/include/animator/SkAnimator.h
+++ /dev/null
@@ -1,500 +0,0 @@
-
-/*
- * Copyright 2006 The Android Open Source Project
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-#ifndef SkAnimator_DEFINED
-#define SkAnimator_DEFINED
-
-#include "SkScalar.h"
-#include "SkKey.h"
-#include "SkEventSink.h"
-
-class SkAnimateMaker;
-class SkCanvas;
-class SkDisplayable;
-class SkEvent;
-class SkExtras;
-struct SkMemberInfo;
-class SkPaint;
-struct SkRect;
-class SkStream;
-class SkTypedArray;
-class SkXMLParserError;
-class SkDOM;
-struct SkDOMNode;
-
-/** SkElementType is the type of element: a rectangle, a color, an animator, and so on.
-    This enum is incomplete and will be fleshed out in a future release */
-enum SkElementType {
-    kElementDummyType
-};
-/** SkFieldType is the type of field: a scalar, a string, an integer, a boolean, and so on.
-    This enum is incomplete and will be fleshed out in a future release */
-enum SkFieldType {
-    kFieldDummyType
-};
-
-/** \class SkAnimator
-
-    The SkAnimator class decodes an XML stream into a display list. The
-    display list can be drawn statically as a picture, or can drawn
-    different elements at different times to form a moving animation.
-
-    SkAnimator does not read the system time on its own; it relies on the
-    caller to pass the current time. The caller can pause, speed up, or
-    reverse the animation by varying the time passed in.
-
-    The XML describing the display list must conform to the schema
-    described by SkAnimateSchema.xsd.
-
-    The XML must contain an <event> element to draw. Usually, it contains
-    an <event kind="onload" /> block to add some drawing elements to the
-    display list when the document is first decoded.
-
-    Here's an "Hello World" XML sample:
-
-    <screenplay>
-        <event kind="onload" >
-            <text text="Hello World" y="20" />
-        </event>
-    </screenplay>
-
-    To read and draw this sample:
-
-        // choose one of these two
-        SkAnimator animator; // declare an animator instance on the stack
-    //  SkAnimator* animator = new SkAnimator() // or one could instantiate the class
-
-        // choose one of these three
-        animator.decodeMemory(buffer, size); // to read from RAM
-        animator.decodeStream(stream); // to read from a user-defined stream (e.g., a zip file)
-        animator.decodeURI(filename); // to read from a web location, or from a local text file
-
-        // to draw to the current window:
-        SkCanvas canvas(getBitmap()); // create a canvas
-        animator.draw(canvas, &paint, 0); // draw the scene
-*/
-class SkAnimator : public SkEventSink {
-public:
-    SkAnimator();
-    virtual ~SkAnimator();
-
-    /** Add a drawable extension to the graphics engine. Experimental.
-        @param extras A derived class that implements methods that identify and instantiate the class
-    */
-    void addExtras(SkExtras* extras);
-
-    /** Read in XML from a stream, and append it to the current
-        animator. Returns false if an error was encountered.
-        Error diagnostics are stored in fErrorCode and fLineNumber.
-        @param stream  The stream to append.
-        @return true if the XML was parsed successfully.
-    */
-    bool appendStream(SkStream* stream);
-
-    /** Read in XML from memory. Returns true if the file can be
-        read without error. Returns false if an error was encountered.
-        Error diagnostics are stored in fErrorCode and fLineNumber.
-        @param buffer  The XML text as UTF-8 characters.
-        @param size  The XML text length in bytes.
-        @return true if the XML was parsed successfully.
-    */
-    bool decodeMemory(const void* buffer, size_t size);
-
-    /** Read in XML from a stream. Returns true if the file can be
-        read without error. Returns false if an error was encountered.
-        Error diagnostics are stored in fErrorCode and fLineNumber.
-        @param stream  The stream containg the XML text as UTF-8 characters.
-        @return true if the XML was parsed successfully.
-    */
-    virtual bool decodeStream(SkStream* stream);
-
-    /** Parse the DOM tree starting at the specified node. Returns true if it can be
-        parsed without error. Returns false if an error was encountered.
-        Error diagnostics are stored in fErrorCode and fLineNumber.
-        @return true if the DOM was parsed successfully.
-    */
-    virtual bool decodeDOM(const SkDOM&, const SkDOMNode*);
-
-    /** Read in XML from a URI. Returns true if the file can be
-        read without error. Returns false if an error was encountered.
-        Error diagnostics are stored in fErrorCode and fLineNumber.
-        @param uri The complete url path to be read (either ftp, http or https).
-        @return true if the XML was parsed successfully.
-    */
-    bool decodeURI(const char uri[]);
-
-    /** Pass a char event, usually a keyboard symbol, to the animator.
-        This triggers events of the form <event kind="keyChar" key="... />
-        @param ch  The character to match against <event> element "key"
-            attributes.
-        @return true if the event was dispatched successfully.
-    */
-    bool doCharEvent(SkUnichar ch);
-
-    /** Experimental:
-        Pass a mouse click event along with the mouse coordinates to
-        the animator. This triggers events of the form <event kind="mouseDown" ... />
-        and other mouse events.
-        @param state The mouse state, described by SkView::Click::State : values are
-        down == 0, moved == 1, up == 2
-        @param x    The x-position of the mouse
-        @param y The y-position of the mouse
-        @return true if the event was dispatched successfully.
-    */
-    bool doClickEvent(int state, SkScalar x, SkScalar y);
-
-    /** Pass a meta-key event, such as an arrow , to the animator.
-        This triggers events of the form <event kind="keyPress" code="... />
-        @param code  The key to match against <event> element "code"
-            attributes.
-        @return true if the event was dispatched successfully.
-    */
-    bool doKeyEvent(SkKey code);
-    bool doKeyUpEvent(SkKey code);
-
-    /** Send an event to the animator. The animator's clock is set
-        relative to the current time.
-        @return true if the event was dispatched successfully.
-    */
-    bool doUserEvent(const SkEvent& evt);
-
-    /** The possible results from the draw function.
-    */
-    enum DifferenceType {
-        kNotDifferent,
-        kDifferent,
-        kPartiallyDifferent
-    };
-    /** Draws one frame of the animation. The first call to draw always
-        draws the initial frame of the animation. Subsequent calls draw
-        the offset into the animation by
-        subtracting the initial time from the current time.
-        @param canvas  The canvas to draw into.
-        @param paint     The paint to draw with.
-        @param time  The offset into the current animation.
-        @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
-        kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal
-        redraw area.
-    */
-    DifferenceType draw(SkCanvas* canvas, SkPaint* paint, SkMSec time);
-
-    /** Draws one frame of the animation, using a new Paint each time.
-        The first call to draw always
-        draws the initial frame of the animation. Subsequent calls draw
-        the offset into the animation by
-        subtracting the initial time from the current time.
-        @param canvas  The canvas to draw into.
-        @param time  The offset into the current animation.
-        @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
-        kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal
-        redraw area.
-    */
-    DifferenceType draw(SkCanvas* canvas, SkMSec time);
-
-    /** Experimental:
-        Helper to choose whether to return a SkView::Click handler.
-        @param x ignored
-        @param y ignored
-        @return true if a mouseDown event handler is enabled.
-    */
-    bool findClickEvent(SkScalar x, SkScalar y);
-
-
-    /** Get the nested animator associated with this element, if any.
-        Use this to access a movie's event sink, to send events to movies.
-        @param element the value returned by getElement
-        @return the internal animator.
-    */
-    const SkAnimator* getAnimator(const SkDisplayable* element) const;
-
-    /** Returns the scalar value of the specified element's attribute[index]
-        @param element the value returned by getElement
-        @param field the value returned by getField
-        @param index the array entry
-        @return the integer value to retrieve, or SK_NaN32 if unsuccessful
-    */
-    int32_t getArrayInt(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
-    /** Returns the scalar value of the specified element's attribute[index]
-        @param elementID is the value of the id attribute in the XML of this element
-        @param fieldName specifies the name of the attribute
-        @param index the array entry
-        @return the integer value to retrieve, or SK_NaN32 if unsuccessful
-    */
-    int32_t getArrayInt(const char* elementID, const char* fieldName, int index);
-
-    /** Returns the scalar value of the specified element's attribute[index]
-        @param element the value returned by getElement
-        @param field the value returned by getField
-        @param index the array entry
-        @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
-    */
-    SkScalar getArrayScalar(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
-    /** Returns the scalar value of the specified element's attribute[index]
-        @param elementID is the value of the id attribute in the XML of this element
-        @param fieldName specifies the name of the attribute
-        @param index the array entry
-        @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
-    */
-    SkScalar getArrayScalar(const char* elementID, const char* fieldName, int index);
-
-    /** Returns the string value of the specified element's attribute[index]
-        @param element is a value returned by getElement
-        @param field is a value returned by getField
-        @param index the array entry
-        @return the string value to retrieve, or null if unsuccessful
-    */
-    const char* getArrayString(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
-    /** Returns the string value of the specified element's attribute[index]
-        @param elementID is the value of the id attribute in the XML of this element
-        @param fieldName specifies the name of the attribute
-        @param index the array entry
-        @return the string value to retrieve, or null if unsuccessful
-    */
-    const char* getArrayString(const char* elementID, const char* fieldName, int index);
-
-    /** Returns the XML element corresponding to the given ID.
-        @param elementID is the value of the id attribute in the XML of this element
-        @return the element matching the ID, or null if the element can't be found
-    */
-    const SkDisplayable* getElement(const char* elementID);
-
-    /** Returns the element type corresponding to the XML element.
-        The element type matches the element name; for instance, <line> returns kElement_LineType
-        @param element is a value returned by getElement
-        @return element type, or 0 if the element can't be found
-    */
-    SkElementType getElementType(const SkDisplayable* element);
-
-    /** Returns the element type corresponding to the given ID.
-        @param elementID is the value of the id attribute in the XML of this element
-        @return element type, or 0 if the element can't be found
-    */
-    SkElementType getElementType(const char* elementID);
-
-    /** Returns the XML field of the named attribute in the XML element.
-        @param element is a value returned by getElement
-        @param fieldName is the attribute to return
-        @return the attribute matching the fieldName, or null if the element can't be found
-    */
-    const SkMemberInfo* getField(const SkDisplayable* element, const char* fieldName);
-
-    /** Returns the XML field of the named attribute in the XML element matching the elementID.
-        @param elementID is the value of the id attribute in the XML of this element