Skip to content
  • darin's avatar
    Reviewed by Adele. · f5427d25
    darin authored
            - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8123
              focus ring on new text field doesn't look like the old one
    
            - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7685
              Focus ring color should change to match graphite when system theme is graphite
    
            - some cleanup to how we parse user agent style sheets
    
            * css/CSSValueKeywords.in: Added -webkit-focus-ring-color.
    
            * css/cssstyleselector.cpp:
            (WebCore::parseUASheet): Parse an array of chars instead of UTF-16.
            Cuts the size of the style sheet in half.
            (WebCore::CSSStyleSelector::applyProperty): Allow negative value for
            outline-offset. Changed shadow parsing to use getColorFromPrimitiveValue
            instead of repeating the same logic.
            (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Added a case
            for the focus ring color.
            * rendering/render_style.h: (WebCore::RenderStyle::setOutlineOffset):
            Changed to allow negative values.
    
            * css/html4.css: Removed a lot of excess spaces. Changed color of focus
            to -webkit-focus-ring-color. Changed width of focus to 5px.
            Added an outline-offset for <input type=text> of -2px.
    
            * css/cssparser.cpp:
            (WebCore::CSSParser::parseValue): Added focus ring color as an outline color all
            the time, and as any other color when not in strict mode. I'm confused about what's
            best for this whole strict mode policy, and I may need advice on Hyatt to perfect
            this one later.
            (WebCore::CSSParser::parseColorFromValue): Removed code to pin r, g, and b because
            the functions in platform already take care of that. Kept the pinning of a, though
            because that's done in floating point before converting to an integer.
            (WebCore::CSSParser::parseShadow): Allow focus ring color when not in strict mode.
    
            * bridge/mac/FrameMac.h: Eliminated the virtual detachFromView function.
            * bridge/mac/FrameMac.mm:
            (WebCore::FrameMac::FrameMac): Eliminated code to maintain the frame instances list.
            (WebCore::FrameMac::~FrameMac): Ditto.
            (WebCore::Frame::setNeedsReapplyStyles): Added.
    
            * bridge/mac/WebCoreSettings.mm: (-[WebCoreSettings _updateAllViews]):
            * platform/mac/WebCoreTextRendererFactory.mm:
            (-[WebCoreTextRendererFactory clearCaches]):
            Changed to call the new Page::setNeedsReapplyStylesForSettingsChange instead of using the
            obsolete Frame::instances.
    
            * page/Frame.h: Removed instances, mutableInstances, and detachFromView.
            * page/Frame.cpp: Ditto.
    
            * page/FrameTree.cpp:
            (WebCore::FrameTree::~FrameTree): Call setView(0) instead of detachFromView().
            (WebCore::FrameTree::removeChild): Ditto.
    
            * page/Page.h:
            * page/Page.cpp:
            (WebCore::Page::init): Added a set of pages instead of a page count. Also
            register a function for when the focus ring color changes the first time this
            is called.
            (WebCore::Page::~Page): Call setView(0) instead of detachFromView. Also update
            to manager the set of pages.
            (WebCore::Page::setNeedsReapplyStyles): Call setNeedsReapplyStyles on all frames.
            (WebCore::Page::setNeedsReapplyStylesForSettingsChange): Call setNeedsReapplyStyles
            on all frames with the passed-in settings.
    
            * css/make-css-file-arrays.pl: Changed to run the C preprocessor on the
            input files and to generate an array of char instead of unsigned short.
    
            * platform/PlatformString.h: Added a constructor that takes a char* and
            a length.
            * platform/String.cpp: (WebCore::String::String): Ditto.
    
            * WebCore.xcodeproj/project.pbxproj: Just some tweaks; adding in a few files like
            the user agent style sheets.
    
            * platform/Color.h: Removed all use of DeprecatedString. Cleaned up a bit.
            Added focusRingColor and setFocusRingColorChangeFunction.
            * platform/Color.cpp:
            (WebCore::makeRGB): Rewrote using max and min.
            (WebCore::makeRGBA): Ditto.
            (WebCore::parseHexColor): Cleaned up a bit; changed partway to String instead of
            DeprecatedString.
            (WebCore::Color::Color): Changed to use String and to call setNamedColor to save code.
            (WebCore::Color::setNamedColor): Changed to use String in the interface.
    
            * platform/mac/ColorMac.mm:
            (WebCore::observeTheme): Added. Function used to start up the observer.
            (WebCore::setFocusRingColorChangeFunction): Added. Used to get a call back so we can
            update all the views when the color changes (including recomputing style to get the
            color change in).
            (WebCore::setFocusRingColorChangeFunction): Added. Returns one of the two focus
            ring colors. Both of these match what AppKit uses -- neither matches what we used
            to have in the html4.css file.
            (+[WebCoreControlTintObserver controlTintDidChange]): Added. Used to update when
            the appearance is changed from blue to graphite and back. We keep a global so we
            don't have to call over to AppKit every time; that's probably overkill but we need
            the obsever for the color change function anyway.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    f5427d25