Timeline



May 4, 2015:

11:57 PM Changeset in webkit [183797] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Videos on apple.com flash when touching to show or hide the controls
https://bugs.webkit.org/show_bug.cgi?id=144598

Reviewed by Eric Carlson.

The apple.com site will add a "selection" rectangle atop a playing video when it recieves a touchstart
event. The default media controls use touchstart to signal the controls to become visible. Stop the touch
from propagating down to the page in this case.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handleWrapperTouchStart):

10:22 PM Changeset in webkit [183796] by Brent Fulgham
  • 2 edits in trunk/Tools

Correct '--show-webview' option for Tiled Drawing tests
https://bugs.webkit.org/show_bug.cgi?id=144621

Reviewed by Simon Fraser.

The scrolling thread/tiled drawing tests recreate the standard test runner web view. My earlier patch did not make
sure that the state of the '--show-webview' option was propagated to this additional view creation routine.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): Include the value of the 'shouldShowWebView' state in the
WKMutableDictionary passed to the 'ensureViewSupportsOptions' method.

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

Record the reference time when Performance is constructed.
<https://webkit.org/b/144616>

Reviewed by Geoffrey Garen.

This is a merge of Blink's r156613 by simonjam@chromium.org.

Cache a copy of the DocumentLoader's reference timestamp when constructing
the Performance object. That way we don't have to jump through a bunch of scary
hoops to access it when now() is called later on.

  • page/Performance.cpp:

(WebCore::Performance::Performance):
(WebCore::Performance::now): Deleted.

  • page/Performance.h:
9:29 PM Changeset in webkit [183794] by Simon Fraser
  • 4 edits in trunk

Fix assertions in WK1 tests after r183777.

Source/WebCore:

Two issues with the original change:

If not in compositing mode, we shouldn't schedule layer flushes, since
Document::documentWillSuspendForPageCache() only only calls cancelCompositingLayerUpdate()
if in compositing mode.

Second, RenderLayerCompositor::rootBackgroundTransparencyChanged() never stored the
new color, resulting in too many triggered compositing updates.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

LayoutTests:

Behavior difference with the change to RenderLayerCompositor::rootBackgroundTransparencyChanged().

  • platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt:
9:24 PM Changeset in webkit [183793] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix stale comment.

  • tests/mozilla/js1_5/Array/regress-101964.js:
9:16 PM Changeset in webkit [183792] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

  • tests/mozilla/js1_5/Array/regress-101964.js: 500ms isn't enough in debug mode. We don't care how long this takes so long as we run it to completion. I've raised the limit much higher.
8:51 PM Changeset in webkit [183791] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

  • tests/mozilla/js1_5/Array/regress-101964.js: Mozilla may have cared about this being fast a decade ago (or more), but we don't care. We've consistently found that an array implementation that punishes this case to get speed on common-case array accesses is better. This should fix some test failures on the bots.
8:35 PM Changeset in webkit [183790] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r183789.
https://bugs.webkit.org/show_bug.cgi?id=144620

Causing flakiness on exceptionFuzz tests locally on 32-bit
build (Requested by saamyjoon on #webkit).

Reverted changeset:

"Global functions should be initialized as JSFunctions in byte
code"
https://bugs.webkit.org/show_bug.cgi?id=144178
http://trac.webkit.org/changeset/183789

8:27 PM Changeset in webkit [183789] by saambarati1@gmail.com
  • 8 edits in trunk/Source/JavaScriptCore

Global functions should be initialized as JSFunctions in byte code
https://bugs.webkit.org/show_bug.cgi?id=144178

Reviewed by Geoffrey Garen.

This patch makes the initialization of global functions more explicit by
moving initialization into bytecode. It also prepares JSC for having ES6
style lexical scoping because initializing global functions in bytecode
easily allows global functions to be initialized with the proper scope that
will have access to global lexical variables. Global lexical variables
should be visible to global functions but don't live on the global object.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedProgramCodeBlock::visitChildren):

  • bytecode/UnlinkedCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGenerator.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):

  • runtime/JSGlobalObject.h:
8:22 PM Changeset in webkit [183788] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

RenderWidget::setWidgetGeometry() can end up destroying *this*.
https://bugs.webkit.org/show_bug.cgi?id=144601

Reviewed by Andreas Kling.

This is a speculative fix to ensure we don't crash on an invalid *this* renderer
while flattening the current iframe.
Calling RenderWidget::setWidgetGeometry() can result in destroying the current renderer.
While it is not a issue in case of normal layout flow as widget positions are updated at post layout,
frame flattening initiates this action in the middle of layout.
This patch re-introduces refcount model for RenderWidgets so that the renderer is protected during layout
when frame flattening is in use.

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::layoutWithFlattening): Let's be paranoid about child view.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::destroy):

  • rendering/FrameView.cpp:

(WebCore::FrameView::layout):

  • rendering/RenderView.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::~RenderWidget):

  • rendering/RenderWidget.h:

(WebCore::RenderWidget::ref):
(WebCore::RenderWidget::deref):

7:40 PM Changeset in webkit [183787] by fpizlo@apple.com
  • 12 edits
    1 add in trunk

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Reviewed by Geoffrey Garen.

PerformanceTests:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

  • LongSpider/hash-map.js: Added.

(HashMap):
(HashMap.):
(.get var):

Source/JavaScriptCore:

Decouple MIN_SPARSE_ARRAY_INDEX, which is the threshold for storing to the sparse map when
you're already using ArrayStorage mode, from the minimul array length required to use
ArrayStorage in a new Array(length) allocation.

Lift the array allocation length threshold to something very high. If this works, we'll
probably remove that threshold entirely.

This is a 27% speed-up on JetStream/hash-map. Because run-jsc-benchmarks still can't run
JetStream as a discrete suite, this adds hash-map to LongSpider so that we run it somewhere
for now.

  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNewArrayWithSize):

  • runtime/ArrayConventions.h:
  • runtime/JSArray.h:

(JSC::JSArray::create):

  • runtime/JSGlobalObject.h:

(JSC::constructEmptyArray):

Tools:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

  • Scripts/run-jsc-benchmarks:
6:00 PM Changeset in webkit [183786] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Always expand initial top level DOM tree nodes when not including the root (frame views)
https://bugs.webkit.org/show_bug.cgi?id=144607

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-04
Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.update):

5:37 PM Changeset in webkit [183785] by Yusuke Suzuki
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Add backed intrinsics to private functions exposed with private symbols in global object
https://bugs.webkit.org/show_bug.cgi?id=144545

Reviewed by Darin Adler.

Math.abs and Math.floor have ASM intrinsics And it is further accelerated in DFG/FTL layers.
This patch adds intrinsic to private functions exposed with private symbols in global object,
@floor and @abs.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalPrivateFuncAbs): Deleted.
(JSC::globalPrivateFuncFloor): Deleted.

  • runtime/MathObject.cpp:
  • runtime/MathObject.h:
  • tests/stress/array-from-abs-and-floor.js: Added.

(target1):
(target2):
(target3):

5:37 PM Changeset in webkit [183784] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

WebKit always goes through LaunchServices for main frame navigation actions
https://bugs.webkit.org/show_bug.cgi?id=144608

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined

_WKNavigationActionPolicyAllowWithoutTryingAppLink.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy
is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink.

5:16 PM Changeset in webkit [183783] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

AX: setting focus via accessibility object needs to set isSynchronizing in resulting selection intent
https://bugs.webkit.org/show_bug.cgi?id=144489

Patch by Doug Russell <d_russell@apple.com> on 2015-05-04
Reviewed by Chris Fleizach.

Resolves infinite looping when navigating rapidly between controls with the search API and then focusing
on the returned control.
Remove isSynchronizing flag from AXTextStateChangeIntent and put it on AXObjectCache.
Move AXTextStateChangeIntent logic in AccessibilityRenderObject into a helper method.
Call new AXTextStateChangeIntent helper from AccessibilityRenderObject::setFocus().
Add support for setSelectedVisibleTextRange() in accessibility tests.

Source/WebCore:

Test: platform/mac/accessibility/selection-sync.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::setTextSelectionIntent):
(WebCore::AXObjectCache::setIsSynchronizingSelection):
(WebCore::AXObjectCache::postTextStateChangeNotification):

  • accessibility/AXObjectCache.h:
  • accessibility/AXTextStateChangeIntent.h:

(WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::setTextSelectionIntent):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange): Deleted.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::setSelectedVisibleTextRange):
(AccessibilityUIElement::getJSClass):
(AccessibilityUIElement::textMarkerForIndex): Deleted.

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

LayoutTests:

  • platform/mac/accessibility/selection-sync-expected.txt: Added.
  • platform/mac/accessibility/selection-sync.html: Added.
5:08 PM Changeset in webkit [183782] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Audio-only files should not have a device picker
https://bugs.webkit.org/show_bug.cgi?id=144606
<rdar://problem/20806387>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.hasVideo): New.
(Controller.prototype.updateFullscreenButtons): Use hasVideo.
(Controller.prototype.updateHasVideo): Ditto.
(Controller.prototype.updateWirelessTargetAvailable): Don't show the target picker button
unless a file has video.

4:58 PM Changeset in webkit [183781] by Chris Dumez
  • 6 edits
    3 adds in trunk

Crash at com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::createWindow + 185
https://bugs.webkit.org/show_bug.cgi?id=144597
<rdar://problem/20361579>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/dom/Window/window-open-activeWindow-null-frame.html

In our implementation of window.open(), we make sure that the window
which window.open() is called has a frame. However, we did not have the
same check for the activeDOMWindow (i.e. the lexicalGlobalObject) causing
us to crash in WebCore::createWindow() when dereferencing it.

This patch updates WebCore::createWindow() takes a reference to the
openerFrame instead of a pointer to make it clear the implementation
expects it to be non-null. A null check is then added for the frame
at the call site: DOMWindow::createWindow().

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • loader/FrameLoader.cpp:

(WebCore::isDocumentSandboxed):
(WebCore::FrameLoader::submitForm):
(WebCore::createWindow):
Take a reference to openerFrame instead of a pointer as the
implementation expects it to be non-null.

  • loader/FrameLoader.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):
Add null check for activeFrame before passing it to
WebCore::createWindow().

LayoutTests:

Add a layout test to cover the case where window.open() is called on a
window that is different than the activeDOMWindow and where the
activeDOMWindow does not have a frame.

  • fast/dom/Window/resources/test-frame.html: Added.
  • fast/dom/Window/window-open-activeWindow-null-frame-expected.txt: Added.
  • fast/dom/Window/window-open-activeWindow-null-frame.html: Added.
4:51 PM Changeset in webkit [183780] by enrica@apple.com
  • 5 edits in trunk/Source/WebKit2

[iOS WK2] editorState should include information about selection clipping rectangle.
https://bugs.webkit.org/show_bug.cgi?id=144603
rdar://problem/20521252

Reviewed by Chris Dumez.

Adding selectionClipRect to the post-layout portion of EditorState.
This way we can compute the selection clipping rectangle based on
up-to-date information instead of using the rectangle provided when
then element was first focused.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionClipRect]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState):

4:46 PM Changeset in webkit [183779] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] ARM related build system cleanup
https://bugs.webkit.org/show_bug.cgi?id=144566

Reviewed by Darin Adler.

  • CMakeLists.txt:
4:42 PM Changeset in webkit [183778] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Create a named CSS property for system colors
https://bugs.webkit.org/show_bug.cgi?id=144423

Follow-up comments from Darin Adler.

  • rendering/RenderThemeIOS.h: Cache a Color rather than an RGBA32.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor): Use "add" to avoid multiple hits on the HashMap, and
cache invalid responses so that we don't have to keep looking for non-existent colors.

  • rendering/RenderThemeMac.h: Same as iOS.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor):

4:31 PM Changeset in webkit [183777] by Simon Fraser
  • 5 edits
    2 adds in trunk

display:none iframes cause repeated compositing flushing
https://bugs.webkit.org/show_bug.cgi?id=144529

Reviewed by Darin Adler.

Source/WebCore:

FrameView::updateLayoutAndStyleIfNeededRecursive() only forces layout on rendered
frames, by virtue of using its Widget children which are FrameViews.

However, FrameView::flushCompositingStateIncludingSubframes() iterated over
all frames, and return false if any subframe needed layout. Thus, if it saw
non-rendered frames (which are never laid out), it would return false,
which causes the CFRunLoopObserver that drives flushing to run again.

Fix by having FrameView::flushCompositingStateIncludingSubframes() only check
rendered frames, using FrameTree::traverseNextRendered() (which needs to be public).

Also change FrameView::needsStyleRecalcOrLayout() and FrameView::updateLayoutAndStyleIfNeededRecursive()
to fetch the list of FrameViews using FrameTree's nextRenderedSibling(), rather than using
the Widget tree, since we'd like to eventually remove Widgets, and using the Frame
tree matches flushCompositingStateIncludingSubframes() and other code.

Test: compositing/iframes/display-none-subframe.html

  • page/FrameTree.h:
  • page/FrameView.cpp:

(WebCore::FrameView::flushCompositingStateIncludingSubframes):
(WebCore::FrameView::needsStyleRecalcOrLayout):
(WebCore::FrameView::renderedChildFrameViews): Helper that returns a vector
of Ref<FrameView>s for rendered frames only.
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • page/FrameView.h:

LayoutTests:

Test with a display:none iframe that triggers a single compositing flush,
then counts how many occur in 10ms.

  • compositing/iframes/display-none-subframe-expected.txt: Added.
  • compositing/iframes/display-none-subframe.html: Added.
4:10 PM Changeset in webkit [183776] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix build with SECURITY_ASSERTIONS enabled.
<rdar://problem/20653104>

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):

  • dom/ScriptExecutionContext.h:
3:53 PM Changeset in webkit [183775] by Simon Fraser
  • 10 edits
    2 adds in trunk

Fix updating of tiled backing opaquenss when the page background color changes
https://bugs.webkit.org/show_bug.cgi?id=144600
rdar://problem/20723035

Reviewed by Tim Horton.

Source/WebCore:

RenderLayerCompositor makes the page tiles opaque or not based on the result of
viewHasTransparentBackground(), which consults the view transparency, and
FrameView::documentBackgroundColor(). documentBackgroundColor() in turn is based
on the root and/or body background colors.

We thus need to re-evaluate whether page tiles are opaque when any of these inputs
change, but were failing to do so for the FrameView's baseBackgroundColor, and
the page root background color.

Fix by having FrameView::setBaseBackgroundColor(), and RenderBox::styleDidChange()
(for the root) trigger a compositing update when necessary.

Added setViewBaseBackgroundColor() on Internals for testing.

Test: platform/mac-wk2/tiled-drawing/background-transparency-toggle.html

  • page/FrameView.cpp:

(WebCore::FrameView::setTransparent): Use the isViewForDocumentInFrame() helper.
(WebCore::FrameView::setBaseBackgroundColor): Bail if we're not the view for the
frame's document, and trigger a compositing update check if the alpha changed.
(WebCore::FrameView::isViewForDocumentInFrame): Helper that checks to see if
this FrameView is associated with the Document being displayed in the FrameView's
Frame. This returns false when we're setting up a new FrameView (its Frame still
points to the old document, so renderView() returns the RenderView for the Frame's
existing Document).

  • page/FrameView.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange): Have the compositor check to see if it needs
to do an update.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged): If the result
of documentBackgroundColor() changed in alpha since the last time, trigger a compositing
update.

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::Internals::setViewBaseBackgroundColor):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Test that dumps layers with various baseBackgroundColor and body background color
combinations.

  • platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/background-transparency-toggle.html: Added.
3:14 PM Changeset in webkit [183774] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Crash in -[WebCALayerHostWrapper resolveBounds]
https://bugs.webkit.org/show_bug.cgi?id=144595

Reviewed by Eric Carlson.

It is possible for a WebCALayorHostWrapper to outlive the WebVideoFullscreenModel to which it refers,
since the model pointer is bare, rather than a RefPtr. The reference to the model must be invalidated
before the model is destroyed.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal):

2:42 PM Changeset in webkit [183773] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

Fix the test after r183758 since shouldNotBe is not supported in the standalone testing.

  • js/class-syntax-default-constructor-expected.txt:
  • js/script-tests/class-syntax-default-constructor.js:
1:46 PM Changeset in webkit [183772] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Implement the "--show-webview" option for Windows
https://bugs.webkit.org/show_bug.cgi?id=144589

Reviewed by Alex Christensen.

Add another runtime flag (--show-webview) that causes DumpRenderTree
to draw its view on-screen, rather than the standard offscreen mode.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(createWebViewAndOffscreenWindow): Honor the 'showWebView' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the new
command-line argument, and set the global 'showWebView' state if
appropriate.

1:44 PM Changeset in webkit [183771] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r183661.
https://bugs.webkit.org/show_bug.cgi?id=144594

Caused ~3.5MB regression on membuster(!) (Requested by kling_
on #webkit).

Reverted changeset:

"Decrease minimum Vector size."
https://bugs.webkit.org/show_bug.cgi?id=144453
http://trac.webkit.org/changeset/183661

1:42 PM Changeset in webkit [183770] by rniwa@webkit.org
  • 15 edits
    2 adds in trunk

Toggling underline or strike through affects each other
https://bugs.webkit.org/show_bug.cgi?id=27818

Reviewed by Darin Adler.

Source/WebCore:

This patch introduces a new mechanism to apply and remove text decorations. This is necessary because text
decorations are always additive and we can't differentiate whether we're adding or removing a text decoration.
Conceptually, we need four values for text decorations: adding underline, removing underline, adding
line-through, and removing line-through but we have only three: underline, line-through, none.

After this patch, there are three mechanism by which text decorations states are kept tracked. While applying
or removing text decorations, we use newly added m_underlineChange and m_strikeThroughChange in EditingStyle.
For the typing style, we use -webkit-text-decorations-in-effect to store the state since we need to preserve
every type of text decorations such as overline in addition to underline and line-through. Once applied, all
text decorations should be expressed in terms of the standard text-decoration property.

Test: editing/execCommand/toggle-mixed-text-decorations.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::removeCSSStyle): conflictsWithInlineStyleOfElement now creates a new inline style
instead of a list of properties to remove.
(WebCore::ApplyStyleCommand::addBlockStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleChange): Merge inline styles instead of adding as string.
Otherwise it would generate style content attribute with multiple text-decoration properties.

  • editing/EditingStyle.cpp:

(WebCore::HTMLElementEquivalent::matches):
(WebCore::HTMLElementEquivalent::propertyExistsInStyle): Takes an EditingStyle instead of StyleProperties.
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent):
(WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle): Respect newly added m_strikeThroughChange and
m_underlineChange in EditingStyle.
(WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle): Ditto.
(WebCore::HTMLTextDecorationEquivalent::changeInStyle): Added. Retrieves the change enum for the associated
type of text-decoration (underline or strike through).
(WebCore::HTMLAttributeEquivalent::matches):
(WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
(WebCore::EditingStyle::EditingStyle): Initialize m_underlineChange and m_strikeThroughChange. Also use the
delegating constructor elsewhere. Also added the missing call to extractFontSizeDelta() in the variant that
takes CSSPropertyID and String, and added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::isEmpty): Return false when m_underlineChange and m_strikeThroughChange are not "none".
(WebCore::applyTextDecorationChangeToValueList): Added.
(WebCore::EditingStyle::overrideTypingStyleAt): Added. Used by Editor::computeAndSetTypingStyle to set a new
typing style. Resolve m_underlineChange and m_strikeThroughChange into -webkit-text-decorations-in-effect.
(WebCore::EditingStyle::clear): Clear m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::copy): Copy m_underlineChange and m_strikeThroughChange.
(WebCore::textDecorationValueList): Added.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement): Now takes a pointer to MutableStyleProperties
instead of a vector. This was necessary we can't simply remove text-decoration property in ApplyStyleCommand's
removeCSSStyle as that would result in unrelated text decorations also getting removed. Also added the code
for m_underlineChange and m_strikeThroughChange. Only removing text decoration changes can cause a conflict
since text decorations are always additive.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement): Check isEmpty() instead of the nullity of
m_mutableStyle to respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode): Respect the values of m_underlineChange and
m_strikeThroughChange. Here, the style is considered present if it has text decorations that are being added.
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Takes EditingStyle instead of StyleProperties to
respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::mergeTextDecorationValues):
(WebCore::EditingStyle::mergeStyle): Make a copy of CSSValueList before modifying it since CSSValueList's are
shared with other immutable StyleProperties.
(WebCore::StyleChange::StyleChange): Set m_applyUnderline, m_applyLineThrough, and m_cssStyle if either
m_underlineChange or m_strikeThroughChange are TextDecorationChange::Add in EditingStyle if the current position
doesn't already have the matching style.
(WebCore::StyleChange::operator==): Moved from the header file. Also added the logic to compare m_cssStyle now
that it's a StyleProperties instead of String.

  • editing/EditingStyle.h: Added TextDecorationChange.

(WebCore::EditingStyle::create): Added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
(WebCore::EditingStyle::setUnderlineChange): Added.
(WebCore::EditingStyle::underlineChange): Added.
(WebCore::EditingStyle::setStrikeThroughChange): Added.
(WebCore::EditingStyle::strikeThroughChange): Added.
(WebCore::StyleChange::cssStyle): Now returns StyleProperties* instead of String so that ApplyStyleCommand's
applyInlineStyleChange could merge inline styles instead of just appending it to the end.
(WebCore::StyleChange::operator==): Moved into the cpp file.

  • editing/Editor.cpp:

(WebCore::Editor::applyStyle): Added. This variant takes EditingStyle instead of StyleProperties.
(WebCore::Editor::applyStyleToSelection): Ditto.
(WebCore::Editor::computeAndSetTypingStyle): Added a variant for EditingStyle. Also use overrideTypingStyleAt
to set -webkit-text-decorations-in-effect based on m_underlineChange and m_strikeThroughChange

  • editing/Editor.h:
  • editing/EditorCommand.cpp:

(WebCore::applyCommandToFrame):
(WebCore::isStylePresent): Extracted from executeToggleStyle.
(WebCore::executeApplyStyle):
(WebCore::executeToggleStyle):
(WebCore::executeToggleStyleInList): Deleted.
(WebCore::textDecorationChangeForToggling): Added. Used in executeStrikethrough and executeUnderline.
(WebCore::executeStrikethrough):
(WebCore::executeUnderline):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _setTypingStyle:withUndoAction:]):

LayoutTests:

Added a regression test and rebaselined various tests as explained below.

  • editing/execCommand/script-tests/toggle-style-2.js: The order in which u and strike elements appear have switched.
  • editing/execCommand/script-tests/toggle-text-decorations.js: Ditto for line-through and overline.
  • editing/execCommand/toggle-mixed-text-decorations-expected.txt: Added.
  • editing/execCommand/toggle-mixed-text-decorations.html: Added.
  • editing/execCommand/toggle-style-2-expected.txt: Rebaselined.
  • editing/execCommand/toggle-text-decorations-expected.txt: Rebaselined.
  • editing/undo/remove-css-property-and-remove-style-expected.txt: The order in which color and font-weight properties

appear have switched.

1:42 PM Changeset in webkit [183769] by akling@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Optimize WeakBlock's "reap" and "visit" operations.
<https://webkit.org/b/144585>

Reviewed by Geoffrey Garen.

WeakBlock was using Heap::isLive(void*) to determine the liveness of weak pointees.
That function was really written with conservative roots marking in mind, and will do a bunch
of sanity and bounds checks.

For weaks, we know that the pointer will have been a valid cell pointer into a block
of appropriate cell size, so we can skip a lot of the checks.

We now keep a pointer to the MarkedBlock in each WeakBlock. That way we no longer have to do
MarkedBlock::blockFor() for every single cell when iterating.

Note that a WeakBlock's MarkedBlock pointer becomes null when we detach a logically empty
WeakBlock from its WeakSet and transfer ownership to Heap. At that point, the block will never
be pointing to any live cells, and the only operation that will run on the block is sweep().

Finally, MarkedBlock allows liveness queries in three states: Marked, Retired, and Allocated.
In Allocated state, all cells are reported as live. This state will reset to Marked on next GC.
This patch uses that knowledge to avoid branching on the MarkedBlock's state for every cell.

This is a ~3x speedup of visit() and a ~2x speedup of reap() on Dromaeo/dom-modify, netting
what looks like a 1% speedup locally.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::MarkedBlock): Pass *this to the WeakSet's ctor.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::isMarkedOrNewlyAllocated): Added, stripped-down version of isLive() when the
block's state is known to be either Marked or Retired.

(JSC::MarkedBlock::isAllocated): Added, tells WeakBlock it's okay to skip reap/visit since isLive()
would report that all cells are live anyway.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Stash a MarkedBlock* on each WeakBlock.

(JSC::WeakBlock::visit):
(JSC::WeakBlock::reap): Optimized these two to avoid a bunch of pointer arithmetic and branches.

  • heap/WeakBlock.h:

(JSC::WeakBlock::disconnectMarkedBlock): Added.

  • heap/WeakSet.cpp:

(JSC::WeakSet::sweep): Call the above when removing a WeakBlock from WeakSet and transferring
ownership to Heap until it can die peacefully.

(JSC::WeakSet::addAllocator):

  • heap/WeakSet.h:

(JSC::WeakSet::WeakSet): Give WeakSet a MarkedBlock& for passing on to WeakBlocks.

1:36 PM Changeset in webkit [183768] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=144536

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.closed):
(WebInspector.DebuggerSidebarPanel.prototype._addIssuesForSourceCode):
(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

1:36 PM Changeset in webkit [183767] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Fix build breakage caused by API deprecation
https://bugs.webkit.org/show_bug.cgi?id=144593

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Suppress warnings.

1:34 PM Changeset in webkit [183766] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading a page
https://bugs.webkit.org/show_bug.cgi?id=144535

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FolderizedTreeElement.js:

(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Fix an exception if not in a tree.
(WebInspector.FolderizedTreeElement.prototype.prepareToPopulate):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):

1:27 PM Changeset in webkit [183765] by Chris Dumez
  • 6 edits
    4 adds in trunk

REGRESSION (r178156): CSS Parser incorrectly rejects valid calc() in padding-right property
https://bugs.webkit.org/show_bug.cgi?id=144584
<rdar://problem/20796829>

Reviewed by Darin Adler.

Source/WebCore:

The CSS parser was rejecting calculated values at parsing time if it
considered the value was negative and the CSS property did not allow
negative values. However, doing so at this point will not always work
because we don't necessarily know the font-size yet (for e.g. for
calc(0.5em - 2px). Also, rejecting negative calculated values is not
the right behavior as the the specification. The specification says
we should clamp:
http://dev.w3.org/csswg/css-values-3/#calc-range

This patch updates validateCalculationUnit() to stop marking the value
as invalid if it is negative. Instead, let the CSSCalcValue's permitted
range clamp the value as needed.

This bug was causing the bottom graphic on aldentrio.com to not be
rendered properly.

Test: fast/css/negative-calc-values.html

fast/css/padding-calc-value.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::validateCalculationUnit):

LayoutTests:

  • fast/css/negative-calc-values-expected.txt: Added.
  • fast/css/negative-calc-values.html: Added.

Add a layout test that assigns negative calc() values to properties
whose values cannot be negative to verify that values are clamped as
per the specification:
http://dev.w3.org/csswg/css-values-3/#calc-range

  • fast/css/padding-calc-value-expected.txt: Added.
  • fast/css/padding-calc-value.html: Added.

Add a layout test to test that using calc(.5em - 2px) for padding-right
CSS property works as intended. It used to be resolved as 0px instead
of "2*font-size - 2px".

  • fast/css/text-shadow-calc-value-expected.txt:
  • fast/css/text-shadow-calc-value.html:

Update test to match what the specification says:
http://dev.w3.org/csswg/css-values-3/#calc-range
"width: calc(5px - 10px);" is equivalent to "width: 0px;" since widths
smaller than 0px are not allowed.

1:22 PM Changeset in webkit [183764] by timothy@apple.com
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=144520

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager): No need for a delay now. Call reset().
(WebInspector.TimelineManager.prototype.reset):
(WebInspector.TimelineManager.delayedWork): Deleted.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.closed):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView): Added Timelines.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView.prototype.closed):

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView.prototype.closed): Deleted. Made generic
in ContentBrowserTabContentView.prototype.closed.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype._tabBarItemSelected): Fix a potential exception
when selectedTabBarItem is null.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.closed):
(WebInspector.TimelineSidebarPanel._recordingCreated): Call _addRecording.
(WebInspector.TimelineSidebarPanel._addRecording): Added.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView):

1:11 PM Changeset in webkit [183763] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Allocation sinking is prohibiting the creation of phis between a Phantom object and its materialization
https://bugs.webkit.org/show_bug.cgi?id=144587

Rubber stamped by Filip Pizlo.

When sinking object allocations, we ensure in
determineMaterializationPoints that whenever an allocation is
materialized on a path to a block, it is materialized in all such
paths. Thus when running the SSA calculator to place Phis in
placeMaterializationPoints, we can't encounter a situation where some
Upsilons are referring to a materialization while others are referring
to the phantom object.

This replaces the code that was adding a materialization late in
placeMaterializationPoints to handle that case by an assertion that it
does not happen, which will make
https://bugs.webkit.org/show_bug.cgi?id=143073 easier to implement.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):

12:33 PM Changeset in webkit [183762] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Switching recordings in the Timeline navigation bar is broken
https://bugs.webkit.org/show_bug.cgi?id=144519

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._hierarchicalPathComponentWasSelected): Use revealAndSelect
on the TreeElement instead of showing the representedObject directly. This fixes an exception in
TimelineRecordingContentView where it wouldn't be initialized with the TimelineSidebarPanel extra argument.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.get visibleDuration): Fix an annoying assert. We show the view
early in construction, before it is in the document. Future updateLayout calls work and fix this.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.shown): Call _currentContentViewDidChange
to trigger the sidebar to update when this recording view is shown.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Moved code from here...
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected): ... to here. Take two different paths
to state restoration here. If the view existed before, use its state. If now, use the current state that
is captured by the cookie logic and explicitly restore it.

12:28 PM Changeset in webkit [183761] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Fix lint error on mac-wk1.

  • platform/mac-wk1/TestExpectations:
12:27 PM Changeset in webkit [183760] by ap@apple.com
  • 2 edits in trunk/LayoutTests

storage/indexeddb/mozilla/cursor-update-updates-indexes.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=144590

  • platform/mac-wk2/TestExpectations: Marking as such.
12:23 PM Changeset in webkit [183759] by rniwa@webkit.org
  • 5 edits in trunk

Extending undefined in class syntax should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=144284

Reviewed by Darin Adler.

Source/JavaScriptCore:

The bug was caused by op_eq_null evaluating to true when compared to undefined.
Explicitly check op_eq_undefined first to detect the case where we're extending undefined.

We also had bogus test cases checked in class-syntax-extends.html. This patch also fixes them.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ClassExprNode::emitBytecode):

LayoutTests:

Fixed the expectation for extending undefined and removed irrelevant test cases for extending undefined
since we'll never get to instantiate these classes now.

  • js/class-syntax-extends-expected.txt:
  • js/script-tests/class-syntax-extends.js:
12:22 PM Changeset in webkit [183758] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

ES6 classes: Invalid test for constructor property
https://bugs.webkit.org/show_bug.cgi?id=144278

Reviewed by Darin Adler.

Fixed the test. The constructors of two distinct classes should definitely be distinct.

  • js/class-syntax-default-constructor-expected.txt:
  • js/script-tests/class-syntax-default-constructor.js:
12:21 PM Changeset in webkit [183757] by rniwa@webkit.org
  • 5 edits in trunk

new super should be a syntax error
https://bugs.webkit.org/show_bug.cgi?id=144282

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Disallow "new super" as ES6 spec doesn't allow this.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):

LayoutTests:

Rebaselined the test.

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
12:17 PM Changeset in webkit [183756] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Skip fast/images/animated-gif-body-outside-viewport.html on Windows. It
started failing after r183732, but like the other fast/images/animated-gif* tests,
it's sensitive to window display timing. These tests were already skipped for Mac
WK1, probably because we disable window autodisplay on the Mac.

  • platform/win/TestExpectations:
11:51 AM Changeset in webkit [183755] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

Network Cache: Support time based cache clearing
https://bugs.webkit.org/show_bug.cgi?id=144568
<rdar://problem/19769820>

Reviewed by Andreas Kling.

Support clearing cache entries newer than given time only.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::deleteDumpFile):
(WebKit::NetworkCache::Storage::traverse):

Also fix thread safety of traverse handler function.

(WebKit::NetworkCache::Cache::clear):

Also add completion handler to support the API properly.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::clear):

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::clearNSURLCache):

Factor to a function.

(WebKit::NetworkProcess::clearDiskCache):

11:47 AM Changeset in webkit [183754] by saambarati1@gmail.com
  • 4 edits in trunk/Source/JavaScriptCore

JSCallbackObject does not maintain symmetry between accesses for getOwnPropertySlot and put
https://bugs.webkit.org/show_bug.cgi?id=144265

Reviewed by Geoffrey Garen.

JSCallbackObject will defer to a parent's implementation of getOwnPropertySlot
for a static function if the parent has that property slot. JSCallbackObject::put
did not maintain this symmetry of also calling ::put on the parent if the parent
has the property. We should ensure that this symmetry exists.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):

  • API/tests/testapi.c:
  • API/tests/testapi.js:

(globalStaticFunction2):
(this.globalStaticFunction2):
(iAmNotAStaticFunction):
(this.iAmNotAStaticFunction):

11:45 AM Changeset in webkit [183753] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make ExecState::vm() branchless in release builds.
<https://webkit.org/b/144586>

Reviewed by Geoffrey Garen.

Avoid null checking the ExecState's callee() before getting the
VM from it. The code was already dereferencing it anyway, since we
know it's not gonna be null.

  • runtime/JSCellInlines.h:

(JSC::ExecState::vm):

11:37 AM Changeset in webkit [183752] by basile_clement@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Object allocation not sinking properly through CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=144465

Reviewed by Filip Pizlo.

Currently, sinking an allocation through a CheckStructure will
completely ignore all structure checking, which is obviously wrong.

A CheckStructureImmediate node type was present for that purpose, but
the CheckStructures were not properly replaced. This ensures that
CheckStructure nodes are replaced by CheckStructureImmediate nodes when
sunk through, and that structure checking happens correctly.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCheckStructureImmediate): Added.
(JSC::DFG::Node::hasStructureSet):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCheckStructure):
(JSC::FTL::LowerDFGToLLVM::compileCheckStructureImmediate):
(JSC::FTL::LowerDFGToLLVM::checkStructure):

  • tests/stress/sink_checkstructure.js: Added.

(foo):

11:26 AM Changeset in webkit [183751] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Show wireless playback placard even when an element has custom controls
https://bugs.webkit.org/show_bug.cgi?id=144548

Reviewed by Brent Fulgham.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveAnyUI): Return true when playing to wireless target.
(Controller.prototype.reconnectControls): Add controls when playing to wireless target.
(Controller.prototype.setPlaying): Return early when there is no 'controls' attribute.
(Controller.prototype.showControls): Ditto.
(Controller.prototype.updateWirelessPlaybackStatus): Call updateBase when playing to wireless
target to ensure that controls have been set up.
(Controller.prototype.handleWirelessPlaybackChange): Call reconnectControls when playing
to wireless target when there is no 'controls' attribute.
(Controller.prototype.showInlinePlaybackPlaceholderOnly): New.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Call configureMediaControls.
(WebCore::HTMLMediaElement::configureMediaControls): Require controls when playing
to wireless target.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Remove some unhelpful, noisy, logging.

11:24 AM Changeset in webkit [183750] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the build.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Moved off of a deprecated
method to a non-deprecated equivalent.

10:27 AM Changeset in webkit [183749] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r183570): jslib-traverse-jquery is 22% slower
https://bugs.webkit.org/show_bug.cgi?id=144476

Reviewed by Sam Weinig.

jslib-traverse-jquery is now 31% faster than its unregressed baseline.

The jQuery algorithm for sorting DOM nodes is so pathologically slow that,
to my knowledge, the topic of how to optimize it is not covered in any
literature about sorting.

On the slowest jQuery sorting test -- prevAll -- our new
Array.prototype.sort, compared to its predecessor, performed 12% fewer
comparisons and requireed 10X less overhead per comparison. Yet, it was
slower.

It was slower because it inadvertantly increased the average cost of the
comparison function by 2X. jQuery uses compareDocumentPosition to compare
DOM nodes, and compareDocumentPosition(a, b) is O(N) in the distance
required to traverse backwards from b to a. In prevAll, we encounter the
worst case for merge sort of compareDocumentPosition: A long list of DOM
nodes in mostly reverse order. In this case, merge sort will sequentially
compareDocumentPosition(a, b), where a is not reachable backwards from
b, and therefore compareDocumentPosition will traverse the whole sibling
list.

The solution is simple enough: Call compareDocumentPosition(b, a) instead.

This is a pretty silly thing to do, but it is harmless, and jQuery is
popular, so let's do it.

We do not risk suffering the same problem in reverse when sorting a long
list of DOM nodes in forward order. (We still have a 37% speedup on the
nextAll benchmark.) The reason is that merge sort performs 2X fewer
comparisons when the list is already sorted, so we can worry less about
the cost of each comparison.

A fully principled soultion to this problem would probably do something
like Python's timsort, which special-cases ordered ranges to perform
only O(n) comparisons. But that would contradict our original
goal of just having something simple that works.

Another option is for elements to keep a compareDocumentPosition cache,
like a node list cache, which allows you to determine the absolute
position of a node using a hash lookup. I will leave this as an exercise
for kling.

  • builtins/Array.prototype.js:

(sort.merge): Compare in an order that is favorable to a comparator
that calls compareDocumentPosition.

10:25 AM Changeset in webkit [183748] by jfernandez@igalia.com
  • 25 edits
    5 adds in trunk

[CSS Box Alignment] Upgrade justify-content parsing to CSS3 Box Alignment spec.
https://bugs.webkit.org/show_bug.cgi?id=144442

Reviewed by David Hyatt.

Upgrade the justify-content property to the last CSS3 Box
Alignment specification. It defines a different enumeration for
Positional and Distribution alignment, which requires changes in
the FlexibleBox implementation.

Source/WebCore:

A new parsing function has been implemented to replace the basic
keyword IDs validation. Because of the complexity of the new
values, a new CSSPrimitiveValue derived class has been defined
which simplifies considerably the parsing logic.

We will follow the same approach than for Self Alignment, defining
a single class to hold all the related alignment data. This makes
possible to use a StyleBuilderConverter function instead of custom
builder functions for these properties.

Test: css3/parse-justify-content.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveContentAlignmentAuto):
(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::valueForItemPositionWithOverflowAlignment): Deleted.

  • css/CSSContentDistributionValue.cpp: Added.

(WebCore::CSSContentDistributionValue::CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::~CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::customCSSText):
(WebCore::CSSContentDistributionValue::equals):

  • css/CSSContentDistributionValue.h: Added.

(WebCore::CSSContentDistributionValue::create):
(WebCore::CSSContentDistributionValue::distribution):
(WebCore::CSSContentDistributionValue::position):
(WebCore::CSSContentDistributionValue::overflow):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::isContentDistributionKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isAlignmentOverflowKeyword):
(WebCore::CSSParser::parseContentDistributionOverflowPosition):
(WebCore::CSSParser::parseItemPositionOverflowPosition):
(WebCore::CSSParser::parseLegacyPosition): Deleted.

  • css/CSSParser.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContentPosition):
(WebCore::CSSPrimitiveValue::operator ContentDistributionType):
(WebCore::CSSPrimitiveValue::operator EFlexDirection): Deleted.

  • css/CSSPropertyNames.in:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isContentDistributionValue):
(WebCore::CSSValue::isWebKitCSSFilterValue): Deleted.

  • css/CSSValueKeywords.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertContentAlignmentData):
(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): Deleted.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::initialJustifyContentOffset):
(WebCore::justifyContentSpaceBetweenChildren):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleContentAlignmentData.h: Added.

(WebCore::StyleContentAlignmentData::StyleContentAlignmentData):
(WebCore::StyleContentAlignmentData::setPosition):
(WebCore::StyleContentAlignmentData::setDistribution):
(WebCore::StyleContentAlignmentData::setOverflow):
(WebCore::StyleContentAlignmentData::position):
(WebCore::StyleContentAlignmentData::distribution):
(WebCore::StyleContentAlignmentData::overflow):
(WebCore::StyleContentAlignmentData::operator==):
(WebCore::StyleContentAlignmentData::operator!=):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Some minor changes in some Flexbox related test cases for adapting
them to the new parsing logic. New layout tests, not Flexbox
specific, to verify the parsing of the new values.

  • css3/flexbox/css-properties.html:
  • css3/parse-justify-content-expected.txt: Added.
  • css3/parse-justify-content.html: Added.
9:57 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
9:22 AM Changeset in webkit [183747] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Compile error in sharedEGLDisplay() method.
https://bugs.webkit.org/show_bug.cgi?id=144563

Reviewed by Alex Christensen.

The PlatformDisplay type is undefined.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay):

8:35 AM Changeset in webkit [183746] by zandobersek@gmail.com
  • 23 edits in trunk/Source

[WTF] Remove Functional.h inclusions
https://bugs.webkit.org/show_bug.cgi?id=144400

Reviewed by Darin Adler.

Source/WebCore:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebCore.

  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
  • Modules/mediastream/UserMediaRequest.cpp:
  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.mm:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:
  • platform/MemoryPressureHandler.cpp:
  • platform/UserActivity.h: Include the <objc/objc.h> header that was previously

indirectly included through Functional.h.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/mac/SoftLinking.h: Unconditionally include the <objc/runtime.h> header

that was previously included for the Mac port through Functional.h.

Source/WebKit2:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebKit2.

  • Platform/IPC/unix/ConnectionUnix.cpp:
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the <objc/runtime.h>

header that was previously indirectly included through the Functional.h header.

  • WebProcess/WebPage/DrawingArea.cpp:

Source/WTF:

Remove most of the Functional.h header inclusions. The header is preserved
since it's still used by older versions of Safari, and for the callOnMainThread()
stub in DeprecatedSymbolsUsedBySafari.mm.

  • wtf/MainThread.cpp:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.cpp:
  • wtf/WorkQueue.h:
  • wtf/efl/DispatchQueueEfl.h:
  • wtf/efl/DispatchQueueWorkItemEfl.h:
8:20 AM Changeset in webkit [183745] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Remove dead code from TestInvocationCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=144564

Reviewed by Gyuyoung Kim.

Only EFL and GTK port use TestInvocationCairo.cpp, there isn't other platform.

  • WebKitTestRunner/cairo/TestInvocationCairo.cpp:

(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

7:40 AM WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
6:30 AM Changeset in webkit [183744] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

[Streams API] Refactor ReadableJSStream and ReadableStreamJSSource
https://bugs.webkit.org/show_bug.cgi?id=144387

Reviewed by Darin Adler.

Made ReadableStreamReader a private class of ReadableJSStream.
Simplified ReadableJSStream construction so that binding constructor does not need to know about ReadableStreamJSSource.

No functional change, existing tests cover the changes.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::source): Added to implement jsSource(), needed by ReadableJSStream.

  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream): Simplified to not have to handle source creation.

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::ReadableStreamJSSource::globalObject): Helper function to be used in other future methods.
(WebCore::ReadableStreamJSSource::start):
(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::createReader):
(WebCore::ReadableJSStream::jsSource):
(WebCore::ReadableJSStream::Reader::create):
(WebCore::ReadableJSStream::Reader::Reader):

  • bindings/js/ReadableStreamJSSource.h:
4:20 AM Changeset in webkit [183743] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Add libnotify in gtk install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=144379

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-05-04
Reviewed by Csaba Osztrogonác.

  • gtk/install-dependencies:
3:04 AM Changeset in webkit [183742] by Csaba Osztrogonác
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove move-js-headers.sh
https://bugs.webkit.org/show_bug.cgi?id=144323

Reviewed by Daniel Bates.

move-js-headers.sh was only used by the Wx port, which has been removed from trunk long ago.

  • move-js-headers.sh: Removed.
1:51 AM Changeset in webkit [183741] by Csaba Osztrogonác
  • 2 edits in trunk

[cmake] Disable GNU Gold linker on Cortex A53
https://bugs.webkit.org/show_bug.cgi?id=144382

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsCommon.cmake:
1:42 AM Changeset in webkit [183740] by Csaba Osztrogonác
  • 4 edits in trunk/Source

[ARM] Don't compare unsigned chars to EOF (-1)
https://bugs.webkit.org/show_bug.cgi?id=144439

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/linux/MemoryPressureHandlerLinux.cpp:

(WebKit::nextToken): Don't cast return value of fgetc() to char.

Source/WebKit2:

  • Shared/linux/WebMemorySamplerLinux.cpp:

(WebKit::nextToken): Don't cast return value of fgetc() to char.

1:37 AM Changeset in webkit [183739] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
https://bugs.webkit.org/show_bug.cgi?id=144449

Reviewed by Sergio Villar Senin.

Source/WebCore:

If there're implicit tracks then trackPositions is bigger than
trackSizes, so we need to use the proper index to append the trailing
<ident>s in valueForGridTrackList().

Test: fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

LayoutTests:

  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt: Added.
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html: Added.
1:22 AM Changeset in webkit [183738] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

[cmake] Fix generate-js-builtins related incremental build issue
https://bugs.webkit.org/show_bug.cgi?id=144094

Reviewed by Michael Saboff.

  • CMakeLists.txt: Generated JSCBuiltins.<cpp|h> should depend on Source/JavaScriptCore/builtins directory.

Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.

  • DerivedSources.make:

Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.

  • generate-js-builtins: Accept input files and input directory too.
12:52 AM Changeset in webkit [183737] by Antti Koivisto
  • 11 edits
    4 deletes in trunk/Source/WebKit2

Remove NetworkResourceLoadScheduler
https://bugs.webkit.org/show_bug.cgi?id=144550

Reviewed by Sam Weinig.

It doesn't really do anything.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted.

  • NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed.
  • NetworkProcess/NetworkResourceLoadScheduler.h: Removed.
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::create):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

Moved from NetworkResourceLoadSchedulerMac.mm.

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed.
  • NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:

May 3, 2015:

10:16 PM Changeset in webkit [183736] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
https://bugs.webkit.org/show_bug.cgi?id=144509
rdar://problem/18731910

Reviewed by Daniel Bates.

No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
it work is hard.

  • Shared/BlobDataFileReferenceWithSandboxExtension.cpp:

(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):

6:20 PM Changeset in webkit [183735] by Gyuyoung Kim
  • 42 edits in trunk/Source/WebCore

Purge PassRefPtr in WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=144543

Reviewed by Andreas Kling.

Change PassRefPtr in create() factory functions with Ref. In some functions,
it returns RefPtr when it might have a chance to return nullptr.

No new tests, no behavior changes.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::sendError):

  • html/DOMFormData.h:

(WebCore::DOMFormData::create):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):

  • html/HTMLMediaElement.h:
  • html/MediaError.h:

(WebCore::MediaError::create):

  • html/MediaKeyError.h:

(WebCore::MediaKeyError::create):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasProxy.cpp:

(WebCore::CanvasProxy::create):

  • html/canvas/CanvasProxy.h:
  • html/canvas/WebGLActiveInfo.h:

(WebCore::WebGLActiveInfo::create):

  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObjectOES.h:
  • html/shadow/ImageControlsRootElement.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

  • html/shadow/ImageControlsRootElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::create):
(WebCore::MediaControlPanelEnclosureElement::create):
(WebCore::MediaControlOverlayEnclosureElement::create):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsTrackListElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
(WebCore::MediaControlTimeRemainingDisplayElement::create):
(WebCore::MediaControlCurrentTimeDisplayElement::create):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControlsApple.h:

(WebCore::MediaControlsAppleEventListener::create):

  • html/shadow/MeterShadowElement.h:

(WebCore::MeterInnerElement::create):
(WebCore::MeterBarElement::create):
(WebCore::MeterValueElement::create):

  • html/shadow/ProgressShadowElement.h:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

  • html/track/TextTrackCueList.h:

(WebCore::TextTrackCueList::create):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::create):

  • html/track/VTTCue.h:

(WebCore::VTTCue::create):

  • html/track/VTTRegion.h:
  • html/track/VideoTrack.h:
  • html/track/VideoTrackList.h:
  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::create):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTParser.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerCreateResourceLoader):

4:58 PM Changeset in webkit [183734] by Simon Fraser
  • 5 edits in trunk/Source

Make some static data const
https://bugs.webkit.org/show_bug.cgi?id=144552

Reviewed by Andreas Kling.
Source/JavaScriptCore:

Turn characterSetInfo into const data.

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.h:

Source/WebCore:

Turn baseTable and shiftTable into const data.

  • platform/graphics/FormatConverter.cpp:
3:55 PM Changeset in webkit [183733] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
https://bugs.webkit.org/show_bug.cgi?id=144546

Reviewed by Brian Burg.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView):
Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
of the _backForwardList.some(), since we don't want to dissociate if the content view is
still in the back-forward list.

9:10 AM Changeset in webkit [183732] by Simon Fraser
  • 5 edits
    3 adds in trunk

Assertion failure (!needsLayout()) loading inkedmag.com
https://bugs.webkit.org/show_bug.cgi?id=144528
rdar://problem/20788681

Reviewed by Darin Adler.

Source/WebCore:

When animated GIFs get into catch-up mode, which is common on inkedmag.com,
BitmapImage::advanceAnimation() can synchronously call it's observer's
animationAdvanced(). This could cause RenderImage::repaintOrMarkForLayout()
to repaint or mark itself as needing layout in the middle of painting.
If painting multiple tiles, this could occur when painting the first tile,
and then painting the second tile would assert in RenderView::paint().

It's always wrong to synchronously call the observer when advancing
the animation, since this happens when painting, and you can't repaint
when painting. The long comment and call to startAnimation(DoNotCatchUp)
was required to explain and work around this, but it's simpler to just
advance the animation on a zero-delay timer.

Special handling is required for the case where internalAdvanceAnimation()
is catching up, and reaches the end of a non-repeating image; there, we
have to set a flag and do the notify on a zero-delay timer.

Lots of comment cleanup.

Test: fast/images/set-needs-layout-in-painting.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::startTimer): Utility to create and start the timer.
(WebCore::BitmapImage::repetitionCount):
(WebCore::BitmapImage::startAnimation): Early return in the DoNotCatchUp clause.
If skipping, and internalAdvanceAnimation() returns false (meaning it must have
reached the end), then queue up a notify. Change the normal behavior to just
start the timer.
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation): Notify if the flag is set.

  • platform/graphics/BitmapImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint): Add a SetLayoutNeededForbiddenScope to
detect setNeedsLayouts when painting replaced elements, including images.

LayoutTests:

Test that sleeps for a while to force an image into catchup mode.

  • fast/images/resources/spinner.gif: Added.
  • fast/images/set-needs-layout-in-painting-expected.txt: Added.
  • fast/images/set-needs-layout-in-painting.html: Added.
8:20 AM Changeset in webkit [183731] by Carlos Garcia Campos
  • 14 edits
    2 moves
    5 adds in trunk/Source

[GTK][EFL] Unify platform display handling
https://bugs.webkit.org/show_bug.cgi?id=144517

Reviewed by Martin Robinson.

Source/WebCore:

There are several places were we are handling the X display
connection:

  • GLContext::sharedX11Display() creates a new connection.
  • X11Helper::nativeDisplay() creates a new connection.
  • BackingStoreBackendCairoX11 uses the GTK+ shared connection.
  • NetscapePlugin::x11HostDisplay() uses the GTK+/ecore shared connection
  • The rest of the GTK+ code uses the shared GTK+ connection

And then we also have WaylandDisplay and the code to check if the
current display is wayland or X11.
We could unify all these to share the same connection to reduce
the amount of ifdefs and ensure a single connection. That will
also allow us to use "smart pointers" for the X resources that
need a Display* to be freed.

  • PlatformEfl.cmake: Add new files to compilation.
  • PlatformGTK.cmake: Move some files to WebCore_SOURCES sinc ethey

don't use GTK+ anymore, and add new files to compilation.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::cleanupActiveContextsAtExit): Remove the
custom X11 connection.
(WebCore::GLContext::createContextForWindow): Check if the shared
display is Wayland to create a EGL context in such case.

  • platform/graphics/PlatformDisplay.cpp: Added.

(WebCore::PlatformDisplay::createPlatformDisplay): Creates the
shared display, using the GTK+/ecore shared connection.
(WebCore::PlatformDisplay::sharedDisplay): Return the shared display.

  • platform/graphics/PlatformDisplay.h: Added.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay): Use PlatformDisplay::sharedDisplay()
to get the native display.
(WebCore::GLContextEGL::createPixmapContext): Ditto.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createWindowContext): Ditto.
(WebCore::GLContextGLX::createPbufferContext): Ditto.
(WebCore::GLContextGLX::createPixmapContext): Ditto.
(WebCore::GLContextGLX::createContext): Ditto.
(WebCore::GLContextGLX::~GLContextGLX): Ditto.
(WebCore::GLContextGLX::defaultFrameBufferSize): Ditto.
(WebCore::GLContextGLX::makeContextCurrent): Ditto.
(WebCore::GLContextGLX::swapBuffers): Ditto.
(WebCore::GLContextGLX::cairoDevice): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): Ditto.

  • platform/graphics/surfaces/glx/X11Helper.cpp:

(WebCore::X11Helper::nativeDisplay): Ditto.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp.

(WebCore::PlatformDisplayWayland::globalCallback):
(WebCore::PlatformDisplayWayland::globalRemoveCallback):
(WebCore::PlatformDisplayWayland::create): Renamed instance() as
create() since the single instance is now handled by PlatformDisplay.
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::createSurface):
(WebCore::PlatformDisplayWayland::createSharingGLContext):

  • platform/graphics/wayland/PlatformDisplayWayland.h: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.h.
  • platform/graphics/x11/PlatformDisplayX11.cpp: Added.

(WebCore::PlatformDisplayX11::PlatformDisplayX11):
(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

  • platform/graphics/x11/PlatformDisplayX11.h: Added.
  • platform/gtk/GtkUtilities.cpp:

(WebCore::getDisplaySystemType): Deleted.

  • platform/gtk/GtkUtilities.h:

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
to checkt the display type.
(webkitWebViewBaseCreateWebPage): Ditto.

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::createBackend): Pass the native X11 shared
display to BackingStoreBackendCairoX11.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
shared display.

3:14 AM Changeset in webkit [183730] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

2:54 AM Changeset in webkit [183729] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] API tests crashing on debug builds due to extra unref
https://bugs.webkit.org/show_bug.cgi?id=144508

Reviewed by Mario Sanchez Prada.

The problem is that we were assuming that when a new DOMWindow is
created, the DOM object cache was notified about the previous
DOMWindow being destroyed before objects for the new DOMWindow are
added to the cache. However, that's not always the case and we
only create a DOMWindowObserver for the first DOMWindow. We need
to keep a pointer to the DOMWindow being observed to clear() the
cache and create a new DOMWindowObserver when it changes in the
Frame.

Fixes crashes in several unit tests in debug builds.

  • bindings/gobject/DOMObjectCache.cpp:
12:48 AM Changeset in webkit [183728] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=144540

12:13 AM Changeset in webkit [183727] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Remove timer alignment logging that I added earler today.

  • page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):

May 2, 2015:

7:20 PM Changeset in webkit [183726] by commit-queue@webkit.org
  • 36 edits in trunk/Source/WebCore

Purge PassRefPtr create() factory functions in html
https://bugs.webkit.org/show_bug.cgi?id=144522

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in html, because the factory
can't return null. This patch is a first step to purge in html. Following patch is going to
be uploaded.

No new tests, no behavior changes.

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::create):
(WebCore::UploadButtonElement::createForMultiple):

  • html/MediaController.cpp:

(MediaController::create):

  • html/MediaController.h:
  • html/canvas/WebGLBuffer.cpp:

(WebCore::WebGLBuffer::create):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLContextAttributes.cpp:

(WebCore::WebGLContextAttributes::create):

  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::create):

  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::create):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::create):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.cpp:

(WebCore::WebGLQuery::create):

  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.cpp:

(WebCore::WebGLRenderbuffer::create):

  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLSampler.cpp:

(WebCore::WebGLSampler::create):

  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::create):

  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.cpp:

(WebCore::WebGLShaderPrecisionFormat::create):

  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.cpp:

(WebCore::WebGLSync::create):

  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.cpp:

(WebCore::WebGLTexture::create):

  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::create):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.cpp:

(WebCore::WebGLUniformLocation::create):

  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObject.cpp:

(WebCore::WebGLVertexArrayObject::create):

  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:

(WebCore::WebGLVertexArrayObjectOES::create):

  • html/canvas/WebGLVertexArrayObjectOES.h:
5:53 PM Changeset in webkit [183725] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Style recalc always causes detach from shared StyleRareNonInheritedData.
<https://webkit.org/b/144530>

Reviewed by Darin Adler.

StyleResolver::adjustStyleForMaskImages() was always calling RenderStyle::ensureMaskLayers()
when we were in style recalc. This caused the RenderStyle to COW off from the previously
shared StyleRareNonInheritedData even if nothing actually changes.

This patch adds an early return to adjustStyleForMaskImages() when the previous style had
no mask images. Further refinements could be made, but this covers the most common case where
we don't have any mask images at all.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustStyleForMaskImages):

5:15 PM Changeset in webkit [183724] by fpizlo@apple.com
  • 22 edits
    2 adds in trunk/Source/JavaScriptCore

TypeOf should be fast
https://bugs.webkit.org/show_bug.cgi?id=144396

Reviewed by Geoffrey Garen.

Adds comprehensive support for fast typeof to the optimizing JITs. Calls into the runtime
are only used for very exotic objects - they must have either the MasqueradesAsUndefined or
TypeOfShouldCallGetCallData type flags set. All other cases are handled inline.

This means optimizing IsObjectOrNull, IsFunction, and TypeOf - all node types that used to
rely heavily on C++ calls to fulfill their function.

Because TypeOf is now so fast, we no longer need to do any speculations on this node.

In the FTL, we take this further by querying AI for each branch in the TypeOf decision tree.
This means that if the TypeOf is dominated by any type checks, we will automatically prune
out cases that are redundant.

This patch anticipates the addition of SwitchTypeOf or something like that. So, the TypeOf
code generation is designed to be reusable.

This is a speed-up on most typeof benchmarks. But, it is a slow-down on benchmarks that take
the exotic call trap hook. That hook is now in a deeper slow path than before.

(JSC::DFG::clobberize): TypeOf was pure all along, but we failed to realize this.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull):
(JSC::DFG::SpeculativeJIT::compileIsFunction):
(JSC::DFG::SpeculativeJIT::compileTypeOf):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::blessedBooleanResult):
(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileIsObjectOrNull):
(JSC::FTL::LowerDFGToLLVM::compileIsFunction):
(JSC::FTL::LowerDFGToLLVM::compileTypeOf):
(JSC::FTL::LowerDFGToLLVM::buildTypeOf): Reusable TypeOf building for the FTL.
(JSC::FTL::LowerDFGToLLVM::isExoticForTypeof):

  • ftl/FTLSwitchCase.h:

(JSC::FTL::SwitchCase::SwitchCase):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotEqual):
(JSC::AssemblyHelpers::branchIfEqual):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::boxBooleanPayload):
(JSC::AssemblyHelpers::boxBoolean):
(JSC::AssemblyHelpers::emitTypeOf): Reusable TypeOf building for assembly JITs.

  • jit/JITOperations.h:
  • runtime/SmallStrings.h:

(JSC::SmallStrings::typeString):

  • runtime/TypeofType.cpp: Added.

(WTF::printInternal):

  • runtime/TypeofType.h: Added.
  • tests/stress/type-of-functions-and-objects.js: Modified this test to give more comprehensive feedback.
4:06 PM Changeset in webkit [183723] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r183722.
https://bugs.webkit.org/show_bug.cgi?id=144534

Made all the tests assert (Requested by ap on #webkit).

Reverted changeset:

"Generated static StringImpls should have static flag set."
https://bugs.webkit.org/show_bug.cgi?id=144516
http://trac.webkit.org/changeset/183722

1:55 PM Changeset in webkit [183722] by akling@apple.com
  • 2 edits in trunk/Source/WTF

Generated static StringImpls should have static flag set.
<https://webkit.org/b/144516>

Reviewed by Darin Adler.

Discovered this while tracking down a string ref leak. Turns out that the strings
generated by StaticString.pm were not getting the static flag set on them.

The only practical difference from this AFAICT is that now the garbage collector
will correctly see that these strings have no extra memory cost to worry about.

  • wtf/text/StringImpl.h:
12:55 PM WebKitGTK/2.8.x edited by Michael Catanzaro
Propose r183692 (diff)
12:26 PM Changeset in webkit [183721] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Relocate the selected range details in the Rendering Frames timeline UI
https://bugs.webkit.org/show_bug.cgi?id=144346

This patch removes the details sidebar used by the rendering frames view, and relocates the frame selection
chart the Timelines navigation sidebar.

Patch by Matt Baker <Matt Baker> on 2015-05-02
Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
RenderingFramesDetailsSidebar is no longer used.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._loadNewRecording):
Reordered timelines.

  • UserInterface/Main.html:

Removed references to deleted files.

  • UserInterface/Views/ChartDetailsSectionLegendRow.js: Removed.

No longer used. The legend is now a child element of the chart.

  • UserInterface/Views/ChartDetailsSectionRow.css:

(.details-section > .content > .group > .row.chart > .title):
(.details-section > .content > .group > .row.chart > .chart-content):
(.details-section > .content > .group > .row.chart > .chart-content > .legend):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label > .color-swatch):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .label):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > .value):
(.details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > *):
New chart and legend styles.

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow):
(WebInspector.ChartDetailsSectionRow.prototype.set title):
(WebInspector.ChartDetailsSectionRow.prototype.set innerLabel):
(WebInspector.ChartDetailsSectionRow.prototype.set innerRadius):
(WebInspector.ChartDetailsSectionRow.prototype.get total):
(WebInspector.ChartDetailsSectionRow.set data):
(WebInspector.ChartDetailsSectionRow.prototype.set data):
(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):
(WebInspector.ChartDetailsSectionRow.prototype._refresh):

A few changes have been made to the appearance and behavior of the chart. A chart title can now be set,
and the legend appears to the right of the chart rather than in a separate details group.

The chart now has better support for adding empty data points, ensuring that a meaningful legend is shown even
when no rendering frames are selected in the timeline overview graph. This ensures that the task associated
with each colored frame segment is apparent, without having to make a selection or record a timeline.

  • UserInterface/Views/RenderingFrameDetailsSidebarPanel.js: Removed.

No longer used.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

Reduced maximum timeline height to increase the height of short frames.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.shown):
(WebInspector.RenderingFrameTimelineView.prototype.hidden):
RenderingFramesDetailsSidebar is no longer used.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._updateTimes):
(WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
(WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
(WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
Improved logic for updating the frame selection.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > div.header):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart):
(.sidebar > .panel.navigation.timeline > .timelines-content > .details-section > .content > .group > .row.chart > .chart-content > .chart):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content): Deleted.
New chart styles.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.shown):
(WebInspector.TimelineSidebarPanel._timelineAdded.set this):
(WebInspector.TimelineSidebarPanel.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.get else):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords.get var):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.getSelectedRecords):
(WebInspector.TimelineSidebarPanel.showTimelineViewForTimeline.this._timelineTreeElementMap.get select):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if.get if):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
(WebInspector.TimelineSidebarPanel._refreshFrameSelectionChart.durationForRecordType):
(WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.TimelineSidebarPanel.set contentTreeOutlineLabel): Deleted.
(WebInspector.TimelineSidebarPanel._recordingCreated.set this): Deleted.
(WebInspector.TimelineSidebarPanel.get this): Deleted.
Moved the selected frames chart to the navigation sidebar.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView):
RenderingFramesDetailsSidebar is no longer used.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

Removed references to deleted files.

12:19 PM Changeset in webkit [183720] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=144155

Unreviewed, will roll out soon.

Added some temporary logging to better see if alignment is indeed the culprit.

  • page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):
11:36 AM Changeset in webkit [183719] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=144527.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

10:33 AM Changeset in webkit [183718] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
https://bugs.webkit.org/show_bug.cgi?id=144525.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGPhantomInsertionPhase.cpp:
8:41 AM Changeset in webkit [183717] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Use Ref instead of PassRefPtr in WebCore/svg
https://bugs.webkit.org/show_bug.cgi?id=144479

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2015-05-02
Reviewed by Darin Adler.

Remove remained PassRefPtr in svg.

No new tests, no behavior changes.

  • svg/SVGFontFaceSrcElement.cpp:

(WebCore::SVGFontFaceSrcElement::srcValue):

  • svg/SVGFontFaceSrcElement.h:
  • svg/properties/SVGPropertyInfo.h:
8:32 AM Changeset in webkit [183716] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Small cleanup in BitmapImage
https://bugs.webkit.org/show_bug.cgi?id=144515

Reviewed by Darin Adler.

Use an enum for the internalAdvanceAnimation() argument, with a default.

Wrap the clearing of the timer in a clearTimer() function, called from
stopAnimation(). This fixes the jarring reading of BitmapImage::internalAdvanceAnimation(),
which used to start by calling stopAnimation().

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::clearTimer):
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:
8:28 AM Changeset in webkit [183715] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Static property hashtable should only lookup with non-symbol key
https://bugs.webkit.org/show_bug.cgi?id=144438

Reviewed by Darin Adler.

Static property hashtable compares the Identifier's uid
with the normal C string without interning it.
So this comparison is performed in their contents.
As the result, in this comparison, symbol-ness is not considered.

So if accidentally the hash collision occur with the symbol and the string
and they have the same contents, the hash table entry is looked up incorrectly.

  • runtime/Lookup.h:

(JSC::HashTable::entry):

2:41 AM Changeset in webkit [183714] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=144513

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.closed):

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView):

2:36 AM Changeset in webkit [183713] by timothy@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Resources section doesn't update after changes are made to a local file
https://bugs.webkit.org/show_bug.cgi?id=144512

The content view was being associated with the wrong represented object. This caused the code to use
the old main resource when showing the frame again.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._frameWasAdded.delayedWork):
(WebInspector._frameWasAdded):
With the changes in ResourceSidebarPanel, we need to delay showing the frame.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView.prototype.showRepresentedObject):
Avoid restoring state by calling cancelRestoringState(). Not fully related to this bug,
but it was preventing testing the cases.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
This fixes the bug. Don't associate the content view with the Frame, associate it with
the Resource that we actually show.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.cancelRestoringState): Added.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel): Remove unused _waitingForInitialMainFrame.
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameDidChange):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Clean up how we show the main frame in the sidebar. This was a two step mess before.

May 1, 2015:

11:09 PM Changeset in webkit [183712] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.5

New tag.

11:06 PM Changeset in webkit [183711] by bshafiei@apple.com
  • 2 edits in branches/safari-600.7-branch/Source/WebCore

Merged r183524. rdar://problem/20779683

7:32 PM Changeset in webkit [183710] by Simon Fraser
  • 10 edits
    3 adds in trunk

Avoid compositing updates after style recalcs which have no compositing implications
https://bugs.webkit.org/show_bug.cgi?id=144502

Reviewed by Darin Adler.

Source/WebCore:

After r183461, we have reliable information about whether a style change with zero
diff can be reliably ignored. Use that information to track whether a given
recalcStyle() does anything which should force a compositing update.

This eliminates up to 40% of the post-recalcStyle compositing updates on some pages.

Add Internals API to test.

Test: compositing/updates/no-style-change-updates.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle): Tell the FrameView we're going to recalc style.

  • page/FrameView.cpp:

(WebCore::FrameView::willRecalcStyle): Pass it on to the compositor.
(WebCore::FrameView::updateCompositingLayersAfterStyleChange): Move the code
that was here into RenderLayerCompositor::didRecalcStyleWithNoPendingLayout().

  • page/FrameView.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::willRecalcStyle): Reset the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout): Bail on the update if
no layers changed.
(WebCore::RenderLayerCompositor::updateCompositingLayers): Logging. Increment m_compositingUpdateCount,
which is used for testing.
(WebCore::RenderLayerCompositor::layerStyleChanged): Set the m_layerNeedsCompositingUpdate flag.
(WebCore::RenderLayerCompositor::startTrackingCompositingUpdates): Reset the counter.
(WebCore::RenderLayerCompositor::compositingUpdateCount):

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::Internals::startTrackingCompositingUpdates):
(WebCore::Internals::compositingUpdateCount):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Use internals.compositingUpdateCount() to see if various document mutations
cause a compositing update. Doesn't actually detect any behavior change
from this patch, but seems useful in general.

  • compositing/updates/no-style-change-updates-expected.txt: Added.
  • compositing/updates/no-style-change-updates.html: Added.
7:23 PM Changeset in webkit [183709] by rniwa@webkit.org
  • 10 edits
    3 adds in trunk

Class syntax should allow string and numeric identifiers for method names
https://bugs.webkit.org/show_bug.cgi?id=144254

Reviewed by Darin Adler.

Source/JavaScriptCore:

Added the support for string and numeric identifiers in class syntax.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo): Instead of using ConstructorKind to indicate whether we're
inside a class or not, use the newly added SuperBinding argument instead. ConstructorKind is now None
outside a class constructor as it should be.
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass): No longer expects an identifier at the beginning of every class
element to allow numeric and string method names. For both of those method names, parse it here instead
of parseFunctionInfo since it doesn't support either type. Also pass in SuperBinding::Needed.
(JSC::Parser<LexerType>::parsePropertyMethod): Call parseFunctionInfo with SuperBinding::NotNeeded since
this function is never used to parse a class method.
(JSC::Parser<LexerType>::parseGetterSetter): Pass in superBinding argument to parseFunctionInfo.
(JSC::Parser<LexerType>::parsePrimaryExpression): Call parseFunctionInfo with SuperBinding::NotNeeded.

  • parser/Parser.h:
  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createProperty):

LayoutTests:

Added a test and rebaselined other tests per syntax error message change.

  • js/class-syntax-declaration-expected.txt:
  • js/class-syntax-expression-expected.txt:
  • js/class-syntax-string-and-numeric-names-expected.txt: Added.
  • js/class-syntax-string-and-numeric-names.html: Added.
  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-declaration.js:
  • js/script-tests/class-syntax-expression.js:
  • js/script-tests/class-syntax-string-and-numeric-names.js: Added.
  • js/script-tests/class-syntax-super.js:
6:59 PM Changeset in webkit [183708] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

FTL should use AI more
https://bugs.webkit.org/show_bug.cgi?id=144500

Reviewed by Oliver Hunt.

This makes our type check folding even more comprehensive by ensuring that even if the FTL
decides to emit some checks, it will still do another query to the abstract interpreter to
see if the check is necessary. This helps with cases where we decided early on to speculate
one way, but later proved a more specific type of the value in question, and the constant
folder didn't catch it.

This also makes it more natural to query the abstract interpreter. For example, if you just
want the proven type, you can now say provenType(node) or provenType(edge).

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked):

  • dfg/DFGArrayMode.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileBooleanToNumber):
(JSC::FTL::LowerDFGToLLVM::compileToThis):
(JSC::FTL::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithPow):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compileGetById):
(JSC::FTL::LowerDFGToLLVM::compileCheckArray):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileToStringOrCallStringConstructor):
(JSC::FTL::LowerDFGToLLVM::compileToPrimitive):
(JSC::FTL::LowerDFGToLLVM::compileStringCharAt):
(JSC::FTL::LowerDFGToLLVM::compileStringCharCodeAt):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::compileIsBoolean):
(JSC::FTL::LowerDFGToLLVM::compileIsNumber):
(JSC::FTL::LowerDFGToLLVM::compileIsString):
(JSC::FTL::LowerDFGToLLVM::compileIsObject):
(JSC::FTL::LowerDFGToLLVM::compileInstanceOf):
(JSC::FTL::LowerDFGToLLVM::numberOrNotCellToInt32):
(JSC::FTL::LowerDFGToLLVM::baseIndex):
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::lowInt32):
(JSC::FTL::LowerDFGToLLVM::lowInt52):
(JSC::FTL::LowerDFGToLLVM::lowCell):
(JSC::FTL::LowerDFGToLLVM::lowBoolean):
(JSC::FTL::LowerDFGToLLVM::lowDouble):
(JSC::FTL::LowerDFGToLLVM::isCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNotCellOrMisc):
(JSC::FTL::LowerDFGToLLVM::isNumber):
(JSC::FTL::LowerDFGToLLVM::isNotNumber):
(JSC::FTL::LowerDFGToLLVM::isNotCell):
(JSC::FTL::LowerDFGToLLVM::isCell):
(JSC::FTL::LowerDFGToLLVM::isNotMisc):
(JSC::FTL::LowerDFGToLLVM::isMisc):
(JSC::FTL::LowerDFGToLLVM::isNotBoolean):
(JSC::FTL::LowerDFGToLLVM::isBoolean):
(JSC::FTL::LowerDFGToLLVM::isNotOther):
(JSC::FTL::LowerDFGToLLVM::isOther):
(JSC::FTL::LowerDFGToLLVM::isProvenValue):
(JSC::FTL::LowerDFGToLLVM::isObject):
(JSC::FTL::LowerDFGToLLVM::isNotObject):
(JSC::FTL::LowerDFGToLLVM::isNotString):
(JSC::FTL::LowerDFGToLLVM::isString):
(JSC::FTL::LowerDFGToLLVM::isFunction):
(JSC::FTL::LowerDFGToLLVM::isNotFunction):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
(JSC::FTL::LowerDFGToLLVM::speculateStringObjectForStructureID):
(JSC::FTL::LowerDFGToLLVM::speculateNotStringVar):
(JSC::FTL::LowerDFGToLLVM::abstractValue):
(JSC::FTL::LowerDFGToLLVM::provenType):
(JSC::FTL::LowerDFGToLLVM::provenValue):
(JSC::FTL::LowerDFGToLLVM::abstractStructure):

6:44 PM Changeset in webkit [183707] by Brent Fulgham
  • 1 edit
    9 adds in trunk/LayoutTests

Create a set of initial scroll snap point tests
https://bugs.webkit.org/show_bug.cgi?id=142358

Reviewed by Simon Fraser.

  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html: Added.
6:29 PM Changeset in webkit [183706] by akling@apple.com
  • 3 edits
    2 adds in trunk

Reproducible crash removing name attribute from <img> node
<https://webkit.org/b/144371>
<rdar://problem/17198583>

Reviewed by Darin Adler.

Source/WebCore:

The problem here was with HTMLImageElement::getNameAttribute(), which relies
on Element::hasName() to avoid slow attribute lookups when the attribute
is already known not to be present. Unfortunately hasName() uses an ElementData
flag that wasn't getting updated until after the call to parseAttribute().

This patch fixes the issue by moving the code that updates the hasName() flag
before the parseAttribute() virtual dispatch.

Test: fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

LayoutTests:

  • fast/dom/HTMLImageElement/remove-name-id-attribute-from-image-expected.txt: Added.
  • fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html: Added.
6:11 PM Changeset in webkit [183705] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

Postpone caption style sheet creation
https://bugs.webkit.org/show_bug.cgi?id=144499

Reviewed by Simon Fraser.
Source/WebCore:


Generating and inserting the caption user style sheet is expensive so don't do it until
we see a text track, and only do it for the first video element in a PageGroup.

Test: media/track/track-user-stylesheet.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Only register for caption preferences
changes if we have done so before.
(WebCore::HTMLMediaElement::unregisterWithDocument): Only unregister for caption preferences
changes if we registered for them.
(WebCore::HTMLMediaElement::addTextTrack): Register for caption preference changes.

  • html/HTMLMediaElement.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Only
generate the style sheet when called for the first time.

LayoutTests:

  • media/track/track-user-stylesheet-expected.txt: Added.
  • media/track/track-user-stylesheet.html: Added.
5:55 PM Changeset in webkit [183704] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Scrubber display is broken if the buffered range is empty
https://bugs.webkit.org/show_bug.cgi?id=144511

Reviewed by Eric Carlson.

Make sure that if video.buffered returns an empty list, we
still draw the scrubber background correctly.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.drawTimelineBackground): Ensure that buffered
is always at least as big as the current time.

5:47 PM Changeset in webkit [183703] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media control volume slider should be vertical to avoid flickering issues.
https://bugs.webkit.org/show_bug.cgi?id=144496.
<rdar://problem/20451328>

Reviewed by Darin Adler.

  • Modules/mediacontrols/mediaControlsApple.css:

Resize and reposition the volume box so that it does not have to rotated via a transform.
(audio::-webkit-media-controls-panel):
(audio::-webkit-media-controls-panel .volume-box): Also set overflow: hidden so we can't interact

with the volume slider while the volume box is hidden.

(audio::-webkit-media-controls-panel .volume-box:active):
Rotate and position the volume slider via transforms. Make sure it's not transformed in the fullscreen controls.
(video::-webkit-media-controls-volume-slider):
(video:-webkit-full-screen::-webkit-media-controls-volume-slider):

5:39 PM Changeset in webkit [183702] by Brent Fulgham
  • 16 edits in trunk/Source/WebCore

Expand test infrastructure to support scrolling tests (Part 4): Scroll Snap Support
https://bugs.webkit.org/show_bug.cgi?id=144482

Reviewed by Simon Fraser.

New tests will be landed in a second patch.

The new WheelEventTestTriggers do not work properly with scroll snap points, because some test deferral notifications
need to be triggered for state changes on the scrolling thread. This required the following changes:

  1. A flag indicating that we want to know about WheelEvent state changes needed to be propagated to the scrolling thread, so that tests could be deferred until Scrolling thread rubberband or scroll-snap animations had completed.
  2. The ScrollingNodeID needed to be used for registering and clearing deferrals.
  3. The scrolling thread needed a way to dispatch messages to the main thread indicating that we should (or should not) defer tests due to scrolling actions.

Note that a future patch will extend this support to include the RemoteScrollingTree.

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::deferTestsForReason): Added some logging features.
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason): Ditto.
(WebCore::dumpState): Helper function for logging test deferral state.
(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Added some logging features.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Make sure that the scrolling thread is
told that it needs to send scrolling state back to the main thread. Only do this if we are in testing mode.
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): The scrollingNodeID should be
used as the identifier for this operation, not the page address.
(WebCore::AsyncScrollingCoordinator::deferTestsForReason): Added. receives messages from the scrolling thread
and notifies the testing infrastructure.
(WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason): Ditto.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): When cloning the ScrollingStateScrollingNode,
include the testing mode state.
(WebCore::ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger): Added.

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::expectsWheelEventTestTrigger): Added.

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::deferTestsForReason): Added stub.
(WebCore::ScrollingTree::removeTestDeferralForReason): Ditto.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::deferTestsForReason): Added. Dispatches messages from the scrolling thread to the
main thread.
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason): Ditto.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): Initialize testing state flag.
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): If the 'ExpectsWheelEventTestTrigger' flag is
set, update local state.
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent): If we are testing, and the wheel event should be handled
asynchronously, tell the testing infrastructure we need to wait for the thread state to sync.
(WebCore::ScrollingTreeFrameScrollingNodeMac::deferTestsForReason): Added. Notifies test system we need to defer tests
until we notify them. Also used by the ScrollController during animations.
(WebCore::ScrollingTreeFrameScrollingNodeMac::removeTestDeferralForReason): Ditto.

  • platform/Logging.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::deferTestsForReason): Added. Used by ScrollController during animation. This updates the
testing infrastructure directly, since it is running in the same process and main thread.
(WebCore::ScrollAnimator::removeTestDeferralForReason): Ditto.

  • platform/ScrollAnimator.h:
  • platform/cocoa/ScrollController.h:

(WebCore::ScrollControllerClient::deferTestsForReason): Change client API.
(WebCore::ScrollControllerClient::removeTestDeferralForReason): Ditto.
(WebCore::ScrollControllerClient::testTrigger): Deleted.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::startSnapRubberbandTimer): Use new client API.
(WebCore::ScrollController::stopSnapRubberbandTimer): Ditto.
(WebCore::ScrollController::startScrollSnapTimer): Ditto.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto.

5:23 PM Changeset in webkit [183701] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

check-webkit-style fails due to system pylint
https://bugs.webkit.org/show_bug.cgi?id=144360

Patch by Mario Sanchez Prada <mario@endlessm.com> on 2015-05-01
Reviewed by Darin Adler.

Make sure that the directory containing third party autoinstalled modules
is at the beginning of the search path, to avoid conflicts with other
versions of the same modules installed in the system (e.g. pylint).

  • Scripts/webkitpy/thirdparty/init.py: Prepend the autoinstalled

modules directory to sys.path, instead of appending it.

4:59 PM Changeset in webkit [183700] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Inline some small methods instead of them being EXPORT'd and out of line
https://bugs.webkit.org/show_bug.cgi?id=144498

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-01
Reviewed by Darin Adler.

  • page/Page.cpp:

(WebCore::Page::testTrigger): Deleted.
(WebCore::Page::clearTrigger): Deleted.
(WebCore::Page::expectsWheelEventTriggers): Deleted.

  • page/Page.h:

(WebCore::Page::testTrigger):
(WebCore::Page::clearTrigger):
(WebCore::Page::expectsWheelEventTriggers):

4:52 PM Changeset in webkit [183699] by mario@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json: Updated.
4:47 PM Changeset in webkit [183698] by mitz@apple.com
  • 12 edits
    1 add in trunk

Source/WebCore:
WebCore part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

Test: TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm

Normally, loading substitute data (such as an error page) creates a new back-forward list
item. FrameLoader has a mechanism that detects when a substitute data load occurs during
handling of a provisional load error and prevents the creation of a new back-forwards list
item in that case if the unreachable URL is the same as the failing provisional URL. This
mechanism was broken in WebKit2, where handling the provisional load error is asynchronous.

The fix is to capture some state (namely, the failing provisional URL) when dispatching the
load error and allow it to be restored when loading the substitute data.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::FrameLoader): Removed initialization of
m_delegateIsHandlingProvisionalLoadError.
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL): Instead of checking
m_delegateIsHandlingProvisionalLoadError and if true using the provisional document loader’s
URL, check m_provisionalLoadErrorBeingHandledURL.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Instead of checking and setting
m_delegateIsHandlingProvisionalLoadError, use m_provisionalLoadErrorBeingHandledURL.

  • loader/FrameLoader.h:

(WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL): Added this getter. The client
can call this from its override of dispatchDidFailProvisionalLoad and store the result.
(WebCore::FrameLoader::setProvisionalLoadErrorBeingHandledURL): Added this setter. The
client can call this prior to loading substitute data if it’s done as part of handling a
previously-dispatched didFailProvisionalLoad.

Source/WebKit2:
WebKit2 part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
https://bugs.webkit.org/show_bug.cgi?id=144501

Reviewed by Darin Adler.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during
didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of
failure.
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep
it in new member variable m_failingProvisionalLoadURL for the duration of the client’s
handling of this message.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to

DidFailProvisionalLoadForFrame.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error
to the UI process.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to
reflect the provisional load error being handled.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to

LoadAlternateHTMLString.

4:38 PM Changeset in webkit [183697] by Martin Robinson
  • 37 edits in trunk

USE(...) macro should expect unprefixed variables
https://bugs.webkit.org/show_bug.cgi?id=144454

Reviewed by Daniel Bates.

.:

  • Source/cmake/OptionsAppleWin.cmake: Replace all occurrences WTF_USE with USE.
  • Source/cmake/OptionsEfl.cmake: Ditto.
  • Source/cmake/OptionsGTK.cmake: Ditto.
  • Source/cmake/OptionsMac.cmake: Ditto.
  • Source/cmake/OptionsWinCairo.cmake: Ditto.
  • Source/cmake/WebKitFeatures.cmake: No longer expose WTF_USE when encountering

USE variables.

Source/JavaScriptCore:

  • CMakeLists.txt: Replace all occurrences WTF_USE with USE.

Source/WebCore:

  • DerivedSources.make: Replace all occurrences WTF_USE with USE.
  • PlatformEfl.cmake: Ditto.
  • PlatformGTK.cmake: Ditto.
  • bindings/objc/PublicDOMInterfaces.h: Ditto.
  • config.h: Ditto.
  • crypto/mac/SerializedCryptoKeyWrapMac.mm: Ditto.
  • page/AlternativeTextClient.h: Ditto.
  • platform/efl/FileSystemEfl.cpp: Ditto.

(WebCore::fileSystemRepresentation): Ditto.

  • platform/graphics/cg/ImageBufferDataCG.h: Ditto.
  • platform/graphics/cg/PDFDocumentImage.h: Ditto.
  • platform/ios/wak/WAKAppKitStubs.h: Ditto.
  • rendering/RenderLayerCompositor.cpp: Ditto.

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp: Replace all occurrences WTF_USE with USE.

Source/WebKit/mac:

  • Misc/WebDownload.h: Replace all occurrences WTF_USE with USE.

Source/WebKit2:

  • Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE.
  • WebKit2.xcodeproj/project.pbxproj: Ditto.

Source/WTF:

  • wtf/Assertions.cpp: Replace all occurrences WTF_USE with USE.
  • wtf/Platform.h: Replace all occurrences WTF_USE with USE. Modify the USE

macro to look for unprefixed variables.

  • wtf/WTFThreadData.h: Replace all occurrences WTF_USE with USE.

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Replace all occurrences WTF_USE with USE.
  • DumpRenderTree/config.h: Ditto.
  • TestWebKitAPI/config.h: Ditto.
4:25 PM Changeset in webkit [183696] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

[OS X] Text dilation parameters are not restored after being set
https://bugs.webkit.org/show_bug.cgi?id=144507
<rdar://problem/19446938>

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-05-01
Reviewed by Simon Fraser and Ned Holbrook.

Source/WebCore:

Create a RAII class who is in charge of saving, applying, and restoring dilation parameters. Use this class
around our text drawing routines.

Note that this migrates our use of CTFontSetRenderingParameters() to CTFontSetRenderingStyle().

Test: fast/text/dilation-save-restore.html

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::RenderingStyleSaver::RenderingStyleSaver):
(WebCore::RenderingStyleSaver::~RenderingStyleSaver):
(WebCore::showGlyphsWithAdvances):

  • platform/spi/cg/CoreGraphicsSPI.h:
  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

See below.

  • fast/text/dilation-save-restore-expected.html: Added. Never sets dilation parameters, draws two strings.
  • fast/text/dilation-save-restore.html: Added. Draws one string without dilation, sets the dilation, then draws a

second string. If saving and restoring doesn't work correctly, these two lines will appear different.

3:53 PM Changeset in webkit [183695] by commit-queue@webkit.org
  • 2 edits in trunk/PerformanceTests

Fix typo bug in Speedometer/resources/main.js
https://bugs.webkit.org/show_bug.cgi?id=144504

Patch by Dewei Zhu <Dewei Zhu> on 2015-05-01
Reviewed by Ryosuke Niwa.

  • Speedometer/resources/main.js: Fix typo.

(window.benchmarkClient.totalTimeInDisplayUnit):

3:44 PM Changeset in webkit [183694] by commit-queue@webkit.org
  • 5 edits in trunk

String#startsWith/endsWith/includes don't handle Infinity position/endPosition args correctly
https://bugs.webkit.org/show_bug.cgi?id=144314

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-01
Reviewed by Darin Adler.

Source/JavaScriptCore:

Fixing handling of Infinity position args, per
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.includes
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith

  • runtime/StringPrototype.cpp:

(JSC::clampInt32):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):

LayoutTests:

  • js/script-tests/string-includes.js:
  • js/string-includes-expected.txt:
3:38 PM Changeset in webkit [183693] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r183687.
https://bugs.webkit.org/show_bug.cgi?id=144505

Appears to have caused assertions (Requested by ap on
#webkit).

Reverted changeset:

"Media control volume slider is opaque."
https://bugs.webkit.org/show_bug.cgi?id=144470
http://trac.webkit.org/changeset/183687

3:35 PM Changeset in webkit [183692] by basile_clement@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Math.abs() returns negative
https://bugs.webkit.org/show_bug.cgi?id=137827

Reviewed by Michael Saboff.

Math.abs() on doubles was mistakenly assumed by the DFG AI to be the
identity function.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • tests/stress/math-abs-positive.js: Added, was previously failing.

(foo):

3:33 PM Changeset in webkit [183691] by basile_clement@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Function allocation sinking shouldn't be performed on singleton functions
https://bugs.webkit.org/show_bug.cgi?id=144166

Reviewed by Geoffrey Garen.

Function allocations usually are free of any other side effects, but
this is not the case for allocations performed while the underlying
FunctionExecutable is still a singleton (as this allogation will fire
watchpoints invalidating code that depends on it being a singleton).
As the object allocation sinking phase assumes object allocation is
free of side-effects, sinking these allocations is not correct.

This also means that when materializing a function allocation on OSR
exit, that function's executable will never be a singleton, and we don't have
to worry about its watchpoint, allowing us to use
JSFunction::createWithInvalidatedRellocationWatchpoint instead of
JSFunction::create.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

2:18 PM Changeset in webkit [183690] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Stop using deprecated AVKit SPI for enter and exit fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=144493

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-05-01
Reviewed by Jer Noble.

Replace

-enterFullScreenWithCompletionHandler:
-exitFullScreenWithCompletionHandler:

with

-enterFullScreenAnimated:completionHandler:
-exitFullScreenAnimated:completionHandler:

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):

  • platform/spi/cocoa/AVKitSPI.h:
2:07 PM Changeset in webkit [183689] by basile_clement@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a commiter in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
1:54 PM Changeset in webkit [183688] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed)
https://bugs.webkit.org/show_bug.cgi?id=144495

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-05-01
Reviewed by Csaba Osztrogonác.

  • wtf/FeatureDefines.h:

This covers all ports that haven't defined the flag otherwise.

1:11 PM Changeset in webkit [183687] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Media control volume slider is opaque.
https://bugs.webkit.org/show_bug.cgi?id=144470.
<rdar://problem/20770350>

Rubberstamped by Simon Fraser.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel):
Don't create a stacking context just for the controls.
Doing so causes the mix-blend-mode on the volume box to fail.

12:50 PM Changeset in webkit [183686] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unreviewed gardening for GTK+.

  • platform/gtk/TestExpectations: Remove some inaccurate missing results

and unskip a passing test.

12:42 PM Changeset in webkit [183685] by commit-queue@webkit.org
  • 4 edits in trunk

Update speedometer patch to provide better UI, fix merge result bug and add "Score" metric to speedometer benchmark.
https://bugs.webkit.org/show_bug.cgi?id=144487

Patch by Dewei Zhu <Dewei Zhu> on 2015-05-01
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.merge): Fix bug.

  • Scripts/webkitpy/benchmark_runner/data/patches/Speedometer.patch: Update appearance and add "Score" metric.
12:39 PM Changeset in webkit [183684] by jdiggs@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK] accessibility/secure-textfield-title-ui.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98375

Reviewed by Chris Fleizach.

Modify the test to check the childrenCount of the titleUIElement in order
to determine where the element text is exposed. On the Mac, it's exposed
in StaticText children; in ATK, in the element itself. The test was failing
because it assumed the text was in the first child of the element.

  • accessibility/secure-textfield-title-ui.html: Modified.
  • platform/gtk/TestExpectations: Unskipped the failing test.
12:37 PM Changeset in webkit [183683] by jdiggs@igalia.com
  • 12 edits in trunk/Source/WebCore

[GTK] REGRESSION(183368): It made editing tests assert
https://bugs.webkit.org/show_bug.cgi?id=144447

Reviewed by Chris Fleizach.

Don't notify platforms of editing actions of type EditActionUnspecified.
If we don't know what the action is, platform accessibility APIs certainly
won't.

Add AXTextEditTypeAttributesChange and AXTextAttributesChanged as catch-alls
for formatting changes. ATK lacks finely-grained signals through which to
specify which text attributes have changed. If other platforms have such
signals, new types can always be added.

Don't post an accessible replacement notification for AXTextEditTypeCut.
The notification is handled by DeleteSelectionCommand. It is possible for
white space to be inserted in preparation for a cut which was triggering
a not-reached assert, but insertion of whitespace in preparation for a
cut does not seem notification-worthy.

Treat AXTextEditTypeDictation the same as other insertion types (insert,
paste, typing) with respect to replacement notifications.

No new tests. The hundreds of editing tests that had been crashing seem sufficient.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::textChangeForEditType):

  • accessibility/AXObjectCache.h:
  • accessibility/AXTextStateChangeIntent.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification):

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doApply):
(WebCore::AppendNodeCommand::doUnapply):

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::applyEditType):
(WebCore::EditCommand::unapplyEditType):

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply):
(WebCore::InsertIntoTextNodeCommand::doUnapply):

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doApply):
(WebCore::InsertNodeBeforeCommand::doUnapply):

  • editing/ReplaceInsertIntoTextNodeCommand.cpp:

(WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):

11:19 AM Changeset in webkit [183682] by beidson@apple.com
  • 18 edits
    3 adds in trunk

Add API to disable meta refreshes.
<rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: loader/meta-refresh-disabled.html

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Bail early if Settings have meta refreshes disabled.

  • page/Settings.in:

Source/WebKit/mac:

Add a preference to enable/disable meta refreshes, enabled by default.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setMetaRefreshEnabled:]):
(-[WebPreferences metaRefreshEnabled]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add a preference to enable/disable meta refreshes, enabled by default.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMetaRefreshEnabled):
(WKPreferencesGetMetaRefreshEnabled):
(WKPreferencesGetIgnoreViewportScalingConstraints): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues): Reset the meta refresh pref between tests.

LayoutTests:

  • loader/meta-refresh-disabled-expected.txt: Added.
  • loader/meta-refresh-disabled.html: Added.
  • loader/resources/notify-done.html: Added.
  • platform/win/TestExpectations:
10:55 AM Changeset in webkit [183681] by Martin Robinson
  • 5 edits
    62 adds in trunk/LayoutTests

Unreviewed gardening for WebKitGTK+

Unskip some passing tests. Add new baselines. Properly organize some
failures in the TestExpectations file.

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/execCommand/print-expected.png: Added.
  • platform/gtk/editing/execCommand/print-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-progress-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-select-on-click-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-subtitle-expected.txt: Added.
  • platform/gtk/fast/attachment/attachment-title-expected.txt: Added.
  • platform/gtk/fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position-expected.txt: Added.
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.png: Added.
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt: Added.
  • platform/gtk/fast/multicol/scrolling-column-rules-expected.png: Added.
  • platform/gtk/fast/multicol/scrolling-column-rules-expected.txt: Added.
  • platform/gtk/printing/allowed-page-breaks-expected.txt: Added.
  • platform/gtk/printing/compositing-layer-printing-expected.png: Added.
  • platform/gtk/printing/compositing-layer-printing-expected.txt:
  • platform/gtk/printing/css2.1/page-break-after-000-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-001-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-002-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-003-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-after-004-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-000-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-001-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-before-002-expected.txt: Added.
  • platform/gtk/printing/css2.1/page-break-inside-000-expected.txt: Added.
  • platform/gtk/printing/iframe-print-expected.png: Added.
  • platform/gtk/printing/iframe-print-expected.txt: Added.
  • platform/gtk/printing/media-queries-print-expected.png: Added.
  • platform/gtk/printing/media-queries-print-expected.txt:
  • platform/gtk/printing/no-content-empty-pages-expected.txt: Added.
  • platform/gtk/printing/numberOfPages-expected.txt: Added.
  • platform/gtk/printing/page-break-after-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-always-expected.txt: Added.
  • platform/gtk/printing/page-break-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-before-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-display-none-expected.txt: Added.
  • platform/gtk/printing/page-break-inside-avoid-expected.txt: Added.
  • platform/gtk/printing/page-break-margin-collapsed-expected.txt: Added.
  • platform/gtk/printing/page-break-orphans-and-widows-expected.txt: Added.
  • platform/gtk/printing/page-break-orphans-expected.txt: Added.
  • platform/gtk/printing/page-break-widows-expected.txt: Added.
  • platform/gtk/printing/page-count-layout-overflow-expected.txt: Added.
  • platform/gtk/printing/page-count-percentage-height-expected.txt: Added.
  • platform/gtk/printing/page-count-relayout-shrink-expected.txt: Added.
  • platform/gtk/printing/page-count-with-one-word-expected.txt: Added.
  • platform/gtk/printing/page-format-data-display-none-expected.txt: Added.
  • platform/gtk/printing/page-format-data-expected.txt: Added.
  • platform/gtk/printing/page-rule-css-text-expected.txt: Added.
  • platform/gtk/printing/page-rule-in-media-query-expected.png: Added.
  • platform/gtk/printing/page-rule-in-media-query-expected.txt: Added.
  • platform/gtk/printing/pageNumerForElementById-expected.txt: Added.
  • platform/gtk/printing/print-close-crash-expected.txt: Added.
  • platform/gtk/printing/pseudo-class-outside-page-expected.txt: Added.
  • platform/gtk/printing/return-from-printing-mode-expected.png: Added.
  • platform/gtk/printing/return-from-printing-mode-expected.txt:
  • platform/gtk/printing/setPrinting-expected.png: Added.
  • platform/gtk/printing/setPrinting-expected.txt: Added.
  • platform/gtk/printing/simultaneous-position-float-change-expected.png: Added.
  • platform/gtk/printing/simultaneous-position-float-change-expected.txt: Added.
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt: Added.
  • platform/gtk/printing/stretch-to-view-height-expected.txt: Added.
  • platform/gtk/printing/width-overflow-expected.png: Added.
  • platform/gtk/printing/width-overflow-expected.txt: Added.
  • platform/gtk/printing/zoomed-document-expected.txt: Added.
10:50 AM Changeset in webkit [183680] by Martin Robinson
  • 4 edits
    2 adds in trunk

[Freetype] Properly support synthetic oblique in vertical text
https://bugs.webkit.org/show_bug.cgi?id=144492

Reviewed by Sergio Villar Senin.

Source/WebCore:

No new tests. Covered by existing tests.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::initializeWithFontFace): Skew vertical when using synthetic
oblique for vertical text.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip passing tests.
  • platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.png: Added.
  • platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt: Added.
10:14 AM Changeset in webkit [183679] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

10:05 AM Changeset in webkit [183678] by jdiggs@igalia.com
  • 2 edits in trunk/Source/WebCore

AX: [ATK] REGRESSION: accessibility/canvas-fallback-content.html now crashes
https://bugs.webkit.org/show_bug.cgi?id=144481

Reviewed by Chris Fleizach.

Canvas fallback content is allowed to be focusable if the canvas is displayed
and visible. Update the style when creating an accessible object for a node in
a canvas subtree and before Element::isFocusable() gets called.

No new tests. The existing, crashing test no longer crashes.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreate):

10:03 AM Changeset in webkit [183677] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

[Content Extensions] Add CombinedURLFilters debugging code.
https://bugs.webkit.org/show_bug.cgi?id=144491

Reviewed by Daniel Bates.

No change in behavior.

  • contentextensions/CombinedURLFilters.cpp:

(WebCore::ContentExtensions::recursiveMemoryUsed):
(WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):
(WebCore::ContentExtensions::prefixTreeVertexToString):
(WebCore::ContentExtensions::recursivePrint):
(WebCore::ContentExtensions::CombinedURLFilters::print):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):

  • contentextensions/CombinedURLFilters.h:
  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):

  • contentextensions/NFA.h:
  • contentextensions/Term.h:

(WebCore::ContentExtensions::quantifierToString):
(WebCore::ContentExtensions::Term::toString):

9:57 AM Changeset in webkit [183676] by eric.carlson@apple.com
  • 10 edits in trunk

Fix text track language selection logic
https://bugs.webkit.org/show_bug.cgi?id=144467

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, media/track/track-language-preference.html was updated.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup): Correct a minor style typo.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Update logging.

  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::textTrackSelectionScore): Minor cleanup.
(WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Give exact matches a
higher score.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Update for
indexOfBestMatchingLanguageInList change.

  • platform/Language.cpp:

(WebCore::indexOfBestMatchingLanguageInList): Add parameter for exact match. Convert the
passed language to lower case as we do with the preferred languages.

  • platform/Language.h:

LayoutTests:

  • media/track/track-language-preference-expected.txt:
  • media/track/track-language-preference.html: Updated, add new tests.
  • platform/mac/TestExpectations:
9:23 AM Changeset in webkit [183675] by Brent Fulgham
  • 2 edits in trunk/Tools

Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Unreviewed correction to r183651.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Make sure the state of the '--show-webview'
flag is included in the options dictionary passed to the PlatformWebView.

9:04 AM Changeset in webkit [183674] by Martin Robinson
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed gardening. Rebaseline some tests for WebKitGTK+.

  • platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt: Rebaseline.
  • platform/gtk/inspector-protocol/debugger/regress-133182-expected.txt: Removed. The

platform-independent baseline should be good enough.

9:00 AM Changeset in webkit [183673] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[Freetype] Add support for the font-synthesis property
https://bugs.webkit.org/show_bug.cgi?id=144472

Reviewed by Sergio Villar Senin.

No new tests. This causes fast/css3-text/font-synthesis.html to pass
for WebKitGTK+.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::FontPlatformData): Only use synthetic bold when the font description allows it.
(WebCore::FontPlatformData::initializeWithFontFace): Ditto for synthetic oblique.

7:58 AM Changeset in webkit [183672] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[GTK] New CORS tests from r183280 fail on WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=144469

Reviewed by Sergio Villar Senin.

No new tests. This causes failing tests to pass.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::doRedirect): Clear the origin header on cross-origin redirects.

7:24 AM Changeset in webkit [183671] by timothy@apple.com
  • 4 edits
    5 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove FrameContentView.js
https://bugs.webkit.org/show_bug.cgi?id=144415

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/DOMTree.svg: Removed.
  • UserInterface/Images/SourceCode.svg: Removed.
  • UserInterface/Main.html: Removed FrameContentView.js.
  • UserInterface/Views/FrameContentView.js: Removed.
  • UserInterface/Views/PathComponentIcons.css:

(.source-code-icon .icon): Deleted.
(.dom-tree-icon .icon): Deleted.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
Simplify the code here. We don't need these checks now with tabs and the Storage tab.

4:40 AM Changeset in webkit [183670] by Antti Koivisto
  • 15 edits in trunk

Remove network process load serialization code
https://bugs.webkit.org/show_bug.cgi?id=144448

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary
with network process. We don't reorder loads anyway so test results are consistent.
There or no other clients for this code.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics):

  • NetworkProcess/NetworkResourceLoadScheduler.cpp:

(WebKit::NetworkResourceLoadScheduler::scheduleLoader):
(WebKit::NetworkResourceLoadScheduler::removeLoader):
(WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted.

  • NetworkProcess/NetworkResourceLoadScheduler.h:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetTabKeyCyclesThroughElements):
(WKBundleSetSerialLoadingEnabled): Deleted.
(WKBundleDispatchPendingLoadRequests): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted.
(WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted.

Remove also this as it does nothing.

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebKit::WebResourceLoadScheduler::suspendPendingRequests):
(WebKit::WebResourceLoadScheduler::resumePendingRequests):

Remove implementation, it does nothing.

(WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):

  • WebProcess/Network/WebResourceLoadScheduler.h:

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setSerializeHTTPLoads):
(WTR::TestRunner::dispatchPendingLoadRequests):

2:04 AM Changeset in webkit [183669] by calvaris@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

  • gtk/install-dependencies: Added hyphen as Fedora and Arch

dependencies.

Apr 30, 2015:

10:57 PM Changeset in webkit [183668] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Console message repeat count overlapped by icon
https://bugs.webkit.org/show_bug.cgi?id=144344

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message .repeat-count):

10:01 PM Changeset in webkit [183667] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Compile fix when using content extensions debugging code.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::printTransitions):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/DFANode.h:
  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::memoryUsed):
(WebCore::ContentExtensions::NFA::debugPrintDot):

9:24 PM Changeset in webkit [183666] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the build for <rdar://problem/20758514>

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::destroyMix): Don’t pass nil to
-[AVMutableAudioMix setInputParameters:].

8:42 PM Changeset in webkit [183665] by Joseph Pecoraro
  • 8 edits in trunk/LayoutTests

Unreviewed gardening. Update results of inspector tests.

  • inspector-protocol/debugger/breakpoint-eval-with-exception-expected.txt:
  • inspector-protocol/debugger/regress-133182-expected.txt:
  • inspector-protocol/debugger/regress-133182.html:
  • inspector-protocol/debugger/setBreakpoint-actions-expected.txt:
  • inspector-protocol/debugger/terminate-dedicated-worker-while-paused-expected.txt:
  • inspector-protocol/page/deny-X-FrameOption-expected.txt:
  • inspector/debugger/search-scripts-expected.txt:
8:42 PM Changeset in webkit [183664] by Joseph Pecoraro
  • 6 edits
    1 delete in trunk/LayoutTests

Unreviewed gardening. Remove skipped and broken inspector test.

This is the last test relying on the old model interface.

(InspectorTest.initializeInspectorModels.console.error.window.onerror): Deleted.
(InspectorTest.initializeInspectorModels.console.assert): Deleted.
(InspectorTest.initializeInspectorModels): Deleted.

  • inspector-protocol/indexeddb/basics-expected.txt: Removed.
  • inspector-protocol/indexeddb/basics.html: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
7:40 PM Changeset in webkit [183663] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up: Remove unnecessary runtime computation of string length
https://bugs.webkit.org/show_bug.cgi?id=144483

Reviewed by Joseph Pecoraro.

Following <http://trac.webkit.org/changeset/183649>, WebCore::fullyQualifiedInfoTableName()
computes strlen() of the first string literal as part of concatenating two string literals.
It is sufficient to use sizeof() - 1 instead of strlen() to compute the length of the first
string literal because the size of the string literal is known at compile time.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName):

6:56 PM Changeset in webkit [183662] by dino@apple.com
  • 17 edits
    1 copy
    1 add in trunk

Expose -apple-system as a font family
https://bugs.webkit.org/show_bug.cgi?id=144484
<rdar://problem/20767330>

Reviewed by Tim Horton.

Source/WebCore:

Accept "-apple-system" for the font-family property, and
rename "-apple-system-font-monospaced-numbers" to
"-apple-system-monospaced-numbers".

Also change the media controls to use the new name.

Covered by existing tests and this new one:

fast/text/system-font-legacy-name.html

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-time-remaining-display):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls):
(audio::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-status-display):

  • platform/graphics/ios/FontCacheIOS.mm: Add support for the new name.

(WebCore::createCTFontWithFamilyNameAndWeight):

  • platform/graphics/mac/FontCacheMac.mm: Ditto.

(WebCore::fontWithFamily):

LayoutTests:

Change a bunch of tests to use "-apple-system" instead
of "-apple-system-font" for font-family.

Add a test to make sure the old name still works.

  • fast/text/system-font-legacy-name.html
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html:
  • platform/ios-simulator/ios/fast/text/apple-logo-expected.txt:
  • platform/ios-simulator/ios/fast/text/apple-logo.html:
  • platform/ios-simulator/ios/fast/text/opticalFont-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFont.html:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight.html:
  • platform/ios-simulator/ios/fast/text/underline-scaling-expected.txt:
  • platform/ios-simulator/ios/fast/text/underline-scaling.html:
  • platform/mac/fast/text/systemFont-expected.txt:
  • platform/mac/fast/text/systemFont.html:
6:38 PM Changeset in webkit [183661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Decrease minimum Vector size.
https://bugs.webkit.org/show_bug.cgi?id=144453

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-30
Reviewed by Andreas Kling.

  • wtf/Vector.h:

Make the default min size 4 to save memory on small Vectors.

6:14 PM Changeset in webkit [183660] by jfernandez@igalia.com
  • 5 edits
    2 adds in trunk

[CSS Grid Layout] overflow-position keyword for align and justify properties.
https://bugs.webkit.org/show_bug.cgi?id=144235

Reviewed by Sergio Villar Senin.

Source/WebCore:

When the alignment subject is larger than the alignment container,
it will overflow. Some alignment modes, if honored in this
situation, may cause data loss; an overflow alignment mode can be
explicitly specified to avoid this.

This patch implements overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

Test: fast/css-grid-layout/grid-align-justify-overflow.html

  • rendering/RenderGrid.cpp:

(WebCore::computeOverflowAlignmentOffset):
(WebCore::RenderGrid::rowPositionForChild):
(WebCore::RenderGrid::columnPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::resolveAlignmentData):
(WebCore::resolveJustificationData):
(WebCore::RenderStyle::resolveAlignment):
(WebCore::RenderStyle::resolveAlignmentOverflow):
(WebCore::RenderStyle::resolveJustification):
(WebCore::RenderStyle::resolveJustificationOverflow):

  • rendering/style/RenderStyle.h:

LayoutTests:

Implementation of overflow-keyword handling for Grid Layout on
align-self and justify-self properties.

  • fast/css-grid-layout/grid-align-justify-overflow-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-overflow.html: Added.
6:10 PM Changeset in webkit [183659] by Jon Davis
  • 18 edits
    3 adds in trunk

Web Inspector: console should show an icon for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=18530

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageLevelValue):

  • inspector/protocol/Console.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsolePrototype.cpp:

(JSC::ConsolePrototype::finishCreation):
(JSC::consoleProtoFuncInfo):

  • runtime/ConsoleTypes.h:

Source/WebInspectorUI:

Added icons for console.log, console.info and console.debug messages.

Separated console.info from console.log.

  • UserInterface/Images/Debug.svg: Added.
  • UserInterface/Images/Info.svg: Added.
  • UserInterface/Images/Log.svg: Added.

New icon files.

  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Views/ConsoleMessageView.css:

(.console-log-level::before):
(.console-info-level::before):
(.console-debug-level::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level).console-message):
(:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level)::before):
(:matches(.console-warning-level, .console-error-level, .console-log-level).console-message): Deleted.
(:matches(.console-warning-level, .console-error-level, .console-log-level)::before): Deleted.
Include console.info messages in layout adjustments.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageLevel):

  • WebView/WebUIDelegatePrivate.h:

LayoutTests:

  • inspector/console/console-api-expected.txt:
6:04 PM Changeset in webkit [183658] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove long-deprecated unused WKView minimumLayoutWidth properties
https://bugs.webkit.org/show_bug.cgi?id=144480

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView minimumLayoutWidth]): Deleted.
(-[WKView setMinimumLayoutWidth:]): Deleted.
(-[WKView minimumWidthForAutoLayout]): Deleted.
(-[WKView setMinimumWidthForAutoLayout:]): Deleted.
These were replaced with minimumSizeForAutoLayout long ago.

5:34 PM Changeset in webkit [183657] by jhoneycutt@apple.com
  • 9 edits in trunk/Source/WebCore

Rebaseline bindings tests results after r183648.

Unreviewed.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):

5:06 PM Changeset in webkit [183656] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Move all of the branchIs<type> helpers from SpeculativeJIT into AssemblyHelpers
https://bugs.webkit.org/show_bug.cgi?id=144462

Reviewed by Geoffrey Garen and Mark Lam.

At some point we started adding representation-agnostic helpers for doing common type tests.
We added some in SpeculativeJIT, and then some in AssemblyHelpers. Prior to this change,
they had overlapping powers, though SpeculativeJIT was a bit better.

This removes SpeculativeJIT's helpers and strengthens AssemblyHelpers' helpers. This is
better because now all of these helpers can be used in all of the assembly-based JITs, not
just the DFG. It also settles on what I find to be a slightly better naming convention.
For example where we previously would have said branchIsString, now we say
branchIfString. Similarly, branchNotString becomes branchIfNotString.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality):
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::speculateObject):
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther):
(JSC::DFG::SpeculativeJIT::speculateString):
(JSC::DFG::SpeculativeJIT::speculateNotStringVar):
(JSC::DFG::SpeculativeJIT::speculateNotCell):
(JSC::DFG::SpeculativeJIT::speculateOther):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):
(JSC::DFG::SpeculativeJIT::emitSwitchString):
(JSC::DFG::SpeculativeJIT::branchIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotObject): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsString): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotString): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::writeBarrier):
(JSC::DFG::SpeculativeJIT::branchIsCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::branchIsOther): Deleted.
(JSC::DFG::SpeculativeJIT::branchNotOther): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfCell):
(JSC::AssemblyHelpers::branchIfOther):
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfObject):
(JSC::AssemblyHelpers::branchIfNotObject):
(JSC::AssemblyHelpers::branchIfType):
(JSC::AssemblyHelpers::branchIfNotType):
(JSC::AssemblyHelpers::branchIfString):
(JSC::AssemblyHelpers::branchIfNotString):
(JSC::AssemblyHelpers::branchIfSymbol):
(JSC::AssemblyHelpers::branchIfNotSymbol):
(JSC::AssemblyHelpers::branchIfFunction):
(JSC::AssemblyHelpers::branchIfNotFunction):
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIsEmpty): Deleted.
(JSC::AssemblyHelpers::branchIfCellNotObject): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

4:44 PM Changeset in webkit [183655] by Simon Fraser
  • 11 edits in trunk/Source

Fixed elements end up in the middle of the view with pageScale < 1
https://bugs.webkit.org/show_bug.cgi?id=144428
rdar://problem/20404982

Reviewed by Tim Horton.

Source/WebCore:

When pageScale is < 1, we used fixed layout mode, and FrameView::fixedElementsLayoutRelativeToFrame()
returns true. However, the scrolling thread was calling the static scrollOffsetForFixedPosition()
hardcoding 'false' for this parameter.

Fix by sending the value of fixedElementsLayoutRelativeToFrame over to the scrolling thread,
so we can use it when doing scrolling-thread fixed position stuff.

Not testable.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setFixedElementsLayoutRelativeToFrame):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
(WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

(WebCore::ScrollingTreeFrameScrollingNode::fixedElementsLayoutRelativeToFrame):
(WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):

Source/WebKit2:

Encode/decode fixedElementsLayoutRelativeToFrame.

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

4:35 PM Changeset in webkit [183654] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Remove invalid assertion from MouseEvent::create()
https://bugs.webkit.org/show_bug.cgi?id=144477

Reviewed by Tim Horton.

mouseforcechanged events and mouseforcewillbegin trigger this assertion. The
assertion does not seem valuable, so rather than changing it, just remove it.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):

4:26 PM Changeset in webkit [183653] by dino@apple.com
  • 3 edits
    2 adds in trunk

-apple-system-font-monospaced-numbers doesn't work on iOS
https://bugs.webkit.org/show_bug.cgi?id=144478
<rdar://problem/20544940>

Reviewed by Brent Fulgham.

Source/WebCore:

Make sure to start from the system font descriptor when
asking for a monospaced numeric alternate.

Test: platform/ios-simulator/fast/text/system-monospaced-numbers.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::createCTFontWithFamilyNameAndWeight):

LayoutTests:

A test that draws two lines of different numbers and checks
they are the same width.

  • platform/ios-simulator/fast/text/system-monospaced-numbers-expected.txt: Added.
  • platform/ios-simulator/fast/text/system-monospaced-numbers.html: Added.
4:16 PM Changeset in webkit [183652] by Joseph Pecoraro
  • 4 edits in trunk/LayoutTests

Unreviewed, ios-simulator gardening

  • Address linter warnings.
  • Unskip some tests that pass.
  • More generically skip unsupported iOS features.
  • Address FIXMEs.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
4:13 PM Changeset in webkit [183651] by Brent Fulgham
  • 7 edits in trunk/Tools

Provide a runtime flag to run-webkit-tests that shows the test view
https://bugs.webkit.org/show_bug.cgi?id=144079.

Reviewed by Dean Jackson.

Add a new flag (--show-webview) that causes DumpRenderTree and WebKitTestRunner to display
their WebViews on-screen. This can be used when running tests via the "--additional-drt-flag"
option:

--additional-drt-flag="--show-webview"

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow): Use an on-screen window rect if the user passed the
'--show-webview' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the "--show-webview" option.

  • WebKitTestRunner/Options.cpp:

(WTR::Options::Options):
(WTR::handleOptionShowWebView):
(WTR::OptionsHandler::OptionsHandler): Recognize the new "--show-webview" option.

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::TestController):
(WTR::TestController::initialize): Use value of 'shouldShowWebView' from the Options bundle.

  • WebKitTestRunner/TestController.h:

(WTR::TestController::shouldShowWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView): Retrieve the value of the 'ShouldShowWebView' key from the
options dictionary. If it is true, display the web view while running the test.

4:02 PM Changeset in webkit [183650] by fpizlo@apple.com
  • 6 edits in trunk

js/regress/is-string-fold-tricky.html and js/regress/is-string-fold.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=144463

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Fixup phase was super cleverly folding an IsString(@x) when @x is predicted SpecString
into a Check(String:@x) followed by JSConstant(true). Then in these tests the
ValueAdd(IsString(@x), @stuff) would try to turn this into an integer add by cleverly
converting the boolean into an integer. But as part of doing that, it would try to
short-circuit any profiling by leveraging the fact that the IsString is now a constant,
and it would try to figure out if the addition might overflow. Part of that logic
involved checking if the immediate is either a boolean or a sufficiently small integer.
But: it would check if it's a sufficiently small integer before checking if it was a
boolean, so it would try to call asNumber() on the boolean.

All of this cleverness was very deliberate, but apparently the @stuff + booleanConstant
case was previously never hit until I wrote these tests, and so we never knew that
calling asNumber() on a boolean was wrong.

The fix is super simple: the expression should just check for boolean first.

This bug was benign in release builds. JSValue::asNumber() on a boolean would return
garbage, and that's OK, since we'd take the boolean case anyway.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addImmediateShouldSpeculateInt32):

LayoutTests:

Unskip now that the bug is fixed.

  • TestExpectations:
  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
3:57 PM Changeset in webkit [183649] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r183646 for less enlightened platforms.

Unreviewed.

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::fullyQualifiedInfoTableName): Windows doesn’t have stpcpy :(

3:40 PM Changeset in webkit [183648] by oliver@apple.com
  • 2 edits in trunk/Source/WebCore

DOM bindings should not be using a reference type to point to a temporary object
https://bugs.webkit.org/show_bug.cgi?id=144474

Reviewed by Beth Dakin.

The DOM bindings will currently try and use a local reference to point
to a temporary object. This currently works as a by product of the compiler's
stack layout. This patch removes the dependency on undefined behaviour
by ensuring that we use a value rather than reference type.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GetNativeTypeForCallbacks):

3:16 PM Changeset in webkit [183647] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Asynchronous (or timed-out synchronous) resize flashes white instead of page background color
https://bugs.webkit.org/show_bug.cgi?id=144468

Reviewed by Simon Fraser and Dan Bernstein.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _viewBackgroundColor]):
(-[WKView updateLayer]):
Use the pageExtendedBackgroundColor for the background color of the WKView,
if we have one (and aren't using a transparent background). This means
during asynchronous resize or other cases where the Web process isn't keeping
up with the UI process during a resize, we'll see background color instead of white.

3:15 PM Changeset in webkit [183646] by beidson@apple.com
  • 5 edits
    3 adds in trunk

Javascript using WebSQL can create their own WebKit info table.
<rdar://problem/20688792> and https://bugs.webkit.org/show_bug.cgi?id=144466

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/websql/alter-to-info-table.html

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::databaseInfoTableName): Return the info table name.
(WebCore::fullyQualifiedInfoTableName): Append "main." to the info table name.
(WebCore::DatabaseBackendBase::DatabaseBackendBase): Use the fully qualified name.
(WebCore::DatabaseBackendBase::performOpenAndVerify): Ditto.
(WebCore::DatabaseBackendBase::getVersionFromDatabase): Ditto.
(WebCore::DatabaseBackendBase::setVersionInDatabase): Ditto.

LayoutTests:

  • storage/websql/alter-to-info-table-expected.txt: Added.
  • storage/websql/alter-to-info-table.html: Added.
  • storage/websql/alter-to-info-table.js: Added.
3:00 PM Changeset in webkit [183645] by Beth Dakin
  • 4 edits in trunk/Source

Should choose UIScrollView indicatorStyle based on the document background color
https://bugs.webkit.org/show_bug.cgi?id=144473
-and corresponding-
rdar://problem/19897699

Reviewed by Simon Fraser.

Source/WebCore:

Export this function.

  • platform/graphics/Color.h:

Source/WebKit2:

Update the indicator style whenever the background color changes.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateScrollViewBackground]):

2:26 PM Changeset in webkit [183644] by Martin Robinson
  • 2 edits in trunk/LayoutTests

Unskip isolated words tests on WebKitGTK+

  • platform/gtk/TestExpectations: Unskip tests. We've been able to run these

since the switch to WebKitTestRunner.

1:55 PM Changeset in webkit [183643] by fpizlo@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing in RJST as well.

  • js/regress/script-tests/is-string-fold-tricky.js:
  • js/regress/script-tests/is-string-fold.js:
1:03 PM Changeset in webkit [183642] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Scope Chain sidebar should be selected immediately when paused
https://bugs.webkit.org/show_bug.cgi?id=144352

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.showDebuggerTab): Added showScopeChainDetailsSidebarPanel argument.
(WebInspector._debuggerDidPause): Pass true for showScopeChainDetailsSidebarPanel.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView): Wire the event to showDetailsSidebarPanels instead of
_contentBrowserRepresentedObjectsDidChange, allowing subclasses to do work during the event.
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels): Moved content of
_contentBrowserRepresentedObjectsDidChange here.
(WebInspector.ContentBrowserTabContentView.prototype._contentBrowserRepresentedObjectsDidChange): Deleted.

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels): Added. Show the scope sidebar panel
if it is available and it was requested by showScopeChainDetailsSidebarPanel().
(WebInspector.DebuggerTabContentView.prototype.showScopeChainDetailsSidebarPanel): Added.

1:01 PM Changeset in webkit [183641] by ap@apple.com
  • 3 edits in trunk/Tools

r183355 didn't trigger Mac tests
https://bugs.webkit.org/show_bug.cgi?id=144464

Reviewed by Simon Fraser.

Update badly neglected filters and unit tests.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

12:51 PM Changeset in webkit [183640] by Martin Robinson
  • 5 edits
    2 adds in trunk/LayoutTests

Rebaseline some editing tests for WebKitGTK+

Also add some missing baselines.

  • fast/hidpi/broken-image-icon-very-hidpi-expected.png: Added.
  • fast/hidpi/broken-image-icon-very-hidpi-expected.txt: Added.
  • platform/gtk/editing/execCommand/5142012-1-expected.png:
  • platform/gtk/editing/execCommand/5142012-1-expected.txt:
  • platform/gtk/editing/inserting/insert-at-end-02-expected.txt:
  • platform/gtk/editing/pasteboard/4989774-expected.txt:
12:04 PM Changeset in webkit [183639] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Allow WebKit to build without ANGLE support
https://bugs.webkit.org/show_bug.cgi?id=144459
<rdar://problem/20707307>

Reviewed by Dean Jackson.

  • platform/graphics/GLContext.cpp: Use the ENABLE(GRAPHICS_CONTEXT_3D)

macro to avoid compiling this code if not using WEBGL/3D contexts.

11:54 AM Changeset in webkit [183638] by fpizlo@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, skip new tests js/regress/is-string-fold.html and js/regress/is-string-fold-tricky.html because they are crashing.

11:50 AM Changeset in webkit [183637] by jhoneycutt@apple.com
  • 2 edits in trunk/LayoutTests

Add image failure expectation for
svg/filters/sourceAlpha-input-filter-effect.html on Windows

Unreviewed.

  • platform/win/TestExpectations:
11:36 AM Changeset in webkit [183636] by hyatt@apple.com
  • 7 edits in trunk/Source/WebCore

Avoid containingBlock() calls when no writing mode flipping is needed.
https://bugs.webkit.org/show_bug.cgi?id=144407

Reviewed by Simon Fraser.

Add a bool to RenderView that indicates whether or not any flipped blocks have been
added to the view. Once tainted, the view just stays dirty forever. If no flipped
blocks are ever seen, we can then optimize away calls to containingBlock().

The motivation for this patch is to improve layer position updating, which makes many
calls to topLeftLocationOffset(), one of the functions that can be optimized by this
change.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::updateFromStyle):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::rangeIntersectsRect):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView):

  • rendering/RenderView.h:
11:21 AM Changeset in webkit [183635] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] tapping in the middle of a word in editable content should not select the word.
https://bugs.webkit.org/show_bug.cgi?id=144421
rdar://problem/20710948

Reviewed by Tim Horton.

Reverting to the original behavior.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture):

11:20 AM Changeset in webkit [183634] by calvaris@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add libhyphen-dev to the build dependencies
https://bugs.webkit.org/show_bug.cgi?id=144452

Reviewed by Martin Robinson.

  • gtk/install-dependencies: Added libhyphen-dev to the WebKitGTK+

build dependencies.

11:00 AM Changeset in webkit [183633] by Andres Gomez
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: New Images for ObjectTreeView - Setter
https://bugs.webkit.org/show_bug.cgi?id=143173

Reviewed by Martin Robinson.

  • UserInterface/Images/gtk/Pencil.svg: Added.
10:50 AM Changeset in webkit [183632] by Martin Robinson
  • 2 edits in trunk/Tools

[GTK] Testing dictionaries are not installed automatically
https://bugs.webkit.org/show_bug.cgi?id=144460

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules: Add the testing dictionaries to the main moduleset.
10:44 AM Changeset in webkit [183631] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME comment referencing https://bugs.webkit.org/show_bug.cgi?id=144458.

  • jit/JITOperations.cpp:
10:40 AM Changeset in webkit [183630] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a comment clarifying the behavior and semantics of getCallData/getConstructData, in
particular that they cannot change their minds and may be called from compiler threads.

Rubber stamped by Geoffrey Garen.

  • runtime/JSCell.h:
10:36 AM Changeset in webkit [183629] by fpizlo@apple.com
  • 3 edits
    59 adds in trunk

DFG Is<Blah> versions of TypeOf should fold based on proven input type
https://bugs.webkit.org/show_bug.cgi?id=144409

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


We were missing some obvious folding opportunities here. I don't know how this affects real
code, but in general, we like to ensure that our constant folding is comprehensive. So this
is more about placating my static analysis OCD than anything else.

I added a bunch of speed/correctness tests for this in LayoutTests/js/regress.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

LayoutTests:

  • js/regress/is-boolean-fold-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky-expected.txt: Added.
  • js/regress/is-boolean-fold-tricky.html: Added.
  • js/regress/is-boolean-fold.html: Added.
  • js/regress/is-function-fold-expected.txt: Added.
  • js/regress/is-function-fold-tricky-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function-expected.txt: Added.
  • js/regress/is-function-fold-tricky-internal-function.html: Added.
  • js/regress/is-function-fold-tricky.html: Added.
  • js/regress/is-function-fold.html: Added.
  • js/regress/is-number-fold-expected.txt: Added.
  • js/regress/is-number-fold-tricky-expected.txt: Added.
  • js/regress/is-number-fold-tricky.html: Added.
  • js/regress/is-number-fold.html: Added.
  • js/regress/is-object-or-null-fold-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions-expected.txt: Added.
  • js/regress/is-object-or-null-fold-functions.html: Added.
  • js/regress/is-object-or-null-fold-less-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-less-tricky.html: Added.
  • js/regress/is-object-or-null-fold-tricky-expected.txt: Added.
  • js/regress/is-object-or-null-fold-tricky.html: Added.
  • js/regress/is-object-or-null-fold.html: Added.
  • js/regress/is-object-or-null-trickier-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-function.html: Added.
  • js/regress/is-object-or-null-trickier-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-trickier-internal-function.html: Added.
  • js/regress/is-object-or-null-tricky-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-function.html: Added.
  • js/regress/is-object-or-null-tricky-internal-function-expected.txt: Added.
  • js/regress/is-object-or-null-tricky-internal-function.html: Added.
  • js/regress/is-string-fold-expected.txt: Added.
  • js/regress/is-string-fold-tricky-expected.txt: Added.
  • js/regress/is-string-fold-tricky.html: Added.
  • js/regress/is-string-fold.html: Added.
  • js/regress/is-undefined-fold-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky-expected.txt: Added.
  • js/regress/is-undefined-fold-tricky.html: Added.
  • js/regress/is-undefined-fold.html: Added.
  • js/regress/script-tests/is-boolean-fold-tricky.js: Added.
  • js/regress/script-tests/is-boolean-fold.js: Added.
  • js/regress/script-tests/is-function-fold-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-function-fold-tricky.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-function-fold.js: Added.

(value1):

  • js/regress/script-tests/is-number-fold-tricky.js: Added.
  • js/regress/script-tests/is-number-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-functions.js: Added.

(value2):

  • js/regress/script-tests/is-object-or-null-fold-less-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold-tricky.js: Added.
  • js/regress/script-tests/is-object-or-null-fold.js: Added.
  • js/regress/script-tests/is-object-or-null-trickier-function.js: Added.

(func):
(func2):

  • js/regress/script-tests/is-object-or-null-trickier-internal-function.js: Added.
  • js/regress/script-tests/is-object-or-null-tricky-function.js: Added.

(func):

  • js/regress/script-tests/is-object-or-null-tricky-internal-function.js: Added.
  • js/regress/script-tests/is-string-fold-tricky.js: Added.
  • js/regress/script-tests/is-string-fold.js: Added.
  • js/regress/script-tests/is-undefined-fold-tricky.js: Added.
  • js/regress/script-tests/is-undefined-fold.js: Added.
  • js/regress/sink-function-expected.txt: Added.
  • js/regress/sink-function.html: Added.
10:21 AM Changeset in webkit [183628] by Brent Fulgham
  • 27 edits in trunk/LayoutTests

[Mac] Expand test infrastructure to support scrolling tests (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=144131

Reviewed by Eric Carlson.

Update the WK2 scrolling tests to use the new scroll trigger infrastructure to reduce the use of
timeouts.

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • platform/mac-wk2/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • platform/mac-wk2/tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
10:17 AM Changeset in webkit [183627] by Andres Gomez
  • 1 edit
    18 deletes in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Remove some unused Images
https://bugs.webkit.org/show_bug.cgi?id=144445

Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/BottomUpTree.svg: Removed.
  • UserInterface/Images/gtk/Log.png: Removed.
  • UserInterface/Images/gtk/Log@2x.png: Removed.
  • UserInterface/Images/gtk/NavigationItemAngleBrackets.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBrushAndRuler.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemBug.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemFile.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLayers.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemLog.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemProbes.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStopwatch.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemStorage.svg: Removed.
  • UserInterface/Images/gtk/NavigationItemVariable.svg: Removed.
  • UserInterface/Images/gtk/Percent.svg: Removed.
  • UserInterface/Images/gtk/Reload.svg: Removed.
  • UserInterface/Images/gtk/SplitToggleDown.svg: Removed.
  • UserInterface/Images/gtk/Time.svg: Removed.
  • UserInterface/Images/gtk/Weight.svg: Removed.
9:17 AM Changeset in webkit [183626] by Martin Robinson
  • 3 edits in trunk

[CMake] Automatically expose WTF_USE_FOO to the build when USE_FOO is exposed
https://bugs.webkit.org/show_bug.cgi?id=144394

Reviewed by Carlos Garcia Campos.

Automatically expose WTF_USE_FOO when USE_FOO is exposed. A side-effect of this change
is that it fixes the redirected XComposite window for GTK+, which was accidentally
disabled in previous reworking of the CMake configuration.

  • Source/cmake/OptionsGTK.cmake: We no longer need to expose the WTF_ prefixed

version of USE variables.

  • Source/cmake/WebKitFeatures.cmake: Automatically expose WTF_USE_FOO when USE_FOO

is exposed to the build.

2:19 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:09 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:06 AM EFLWebKit edited by Gyuyoung Kim
(diff)
2:02 AM EFLWebKit edited by Gyuyoung Kim
(diff)
1:54 AM Changeset in webkit [183625] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy not working in Console
https://bugs.webkit.org/show_bug.cgi?id=144354

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-04-30
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector._focusedContentView):
Select the inner most content view to check if handleCopyEvent exists.
Previously we were stopping at the top level TabContentView.

1:37 AM Changeset in webkit [183624] by Yusuke Suzuki
  • 9 edits in trunk/Source

Use the default hash value for Symbolized StringImpl
https://bugs.webkit.org/show_bug.cgi?id=144347

Reviewed by Darin Adler.

Source/JavaScriptCore:

Before this patch, symbolized StringImpl* has a special hash value
to avoid the hash collision with the other normal StringImpl*.
I guess that it is introduced when private symbols are introduced.
However, it prevents using symbolized StringImpl* in the other place
For example, using it as WTFString cause a problem because of its special hash value.

When only using private symbols, they are not exposed to the outside of JSC,
so we can handle it carefully. But now, it's extended to symbols.
So I think storing a special hash value in StringImpl* causes an error.

To avoid this, I propose using the usual hash value in symbolized StringImpl*.
And to provide significantly different hash value when using it as symbol,
store the additional hash value in symbolized StringImpl*. It is used when
the hash value is required by IdentifierRepHash.

  • runtime/Identifier.h:

(JSC::IdentifierRepHash::hash):

  • runtime/Lookup.h:

(JSC::HashTable::entry):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::find):
(JSC::PropertyTable::get):

  • runtime/Structure.cpp:

(JSC::PropertyTable::checkConsistency):

Source/WTF:

Use a default hash value calculation for symbolized StringImpl.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createSymbol):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl):
(WTF::StringImpl::symbolAwareHash):
(WTF::StringImpl::existingSymbolAwareHash):
(WTF::StringImpl::hashForSymbol):

  • wtf/text/StringStatics.cpp:

(WTF::StringImpl::nextHashForSymbol):
(WTF::StringImpl::hashAndFlagsForSymbol): Deleted.

12:39 AM Changeset in webkit [183623] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

These should be saying HTTP/1.1 not HTTP/1.0

  • http/tests/cache/resources/iframe304.php:
  • http/tests/cache/resources/iframe304body.php:
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:30 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:29 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:25 AM WebKitEFLLayoutTest edited by Gyuyoung Kim
(diff)
12:13 AM Changeset in webkit [183622] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK+ version numbers.

  • Source/cmake/OptionsGTK.cmake:
12:08 AM Changeset in webkit [183621] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Fix return code issue, check return code of safari process and dump results to log
https://bugs.webkit.org/show_bug.cgi?id=144436

Patch by Dewei Zhu <Dewei Zhu> on 2015-04-30
Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.dump): Correct typo.
(BenchmarkRunner.wrap): Add results to console.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Check return code to detect Safari crashes.

(OSXSafariDriver.prepareEnv):
(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

Note: See TracTimeline for information about the timeline view.