Changeset 94900 in webkit


Ignore:
Timestamp:
Sep 9, 2011 11:28:00 PM (13 years ago)
Author:
Beth Dakin
Message:

Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
Use high resolution platform images when the deviceScaleFactor > 1
-and corresponding-
<rdar://problem/10003098>

Reviewed by Darin Adler.

Add all of the new high resolution images. I also removed some tiffs from the
project and replaced them with png equivalents (that are already checked into
WebCore anyway). Since the high resolution images are pngs, it makes sense to use
pngs for all of the images that load through Image::loadPlatformResource()

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/mac/ImageMac.mm:

(WebCore::Image::loadPlatformResource):

Load the @2x resource for deviceScaleFactors >= 2.

  • editing/DeleteButtonController.cpp:

(WebCore::DeleteButtonController::createDeletionUI):

CachedImage::brokenImage() is no longer a static helper function, but a real
member function. It also now loads the @2x resource for deviceScaleFactors >= 2
and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns
the brokenImage(), it just returns the 1x version. brokenImage() has to be called
directly to reliably return the deviceScaleFactor-appropriate resource.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::brokenImage):
(WebCore::CachedImage::image):

  • loader/cache/CachedImage.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::drawPlatformResizerImage):
(WebCore::RenderLayer::paintResizer):

  • rendering/RenderLayer.h:

New static function to retrieve the deviceScaleFactor for callers that do not have
direct access to a Page.

  • page/Page.cpp:

(WebCore::Page::deviceScaleFactor):

  • page/Page.h:

Call CachedImage::brokenImage() for the broken-image image at an accurate
resolution.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageSizeForError):
(WebCore::RenderImage::paintReplaced):

Location:
trunk/Source/WebCore
Files:
5 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r94898 r94900  
     12011-09-09  Beth Dakin  <bdakin@apple.com>
     2
     3        Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
     4        Use high resolution platform images when the deviceScaleFactor > 1
     5        -and corresponding-
     6        <rdar://problem/10003098>
     7
     8        Reviewed by Darin Adler.
     9
     10        Add all of the new high resolution images. I also removed some tiffs from the
     11        project and replaced them with png equivalents (that are already checked into
     12        WebCore anyway). Since the high resolution images are pngs, it makes sense to use
     13        pngs for all of the images that load through Image::loadPlatformResource()
     14        * WebCore.xcodeproj/project.pbxproj:
     15        * platform/graphics/mac/ImageMac.mm:
     16        (WebCore::Image::loadPlatformResource):
     17
     18        Load the @2x resource for deviceScaleFactors >= 2.
     19        * editing/DeleteButtonController.cpp:
     20        (WebCore::DeleteButtonController::createDeletionUI):
     21
     22        CachedImage::brokenImage() is no longer a static helper function, but a real
     23        member function. It also now loads the @2x resource for deviceScaleFactors >= 2
     24        and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns
     25        the brokenImage(), it just returns the 1x version. brokenImage() has to be called
     26        directly to reliably return the deviceScaleFactor-appropriate resource.
     27        * loader/cache/CachedImage.cpp:
     28        (WebCore::CachedImage::brokenImage):
     29        (WebCore::CachedImage::image):
     30        * loader/cache/CachedImage.h:
     31        * rendering/RenderLayer.cpp:
     32        (WebCore::RenderLayer::drawPlatformResizerImage):
     33        (WebCore::RenderLayer::paintResizer):
     34        * rendering/RenderLayer.h:
     35
     36        New static function to retrieve the deviceScaleFactor for callers that do not have
     37        direct access to a Page.
     38        * page/Page.cpp:
     39        (WebCore::Page::deviceScaleFactor):
     40        * page/Page.h:
     41
     42        Call CachedImage::brokenImage() for the broken-image image at an accurate
     43        resolution.
     44        * rendering/RenderImage.cpp:
     45        (WebCore::RenderImage::imageSizeForError):
     46        (WebCore::RenderImage::paintReplaced):
     47
    1482011-09-09  Erik Arvidsson  <arv@chromium.org>
    249
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r94828 r94900  
    570570                1C11CCC70AA6093700DADB20 /* DOMCDATASection.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85089CCF0A98C42700A275AA /* DOMCDATASection.h */; };
    571571                1C11CCC80AA6093700DADB20 /* DOMHTMLElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85DF2EEB0AA387CB00AD64C5 /* DOMHTMLElement.h */; };
    572                 1C14E76B0AD8C81C00B6158B /* deleteButtonPressed.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1C14E7690AD8C81C00B6158B /* deleteButtonPressed.tiff */; };
    573                 1C14E76C0AD8C81C00B6158B /* deleteButton.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1C14E76A0AD8C81C00B6158B /* deleteButton.tiff */; };
    574572                1C26497A0D7E248A00BD10F2 /* DocumentLoaderMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C2649790D7E248A00BD10F2 /* DocumentLoaderMac.cpp */; };
    575573                1C26497C0D7E24EC00BD10F2 /* PageMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C26497B0D7E24EC00BD10F2 /* PageMac.cpp */; };
     
    17001698                750D029311D0E7F300BD1B27 /* RenderInputSpeech.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 750D029111D0E7F300BD1B27 /* RenderInputSpeech.cpp */; };
    17011699                750D029411D0E7F300BD1B27 /* RenderInputSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 750D029211D0E7F300BD1B27 /* RenderInputSpeech.h */; };
    1702                 750D02C111D0EE7D00BD1B27 /* inputSpeech.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 750D02C011D0EE7D00BD1B27 /* inputSpeech.tiff */; };
    17031700                7535BC9412020CFF0037EC45 /* SpeechInputClientMock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7535BC9212020CFF0037EC45 /* SpeechInputClientMock.cpp */; };
    17041701                7535BC9512020CFF0037EC45 /* SpeechInputClientMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 7535BC9312020CFF0037EC45 /* SpeechInputClientMock.h */; };
     
    29232920                930908910AF7EDE40081DF01 /* HitTestRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 930908900AF7EDE40081DF01 /* HitTestRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
    29242921                930FC68A1072B9280045293E /* TextRenderingMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 930FC6891072B9280045293E /* TextRenderingMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
     2922                93153BCD1417FBBF00FCF5BE /* deleteButton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BCC1417FBBF00FCF5BE /* deleteButton@2x.png */; };
     2923                93153BCF1417FBDB00FCF5BE /* deleteButtonPressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BCE1417FBDB00FCF5BE /* deleteButtonPressed@2x.png */; };
     2924                93153BDA14181F7A00FCF5BE /* missingImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BD914181F7A00FCF5BE /* missingImage@2x.png */; };
     2925                93153BDC141959BC00FCF5BE /* textAreaResizeCorner.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BDB141959BB00FCF5BE /* textAreaResizeCorner.png */; };
     2926                93153BDE141959F400FCF5BE /* deleteButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BDD141959F400FCF5BE /* deleteButton.png */; };
     2927                93153BE014195A2800FCF5BE /* deleteButtonPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BDF14195A2800FCF5BE /* deleteButtonPressed.png */; };
     2928                93153BE214195A5700FCF5BE /* missingImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BE114195A5700FCF5BE /* missingImage.png */; };
     2929                93153BE414195B2A00FCF5BE /* inputSpeech.png in Resources */ = {isa = PBXBuildFile; fileRef = 93153BE314195B2900FCF5BE /* inputSpeech.png */; };
    29252930                931BCC611124DFCB00BE70DD /* MediaCanStartListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 931BCC601124DFCB00BE70DD /* MediaCanStartListener.h */; settings = {ATTRIBUTES = (Private, ); }; };
    29262931                9326DC0C09DAD5D600AFC847 /* CharsetData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 656581AC09D14EE6000E61D7 /* CharsetData.cpp */; };
     
    30413046                9363B62C0F8E8FE000803810 /* HistoryPropertyList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9363B62A0F8E8FE000803810 /* HistoryPropertyList.cpp */; };
    30423047                9363B62D0F8E8FE000803810 /* HistoryPropertyList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9363B62B0F8E8FE000803810 /* HistoryPropertyList.h */; settings = {ATTRIBUTES = (Private, ); }; };
     3048                9370918D1416D86B00477333 /* textAreaResizeCorner@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9370918C1416D86B00477333 /* textAreaResizeCorner@2x.png */; };
    30433049                93799EF80BF2743600D0F230 /* RenderWordBreak.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93799EF60BF2743600D0F230 /* RenderWordBreak.cpp */; };
    30443050                93799EF90BF2743600D0F230 /* RenderWordBreak.h in Headers */ = {isa = PBXBuildFile; fileRef = 93799EF70BF2743600D0F230 /* RenderWordBreak.h */; };
     
    40784084                AB247A6D0AFD6383003FA5FD /* RenderSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = AB247A6B0AFD6383003FA5FD /* RenderSlider.h */; };
    40794085                AB31C91E10AE1B8E000C7B92 /* LineClampValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AB31C91D10AE1B8E000C7B92 /* LineClampValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
    4080                 AB4261D80A2F6C9700BDD17D /* missingImage.tiff in Resources */ = {isa = PBXBuildFile; fileRef = AB4261D70A2F6C9700BDD17D /* missingImage.tiff */; };
    40814086                AB4CB4EB0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */; };
    40824087                AB67D1A8097F3AE300F9392E /* RenderTextControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB67D1A6097F3AE300F9392E /* RenderTextControl.cpp */; };
     
    56845689                E4EEFFC80D34550C00469A58 /* JSAudioConstructor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4EEFFC60D34550C00469A58 /* JSAudioConstructor.cpp */; };
    56855690                E4EEFFC90D34550C00469A58 /* JSAudioConstructor.h in Headers */ = {isa = PBXBuildFile; fileRef = E4EEFFC70D34550C00469A58 /* JSAudioConstructor.h */; };
    5686                 ED048ABC0833F132006E1E67 /* textAreaResizeCorner.tiff in Resources */ = {isa = PBXBuildFile; fileRef = ED048ABB0833F132006E1E67 /* textAreaResizeCorner.tiff */; };
    56875691                ED2BA83C09A24B91006C0AC4 /* DocumentMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */; settings = {ATTRIBUTES = (Private, ); }; };
    56885692                ED501DC60B249F2900AE18D9 /* EditorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED501DC50B249F2900AE18D9 /* EditorMac.mm */; };
     
    70977101                1AFE11970CBFFCC4003017FA /* JSSQLResultSetRowList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLResultSetRowList.cpp; sourceTree = "<group>"; };
    70987102                1AFE11980CBFFCC4003017FA /* JSSQLResultSetRowList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLResultSetRowList.h; sourceTree = "<group>"; };
    7099                 1C14E7690AD8C81C00B6158B /* deleteButtonPressed.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = deleteButtonPressed.tiff; sourceTree = "<group>"; };
    7100                 1C14E76A0AD8C81C00B6158B /* deleteButton.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = deleteButton.tiff; sourceTree = "<group>"; };
    71017103                1C2649790D7E248A00BD10F2 /* DocumentLoaderMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentLoaderMac.cpp; sourceTree = "<group>"; };
    71027104                1C26497B0D7E24EC00BD10F2 /* PageMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageMac.cpp; sourceTree = "<group>"; };
     
    83648366                750D029111D0E7F300BD1B27 /* RenderInputSpeech.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderInputSpeech.cpp; sourceTree = "<group>"; };
    83658367                750D029211D0E7F300BD1B27 /* RenderInputSpeech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderInputSpeech.h; sourceTree = "<group>"; };
    8366                 750D02C011D0EE7D00BD1B27 /* inputSpeech.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = inputSpeech.tiff; sourceTree = "<group>"; };
    83678368                7535BC9212020CFF0037EC45 /* SpeechInputClientMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SpeechInputClientMock.cpp; path = mock/SpeechInputClientMock.cpp; sourceTree = "<group>"; };
    83688369                7535BC9312020CFF0037EC45 /* SpeechInputClientMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SpeechInputClientMock.h; path = mock/SpeechInputClientMock.h; sourceTree = "<group>"; };
     
    95599560                930908900AF7EDE40081DF01 /* HitTestRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HitTestRequest.h; sourceTree = "<group>"; };
    95609561                930FC6891072B9280045293E /* TextRenderingMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextRenderingMode.h; sourceTree = "<group>"; };
     9562                93153BCC1417FBBF00FCF5BE /* deleteButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "deleteButton@2x.png"; sourceTree = "<group>"; };
     9563                93153BCE1417FBDB00FCF5BE /* deleteButtonPressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "deleteButtonPressed@2x.png"; sourceTree = "<group>"; };
     9564                93153BD914181F7A00FCF5BE /* missingImage@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "missingImage@2x.png"; sourceTree = "<group>"; };
     9565                93153BDB141959BB00FCF5BE /* textAreaResizeCorner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = textAreaResizeCorner.png; sourceTree = "<group>"; };
     9566                93153BDD141959F400FCF5BE /* deleteButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = deleteButton.png; sourceTree = "<group>"; };
     9567                93153BDF14195A2800FCF5BE /* deleteButtonPressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = deleteButtonPressed.png; sourceTree = "<group>"; };
     9568                93153BE114195A5700FCF5BE /* missingImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = missingImage.png; sourceTree = "<group>"; };
     9569                93153BE314195B2900FCF5BE /* inputSpeech.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = inputSpeech.png; sourceTree = "<group>"; };
    95619570                931BCC601124DFCB00BE70DD /* MediaCanStartListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaCanStartListener.h; sourceTree = "<group>"; };
    95629571                9327A94109968D1A0068A546 /* HTMLOptionsCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLOptionsCollection.cpp; sourceTree = "<group>"; };
     
    96789687                9363B62B0F8E8FE000803810 /* HistoryPropertyList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryPropertyList.h; sourceTree = "<group>"; };
    96799688                936DD03A09CEAC270056AE8C /* Range.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Range.idl; sourceTree = "<group>"; };
     9689                9370918C1416D86B00477333 /* textAreaResizeCorner@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "textAreaResizeCorner@2x.png"; sourceTree = "<group>"; };
    96809690                93799EF60BF2743600D0F230 /* RenderWordBreak.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderWordBreak.cpp; sourceTree = "<group>"; };
    96819691                93799EF70BF2743600D0F230 /* RenderWordBreak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderWordBreak.h; sourceTree = "<group>"; };
     
    1063010640                AB247A6B0AFD6383003FA5FD /* RenderSlider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSlider.h; sourceTree = "<group>"; };
    1063110641                AB31C91D10AE1B8E000C7B92 /* LineClampValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LineClampValue.h; path = style/LineClampValue.h; sourceTree = "<group>"; };
    10632                 AB4261D70A2F6C9700BDD17D /* missingImage.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = missingImage.tiff; sourceTree = "<group>"; };
    1063310642                AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSHTMLSelectElementCustom.h; sourceTree = "<group>"; };
    1063410643                AB67D1A6097F3AE300F9392E /* RenderTextControl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControl.cpp; sourceTree = "<group>"; };
     
    1246212471                E4EEFFC60D34550C00469A58 /* JSAudioConstructor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioConstructor.cpp; sourceTree = "<group>"; };
    1246312472                E4EEFFC70D34550C00469A58 /* JSAudioConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioConstructor.h; sourceTree = "<group>"; };
    12464                 ED048ABB0833F132006E1E67 /* textAreaResizeCorner.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = textAreaResizeCorner.tiff; sourceTree = "<group>"; };
    1246512473                ED2BA83B09A24B91006C0AC4 /* DocumentMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentMarker.h; sourceTree = "<group>"; };
    1246612474                ED501DC50B249F2900AE18D9 /* EditorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; name = EditorMac.mm; path = mac/EditorMac.mm; sourceTree = "<group>"; };
     
    1317813186                                46D4F2470AF97E810035385A /* contextMenuCursor.png */,
    1317913187                                4614A1FD0B23A8D600446E1C /* copyCursor.png */,
    13180                                 1C14E76A0AD8C81C00B6158B /* deleteButton.tiff */,
    13181                                 1C14E7690AD8C81C00B6158B /* deleteButtonPressed.tiff */,
     13188                                93153BDD141959F400FCF5BE /* deleteButton.png */,
     13189                                93153BCC1417FBBF00FCF5BE /* deleteButton@2x.png */,
     13190                                93153BDF14195A2800FCF5BE /* deleteButtonPressed.png */,
     13191                                93153BCE1417FBDB00FCF5BE /* deleteButtonPressed@2x.png */,
    1318213192                                85136C890AED665800F90A3D /* eastResizeCursor.png */,
    1318313193                                85136C8A0AED665800F90A3D /* eastWestResizeCursor.png */,
    1318413194                                85136C8B0AED665800F90A3D /* helpCursor.png */,
    13185                                 750D02C011D0EE7D00BD1B27 /* inputSpeech.tiff */,
     13195                                93153BE314195B2900FCF5BE /* inputSpeech.png */,
    1318613196                                85136C8C0AED665800F90A3D /* linkCursor.png */,
    1318713197                                BCAD1808131C7A0D00990406 /* Localizable.strings */,
    13188                                 AB4261D70A2F6C9700BDD17D /* missingImage.tiff */,
     13198                                93153BE114195A5700FCF5BE /* missingImage.png */,
     13199                                93153BD914181F7A00FCF5BE /* missingImage@2x.png */,
    1318913200                                85136C8D0AED665800F90A3D /* moveCursor.png */,
    1319013201                                46F9D5DB0B0D60170028EE36 /* noDropCursor.png */,
     
    1320013211                                85136C950AED665900F90A3D /* southResizeCursor.png */,
    1320113212                                85136C960AED665900F90A3D /* southWestResizeCursor.png */,
    13202                                 ED048ABB0833F132006E1E67 /* textAreaResizeCorner.tiff */,
     13213                                93153BDB141959BB00FCF5BE /* textAreaResizeCorner.png */,
     13214                                9370918C1416D86B00477333 /* textAreaResizeCorner@2x.png */,
    1320313215                                46D4F2480AF97E810035385A /* verticalTextCursor.png */,
    1320413216                                85136C970AED665900F90A3D /* waitCursor.png */,
     
    2359323605                                46D4F24A0AF97E810035385A /* contextMenuCursor.png in Resources */,
    2359423606                                4614A1FE0B23A8D600446E1C /* copyCursor.png in Resources */,
    23595                                 1C14E76C0AD8C81C00B6158B /* deleteButton.tiff in Resources */,
    23596                                 1C14E76B0AD8C81C00B6158B /* deleteButtonPressed.tiff in Resources */,
    2359723607                                85136C990AED665900F90A3D /* eastResizeCursor.png in Resources */,
    2359823608                                85136C9A0AED665900F90A3D /* eastWestResizeCursor.png in Resources */,
    2359923609                                85136C9B0AED665900F90A3D /* helpCursor.png in Resources */,
    23600                                 750D02C111D0EE7D00BD1B27 /* inputSpeech.tiff in Resources */,
    2360123610                                85136C9C0AED665900F90A3D /* linkCursor.png in Resources */,
    2360223611                                BCAD180A131C7A0D00990406 /* Localizable.strings in Resources */,
    2360323612                                1CDC14050DD3934C006EACD3 /* localizedStrings.js in Resources */,
    23604                                 AB4261D80A2F6C9700BDD17D /* missingImage.tiff in Resources */,
    2360523613                                85136C9D0AED665900F90A3D /* moveCursor.png in Resources */,
    2360623614                                46F9D5DE0B0D60170028EE36 /* noDropCursor.png in Resources */,
     
    2361623624                                85136CA50AED665900F90A3D /* southResizeCursor.png in Resources */,
    2361723625                                85136CA60AED665900F90A3D /* southWestResizeCursor.png in Resources */,
    23618                                 ED048ABC0833F132006E1E67 /* textAreaResizeCorner.tiff in Resources */,
    2361923626                                46D4F24B0AF97E810035385A /* verticalTextCursor.png in Resources */,
    2362023627                                85136CA70AED665900F90A3D /* waitCursor.png in Resources */,
     
    2362223629                                1AB1AE7A0C051FDE00139F4F /* zoomInCursor.png in Resources */,
    2362323630                                1AB1AE7B0C051FDE00139F4F /* zoomOutCursor.png in Resources */,
     23631                                9370918D1416D86B00477333 /* textAreaResizeCorner@2x.png in Resources */,
     23632                                93153BCD1417FBBF00FCF5BE /* deleteButton@2x.png in Resources */,
     23633                                93153BCF1417FBDB00FCF5BE /* deleteButtonPressed@2x.png in Resources */,
     23634                                93153BDA14181F7A00FCF5BE /* missingImage@2x.png in Resources */,
     23635                                93153BDC141959BC00FCF5BE /* textAreaResizeCorner.png in Resources */,
     23636                                93153BDE141959F400FCF5BE /* deleteButton.png in Resources */,
     23637                                93153BE014195A2800FCF5BE /* deleteButtonPressed.png in Resources */,
     23638                                93153BE214195A5700FCF5BE /* missingImage.png in Resources */,
     23639                                93153BE414195B2A00FCF5BE /* inputSpeech.png in Resources */,
    2362423640                        );
    2362523641                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/editing/DeleteButtonController.cpp

    r90517 r94900  
    4242#include "Image.h"
    4343#include "Node.h"
     44#include "Page.h"
    4445#include "Range.h"
    4546#include "RemoveNodeCommand.h"
     
    241242    style->setProperty(CSSPropertyVisibility, CSSValueVisible);
    242243
    243     RefPtr<Image> buttonImage = Image::loadPlatformResource("deleteButton");
     244    float deviceScaleFactor = Page::deviceScaleFactor(m_frame);
     245    RefPtr<Image> buttonImage;
     246    if (deviceScaleFactor >= 2)
     247        buttonImage = Image::loadPlatformResource("deleteButton@2x");
     248    else
     249        buttonImage = Image::loadPlatformResource("deleteButton");
     250
    244251    if (buttonImage->isNull())
    245252        return;
  • trunk/Source/WebCore/loader/cache/CachedImage.cpp

    r94003 r94900  
    114114}
    115115
    116 static Image* brokenImage()
    117 {
    118     DEFINE_STATIC_LOCAL(RefPtr<Image>, brokenImage, (Image::loadPlatformResource("missingImage")));
    119     return brokenImage.get();
     116Image* CachedImage::brokenImage(float deviceScaleFactor) const
     117{
     118    if (deviceScaleFactor >= 2) {
     119        DEFINE_STATIC_LOCAL(Image*, brokenImageHiRes, (Image::loadPlatformResource("missingImage@2x").leakRef()));
     120        return brokenImageHiRes;
     121    }
     122
     123    DEFINE_STATIC_LOCAL(Image*, brokenImageLoRes, (Image::loadPlatformResource("missingImage").leakRef()));
     124    return brokenImageLoRes;
    120125}
    121126
     
    124129    ASSERT(!isPurgeable());
    125130
    126     if (errorOccurred() && m_shouldPaintBrokenImage)
    127         return brokenImage();
     131    if (errorOccurred() && m_shouldPaintBrokenImage) {
     132        // Returning the 1x broken image is non-ideal, but we cannot reliably access the appropriate
     133        // deviceScaleFactor from here. It is critical that callers use CachedImage::brokenImage()
     134        // when they need the real, deviceScaleFactor-appropriate broken image icon.
     135        return brokenImage(1);
     136    }
    128137
    129138    if (m_image)
  • trunk/Source/WebCore/loader/cache/CachedImage.h

    r87239 r94900  
    4747    Image* image() const; // Returns the nullImage() if the image is not available yet.
    4848    bool hasImage() const { return m_image.get(); }
     49
     50    Image* brokenImage(float deviceScaleFactor) const;
    4951
    5052    bool canRender(float multiplier) const { return !errorOccurred() && !imageSize(multiplier).isEmpty(); }
  • trunk/Source/WebCore/page/Page.cpp

    r94889 r94900  
    653653}
    654654
     655float Page::deviceScaleFactor(Frame* frame)
     656{
     657    if (!frame)
     658        return 1;
     659    Page* page = frame->page();
     660    if (!page)
     661        return 1;
     662    return page->deviceScaleFactor();
     663}
     664
    655665void Page::didMoveOnscreen()
    656666{
  • trunk/Source/WebCore/page/Page.h

    r94889 r94900  
    250250        float deviceScaleFactor() const { return m_deviceScaleFactor; }
    251251        void setDeviceScaleFactor(float);
     252        static float deviceScaleFactor(Frame*);
    252253
    253254        // Notifications when the Page starts and stops being presented via a native window.
  • trunk/Source/WebCore/platform/graphics/mac/ImageMac.mm

    r68054 r94900  
    5656{
    5757    NSBundle *bundle = [NSBundle bundleForClass:[WebCoreBundleFinder class]];
    58     NSString *imagePath = [bundle pathForResource:[NSString stringWithUTF8String:name] ofType:@"tiff"];
     58    NSString *imagePath = [bundle pathForResource:[NSString stringWithUTF8String:name] ofType:@"png"];
    5959    NSData *namedImageData = [NSData dataWithContentsOfFile:imagePath];
    6060    if (namedImageData) {
  • trunk/Source/WebCore/rendering/RenderImage.cpp

    r93441 r94900  
    8585    ASSERT_ARG(newImage, newImage->image());
    8686
     87    Image* brokenImage = newImage->brokenImage(Page::deviceScaleFactor(frame()));
     88
    8789    // imageSize() returns 0 for the error image. We need the true size of the
    8890    // error image, so we have to get it by grabbing image() directly.
    89     return IntSize(paddingWidth + newImage->image()->width() * style()->effectiveZoom(), paddingHeight + newImage->image()->height() * style()->effectiveZoom());
     91    return IntSize(paddingWidth + brokenImage->width() * style()->effectiveZoom(), paddingHeight + brokenImage->height() * style()->effectiveZoom());
    9092}
    9193
     
    269271
    270272            if (m_imageResource->errorOccurred() && !image->isNull() && usableWidth >= image->width() && usableHeight >= image->height()) {
     273                float deviceScaleFactor = Page::deviceScaleFactor(frame());
     274                // Call brokenImage() explicitly to ensure we get the broken image icon at the appropriate resolution.
     275                image = m_imageResource->cachedImage()->brokenImage(deviceScaleFactor);
     276                IntSize imageSize = image->size();
     277                if (deviceScaleFactor >= 2)
     278                    imageSize.scale(0.5);
    271279                // Center the error image, accounting for border and padding.
    272                 LayoutUnit centerX = (usableWidth - image->width()) / 2;
     280                LayoutUnit centerX = (usableWidth - imageSize.width()) / 2;
    273281                if (centerX < 0)
    274282                    centerX = 0;
    275                 LayoutUnit centerY = (usableHeight - image->height()) / 2;
     283                LayoutUnit centerY = (usableHeight - imageSize.height()) / 2;
    276284                if (centerY < 0)
    277285                    centerY = 0;
    278286                imageOffset = LayoutSize(leftBorder + leftPad + centerX + 1, topBorder + topPad + centerY + 1);
    279                 context->drawImage(image.get(), style()->colorSpace(), paintOffset + imageOffset);
     287                context->drawImage(image.get(), style()->colorSpace(), IntRect(paintOffset + imageOffset, imageSize));
    280288                errorPictureDrawn = true;
    281289            }
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r94777 r94900  
    24152415}
    24162416
     2417void RenderLayer::drawPlatformResizerImage(GraphicsContext* context, LayoutRect resizerCornerRect)
     2418{
     2419    float deviceScaleFactor = Page::deviceScaleFactor(renderer()->frame());
     2420    printf("RenderLayer deviceScaleFactor=%f\n", deviceScaleFactor);
     2421
     2422    RefPtr<Image> resizeCornerImage;
     2423    IntSize cornerResizerSize;
     2424    if (deviceScaleFactor >= 2) {
     2425        DEFINE_STATIC_LOCAL(Image*, resizeCornerImageHiRes, (Image::loadPlatformResource("textAreaResizeCorner@2x").leakRef()));
     2426        resizeCornerImage = resizeCornerImageHiRes;
     2427        cornerResizerSize = resizeCornerImage->size();
     2428        cornerResizerSize.scale(0.5);
     2429    } else {
     2430        DEFINE_STATIC_LOCAL(Image*, resizeCornerImageLoRes, (Image::loadPlatformResource("textAreaResizeCorner").leakRef()));
     2431        resizeCornerImage = resizeCornerImageLoRes;
     2432        cornerResizerSize = resizeCornerImage->size();
     2433    }
     2434
     2435    IntRect imageRect(resizerCornerRect.maxXMaxYCorner() - cornerResizerSize, cornerResizerSize);
     2436    context->drawImage(resizeCornerImage.get(), renderer()->style()->colorSpace(), imageRect);
     2437}
     2438
    24172439void RenderLayer::paintResizer(GraphicsContext* context, const LayoutPoint& paintOffset, const LayoutRect& damageRect)
    24182440{
     
    24382460    }
    24392461
    2440     // Paint the resizer control.
    2441     DEFINE_STATIC_LOCAL(RefPtr<Image>, resizeCornerImage, (Image::loadPlatformResource("textAreaResizeCorner")));
    2442     LayoutPoint imagePoint(absRect.maxX() - resizeCornerImage->width(), absRect.maxY() - resizeCornerImage->height());
    2443     context->drawImage(resizeCornerImage.get(), box->style()->colorSpace(), imagePoint);
     2462    drawPlatformResizerImage(context, absRect);
    24442463
    24452464    // Draw a frame around the resizer (1px grey line) if there are any scrollbars present.
  • trunk/Source/WebCore/rendering/RenderLayer.h

    r94741 r94900  
    612612    void updateResizerStyle();
    613613
     614    void drawPlatformResizerImage(GraphicsContext*, LayoutRect resizerCornerRect);
     615
    614616    void updatePagination();
    615617    bool isPaginated() const { return m_isPaginated; }
Note: See TracChangeset for help on using the changeset viewer.