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

Timeline



May 4, 2013:

10:20 PM Changeset in webkit [149577] by dino@apple.com
  • 3 edits in trunk

Fix incorrect ChangeLog dates on previous commit.

9:43 PM Changeset in webkit [149576] by dino@apple.com
  • 26 edits
    4 adds in trunk

Animations and Transitions should not start when globally suspended
https://bugs.webkit.org/show_bug.cgi?id=114915

Reviewed by Sam Weinig.

.:

Export AnimationController::isSuspended().

  • Source/autotools/symbols.filter:

Source/WebCore:

When the Document's AnimationController was suspended, we still
started new transitions and animations. Change this so that
animations enter a paused-but-new state, where they are frozen
until the AnimationController resumes. At that time, it is as
if they had just appeared: any delay counts down before
the animation starts.

For transitions, the change in value must still happen, but
it does so immediately. No transitionend event should be fired.
This produces a slightly confusing behaviour, because any
in-progress transitions are suspended, but any new style changes
happen instantly. This might sound contradictory, but in general
suspending the document is a rare (and dangerous) thing to do.

Previously, the Document would call resumeAnimations as it loaded,
effectively starting all the animations. This meant if you suspended
animations before loading a document, it was ignored as soon as the
load finished. Now there is a separate method startAnimationsIfNotSuspended
which checks to see if the document is suspended as it loads.

In order to handle this case, I added a new state to the Animation
machinery: AnimationStatePausedNew. This is an animation that was created
in the suspended state.

Tests: animations/added-while-suspended.html

transitions/started-while-suspended.html

  • WebCore.exp.in: Export AnimationController::isSuspended().
  • dom/Document.cpp:

(WebCore::Document::implicitClose):

resumeAnimationsForDocument() -> startAnimationsIfNotSuspended()

  • page/animation/AnimationBase.cpp:

(WebCore::nameForState): New name for AnimationStatePausedNew.
(WebCore::AnimationBase::updateStateMachine): Handle new state AnimationStatePausedNew. The

most important change is that when go from PausedNew to Running, we jump back into
the New state and continue from there.

(WebCore::AnimationBase::updatePlayState): suspended -> isSuspended

  • page/animation/AnimationBase.h: New state: AnimationStatePausedNew

(WebCore::AnimationBase::waitingToStart): Add AnimationStatePausedNew.
(WebCore::AnimationBase::paused): Add AnimationStatePausedNew.
(WebCore::AnimationBase::isNew): Add AnimationStatePausedNew.

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::AnimationControllerPrivate): Initialise m_suspended.
(WebCore::AnimationControllerPrivate::clear): suspended -> isSuspended
(WebCore::AnimationControllerPrivate::updateAnimations): Ditto.
(WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer): Ditto.
(WebCore::AnimationControllerPrivate::suspendAnimations): Update m_suspended.
(WebCore::AnimationControllerPrivate::resumeAnimations): Ditto.
(WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::AnimationControllerPrivate::startAnimationsIfNotSuspended): New method that will

only resume animations if we were not globally suspended.

(WebCore::AnimationController::isSuspended): New method.
(WebCore::AnimationController::suspendAnimations): Add logging.
(WebCore::AnimationController::resumeAnimations): Add logging.
(WebCore::AnimationController::suspendAnimationsForDocument): Add logging.
(WebCore::AnimationController::resumeAnimationsForDocument): Add logging.
(WebCore::AnimationController::startAnimationsIfNotSuspended): Calls private method.

  • page/animation/AnimationController.h:

(AnimationController): Add isSuspended() and animationsForDocumentMayStart().

  • page/animation/AnimationControllerPrivate.h:

(WebCore::AnimationControllerPrivate::isSuspended): New method.
(AnimationControllerPrivate): Add m_isSuspended member.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::CompositeAnimation): Moved from header - initialise m_isSuspended.
(WebCore::CompositeAnimation::updateTransitions): Do not create ImplicitAnimation if suspended.
(WebCore::CompositeAnimation::updateKeyframeAnimations): Move to AnimationStatePausedNew if suspended.
(WebCore::CompositeAnimation::suspendAnimations): m_suspended -> m_isSuspended
(WebCore::CompositeAnimation::resumeAnimations): Ditto.

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::isSuspended): Renamed from suspended()

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate): If we're in the AnimationStatePausedNew state, then

we need to go to the first frame (to handle fill mode).

  • testing/Internals.cpp:

(WebCore::Internals::animationsAreSuspended): New exposed method to reflect AnimationController.

  • testing/Internals.h: Add animationsAreSuspended.
  • testing/Internals.idl: Ditto.

Source/WebKit:

Export AnimationController::isSuspended

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Source/WebKit/mac:

The WebView private API cssAnimationsSuspended did not necessarily
reflect the reality of the Frame's AnimationController value because it
was caching rather than asking directly. While the WebCore part of this
patch ensured loading the Document wouldn't resume all animations, it
is still better to ask directly.

  • WebView/WebView.mm:

(-[WebView cssAnimationsSuspended]): Call into AnimationController.
(-[WebView setCSSAnimationsSuspended:]): Ditto.

  • WebView/WebViewData.h: Remove cssAnimationsSuspended boolean.
  • WebView/WebViewData.mm: Ditto.

(-[WebViewPrivate init]):

Source/WebKit/win:

Export AnimationController::isSuspended

  • WebKit.vcproj/WebKitExports.def.in:

LayoutTests:

Two new tests. Add an animation or transition to
the document when the global animation controller is suspended.
In the animation case, nothing should happen until the
animations are resumed. In the transition case, the style
change should happen immediately and not fire any events.

  • animations/added-while-suspended-expected.txt: Added.
  • animations/added-while-suspended.html: Added.
  • animations/suspend-transform-animation.html: Make sure to resume suspended animations

before quitting the test.

  • transitions/started-while-suspended-expected.txt: Added.
  • transitions/started-while-suspended.html: Added.
  • transitions/suspend-transform-transition.html: Make sure to resume suspended animations

before quitting the test.

7:39 PM Changeset in webkit [149575] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix * placement in a few functions as noticed by Mark Rowe.

Rubber-stamped by Dan Bernstein.

  • WebProcess/WebPage/PageBanner.h:

(PageBanner):

  • WebProcess/WebPage/mac/PageBannerMac.mm:

(WebKit::PageBanner::create):
(WebKit::PageBanner::PageBanner):

7:35 PM Changeset in webkit [149574] by weinig@apple.com
  • 7 edits
    4 moves in trunk/Source

Move PopupMenuMac and SearchPopupMenuMac to Source/WebKit/mac
matching where they are in WebKit2.

Reviewed by Anders Carlsson.

Source/WebCore:

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/PopupMenuMac.h: Removed.
  • platform/mac/PopupMenuMac.mm: Removed.
  • platform/mac/SearchPopupMenuMac.h: Removed.
  • platform/mac/SearchPopupMenuMac.mm: Removed.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • WebCoreSupport/PopupMenuMac.h: Copied from WebCore/platform/mac/PopupMenuMac.h.
  • WebCoreSupport/PopupMenuMac.mm: Copied from WebCore/platform/mac/PopupMenuMac.mm.
  • WebCoreSupport/SearchPopupMenuMac.h: Copied from WebCore/platform/mac/SearchPopupMenuMac.h.
  • WebCoreSupport/SearchPopupMenuMac.mm: Copied from WebCore/platform/mac/SearchPopupMenuMac.mm.
  • WebCoreSupport/WebChromeClient.mm:
7:32 PM Changeset in webkit [149573] by weinig@apple.com
  • 4 edits
    1 add in trunk

REGRESSION(r148312): Crash when calling WKPageClose(page) followed by WKPageTerminate(page)
<rdar://problem/13702008>
https://bugs.webkit.org/show_bug.cgi?id=115607

Reviewed by Benjamin Poulain.

Source/WebKit2:

API Test: WebKit2.CloseThenTerminate

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessExited):
Don't try to reset the state if the page is closed, it won't work and its not worth it.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/CloseThenTerminate.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::TEST):
Add test that calls WKPageClose, follow by WKPageTerminate. If it crashes, its not working.

6:53 PM Changeset in webkit [149572] by Christophe Dumez
  • 2 edits in trunk/Source/WebCore

Get rid of special cases in AddIncludesForTypeInImpl
https://bugs.webkit.org/show_bug.cgi?id=115602

Reviewed by Benjamin Poulain.

Get rid of the special cases in AddIncludesForTypeInImpl subroutine in the
JS bindings generator. Those are no longer needed and special cases should
be avoided in the generator.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddIncludesForTypeInImpl):

6:47 PM Changeset in webkit [149571] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Clean up unused spellcheck code
https://bugs.webkit.org/show_bug.cgi?id=115560

Patch by Nima Ghanavatian <nghanavatian@blackberry.com> on 2013-05-04
Reviewed by Benjamin Poulain.
Internally reviewed by Mike Lattanzio

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPage::setExtraPluginDirectory):

  • Api/WebPage.h:
  • WebKitSupport/InputHandler.cpp:
  • WebKitSupport/InputHandler.h:

(InputHandler):

6:34 PM Changeset in webkit [149570] by Christophe Dumez
  • 2 edits in trunk/Source/WebCore

Get rid of AddIncludesForSVGAnimatedType in bindings generator
https://bugs.webkit.org/show_bug.cgi?id=115603

Reviewed by Benjamin Poulain.

Remove AddIncludesForSVGAnimatedType subroutine from the bindings generator
as it is a special case which is no longer needed.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

2:44 PM Changeset in webkit [149569] by Antoine Quint
  • 11 edits
    1 add in trunk/Source/WebCore

Update code generators to handle a new JavaScript file for snapshotted plug-ins
https://bugs.webkit.org/show_bug.cgi?id=115596

Reviewed by Dean Jackson.

In preparation for https://webkit.org/b/115548, adding a new JS file at
Resources/plugIns.js that we will use to provide presentation for the
snapshotted plug-ins overlay.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • Resources/plugIns.js: Added.
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
1:29 PM Changeset in webkit [149568] by akling@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r149563.
http://trac.webkit.org/changeset/149563
https://bugs.webkit.org/show_bug.cgi?id=115587

Broke LLInt build.

  • wtf/text/StringImpl.h:

(StringImpl):

1:25 PM Changeset in webkit [149567] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r142647): Flaky Test: fast/frames/crash-remove-iframe-during-object-beforeload.html
<http://webkit.org/b/115322>
<rdar://problem/13810719>

Reviewed by Anders Carlsson.

Don't cache the FrameView::renderView() in a local since updating Widgets may blow it away.

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

1:22 PM Changeset in webkit [149566] by akling@apple.com
  • 6 edits in trunk/Source/WebCore

Remove GraphicsContext::strokeArc(), which is unused.

From Blink r149608 by <jbroman@chromium.org>
<http://src.chromium.org/viewvc/blink?view=revision&revision=149608>

This is no longer used since almost a year ago, when HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) was inlined.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/wince/GraphicsContextWinCE.cpp:
1:10 PM Changeset in webkit [149565] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused CSSSelector::isCustomPseudoType().

From Blink r149574 by <dominicc@chromium.org>
<http://src.chromium.org/viewvc/blink?view=revision&revision=149574>

  • css/CSSSelector.h:
  • css/CSSSelector.cpp:
12:42 PM Changeset in webkit [149564] by fpizlo@apple.com
  • 4 edits in branches/dfgFourthTier/Source/JavaScriptCore

fourthTier: DFG::ByteCodeParser doesn't need ExecState*
https://bugs.webkit.org/show_bug.cgi?id=115582

Reviewed by Geoffrey Garen.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::ByteCodeParser):
(ByteCodeParser):
(JSC::DFG::parse):

  • dfg/DFGByteCodeParser.h:

(DFG):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):

12:36 PM Changeset in webkit [149563] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

No need to declare JSC::LLInt::Data as friend class of WTF::StringImpl
https://bugs.webkit.org/show_bug.cgi?id=115587

Patch by Xan Lopez <xlopez@igalia.com> on 2013-05-04
Reviewed by Andreas Kling.

No need to declare LLInt::Data as friend class of WTF::StringImpl,
it does not use any private method/data member of the latter.

  • wtf/text/StringImpl.h:

(StringImpl):

12:04 PM Changeset in webkit [149562] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit/mac

Get rid of -[NSMutableDictionary _webkit_setObject:forUncopiedKey:]
https://bugs.webkit.org/show_bug.cgi?id=115592

Reviewed by Beth Dakin.

Using CFDictionarySetValue to set a key without having to copy it is not supported. Use NSMapTable with strong pointers instead.

  • Misc/WebNSDictionaryExtras.h:
  • Misc/WebNSDictionaryExtras.m:
  • Panels/WebPanelAuthenticationHandler.h:

(NSURLAuthenticationChallenge):

  • Panels/WebPanelAuthenticationHandler.m:

(-[WebPanelAuthenticationHandler init]):
(-[WebPanelAuthenticationHandler enqueueChallenge:forWindow:]):
(-[WebPanelAuthenticationHandler tryNextChallengeForWindow:]):
(-[WebPanelAuthenticationHandler startAuthentication:window:]):
(-[WebPanelAuthenticationHandler cancelAuthentication:]):

  • Plugins/WebNetscapePluginView.h:
  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView destroyPlugin]):
(-[WebNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:WebCore::]):
(-[WebNetscapePluginView webFrame:didFinishLoadWithReason:]):
(-[WebNetscapePluginView loadPluginRequest:]):

11:46 AM Changeset in webkit [149561] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

https://bugs.webkit.org/show_bug.cgi?id=115574
Crash using new WKBundlePageSetHeaderBanner() API to set a banner to null

Reviewed by Darin Adler.

Don't call addToPage() on a null banner.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setHeaderPageBanner):
(WebKit::WebPage::setFooterPageBanner):

9:29 AM Changeset in webkit [149560] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

Remove ShadowRoot's previous/next ShadowRoot pointers.
<http://webkit.org/b/115588>

Reviewed by Anders Carlsson.

ShadowRoot no longer inherits from DoublyLinkedListNode<ShadowRoot> because that code wasn't
doing anything anymore. Shrinks ShadowRoot by two pointers.

  • dom/ElementShadow.h:
  • dom/ShadowRoot.cpp:

(SameSizeAsShadowRoot):
(WebCore::ShadowRoot::ShadowRoot):
(WebCore::ShadowRoot::~ShadowRoot):

  • dom/ShadowRoot.h:
8:27 AM Changeset in webkit [149559] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

RenderObject: don't change GraphicsContext state when not drawing dashed/dotted lines.

From Blink r149546 by <jbroman@chromium.org>
<http://src.chromium.org/viewvc/blink?view=revision&revision=149546>

Previously, there was asymmetry between changing and restoring state (certain state
would be restored only if thickness was positive, i.e. a line was actually drawn.)

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::drawLineForBoxSide):

8:18 AM Changeset in webkit [149558] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json: Correcting my igalia.com email address.
8:03 AM Changeset in webkit [149557] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Remove CSS selector profiler branches from ElementRuleCollector loop.
<http://webkit.org/b/115581>

Reviewed by Antti Koivisto.

Templatize the method so we don't have to check for active inspector frontends on every
pass through the loop.

Time spent in this loop goes down from 0.5% to 0.2% on iTunes Store, WebCore binary size
goes up 480 bytes (sorry Benjamin, I'll make it up to you.)

  • css/ElementRuleCollector.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::doCollectMatchingRulesForList):

7:16 AM May 2013 Meeting edited by mhahnenberg@apple.com
Added transcript for the Status of JSC session. (diff)
7:00 AM Changeset in webkit [149556] by mihnea@adobe.com
  • 2 edits in trunk/Tools

Unreviewed. Adding Radu Stavila as an Adobe contributor, working on CSSRegions.

4:17 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
4:15 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
3:55 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
3:52 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
3:47 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
3:44 AM WebKitGTK/TrackingMemoryErrors edited by elima@igalia.com
(diff)
3:26 AM WebKitGTK/TrackingMemoryErrors created by elima@igalia.com
3:19 AM WebKitGTK edited by elima@igalia.com
(diff)
2:22 AM May 2013 Meeting edited by Joseph Pecoraro
Added Profiling in JavaScriptCore notes (diff)
12:54 AM Changeset in webkit [149555] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

[GTK] Catch select.error exceptions in parse_output_lines
https://bugs.webkit.org/show_bug.cgi?id=115253

Reviewed by Gustavo Noronha Silva.

Catch any select.error exceptions when waiting for the file descriptor to become readable when parsing the
output lines in common.parse_output_lines. These are currently being thrown when running the GTK unit tests on
builders, but are not fatal. Because of that they are at the moment only logged (writing out the file descriptor,
error code and the error message) and the loop is re-entered.

  • gtk/common.py:

(parse_output_lines):

12:50 AM Changeset in webkit [149554] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

[GTK] Set up the TestWebCore in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=115237

Reviewed by Gustavo Noronha Silva.

Set up the WebCore unit test program, consisting of the unit tests under the TestWebKitAPI/Tests/WebCore directory.
Again the approach of specifying libtool libraries multiple times in the TestWebCore program's LDFLAGS is used as
a workaround for the layer violations and circular dependencies between various static libraries. Linking against
either libwebkitgtk or libwebkit2gtk shared libraries is avoided due to the unit tests covering WebCore, which
shouldn't rely on neither of the two distributable libraries (hence the dirty workaround).

  • TestWebKitAPI/GNUmakefile.am:
12:44 AM Changeset in webkit [149553] by robert@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r140907): Incorrect baseline on cells after updating vertical-align
https://bugs.webkit.org/show_bug.cgi?id=115432

Reviewed by Julien Chaffraix.

Source/WebCore:

If a cell changes vertical-align any intrinsic padding it has is now redundant. It
needs to calculate its new height from RenderTableRow::layout() and then find its
new intrinsic padding in RenderTableSection::layoutRows().

Test: fast/table/correct-baseline-after-style-change.html

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleDidChange):

LayoutTests:

  • fast/table/correct-baseline-after-style-change-expected.html: Added.
  • fast/table/correct-baseline-after-style-change.html: Added.
12:30 AM Changeset in webkit [149552] by msaboff@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

There should be a runtime option to constrain what functions get DFG compiled
https://bugs.webkit.org/show_bug.cgi?id=115576

Reviewed by Mark Hahnenberg.

Added OptionRange to Options to allow checking that something is within an option
or not. The new OptionClass supports range strings in the form of [!]<low>[:<high>].
If only one value is given, then it will be used for both low and high. A leading
'!' inverts the check. If no range is given, then checking for a value within a range
will always return true. Added the option "bytecodeRangeToDFGCompile" that takes an
OptionRange string to select the bytecode range of code blocks to DFG compile.

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile): Added new check for bytecode count within bytecodeRangeToDFGCompile
range.

  • runtime/Options.cpp:

(JSC::parse): Added overloaded parse() for OptionRange.
(JSC::OptionRange::init): Parse range string and then initialize the range.
(JSC::OptionRange::isInRange): Function used by consumer to check if a value is within
the specified range.
(JSC::Options::dumpOption): Added code to dump OptionRange options.

  • runtime/Options.h:

(OptionRange): New class.
(JSC::OptionRange::operator= ): This is really used as a default ctor for use within
the Option static array initialization.
(JSC::OptionRange::rangeString): This is used for debug. It assumes that the char*
passed into OptionRange::init is valid when this function is called.

12:23 AM Changeset in webkit [149551] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/13806836> Tweak sandbox profile.

Reviewed by Dan Bernstein.

  • WebProcess/com.apple.WebProcess.sb.in:

May 3, 2013:

8:49 PM Changeset in webkit [149550] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

incorrect repainting when a table has a transform
https://bugs.webkit.org/show_bug.cgi?id=109867

Patch by Arnaud Renevier <a.renevier@sisa.samsung.com> on 2013-05-03
Reviewed by Simon Fraser.

Source/WebCore:

Disable LayoutState when table, tableRow or tableSection render
objects have transforms or reflections.

Tests: fast/repaint/reflection-table-layout.html

fast/repaint/transform-table-layout.html

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):

LayoutTests:

Create tests that resize an element inside a display: table element.
Compare to a reference html file where the element has a static size.
In the first test, the table like element has a transform. In the
second, it has a reflection.

  • fast/repaint/reflection-table-layout-expected.html: Added.
  • fast/repaint/reflection-table-layout.html: Added.
  • fast/repaint/transform-table-layout-expected.html: Added.
  • fast/repaint/transform-table-layout.html: Added.
8:43 PM Changeset in webkit [149549] by Antti Koivisto
  • 30 edits in trunk

Remove concept of younger and older shadow trees
https://bugs.webkit.org/show_bug.cgi?id=115570

Reviewed by Andreas Kling.

Source/WebCore:

Younger and older shadow trees are an obscure corner of the Shadow DOM spec.

Support only one shadow tree per element. This simplifies many things.

  • dom/ComposedShadowTreeWalker.cpp:

(WebCore::ComposedShadowTreeWalker::traverseChild):
(WebCore::ComposedShadowTreeWalker::traverseSiblingInCurrentTree):
(WebCore):
(WebCore::ComposedShadowTreeWalker::traverseParent):
(WebCore::ComposedShadowTreeWalker::traverseParentInCurrentTree):
(WebCore::ComposedShadowTreeWalker::traverseParentBackToShadowRootOrHost):

  • dom/ComposedShadowTreeWalker.h:

(WebCore::ComposedShadowTreeWalker::assertPrecondition):
(ComposedShadowTreeWalker):

  • dom/ContainerNodeAlgorithms.cpp:

(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
(WebCore::ChildFrameDisconnector::collectFrameOwners):
(WebCore::assertConnectedSubrameCountIsConsistent):

  • dom/Document.cpp:

(WebCore::Document::buildAccessKeyMap):

  • dom/Element.cpp:

(WebCore::Element::authorShadowRoot):
(WebCore::Element::userAgentShadowRoot):
(WebCore::Element::ensureUserAgentShadowRoot):

  • dom/Element.h:

(Element):
(WebCore::Element::hasAuthorShadowRoot):

  • dom/Element.idl:
  • dom/ElementShadow.cpp:

(WebCore::ElementShadow::addShadowRoot):

Allow only one ShadowRoot per ElementShadow. Remove linked list handling.

(WebCore::ElementShadow::removeAllShadowRoots):
(WebCore::ElementShadow::attach):
(WebCore::ElementShadow::detach):
(WebCore::ElementShadow::childNeedsStyleRecalc):
(WebCore::ElementShadow::needsStyleRecalc):
(WebCore::ElementShadow::recalcStyle):
(WebCore::ElementShadow::removeAllEventListeners):

  • dom/ElementShadow.h:

(WebCore::ElementShadow::shadowRoot):
(ElementShadow):
(WebCore::ElementShadow::host):
(WebCore::Node::shadowRoot):
(WebCore):

  • dom/Node.cpp:

(WebCore):
(WebCore::Node::showNodePathForThis):
(WebCore::traverseTreeAndMark):
(WebCore::showSubTreeAcrossFrame):

  • dom/Node.h:

(Node):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::insertedInto):

  • dom/ShadowRoot.h:

(ShadowRoot):

Remove LinkedList base.


  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveTreeToNewDocument):

  • html/shadow/ContentDistributor.cpp:

(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
(WebCore::ContentDistributor::ensureSelectFeatureSet):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::unbind):
(WebCore::InspectorDOMAgent::buildObjectForNode):

  • page/FocusController.cpp:

(WebCore::FocusNavigationScope::FocusNavigationScope):
(WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::uploadButton):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::updateReferencedText):
(WebCore::SVGTRefElement::detachTarget):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::clearResourceReferences):
(WebCore::SVGUseElement::buildShadowAndInstanceTree):
(WebCore::SVGUseElement::buildShadowTree):

  • testing/Internals.cpp:

(WebCore::Internals::ensureShadowRoot):
(WebCore::Internals::shadowRoot):
(WebCore):

  • testing/Internals.h:

(Internals):

  • testing/Internals.idl:

LayoutTests:

  • editing/text-iterator/basic-iteration-expected.txt:
  • editing/text-iterator/script-tests/basic-iteration.js:

(addShadowTreeWithDivElement):

  • fast/forms/resources/common-spinbutton-change-and-input-events.js:

(testSpinButtonChangeAndInputEvents):

  • fast/forms/resources/common-spinbutton-click-in-iframe.js:

(getSpinButton):

7:11 PM Changeset in webkit [149548] by commit-queue@webkit.org
  • 2 edits in trunk/PerformanceTests/SunSpider

SunSpider 1.0: 3d-morph: use epsilon to check result
https://bugs.webkit.org/show_bug.cgi?id=115553

Patch by Cosmin Truta <ctruta@blackberry.com> on 2013-05-03
Reviewed by George Staikos.

SunSpider/3d-morph should be more lenient in validating its results, since they depend on Math.sin, which isn't formally specified.

  • tests/sunspider-1.0/3d-morph.js:
7:07 PM Changeset in webkit [149547] by commit-queue@webkit.org
  • 1 edit
    9 adds in trunk/Tools

Create a script to import W3C tests
https://bugs.webkit.org/show_bug.cgi?id=111513

Patch by Rebecca Hauck <rhauck@adobe.com> on 2013-05-03
Reviewed by Dirk Pranke.

Script to automate the import of W3C tests into WebKit.
For the full description of how it works, see the comments
at the top of test_importer.py.

  • Scripts/import-w3c-tests: Added.
  • Scripts/webkitpy/w3c/init.py: Added.
  • Scripts/webkitpy/w3c/test_converter.py: Added.

(TestConverter):
(TestConverter.init):
(TestConverter.load_prefixed_prop_list):
(TestConverter.load_file):
(TestConverter.convert_for_webkit):
(TestConverter.convert_testharness_paths):
(TestConverter.convert_prefixed_properties):
(TestConverter.scrub_unprefixed_props):
(TestConverter.replace_tag):

  • Scripts/webkitpy/w3c/test_converter_unittest.py: Added.

(TestConverterTest):
(TestConverterTest.testLoadPrefixedPropList):
(TestConverterTest.test_convertForWebkitNothingToConvert):
(test_convertForWebkitHarnessOnly):
(test_convertForWebkitPropsOnly):
(test_convertForWebkitHarnessAndProps):
(test_convertTestHarnessPaths):
(test_convertPrefixedProperties):
(verifyTestHarnessPaths):
(verifyPrefixedProperties):
(generateTestContent):

  • Scripts/webkitpy/w3c/test_importer.py: Added.

(main):
(parse_args):
(validate_import_directory):
(TestImporter):
(TestImporter.init):
(TestImporter.do_import):
(TestImporter.get_changeset):
(TestImporter.scan_source_directory):
(TestImporter.import_tests):
(TestImporter.setup_destination_directory):
(TestImporter.get_test_status):
(TestImporter.remove_deleted_files):
(TestImporter.write_import_log):

  • Scripts/webkitpy/w3c/test_importer_unittest.py: Added.

(TestImporterTest):
(TestImporterTest.test_ImportDirWithNoTests):

  • Scripts/webkitpy/w3c/test_parser.py: Added.

(TestParser):
(TestParser.init):
(TestParser.load_file):
(TestParser.analyze_test):
(TestParser.get_reftests):
(TestParser.is_jstest):
(TestParser.get_support_files):

  • Scripts/webkitpy/w3c/test_parser_unittest.py: Added.

(TestParserTest):
(TestParserTest.test_analyzeTestReftestOneMatch):
(test_analyzeTestReftestMultipleMatches):
(test_analyzeTestReftestMatchAndMismatch):
(test_analyzeTestReftestWithRefSupportFiles):
(test_analyzeJSTest):
(test_analyzePixelTestAllTrue):
(test_analyzePixelTestAllFalse):
(test_analyzeNonHTMLFile):

5:40 PM May 2013 Meeting edited by rniwa@webkit.org
Add a link to binding generators script (diff)
5:08 PM May 2013 Meeting edited by betravis@adobe.com
(diff)
5:03 PM Changeset in webkit [149546] by Martin Robinson
  • 5 edits in trunk/Source/WebCore

Simplify the #ifdefs in GraphicsContext3D.h
https://bugs.webkit.org/show_bug.cgi?id=115568

Reviewed by Daniel Bates.

  • platform/graphics/GraphicsContext3D.h:

(GraphicsContext3D): Combine #ifdefs paths that have a common
implementation. This reduces the #ifdef paths from many to just three.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::platformTexture): Move the implementation
here to simplify the header.

  • platform/graphics/efl/GraphicsContext3DEfl.cpp:

(WebCore::GraphicsContext3D::platformTexture): Ditto.
(WebCore):

4:50 PM Changeset in webkit [149545] by Christophe Dumez
  • 2 edits in trunk/Tools

Unreviewed. Update Viatcheslav Ostapenko's email in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
4:44 PM Changeset in webkit [149544] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Qt] Build with --video-track fails because String(AtomicString) is ambiguous
https://bugs.webkit.org/show_bug.cgi?id=115551

Patch by Brendan Long <b.long@cablelabs.com> on 2013-05-03
Reviewed by Benjamin Poulain.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup):
Change String(textTrack->kind()) to textTrack->kind().string(), and same thing with language.

4:41 PM Improving the DOM now that we only have 1 JS engine / the removal of ScriptState! created by jonlee@apple.com
4:40 PM May 2013 Meeting edited by jonlee@apple.com
(diff)
4:12 PM Changeset in webkit [149543] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] GStreamer log crashes in MediaPlayerPrivateGStreamerBase because of uninitialized category
https://bugs.webkit.org/show_bug.cgi?id=115575

Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-05-03
Reviewed by Philippe Normand.

No new tests needed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

Using extern debug category.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

Declaring debug category as not static.

3:19 PM Changeset in webkit [149542] by zhajiang@rim.com
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Page rendering scale is changed after go back and forward
https://bugs.webkit.org/show_bug.cgi?id=115573

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-05-03.
Reviewed by Rob Buis.
Internally reviewed by Jeff Rogers.

PR: 326886
When navigating back from page A with viewport to page B without
viewport, we didn't call setViewMode(); therefore, we didn't change
the fixed layout size which was set by page A. In that case, WebCore
would just pick up page A's fixed layout size to layout page B which
caused this issue.
Expecting zoomToInitialScaleOnLoad() or other functions to setViewMode()
later is not a good way, because zoomToInitialScaleOnLoad() has never
been called in this case. So we should always call setViewMode() to set
fixed layout size when a new page is committed.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setLoadState):

3:14 PM Changeset in webkit [149541] by bfulgham@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed VS2010 Build Correction.

  • WebCore.vcxproj/WebCore.vcxproj: Exclude CG-only

SubimageCacheWithTimer.cpp from WinCairo build.

3:12 PM Changeset in webkit [149540] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

[Cairo] Anti-aliasing should not be always disabled for lines
https://bugs.webkit.org/show_bug.cgi?id=109535

Patch by Viatcheslav Ostapenko <viatchslav.o@samsung.com> on 2013-05-03
Reviewed by Martin Robinson.

Source/WebCore:

Don't disable antialiasing for text lines because it produces ugly picture if
page is scaled.

Test: fast/css3-text/css3-text-decoration/text-decoration-line-scaled.html

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::drawLineOnCairoContext):

LayoutTests:

Add pixel test with scaled text lines.

  • fast/css3-text/css3-text-decoration/text-decoration-line-scaled.html: Added.
  • platform/efl/fast/css3-text/css3-text-decoration/text-decoration-line-scaled-expected.png: Added.
  • platform/efl/fast/css3-text/css3-text-decoration/text-decoration-line-scaled-expected.txt: Added.
2:41 PM Changeset in webkit [149539] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unnecessary include HTMLNames.h from RenderThemeGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=115571

Reviewed by Martin Robinson.

  • platform/gtk/RenderThemeGtk.cpp:
2:18 PM Changeset in webkit [149538] by ggaren@apple.com
  • 81 edits in branches/dfgFourthTier

Rolled out r149527 because it caused a crash.

Source/JavaScriptCore:

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

Source/WebCore:

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

Source/WebKit/mac:

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

Source/WebKit2:

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

LayoutTests:

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

2:06 PM May 2013 Meeting edited by betravis@adobe.com
(diff)
1:56 PM Changeset in webkit [149537] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] setMetadataURL incorrectly treats path bytes as Latin-1
https://bugs.webkit.org/show_bug.cgi?id=115557

Reviewed by Sam Weinig.

  • platform/mac/FileSystemMac.mm: (WebCore::setMetaData): Use the correct constructor.
1:56 PM Changeset in webkit [149536] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

PDFPlugin: Changes being made to active annotation aren't saved when the PDF is exported
https://bugs.webkit.org/show_bug.cgi?id=115544
<rdar://problem/13801789>

Reviewed by Alexey Proskuryakov.

Commit changes to the active annotation (if there is one) before
returning the live PDF data, so that said changes are represented
in the exported or printed output.

  • WebProcess/Plugins/PDF/PDFPlugin.h: Override liveData.
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::liveData): Commit the active annotation if there is one.

  • WebProcess/Plugins/PDF/SimplePDFPlugin.h:

(SimplePDFPlugin): Make liveData virtual.

1:56 PM Changeset in webkit [149535] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Web process crashes at WebPage::determinePrimarySnapshottedPlugInTimerFired + 8
https://bugs.webkit.org/show_bug.cgi?id=115056
<rdar://problem/13719543>

Reviewed by Simon Fraser.

Null-check m_page. In theory, we shouldn't get here, because we stop
the timer at the only point where m_page is cleared, but crash logs say
we're still crashing here.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::determinePrimarySnapshottedPlugInTimerFired):

1:55 PM Changeset in webkit [149534] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove some "what" comments from FindController
https://bugs.webkit.org/show_bug.cgi?id=115546

Reviewed by Andreas Kling.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::countStringMatches):
(WebKit::FindController::updateFindUIAfterPageScroll):
(WebKit::FindController::willMoveToWebPage):
(WebKit::FindController::mouseEvent):
Remove or reword some comments.

1:48 PM Changeset in webkit [149533] by abucur@adobe.com
  • 4 edits in trunk/Source/WebCore

Move pixelSnappedLayoutOverflowRect and maxLayoutOverflow from RenderBox
https://bugs.webkit.org/show_bug.cgi?id=115550

Reviewed by Simon Fraser.

The patch moves pixelSnappedLayoutOverflowRect and maxLayoutOverflow out
of RenderBox somewhere logically closer to their usage place.

pixelSnappedLayoutOverflowRect - moved to RenderView because it's called only
for RenderView at this moment.
There are other places when the overflow rect is pixel snapped but only after
the rect is adjusted for writing modes or inflated.

maxLayoutOverflow - moved to RenderTreeAsText.cpp as a static function because
it's used only there.

Tests: no new functional change.

  • rendering/RenderBox.h: The functions declarations are removed.
  • rendering/RenderTreeAsText.cpp:

(WebCore::maxLayoutOverflow):

  • rendering/RenderView.h:

(WebCore::RenderView::pixelSnappedLayoutOverflowRect):

1:43 PM Changeset in webkit [149532] by akling@apple.com
  • 11 edits in trunk/Source

StyleResolver: Have "list of matched rules" API vend internal types instead of CSSOM wrappers.
<http://webkit.org/b/115563>

Reviewed by Antti Koivisto.

Source/WebCore:

Change styleRulesForElement() and pseudoStyleRulesForElement() to return Vectors of StyleRuleBase
instead of CSSRuleLists. This defers instantiating CSSOM wrappers until they're actually needed
for exposure to web API.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::getMatchedCSSRules):

Create a StaticCSSRuleList and populate it with CSSOM wrappers for the matched rules.
This is the one place where we expose this functionality to the web.

  • css/ElementRuleCollector.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchedRuleList):
(WebCore::ElementRuleCollector::sortAndTransferMatchedRules):

Collect internal StyleRuleBase pointers here instead of creating wrappers.

  • css/StyleResolver.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):

Vend said pointers.

  • editing/EditingStyle.cpp:

(WebCore::styleFromMatchedRulesForElement):

Dodge CSSOM wrapper instantiation (Woop woop!)

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::buildObjectForRule):

Split buildObjectForRule() into two versions, one for CSSStyleRule and one for StyleRule.
The CSSStyleRule one doesn't need a special path for parent-less rules, since those always
come in through the StyleRule interface instead. This factoring can be improved further
after this change.

(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

Tweaked for changes in StyleResolver API.

Source/WebKit/qt:

  • Api/qwebelement.cpp:

(QWebElement::styleProperty):

Tweaked for changes in StyleResolver API.

1:29 PM Changeset in webkit [149531] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r145042): Downloading a file sometimes results in could not create
a sandbox extension Console message and file stays as a .download file
https://bugs.webkit.org/show_bug.cgi?id=115559
<rdar://problem/13785101>

Reviewed by Sam Weinig.

CString is evil, it has two lengths which can be different - specifically, fileSystemRepresentation()
creates a string with maximum possible buffer size. This was confusing resolveSymlinksInPath().

  • platform/cf/FileSystemCF.cpp: (WebCore::fileSystemRepresentation): Change fileSystemRepresentation to be less surprising. Really, we should rip apart CString and update callers to use better defined semantics, but this is the one function that repeatedly causes problems in practice.
1:27 PM Changeset in webkit [149530] by akling@apple.com
  • 13 edits in trunk/Source/WebCore

CSSRule style declarations getters shouldn't be const.
<http://webkit.org/b/115572>

Reviewed by Antti Koivisto.

Accessing the CSSStyleDeclaration for a CSSRule is a potentially mutating operation,
and should not be const.

  • css/CSSFontFaceRule.cpp:

(WebCore::CSSFontFaceRule::style):

  • css/CSSFontFaceRule.h:
  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::style):

  • css/CSSPageRule.h:
  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::style):

  • css/CSSStyleRule.h:

(CSSStyleRule):

  • css/WebKitCSSFilterRule.cpp:

(WebCore::WebKitCSSFilterRule::style):

  • css/WebKitCSSFilterRule.h:
  • css/WebKitCSSKeyframeRule.cpp:

(WebCore::WebKitCSSKeyframeRule::style):

  • css/WebKitCSSKeyframeRule.h:

(WebKitCSSKeyframeRule):

  • css/WebKitCSSViewportRule.cpp:

(WebCore::WebKitCSSViewportRule::style):

  • css/WebKitCSSViewportRule.h:
12:31 PM Changeset in webkit [149529] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Use NotNull tag for placement new in WebCore.
<http://webkit.org/b/115569>

Reviewed by Antti Koivisto.

Avoid emitting null checks where we use placement new to construct objects into safe locations.

  • css/StylePropertySet.cpp:

(WebCore::ImmutableStylePropertySet::create):

  • dom/Element.cpp:

(WebCore::ShareableElementData::createWithAttributes):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):

  • dom/QualifiedName.cpp:

(WebCore::QualifiedName::init):
(WebCore::createQualifiedName):

  • dom/make_names.pl:

(printNamesCppFile):

  • platform/ThreadGlobalData.h:

(WebCore::threadGlobalData):

  • platform/graphics/GlyphPage.h:

(WebCore::GlyphPage::createForMixedFontData):

12:11 PM Changeset in webkit [149528] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

Simplify CSSSelectorList creation/adoption.
<http://webkit.org/b/106649>

Reviewed by Antti Koivisto.

Remove the optimization that special-cased construction of CSSSelectorLists with a single entry.
This is in preparation for changing the way we store the selector lists on style rules.

  • css/CSSParser.h:
  • css/CSSSelector.h:

Remove move(PassOwnPtr<CSSSelector> from, CSSSelector* to), inlining it into
CSSSelectorList::adoptSelectorVector instead.

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::deleteSelectors):

Handle all selector list lengths the same way.

(WebCore::CSSSelectorList::adoptSelectorVector):

Merge move() from CSSSelector.h into this code since it was the only call site.
Also some minor readability cleanups.

11:46 AM Changeset in webkit [149527] by ggaren@apple.com
  • 81 edits in branches/dfgFourthTier

Rationalized 'this' value conversion
https://bugs.webkit.org/show_bug.cgi?id=115542

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This fixes a bunch of Sputnik tests.

The new model is that the callee always performs 'this' value conversion.

My ultimate goal is to break up resolve_with_this into single-result
opcodes. This step avoids having to add a new kind of convert_this for
call sites.

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::call): Perform 'this' value conversion for
our callee, since it may observe 'this'.

  • API/JSCallbackObjectFunctions.h:

(JSC::::call): Ditto.

  • API/JSContextRef.cpp:

(JSGlobalContextCreateInGroup): Use a proxy 'this' object in global scope
even when we're not in the browser. This eliminates some odd cases where
API clients used to be able to get a direct reference to an environment
record. Now, any reference to an environment record unambiguously means
that the VM resolved that record in the scope chain.

(JSContextGetGlobalObject): Removed an incorrect comment. Now that JSC
participates in the proxy 'this' object scheme, the behavior is not
WebCore-only.

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
  • JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:

What are the chances that this will work?

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock): Renamed convert_this to to_this, to match our
other conversion opcodes.

  • bytecode/CodeOrigin.h:

(CodeOrigin):
(InlineCallFrame):
(JSC::CodeOrigin::codeOriginOwner): Use the more precise type for our
executable, so compilation can discover where we're in strict mode.

  • bytecode/Opcode.h:

(JSC::padOpcodeName): Updated for rename.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator): Always emit to_this when
'this' is in use -- strict mode still needs to convert environment
records to 'undefined'.

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.h:

(JSC::DFG::canCompileOpcode): Updated for renames.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Tightened up this code to consider
strict mode (a new requirement) and to consider the global object (which
was always a requirement).

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::globalThisObjectFor):
(JSC::DFG::Graph::executableFor):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Ditto.

  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):

  • interpreter/Interpreter.h: Don't ASSERT about 'this' -- it's our job

to fix it up if needed.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:

(JIT):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • jit/JITStubs.h: Removed special case code for various kinds of

conversions. The baseline fast path is now only final objects. It hurt
my brain to think through how to keep the other fast paths working, and
our benchmarks do not object.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::addParentForConsoleStart):

  • runtime/CallData.cpp:

(JSC::call):

  • runtime/ClassInfo.h:

(MethodTable):
(JSC):

  • runtime/Completion.cpp:

(JSC::evaluate):

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON):

  • runtime/JSActivation.cpp:

(JSC::JSActivation::toThis):

  • runtime/JSActivation.h:

(JSActivation):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toThisSlowCase):

  • runtime/JSCJSValue.h:

(JSValue):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toThis):

  • runtime/JSCell.cpp:

(JSC::JSCell::toThis):

  • runtime/JSCell.h:

(JSCell):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::toThis):

  • runtime/JSGlobalObject.h:

(JSGlobalObject):

  • runtime/JSNameScope.cpp:

(JSC::JSNameScope::toThis):

  • runtime/JSNameScope.h:

(JSNameScope):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::toThis):

  • runtime/JSObject.h:

(JSObject):

  • runtime/JSScope.cpp:

(JSC::JSScope::resolveWithThis):

  • runtime/JSString.cpp:

(JSC::JSString::toThis):

  • runtime/JSString.h:

(JSString):

  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::functionGetter):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayEntry::get):
(JSC::SparseArrayEntry::put):

  • runtime/StrictEvalActivation.cpp:

(JSC::StrictEvalActivation::toThis):

  • runtime/StrictEvalActivation.h:

(StrictEvalActivation): Filled out runtime support for converting 'this'
values as needed, according to the strictness of the caller.

Source/WebCore:

Updated to match JSC requirement that the callee performs 'this' value
conversion.

  • WebCore.order:
  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSInjectedScriptHostCustom.cpp:

(WebCore::JSInjectedScriptHost::internalConstructorName):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::call):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bridge/NP_jsobject.cpp:

(_NPN_Invoke):

Source/WebKit/mac:

Updated to match JSC requirement that the callee performs 'this' value
conversion.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):

Source/WebKit2:

Updated to match JSC requirement that the callee performs 'this' value
conversion.

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::invoke):

LayoutTests:

We pass these tests now:

  • sputnik/Conformance/11_Expressions/11.1_Primary_Expressions/11.1.1_The_this_Keyword/S11.1.1_A2-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.11_String.prototype.replace/S15.5.4.11_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.13_String.prototype.slice/S15.5.4.13_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.15_String.prototype.substring/S15.5.4.15_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.6_String.prototype.concat/S15.5.4.6_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.7_String.prototype.indexOf/S15.5.4.7_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.8_String.prototype.lastIndexOf/S15.5.4.8_A1_T3-expected.txt:
11:26 AM Changeset in webkit [149526] by Stephanie Lewis
  • 1 edit
    1 add in trunk/LayoutTests

Revert to old results on Lion.

Unreviewed.

Results were updated in (http://trac.webkit.org/changeset/149503) but that is compiled
out on Lion (http://trac.webkit.org/changeset/149510).

  • platform/mac-lion/media/video-controls-captions-trackmenu-localized-expected.txt: Added.
11:08 AM Changeset in webkit [149525] by Antti Koivisto
  • 18 edits
    3 deletes in trunk/Source/WebCore

Remove HTMLShadowElement
https://bugs.webkit.org/show_bug.cgi?id=115555

Reviewed by Andreas Kling.

This is not used internally.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ComposedShadowTreeWalker.cpp:
  • dom/NodeRenderingContext.cpp:
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTagNames.in:
  • html/InputType.cpp:

(WebCore::InputType::destroyShadowSubtree):

  • html/shadow/ContentDistributor.cpp:

(WebCore::ContentDistributor::distribute):

  • html/shadow/HTMLShadowElement.cpp: Removed.
  • html/shadow/HTMLShadowElement.h: Removed.
  • html/shadow/HTMLShadowElement.idl: Removed.
  • page/DOMWindow.idl:
11:08 AM Changeset in webkit [149524] by bfulgham@webkit.org
  • 2 edits in trunk/Source/WTF

Make ThreadFunctionInvocation fast allocated.
https://bugs.webkit.org/show_bug.cgi?id=115552

Reviewed by Benjamin Poulain.

  • wtf/ThreadFunctionInvocation.h:

(ThreadFunctionInvocation): Make Fast-allocated.

10:12 AM Changeset in webkit [149523] by mikhail.pozdnyakov@intel.com
  • 12 edits
    1 delete in trunk/Source

Remove WTF::ListRefPtr class
https://bugs.webkit.org/show_bug.cgi?id=115516

Reviewed by Anders Carlsson.

ListRefPtr was used only by FontFamily class, besides it strongly depended
on FontFamily class semantics which made it non-generic and inappropriate
for being present inside WTF.

This patch removes WTF::ListRefPtr class and moves its the functionality
into FontFamily class.

Source/WebCore:

No new tests, no change in the behavior.

  • page/FrameTree.h:

(FrameTree):

  • platform/graphics/FontFamily.h:

(FontFamily):
(WebCore::FontFamily::~FontFamily):
(WebCore):

Source/WTF:

  • GNUmakefile.list.am:
  • WTF.pro:
  • WTF.vcproj/WTF.vcproj:
  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Forward.h:

(WTF):

  • wtf/ListRefPtr.h: Removed.
9:58 AM Changeset in webkit [149522] by joone.hur@intel.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening.

Skip some failing tests after r149504.

  • platform/efl/TestExpectations:
3:35 AM WebKitGTK/2.0.x edited by zandobersek@gmail.com
Adding r149486 as a proposed merge. (diff)
3:02 AM WebKitGTK/2.0.x edited by agarcia@igalia.com
(diff)
2:34 AM Changeset in webkit [149521] by allan.jensen@digia.com
  • 2 edits in trunk/Source/WebCore

Crash when calling QWebFrame::evaluateJavaScript
https://bugs.webkit.org/show_bug.cgi?id=113434

Reviewed by Simon Hausmann.

We must take the JS API lock before accessing internal JS methods.

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::unwrapBoxedPrimitive):
(JSC::Bindings::getGregorianDateTimeUTC):
(JSC::Bindings::convertQVariantToValue):

12:45 AM May 2013 Meeting edited by Joseph Pecoraro
Added Merging iOS WebKit notes (diff)
12:10 AM Changeset in webkit [149520] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][CustomProtocols] NSURLProtocolClient methods should be dispatched on NSURLConnection's resource loader run loop
https://bugs.webkit.org/show_bug.cgi?id=115539

Reviewed by Alexey Proskuryakov.

It turns out that calling NSURLProtocolClient methods from a different
thread than the one running the NSURLConnection run loop is unsafe.
Although I can't capture it reliably in a test case, doing so can
sometimes result in a load timing out because the call to
-[NSURLProtocolClient URLProtocolDidFinishLoading:] was ignored by
NSURLConnection.

Fix this by dispatching these methods on the NSURLConnection resource
load run loop. This matches where NSURLProtocolClient methods are
dispatched by typical NSURLProtocol implementations, and in my testing
this solves the timeout issue.

  • Shared/Network/CustomProtocols/CustomProtocolManager.h: Declare

dispatchOnResourceLoaderRunLoop().

  • Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:

Declare +[NSURLConnection resourceLoaderRunLoop] on a category of
NSURLConnection. Also include the header that declares it if it's present.
(WebKit::CustomProtocolManager::didFailWithError): Call the
NSURLProtocolClient method via dispatchOnResourceLoaderRunLoop().
(WebKit::CustomProtocolManager::didLoadData): Ditto.
(WebKit::CustomProtocolManager::didReceiveResponse): Ditto.
(WebKit::CustomProtocolManager::didFinishLoading): Ditto.
(WebKit::CustomProtocolManager::dispatchOnResourceLoaderRunLoop):
Dispatch a block on the NSURLConnection resource loader run loop and
then wake up the run loop.

12:05 AM May 2013 Meeting edited by Joseph Pecoraro
Added Web Inspector talk notes (diff)
Note: See TracTimeline for information about the timeline view.