⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 26, 2013:

11:55 PM Changeset in webkit [150735] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Make screen updates dependent on the existence of a drawing buffer.
https://bugs.webkit.org/show_bug.cgi?id=116539
Internal PR 330917

Patch by Jakob Petsovits <jpetsovits@blackberry.com> on 2013-05-26
Reviewed by Carlos Garcia Campos.
Internally reviewed by Xiaobo Wang and Arvid Nilsson.

This reduces complexity by relying on the current state,
rather than the suspend counter, which in turn makes it
possible to simplify the code in setCompositor().

  • Api/BackingStore.cpp:

(BlackBerry::WebKit::BackingStorePrivate::updateSuspendScreenUpdateState):
(BlackBerry::WebKit::BackingStorePrivate::createSurfaces):

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setCompositor):

7:33 PM Changeset in webkit [150734] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

CSSParser::parseImageResolution doesn't need a parameter.
https://bugs.webkit.org/show_bug.cgi?id=116755

Patch by Jaehun Lim <ljaehun.lim@samsung.com> on 2013-05-26
Reviewed by Darin Adler.

parseImageResolution() can get CSSPraserValueList from m_valueList directly.

No new tests, no behavior change.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseImageResolution):

  • css/CSSParser.h:
7:07 PM Changeset in webkit [150733] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Turn TreeScope::focusedNode() into focusedElement().
<http://webkit.org/b/116802>

Reviewed by Darin Adler.

For the hundredth time, only Elements can be focused!

This change mostly reverts r121079 since that made things unnecessarily complicated
just to tweak the behavior of ShadowRoot.activeElement, an API that we don't expose.
Finding a TreeScope's focused element now does a simple walk up the parent chain instead
of running the full Shadow DOM re-targeting algorithm.

(WebCore::TreeScope::focusedElement):

Simplify and return Element* instead of Node*.

  • dom/TreeScope.h:
  • dom/TreeScope.cpp:

(WebCore::focusedFrameOwnerElement):

Make this return Element* as the name already suggested.

  • dom/Document.cpp:

(WebCore::Document::removeFocusedNodeOfSubtree):

  • dom/Element.cpp:

(WebCore::Element::blur):

  • dom/ShadowRoot.h:

(WebCore::ShadowRoot::activeElement):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::activeElement):

Simplified call sites that were paranoid about getting a non-Element focused node.

6:57 PM Changeset in webkit [150732] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

The public WK header file should not include WKAPICast.h
https://bugs.webkit.org/show_bug.cgi?id=115230

Patch by Changhun Kang <temoochin@company100.net> on 2013-05-26
Reviewed by Darin Adler.

Otherwise, WebKit internal headers are exposed.
No new tests. No change in behavior.

  • UIProcess/API/C/soup/WKSoupRequestManager.h:
  • UIProcess/soup/WebSoupRequestManagerClient.h:
6:44 PM Changeset in webkit [150731] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Plugins with no src but valid type should not snapshot
https://bugs.webkit.org/show_bug.cgi?id=116799
<rdar://problem/13695911>

Reviewed by Simon Fraser.

There are a few plug-ins around that don't take any source content
via the src attribute, but rather just load the binary based on the
mime-type. In those cases we shouldn't snapshot until we have a
mechanism to do so.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):

Add MIMEType logging, and detect the case of no src but valid type.

  • html/HTMLPlugInImageElement.h: Add another SnapshotReason enum for

this special case.

6:41 PM Changeset in webkit [150730] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Encapsulate FontGlyphs
https://bugs.webkit.org/show_bug.cgi?id=116803

Reviewed by Andreas Kling.

FontGlyphs is unfriending Font. Give it a real class interface and some actual code.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font):

  • platform/graphics/Font.h:

(WebCore::Font::glyphDataForCharacter):
(WebCore::Font::glyphDataAndPageForCharacter):

  • platform/graphics/FontFallbackList.cpp:

(WebCore::FontGlyphs::FontGlyphs):
(WebCore::isInRange):
(WebCore::shouldIgnoreRotation):
(WebCore::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation):

Helpers from FontFastPath.cpp.

(WebCore::FontGlyphs::glyphDataAndPageForCharacter):

This is the primary interface. The code moves here from FontFastPath.cpp.

  • platform/graphics/FontFallbackList.h:

(WebCore::FontGlyphs::createForPlatformData):

Remove setPlatformData in favor of constructor.

(WebCore::FontGlyphs::primarySimpleFontData):

  • platform/graphics/FontFastPath.cpp:
  • platform/graphics/GraphicsContext.h:

Remove a stray function definition also called setPlatformFont().

  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

6:25 PM Changeset in webkit [150729] by Patrick Gansterer
  • 2 edits in trunk/Source/WTF

[WINCE] Add wtf_bsearch()
https://bugs.webkit.org/show_bug.cgi?id=116528

Reviewed by Darin Adler.

r149833 introduced usage of ::bsearch(), which does not exist on Windwos CE.
Add our own implementation of this function as wtf_bsearch and define
bsearch as wtf_bsearch to fix compilation on Windwos CE.

  • wtf/StdLibExtras.h:

(wtf_bsearch):

5:00 PM Changeset in webkit [150728] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove a leftover CALENDAR_PICKER from LocaleNone.cpp
https://bugs.webkit.org/show_bug.cgi?id=116800

Patch by Seokju Kwon <Seokju Kwon> on 2013-05-26
Reviewed by Kent Tamura.

No new tests, no behavior change.

  • platform/text/LocaleNone.cpp:

(LocaleNone):

4:39 PM Changeset in webkit [150727] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Rename FontFallbackList to FontGlyphs
https://bugs.webkit.org/show_bug.cgi?id=116797

Reviewed by Andreas Kling.

Maybe it was a fallback list once. Nowadays its purpose is to cache realized glyphs and related data.

File renaming will be done separately.

  • WebCore.exp.in:
  • platform/graphics/Font.cpp:

(WebCore::Font::Font):
(WebCore::Font::operator=):
(WebCore::Font::operator==):

Refactored to early return style.

(WebCore::Font::update):
(WebCore::Font::width):

  • platform/graphics/Font.h:

(Font):
(WebCore::Font::glyphs):
(WebCore::Font::loadingCustomFonts):
(WebCore::Font::primaryFont):
(WebCore::Font::fontDataAt):
(WebCore::Font::isFixedPitch):
(WebCore::Font::fontSelector):

  • platform/graphics/FontCache.h:

(FontCache):

  • platform/graphics/FontFallbackList.cpp:

(WebCore::FontGlyphs::FontGlyphs):
(WebCore::FontGlyphs::invalidate):
(WebCore::FontGlyphs::releaseFontData):
(WebCore::FontGlyphs::determinePitch):
(WebCore::FontGlyphs::realizeFontDataAt):

Renamed for clarity along with m_fontList -> m_realizedFontData.

(WebCore::FontGlyphs::setPlatformFont):

  • platform/graphics/FontFallbackList.h:

(FontGlyphs):
(WebCore::FontGlyphs::GlyphPagesStateSaver::GlyphPagesStateSaver):
(WebCore::FontGlyphs::GlyphPagesStateSaver::~GlyphPagesStateSaver):
(GlyphPagesStateSaver):
(WebCore::FontGlyphs::create):
(WebCore::FontGlyphs::~FontGlyphs):
(WebCore::FontGlyphs::primaryFontData):

  • platform/graphics/FontFastPath.cpp:

(WebCore::Font::glyphDataAndPageForCharacter):

  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

4:23 PM Changeset in webkit [150726] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Yet another WKR build fix. Sorry for the mess. It seems like I can't win today :(

  • Scripts/webkitpy/tool/commands/newcommitbot.py:

(NewCommitBot.next_work_item):

3:44 PM Changeset in webkit [150725] by rniwa@webkit.org
  • 3 edits in trunk/Tools

WKR and webkitbot build fixes.

  • Scripts/webkitpy/tool/bot/irc_command.py:

(RollChromiumDEPS.execute):

  • Scripts/webkitpy/tool/commands/newcommitbot.py:

(NewCommitBot.next_work_item):

3:35 PM Changeset in webkit [150724] by tkent@chromium.org
  • 13 edits
    2 deletes in trunk/Source

Remove ENABLE_CALENDAR_PICKER
https://bugs.webkit.org/show_bug.cgi?id=116795

Reviewed by Ryosuke Niwa.

Source/WebCore:

This feature was used only by Chromium port.

  • Resources/pagepopups/calendarPicker.css: Removed.
  • Resources/pagepopups/calendarPicker.js: Removed.
  • css/html.css:
  • platform/text/LocaleICU.cpp:

(WebCore::LocaleICU::LocaleICU):
(WebCore):

  • platform/text/LocaleICU.h:

(LocaleICU):

  • platform/text/PlatformLocale.h:

(Locale):

  • platform/text/mac/LocaleMac.h:

(LocaleMac):

  • platform/text/mac/LocaleMac.mm:

(WebCore::LocaleMac::monthLabels):

  • platform/text/win/LocaleWin.cpp:

(WebCore::LocaleWin::LocaleWin):
(WebCore::LocaleWin::monthLabels):

  • platform/text/win/LocaleWin.h:

(LocaleWin):

Source/WebKit/blackberry:

  • WebCoreSupport/AboutDataEnableFeatures.in:

The list was wrong. Blackberry port doesn't use CALENDAR_PICKER code.

Source/WTF:

  • wtf/FeatureDefines.h:
3:32 PM Changeset in webkit [150723] by rniwa@webkit.org
  • 2 edits in trunk/Tools

roll-chromium-deps doesn't repeat the full name.

Rubber-stamped by Andreas Kling.

  • Scripts/webkitpy/tool/bot/irc_command.py:

(RollChromiumDEPS.execute):

3:23 PM Changeset in webkit [150722] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

Move :active chain participation state from Node to Element.
<http://webkit.org/b/116786>

Reviewed by Antti Koivisto.

Only Elements can be in the :active chain so move the logic there from Node.

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

Add isElementNode() type checks when updating the :active chain.

  • dom/Node.h:
  • dom/Node.cpp:

(WebCore::Node::detach):

  • dom/Element.cpp:

(WebCore::Element::detach):

Move the remaining logic for detaching from the UserActionElementSet to Element.

(WebCore::Element::isUserActionElementInActiveChain):

  • dom/Element.h:

(WebCore::Element::inActiveChain):

Move all the :active chain stuff from Node to Element.

  • dom/UserActionElementSet.cpp:

(WebCore::UserActionElementSet::didDetach):

  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::isInActiveChain):
(WebCore::UserActionElementSet::setInActiveChain):

UserActionElementSet now only takes Element* in its API.

11:44 AM Changeset in webkit [150721] by fpizlo@apple.com
  • 2 edits in branches/dfgFourthTier/Source/JavaScriptCore

fourthTier: cti_optimize shouldn't allow GCs to get in the way of it seeing the state of its CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=116748

Reviewed by Geoffrey Garen.

This fixes the following race: an optimized version of our code block could be installed
by the GC just as we return from completeAllReadyPlansForVM(), leading us to believe
that the code block isn't ready yet even though it is. Currently this triggers a
RELEASE_ASSERT. We could remove that assertion, but then this case would lead to the
code in question entering into optimizeAfterWarmUp mode. That seems pretty wasteful.

Fix the bug, and hopefully close the door on these bugs for a while, by wrapping
cti_optimize in a DeferGC. There is little downside to doing so since the only
"allocations" in cti_optimize are the ones where we inform the GC about extra memory
usage.

I had a more comprehensive solution (see the bug, "work in progress" patch) but that
one involved adding *more* raciness to cti_optimize. I decided that was a less good
approach once I came to appreciate the simplicity of just using DeferGC.

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

10:42 AM Changeset in webkit [150720] by fpizlo@apple.com
  • 4 edits
    9 adds in branches/dfgFourthTier

Merge trunk r150694.

Source/JavaScriptCore:

2013-05-25 Filip Pizlo <fpizlo@apple.com>


We broke (-231/-1)|0 in the DFG
https://bugs.webkit.org/show_bug.cgi?id=116767


Reviewed by Andreas Kling.


The bug is that we were assuming that in the -231 case, we already had -231
in the result register. This was a wrong assumption.


  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForX86):

LayoutTests:

2013-05-25 Filip Pizlo <fpizlo@apple.com>


We broke (-231/-1)|0 in the DFG
https://bugs.webkit.org/show_bug.cgi?id=116767


Reviewed by Andreas Kling.


  • fast/js/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc.html: Added.
  • fast/js/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc.html: Added.
  • fast/js/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc.html: Added.
  • fast/js/jsc-test-list:
  • fast/js/script-tests/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc.js: Added. (foo):
  • fast/js/script-tests/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc.js: Added. (foo):
  • fast/js/script-tests/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc.js: Added. (foo):
9:20 AM Changeset in webkit [150719] by Antti Koivisto
  • 8 edits
    2 deletes in trunk/Source/WebCore

Remove FontFamily.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=116788

Reviewed by Anders Carlsson.

Empty files.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/FontDescription.h:
  • platform/graphics/FontFamily.cpp: Removed.
  • platform/graphics/FontFamily.h: Removed.
8:15 AM Changeset in webkit [150718] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit/win

Another build fix.

Not reviewed.

  • DOMCoreClasses.cpp:

(DOMElement::font):

  • FullscreenVideoController.cpp:

(FullscreenVideoController::draw):

8:11 AM Changeset in webkit [150717] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit/win

Build fix

Not reviewed.

  • WebKitGraphics.cpp:

(makeFont):

7:50 AM Changeset in webkit [150716] by Antti Koivisto
  • 29 edits in trunk/Source/WebCore

Use Vector instead of custom linked list for font families
https://bugs.webkit.org/show_bug.cgi?id=116783

Reviewed by Andreas Kling.

Get rid of FontFamily and SharedFontFamily.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::hasSameFont):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontFamilyFromStyle):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyFontFamily::applyInheritValue):
(WebCore::ApplyPropertyFontFamily::applyInitialValue):
(WebCore::ApplyPropertyFontFamily::applyValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForDocument):
(WebCore::StyleResolver::initializeFontStyle):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::font):
(WebCore::CanvasRenderingContext2D::setFont):

  • page/PrintContext.cpp:

(WebCore::PrintContext::pageProperty):

  • platform/efl/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::systemFont):

  • platform/graphics/Font.h:

(WebCore::Font::firstFamily):
(WebCore::Font::familyCount):
(WebCore::Font::familyAt):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::getFontData):

  • platform/graphics/FontDescription.cpp:

(SameSizeAsFontDescription):

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::familyCount):
(WebCore::FontDescription::firstFamily):
(WebCore::FontDescription::familyAt):
(WebCore::FontDescription::families):
(WebCore::FontDescription::useFixedDefaultSize):
(WebCore::FontDescription::setOneFamily):
(WebCore::FontDescription::setFamilies):
(WebCore::FontDescription::adoptFamilies):
(WebCore::FontDescription::operator==):

  • platform/graphics/FontFamily.cpp:
  • platform/graphics/FontFamily.h:
  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::displayCallback):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::getSimilarFontPlatformData):

  • platform/graphics/qt/FontCacheQt.cpp:

(WebCore::FontCache::getLastResortFallbackFont):

  • platform/gtk/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::systemFont):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::controlFont):

  • platform/qt/RenderThemeQStyle.cpp:

(WebCore::RenderThemeQStyle::adjustButtonStyle):

  • platform/text/transcoder/FontTranscoder.cpp:

(WebCore::FontTranscoder::converterType):

  • platform/win/DragImageWin.cpp:

(WebCore::dragLabelFont):

  • rendering/RenderText.cpp:

(WebCore::RenderText::styleDidChange):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemFont):
(WebCore::RenderThemeMac::setFontFromControlSize):

  • rendering/RenderThemeSafari.cpp:

(WebCore::RenderThemeSafari::systemFont):
(WebCore::RenderThemeSafari::setFontFromControlSize):

  • rendering/RenderThemeWin.cpp:

(WebCore::fillFontDescription):

7:29 AM Changeset in webkit [150715] by akling@apple.com
  • 17 edits in trunk/Source/WebCore

Move "active" state logic from Node to Element.
<http://webkit.org/b/116785>

Reviewed by Antti Koivisto.

Resolve another 7 year old FIXME by merging the "active" state logic from Node and ContainerNode
and moving it all to Element instead.

  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::isActive):
(WebCore::UserActionElementSet::setActive):

  • dom/ContainerNode.cpp:
  • dom/ContainerNode.h:
  • dom/Node.cpp:
  • dom/Node.h:
  • dom/Element.h:

(WebCore::Element::active):

  • dom/Element.cpp:

(WebCore::Element::isUserActionElementActive):
(WebCore::Element::setActive):

Moved here from Node/ContainerNode.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isPressed):

  • dom/Document.cpp:

(WebCore::Document::setFocusedNode):
(WebCore::Document::updateHoverActiveState):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isPressed):
(WebCore::RenderTheme::isSpinUpButtonPartPressed):

  • rendering/RenderThemeMac.mm:

(WebCore::getMediaUIPartStateFlags):
(WebCore::RenderThemeMac::updatePressedState):

  • platform/qt/RenderThemeQt.cpp:

(WebCore::RenderThemeQt::getMediaControlForegroundColor):

Check that the inspected Node is an Element before asking if it's active.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setActive):

Call the right superclass.

  • html/HTMLAnchorElement.h:
  • html/HTMLLabelElement.h:
  • html/shadow/MediaControlElementTypes.h:

Sprinkle OVERRIDE>

6:32 AM Changeset in webkit [150714] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Move Node::dispatchSimulatedClick() to Element.
<http://webkit.org/b/116784>

Reviewed by Antti Koivisto.

Only Elements use the dispatchSimulatedClick() functionality, so move it there.

  • dom/Node.cpp:
  • dom/Node.h:
  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchSimulatedClick):

  • dom/EventDispatcher.h:
  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchSimulatedClick):

5:10 AM Changeset in webkit [150713] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

TreeScope::rootNode() should return a ContainerNode.
<http://webkit.org/b/116782>

Reviewed by Antti Koivisto.

The rootNode() of a TreeScope is always a ContainerNode, so update pointer types to reflect that.
This lets us take advantage of Antti's optimized traversal functions.

  • dom/ContainerNode.h:

(WebCore::Node::isTreeScope):

  • dom/Document.cpp:

(WebCore::Document::buildAccessKeyMap):

  • dom/Node.cpp:

(WebCore::Node::containingShadowRoot):

  • dom/Node.h:
  • dom/TreeScope.h:

(WebCore::TreeScope::rootNode):
(TreeScope):

  • page/FocusController.cpp:

(WebCore::FocusNavigationScope::rootNode):
(WebCore::FocusNavigationScope::owner):

  • page/FocusController.h:

(FocusNavigationScope):

4:39 AM Changeset in webkit [150712] by akling@apple.com
  • 18 edits in trunk/Source

FocusController::setFocusedNode() should be setFocusedElement().
<http://webkit.org/b/116780>

Reviewed by Antti Koivisto.

Source/WebCore:

Only Elements can have focus, so make the public API of FocusController take Element*.

  • WebCore.exp.in:
  • page/FocusController.h:
  • page/FocusController.cpp:

(WebCore::FocusController::setFocusedElement):

Out with the setFocusedNode(), in with the setFocusedElement().

  • dom/Element.cpp:

(WebCore::Element::focus):
(WebCore::Element::blur):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

  • plugins/PluginView.cpp:

(WebCore::PluginView::focusPluginElement):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setFocusedNodeIfNeeded):

Tweak for FocusController taking Element* instead of Node*.

(WebCore::FrameSelection::setFocusedElementIfNeeded):

Renamed from setFocusedNodeIfNeeded().

  • editing/htmlediting.h:
  • editing/htmlediting.cpp:

(WebCore::enclosingAnchorElement):

Cleaned up the loop for readability and made it return an Element.

Source/WebKit/blackberry:

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::clearFocusNode):
(BlackBerry::WebKit::WebPage::setNodeFocus):

  • WebKitSupport/SelectionHandler.cpp:

(BlackBerry::WebKit::SelectionHandler::selectObject):

Source/WebKit/win:

  • WebView.cpp:

(WebView::clearFocusNode):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::focusPluginElement):

2:43 AM Changeset in webkit [150711] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Move some form control things from Element to HTMLFormControlElement.
<http://webkit.org/b/116779>

Reviewed by Antti Koivisto.

The following methods sit better on HTMLFormControlElement than on Element:

  • formControlType()
  • wasChangedSinceLastFormControlChangeEvent()
  • setChangedSinceLastFormControlChangeEvent()
  • dispatchFormControlChangeEvent()

Moved them, and devirtualized as much as possible.

  • dom/Document.cpp:

(WebCore::Document::setFocusedNode):

Check if the old focus target is an Element before (possibly) dispatching a change event.

  • dom/Element.cpp:
  • dom/Element.h:

Removed some stub methods that were only used by HTMLFormControlElement subclasses.

  • html/HTMLFormControlElement.cpp:
  • html/HTMLFormControlElement.h:

(WebCore::isHTMLFormControlElement):
(WebCore::toHTMLFormControlElement):

Add toHTMLFormControlElement() helper with ASSERT_WITH_SECURITY_IMPLICATION.

  • html/HTMLTextFormControlElement.h:

Sprinkle OVERRIDE.

2:39 AM Changeset in webkit [150710] by akling@apple.com
  • 30 edits in trunk/Source/WebCore

Move Node::supportsFocus() to Element.
<http://webkit.org/b/116778>

Reviewed by Antti Koivisto.

Node never supports focus, so move supportsFocus() to Element instead.

  • dom/Element.h:
  • dom/Node.cpp:
  • dom/Node.h:

Removed Node::supportsFocus(), it always returned false anyway.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetFocusAttribute):

Check that the underlying Node is an Element before asking if it supports focus.

  • html/HTMLAnchorElement.h:
  • html/HTMLAreaElement.h:
  • html/HTMLBodyElement.h:
  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.h:
  • html/HTMLFormControlElement.h:
  • html/HTMLFrameElementBase.h:
  • html/HTMLMediaElement.h:
  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.h:
  • html/HTMLOutputElement.h:
  • svg/SVGAElement.h:
  • svg/SVGCircleElement.h:
  • svg/SVGEllipseElement.h:
  • svg/SVGGElement.h:
  • svg/SVGImageElement.h:
  • svg/SVGLineElement.h:
  • svg/SVGPathElement.h:
  • svg/SVGPolyElement.h:
  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.h:
  • svg/SVGSwitchElement.h:
  • svg/SVGSymbolElement.h:
  • svg/SVGTextElement.h:
  • svg/SVGUseElement.h:

OVERRIDE ALL THE THINGS!

May 25, 2013:

10:05 PM Changeset in webkit [150709] by akling@apple.com
  • 14 edits in trunk/Source/WebCore

Move Node::isFocusable() to Element.
<http://webkit.org/b/116777>

Reviewed by Anders Carlsson.

Nodes cannot be focusable, so move isFocusable() from Node to Element.

  • dom/Node.cpp:
  • dom/Node.h:
  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::isFocusable):

Moved here from Node.

  • dom/Document.cpp:

(WebCore::Document::setFocusedNode):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):

Check that the underlying node is an Element before asking if it's focusable.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

Renamed the 'anchorNode' variable to 'anchorElement' because reasons.

  • html/HTMLAreaElement.h:
  • html/HTMLFormControlElement.h:
  • html/HTMLLabelElement.h:
  • html/HTMLOptionElement.h:
  • svg/SVGAElement.h:

Sprinkle OVERRIDE.

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::setMessage):

Update a comment to refer to Element::isFocusable() instead of Node.

9:42 PM Changeset in webkit [150708] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Broken link to committers list on contributing web page
https://bugs.webkit.org/show_bug.cgi?id=116722

Patch by Bem Jones-Bey <Bem Jones-Bey> on 2013-05-25
Reviewed by Andreas Kling.

  • coding/contributing.html:

Changed broken link to point to the team page instead.

9:33 PM Changeset in webkit [150707] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

Move Node::tabIndex() to Element.
<http://webkit.org/b/116772>

Reviewed by Ryosuke Niwa.

Since only Elements are keyboard-focusable, it doesn't make sense for Node to have a tabIndex().

  • dom/Element.h:
  • dom/Node.cpp:
  • dom/Node.h:

A Node can't have a tab index, so move tabIndex() to Element.

  • page/FocusController.h:
  • page/FocusController.cpp:

(WebCore::adjustedTabIndex):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::nextElementWithGreaterTabIndex):
(WebCore::previousElementWithLowerTabIndex):
(WebCore::FocusController::nextFocusableNode):
(WebCore::FocusController::previousFocusableNode):

Make this code deal in Element* when doing tab index stuff. FocusController needs
more Node->Element cleanup, but let's do that separately.

  • html/HTMLAnchorElement.h:
  • html/HTMLElement.h:
  • html/HTMLFormControlElement.h:

Sprinkle OVERRIDE.

9:31 PM Changeset in webkit [150706] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Revert another erroneous change.

  • Scripts/webkitpy/tool/commands/newcommitbot.py:

(NewCommitBot.next_work_item):

9:13 PM Changeset in webkit [150705] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Revert an erroneous change.

  • Scripts/webkitpy/tool/commands/sheriffbot.py:

(SheriffBot):

8:39 PM Changeset in webkit [150704] by rniwa@webkit.org
  • 4 edits in trunk/Tools

Some build fixes for WKR and webkitbot.

  • Scripts/webkitpy/tool/bot/ircbot_unittest.py:

(IRCBotTest.test_help):

  • Scripts/webkitpy/tool/commands/newcommitbot.py:

(Agent):
(Agent.init):
(Agent.name):
(NewCommitBot):
(NewCommitBot.begin_work_queue):
(NewCommitBot.next_work_item):

  • Scripts/webkitpy/tool/commands/sheriffbot.py:

(SheriffBot):

8:35 PM Changeset in webkit [150703] by fpizlo@apple.com
  • 7 edits in branches/dfgFourthTier/Source/JavaScriptCore

fourthTier: FTL should support ArithDiv
https://bugs.webkit.org/show_bug.cgi?id=116771

Reviewed by Oliver Hunt.

  • ftl/FTLAbbreviations.h:

(JSC::FTL::buildDiv):
(JSC::FTL::buildRem):
(JSC::FTL::buildFDiv):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCommonValues.cpp:

(JSC::FTL::CommonValues::CommonValues):

  • ftl/FTLCommonValues.h:

(CommonValues):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithDiv):
(LowerDFGToLLVM):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::div):
(JSC::FTL::Output::rem):
(JSC::FTL::Output::doubleDiv):

8:29 PM Changeset in webkit [150702] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Don't instantiate ChildNodeLists just to get a child count.
<http://webkit.org/b/116776>

Reviewed by Ryosuke Niwa.

Use ContainerNode::childNodeCount() instead of Node::childNodes()->length().

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):

7:57 PM Changeset in webkit [150701] by rniwa@webkit.org
  • 3 edits in trunk/Tools

Teach webkitbot and WKR how to respond to yt?
https://bugs.webkit.org/show_bug.cgi?id=116775

Reviewed by Andreas Kling.

  • Scripts/webkitpy/tool/bot/irc_command.py:

(Hi): Fixed the usage string.
(Hi.execute): Made it more generic so that it works in WKR.
(YouThere): Added.
(YouThere.execute): Added.

  • Scripts/webkitpy/tool/commands/newcommitbot.py:
7:48 PM Changeset in webkit [150700] by akling@apple.com
  • 7 edits in trunk/Source

PluginDocument::pluginNode() should be pluginElement() instead.
<http://webkit.org/b/116774>

Reviewed by Anders Carlsson.

Source/WebCore:

Make PluginDocument hand out a HTMLPlugInElement* instead of a Node*.

  • dom/Document.cpp:

(WebCore::eventTargetNodeForDocument):

  • html/PluginDocument.h:
  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocument::pluginWidget):
(WebCore::PluginDocument::setPluginElement):
(WebCore::PluginDocument::detach):

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::focusedPluginViewForFrame):

7:27 PM Changeset in webkit [150699] by akling@apple.com
  • 7 edits in trunk/Source

Remove Document::getFocusableNodes().
<http://webkit.org/b/116773>

Reviewed by Joseph Pecoraro.

Source/WebCore:

This was added in r42191 and there are no remaining clients of the API.

  • dom/Document.cpp:
  • dom/Document.h:
  • WebCore.exp.in:

Source/WebKit/mac:

Remove the private _focusableNodes API on DOMDocument, it has no clients.

  • DOM/WebDOMOperations.mm:
  • DOM/WebDOMOperationsPrivate.h:
7:22 PM Changeset in webkit [150698] by Simon Fraser
  • 2 edits in trunk/Tools

Try to fix the EFL build.

  • DumpRenderTree/efl/TestRunnerEfl.cpp:

(TestRunner::setPageVisibility):

7:22 PM Changeset in webkit [150697] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

Move Node::focusDelegate() to Element.
<http://webkit.org/b/116768>

Reviewed by Anders Carlsson.

Only Element can be a focus delegate (it's currently only ever HTMLInputElement actually)
so move Node::focusDelegate() to Element. Sprinkled isElementNode() checks as needed.

  • dom/Node.cpp:
  • dom/Node.h:
  • dom/Element.h:
  • dom/Element.cpp:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::focusDelegate):

  • html/shadow/SliderThumbElement.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isFocused):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSliderThumb):

5:51 PM Changeset in webkit [150696] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Path: clean up addPathForRoundedRect()
https://bugs.webkit.org/show_bug.cgi?id=116765

Patch by Alberto Garcia <agarcia@igalia.com> on 2013-05-25
Reviewed by Andreas Kling.

Reorganize code that is a bit redundant.

No new tests, no behavior change.

  • platform/graphics/Path.cpp:

(WebCore::Path::addPathForRoundedRect):

4:56 PM Changeset in webkit [150695] by Simon Fraser
  • 35 edits in trunk

Unprefix Page Visibility API
https://bugs.webkit.org/show_bug.cgi?id=102340

Source/WebCore:

Reviewed by Tim Horton.

Remove prefixes from the document properties, and the visibilitychanged event.

Rename the "preview" state to "unloaded". The "unloaded" state is never
reached yet (see https://bugs.webkit.org/show_bug.cgi?id=116769).

Add some comments to places where we should update the visibility state
when going in and out of the page cache, but cannot safely do so yet.

Tested by existing Page Visibility tests.

  • dom/Document.cpp:

(WebCore::Document::pageVisibilityState):
(WebCore::Document::visibilityState):
(WebCore::Document::hidden):
(WebCore::Document::dispatchVisibilityStateChangeEvent):

  • dom/Document.h:
  • dom/Document.idl:
  • dom/EventNames.h:
  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):

  • page/Page.cpp:

(WebCore::Page::setVisibilityState):

  • page/PageVisibilityState.cpp:

(WebCore::pageVisibilityStateString):

  • page/PageVisibilityState.h:

Source/WebKit/efl:

Reviewed by Tim Horton.

Rename "preview" state to "unloaded" state.

  • WebCoreSupport/AssertMatchingEnums.cpp:
  • ewk/ewk_view.h:

Source/WebKit/mac:

Reviewed by Tim Horton.

Renaming of the "preview" state to "unloaded".

  • WebView/WebView.mm:
  • WebView/WebViewPrivate.h:

Source/WebKit2:

Reviewed by Tim Horton.

Renaming of the "preview" state to "unloaded".

  • Shared/API/c/WKPageVisibilityTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toPageVisibilityState):

Tools:

Reviewed by Tim Horton.

Rename "preview" state to "unloaded" state, and adjust the tests
to test for it.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setPageVisibility):

  • TestWebKitAPI/Tests/WebKit2/PageVisibilityState.cpp:

(TestWebKitAPI::setPageVisibilityStateWithEvalContinuation):
(TestWebKitAPI::didRunStep2StateChangeHiddenToPrerender):
(TestWebKitAPI::didRunStep3StateChangePrerenderToUnloaded):
(TestWebKitAPI::didRunStep4InStateUnloaded):

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.html:
  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPageVisibility):

LayoutTests:

Reviewed by Tim Horton.

Remove prefixes, adjust to state name changes.

  • fast/events/page-visibility-iframe-delete-test.html:
  • fast/events/page-visibility-iframe-move-test-expected.txt:
  • fast/events/page-visibility-iframe-move-test.html:
  • fast/events/page-visibility-iframe-propagation-test-expected.txt:
  • fast/events/page-visibility-iframe-propagation-test.html:
  • fast/events/page-visibility-null-view-expected.txt:
  • fast/events/page-visibility-null-view.html:
  • fast/events/page-visibility-transition-test-expected.txt:
  • fast/events/page-visibility-transition-test.html:
4:31 PM Changeset in webkit [150694] by fpizlo@apple.com
  • 4 edits
    9 adds in trunk

We broke (-231/-1)|0 in the DFG
https://bugs.webkit.org/show_bug.cgi?id=116767

Source/JavaScriptCore:

Reviewed by Andreas Kling.

The bug is that we were assuming that in the -231 case, we already had -231
in the result register. This was a wrong assumption.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIntegerArithDivForX86):

LayoutTests:

Reviewed by Andreas Kling.

  • fast/js/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc.html: Added.
  • fast/js/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc.html: Added.
  • fast/js/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc-expected.txt: Added.
  • fast/js/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc.html: Added.
  • fast/js/jsc-test-list:
  • fast/js/script-tests/dfg-div-by-neg1-and-then-or-zero-interesting-reg-alloc.js: Added.

(foo):

  • fast/js/script-tests/dfg-div-by-zero-and-then-or-zero-interesting-reg-alloc.js: Added.

(foo):

  • fast/js/script-tests/dfg-div-neg2tothe31-by-one-and-then-or-zero-with-interesting-reg-alloc.js: Added.

(foo):

4:13 PM Changeset in webkit [150693] by mitz@apple.com
  • 2 edits in trunk/LayoutTests

Updated expected results after r150688.

Reviewed by Andreas Kling.

  • http/tests/globalhistory/history-delegate-basic-refresh-redirect-expected.txt: Now shows

the URL that performed the client redirect, as expected.

4:09 PM Changeset in webkit [150692] by akling@apple.com
  • 21 edits in trunk/Source

Move Node::isMouseFocusable() to Element.
<http://webkit.org/b/116762>

Reviewed by Anders Carlsson.

Source/WebCore:

Node::isMouseFocusable() would just return isFocusable(), which is never true for a non-Element
since Node::supportsFocus() always returns false. So move it to Element!

  • dom/Node.h:
  • dom/Node.cpp:
  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::isMouseFocusable):

Moved here from Node.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setFocusedNodeIfNeeded):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

Walk up the parent chain with parentOrShadowHostElement() instead of parentOrShadowHostNode().
Removed a misleading no-op hunk about mouse-focusable ShadowRoots, since ShadowRoots are not
Elements and thus cannot be mouse-focusable.

  • page/TouchAdjustment.cpp:

(WebCore::TouchAdjustment::nodeRespondsToTapGesture):

Check that the Node is an Element before asking if it's mouse-focusable.

  • html/HTMLAnchorElement.h:
  • html/HTMLAreaElement.h:
  • html/HTMLFormControlElement.h:
  • html/HTMLInputElement.h:
  • html/HTMLMediaElement.h:
  • html/HTMLSelectElement.h:
  • html/HTMLTextAreaElement.h:
  • html/shadow/ClearButtonElement.h:
  • html/shadow/TextControlInnerElements.h:
  • svg/SVGAElement.h:
  • svg/SVGStyledElement.h:

Sprinkle OVERRIDE.

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::highlightPotentialActivation):

Check that the potentially activated Node is an Element before asking if it's mouse-focusable.

2:34 PM Changeset in webkit [150691] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: WebProcess is terminated when all Safari windows are closed.
<rdar://problem/13990901>
<http://webkit.org/b/116766>

Reviewed by Alexey Proskuryakov.

When closing the last page, only disconnect the web process if we're using a network process.
Otherwise there might be session state in the web process getting lost.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):

1:17 PM Changeset in webkit [150690] by mark.lam@apple.com
  • 10 edits in branches/dfgFourthTier/Source

Remove Interpreter::retrieveLastCaller().
https://bugs.webkit.org/show_bug.cgi?id=116753.

Reviewed by Geoffrey Garen.

This is part of the refactoring effort to get rid of functions walking
the JS stack in their own way.

../JavaScriptCore:

  • API/JSContextRef.cpp:

(JSContextCreateBacktrace):

  • interpreter/CallFrame.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::Interpreter):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::addStackTraceIfNecessary):

  • interpreter/Interpreter.h:

(StackFrame):
(JSC::StackFrame::StackFrame):
(Interpreter):

  • jsc.cpp:

(functionJSCStack):

  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::addParentForConsoleStart):

../WebCore:

No new tests.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::send):

  • bindings/js/ScriptCallStackFactory.cpp:

(WebCore::createScriptCallStack):

11:35 AM Changeset in webkit [150689] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

WebFrameProxy::didFailLoad clears frame title for no apparent reason
https://bugs.webkit.org/show_bug.cgi?id=116655

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-05-25
Reviewed by Alexey Proskuryakov.

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::didFailLoad):

10:57 AM Changeset in webkit [150688] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit/mac

<rdar://problem/13924889> -webView:didPerformClientRedirectFromURL:toURL:inFrame: should be given the redirecting URL as the “from” URL
https://bugs.webkit.org/show_bug.cgi?id=116733

Reviewed by Adele Peterson.

By the time the history controller calls updateGlobalHistoryRedirectLinks(), the document
loader already reflects the destination URL. In order to be able to provide the immediate
source URL to the delegate, we make WebFrame track a URL and provisional URL, updating them
in response to FrameLoader callbacks in exactly the same way WebFrameProxy maintains its
m_url and m_provisionalURL member variables.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): Update
provisionalURL.
(WebFrameLoaderClient::dispatchDidChangeLocationWithinPage): Update url.
(WebFrameLoaderClient::dispatchDidPushStateWithinPage): Ditto.
(WebFrameLoaderClient::dispatchDidReplaceStateWithinPage): Ditto.
(WebFrameLoaderClient::dispatchDidPopStateWithinPage): Ditto.
(WebFrameLoaderClient::dispatchDidStartProvisionalLoad): Update provisionalURL.
(WebFrameLoaderClient::dispatchDidCommitLoad): Update URL and provisionalURL.
(WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Clear provisionalURL.
(WebFrameLoaderClient::dispatchDidFailLoad): Added an assertion.
(WebFrameLoaderClient::dispatchDidFinishLoad): Ditto.
(WebFrameLoaderClient::updateGlobalHistoryRedirectLinks): Pass the last committed URL as the
source, rather than clientRedirectSourceForHistory().

  • WebView/WebFrameInternal.h: Added url and provisionalURL ivars to WebFramePrivate.
5:02 AM Changeset in webkit [150687] by akling@apple.com
  • 16 edits in trunk/Source/WebCore

Move Node::isKeyboardFocusable() to Element.
<http://webkit.org/b/116761>

Reviewed by Antti Koivisto.

Only Elements can be keyboard-focusable. Move the base isKeyboardFocusable() implementation to Element
and sprinkle OVERRIDE on subclass overrides.
FocusController gets some temporary type checks that will go away as that code moves to dealing in
Elements instead of Node.

  • dom/Node.h:
  • dom/Node.cpp:
  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::isKeyboardFocusable):

Move isKeyboardFocusable() from Node to Element.

  • page/FocusController.cpp:

(WebCore::isNonFocusableShadowHost):
(WebCore::isFocusableShadowHost):
(WebCore::shouldVisit):
(WebCore::FocusController::advanceFocusInDocumentOrder):

Check that the inspected Node is an Element before querying isKeyboardFocusable().

  • html/HTMLAnchorElement.h:
  • html/HTMLAreaElement.h:
  • html/HTMLFormControlElement.h:
  • html/HTMLFrameOwnerElement.h:
  • html/HTMLInputElement.h:
  • html/HTMLPlugInElement.h:
  • html/HTMLSelectElement.h:
  • html/HTMLTextAreaElement.h:
  • svg/SVGAElement.h:
  • svg/SVGStyledElement.h:

Sprinkle OVERRIDE.

3:27 AM Changeset in webkit [150686] by akling@apple.com
  • 10 edits in trunk/Source/WebCore

Begin moving "focus" state logic from Node to Element.
<http://webkit.org/b/116760>

Reviewed by Antti Koivisto.

Only Elements can be focused, so merge the "focus" state logic from Node and ContainerNode
and move it into Element. There's a lot more iceberg under this tip, but we'll be starting
with setFocus(bool) and focused().

  • dom/Node.h:
  • dom/ContainerNode.cpp:
  • dom/ContainerNode.h:
  • dom/Element.cpp:

(WebCore::Element::isUserActionElementFocused):
(WebCore::Element::setFocus):

  • dom/Element.h:

(WebCore::Element::focused):

  • dom/Node.cpp:

Move focused() and setFocus(bool) from Node/ContainerNode to Element.

  • dom/Document.cpp:

(WebCore::Document::setFocusedNode):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

Check if the inspected Node is an Element before asking if it's focused.

2:51 AM Changeset in webkit [150685] by noam.rosenthal@nokia.com
  • 3 edits
    2 adds in trunk

Direct pattern compositing breaks when no-repeat is set on a large layer
https://bugs.webkit.org/show_bug.cgi?id=116140

Source/WebCore:

Reviewed by Antti Koivisto.

In some cases the directly composited background color logic overrides the layer's
contentsRect, which results in wrong rendering of tiled images.
This patch makes sure that the background image is applied after the solid color,
which ensures the correct contentsRect.

Test: compositing/patterns/direct-pattern-compositing-contain-no-repeat.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateDirectlyCompositedContents):

LayoutTests:

Added a ref-test to make sure that direct pattern compositing works well with no-repeat
in a particular geometry.

Reviewed by Antti Koivisto.

  • compositing/patterns/direct-pattern-compositing-contain-no-repeat-expected.html: Added.
  • compositing/patterns/direct-pattern-compositing-contain-no-repeat.html: Added.
2:16 AM Changeset in webkit [150684] by akling@apple.com
  • 14 edits in trunk/Source/WebCore

Move "hover" state logic from Node to Element.
<http://webkit.org/b/116757>

Reviewed by Antti Koivisto.

Resolve a 7 year old FIXME by merging the "hover" state logic from Node and ContainerNode
and moving it all to Element instead.

  • dom/Node.cpp:

(WebCore::Node::detach):

  • dom/Element.cpp:

(WebCore::Element::detach):

Move Document::hoveredNodeDetached() call from Node::detach() to Element::detach().

(WebCore::Element::isUserActionElementHovered):
(WebCore::Element::setHovered):

  • dom/Element.h:

(WebCore::Element::hovered):

Moved here from Node/ContainerNode.

  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::setHovered):
(WebCore::UserActionElementSet::setFlags):

Make setHovered() take an Element* instead of a Node*. I'd like to do this will all
of these methods eventually, so added a setFlags() helper with the tighter type.

  • html/HTMLLabelElement.h:
  • html/shadow/SpinButtonElement.h:

Sprinkle OVERRIDE on setHovered() overrides.

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isHovered):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isHovered):

Check if the inspected Node is an element before asking if it's hovered.

2:08 AM Changeset in webkit [150683] by akling@apple.com
  • 6 edits in trunk/Source/WebCore

Document::formController() should return a reference.
<http://webkit.org/b/116758>

Reviewed by Antti Koivisto.

The formController() is created on demand, so return a reference instead.

  • dom/Document.h:
  • dom/Document.cpp:

(WebCore::Document::formController):
(WebCore::Document::setStateForNewFormElements):

  • html/HTMLFormControlElementWithState.cpp:

(WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
(WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
(WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
(WebCore::HTMLFormControlElementWithState::finishParsingChildren):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::finishParsingChildren):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::didMoveToNewDocument):
(WebCore::HTMLInputElement::checkedRadioButtons):

1:29 AM Changeset in webkit [150682] by sergio@webkit.org
  • 2 edits in trunk/Source/WebCore

Reducing CSS code duplication in declaration list error recovery
https://bugs.webkit.org/show_bug.cgi?id=115157

Reviewed by Andreas Kling.

From Blink r148974 by <serya@chromium.org>

Refactor "invalid_block_list error | /* empty */" in a new
decl_list_recovery rule that allows to remove 4 redundant rules.

No new test required as we're just refactoring code, no new behaviour.

  • css/CSSGrammar.y.in:
Note: See TracTimeline for information about the timeline view.