Timeline
May 4, 2015:
- 11:57 PM Changeset in webkit [183797] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 12 edits1 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):
- tests/stress/new-array-storage-array-with-size.js: Skip this test until we fix https://bugs.webkit.org/show_bug.cgi?id=144609.
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
-
- 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
-
- 5 edits1 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
-
- 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
-
- 17 edits2 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
-
- 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
-
- 6 edits3 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
-
- 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
-
- 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
-
- 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
-
- 5 edits2 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
-
- 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
-
- 10 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 15 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 6 edits4 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 4 edits1 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
-
- 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
-
- 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
-
- 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
-
- 25 edits5 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
- (diff)
- 9:22 AM Changeset in webkit [183747] by
-
- 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
-
- 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
-
- 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
- (diff)
- 6:30 AM Changeset in webkit [183744] by
-
- 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
-
- 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
-
- 1 edit1 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
-
- 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
-
- 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
-
- 3 edits2 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
-
- 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
-
- 11 edits4 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 5 edits3 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
-
- 14 edits2 moves5 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
-
- 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
-
- 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
-
- 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
-
- 2 edits in trunk/Source/WebCore
Remove timer alignment logging that I added earler today.
- page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):