Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Side by Side Diff: Source/core/html/canvas/CanvasRenderingContext2D.cpp

Issue 170603003: Use nullptr_t for RefPtr, PassRefPtr and RawPtr. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Final rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/PluginDocument.cpp ('k') | Source/core/html/canvas/CanvasStyle.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 4 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved. 8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved.
9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
10 * 10 *
(...skipping 1660 matching lines...) Expand 10 before | Expand all | Expand 10 after
1671 if (!std::isfinite(x0)) 1671 if (!std::isfinite(x0))
1672 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x0, "x0")); 1672 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x0, "x0"));
1673 else if (!std::isfinite(y0)) 1673 else if (!std::isfinite(y0))
1674 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y0, "y0")); 1674 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y0, "y0"));
1675 else if (!std::isfinite(x1)) 1675 else if (!std::isfinite(x1))
1676 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x1, "x1")); 1676 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x1, "x1"));
1677 else if (!std::isfinite(y1)) 1677 else if (!std::isfinite(y1))
1678 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y1, "y1")); 1678 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y1, "y1"));
1679 1679
1680 if (exceptionState.hadException()) 1680 if (exceptionState.hadException())
1681 return 0; 1681 return nullptr;
1682 1682
1683 RefPtr<CanvasGradient> gradient = CanvasGradient::create(FloatPoint(x0, y0), FloatPoint(x1, y1)); 1683 RefPtr<CanvasGradient> gradient = CanvasGradient::create(FloatPoint(x0, y0), FloatPoint(x1, y1));
1684 return gradient.release(); 1684 return gradient.release();
1685 } 1685 }
1686 1686
1687 PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState& exceptionS tate) 1687 PassRefPtr<CanvasGradient> CanvasRenderingContext2D::createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1, ExceptionState& exceptionS tate)
1688 { 1688 {
1689 if (!std::isfinite(x0)) 1689 if (!std::isfinite(x0))
1690 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x0, "x0")); 1690 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x0, "x0"));
1691 else if (!std::isfinite(y0)) 1691 else if (!std::isfinite(y0))
1692 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y0, "y0")); 1692 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y0, "y0"));
1693 else if (!std::isfinite(r0)) 1693 else if (!std::isfinite(r0))
1694 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(r0, "r0")); 1694 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(r0, "r0"));
1695 else if (!std::isfinite(x1)) 1695 else if (!std::isfinite(x1))
1696 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x1, "x1")); 1696 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(x1, "x1"));
1697 else if (!std::isfinite(y1)) 1697 else if (!std::isfinite(y1))
1698 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y1, "y1")); 1698 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(y1, "y1"));
1699 else if (!std::isfinite(r1)) 1699 else if (!std::isfinite(r1))
1700 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(r1, "r1")); 1700 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(r1, "r1"));
1701 else if (r0 < 0 || r1 < 0) 1701 else if (r0 < 0 || r1 < 0)
1702 exceptionState.throwDOMException(IndexSizeError, String::format("The %s provided is less than 0.", r0 < 0 ? "r0" : "r1")); 1702 exceptionState.throwDOMException(IndexSizeError, String::format("The %s provided is less than 0.", r0 < 0 ? "r0" : "r1"));
1703 1703
1704 if (exceptionState.hadException()) 1704 if (exceptionState.hadException())
1705 return 0; 1705 return nullptr;
1706 1706
1707 RefPtr<CanvasGradient> gradient = CanvasGradient::create(FloatPoint(x0, y0), r0, FloatPoint(x1, y1), r1); 1707 RefPtr<CanvasGradient> gradient = CanvasGradient::create(FloatPoint(x0, y0), r0, FloatPoint(x1, y1), r1);
1708 return gradient.release(); 1708 return gradient.release();
1709 } 1709 }
1710 1710
1711 PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(HTMLImageEleme nt* image, 1711 PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(HTMLImageEleme nt* image,
1712 const String& repetitionType, ExceptionState& exceptionState) 1712 const String& repetitionType, ExceptionState& exceptionState)
1713 { 1713 {
1714 if (!image) { 1714 if (!image) {
1715 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "HTMLImageElement")); 1715 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "HTMLImageElement"));
1716 return 0; 1716 return nullptr;
1717 } 1717 }
1718 bool repeatX, repeatY; 1718 bool repeatX, repeatY;
1719 CanvasPattern::parseRepetitionType(repetitionType, repeatX, repeatY, excepti onState); 1719 CanvasPattern::parseRepetitionType(repetitionType, repeatX, repeatY, excepti onState);
1720 if (exceptionState.hadException()) 1720 if (exceptionState.hadException())
1721 return 0; 1721 return nullptr;
1722 1722
1723 if (!image->complete()) 1723 if (!image->complete())
1724 return 0; 1724 return nullptr;
1725 1725
1726 ImageResource* cachedImage = image->cachedImage(); 1726 ImageResource* cachedImage = image->cachedImage();
1727 Image* imageForRendering = cachedImage ? cachedImage->imageForRenderer(image ->renderer()) : 0; 1727 Image* imageForRendering = cachedImage ? cachedImage->imageForRenderer(image ->renderer()) : 0;
1728 if (!imageForRendering) 1728 if (!imageForRendering)
1729 return CanvasPattern::create(Image::nullImage(), repeatX, repeatY, true) ; 1729 return CanvasPattern::create(Image::nullImage(), repeatX, repeatY, true) ;
1730 1730
1731 // We need to synthesize a container size if a renderer is not available to provide one. 1731 // We need to synthesize a container size if a renderer is not available to provide one.
1732 if (!image->renderer() && imageForRendering->usesContainerSize()) 1732 if (!image->renderer() && imageForRendering->usesContainerSize())
1733 imageForRendering->setContainerSize(imageForRendering->size()); 1733 imageForRendering->setContainerSize(imageForRendering->size());
1734 1734
1735 bool originClean = cachedImage->isAccessAllowed(canvas()->securityOrigin()); 1735 bool originClean = cachedImage->isAccessAllowed(canvas()->securityOrigin());
1736 return CanvasPattern::create(imageForRendering, repeatX, repeatY, originClea n); 1736 return CanvasPattern::create(imageForRendering, repeatX, repeatY, originClea n);
1737 } 1737 }
1738 1738
1739 PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(HTMLCanvasElem ent* canvas, 1739 PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(HTMLCanvasElem ent* canvas,
1740 const String& repetitionType, ExceptionState& exceptionState) 1740 const String& repetitionType, ExceptionState& exceptionState)
1741 { 1741 {
1742 if (!canvas) 1742 if (!canvas)
1743 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "HTMLCanvasElement")); 1743 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "HTMLCanvasElement"));
1744 else if (!canvas->width() || !canvas->height()) 1744 else if (!canvas->width() || !canvas->height())
1745 exceptionState.throwDOMException(InvalidStateError, String::format("The canvas %s is 0.", canvas->width() ? "height" : "width")); 1745 exceptionState.throwDOMException(InvalidStateError, String::format("The canvas %s is 0.", canvas->width() ? "height" : "width"));
1746 1746
1747 if (exceptionState.hadException()) 1747 if (exceptionState.hadException())
1748 return 0; 1748 return nullptr;
1749 1749
1750 bool repeatX, repeatY; 1750 bool repeatX, repeatY;
1751 CanvasPattern::parseRepetitionType(repetitionType, repeatX, repeatY, excepti onState); 1751 CanvasPattern::parseRepetitionType(repetitionType, repeatX, repeatY, excepti onState);
1752 if (exceptionState.hadException()) 1752 if (exceptionState.hadException())
1753 return 0; 1753 return nullptr;
1754 return CanvasPattern::create(canvas->copiedImage(), repeatX, repeatY, canvas ->originClean()); 1754 return CanvasPattern::create(canvas->copiedImage(), repeatX, repeatY, canvas ->originClean());
1755 } 1755 }
1756 1756
1757 bool CanvasRenderingContext2D::computeDirtyRect(const FloatRect& localRect, Floa tRect* dirtyRect) 1757 bool CanvasRenderingContext2D::computeDirtyRect(const FloatRect& localRect, Floa tRect* dirtyRect)
1758 { 1758 {
1759 FloatRect clipBounds; 1759 FloatRect clipBounds;
1760 if (!drawingContext()->getTransformedClipBounds(&clipBounds)) 1760 if (!drawingContext()->getTransformedClipBounds(&clipBounds))
1761 return false; 1761 return false;
1762 return computeDirtyRect(localRect, clipBounds, dirtyRect); 1762 return computeDirtyRect(localRect, clipBounds, dirtyRect);
1763 } 1763 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1806 { 1806 {
1807 return canvas()->drawingContext(); 1807 return canvas()->drawingContext();
1808 } 1808 }
1809 1809
1810 static PassRefPtr<ImageData> createEmptyImageData(const IntSize& size) 1810 static PassRefPtr<ImageData> createEmptyImageData(const IntSize& size)
1811 { 1811 {
1812 Checked<int, RecordOverflow> dataSize = 4; 1812 Checked<int, RecordOverflow> dataSize = 4;
1813 dataSize *= size.width(); 1813 dataSize *= size.width();
1814 dataSize *= size.height(); 1814 dataSize *= size.height();
1815 if (dataSize.hasOverflowed()) 1815 if (dataSize.hasOverflowed())
1816 return 0; 1816 return nullptr;
1817 1817
1818 RefPtr<ImageData> data = ImageData::create(size); 1818 RefPtr<ImageData> data = ImageData::create(size);
1819 data->data()->zeroFill(); 1819 data->data()->zeroFill();
1820 return data.release(); 1820 return data.release();
1821 } 1821 }
1822 1822
1823 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<Image Data> imageData, ExceptionState& exceptionState) const 1823 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<Image Data> imageData, ExceptionState& exceptionState) const
1824 { 1824 {
1825 if (!imageData) { 1825 if (!imageData) {
1826 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "ImageData")); 1826 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "ImageData"));
1827 return 0; 1827 return nullptr;
1828 } 1828 }
1829 1829
1830 return createEmptyImageData(imageData->size()); 1830 return createEmptyImageData(imageData->size());
1831 } 1831 }
1832 1832
1833 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionState& exceptionState) const 1833 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionState& exceptionState) const
1834 { 1834 {
1835 if (!sw || !sh) 1835 if (!sw || !sh)
1836 exceptionState.throwDOMException(IndexSizeError, String::format("The sou rce %s is 0.", sw ? "height" : "width")); 1836 exceptionState.throwDOMException(IndexSizeError, String::format("The sou rce %s is 0.", sw ? "height" : "width"));
1837 else if (!std::isfinite(sw)) 1837 else if (!std::isfinite(sw))
1838 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sw, "source width")); 1838 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sw, "source width"));
1839 else if (!std::isfinite(sh)) 1839 else if (!std::isfinite(sh))
1840 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sh, "source height")); 1840 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sh, "source height"));
1841 1841
1842 if (exceptionState.hadException()) 1842 if (exceptionState.hadException())
1843 return 0; 1843 return nullptr;
1844 1844
1845 FloatSize logicalSize(fabs(sw), fabs(sh)); 1845 FloatSize logicalSize(fabs(sw), fabs(sh));
1846 if (!logicalSize.isExpressibleAsIntSize()) 1846 if (!logicalSize.isExpressibleAsIntSize())
1847 return 0; 1847 return nullptr;
1848 1848
1849 IntSize size = expandedIntSize(logicalSize); 1849 IntSize size = expandedIntSize(logicalSize);
1850 if (size.width() < 1) 1850 if (size.width() < 1)
1851 size.setWidth(1); 1851 size.setWidth(1);
1852 if (size.height() < 1) 1852 if (size.height() < 1)
1853 size.setHeight(1); 1853 size.setHeight(1);
1854 1854
1855 return createEmptyImageData(size); 1855 return createEmptyImageData(size);
1856 } 1856 }
1857 1857
(...skipping 11 matching lines...) Expand all
1869 else if (!std::isfinite(sx)) 1869 else if (!std::isfinite(sx))
1870 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sx, "source X")); 1870 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sx, "source X"));
1871 else if (!std::isfinite(sy)) 1871 else if (!std::isfinite(sy))
1872 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sy, "source Y")); 1872 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sy, "source Y"));
1873 else if (!std::isfinite(sw)) 1873 else if (!std::isfinite(sw))
1874 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sw, "source width")); 1874 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sw, "source width"));
1875 else if (!std::isfinite(sh)) 1875 else if (!std::isfinite(sh))
1876 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sh, "source height")); 1876 exceptionState.throwDOMException(NotSupportedError, ExceptionMessages::n otAFiniteNumber(sh, "source height"));
1877 1877
1878 if (exceptionState.hadException()) 1878 if (exceptionState.hadException())
1879 return 0; 1879 return nullptr;
1880 1880
1881 if (sw < 0) { 1881 if (sw < 0) {
1882 sx += sw; 1882 sx += sw;
1883 sw = -sw; 1883 sw = -sw;
1884 } 1884 }
1885 if (sh < 0) { 1885 if (sh < 0) {
1886 sy += sh; 1886 sy += sh;
1887 sh = -sh; 1887 sh = -sh;
1888 } 1888 }
1889 1889
1890 FloatRect logicalRect(sx, sy, sw, sh); 1890 FloatRect logicalRect(sx, sy, sw, sh);
1891 if (logicalRect.width() < 1) 1891 if (logicalRect.width() < 1)
1892 logicalRect.setWidth(1); 1892 logicalRect.setWidth(1);
1893 if (logicalRect.height() < 1) 1893 if (logicalRect.height() < 1)
1894 logicalRect.setHeight(1); 1894 logicalRect.setHeight(1);
1895 if (!logicalRect.isExpressibleAsIntRect()) 1895 if (!logicalRect.isExpressibleAsIntRect())
1896 return 0; 1896 return nullptr;
1897 1897
1898 IntRect imageDataRect = enclosingIntRect(logicalRect); 1898 IntRect imageDataRect = enclosingIntRect(logicalRect);
1899 ImageBuffer* buffer = canvas()->buffer(); 1899 ImageBuffer* buffer = canvas()->buffer();
1900 if (!buffer) 1900 if (!buffer)
1901 return createEmptyImageData(imageDataRect.size()); 1901 return createEmptyImageData(imageDataRect.size());
1902 1902
1903 RefPtr<Uint8ClampedArray> byteArray = buffer->getUnmultipliedImageData(image DataRect); 1903 RefPtr<Uint8ClampedArray> byteArray = buffer->getUnmultipliedImageData(image DataRect);
1904 if (!byteArray) 1904 if (!byteArray)
1905 return 0; 1905 return nullptr;
1906 1906
1907 return ImageData::create(imageDataRect.size(), byteArray.release()); 1907 return ImageData::create(imageDataRect.size(), byteArray.release());
1908 } 1908 }
1909 1909
1910 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionState& exceptionState) 1910 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionState& exceptionState)
1911 { 1911 {
1912 if (!data) { 1912 if (!data) {
1913 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "ImageData")); 1913 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "ImageData"));
1914 return; 1914 return;
1915 } 1915 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2000 serializedFont.append(' '); 2000 serializedFont.append(' ');
2001 serializedFont.append(family); 2001 serializedFont.append(family);
2002 } 2002 }
2003 2003
2004 return serializedFont.toString(); 2004 return serializedFont.toString();
2005 } 2005 }
2006 2006
2007 void CanvasRenderingContext2D::setFont(const String& newFont) 2007 void CanvasRenderingContext2D::setFont(const String& newFont)
2008 { 2008 {
2009 MutableStylePropertyMap::iterator i = m_fetchedFonts.find(newFont); 2009 MutableStylePropertyMap::iterator i = m_fetchedFonts.find(newFont);
2010 RefPtr<MutableStylePropertySet> parsedStyle = i != m_fetchedFonts.end() ? i- >value : 0; 2010 RefPtr<MutableStylePropertySet> parsedStyle = i != m_fetchedFonts.end() ? i- >value : nullptr;
2011 2011
2012 if (!parsedStyle) { 2012 if (!parsedStyle) {
2013 parsedStyle = MutableStylePropertySet::create(); 2013 parsedStyle = MutableStylePropertySet::create();
2014 CSSParserMode mode = m_usesCSSCompatibilityParseMode ? HTMLQuirksMode : HTMLStandardMode; 2014 CSSParserMode mode = m_usesCSSCompatibilityParseMode ? HTMLQuirksMode : HTMLStandardMode;
2015 BisonCSSParser::parseValue(parsedStyle.get(), CSSPropertyFont, newFont, true, mode, 0); 2015 BisonCSSParser::parseValue(parsedStyle.get(), CSSPropertyFont, newFont, true, mode, 0);
2016 m_fetchedFonts.add(newFont, parsedStyle); 2016 m_fetchedFonts.add(newFont, parsedStyle);
2017 } 2017 }
2018 if (parsedStyle->isEmpty()) 2018 if (parsedStyle->isEmpty())
2019 return; 2019 return;
2020 2020
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
2394 const int focusRingWidth = 5; 2394 const int focusRingWidth = 5;
2395 const int focusRingOutline = 0; 2395 const int focusRingOutline = 0;
2396 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); 2396 c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor);
2397 2397
2398 c->restore(); 2398 c->restore();
2399 2399
2400 didDraw(dirtyRect); 2400 didDraw(dirtyRect);
2401 } 2401 }
2402 2402
2403 } // namespace WebCore 2403 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/html/PluginDocument.cpp ('k') | Source/core/html/canvas/CanvasStyle.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698