Timeline



Jan 4, 2014:

11:29 PM Changeset in webkit [161318] by msaboff@apple.com
  • 6 edits in branches/jsCStack/Source/JavaScriptCore

CStack Branch: ARM64 needs push/pop pair macro assembler instructions
https://bugs.webkit.org/show_bug.cgi?id=126474

Reviewed by Mark Lam.

Added templated ldp() and stp() instruction generators to the ARM64 assembler.
Added popPair() and pushPair() to the ARM64 macro assembler. Added ARM64
version of emitFunctionPrologue() and emitFunctionEpilogue() to AssemblyHelpers.h
that use the pushPair() and popPair() macro instructions. Added disassembler support
for the newly added load/store pair instructions.

Verified that we correctly generate the new instructions and that they disassemble
the same as what the debugger shows.

  • assembler/ARM64Assembler.h:

(JSC::isInt7):
(JSC::isInt11):
(JSC::PairPostIndex::PairPostIndex):
(JSC::PairPostIndex::operator int):
(JSC::PairPreIndex::PairPreIndex):
(JSC::PairPreIndex::operator int):
(JSC::ARM64Assembler::memPairOffsetShift):
(JSC::ARM64Assembler::ldp):
(JSC::ARM64Assembler::stp):
(JSC::ARM64Assembler::loadStoreRegisterPairPostIndex):
(JSC::ARM64Assembler::loadStoreRegisterPairPreIndex):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::popPair):
(JSC::MacroAssemblerARM64::pushPair):

  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcode::appendRegisterName):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::opName):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::rt2):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::immediate7):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::offsetMode):
(JSC::ARM64Disassembler::A64DOpcodeLoadStoreRegisterPair::lBit):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitFunctionPrologue):
(JSC::AssemblyHelpers::emitFunctionEpilogue):

6:15 PM Changeset in webkit [161317] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Use Compiler macros instead of raw "final" and "override"
https://bugs.webkit.org/show_bug.cgi?id=126490

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-01-04
Reviewed by Sam Weinig.

  • runtime/JSPromiseReaction.cpp:
4:28 PM Changeset in webkit [161316] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Move a few more functions from RenderBlock to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=126494

Reviewed by Andreas Kling.

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::adjustInlineDirectionLineBounds):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::textAlignmentForLine):
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::startAlignedOffsetForLine):
These are only used by RenderBlockFlow, so move them there.

1:48 PM Changeset in webkit [161315] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Prepare the ScrollingTree for remote use
https://bugs.webkit.org/show_bug.cgi?id=126493

Reviewed by Sam Weinig.

When committing the scrolling tree, we clone the ScrollingStateTree
to hand off to another thread, or (in future) to encode to send to the
UI process. During this cloning process, two types of layer transformations
take place: for threaded scrolling, we replace GraphicsLayer with PlatformLayers.
For remote scrolling, we'll replace GraphicsLayers with PlatformLayerIDs.
Allow the ScrollingCoordinator to specify which type of transformation occurs
by giving ScrollingStateTree a LayerRepresentation::Type member,
which is consulted during ScrollingStateNode cloning.

Also only copy layers that have changed to avoid setting dirty bits.

Expose some other stuff on ScrollingStateTree which will be needed for
remote scrolling.

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):

  • page/scrolling/ScrollingStateNode.h:

(WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
(WebCore::LayerRepresentation::toRepresentation):
(WebCore::ScrollingStateNode::changedProperties):
(WebCore::ScrollingStateNode::setChangedProperties):
(WebCore::ScrollingStateNode::parentNodeID):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):

  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::commit):
(WebCore::ScrollingStateTree::setRemovedNodes):
(WebCore::ScrollingStateTree::stateNodeForID):

  • page/scrolling/ScrollingStateTree.h:

(WebCore::ScrollingStateTree::nodeCount):
(WebCore::ScrollingStateTree::nodeMap):
(WebCore::ScrollingStateTree::preferredLayerRepresentation):
(WebCore::ScrollingStateTree::setPreferredLayerRepresentation):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::commitTreeState):

12:53 PM Changeset in webkit [161314] by weinig@apple.com
  • 6 edits in trunk/Source/WebCore

Move LineBreaker functions to LineBreaker.cpp
https://bugs.webkit.org/show_bug.cgi?id=126491

Reviewed by Simon Fraser.

  • Moves LineBreaker::nextLineBreak() and LineBreaker::nextSegmentBreak() to LineBreaker.cpp from RenderBlockLineLayout.cpp
  • Moves requiresIndent() to LineWidth.h/cpp from RenderBlockLineLayout.cpp so it can be shared.
  • Adds missing inline specifier to BreakingContext::handleEndOfLine() to avoid duplicate symbols.
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::updateLogicalInlinePositions):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):

  • rendering/line/BreakingContextInlineHeaders.h:

(WebCore::BreakingContext::handleEndOfLine):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::nextLineBreak):
(WebCore::LineBreaker::nextSegmentBreak):

  • rendering/line/LineWidth.cpp:

(WebCore::requiresIndent):

  • rendering/line/LineWidth.h:
10:31 AM Changeset in webkit [161313] by msaboff@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

CStack Branch: ARM64 add of stack pointer not valid as second source operand
https://bugs.webkit.org/show_bug.cgi?id=126486

Reviewed by Mark Lam.

Swap the source operands in add64() if the second argument is the stack pointer
to work around ARM64 limitations for using the stack pointer as a second source operand.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::add64):

10:30 AM Changeset in webkit [161312] by msaboff@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

CStack Branch: slowPathFor() should emit an epilogue instead of popping the callFrameRegister
https://bugs.webkit.org/show_bug.cgi?id=126478

Reviewed by Mark Lam.

Changed the pop(callFrameRegister) to emitFunctionEpilogue().

  • jit/ThunkGenerators.cpp:

(JSC::slowPathFor):

9:46 AM Changeset in webkit [161311] by Martin Robinson
  • 8 edits
    1 add in trunk

[GTK] [CMake] Improve the way we locate gobject-introspection
https://bugs.webkit.org/show_bug.cgi?id=126452

Reviewed by Philippe Normand.

.:

  • Source/cmake/FindGObjectIntrospection.cmake: Added.
  • Source/cmake/OptionsGTK.cmake: Load the new FindGObjectIntrospection file.

Source/JavaScriptCore:

  • PlatformGTK.cmake: Use the new introspection variables.

Source/WebKit:

  • PlatformGTK.cmake: Use the new introspection variables.

Source/WebKit2:

  • PlatformGTK.cmake: Use the new introspection variables.
9:44 AM Changeset in webkit [161310] by Martin Robinson
  • 6 edits in trunk

[GTK] [CMake] Fix the video and audio build
https://bugs.webkit.org/show_bug.cgi?id=126464

Reviewed by Philippe Normand.

.:

  • Source/cmake/OptionsGTK.cmake: GStreamer files look for USE(GSTREAMER) and USE(WEBAUDIO_GSTREAMER),

so define those when appropriate. Web audio is one by default in autotools, so turn it on for cmake
as well.

Source/WebCore:

  • PlatformGTK.cmake: Complete the audio and video source lists.

Tools:

  • GtkLauncher/CMakeLists.txt: Add GStreamer includes and libraries, since GtkLauncher uses it.
9:26 AM Changeset in webkit [161309] by zandobersek@gmail.com
  • 65 edits in trunk/Source

Explicitly use the std:: nested name specifier when using std::pair, std::make_pair
https://bugs.webkit.org/show_bug.cgi?id=126439

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Instead of relying on std::pair and std::make_pair symbols being present in the current scope
through the pair and make_pair symbols, the std:: specifier should be used explicitly.

  • bytecode/Opcode.cpp:

(JSC::compareOpcodePairIndices):
(JSC::OpcodeStats::~OpcodeStats):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeBinaryNode):

  • parser/Parser.cpp:

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

  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains):
(JSC::StructureTransitionTable::get):
(JSC::StructureTransitionTable::add):

Source/WebCore:

Instead of relying on std::pair and std::make_pair symbols being present in the current scope
through the pair and make_pair symbols, the std:: specifier should be used explicitly.

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::rowIndexRange):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):

  • accessibility/AccessibilityARIAGridCell.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::mathPrescripts):
(WebCore::AccessibilityRenderObject::mathPostscripts):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::cellForColumnAndRow):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::columnIndexRange):

  • accessibility/AccessibilityTableCell.h:
  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:

(webkitAccessibleTableGetColumnAtIndex):
(webkitAccessibleTableGetRowAtIndex):
(webkitAccessibleTableGetColumnExtentAt):
(webkitAccessibleTableGetRowExtentAt):
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityRowRange]):
(-[WebAccessibilityObjectWrapper accessibilityColumnRange]):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertMathPairsToNSArray):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • bindings/js/SerializedScriptValue.cpp:
  • dom/ContainerNode.cpp:
  • dom/StyledElement.cpp:

(WebCore::attributeNameSort):

  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseTimeFragment):

  • html/parser/HTMLMetaCharsetParser.h:
  • inspector/ContentSearchUtils.cpp:

(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
(WebCore::ContentSearchUtils::searchInTextByLines):

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):

  • inspector/DOMPatchSupport.h:
  • inspector/InspectorAgent.cpp:

(WebCore::InspectorAgent::enable):
(WebCore::InspectorAgent::evaluateForTestInFrontend):

  • inspector/InspectorAgent.h:
  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::brokenImage):

  • loader/cache/CachedImage.h:
  • platform/URL.cpp:

(WebCore::findHostnamesInMailToURL):
(WebCore::encodeHostnames):

  • platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::getCachedFontData):

  • platform/graphics/WidthIterator.cpp:
  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::adopt):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::parseCacheHeader):

  • platform/text/AtomicStringKeyedMRUCache.h:
  • platform/text/LineBreakIteratorPoolICU.h:
  • rendering/InlineFlowBox.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageSizeForError):
(WebCore::RenderImage::paintReplaced):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::cachedCollapsedBorder):

  • rendering/RenderTableSection.h:
  • rendering/svg/SVGTextRunRenderingContext.cpp:

(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):

  • svg/SVGAnimatedAngle.cpp:

(WebCore::SVGAnimatedAngleAnimator::constructFromString):
(WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedIntegerOptionalInteger.cpp:

(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumberOptionalNumber.cpp:

(WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedType.cpp:

(WebCore::SVGAnimatedType::createIntegerOptionalInteger):
(WebCore::SVGAnimatedType::createNumberOptionalNumber):

  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::integerOptionalInteger):
(WebCore::SVGAnimatedType::numberOptionalNumber):

  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):

  • svg/SVGParserUtilities.h:
  • svg/animation/SMILTimeContainer.h:

Source/WebKit/mac:

Instead of relying on std::pair and std::make_pair symbols being present in the current scope
through the pair and make_pair symbols, the std:: specifier should be used explicitly.

  • Plugins/Hosted/NetscapePluginInstanceProxy.h:
  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject):
(WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain):
(WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release):
(WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget):

Source/WebKit2:

Instead of relying on std::pair and std::make_pair symbols being present in the current scope
through the pair and make_pair symbols, the std:: specifier should be used explicitly.

  • Shared/mac/ArgumentCodersMac.mm:

(IPC::encode):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::show):
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):

  • UIProcess/WebContext.h:

Source/WTF:

  • wtf/VectorTraits.h: Stop bringing std::pair into the current scope.

Jan 3, 2014:

11:43 PM Changeset in webkit [161308] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Attempt to fix EFL build.

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::setHasChangedProperties):

8:59 PM Changeset in webkit [161307] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit2

Build brake after 161045 on EFL port with WebKit2 and gcc 4.6.3
https://bugs.webkit.org/show_bug.cgi?id=126383

Patch by Piotr Grad <p.grad@samsung.com> on 2014-01-03
Reviewed by Sam Weinig.

Class identifier was missing.

  • DatabaseProcess/DatabaseProcess.h:
  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.h:
  • Shared/mac/CookieStorageShim.h:
  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebProcess.h:
7:55 PM Changeset in webkit [161306] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Clean up the means of committing the scrolling state tree
https://bugs.webkit.org/show_bug.cgi?id=126482

Reviewed by Tim Horton.

ScrollingStateNodes would manually call scrollingStateTree().setHasChangedProperties()
after setPropertyChanged() in lots of places, which was repetitive, and
AsyncScrollingCoordinator manually called scheduleTreeStateCommit() in many places.

Clean up both of these with a clearer trigger for state tree commits.
ScrollingStateNodes::setPropertyChanged() calls ScrollingStateTree::setHasChangedProperties(),
which turns around and tells the ScrollingCoordinator that the state tree became dirty.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreePropertiesChanged):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
(WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
(WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
(WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
(WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
(WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
(WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):

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

(WebCore::ScrollingStateFixedNode::updateConstraints):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::setPropertyChanged):
(WebCore::ScrollingStateNode::setLayer):

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

(WebCore::ScrollingStateScrollingNode::setViewportRect):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):

  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::updateConstraints):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::create):
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::setHasChangedProperties):
(WebCore::ScrollingStateTree::didRemoveNode):

  • page/scrolling/ScrollingStateTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):

  • page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:

(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):

7:41 PM Changeset in webkit [161305] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Try to fix CoordinatedGraphics build after r161303. Remove implementations
which are now in the cross-platform file.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):

  • page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
  • page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp:
6:18 PM Changeset in webkit [161304] by dfarler@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[super dealloc] missing in Source/JavaScriptCore/API/tests/testapi.mm, fails to build with -Werror,-Wobjc-missing-super-calls
https://bugs.webkit.org/show_bug.cgi?id=126454

Reviewed by Geoffrey Garen.

  • API/tests/testapi.mm:

(-[TextXYZ dealloc]):
add [super dealloc]
(-[EvilAllocationObject dealloc]):
add [super dealloc]

6:04 PM Changeset in webkit [161303] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

Simplify ScrollingStateNode references to various layer types
https://bugs.webkit.org/show_bug.cgi?id=126477

Reviewed by Tim Horton.

ScrollingStateNodes referenced both GraphicsLayer and PlatformLayers, in
confusing ways. In the main thread they have a GraphicsLayer*, but need
to check to see if the underlying PlatformLayer changed. Then, when
cloned to commit to the scrolling thread, they drop the GraphicsLayer
and store a PlatformLayer.

Hide the complexity (and prepare for the future) by adding LayerRepresentation,
which wraps various different flavors of layers, and knows how to check whether
the PlatformLayer underlying a GraphicsLayer changed.

ScrollingStateNode layer setters then just take and compare LayerRepresentations.
Copy constructors convert to a PlatformLayer representation (though not really
in the right place currently), and ScrollingTreeNodes get PlatformLayers.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::setLayer):

  • page/scrolling/ScrollingStateNode.h:

(WebCore::LayerRepresentation::LayerRepresentation):
(WebCore::LayerRepresentation::operator GraphicsLayer*):
(WebCore::LayerRepresentation::operator PlatformLayer*):
(WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
(WebCore::LayerRepresentation::operator ==):
(WebCore::LayerRepresentation::toPlatformLayer):
(WebCore::LayerRepresentation::representsGraphicsLayer):
(WebCore::LayerRepresentation::representsPlatformLayer):
(WebCore::LayerRepresentation::representsPlatformLayerID):
(WebCore::ScrollingStateNode::layer):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):

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

(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):

  • page/scrolling/mac/ScrollingStateNodeMac.mm:
  • page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

6:01 PM Changeset in webkit [161302] by Seokju Kwon
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix on non-Mac port

  • Shared/API/c/WKDeprecatedFunctions.cpp: Add ENABLE(MAC) guard for "WKContextPrivateMac.h".
5:57 PM Changeset in webkit [161301] by barraclough@apple.com
  • 12 edits in trunk/Source/WebKit2

Simplify process suppression state calculation
https://bugs.webkit.org/show_bug.cgi?id=126473

Reviewed by Geoffrey Garen & Sam Weinig.

Don't check the application occlusion state (this is covered by the pages already),
and let the page check visually idle. Remove layers of functions.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didFinishLaunching):

  • Let the network process nap if all processes in its context are napping.* (* Except not really. We currently leak a boost onto the process anyway.)
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching):

  • Let the plugin process nap if all processes in all contexts are napping.
  • UIProcess/WebContext.h:
    • Remove canEnableProcessSuppressionForNetworkProcess & canEnableProcessSuppressionForWebProcess
    • canEnableProcessSuppressionForGlobalChildProcesses -> processSuppressionIsEnabledForAllContexts
    • combine updateProcessSuppressionStateOfChildProcesses & updateProcessSuppressionStateOfGlobalChildProcesses

-> updateProcessSuppressionState

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isProcessSuppressible):

  • WebProcess is supressible if IsVisuallyIdle.

(WebKit::WebPageProxy::viewStateDidChange):

  • WebProcessProxy should updateProcessSuppressionState when IsVisuallyIdle changes.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::pageSuppressibilityChanged):
(WebKit::WebProcessProxy::pagePreferencesChanged):

  • pageIsProcessSuppressible -> isProcessSuppressible
  • UIProcess/WebProcessProxy.h:
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::updateProcessSuppressionState):

  • Update supression state of network & plugin processes.

(WebKit::WebContext::processSuppressionIsEnabledForAllContexts):

  • Changed iterator style, made a static member of WebContext.
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::updateProcessSuppressionState):

  • Ask the WebContext to update supression state.
  • UIProcess/mac/WindowServerConnection.h:
  • UIProcess/mac/WindowServerConnection.mm:

(WebKit::WindowServerConnection::windowServerConnectionStateChanged):
(WebKit::WindowServerConnection::WindowServerConnection):

  • Remove application occlusion state.
5:27 PM Changeset in webkit [161300] by msaboff@apple.com
  • 3 edits in branches/jsCStack/Source/JavaScriptCore

cstack Branch: ARM64 LLInt fails to compile due to instructions limitations with sp
https://bugs.webkit.org/show_bug.cgi?id=126423

Reviewed by Filip Pizlo.

Disabled the checkStackPointerAlignment macro for ARM64 since it will fault on any
improper changes to the stack pointer that result in bad alignment.

Changed uses of sp to either move into a temp register for certain operations, or
changed the order of subtract operands. The operand ordering includes branch
compare pseudo ops. In the process discovered that sanitizeStackForVM was plain
wrong and never executed the clear loop, so I fixed that while changing the operand
ordering of the compares.

The ARM64 build also complains that we are doing a compare and branch to a
non-local label so I changed branchIfException to branch around a jmp to
a possible global label.

Tested on X86-64.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
5:20 PM Changeset in webkit [161299] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r161274.
http://trac.webkit.org/changeset/161274
https://bugs.webkit.org/show_bug.cgi?id=126475

Volates ECMA and WebGL Specification (Requested by bfulgham on
#webkit).

  • webgl/1.0.2/resources/webgl_test_files/conformance/typedarrays/data-view-test.html:
4:58 PM Changeset in webkit [161298] by msaboff@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

CStack Branch: Make emitPutToCallFrameHeaderBeforePrologue and friends work for all platforms
https://bugs.webkit.org/show_bug.cgi?id=126421

Reviewed by Filip Pizlo.

Added new helper prologueStackPointerDelta() that returns the amount the stack
pointer should be adjusted when accessing a CallFrame via the stack pointer
before the function prologue has been executed.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::prologueStackPointerDelta):
(JSC::AssemblyHelpers::emitFunctionEpilogue):
(JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue):

4:52 PM Changeset in webkit [161297] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WebGL] Blit operation from Multisample FBO to rendering FBO must ignore GL_SCISSOR test
https://bugs.webkit.org/show_bug.cgi?id=126470
<rdar://problem/15201370>

Reviewed by Dean Jackson.

Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Temporarily deactivate the GL_SCISSOR
test while we do our blit, then reactivate if necessary.

4:35 PM Changeset in webkit [161296] by timothy_horton@apple.com
  • 10 edits in trunk/Source/WebKit2

[iOS] [WK2] TileController creates all tiles on first paint, making it slow and consuming lots of memory
https://bugs.webkit.org/show_bug.cgi?id=126457

Reviewed by Simon Fraser.

Instead of making all of the tiles all of the time, we should use the
view-exposed-rect mechanism to inform TileController about what portion
of the WKContentView is currently exposed by the WKScrollView.

  • UIProcess/API/ios/WKContentView.h:
  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView setViewportSize:]):
(-[WKContentView didFinishScrollTo:]):
(-[WKContentView didScrollTo:]):
Inform the WebPageProxy that our exposed rect changed.

  • UIProcess/API/ios/WKView.mm:

(-[WKView scrollViewDidScroll:]):
Inform the WKContentView that we've scrolled at all.
Rename the existing WKContentView didScrollTo: to didFinishScrollTo:,
because it is expected to only fire when a scroll lands. Add didScrollTo:,
which fires continually as scrolling progresses.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::viewExposedRectChanged):
(WebKit::WebPageProxy::exposedRectChangedTimerFired):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewExposedRect):

  • UIProcess/mac/WebPageProxyMac.mm:

Move view-exposed-rect stuff to WebPageProxy so it can be built on both
Mac and iOS, and un-!PLATFORM(IOS) some of the related members.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::setExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::setClipsToExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateMainFrameClipsToExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::mainFrameTiledBacking):
Steal TiledCoreAnimationDrawingArea's exposed-rect code.
Note that on iOS, we don't need to manually offset the exposed rect by
the scroll position, because the scroll position is already baked into
the exposed rect, and WebCore's notion of the scroll position will be
inaccurate until the scroll lands.

4:24 PM Changeset in webkit [161295] by ap@apple.com
  • 2 edits in trunk/Tools

It's confusing to have two elements link to the same URL at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126467

Reviewed by Geoffrey Garen.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/StatusLineView.js:

(StatusLineView): Don't linkify the label text, the bubble is easier to target with mouse
pointer, or to tap.

4:20 PM Changeset in webkit [161294] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WebGL] CGLPixelFormat should specify SampleBuffer and Sample count when using MSAA
https://bugs.webkit.org/show_bug.cgi?id=126468

Reviewed by Dean Jackson.

Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::setPixelFormat): Add kCGLPFAMultisample, kCGLPFASampleBuffers (and count), and
kCGLPFASamples (and count) to our pixel format when 'antialias=true'.
(WebCore::GraphicsContext3D::GraphicsContext3D): Pass a new 'antialias' flag to the setPixelFormat
method so we can turn on MSAA features when needed.

4:15 PM Changeset in webkit [161293] by Simon Fraser
  • 14 edits in trunk/Source

Give all PlatformCALayers a PlatformLayerID, not just remote ones
https://bugs.webkit.org/show_bug.cgi?id=126466

Reviewed by Tim Horton.

Source/WebCore:

The ScrollingStateTree has references to both GraphicsLayers and PlatformLayers
which is confusing, and is necessary because the underlying PlatformLayer
inside a GraphicsLayer can change. In order to hide some of this complexity,
expose GraphicsLayer::primaryLayerID() which is a PlatformLayerID that clients
can hold onto to test for underlying layer swapping.

Also constify LayerType m_layerType on PlatformCALayer, which required
cleaning up the construction of PlatformCALayerMac in the case where a
PlatformCALayerMac is wrapping an existing CALayer (which happens for video).

  • WebCore.exp.in:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::primaryLayerID):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::primaryLayerID):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::generateLayerID):
(WebCore::PlatformCALayer::PlatformCALayer):

  • platform/graphics/ca/PlatformCALayer.h:

(WebCore::PlatformCALayer::layerID):

  • platform/graphics/ca/mac/PlatformCALayerMac.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayerMac::create):
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::commonInit):

Source/WebKit2:

The ScrollingStateTree has references to both GraphicsLayers and PlatformLayers
which is confusing, and is necessary because the underlying PlatformLayer
inside a GraphicsLayer can change. In order to hide some of this complexity,
expose GraphicsLayer::primaryLayerID() which is a PlatformLayerID that clients
can hold onto to test for underlying layer swapping.

GraphicsLayerCARemote and PlatformCALayerRemote can now just use the
primaryLayerID() function exposed via the base class.

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(PlatformCALayerRemote::PlatformCALayerRemote):
(PlatformCALayerRemote::recursiveBuildTransaction):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
4:04 PM Changeset in webkit [161292] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Expose session state API
https://bugs.webkit.org/show_bug.cgi?id=126463

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKBrowsingContextController.h: Declared new property and method.
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController sessionState]): Added. Calls WebPageProxy::sessionStateData.
(-[WKBrowsingContextController restoreFromSessionState:]): Added. Calls
WebPageProxy::restoreFromSessionState.

4:03 PM Changeset in webkit [161291] by barraclough@apple.com
  • 6 edits in trunk/Source/WebKit2

Remove SPI, user default for disabling process suppression
https://bugs.webkit.org/show_bug.cgi?id=126458

Reviewed by Sam Weinig.

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKContextGetProcessSuppressionEnabled):
(WKContextSetProcessSuppressionEnabled):

  • depracated SPI.
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:
    • depracated SPI.
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::WebContext):

  • removed m_processSuppressionEnabled.
  • UIProcess/WebContext.h:
    • removed setProcessSuppressionEnabled, processSuppressionEnabled implementation, processSuppressionEnabledChanged, m_processSuppressionEnabled.
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformInitialize):

  • removed m_processSuppressionEnabled.

(WebKit::WebContext::processSuppressionEnabled):

  • check whether all pages in all processes are suppressible.

(WebKit::WebContext::canEnableProcessSuppressionForNetworkProcess):

  • removed call to omitProcessSuppression, m_processSuppressionEnabled -> processSuppressionEnabled().

(WebKit::WebContext::canEnableProcessSuppressionForWebProcess):

  • removed call to omitProcessSuppression, processSuppressionEnabled (we don't care if a page in a difference process is not suppresible).

(WebKit::WebContext::canEnableProcessSuppressionForGlobalChildProcesses):

  • removed call to omitProcessSuppression, s_processSuppressionEnabledForAllContexts -> processSuppressionIsEnabledForAllContexts().
3:38 PM Changeset in webkit [161290] by ap@apple.com
  • 3 edits in trunk/Tools

build.webkit.org/dashboard says "failed build" even if it's another step that failed
https://bugs.webkit.org/show_bug.cgi?id=126461

Reviewed by Geoffrey Garen.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotBuilderQueueView.js:

(BuildbotBuilderQueueView.prototype.update.appendBuilderQueueStatus): Link to main
build page if it's not the compilation that failed. Use text from buildbot for description.
Show a yellow icon if it's a different kind of failure.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype.update): Record whether it was compile-webkit step that failed.

3:25 PM Changeset in webkit [161289] by thiago.lacerda@openbossa.org
  • 2 edits in trunk/Source/WebKit2

[WK2][CoordinatedGraphics] Removing repeated protected keyword in WebView
https://bugs.webkit.org/show_bug.cgi?id=126462

Reviewed by Simon Fraser.

  • UIProcess/CoordinatedGraphics/WebView.h:
3:19 PM Changeset in webkit [161288] by akling@apple.com
  • 6 edits in trunk/Source/WebCore

Add lineageOfType renderer iterator and start using it.
<https://webkit.org/b/126456>

Add a convenient way to iterate over a renderers ancestry *including*
the starting point renderer (if it meets the type criteria.)

This works just like lineageOfType for Elements.

Reviewed by Geoffrey Garen.

  • rendering/RenderAncestorIterator.h:

(WebCore::lineageOfType):

Added. Returns an adapter for walking a renderer's entire lineage
matching any renderer of the given type.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayerModelObject.h:

Add the requisite isRendererOfType<T> helpers.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::enclosingFloatPaintingLayer):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingLayer):
(WebCore::RenderObject::enclosingBox):
(WebCore::RenderObject::enclosingBoxModelObject):

Simplify with lineageOfType. Added some FIXMEs about functions
that should return references instead of pointers.

3:05 PM Changeset in webkit [161287] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

Small build fix for the GTK+ CMake port

  • PlatformGTK.cmake: Add an IDL file that is missing from the list of IDLs

used to generate GObject DOM bindings.

2:28 PM Changeset in webkit [161286] by dbates@webkit.org
  • 12 edits
    1 add in trunk/Source/WebCore

[iOS] Upstream WebCore/css changes
https://bugs.webkit.org/show_bug.cgi?id=126237

Reviewed by Simon Fraser.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Added iOS-specific code and FIXME comment.

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext): Ditto.
(WebCore::CSSParser::parseValue): Ditto.

  • css/CSSPropertyNames.in: Added property -webkit-composition-fill-color. Also added FIXME comment.
  • css/CSSValueKeywords.in: Added iOS-specific -apple-system-* values.
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Added iOS-specific code and FIXME comments.

  • css/MediaFeatureNames.h: Added media feature -webkit-video-playable-inline.
  • css/MediaQueryEvaluator.cpp:

(WebCore::isRunningOnIPhoneOrIPod): Added. Also added FIXME comment.
(WebCore::video_playable_inlineMediaFeatureEval): Added.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::canShareStyleWithElement): Substitute toHTMLMediaElement() for toMediaElement().
(WebCore::StyleResolver::applyProperty): Added iOS-specific code and FIXME comment.

  • css/html.css: Added iOS-specific CSS styles.

(input, textarea, keygen, select, button, isindex):
(isindex):
(input[type="date"]):
(input[type="datetime"]):
(input[type="datetime-local"]):
(input[type="month"]):
(input[type="time"]):
(textarea):
(input:-webkit-autofill):
(input[type="radio"], input[type="checkbox"]):
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
(input[type="range"]::-webkit-slider-thumb:active):
(input:disabled, textarea:disabled):
(input[readonly], textarea[readonly]):
(textarea::-webkit-input-placeholder):
(input[type="checkbox"]):
(input[type="radio"]):
(input[type="checkbox"]:checked, input[type="radio"]:checked):
(input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled):
(select:focus):
(select):

  • css/mathml.css: Added iOS-specific CSS styles.

(math, mfenced > *):
(mo, mfenced):

  • css/mediaControlsiOS.css: Added.
  • css/svg.css: Added iOS-specific CSS styles.

(text, tspan, tref):

1:45 PM Changeset in webkit [161285] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WebGL] glScissor test is not accounted for when generating internal rendering textures.
https://bugs.webkit.org/show_bug.cgi?id=126455
<rdar://problem/15744206>

Reviewed by Dean Jackson.

Covered by webgl/1.0.2/conformance/rendering/gl-scissor-test.html

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture): Check state of GL_SCISSOR_TEST and GL_DITHER, deactivate them during
our internal drawing, then turn them back on for further processing.

1:40 PM Changeset in webkit [161284] by Bem Jones-Bey
  • 3 edits in trunk/Tools

setup-git-clone fails to get email address from git
https://bugs.webkit.org/show_bug.cgi?id=126446

Reviewed by Ryosuke Niwa.

The setup-git-clone command fails to get an email address from git
because of a bug in VCSUtils. This patch fixes that bug, and also
makes it so that when VCSUtils fails for real because of a local
misconfiguration, the error message is actually presented to the user
of setup-git-clone.

  • Scripts/VCSUtils.pm:

(gitConfig): Call isGit() instead of accessing $isGit directly to make

sure that $isGit is properly initialized.

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

(SetupGitClone.execute): Pull out username and email acquistion to

it's own method.

(SetupGitClone._get_username_and_email): Catch the exception thrown

when VCSUtils fails and print out the error message so that the
user actually knows why the command failed.

1:28 PM Changeset in webkit [161283] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Maybe fix Windows build.

  • WebCore.vcxproj/copyForwardingHeaders.cmd:
1:25 PM Changeset in webkit [161282] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Attempt to fix EFL build.

  • CMakeLists.txt:
1:02 PM Changeset in webkit [161281] by ap@apple.com
  • 2 edits in trunk/Tools

It feels too hard to get rid of a popover at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126451

Reviewed by Simon Fraser.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Popover.css:

(.popover.fade-out): Reduced the timeout - 200 ms is enough to not have flicker
when moving the mouse from an element to its popover.

12:50 PM Changeset in webkit [161280] by jer.noble@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

[MediaControls][iOS] Enable JavaScript Media Controls on iOS.
https://bugs.webkit.org/show_bug.cgi?id=126440

Reviewed by Eric Carlson.

Drive-by misspelling fix, and add a convenience function to check if the
controls are currently hidden:

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleWrapperMouseOut):
(Controller.prototype.updatePlaying):
(Controller.prototype.controlsAreHidden): Added.

Add a new subclass of Controller for iOS and a matching CSS:

  • Modules/mediacontrols/mediaControlsiOS.css: Added.
  • Modules/mediacontrols/mediaControlsiOS.js: Added.

(createControls): Override the createControls() in mediaControlsApple.js.
(ControllerIOS): Define a new class.
(ControllerIOS.prototype.inheritFrom): Convenience method to mixin parent

prototype methods.

(ControllerIOS.prototype.createBase): Override, listen for touches instead of mouse events.
(ControllerIOS.prototype.createControls): Ditto.
(ControllerIOS.prototype.configureInlineControls): Override, only add play, timeline, and full

screen butttons.

(ControllerIOS.prototype.configureFullScreenControls): Override, and add no buttons.
(ControllerIOS.prototype.handlePlayButtonTouchStart): Activate.
(ControllerIOS.prototype.handlePlayButtonTouchEnd): De-activate and do action.
(ControllerIOS.prototype.handlePlayButtonTouchCancel): De-activate and cancel.
(ControllerIOS.prototype.handleWrapperTouchStart): Show controls.
(ControllerIOS.prototype.handlePanelTouchStart): Disable video selection.
(ControllerIOS.prototype.handlePanelTouchEnd): Re-enable video selection.
(ControllerIOS.prototype.handlePanelTouchCancel): Ditto.

Drive-by fix to enable the JavaScript controls when the plugin is disabled:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

Add the iOS JavaScript by appending it to the generic (Apple) JavaScript:

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript):

Add new files to project:

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
12:45 PM Changeset in webkit [161279] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Allow the ChromeClient to provide a custom ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=126450

Reviewed by Tim Horton.

Some platforms will want to provide a custom ScrollingCoordinator, so let
them do so by asking ChromeClient first for one.

  • page/ChromeClient.h:

(WebCore::ChromeClient::createScrollingCoordinator):

  • page/Page.cpp:

(WebCore::Page::scrollingCoordinator):

12:22 PM Changeset in webkit [161278] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Deploy more child renderer iterators in RenderBlockFlow.
<https://webkit.org/b/126434>

Reviewed by Sam Weinig.

  • rendering/RenderBlockFlow.cpp:

(WebCore::shouldCheckLines):

Make this helper take a RenderBlockFlow instead of a RenderObject
and simplified it a bit. RenderDeprecatedFlexibleBox does not
derive from RenderBlockFlow so those checks can be omitted.

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
(WebCore::RenderBlockFlow::lineAtIndex):
(WebCore::RenderBlockFlow::lineCount):
(WebCore::RenderBlockFlow::clearTruncation):

Use childrenOfType to iterate over block and block-flow children.
Tweaked some early return/continue to reduce nesting.

12:16 PM Changeset in webkit [161277] by ap@apple.com
  • 2 edits in trunk/Tools

Please add a way to quick peek at failing tests at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=122181

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentNoChangePopover): Update one more place for
popover.present signature change.

12:05 PM Changeset in webkit [161276] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Allow different types of ScrollingTrees to have different types of ScrollingTreeNode subclasses
https://bugs.webkit.org/show_bug.cgi?id=126445

Reviewed by Tim Horton.

Make it possible to have ScrollingTree subclasses with different subclasses of ScrollingTreeNodes,
by giving ScrollingTree a pure virtual createNode() function. ThreadedScrollingTree implements
this, and then delegates node creation to its AsyncScrollingCoordinator (since we have
a ScrollingCoordinatorMac but no real need for a ThreadedScrollingTreeMac).

Also made ThreadedScrollingTree's m_scrollingCoordinator an AsyncScrollingCoordinator,
since by definition a threaded scrolling tree uses an async coordinator.

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

(WebCore::ScrollingTree::updateTreeFromStateNode):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::createNode):

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

(WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::create):

11:52 AM Changeset in webkit [161275] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330

Unreviewed build fix.

  • platform/UserActivity.h:
    • case fix.
11:47 AM Changeset in webkit [161274] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

Revise WebGL DataView test to match ECMAScript Draft Specification
https://bugs.webkit.org/show_bug.cgi?id=126032

Based on the ECMAScript specification, we believe that the current test is wrong. We are working to get this
fixed upstream.

Reviewed by Dean Jackson.

  • webgl/1.0.2/resources/webgl_test_files/conformance/typedarrays/data-view-test.html: Do not

prohibit using DataView as a function.

11:32 AM Changeset in webkit [161273] by ap@apple.com
  • 12 edits
    1 add in trunk/Tools

Please add a way to quick peek at failing tests at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=122181

Reviewed by Timothy Hatcher and Timothy Horton.

Detailed results are saved by run-webkit-tests to full_results.json (which is actually
JSONP). Dashboard will load them on demand.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:

(Buildbot.prototype.layoutTestResultsURLForIteration): Moved from WebKitBuildbot.js
and made it use a function from WebKitBuildbot that builds results directory path.
(Buildbot.prototype.layoutTestFullResultsURLForIteration): Added a function that builds
a URL for full_results.json.
(Buildbot.prototype.layoutTestCrashLogForIteration): Added a function that builds
a URL for a crash log.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype.loadLayoutTestResults): Load and cache layout test results for
the iteration.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Updated for changed
popover API (see below).
(BuildbotQueueView.prototype._presentPopoverForRevisionRange): Ditto.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.update.appendBuilderQueueStatus): Added a check
for iterations that were interrupted (previously, they were displayed incorrectly,
often as passes). Install popover trackers for failure bubbles for which we can currently
display something useful.
(BuildbotTesterQueueView.prototype._popoverContentForLayoutTestRegressions): Build
a popover for layout test regressions when we have the data loaded on demand.
We have test paths, special indicators for crashes/timeouts, and links to test history
at flakiness dashboard.
(BuildbotTesterQueueView.prototype._presentPopoverForLayoutTestRegressions): Show
the popover for layout test regressions. Just shows "Loading..." until the data is
loaded.
(BuildbotTesterQueueView.prototype._presentPopoverForMultipleFailureKinds): List
types of failures if there are multiple. There is a lot of similarity with
appendBuilderQueueStatus(), but I couldn't find a good way to share the code.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:

Create a global test history object, which is used for links in layout test popover.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Popover.js:

Changed the API to be more like WebInspector again, allowing for changing content
of an existing popover. As the size of a popover can change, making the mouse pointer
enter it without a mousenter event, install a handler for mousewheel instead, and block
document scrolling from this event handler when needed.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/StatusLineView.js:

(StatusLineView.prototype.get statusBubbleElement): Added an accessor for status
bubble element, making it possible to install a popover on it.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:

(JSON.load): Added the ability to load JSONP by providing an optional callback name.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot.prototype.layoutTestResultsDirectoryURLForIteration): Switched from
building a complete results URL to only building one for root results path. This is
the part that depends on specific buildbot installation, everything relative to it
is the same.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitTestHistory.js: Added.

Build a path to test history page. In the future, we may consider adding code to
load the data and display it inline.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:

Added styles for this new popover.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html: Added

a new file, WebKitTestHistory.js.

11:13 AM Changeset in webkit [161272] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebKit2

Define WebProcess::usesNetworkProcess unconditionally
https://bugs.webkit.org/show_bug.cgi?id=126208

Reviewed by Martin Robinson.

Returning false when network process is not enabled like
WebContext does. This way we reduce the amount of ifdefs used when
checking whether network process is in use.

  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformInitializeWebProcess): Remove #ifdef
and only setup network features when not using network process.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::isAvailable): Remove #ifdef.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::downloadManager):
(WebKit::WebProcess::shouldTerminate):
(WebKit::WebProcess::usesNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/mac/WebProcessMac.mm:

(WebKit::WebProcess::platformSetCacheModel): Remove #ifdef.
(WebKit::WebProcess::platformInitializeWebProcess): Ditto.

  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformSetCacheModel): Ditto.
(WebKit::WebProcess::platformClearResourceCaches): Ditto.
(WebKit::WebProcess::platformInitializeWebProcess): Ditto.
(WebKit::WebProcess::platformTerminate): Only remove the language
observer when not using network process.
(WebKit::WebProcess::setIgnoreTLSErrors): Assert when this is
called with network process enabled.
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): Ditto.

11:06 AM Changeset in webkit [161271] by barraclough@apple.com
  • 11 edits
    3 adds in trunk/Source

Source/WebCore: Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330

Reviewed by Sam Weinig.

UserActivity is a mechanism to express to the operating system (where appropriate)
that a user initiated activity is taking place, and as such that resources should be
made available to the process accordingly.

Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us
to hold different activity tokens for different user actions (which simplifies the
handling, and aides debugging since the token can more accurately express the activity
taking place), and also will allow us to avoid the layering difficulty of calling back
up the stack to WebKit to register that an activity is taking place.

  • WebCore.xcodeproj/project.pbxproj:
    • added new files.
  • platform/UserActivity.cpp: Added.

(WebCore::UserActivity::UserActivity):

  • nop implementation - ignore description.

(WebCore::UserActivity::beginActivity):
(WebCore::UserActivity::endActivity):

  • nop implementation - just inc/dec m_count.
  • platform/UserActivity.h: Added.

(WebCore::UserActivity::isActive):

  • returns true if one or more instance of this activity is in progress.
  • platform/mac/UserActivityMac.mm: Added.

(WebCore::UserActivity::UserActivity):

  • constructor accepts one argument, a description string.

(WebCore::UserActivity::isValid):

  • used by assertions.

(WebCore::UserActivity::beginActivity):
(WebCore::UserActivity::endActivity):

  • track start/end of an activity - calls to these methods should be balanced.

(WebCore::UserActivity::hysteresisTimerFired):

  • used to implement hysteresis in releasing NSActivity.

Source/WebKit2: VibrationPattern should allocate an single vector instance for single integer input
https://bugs.webkit.org/show_bug.cgi?id=126417

Patch by Jinwoo Song <jinwoo7.song@samsung.com> on 2014-01-03
Reviewed by Gyuyoung Kim.

Fix a vibration unit test regression after r161139. Also remove unnecessary test cases.

  • UIProcess/API/efl/tests/test_ewk2_view.cpp:

(EWK2ViewTest::loadVibrationHTMLString):
(TEST_F):

Source/WTF: Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330

Reviewed by Sam Weinig.

UserActivity is a mechanism to express to the operating system (where appropriate)
that a user initiated activity is taking place, and as such that resources should be
made available to the process accordingly.

Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us
to hold different activity tokens for different user actions (which simplifies the
handling, and aides debugging since the token can more accurately express the activity
taking place), and also will allow us to avoid the layering difficulty of calling back
up the stack to WebKit to register that an activity is taking place.

  • wtf/Platform.h:
    • added HAVE_NS_ACTIVITY.
11:05 AM Changeset in webkit [161270] by fpizlo@apple.com
  • 4 edits in branches/jsCStack/Source/JavaScriptCore

Unreviewed, some trivial 32-bit build fixes.

32-bit is still broken but this takes care of some easy things. This is part of
the work for https://bugs.webkit.org/show_bug.cgi?id=116888.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::storePtr):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • jit/RegisterPreservationWrapperGenerator.cpp:

(JSC::generateRegisterRestoration):

10:59 AM Changeset in webkit [161269] by ap@apple.com
  • 3 edits
    2 adds in trunk

Line ending conversion should be able to handle strings with null chars
https://bugs.webkit.org/show_bug.cgi?id=126202

This is a merge from Blink.

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: http/tests/local/formdata/send-form-data-with-string-containing-null.html

  • platform/text/LineEnding.cpp: (WebCore::normalizeToCROrLF): Do it right.

LayoutTests:

  • http/tests/local/formdata/send-form-data-with-string-containing-null-expected.txt: Added.
  • http/tests/local/formdata/send-form-data-with-string-containing-null.html: Added.
10:49 AM Changeset in webkit [161268] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

REGRESSION(r161214): [GTK] WebKit2 C API tests fail to run after r161214
https://bugs.webkit.org/show_bug.cgi?id=126430

Reviewed by Martin Robinson.

  • Scripts/run-gtk-tests:

(TestRunner._setup_testing_environment):

  • gtk/common.py: Use common.tests_library_build_path() instead.

(tests_library_build_path): Helper funtion that returns the path
where the tests libraries are built.

10:41 AM Changeset in webkit [161267] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

WebKit-GTK 1.8.1 does not build on OS X 10.7
https://bugs.webkit.org/show_bug.cgi?id=88407

Reviewed by Carlos Garcia Campos.

Replace non-portable 'echo -n' with 'true'.

  • GNUmakefile.am:
9:37 AM Changeset in webkit [161266] by alex.christensen@flexsim.com
  • 2 edits in trunk/WebKitLibraries

[WinCairo] Enable video using GStreamer.
https://bugs.webkit.org/show_bug.cgi?id=126015

Reviewed by Darin Adler.

  • win/tools/vsprops/FeatureDefinesCairo.props:

Define ENABLE_MEDIA_CONTROLS_SCRIPT, ENABLE_VIDEO_TRACK, and ENABLE_VIDEO.

9:35 AM Changeset in webkit [161265] by alex.christensen@flexsim.com
  • 2 edits in trunk/Websites/webkit.org

Added GStreamer to list of required tools for compiling webkit.
https://bugs.webkit.org/show_bug.cgi?id=126319

Reviewed by Philippe Normand.

  • building/tools.html:

Mentioned that QuickTime and QuickTime SDK are only required for AppleWin.
Added GStreamer installers to list of required tools for WinCairo.

9:21 AM Changeset in webkit [161264] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=126428

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-01-03
Reviewed by Brent Fulgham.

The NativeImagePtr type is not an CGImageRef on WinCairo, cannot use CFRetain.

  • loader/cache/MemoryCache.cpp: Replace USE(CF) with USE(CG).
  • loader/cache/MemoryCache.h: Ditto.
9:03 AM Changeset in webkit [161263] by Martin Robinson
  • 2 edits in trunk

[CMake] The forwarding headers generated by WebKitMacros.m4 are incompatible with the headers generated by generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=126361

Reviewed by Philippe Normand.

Make the forwarding headers generated by WebKitMacros.m4 compatible with the headers
generated by the WebKit2 forwarding headers generation script.

  • Source/cmake/WebKitMacros.cmake: Try to convert absolute paths in the forwarding headers

to ones that are relative to the Source directory.

9:02 AM Changeset in webkit [161262] by Martin Robinson
  • 2 edits in trunk/Tools

[CMake] Build TestWebKitAPI tests into a directory structure
https://bugs.webkit.org/show_bug.cgi?id=126358

Reviewed by Gyuyoung Kim.

WebKitGTK+ builds the TestWebKitAPI tests into a "TestWebKitAPI" directory. This
is useful for keeping the "bin" directory tidy during building and will make it easier
to integrate the CMake build into the existing WebKitGTK+ scripts.

  • TestWebKitAPI/CMakeLists.txt: Set the output directory of all TestWebKitAPI binaries

and make the names simpler now that the directory identifies what category the test is in.

9:00 AM Changeset in webkit [161261] by ap@apple.com
  • 4 edits in trunk/Tools

Provide a visual clue when element has a popover at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126281

Reviewed by Timothy Hatcher.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/PopoverTracker.js:

(PopoverTracker): Add a class name to elements with popovers.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(*): We have -webkit-user-select:none, so let's also not show text selection cursor.
I might have broke that recently.
(*:link): Show hand cursor over links.
(.popover-tracking:hover): Put a shadow on hover over element with popovers.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:

(.status-line .message .revision-number): Show text selection cursor on our only
selectable text element.
(.status-line .bubble.popover-tracking:hover): Text in a bubble looks better with
a white shadow than with a dark one on hover.

8:57 AM Changeset in webkit [161260] by hmuller@adobe.com
  • 9 edits in trunk/Source/WebCore

[CSS Shapes] Simplify FloatRoundedRect, BoxShape construction
https://bugs.webkit.org/show_bug.cgi?id=125995

Reviewed by Andreas Kling.

Cleanup of various internal Shape issues:

  • Removed unnecessary Shape() initialization list entries in Shape subclasses per https://bugs.webkit.org/show_bug.cgi?id=125548#c2.
  • Used const references instead of pointers for non-deprecated Shape:createShape() logic.
  • Replaced createShape() overloads for Rasters and Boxes with functions named createRasterShape() and createBoxShape().
  • Added a FloatRoundedRect::Radii() constructor to reduce the parameter list length of the FloatRoundedRect constructor in createBoxShape().

There are no new tests, this is just internal refactoring.

  • platform/graphics/FloatRoundedRect.h:

(WebCore::FloatRoundedRect::Radii::Radii):

  • rendering/shapes/BoxShape.h:

(WebCore::BoxShape::BoxShape):

  • rendering/shapes/PolygonShape.h:

(WebCore::PolygonShape::PolygonShape):

  • rendering/shapes/RasterShape.h:

(WebCore::RasterShape::RasterShape):

  • rendering/shapes/RectangleShape.h:

(WebCore::RectangleShape::RectangleShape):

  • rendering/shapes/Shape.cpp:

(WebCore::createInsetShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):

  • rendering/shapes/Shape.h:
  • rendering/shapes/ShapeInfo.cpp:

(WebCore::ShapeInfo<RenderType>::computedShape):

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

Remove unused Document::openSearchDescriptionURL().
<https://webkit.org/b/126419>

Reviewed by Antti Koivisto.

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

Scrub leftovers from the defunct Chromium port.

1:06 AM Changeset in webkit [161258] by zandobersek@gmail.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Add failure and flakiness expectations for a couple of tests.
  • platform/gtk/svg/custom/object-no-size-attributes-expected.txt: Rebaseline.
12:45 AM Changeset in webkit [161257] by jinwoo7.song@samsung.com
  • 4 edits in trunk/Source

VibrationPattern should allocate an single vector instance for single integer input
https://bugs.webkit.org/show_bug.cgi?id=126417

Reviewed by Gyuyoung Kim.

Source/WebCore:

When the Vibration pattern is set with a single integer, the VibrationPattern should
be set with this integer as a vibration time. But the VibrationPattern(unsigned vector) was
initialized with a single parameter, the vibration time, so the time was used to set
the size of vector.

  • Modules/vibration/NavigatorVibration.cpp:

(WebCore::NavigatorVibration::vibrate):

Source/WebKit2:

Fix a vibration unit test regression after r161139. Also remove unnecessary test cases.

  • UIProcess/API/efl/tests/test_ewk2_view.cpp:

(EWK2ViewTest::loadVibrationHTMLString):
(TEST_F):

12:42 AM Changeset in webkit [161256] by Carlos Garcia Campos
  • 10 edits in trunk

[GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
https://bugs.webkit.org/show_bug.cgi?id=124652

Reviewed by Martin Robinson.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitPolicyClient.cpp:

(decidePolicyForResponse): Pass canShowMIMEType to
webkitResponsePolicyDecisionCreate.

  • UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:

(webkit_response_policy_decision_is_mime_type_supported): Return
canShowMIMEType.
(webkitResponsePolicyDecisionCreate): Set the canShowMIMEType
member from the given parameter.

  • UIProcess/API/gtk/WebKitResponsePolicyDecision.h:
  • UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewDecidePolicy): Use the new API instead of
webkit_web_view_can_show_mime_type() since it's more efficient.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
  • UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:

(testResponsePolicy): Test the new API.

Tools:

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewDecidePolicy): Use the new API instead of
webkit_web_view_can_show_mime_type().

Jan 2, 2014:

11:56 PM Changeset in webkit [161255] by Carlos Garcia Campos
  • 15 edits in trunk

REGRESSION(r160304): [GTK] Disable libtool fast install
https://bugs.webkit.org/show_bug.cgi?id=126381

Reviewed by Martin Robinson.

.:

After r160304 we are building some of our binaries that are
installed with the -no-fast-install ld flag. This makes that the
binaries are installed with the source code path hardcoded in
binary RPATH. Disabling fast install globally, the libtool script
always relinks the binaries right before being installed.

  • Source/autotools/SetupLibtool.m4: Add AC_DISABLE_FAST_INSTALL.

Source/JavaScriptCore:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

  • GNUmakefile.am:

Source/WebKit/gtk:

  • tests/GNUmakefile.am:

Source/WebKit2:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

  • GNUmakefile.am:
  • UIProcess/API/gtk/tests/GNUmakefile.am:

Tools:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

  • GNUmakefile.am:
  • GtkLauncher/GNUmakefile.am:
  • MiniBrowser/gtk/GNUmakefile.am:
  • TestWebKitAPI/GNUmakefile.am:
  • WebKitTestRunner/GNUmakefile.am:
11:48 PM Changeset in webkit [161254] by ryuan.choi@samsung.com
  • 3 edits in trunk/Source/WebKit2

[EFL][WK2] Remove defaultPageGroupIdentifier not to make the confusion
https://bugs.webkit.org/show_bug.cgi?id=126249

Reviewed by Gyuyoung Kim.

ewk_page_group_create always creates new page group,
but the identifiers of page groups will be same as "defaultPageGroupIdentifier" when passed 0 or "".
It is unnecessary and just makes the confusion.

This patch let WebPageGroup generate unique identifier if 0 or "" is passed as argument.

  • UIProcess/API/efl/ewk_page_group.cpp:

(EwkPageGroup::create):

  • UIProcess/API/efl/ewk_page_group_private.h:
11:40 PM Changeset in webkit [161253] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[GTK] Switch from WTF::Function to std::function in WebProcessTest
https://bugs.webkit.org/show_bug.cgi?id=126397

Reviewed by Anders Carlsson.

Use std::function<> and std::bind() instead of WTF::Function and WTF::bind,
following the effort of using STL concepts where possible.

  • UIProcess/API/gtk/tests/WebProcessTest.cpp:

(WebProcessTest::add):

  • UIProcess/API/gtk/tests/WebProcessTest.h:
9:21 PM Changeset in webkit [161252] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebCore

IconController.cpp needs to include <wtf/text/CString.h>
https://bugs.webkit.org/show_bug.cgi?id=126415

Reviewed by Gyuyoung Kim.

Build fails in IconController.cpp when ICONDATABASE is disabled.
WebKit/Source/WebCore/loader/icon/IconController.cpp:124:110: error: invalid use of incomplete type ‘class WTF::CString’
IconController.cpp needs #include <wtf/text/CString.h>.

No new tests. Just build fix.

  • loader/icon/IconController.cpp: Add #include statement.
8:40 PM Changeset in webkit [161251] by ryuan.choi@samsung.com
  • 3 edits in trunk/Source/WebCore

[EFL] Previous scrollbar is remained sometimes
https://bugs.webkit.org/show_bug.cgi?id=126414

Reviewed by Gyuyoung Kim.

  • platform/efl/ScrollbarEfl.cpp:

(ScrollbarEfl::invalidate):
Updated scrollbar visibility in Scrollbar::invalidate().

  • platform/efl/ScrollbarEfl.h:

Removed show()/hide() which never been called() for scrollbar.

7:50 PM Changeset in webkit [161250] by ryuan.choi@samsung.com
  • 2 edits in trunk/Tools

Unreviewed. Add myself to EFL and related watch lists.

  • Scripts/webkitpy/common/config/watchlist:
6:52 PM Changeset in webkit [161249] by ljaehun.lim@samsung.com
  • 2 edits in trunk

[CMake][EFL] Fix some typos in OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=126376

Reviewed by Gyuyoung Kim.

  • Source/cmake/WebKitFeatures.cmake: Correct a wrong word and remove comma(,).
6:16 PM Changeset in webkit [161248] by jinwoo7.song@samsung.com
  • 4 edits in trunk/LayoutTests

[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Patch by Brent Fulgham <Brent Fulgham> on 2014-01-02
Reviewed by Dean Jackson.

  • webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html: Add test for accessing the

single-element array.

6:11 PM Changeset in webkit [161247] by Brent Fulgham
  • 4 edits in trunk

[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Reviewed by Dean Jackson.

Source/WebCore:

Tested by revisions to webgl/1.0.2/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getUniformLocation): Revise to
handle access to zeroeth element of the array.

LayoutTests:

  • webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html: Add test for accessing the

single-element array.

6:09 PM Changeset in webkit [161246] by barraclough@apple.com
  • 13 edits
    2 adds in trunk/Source/WebKit2

Propagate WindowServer modifications state to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=126356

Reviewed by Sam Weinig.

This will be necessary to move control of process suppression to the WebProcess.
IsVisuallyIdle implies the process has stopped painting, or painted rects are
occluded and not actually being composited. State is provided on a per
WindowServer connection basis, and as such may produce (safe) false positives.

  • Shared/ViewState.h:
    • added IsVisuallyIdle.
  • UIProcess/API/mac/PageClientImpl.h:
  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::isVisuallyIdle):

  • added, on mac checks WindowServerConnection.
  • UIProcess/PageClient.h:

(WebKit::PageClient::isVisuallyIdle):

  • base implementation purely based on isViewVisible.
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::windowServerConnectionStateChanged):

  • broadcast the state change.
  • UIProcess/WebContext.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateViewState):
(WebKit::WebPageProxy::viewStateDidChange):

  • propagate IsVisuallyIdle.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::windowServerConnectionStateChanged):

  • broadcast the state change.
  • UIProcess/WebProcessProxy.h:
    • add windowServerConnectionStateChanged.
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::updateProcessSuppressionStateOfGlobalChildProcesses):

  • moved from static in fle to static member of class.

(WebKit::WebContext::platformInitialize):

  • no need to enableOcclusionNotifications.

(WebKit::WebContext::canEnableProcessSuppressionForNetworkProcess):
(WebKit::WebContext::canEnableProcessSuppressionForWebProcess):
(WebKit::WebContext::canEnableProcessSuppressionForGlobalChildProcesses):

  • changed to call WindowServerConnection.

(WebKit::WebContext::processSuppressionEnabledChanged):

  • don't remove/reregister occlusion notifications.
  • UIProcess/mac/WindowServerConnection.h: Added.

(WebKit::WindowServerConnection::applicationIsOccluded):
(WebKit::WindowServerConnection::applicationWindowModificationsHaveStopped):

  • accessors.
  • UIProcess/mac/WindowServerConnection.mm: Added.

(WebKit::WindowServerConnection::applicationBecameOccluded):
(WebKit::WindowServerConnection::applicationWindowModificationsStopped):
(WebKit::WindowServerConnection::applicationBecameVisible):
(WebKit::WindowServerConnection::applicationWindowModificationsStarted):

  • handle notifications from the WindowServer.

(WebKit::WindowServerConnection::windowServerConnectionStateChanged):

  • broadcast the state change.

(WebKit::WindowServerConnection::shared):

  • accessor for singleton object.

(WebKit::WindowServerConnection::WindowServerConnection):

  • constructor inizializes fields & register notification handlers.
  • WebKit2.xcodeproj/project.pbxproj:
    • added new files.
  • config.h:
    • added HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS.
6:00 PM Changeset in webkit [161245] by jinwoo7.song@samsung.com
  • 3 edits in trunk/LayoutTests

Unreviewed EFL gardening. Rebaselining after r161140.

  • platform/efl/fast/table/dynamic-caption-add-before-child-expected.png:
  • platform/efl/fast/table/dynamic-caption-add-before-child-expected.txt:
5:32 PM Changeset in webkit [161244] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Crash in WebCore::translateIntersectionPointsToSkipInkBoundaries
https://bugs.webkit.org/show_bug.cgi?id=126252

Reviewed by Alexey Proskuryakov.

Source/WebCore:

lastIntermediate was a iterator pointing into a Vector, which was being re-used
even while appending to the Vector. If any of the append operators triggered
a realloc, the iterator would point to the old free'ed memory.

Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html

  • rendering/InlineTextBox.cpp:

(WebCore::translateIntersectionPointsToSkipInkBoundaries):

LayoutTests:

This test causes intermediateTuples, a Vector of tuples of floats, to have enough
entries to cause a realloc. In my tests, the realloc seems to always allocate the
next area of memory (without unmapping any old pages), so this test only crashes
if guardMalloc is used.

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps-expected.txt: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html: Added.
5:19 PM Changeset in webkit [161243] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] fixing ycm_extra_conf.py file
https://bugs.webkit.org/show_bug.cgi?id=126371

It's an attempt to fix three problems with the current ycm_extra_conf file.
The current implementation assumes that it's a symlink, which is not true.
Usually python creates a pyc file, and this is what you get in file.
the .pyc is not a symlink, and the current implementation doesn't work
if that's the case.

It also assumes that the user is in the root folder.
If the user is in WebkitBuild/Debug and open a file as ../../Source/* it won't work.

Last but not least, "elif flag in FLAGS_PRECEDING_PATHS" emits an
exception since "flag" doesn't exists.

All those things were fixed.

Patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2014-01-02
Reviewed by Martin Robinson.

  • gtk/ycm_extra_conf.py:

(transform_relative_paths_to_absolute_paths):

5:18 PM Changeset in webkit [161242] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Reviewed by Dean Jackson.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getUniformLocation): Revise code to handle the case of single-element
arrays.

4:40 PM Changeset in webkit [161241] by weinig@apple.com
  • 79 edits
    32 adds
    22 deletes in trunk

Update Promises to the https://github.com/domenic/promises-unwrapping spec
https://bugs.webkit.org/show_bug.cgi?id=120954

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Update Promises to the revised spec. Notable changes:

  • JSPromiseResolver is gone.
  • TaskContext has been renamed Microtask and now has a virtual run() function.
  • Instead of using custom InternalFunction subclasses, JSFunctions are used with PrivateName properties for internal slots.
  • CMakeLists.txt:
  • DerivedSources.make:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • interpreter/CallFrame.h:

(JSC::ExecState::promiseConstructorTable):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::queueMicrotask):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::promisePrototype):
(JSC::JSGlobalObject::promiseStructure):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::create):
(JSC::JSPromise::JSPromise):
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::visitChildren):
(JSC::JSPromise::reject):
(JSC::JSPromise::resolve):
(JSC::JSPromise::appendResolveReaction):
(JSC::JSPromise::appendRejectReaction):
(JSC::triggerPromiseReactions):

  • runtime/JSPromise.h:

(JSC::JSPromise::status):
(JSC::JSPromise::result):
(JSC::JSPromise::constructor):

  • runtime/JSPromiseCallback.cpp: Removed.
  • runtime/JSPromiseCallback.h: Removed.
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):
(JSC::JSPromiseConstructor::getCallData):
(JSC::JSPromiseConstructorFuncCast):
(JSC::JSPromiseConstructorFuncResolve):
(JSC::JSPromiseConstructorFuncReject):

  • runtime/JSPromiseConstructor.h:
  • runtime/JSPromiseDeferred.cpp: Added.

(JSC::JSPromiseDeferred::create):
(JSC::JSPromiseDeferred::JSPromiseDeferred):
(JSC::JSPromiseDeferred::finishCreation):
(JSC::JSPromiseDeferred::visitChildren):
(JSC::createJSPromiseDeferredFromConstructor):
(JSC::updateDeferredFromPotentialThenable):

  • runtime/JSPromiseDeferred.h: Added.

(JSC::JSPromiseDeferred::createStructure):
(JSC::JSPromiseDeferred::promise):
(JSC::JSPromiseDeferred::resolve):
(JSC::JSPromiseDeferred::reject):

  • runtime/JSPromiseFunctions.cpp: Added.

(JSC::deferredConstructionFunction):
(JSC::createDeferredConstructionFunction):
(JSC::identifyFunction):
(JSC::createIdentifyFunction):
(JSC::promiseAllCountdownFunction):
(JSC::createPromiseAllCountdownFunction):
(JSC::promiseResolutionHandlerFunction):
(JSC::createPromiseResolutionHandlerFunction):
(JSC::rejectPromiseFunction):
(JSC::createRejectPromiseFunction):
(JSC::resolvePromiseFunction):
(JSC::createResolvePromiseFunction):
(JSC::throwerFunction):
(JSC::createThrowerFunction):

  • runtime/JSPromiseFunctions.h: Added.
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototypeFuncThen):
(JSC::JSPromisePrototypeFuncCatch):

  • runtime/JSPromiseReaction.cpp: Added.

(JSC::createExecutePromiseReactionMicroTask):
(JSC::ExecutePromiseReactionMicroTask::run):
(JSC::JSPromiseReaction::create):
(JSC::JSPromiseReaction::JSPromiseReaction):
(JSC::JSPromiseReaction::finishCreation):
(JSC::JSPromiseReaction::visitChildren):

  • runtime/JSPromiseReaction.h: Added.

(JSC::JSPromiseReaction::createStructure):
(JSC::JSPromiseReaction::deferred):
(JSC::JSPromiseReaction::handler):

  • runtime/JSPromiseResolver.cpp: Removed.
  • runtime/JSPromiseResolver.h: Removed.
  • runtime/JSPromiseResolverConstructor.cpp: Removed.
  • runtime/JSPromiseResolverConstructor.h: Removed.
  • runtime/JSPromiseResolverPrototype.cpp: Removed.
  • runtime/JSPromiseResolverPrototype.h: Removed.
  • runtime/Microtask.h: Added.
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:

Source/WebCore:

  • ForwardingHeaders/runtime/JSPromiseDeferred.h: Added.
  • ForwardingHeaders/runtime/JSPromiseResolver.h: Removed.
  • bindings/js/JSDOMGlobalObjectTask.cpp:

(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):

  • bindings/js/JSDOMGlobalObjectTask.h:
  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredWrapper::DeferredWrapper):
(WebCore::DeferredWrapper::promise):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):

  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueTaskToEventLoop):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
(WebCore::JSSubtleCrypto::generateKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):

  • bindings/js/JSWorkerGlobalScopeBase.h:

LayoutTests:

  • crypto/subtle/argument-conversion.html:
  • crypto/subtle/resources/common.js:
  • crypto/subtle/sha-1.html:
  • crypto/subtle/sha-224.html:
  • crypto/subtle/sha-256.html:
  • crypto/subtle/sha-384.html:
  • crypto/subtle/sha-512.html:
  • js/dom/Promise-already-fulfilled-expected.txt: Removed.
  • js/dom/Promise-already-fulfilled.html: Removed.
  • js/dom/Promise-already-rejected.html:
  • js/dom/Promise-already-resolved.html:
  • js/dom/Promise-catch-expected.txt:
  • js/dom/Promise-catch-in-workers-expected.txt:
  • js/dom/Promise-catch.html:
  • js/dom/Promise-chain.html:
  • js/dom/Promise-exception-expected.txt:
  • js/dom/Promise-exception.html:
  • js/dom/Promise-expected.txt:
  • js/dom/Promise-fulfill-expected.txt: Removed.
  • js/dom/Promise-fulfill-in-workers-expected.txt: Removed.
  • js/dom/Promise-fulfill-in-workers.html: Removed.
  • js/dom/Promise-fulfill.html: Removed.
  • js/dom/Promise-init-callback-receiver-expected.txt: Added.
  • js/dom/Promise-init-callback-receiver.html: Added.
  • js/dom/Promise-init-expected.txt:
  • js/dom/Promise-init-in-workers-expected.txt:
  • js/dom/Promise-init.html:
  • js/dom/Promise-onFulfilled-deep-expected.txt: Added.
  • js/dom/Promise-onFulfilled-deep.html: Added.
  • js/dom/Promise-onRejected-deep-expected.txt: Added.
  • js/dom/Promise-onRejected-deep.html: Added.
  • js/dom/Promise-reject.html:
  • js/dom/Promise-resolve-chain.html:
  • js/dom/Promise-resolve-expected.txt:
  • js/dom/Promise-resolve-in-workers-expected.txt:
  • js/dom/Promise-resolve-state-expected.txt: Added.
  • js/dom/Promise-resolve-state-in-workers-expected.txt: Added.
  • js/dom/Promise-resolve-state-in-workers.html: Added.
  • js/dom/Promise-resolve-state.html: Added.
  • js/dom/Promise-resolve-with-itself-expected.txt: Added.
  • js/dom/Promise-resolve-with-itself.html: Added.
  • js/dom/Promise-resolve-with-then-exception.html:
  • js/dom/Promise-resolve-with-then-fulfill-expected.txt:
  • js/dom/Promise-resolve-with-then-fulfill.html:
  • js/dom/Promise-resolve-with-then-reject-expected.txt:
  • js/dom/Promise-resolve-with-then-reject.html:
  • js/dom/Promise-resolve.html:
  • js/dom/Promise-simple-expected.txt:
  • js/dom/Promise-simple-fulfill-expected.txt: Removed.
  • js/dom/Promise-simple-fulfill-inside-callback-expected.txt: Removed.
  • js/dom/Promise-simple-fulfill-inside-callback.html: Removed.
  • js/dom/Promise-simple-fulfill.html: Removed.
  • js/dom/Promise-simple-in-workers-expected.txt:
  • js/dom/Promise-simple-resolve-expected.txt: Added.
  • js/dom/Promise-simple-resolve.html: Added.
  • js/dom/Promise-simple.html:
  • js/dom/Promise-static-all-expected.txt: Added.
  • js/dom/Promise-static-all.html: Added.
  • js/dom/Promise-static-cast-expected.txt: Added.
  • js/dom/Promise-static-cast.html: Added.
  • js/dom/Promise-static-fulfill-expected.txt: Removed.
  • js/dom/Promise-static-fulfill.html: Removed.
  • js/dom/Promise-static-race-expected.txt: Added.
  • js/dom/Promise-static-race.html: Added.
  • js/dom/Promise-static-resolve.html:
  • js/dom/Promise-then-callback-receiver-expected.txt: Added.
  • js/dom/Promise-then-callback-receiver.html: Added.
  • js/dom/Promise-then-expected.txt:
  • js/dom/Promise-then-in-workers-expected.txt:
  • js/dom/Promise-then-without-callbacks.html:
  • js/dom/Promise-then.html:
  • js/dom/Promise-types-expected.txt:
  • js/dom/Promise-types.html:
  • js/dom/Promise.html:
  • js/resources/Promise-catch-in-workers.js:
  • js/resources/Promise-fulfill-in-workers.js: Removed.
  • js/resources/Promise-init-in-workers.js:
  • js/resources/Promise-reject-in-workers.js:
  • js/resources/Promise-resolve-in-workers.js:
  • js/resources/Promise-resolve-state-in-workers.js: Added.
  • js/resources/Promise-simple-in-workers.js:
  • js/resources/Promise-then-in-workers.js:
  • js/resources/Promise-then-without-callbacks-in-workers.js:
4:24 PM Changeset in webkit [161240] by mhahnenberg@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Add support for StoreBarrier and friends to the FTL
https://bugs.webkit.org/show_bug.cgi?id=126040

Reviewed by Filip Pizlo.

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrier):
(JSC::FTL::LowerDFGToLLVM::compileConditionalStoreBarrier):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrierWithNullCheck):
(JSC::FTL::LowerDFGToLLVM::loadMarkByte):
(JSC::FTL::LowerDFGToLLVM::emitStoreBarrier):

  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/Heap.h:

(JSC::Heap::writeBarrierBuffer):

4:10 PM Changeset in webkit [161239] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

ImageBufferBackingStoreCache should use DeferrableOneShotTimer
https://bugs.webkit.org/show_bug.cgi?id=126155

Reviewed by Anders Carlsson.

Since ImageBufferBackingStoreCache's purge timer is pushed out every time
a backing store is deallocated, we can easily waste a lot of time rescheduling
the timer. Since it's a cache purge timer and doesn't need that kind of precision,
adopt DeferrableOneShotTimer, which is much more performant when deferred frequently.

  • platform/graphics/cg/ImageBufferBackingStoreCache.cpp:

(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::timerFired):
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):

  • platform/graphics/cg/ImageBufferBackingStoreCache.h:
3:58 PM Changeset in webkit [161238] by mark.lam@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

Addressed review comments in https://bugs.webkit.org/show_bug.cgi?id=126393#c5.
Reviewed by Michael Saboff.

  • offlineasm/cloop.rb:
3:50 PM Changeset in webkit [161237] by fpizlo@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

Address review comments in https://bugs.webkit.org/show_bug.cgi?id=126409#c3

  • llint/LowLevelInterpreter32_64.asm:
3:35 PM Changeset in webkit [161236] by ap@apple.com
  • 2 edits in trunk/Tools

Bindings tests results links are broken at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126402

Reviewed by Tim Horton.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:

(Buildbot.prototype.bindingsTestResultsURLForIteration): Fixed a typo that was there
since the beginning.

3:32 PM Changeset in webkit [161235] by mmaxfield@apple.com
  • 4 edits
    5 adds in trunk

Allow ImageBuffer to re-use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=125477

Source/WebCore:

Reviewed by Geoff Garen. Modifications reviewed by Tim Horton.

This patch is taken from r160945, but the modifications to ImageBufferCG.cpp
have been reverted.

This test adds a static class, ImageBufferBackingStoreCache, that vends
IOSurfaces. It remembers IOSurfaces that have been returned to it until
a configurable timeout.

The storage used by this class is in the form of a HashMap from a
bucketed size to the IOSurface. There are many other data structures
that could be used, but this implementation gives a 80% hit rate on
normal browsing of some example sites with Canvas and
text-decoration-skip: ink. Because the buckets are fairly
small (rounding the width and height up to multiples of 8), traversing the
bucket contents takes on average 2 steps.

Test: fast/canvas/canvas-backing-store-reuse.html

  • WebCore.xcodeproj/project.pbxproj: Added new caching class
  • platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.

(WebCore::createIOSurface): Copied from ImageBufferCG.cpp
(WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
contents
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
(WebCore::ImageBufferBackingStoreCache::get): Static getter
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
creation function
(WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
deletion function
(WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
IOSurface fit the bill?
(WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
a bucket and walk through its contents
(WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
for clients who want a IOSurface from the cache
(WebCore::ImageBufferBackingStoreCache::deallocate): Public
function for clients to return an IOSurface to the pool

  • platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.

(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):

PerformanceTests:

Reviewed by Geoff Garen.

This test times creating a variety of different sizes of canvases
once some have already been created. The second creation of the
canvases should re-use the existing IOSurfaces.

  • Canvas/reuse.html: Added.

LayoutTests:

Reviewed by Geoff Garen.

Now that we're re-using the backing store of canvases, this
test makes sure that if we draw to a canvas, then destroy it,
then create a new canvas (which should share the same backing
store) that it doesn't have the stale data in it

  • fast/canvas/canvas-backing-store-reuse-expected.txt: Added.
  • fast/canvas/canvas-backing-store-reuse.html: Added.
3:28 PM Changeset in webkit [161234] by fpizlo@apple.com
  • 3 edits in branches/jsCStack/Source/JavaScriptCore

CStack LLInt 32-bit should build
https://bugs.webkit.org/show_bug.cgi?id=126409

Not yet reviewed.

And the stuff we do to make it build should at least try to be correct.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
3:24 PM Changeset in webkit [161233] by ap@apple.com
  • 2 edits in trunk/Tools

"+" is very confusing at http://build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126400

Reviewed by Tim Horton.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Instead of listing open
source and internal counts separately, simply add them. One can always open a popover
for more detail.

3:20 PM Changeset in webkit [161232] by mark.lam@apple.com
  • 1 edit in branches/jsCStack/Source/JavaScriptCore/ChangeLog

Added a missing word in a change comment, and updated review status for:

https://bugs.webkit.org/show_bug.cgi?id=126321
https://bugs.webkit.org/show_bug.cgi?id=126328
https://bugs.webkit.org/show_bug.cgi?id=126334
https://bugs.webkit.org/show_bug.cgi?id=126405

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

Video-seek-with-negative-playback was flaky.
https://bugs.webkit.org/show_bug.cgi?id=126379

Patch by Piotr Grad <p.grad@samsung.com> on 2014-01-02
Reviewed by Eric Carlson.

No new tests. Covered by existing tests.

m_player->setRate() should be called before updating m_playbackRate, because potentiallyPlaying() depends
on endedPlayback(), which checks m_playbackRate.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setPlaybackRate):

2:57 PM Changeset in webkit [161230] by mhahnenberg@apple.com
  • 13 edits
    1 add in trunk/Source/JavaScriptCore

Storing new CopiedSpace memory into a JSObject should fire a write barrier
https://bugs.webkit.org/show_bug.cgi?id=126025

Reviewed by Filip Pizlo.

Technically this is creating a pointer between a (potentially) old generation object and a young
generation chunk of memory, thus there needs to be a barrier.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGOperations.cpp:
  • heap/CopyWriteBarrier.h: Added. This class functions similarly to the WriteBarrier class. It

acts as a proxy for pointers to CopiedSpace. Assignments to the field cause a write barrier to
fire for the object that is the owner of the CopiedSpace memory. This is to ensure during nursery
collections that objects with new backing stores are visited, even if they are old generation objects.
(JSC::CopyWriteBarrier::CopyWriteBarrier):
(JSC::CopyWriteBarrier::operator!):
(JSC::CopyWriteBarrier::operator UnspecifiedBoolType*):
(JSC::CopyWriteBarrier::get):
(JSC::CopyWriteBarrier::operator*):
(JSC::CopyWriteBarrier::operator->):
(JSC::CopyWriteBarrier::set):
(JSC::CopyWriteBarrier::setWithoutWriteBarrier):
(JSC::CopyWriteBarrier::clear):

  • heap/Heap.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSCell.h:

(JSC::JSCell::unvalidatedStructure):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):

  • runtime/JSObject.cpp:

(JSC::JSObject::copyButterfly):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::putByIndex):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::countElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):

  • runtime/JSObject.h:

(JSC::JSObject::butterfly):
(JSC::JSObject::setStructureAndButterfly):
(JSC::JSObject::setButterflyWithoutChangingStructure):
(JSC::JSObject::JSObject):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::putDirectWithoutTransition):

  • runtime/MapData.cpp:

(JSC::MapData::ensureSpaceForAppend):

  • runtime/Structure.cpp:

(JSC::Structure::materializePropertyMap):

2:43 PM Changeset in webkit [161229] by mark.lam@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

CStack: Interpreter::executeCall() should check for exceptions after calling callToNativeFunction().
https://bugs.webkit.org/show_bug.cgi?id=126405.

Not yet reviewed.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeCall):

  • executeCall() was expecting to return a non-null JSValue but neglected to check if an exception was thrown during a call to callToNativeFunction. We now check if an exception was thrown, and if so, we set the result to jsNull() the same way that JITCode::execute() does.
2:35 PM Changeset in webkit [161228] by barraclough@apple.com
  • 23 edits in trunk/Source

Source/WebCore: [iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
(also crashes when scrolling certain sites)
https://bugs.webkit.org/show_bug.cgi?id=126401
<rdar://problem/15739334>

Patch by Daniel Bates <dabates@apple.com> on 2014-01-02
Reviewed by Tim Horton.

  • page/ios/EventHandlerIOS.mm:

(WebCore::currentEventSlot): Make the shared variable have static-storage duration.

Source/WebKit/mac: Remove WindowIsVisible
https://bugs.webkit.org/show_bug.cgi?id=126270

Reviewed by Tim Horton.

We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
The latter detects that the content is hidden in fewer cases than the former, and as such, the
former is always preferable.

This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
Plugin::windowVisibilityChanged.

  • WebView/WebView.mm:

(-[WebView _windowWillOrderOnScreen:]):
(-[WebView _windowWillOrderOffScreen:]):

  • rename ContainingWindowIsVisible -> ContentIsVisible.

Source/WebKit2: Remove WindowIsVisible
https://bugs.webkit.org/show_bug.cgi?id=126270

Reviewed by Tim Horton.

We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
The latter detects that the content is hidden in fewer cases than the former, and as such, the
former is always preferable.

This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
Plugin::windowVisibilityChanged.

  • Shared/ViewState.h:
    • remove WindowIsVisible.
  • UIProcess/API/mac/PageClientImpl.h:
  • UIProcess/API/mac/PageClientImpl.mm:
    • remove isWindowVisible.
  • UIProcess/API/mac/WKView.mm:

(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):

  • remove ViewState::WindowIsVisible.
  • UIProcess/PageClient.h:
    • remove isWindowVisible.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateViewState):

  • remove handling of ViewState::WindowIsVisible.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::setIsVisible):
(WebKit::PluginView::didInitializePlugin):

  • WebProcess/Plugins/PluginView.h:
    • setWindowIsVisible -> setIsVisible.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewIsVisible):
(WebKit::WebPage::setViewState):
(WebKit::WebPage::windowAndWebPageAreFocused):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isVisible):

  • remove m_windowIsVisible, setWindowIsVisible (implementation moved to setViewIsVisible).
2:32 PM Changeset in webkit [161227] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
(also crashes when scrolling certain sites)
https://bugs.webkit.org/show_bug.cgi?id=126401
<rdar://problem/15739334>

Reviewed by Tim Horton.

  • page/ios/EventHandlerIOS.mm:

(WebCore::currentEventSlot): Make the shared variable have static-storage duration.

2:20 PM Changeset in webkit [161226] by barraclough@apple.com
  • 8 edits in trunk/Source/WebKit2

Refactor ViewState handling for drawing area / plugins
https://bugs.webkit.org/show_bug.cgi?id=126272

Reviewed by Tim Horton.

Instead of all ViewState changes being handled by the WebPage, notify the DrawingArea & PluginView to better encapsulate.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::viewStateDidChange):
(WebKit::PluginView::platformViewStateDidChange):

  • added, handle changes in ViewState relevant to PluginView.

(WebKit::PluginView::didInitializePlugin):

  • helper function removed.
  • WebProcess/Plugins/PluginView.h:
    • added/removed function declarations.
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::viewStateDidChange):

  • declare viewStateDidChange.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setActive):

  • no need to notify plugin.

(WebKit::WebPage::setViewIsVisible):

  • no need to notify drawing area.

(WebKit::WebPage::setViewState):

  • send viewStateDidChange to drawing area / plugin.

(WebKit::WebPage::setWindowIsVisible):

  • no need to notify plugin.
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::layerHostingMode):

  • removed setLayerHostingMode.
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
    • declare viewStateDidChange.
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange):

  • added, handle changes in ViewState relevant to DrawingArea.
2:16 PM Changeset in webkit [161225] by fpizlo@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

Address review feedback in https://bugs.webkit.org/show_bug.cgi?id=126387#c3

  • llint/LowLevelInterpreter.asm:
2:15 PM Changeset in webkit [161224] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Merge didMoveOnscreen / page visibility to isVisible
https://bugs.webkit.org/show_bug.cgi?id=126268

Build fix.

  • UIProcess/WebContext.h: Removed some accidental input.
2:06 PM Changeset in webkit [161223] by barraclough@apple.com
  • 17 edits in trunk/Source

Merge didMoveOnscreen / page visibility to isVisible
https://bugs.webkit.org/show_bug.cgi?id=126268

Reviewed by Tim Horton.

The onscreen state most closely tracks view visibility (though currently
also tracks a mix of in-window state). Make more consistent, simplify,
and move all animation suspension logic to Page, so it can be controlled
by the PageThrottler.

Source/WebCore:

  • WebCore.exp.in:
  • page/EventHandler.cpp:

(WebCore::EventHandler::fakeMouseMoveEventTimerFired):

  • page/FrameView.cpp:

(WebCore::FrameView::shouldSetCursor):

  • page/Page.cpp:

(WebCore::Page::Page):

  • initialize new variables.

(WebCore::Page::setIsVisible):

  • merge setVisibilityState, didMoveOnscreen, willMoveOffscreen.

(WebCore::Page::setIsPrerender):

  • switches visibility state from hidden to prerender.

(WebCore::Page::visibilityState):

  • computed from m_isVisible, m_isPrerender.

(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):

  • m_visibilityState -> m_isVisible.
  • page/Page.h:
    • remove didMoveOnscreen/willMoveOffscreen m_isOnscreen & m_visibilityState -> m_isVisible & m_isPrerender setVisibilityState -> setIsVisible & setIsPrerender.

(WebCore::Page::isVisible):

  • isOnscreen -> isVisible.

Source/WebKit/blackberry:

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setPageVisibilityState):

  • setVisibilityState -> setIsVisible.

Source/WebKit/efl:

  • ewk/ewk_view.cpp:

(ewk_view_visibility_state_set):

  • setVisibilityState -> setIsVisible/setIsPrerender.

Source/WebKit/gtk:

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp:

(DumpRenderTreeSupportGtk::setPageVisibility):

  • setVisibilityState -> setIsVisible/setIsPrerender.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _updateVisibilityState]):

  • _setVisibilityState:isInitialState: -> _setIsVisibile:isInitialState:.

(-[WebView _setIsVisible:isInitialState:]):

  • added.

(-[WebView _setVisibilityState:isInitialState:]):

  • setVisibilityState -> setIsVisible/setIsPrerender.

(-[WebView viewWillMoveToWindow:]):
(-[WebView viewDidMoveToWindow]):

  • remove redundant calls to willMoveOffscreen/didMoveOnscreen (this is handled by _updateVisibilityState).

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewIsVisible):

  • updateVisibilityState -> setIsVisible.

(WebKit::WebPage::setIsInWindow):

  • remove redundant willMoveOffscreen/didMoveOnscreen calls - this is handled by setIsVisible.

(WebKit::WebPage::setMayStartMediaWhenInWindow):

  • isOnscreen -> isInWindow. We start media when the view is in a window, not when the view is visible.

(WebKit::WebPage::setVisibilityStatePrerender):

  • setVisibilityState -> setIsPrerender.
1:34 PM Changeset in webkit [161222] by oliver@apple.com
  • 17 edits in trunk/Source/WebCore

Update bindings test results

1:00 PM Changeset in webkit [161221] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebKit/gtk

[GTK] Fix mismatched header guards in private WK1 header files
https://bugs.webkit.org/show_bug.cgi?id=126390

Reviewed by Martin Robinson.

Fix three mismatched header guards that are producing warnings when building with Clang.

  • webkit/webkitsecurityoriginprivate.h:
  • webkit/webkitviewportattributesprivate.h:
  • webkit/webkitwebnavigationactionprivate.h:
12:56 PM Changeset in webkit [161220] by oliver@apple.com
  • 27 edits in trunk/Source

Refactor PutPropertySlot to be aware of custom properties
https://bugs.webkit.org/show_bug.cgi?id=126187

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

Refactor PutPropertySlot, making the constructor take the thisValue
used as a target. This results in a wide range of boilerplate changes
to pass the new parameter.

  • API/JSObjectRef.cpp:

(JSObjectSetProperty):

  • dfg/DFGOperations.cpp:

(JSC::DFG::operationPutByValInternal):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/Arguments.cpp:

(JSC::Arguments::putByIndex):

  • runtime/ArrayPrototype.cpp:

(JSC::putProperty):
(JSC::arrayProtoFuncPush):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSCell.cpp:

(JSC::JSCell::putByIndex):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::putByIndex):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::deleteProperty):

  • runtime/JSObject.h:

(JSC::JSObject::putDirect):

  • runtime/Lookup.h:

(JSC::putEntry):
(JSC::lookupPut):

  • runtime/PutPropertySlot.h:

(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::setCustomProperty):
(JSC::PutPropertySlot::thisValue):
(JSC::PutPropertySlot::isCacheable):

Source/WebCore:

Update the bindings code generation and custom objects
to the new function signatures

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

  • bindings/objc/WebScriptObject.mm:

(-[WebScriptObject setValue:forKey:]):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::putByIndex):

  • bridge/NP_jsobject.cpp:

(_NPN_SetProperty):

Source/WebKit/mac:

Update for new method signatures.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::setProperty):

Source/WebKit2:

Update for new method signatures.

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::setProperty):

12:42 PM Changeset in webkit [161219] by mark.lam@apple.com
  • 15 edits in branches/jsCStack/Source/JavaScriptCore

CStack: Get the C Loop LLINT to build again.
https://bugs.webkit.org/show_bug.cgi?id=126393.

Not yet reviewed.

  • jit/JITCode.cpp:

(JSC::DirectJITCode::addressForCall):

  • #if ENABLE(JIT) out the use of RegisterPreservationWrappers.
  • llint/LLIntCLoop.cpp:

(JSC::LLInt::CLoop::initialize):

  • Update CLoop::initialize() to call the new CLoop::execute().
  • llint/LLIntCLoop.h:
  • CLoop::execute() now takes the arguments for callToJavaScript, and it effectively acts as the gateway for re-entering the VM in place for callToJavaScript (and callToNativeFunction).

CLoop::execute() should set up the "CPU" execution environment i.e.
CLoopRegisters should be initialized with the incoming args, stack
pointer, base pointer, and return address. We'll take care of this
part in a subsequent patch.

  • llint/LLIntOpcode.h:
  • Added C loop only llint opcodes llint_call_to_javascript, and llint_call_to_native_function. These will be used as the opcodeID for the llint interpreter blob for callToJavaScript and callToNativeFunction.

Meanwhile, the LLINT thunk will provide C functions for callToJavaScript
and callToNativeFunction which calls CLoop::execute() with the opcodeID
for llint_call_to_javascript and llint_call_to_native_function
respectively.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_throw_stack_overflow_error):

  • Changed llint_throw_stack_overflow_error()'s return type so that it is easier for the C Loop LLINT to generate boilerplate code to call it.

The return value is not used by anyone. But since this is code that
rarely executed, we'll opt to take this small hit of returning an
unused value rather than having to spin some way to make the C Loop
offlineasm smarter only for handling this one case.

  • llint/LLIntSlowPaths.h:
  • llint/LLIntThunks.cpp:

(JSC::callToJavaScript):
(JSC::callToNativeFunction):

  • Updated to call the new CLoop::execute().

We're going to try to use the doCallToJavaScript code defined in the
LLINT assembly instead of spinning our own version in C++ as we did
previously.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoopRegister::operator ExecState*):
(JSC::CLoopRegister::operator Instruction*):
(JSC::CLoopRegister::operator VM*):
(JSC::CLoopRegister::operator ProtoCallFrame*):

  • Added these cast operators to the CLoopRegister to simplify the C Loop call slow path boilerplate.

(JSC::CLoop::execute):

  • llint/LowLevelInterpreter64.asm:
  • offlineasm/cloop.rb:
  • Define C Loop registers to match ARM as expected by the code.
  • Replaced a #error with a RELEASE_ASSERT_NOT_REACHED().
  • Reworked the call slow path boilerplate to take advantage of the CLoopRegister cast operators. We need this in order to be able to call slow path functions that take different argument types e.g. llint_throw_stack_overflow_error().
  • runtime/CommonSlowPaths.cpp:

(JSC::setupArityCheckData):

  • runtime/VM.cpp:

(JSC::VM::getHostFunction):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::requiredCapacity):

12:15 PM Changeset in webkit [161218] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Rationalize DFG DCE
https://bugs.webkit.org/show_bug.cgi?id=125523

Reviewed by Mark Hahnenberg.

Adds the ability to DCE more things. It's now the case that if a node is completely
pure, we clear NodeMustGenerate and the node becomes a DCE candidate.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::cleanVariables):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::clobbersWorld):

  • dfg/DFGNodeType.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileAdd):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileValueAdd):

12:11 PM Changeset in webkit [161217] by fpizlo@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

Some crashes in C stack on Mountain Lion, for example on crypto-aes, due to misaligned stack
https://bugs.webkit.org/show_bug.cgi?id=126394

Not yet reviewed.

The specialized math thunks currently ensure that inside the thunk, the stack is aligned. But when they
call the wrapper, the wrapper previously didn't align the stack. This patch fixes that.

I think that we can drop the wrappers on X86-64 and maybe on other platforms as well. I'll leave that to
a future patch.

  • jit/ThunkGenerators.cpp:
12:06 PM Changeset in webkit [161216] by ap@apple.com
  • 3 edits in trunk/Tools

Accessing Trac from build.webkit.org/dashboard should enable XMLHttpRequest.withCredentials
https://bugs.webkit.org/show_bug.cgi?id=126391

Reviewed by Dan Bernstein.

Make it conditional, as trac.webkit.org doesn't work when withCredentials is enabled.
One can request credentials use via Initialization.js.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac):
(Trac.prototype.update):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:

(loadXML):

12:03 PM Changeset in webkit [161215] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r160846.
http://trac.webkit.org/changeset/160846
https://bugs.webkit.org/show_bug.cgi?id=126395

Breaks build scripts for Windows when Visual Studio is not
installed in Program Files (Requested by rfong on #webkit).

  • Scripts/webkitdirs.pm:

(visualStudioInstallDir):

11:45 AM Changeset in webkit [161214] by Martin Robinson
  • 3 edits in trunk/Tools

[GTK] [CMake] run-gtk-tests should run with the cmake build
https://bugs.webkit.org/show_bug.cgi?id=126341

Reviewed by Carlos Garcia Campos.

  • Scripts/run-gtk-tests:

(TestRunner.init): Use the new calling conventions for the common script.
(TestRunner._setup_testing_environment): Ditto.

  • gtk/common.py:

(set_build_types): Added set_build_types, to avoid having build_type arguments
for all functions in common.
(binary_build_path): Added this function which gets the path to the built binaries.
(get_build_path): Removed the build_types argument.
(build_path): Removed the build_types argument and call get_build_path directly now.

11:42 AM Changeset in webkit [161213] by ap@apple.com
  • 2 edits in trunk/Tools

https://bugs.webkit.org/show_bug.cgi?id=126391
Accessing Trac from build.webkit.org/dashboard should enable XMLHttpRequest.withCredentials

Rubber-stamped by Dan Bernstein.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:

(loadXML): Quick and dirty fix, with a FIXME.

11:41 AM Changeset in webkit [161212] by Simon Fraser
  • 11 edits
    2 copies in trunk/Source

Add AsyncScrollingCoordinator, which is a base class for threaded and future remote ScrollingCoordinators
https://bugs.webkit.org/show_bug.cgi?id=126389

Source/WebCore:

Reviewed by Tim Horton.

Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.

  • WebCore.xcodeproj/project.pbxproj: Added AsyncScrollingCoordinator.*
  • page/scrolling/AsyncScrollingCoordinator.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.

(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::~AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::attachToStateTree):
(WebCore::AsyncScrollingCoordinator::detachFromStateTree):
(WebCore::AsyncScrollingCoordinator::clearStateTree):
(WebCore::AsyncScrollingCoordinator::syncChildPositions):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
(WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
(WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
(WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
(WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
(WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
(WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
(WebCore::AsyncScrollingCoordinator::isRubberBandInProgress):
(WebCore::AsyncScrollingCoordinator::setScrollPinningBehavior):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):

  • page/scrolling/AsyncScrollingCoordinator.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.

(WebCore::AsyncScrollingCoordinator::scrollingTree):
(WebCore::AsyncScrollingCoordinator::setScrollingTree):
(WebCore::AsyncScrollingCoordinator::scrollingStateTree):
(WebCore::AsyncScrollingCoordinator::releaseScrollingTree):

  • page/scrolling/ScrollingCoordinator.h: Add casting support.

(WebCore::ScrollingCoordinator::isAsyncScrollingCoordinator):

  • page/scrolling/ThreadedScrollingTree.h: commitNewTreeState() needs to be public.
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm: Lots of code moved to AsyncScrollingCoordinator.

(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::pageDestroyed):
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorMac::commitTreeState):
(WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):

Source/WebKit2:

Reviewed by Tim Horton.

Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage): The ScrollingTree is exposed on
AsyncScrollingCoordinator now, not ScrollingCoordinator, so we have to cast here.

  • WebProcess/WebPage/WebPage.cpp: m_useThreadedScrolling -> m_useAsyncScrolling terminology change.

(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updatePreferences): Cast to AsyncScrollingCoordinator in order
to get to the ScrollingTree.

11:20 AM Changeset in webkit [161211] by fpizlo@apple.com
  • 4 edits in branches/jsCStack/Source/JavaScriptCore

Refactor LLInt C stack frame munging helpers so that 32-bit code paths can use them
https://bugs.webkit.org/show_bug.cgi?id=126387

Not yet reviewed.

This gets us closer to the 32-bit LLInt working on the C stack by enabling the
32-bit code paths to use the low-level stack/frame pointer munging helpers. This
patch doesn't completely ensure that these helpers actually work - the 32-bit
build is still broken - but it's a good change to land separately since it affects
64-bit code paths as well.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
10:45 AM Changeset in webkit [161210] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Simplify the insides of DocumentSharedObjectPool and reduce memory usage.

Merging Blink r164152 by Elliott Sprehn.

Instead of storing an OwnPtr to an object that has a pointer to the
ShareableElementData as well as a pointer into the ShareableElementData
and the length we can just store a RefPtr to the SharableElementData.

This also reduces the memory usage of the pool by 2 pointers per entry.

  • dom/DocumentSharedObjectPool.h:
  • dom/DocumentSharedObjectPool.cpp:

(WebCore::attributeHash):
(WebCore::hasSameAttributes):
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):

10:11 AM Changeset in webkit [161209] by krit@webkit.org
  • 14 edits in trunk

Support <box> values computed style for 'clip-path' property
https://bugs.webkit.org/show_bug.cgi?id=126148

Reviewed by Simon Fraser.

Source/WebCore:

Calculate computed style for 'clip-path' property.

Updated tests to check for computed style.

  • css/BasicShapeFunctions.cpp: Add box value bounding-box.

(WebCore::valueForBox):
(WebCore::boxForValue):

  • css/CSSComputedStyleDeclaration.cpp: Return the computed style

for 'clip-path'.

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/DeprecatedStyleBuilder.cpp: Create CSSValueLists for 'clip-th'.

(WebCore::ApplyPropertyClipPath::applyValue):

  • rendering/ClipPathOperation.h: Add bounding-box value.

(WebCore::ShapeClipPathOperation::pathForReferenceRect):
(WebCore::ShapeClipPathOperation::setReferenceBox):
(WebCore::ShapeClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::create):
(WebCore::BoxClipPathOperation::pathForReferenceRect):
(WebCore::BoxClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::BoxClipPathOperation):

  • rendering/shapes/ShapeInfo.h: Add bounding-box value.

(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):

  • rendering/style/BasicShapes.cpp: Add bounding-box value.

(WebCore::BasicShape::referenceBoxSize):

  • rendering/style/BasicShapes.h:

LayoutTests:

Test computed style of 'clip-path' property.

  • fast/masking/parsing-clip-path-shape.html:
7:51 AM Changeset in webkit [161208] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Always resolve style from root
https://bugs.webkit.org/show_bug.cgi?id=126380

Reviewed by Andreas Kling.

Forced style resolve that does not start from the root is never really correct.
Remove the few remaining instances.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setResetStyleInheritance):

Update style asynchronously.

  • dom/ShadowRoot.h:
  • dom/Text.h:
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::createElementRenderer):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):

Delete the render tree synchronously on suspend and rebuild it asynchronously on resume.
No need for m_customStyleForPageCache hack.

  • html/HTMLPlugInImageElement.h:


Remove m_customStyleForPageCache.

  • style/StyleResolveTree.cpp:
  • style/StyleResolveTree.h:


Remove Element version of resolveTree from the interface.

  • svg/SVGUseElement.h:
7:50 AM Changeset in webkit [161207] by Antti Koivisto
  • 11 edits
    2 deletes in trunk/Source/WebCore

Remove PlaceholderDocument
https://bugs.webkit.org/show_bug.cgi?id=126382

Reviewed by Andreas Kling.

Remove PlaceholderDocument class and replace it with a bit in Document.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::createRenderTree):

  • dom/Document.h:


Also make Synthesized a construction flag instead of a boolean parameter.

(WebCore::Document::createNonRenderedPlaceholder):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::HTMLDocument):

  • html/HTMLDocument.h:

(WebCore::HTMLDocument::create):
(WebCore::HTMLDocument::createSynthesizedDocument):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::createDocument):

  • loader/PlaceholderDocument.cpp: Removed.
  • loader/PlaceholderDocument.h: Removed.
  • pdf/ios/PDFDocument.h:

(WebCore::PDFDocument::PDFDocument):

5:09 AM WebKitGTK/StartHacking edited by Manuel Rego Casasnovas
Link to SpeedUpBuild for ld.gold instructions (diff)
5:08 AM WebKitGTK/SpeedUpBuild edited by Manuel Rego Casasnovas
Add information about how to configure ld.gold with update-alternatives (diff)
3:43 AM Changeset in webkit [161206] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Attempt to fix the build of WebCore's code generator on CMake based system
https://bugs.webkit.org/show_bug.cgi?id=126271

Reviewed by Sam Weinig.

  • CMakeLists.txt:
1:49 AM Changeset in webkit [161205] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Remove public attachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126368

Reviewed by Andreas Kling.

Remove the remaining explicit render tree construction.

  • dom/Document.cpp:

(WebCore::Document::createRenderTree):

Use recalcStyle() instead of calling attachRenderTree directly.

  • html/HTMLViewSourceDocument.cpp:

(WebCore::HTMLViewSourceDocument::addText):

Remove forgotten attachTextRenderer.

  • html/shadow/InsertionPoint.cpp:

(WebCore::InsertionPoint::InsertionPoint):

Remove willAttachRenderers/didAttachRenderers hack.

  • html/shadow/InsertionPoint.h:

(WebCore::toInsertionPoint):

  • loader/PlaceholderDocument.cpp:

(WebCore::PlaceholderDocument::createRenderTree):

Seriously, nothing to do here.

  • style/StyleResolveTree.cpp:

(WebCore::Style::attachDistributedChildren):
(WebCore::Style::attachChildren):
(WebCore::Style::detachDistributedChildren):
(WebCore::Style::detachChildren):

Making attaching and detaching distributed insertion point children part of ResolveTree internals.

  • style/StyleResolveTree.h:


Remove interfaces with no clients.

Jan 1, 2014:

10:21 PM Changeset in webkit [161204] by Seokju Kwon
  • 2 edits in trunk/Source/WebCore

Remove stale ScriptProfiler methods
https://bugs.webkit.org/show_bug.cgi?id=126373

Reviewed by Darin Adler.

No new tests, No change behavior.

  • bindings/js/ScriptProfiler.h: Remove dead code.
7:22 PM Changeset in webkit [161203] by akling@apple.com
  • 6 edits in trunk/Source

Remove ChromeClient::fullScreenRendererChanged().
<https://webkit.org/b/126370>

This hook was added in r75277 to notify WebFullScreenController when
the full screen renderer changed. In r110216 the code was refactored,
making this notification unnecessary.

Reviewed by Antti Koivisto.

6:07 PM Changeset in webkit [161202] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the build by exposing some more scrolling state node headers
as Private in WebCore.framework.

  • WebCore.xcodeproj/project.pbxproj:
5:30 PM Changeset in webkit [161201] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::children):

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

RenderScrollbar: Map of scrollbar parts should use RenderPtr.
<https://webkit.org/b/126367>

Turn RenderScrollbar::m_parts into HashMap of RenderPtrs. This makes
renderer destruction automatic and lets us remove some code.

Reviewed by Antti Koivisto.

  • rendering/RenderPtr.h:

Add HashTraits for RenderPtr so we can use them as values in
WTF hash tables.

  • rendering/RenderScrollbar.h:
  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::~RenderScrollbar):
(WebCore::RenderScrollbar::setParent):
(WebCore::RenderScrollbar::updateScrollbarParts):
(WebCore::RenderScrollbar::updateScrollbarPart):

Remove now-unneeded kludges of logic to manually delete scrollbar
part renderers in various scenarios.

4:31 PM Changeset in webkit [161199] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Remove reattachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126366

Reviewed by Andreas Kling.

Remove the last remaining client.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute):

Reconstruct render tree asynchronously.

(WebCore::HTMLSelectElement::scrollToSelection):
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
(WebCore::HTMLSelectElement::selectOption):

It is not safe to cast the renderer based on usesMenuList test. Switch to RenderObject::isMenuList test.

(WebCore::HTMLSelectElement::parseMultipleAttribute):

Reconstruct render tree asynchronously.

(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):

  • style/StyleResolveTree.cpp:
  • style/StyleResolveTree.h:


Remove the function.

3:20 PM Changeset in webkit [161198] by Simon Fraser
  • 11 edits
    2 adds in trunk/Source

Create a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge of the scrolling thread into it
https://bugs.webkit.org/show_bug.cgi?id=126362

Reviewed by Sam Weinig.

Eventually we'll have a ScrollingTree in situations where there is no scrolling
thread, so make the ScrollingTree base class thread-agnostic (but threadsafe),
and subclass it in ThreadedScrollingTree for scrolling-thread-specific functionality.

The ScrollingTree base class also no longer needs to know about the
ScrollingCoordinator.

ScrollingCoordinatorMac creates a ThreadedScrollingTree.

Source/WebCore:

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj: Add ThreadedScrollingTree.*

Make some headers Private that we'll need in WebKit2 soon.

  • page/scrolling/ScrollingStateTree.h: Drive-by cleanup: clone() was unimplemented.
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::~ScrollingTree):
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Wrap up some logic that
involves taking the mutex, so ThreadedScrollingTree can conveniently call it.
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isHandlingProgrammaticScroll):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::isThreadedScrollingTree):
(WebCore::ScrollingTree::invalidate):

  • page/scrolling/ThreadedScrollingTree.cpp: Added.

(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::~ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::tryToHandleWheelEvent):
(WebCore::ThreadedScrollingTree::handleWheelEvent):
(WebCore::derefScrollingCoordinator):
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::commitNewTreeState):
(WebCore::ThreadedScrollingTree::updateMainFrameScrollPosition):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):

  • page/scrolling/ThreadedScrollingTree.h: Added.

(WebCore::ThreadedScrollingTree::isThreadedScrollingTree):

  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):

Source/WebKit2:

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/EventDispatcher.h:
3:18 PM Changeset in webkit [161197] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

FrameView: Store scroll corner renderer in a RenderPtr.
<https://webkit.org/b/126364>

Make FrameView::m_scrollCorner a RenderPtr<RenderScrollbarPart> and
remove two manual destroy() calls.

Reviewed by Antti Koivisto.

1:48 PM Changeset in webkit [161196] by Antti Koivisto
  • 19 edits in trunk/Source/WebCore

Remove elementChildren/elementDescendants shorthands
https://bugs.webkit.org/show_bug.cgi?id=126363

Reviewed by Anders Carlsson.

Just use childrenOfType<Element>/descendantsOfType<Element> instead. They are not that much longer
and consistency is valuable.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
(WebCore::siblingWithAriaRole):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable):

  • css/StyleInvalidationAnalysis.cpp:

(WebCore::StyleInvalidationAnalysis::invalidateStyle):

  • dom/ChildNodeList.cpp:

(WebCore::ChildNodeList::namedItem):

  • dom/Document.cpp:

(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::childrenChanged):

  • dom/Element.cpp:

(WebCore::Element::resetComputedStyle):

  • dom/ElementChildIterator.h:
  • dom/ElementDescendantIterator.h:
  • dom/SelectorQuery.cpp:

(WebCore::elementsForLocalName):
(WebCore::anyElement):
(WebCore::SelectorDataList::executeSingleTagNameSelectorData):
(WebCore::SelectorDataList::executeSingleClassNameSelectorData):
(WebCore::SelectorDataList::executeSingleSelectorData):
(WebCore::SelectorDataList::executeSingleMultiSelectorData):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::removeHeadContents):

  • editing/markup.cpp:

(WebCore::completeURLs):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::containsJavaApplet):

  • loader/PlaceholderDocument.cpp:

(WebCore::PlaceholderDocument::createRenderTree):

  • rendering/RenderChildIterator.h:
  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::getElementById):

  • svg/SVGUseElement.cpp:

(WebCore::subtreeContainsDisallowedElement):
(WebCore::removeDisallowedElementsFromSubtree):

1:20 PM Changeset in webkit [161195] by Antti Koivisto
  • 11 edits in trunk

Do less synchronous render tree construction
https://bugs.webkit.org/show_bug.cgi?id=126359

Source/WebCore:

Reviewed by Anders Carlsson.

Remove some now-unnecessary attachRenderTree calls.

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::parseAttribute):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::renderFallbackContent):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):

  • html/HTMLViewSourceDocument.cpp:

(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):

  • xml/XMLErrors.cpp:

(WebCore::XMLErrors::insertErrorMessageBlock):

LayoutTests:

  • fast/html/object-image-nested-fallback.html: Update test to work with asynchronous load failures.
  • fast/overflow/overflow-height-float-not-removed-crash3-expected.txt: Whitespace change.
11:53 AM Changeset in webkit [161194] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

Updating the scrolling tree should use references to state nodes
https://bugs.webkit.org/show_bug.cgi?id=126360

Reviewed by Anders Carlsson.

Change functions related to ScrollingTreeNode updating to take
const references to state nodes rather than pointers.

  • page/scrolling/ScrollingStateNode.h:

(WebCore::ScrollingStateNode::hasChangedProperty):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNode): The node can be nil so
this continues to take a pointer.
(WebCore::ScrollingTree::removeDestroyedNodes):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::updateAfterChildren):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):

  • page/scrolling/mac/ScrollingTreeStickyNode.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

10:36 AM Changeset in webkit [161193] by zandobersek@gmail.com
  • 22 edits in trunk/LayoutTests

Unreviewed GTK gardening.
Updating test baselines after the introduction of lazy render tree attaching,
enabling the saturated layout arithmetics for the GTK port, and other changes.

  • platform/gtk/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
  • platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.txt:
  • platform/gtk/fast/block/float/016-expected.txt:
  • platform/gtk/fast/css-generated-content/table-row-group-to-inline-expected.txt:
  • platform/gtk/fast/dynamic/011-expected.txt:
  • platform/gtk/fast/forms/formmove3-expected.txt:
  • platform/gtk/fast/forms/preserveFormDuringResidualStyle-expected.txt:
  • platform/gtk/fast/invalid/001-expected.txt:
  • platform/gtk/fast/invalid/003-expected.txt:
  • platform/gtk/fast/invalid/004-expected.txt:
  • platform/gtk/fast/invalid/007-expected.txt:
  • platform/gtk/fast/invalid/019-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/ruby/ruby-base-merge-block-children-crash-expected.txt:
  • platform/gtk/fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction-expected.txt:
  • platform/gtk/fast/table/empty-cells-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug647-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
10:34 AM Changeset in webkit [161192] by Simon Fraser
  • 16 edits in trunk/Source

Add a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransaction to use it
https://bugs.webkit.org/show_bug.cgi?id=126346

Source/WebCore:

Reviewed by Tim Horton.

Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
so it makes more sense to put this layerID type on GraphicsLayer as
GraphicsLayer::PlatformLayerID.

Also add some type cast macros for PlatformCALayer and subclasses, and use them
where appropriate.

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setName):

  • platform/graphics/ca/PlatformCALayer.h:

(WebCore::PlatformCALayer::isPlatformCALayerMac):
(WebCore::PlatformCALayer::isPlatformCALayerRemote):
(WebCore::PlatformCALayer::PlatformCALayer):

  • platform/graphics/ca/mac/PlatformCALayerMac.h:

Source/WebKit2:

Reviewed by Tim Horton.

Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
so it makes more sense to put this layerID type on GraphicsLayer as
GraphicsLayer::PlatformLayerID.

Also add some type cast macros for PlatformCALayer and subclasses, and use them
where appropriate.

  • Shared/mac/RemoteLayerTreePropertyApplier.h:
  • Shared/mac/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::rootLayerID):
(WebKit::RemoteLayerTreeTransaction::changedLayers):
(WebKit::RemoteLayerTreeTransaction::destroyedLayers):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::setRootLayerID):
(WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):

  • UIProcess/mac/RemoteLayerTreeHost.h:
  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::commit):
(WebKit::RemoteLayerTreeHost::getLayer):

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:

(WebKit::GraphicsLayerCARemote::primaryLayerID):

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(generateLayerID):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

(WebKit::PlatformCALayerRemote::layerID):

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
10:26 AM Changeset in webkit [161191] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

ScrollingStateNodes should have a reference to the ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=126348

Reviewed by Sam Weinig.

Make ScrollingStateNodes always belong to a ScrollingStateTree, and thus
have a reference to the tree rather than a pointer. When cloning nodes,
they are adopted by a new ScrollingStateTree, which adds them to its
node map (which didn't happen before).

In subclasses access the ScrollingStateTree through a member function.

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::create):
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::clone):
(WebCore::ScrollingStateFixedNode::updateConstraints):

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::cloneAndReset):
(WebCore::ScrollingStateNode::cloneAndResetChildren):
(WebCore::ScrollingStateNode::willBeRemovedFromStateTree):

  • page/scrolling/ScrollingStateNode.h:

(WebCore::ScrollingStateNode::scrollingStateTree):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::create):
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::clone):
(WebCore::ScrollingStateScrollingNode::setViewportRect):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):

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

(WebCore::ScrollingStateStickyNode::create):
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::clone):
(WebCore::ScrollingStateStickyNode::updateConstraints):

  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::commit):
(WebCore::ScrollingStateTree::addNode):

  • page/scrolling/ScrollingStateTree.h:
  • page/scrolling/mac/ScrollingStateNodeMac.mm:

(WebCore::ScrollingStateNode::setScrollLayer):

  • page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:

(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):

10:14 AM Changeset in webkit [161190] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Give ScrollingStateNodes a nodeType()
https://bugs.webkit.org/show_bug.cgi?id=126347

Reviewed by Tim Horton.

When we start serializing ScrollingStateNodes to send to the UI process,
it's more convenient if they have a nodeType member rather than virtual functions,
so give them one, and fix the casting macros to use it. This allows us to use
a switch() on node creation, so the compiler will tell us if we forgot to create
a node type.

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):

  • page/scrolling/ScrollingStateNode.h: const ScrollingNodeType field

(can't be modified after construction), and move the m_scrollingStateTree
member after it (the awkward protected:/private: will be cleaned up in a later patch).
(WebCore::ScrollingStateNode::nodeType):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):

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

(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):

  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::updateTreeFromStateNode):

7:41 AM Changeset in webkit [161189] by Martin Robinson
  • 2 edits in trunk/Source/WebKit2

[GTK] [CMake] Fix the WEBKIT_SRC_DIR define when building the WebKit2 GObject API unit tests
https://bugs.webkit.org/show_bug.cgi?id=126350

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/tests/CMakeLists.txt: Fix the define.
7:35 AM Changeset in webkit [161188] by Martin Robinson
  • 6 edits in trunk

[GTK] Rename libtestnetscapeplugin to libTestNetscapePlugin
https://bugs.webkit.org/show_bug.cgi?id=126349

Reviewed by Carlos Garcia Campos.

All CMake ports use "libTestNetscapePlugin," so choosing the same
name in the autotools port will make the transition easier.

Source/WebKit2:

  • UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:

(testWebContextGetPlugins): Use the new plugin library name.

Tools:

  • GNUmakefile.am: Rename the plugin library.

LayoutTests:

  • platform/gtk/plugins/plugin-javascript-access-expected.txt: Change the plugin name.
5:35 AM Changeset in webkit [161187] by ChangSeok Oh
  • 2 edits in trunk/Tools

[GTK][WK2] Back items are shown in reverse order in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=126354

Reviewed by Carlos Garcia Campos.

The latest visited site for backward history should be placed on the top of a history stack
as a common behavior. However currently its order is reverse.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowUpdateNavigationActions):

Dec 31, 2013:

5:08 PM Changeset in webkit [161186] by b.long@cablelabs.com
  • 2 edits in trunk/Source/WebKit2

[Gtk] WebKitWebInspector has build warnings due to uninitialized didChangeAttachedWidth member
https://bugs.webkit.org/show_bug.cgi?id=126353

Reviewed by Martin Robinson.

  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkitWebInspectorCreate): Initialize didChangeAttachedWidth to null.

3:46 PM Changeset in webkit [161185] by aestes@apple.com
  • 115 edits
    1 copy
    1 add in trunk/Source/WebKit

[iOS] Upstream PLATFORM(IOS) changes to Source/WebKit/
https://bugs.webkit.org/show_bug.cgi?id=125746

Reviewed by David Kilzer.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Added WebDatabaseManagerInternal.h

and iOS.xcconfig.

Source/WebKit/ios:

  • WebCoreSupport/WebVisiblePosition.mm:

(-[WebVisiblePosition positionAtStartOrEndOfWord]): Changed a comment
to mention iOS rather than iPhone.

Source/WebKit/mac:

This is a straight upstreaming of the various PLATFORM(IOS) changes
made to Source/WebKit/ with the following modifications:

  • Includes of <Cocoa/Cocoa.h> were generally replaced with an include

of <Foundation/Foundation.h> followed by an include of
<AppKit/AppKit.h> on non-iOS platforms. This assumes that nobody was
relying on <Cocoa/Cocoa.h>'s inclusion of <CoreData/CoreData.h>.

  • Includes of <Cocoa/Cocoa.h> and <Foundation/Foundation.h> were

removed from files that include WebKitPrefix.h.

  • Instances of 'iPhone (OS)' in comments were replaced with 'iOS', and

other sensitive terms were elided.

  • Various PLATFORM(IOS) blocks were simplified. For instance:

#if !PLATFORM(IOS)
...
#endif
#if PLATFORM(IOS)
...
#endif

Was simplified to:

#if !PLATFORM(IOS)
...
#else
...
#endif

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/iOS.xcconfig: Added.
  • DOM/WebDOMOperations.mm:
  • DefaultDelegates/WebDefaultContextMenuDelegate.mm:
  • DefaultDelegates/WebDefaultEditingDelegate.m:
  • DefaultDelegates/WebDefaultPolicyDelegate.m:
  • DefaultDelegates/WebDefaultUIDelegate.h:
  • DefaultDelegates/WebDefaultUIDelegate.m:
  • History/WebBackForwardList.mm:
  • History/WebHistory.mm:
  • History/WebHistoryItem.mm:
  • History/WebURLsWithTitles.m:
  • Misc/WebCache.mm:
  • Misc/WebDownload.mm:
  • Misc/WebElementDictionary.mm:
  • Misc/WebIconDatabase.mm:
  • Misc/WebIconDatabaseInternal.h:
  • Misc/WebKitNSStringExtras.mm:
  • Misc/WebKitSystemBits.m:
  • Misc/WebKitVersionChecks.h:
  • Misc/WebKitVersionChecks.m:
  • Misc/WebLocalizableStrings.mm:
  • Misc/WebNSArrayExtras.h:
  • Misc/WebNSArrayExtras.m:
  • Misc/WebNSControlExtras.h:
  • Misc/WebNSControlExtras.m:
  • Misc/WebNSDictionaryExtras.h:
  • Misc/WebNSDictionaryExtras.m:
  • Misc/WebNSEventExtras.m:
  • Misc/WebNSFileManagerExtras.mm:
  • Misc/WebNSImageExtras.h:
  • Misc/WebNSImageExtras.m:
  • Misc/WebNSPasteboardExtras.mm:
  • Misc/WebNSPrintOperationExtras.h:
  • Misc/WebNSPrintOperationExtras.m:
  • Misc/WebNSURLExtras.mm:
  • Misc/WebNSViewExtras.m:
  • Misc/WebNSWindowExtras.m:
  • Panels/WebAuthenticationPanel.h:
  • Panels/WebAuthenticationPanel.m:
  • Panels/WebPanelAuthenticationHandler.m:
  • Plugins/Hosted/WebHostedNetscapePluginView.mm:
  • Plugins/WebBasePluginPackage.h:
  • Plugins/WebBasePluginPackage.mm:
  • Plugins/WebJavaPlugIn.h:
  • Plugins/WebPluginContainerCheck.mm:
  • Plugins/WebPluginController.h:
  • Plugins/WebPluginController.mm:
  • Plugins/WebPluginDatabase.mm:
  • Plugins/WebPluginPackage.mm:
  • Plugins/WebPluginsPrivate.m:
  • Storage/WebDatabaseManager.mm:
  • Storage/WebDatabaseManagerClient.h:
  • Storage/WebDatabaseManagerClient.mm:
  • Storage/WebDatabaseManagerInternal.h: Added.
  • Storage/WebStorageManager.mm:
  • WebCoreSupport/CorrectionPanel.h:
  • WebCoreSupport/WebAlternativeTextClient.h:
  • WebCoreSupport/WebApplicationCache.mm:
  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:
  • WebCoreSupport/WebContextMenuClient.mm:
  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebCoreSupport/WebFrameNetworkingContext.h:
  • WebCoreSupport/WebFrameNetworkingContext.mm:
  • WebCoreSupport/WebGeolocationClient.h:
  • WebCoreSupport/WebGeolocationClient.mm:
  • WebCoreSupport/WebJavaScriptTextInputPanel.m:
  • WebCoreSupport/WebKeyGenerator.mm:
  • WebCoreSupport/WebNotificationClient.mm:
  • WebCoreSupport/WebOpenPanelResultListener.mm:
  • WebCoreSupport/WebSecurityOrigin.mm:
  • WebCoreSupport/WebSystemInterface.mm:
  • WebKitPrefix.h:
  • WebView/WebArchive.mm:
  • WebView/WebClipView.h:
  • WebView/WebDataSource.mm:
  • WebView/WebDelegateImplementationCaching.h:
  • WebView/WebDelegateImplementationCaching.mm:
  • WebView/WebDeviceOrientation.mm:
  • WebView/WebDocumentInternal.h:
  • WebView/WebDocumentLoaderMac.mm:
  • WebView/WebDynamicScrollBarsViewInternal.h:
  • WebView/WebFormDelegate.m:
  • WebView/WebFrame.mm:
  • WebView/WebFrameInternal.h:
  • WebView/WebFrameView.mm:
  • WebView/WebFullScreenController.h:
  • WebView/WebFullScreenController.mm:
  • WebView/WebHTMLRepresentation.mm:
  • WebView/WebHTMLView.mm:
  • WebView/WebHTMLViewInternal.h:
  • WebView/WebPDFDocumentExtras.h:
  • WebView/WebPDFDocumentExtras.mm:
  • WebView/WebPDFRepresentation.h:
  • WebView/WebPDFRepresentation.mm:
  • WebView/WebPDFView.h:
  • WebView/WebPDFView.mm:
  • WebView/WebPreferences.mm:
  • WebView/WebResource.mm:
  • WebView/WebTextCompletionController.h:
  • WebView/WebTextIterator.mm:
  • WebView/WebView.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:
  • WebView/WebViewInternal.h:
8:40 AM Changeset in webkit [161184] by akling@apple.com
  • 37 edits in trunk/Source/WebCore

Out-of-line RenderStyle substructure copying helpers.
<https://webkit.org/b/126340>

This shrinks the .access() calls by moving memory allocation logic
out-of-line, though I'm really doing this to make Instruments.app
allocations output more readable.

Writes to e.g 'font' or 'color' will now be grouped under a single
StyleInheritedData::copy() call instead of being spread out over
setFontDescription(), setLineHeight(), setColor(), etc.

Reviewed by Anders Carlsson.

8:16 AM Changeset in webkit [161183] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

RenderListItem should store its marker in a RenderPtr.
<https://webkit.org/b/126298>

Make RenderListItem::m_marker a RenderPtr<RenderListMarker> and
remove two manual destroy() calls. Tweaked code to reduce nesting.

Reviewed by Anders Carlsson.

8:14 AM Changeset in webkit [161182] by Martin Robinson
  • 8 edits in trunk

[GTK] Make the output directory of GObject unit tests binaries consistent with the CMake build
https://bugs.webkit.org/show_bug.cgi?id=126297

Reviewed by Philippe Normand.

Source/WebKit/gtk:

  • tests/GNUmakefile.am: Build the tests in the new directory.

Source/WebKit2:

  • UIProcess/API/gtk/tests/GNUmakefile.am: Build the tests in the new directory.
  • UIProcess/API/gtk/tests/TestInspectorServer.cpp:

(startTestServer): Update the search path to reflect the new directory.

  • UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp:

(startTestServer): Update the search path to reflect the new directory.

Tools:

  • Scripts/run-gtk-tests: Looks for the tests in the new directories.

(TestRunner): Ditto.
(TestRunner._run_test): Ditto.

6:05 AM Changeset in webkit [161181] by akling@apple.com
  • 132 edits in trunk/Source/WebCore

Element's renderer factory should return RenderPtrs.
<https://webkit.org/b/126318>

Rename Element::createRenderer() to createElementRenderer() and have
it return RenderPtr<RenderElement>. Propagate signature until it
builds again.

We leakPtr() the renderer at two call sites when handing things over
to raw pointer API. This'll get tidied up in subsequent patches.

Reviewed by Sam Weinig.

2:26 AM Changeset in webkit [161180] by mark.lam@apple.com
  • 8 edits in branches/jsCStack/Source/JavaScriptCore

CStack: Need a separate stack limit for the JS stack and the C stack.
https://bugs.webkit.org/show_bug.cgi?id=126320.

Not yet reviewed.

With this patch, we now accurately track how much JS stack space the
VM has used, and cap that at the value specified by Options::maxStackSize().

The JS stack space is measured in chunks, one for each VMEntryScope. Each
VMEntryScope will also keep a running total of the sum of all the stack
usage of previous VMEntryScopes to simplify the calculation of the total
usage.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • In Interpreter::execute() for programs, we were installing the VMEntryScope even if we end up only processing a JSON object. This poses a problem because the code that processes the JSON object will call functions that will re-enter the VM thereby installing another VMEntryScope. Each VMEntryScope expects VM.topCallFrame and VM.stackPointerAtVMEntry to be set up properly for the previous VMEntryScope. However, in this case, we've installed the VMEntryScope for a potential ProgramExecutable but never executed a program to initialize its values for VM.topCallFrame and VM.stackPointerAtVMEntry. This in turn causes a crash when the second VMEntryScope makes use of VM.topCallFrame.

The fix is simply to defer installation of the VMEntryScope for the

program till we are actually sure that we will attempt to execute a
program.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL(stack_check)):

  • In llint_stack_check(), we pop the frame that we failed to set up before throwing the StackOverflowError. Added an update of topCallFrame here to reflect this popping action.
  • llint/LowLevelInterpreter64.asm:
  • The VMEntryScope will have to calculate and set up a jsStackLimit value before we actually know what the stack pointer is at the point when we re-enter the VM. So, instead of using the real stackPointerAtVMEntry for the jsStackLimit calculation, we use an estimate.

doCallToJavaScript() here will set VM.stackPointerAtVMEntry to its

real value. But before it does that, it needs to adjust VM.jsStackLimit
by the delta between the estimate and the real stackPointerAtVMEntry.

  • If doCallToJavaScript() fails its stack check for incoming args, it also needs to clear VM.stackPointerAtVMEntry so that C code can assert that the various pointers into the stack remain consistent.

By consistent, I mean that, given that the stack grows down, and that
VM.stackPointerAtVMEntry and VM.topCallFrame are properly initialized,
then the following should always be true:

let topOfStack = VM.topCallFrame->topOfFrame();
stackPointerAtVMEntry >= topOfStack >= stack pointer in a C helper function

and

JSStack.containsAddress(stackPointerAtVMEntry)

and

JSStack.containsAddress(topOfStack)

Clearing VM.stackPointerAtVMEntry, if the stack check in doCallToJavaScript()
fails, indicates we failed to enter the current VMEntryScope and that we
should be using the previous VMEntryScope's stackPointerAtVMEntry and
topCallFrame for the above assertions.

NOTE: These assertions are done in VMEntryScope::updateStackLimits().

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):
(JSC::VMEntryScope::stackUsageFor):
(JSC::VMEntryScope::updateStackLimits):
(JSC::VMEntryScope::currentStackPointer):
(JSC::VMEntryScope::requiredCapacity):

  • requiredCapacity() now computes the excess amount C stack capacity that we have available, and discount it in the computation of the JS stack limit. By excess, I mean the amount of unused C stack space that exceeds the amount of unused JS stack space capacity.
  • runtime/VMEntryScope.h:
12:34 AM Changeset in webkit [161179] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Return early in ResourceHandle::receivedCancellation if the load has already cancelled
https://bugs.webkit.org/show_bug.cgi?id=126287

Reviewed by Martin Robinson.

This situation can happen when using the network process, because
the ReceivedCancellation message can be received when the resource
loader has already been removed, but the authentication challenge
still has a reference to the ResourceHandleClient.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::receivedCancellation):

12:32 AM Changeset in webkit [161178] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] The initiating page is lost after a redirection
https://bugs.webkit.org/show_bug.cgi?id=126293

Reviewed by Martin Robinson.

The initiating page id is attached to the initial soup request
object, but not to the one created after a redirection.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::createSoupRequestAndMessageForHandle): Call
setSoupRequestInitiatingPageIDFromNetworkingContext() here if the
soup request is created successfully.
(WebCore::ResourceHandle::start): Remove the call to
setSoupRequestInitiatingPageIDFromNetworkingContext().

12:30 AM Changeset in webkit [161177] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Implement ResourceHandle::continueWillSendRequest()
https://bugs.webkit.org/show_bug.cgi?id=126291

Reviewed by Martin Robinson.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::continueAfterWillSendRequest): Helper function that
continues with the load after willSendRequest has been called.
(WebCore::doRedirect): Call continueAfterWillSendRequest() when
client doesn't use async callbacks.
(WebCore::ResourceHandle::continueWillSendRequest): Call
continueAfterWillSendRequest().

12:28 AM Changeset in webkit [161176] by Carlos Garcia Campos
  • 4 edits in trunk/Source

[SOUP] willSendRequest doesn't work after a redirect
https://bugs.webkit.org/show_bug.cgi?id=126290

Reviewed by Martin Robinson.

Source/WebCore:

The problem is that we are creating the new soup request for the
redirect before calling ResourceHandleClient::willSendRequest() so
that any change made to the request by the client is ignored.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::doRedirect): Create the new soup request and soup
message for the redirect after calling willSendRequest() on the
client.

Source/WebKit2:

Add test cases to test send-request signal in case of
redirection.

  • UIProcess/API/gtk/tests/TestResources.cpp:

(testWebResourceSendRequest):
(serverCallback):

Note: See TracTimeline for information about the timeline view.