WebKit-https.git
7 years agoRemove unnecessary function from TextPainter
mmaxfield@apple.com [Wed, 3 Sep 2014 23:10:31 +0000 (23:10 +0000)]
Remove unnecessary function from TextPainter
https://bugs.webkit.org/show_bug.cgi?id=136497

Reviewed by Simon Fraser.

Function is never called.

No new tests because there is no behavior change.

* rendering/TextPainter.cpp:
(WebCore::TextPainter::paintTextInContext): Deleted.
* rendering/TextPainter.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDon't use DEPRECATED_DEFINE_STATIC_LOCAL for mutexes
andersca@apple.com [Wed, 3 Sep 2014 22:56:48 +0000 (22:56 +0000)]
Don't use DEPRECATED_DEFINE_STATIC_LOCAL for mutexes
https://bugs.webkit.org/show_bug.cgi?id=136510

Reviewed by Andreas Kling.

Mutexes are intended to be used from multiple threads, and DEPRECATED_DEFINE_STATIC_LOCAL is not thread safe.

* bindings/objc/DOMInternal.mm:
(wrapperCacheLock):
(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):
Use LazyNeverDestroyed + std::call_once, and switch the mutex over to an std::mutex.

* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::assertNoActiveIterators):
(WebCore::EventListenerIterator::EventListenerIterator):
(WebCore::EventListenerIterator::~EventListenerIterator):
(WebCore::activeIteratorCountMutex):
(WebCore::EventListenerMap::EventListenerMap): Deleted.
* dom/EventListenerMap.h:
Use an std::atomic<int> instead of a mutex here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173240 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Unreviewed test fix.
bfulgham@apple.com [Wed, 3 Sep 2014 22:55:02 +0000 (22:55 +0000)]
[Win] Unreviewed test fix.

* Scripts/webkitperl/auto-version_unittest/versionStampTests.pl: Don't fail
test if user doesn't have the VersionStamp.exe program.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173239 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAvoid warning if a process does not have access to com.apple.webinspector
commit-queue@webkit.org [Wed, 3 Sep 2014 22:50:17 +0000 (22:50 +0000)]
Avoid warning if a process does not have access to com.apple.webinspector
https://bugs.webkit.org/show_bug.cgi?id=136473

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-09-03
Reviewed by Alexey Proskuryakov.

Pre-check for access to the mach port to avoid emitting warnings
in syslog for processes that do not have access.

* inspector/remote/RemoteInspector.mm:
(Inspector::canAccessWebInspectorMachPort):
(Inspector::RemoteInspector::shared):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173238 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoTemporarily disable call edge profiling. It is causing crashes and I'm still investig...
fpizlo@apple.com [Wed, 3 Sep 2014 22:44:34 +0000 (22:44 +0000)]
Temporarily disable call edge profiling. It is causing crashes and I'm still investigating
them.

* runtime/Options.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173237 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Mark a number of passing tests.
bfulgham@apple.com [Wed, 3 Sep 2014 22:26:34 +0000 (22:26 +0000)]
[Win] Mark a number of passing tests.

* platform/win/TestExpectations: Update expectations based on passes
on multiple test bots.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173236 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove PLATFORM(IOS) from WebCore/editing (Part 1).
enrica@apple.com [Wed, 3 Sep 2014 22:15:29 +0000 (22:15 +0000)]
Remove PLATFORM(IOS) from WebCore/editing (Part 1).
https://bugs.webkit.org/show_bug.cgi?id=136474

Reviewed by Tim Horton.

Source/WebCore:

This is the first part of the work to remove PLATFORM(IOS) everywhere
in the editing code.

* dom/Range.cpp:
(WebCore::Range::create): Adding create function that takes VisiblePosition.
* dom/Range.h:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::inputText):
* editing/CompositeEditCommand.h:
* editing/DeleteButton.h: No need for the platform guard since it is already under
DELETION_UI
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::enable):
(WebCore::DeleteButtonController::disable):
* editing/EditAction.h:
* editing/EditCommand.h:
(WebCore::EditCommand::isInsertTextCommand):
* editing/Editor.cpp:
(WebCore::ClearTextCommand::CreateAndApply):
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::executeClearText):
(WebCore::enabledCopy):
(WebCore::enabledCut):
(WebCore::enabledClearText):
(WebCore::createCommandMap):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modifyMovingBackward):
* editing/InsertTextCommand.h:
* editing/TextCheckingHelper.cpp:
* editing/TextGranularity.h:
* editing/VisiblePosition.h:
(WebCore::operator>=):
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
* editing/VisibleUnits.cpp:
* editing/VisibleUnits.h:

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.mm:
(undoNameForEditAction):

Source/WebKit2:

* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::nameForEditAction):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173235 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoGet rid of some uses of OwnPtr
andersca@apple.com [Wed, 3 Sep 2014 22:02:08 +0000 (22:02 +0000)]
Get rid of some uses of OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=136503

Reviewed by Sam Weinig.

* dom/ElementRareData.cpp:
* dom/ElementRareData.h:
(WebCore::ElementRareData::create): Deleted.
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::create): Deleted.
* dom/MutationObserverRegistration.h:
* dom/Node.cpp:
(WebCore::Node::materializeRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::eventTargetDataMap):
(WebCore::Node::eventTargetData):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
(WebCore::NodeListsNodeData::create): Deleted.
(WebCore::NodeMutationObserverData::create): Deleted.
(WebCore::NodeRareData::create): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173234 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agohttps://bugs.webkit.org/show_bug.cgi?id=136395
commit-queue@webkit.org [Wed, 3 Sep 2014 21:52:06 +0000 (21:52 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=136395
Need a way to get userAgent from WKWebView.

Add _userAgent property to return user agent string from WKWebView.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-09-03
Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _userAgent]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173233 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[MIPS] Wrong register usage in LLInt op_catch.
commit-queue@webkit.org [Wed, 3 Sep 2014 21:50:46 +0000 (21:50 +0000)]
[MIPS] Wrong register usage in LLInt op_catch.
https://bugs.webkit.org/show_bug.cgi?id=125168

Patch by Balazs Kilvady <kilvadyb@homejinni.com> on 2014-09-03
Reviewed by Geoffrey Garen.

Fix register usage and add PIC header to all the ops in LLInt.

* offlineasm/instructions.rb:
* offlineasm/mips.rb:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd myself as a committer.
dburkart@apple.com [Wed, 3 Sep 2014 21:42:18 +0000 (21:42 +0000)]
Add myself as a committer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173231 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoClean up naming for and slightly refactor legacy video fullscreen support
mjs@apple.com [Wed, 3 Sep 2014 21:32:25 +0000 (21:32 +0000)]
Clean up naming for and slightly refactor legacy video fullscreen support
https://bugs.webkit.org/show_bug.cgi?id=136446

Reviewed by Jer Noble.

Key changes:
supportsFullscreenForNode(Node*) --> supportsVideoFullscreen()
enterFullscreenForNode(Node*) --> enterVideoFullscreenForVideoElement(HTMLVideoElement*)
exitFullscreenForNode(Node*) --> exitVideoFullscreen()

The old versions had unnecessary parameters, did not clearly distinguish their purpose
from enterFullscreenForElement and friends, and wrongly claimed generality to all Nodes.
Also changed many other places to use HTMLVideoElement* instead of Node* or
HTMLMediaElement* when they were in fact only used for video elements and would only
work for such.

Source/WebCore:

The implications of this include a bunch of renaming in some iOS fullscreen code.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Rename m_isFullscreen flag to
m_isInVideoFullscreen, since it only covers the case of legacy video fullscreen,
not element fullscreen.
(WebCore::HTMLMediaElement::stop): ditto
(WebCore::HTMLMediaElement::requiresTextTrackRepresentation): ditto
(WebCore::HTMLMediaElement::isFullscreen): ditto
(WebCore::HTMLMediaElement::enterFullscreen): Rename m_isFullscreen flag to
m_isInVideoFullscreen. Hoist video element check here from all supportsFullscrenForNode
clients. Adjust for relevant ChromeClient refactorings.
(WebCore::HTMLMediaElement::enterFullscreen): ditto above
* html/HTMLMediaElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::supportsFullscreen): Adjust for relevant ChromeClient
refactorings.
* page/ChromeClient.h:
(WebCore::ChromeClient::supportsVideoFullscreen): Renamed from
supportsFullscreenForNode, and removed Node* parameter.
(WebCore::ChromeClient::enterVideoFullscreenForVideoElement): Renamed from
enterFulscreenForNode and changed Node* parameter to HTMLVideoElement*.
(WebCore::ChromeClient::exitVideoFullscreen): Renamed from
exitFullscreenForNode, and removed Node* parameter.
* platform/ios/WebVideoFullscreenControllerAVKit.h:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController videoElement]): Renamed from mediaElement;
return a video element and not just a media element.
(-[WebVideoFullscreenController dealloc]): Renamed _mediaElement data member
to _videoElement and changed type accordingly.
(-[WebVideoFullscreenController setVideoElement:]): Renamed from setMediaElement:
and adjust parameter type accordingly.
(-[WebVideoFullscreenController enterFullscreen:]): Video elements, not media
elements.
(-[WebVideoFullscreenController exitFullscreen]): ditto
(-[WebVideoFullscreenController didCleanupFullscreen]): ditto
* platform/ios/WebVideoFullscreenInterface.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove gratuitous HTMLMEdiaElement.h include
and fix declarations accordingly.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Include WTFString.h
* platform/ios/WebVideoFullscreenModelVideoElement.h: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h.
* platform/ios/WebVideoFullscreenModelVideoElement.mm: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm.
(WebVideoFullscreenModelVideoElement) Renamed from WebVideoFullscreenModelMediaElement
(WebVideoFullscreenModelVideoElement::setVideoElement): Renamed from setMediaElement and
change param type accordingly. Also no need to check for actual videoness of the element.
(WebVideoFullscreenModelVideoElement::updateForEventName): Rename data member from m_mediaElement
to m_videoElement and change type accordingly.
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): ditto
(WebVideoFullscreenModelVideoElement::play): ditto
(WebVideoFullscreenModelVideoElement::pause): ditto
(WebVideoFullscreenModelVideoElement::togglePlayState): ditto
(WebVideoFullscreenModelVideoElement::beginScrubbing): ditto
(WebVideoFullscreenModelVideoElement::endScrubbing): ditto
(WebVideoFullscreenModelVideoElement::seekToTime): ditto
(WebVideoFullscreenModelVideoElement::fastSeek): ditto
(WebVideoFullscreenModelVideoElement::beginScanningForward): ditto
(WebVideoFullscreenModelVideoElement::beginScanningBackward): ditto
(WebVideoFullscreenModelVideoElement::endScanning): ditto
(WebVideoFullscreenModelVideoElement::requestExitFullscreen): ditto
(WebVideoFullscreenModelVideoElement::setVideoLayerFrame): ditto
(WebVideoFullscreenModelVideoElement::setVideoLayerGravity): ditto
(WebVideoFullscreenModelVideoElement::updateLegibleOptions): ditto
* platform/mac/WebVideoFullscreenController.h:
* platform/mac/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController videoElement]): Renamed from mediaElement
and update return type accordingly.
(-[WebVideoFullscreenController setVideoElement:]): Renamed from
setMediaElement and update return type accordingly.
(-[WebVideoFullscreenController videoElementRect]): Renamed
from mediaElementRect.
(-[WebVideoFullscreenController enterFullscreen:]): Update for
rename.
(-[WebVideoFullscreenController exitFullscreen]): ditto
(-[WebVideoFullscreenController updatePowerAssertions]): Rename
member from _mediaElement to _videoElement
(-[WebVideoFullscreenController _requestExit]): ditto
* WebCore.exp.in: Adjust for function and class renames.
* WebCore.xcodeproj/project.pbxproj: Adjust for file renames.

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::supportsVideoFullscreen): Adjust for main refactoring.
Also no more need to check for video elementness.
(WebChromeClient::enterVideoFullscreenForVideoElement): Adjust for main refactoring.
(WebChromeClient::exitVideoFullscreen): ditto
* WebView/WebView.mm:
(-[WebView _enterVideoFullscreenForVideoElement:]): Adjust for main
refactoring.
(-[WebView _exitVideoFullscreen]): ditto
(-[WebView _close]): ditto
* WebView/WebViewInternal.h:

Source/WebKit/win:

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::supportsVideoFullscreen): Adjust for the
main refactoring.
(WebChromeClient::enterVideoFullscreenForVideoElement): ditto
(WebChromeClient::exitVideoFullscreen): ditto
* WebCoreSupport/WebChromeClient.h:
* WebView.cpp:
(WebView::enterVideoFullscreenForVideoElement): Adjust for the
main refactoring.
(WebView::exitVideoFullscreen): ditto.
* WebView.h:
* FullscreenVideoController.cpp: Use video elements, not media elements throughout
(FullscreenVideoController::LayerClient::platformCALayerLayoutSublayersOfLayer):
(FullscreenVideoController::setVideoElement):
(FullscreenVideoController::enterFullscreen):
(FullscreenVideoController::exitFullscreen):
(FullscreenVideoController::canPlay):
(FullscreenVideoController::play):
(FullscreenVideoController::pause):
(FullscreenVideoController::volume):
(FullscreenVideoController::setVolume):
(FullscreenVideoController::currentTime):
(FullscreenVideoController::setCurrentTime):
(FullscreenVideoController::duration):
(FullscreenVideoController::beginScrubbing):
(FullscreenVideoController::endScrubbing):
(FullscreenVideoController::onChar):
(FullscreenVideoController::onKeyDown):
(FullscreenVideoController::onMouseUp):
* FullscreenVideoController.h:
(FullscreenVideoController::videoElement):

Source/WebKit2:

Legacy video fullscreen in WebKit2 is only supported on iOS (for other ports that support
it, it's WK1 only).

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::supportsVideoFullscreen): Adjust for renames as
mentioned.
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): ditto
(WebKit::WebChromeClient::exitVideoFullscreen): ditto
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/ios/WebVideoFullscreenManager.h:
* WebProcess/ios/WebVideoFullscreenManager.mm:
(WebKit::clientRectForElement): No need to be generic to node.
(WebKit::WebVideoFullscreenManager::supportsVideoFullscreen): Adjust for the
main refactoring. Also change m_node to m_videoElement with appropriate type change.
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): ditto
(WebKit::WebVideoFullscreenManager::exitVideoFullscreen): ditto
(WebKit::WebVideoFullscreenManager::didEnterFullscreen): ditto
(WebKit::WebVideoFullscreenManager::didExitFullscreen): ditto
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen): ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173230 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix style invalidation of elements with multiple siblings dependencies
benjamin@webkit.org [Wed, 3 Sep 2014 21:30:31 +0000 (21:30 +0000)]
Fix style invalidation of elements with multiple siblings dependencies
https://bugs.webkit.org/show_bug.cgi?id=136472

Reviewed by Andreas Kling.

Source/WebCore:

Previously, style invalidation of siblings was driven by a pair of flags:
-ChildrenAffectedByDirectAdjacentRules.
-ChildrenAffectedByForwardPositionalRules.

When ChildrenAffectedByDirectAdjacentRules was set, the element after an element
with "needsStyleRecalc" was also recomputed. While this work for pair of elements:
    a + b
It does not work for more than that. For example, with
    a.propery + b + c
When the state of <a> changes, the style of <b> was updated, which is useless. The style
of <c> was untouched, which is incorrect.

When ChildrenAffectedByForwardPositionalRules, all elements after one with "needsStyleRecalc"
were invalidated. While more correct, it caused avalanche of style recalc and was not a very
useful "optimization".

To fix the correctness issues (e.g. "a + b + c"), I could have gone two ways:
1) Invalidate the parent of a, b, c. The children would always get a correct style
   when their parent's style would be resolved.
2) Create invalidation relations to enforce that the right siblings are invalidated.

I have decided for a weak version of (2). The reason is that most DOM trees are very
shallow while being very wide. Invalidating the parent generally causes massive style
recalculation.

To keep things simple for now, there is no explicit dependency list between siblings.
Instead, each element has a pair of flag:
1) The element's style depends on the state of a previous sibling.
2) The element's state affects following siblings.

With the notation "<-" for (1), "->" for (2), the selector "a + b + c" create this kind
of marking:
    a  +  b  +  c
    ->    ->
               <-

When <a> is invalidated, the style resolver will go through the chain of dependent elements
and invalidate any element that can be affected by a prior invalidation, here <c>.

Overlaps are possible. For example with the two selector, "a + b + c", "b ~ d"
the marking would be
    a  +  b  +  c  +  d
    ->    ->    ->
               <-    <-

A change in <a> would invalidate both <c> and <d>. This is overkill, but the end result
is correct and it is a net improvement over the previous flags.

As usual, the CSS JIT makes an effort at compile time to reduce tree marking. SelectorChecker
marks everything as usual.

Tests: fast/css/direct-adjacent-style-update-optimization.html
       fast/css/indirect-adjacent-style-update-optimization.html
       fast/css/non-matching-adjacent-style-update.html
       fast/selectors/first-of-type-direct-adjacent-style-update.html
       fast/selectors/first-of-type-sibling-style-update.html
       fast/selectors/id-direct-adjacent-style-update.html
       fast/selectors/id-sibling-style-update.html
       fast/selectors/nth-child-as-first-simple-selector-style-update.html
       fast/selectors/nth-child-direct-adjacent-style-update.html
       fast/selectors/nth-child-style-update.html

* css/SelectorChecker.cpp:
(WebCore::isFirstOfType):
(WebCore::countElementsBefore):
(WebCore::countElementsOfTypeBefore):
Counting selectors are not unlike adjacent combinators, they are handled the exact same way.
For example a :nth-child(4) would generate somewhat similar marking as
    :first-child + * + * + *

Everything prior to the element with the counter affects the style of the element.

(WebCore::hasScrollbarPseudoElement):
The assertion was incorrect. You can get an scrollbar pseudo ID on an element without scrollbar.
It will never match, but such case is possible.

(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::checkOne):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
Previously, any subtree affected by sibling selectors were unshareable. That was done by checking
for Element::hasFlagsSetDuringStylingOfChildren().

Now that sibling relation are local, they no longer prevent sharing of all children. Instead, we can
test locally for subgroup with sibling relations.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::isAdjacentRelation):
(WebCore::SelectorCompiler::shouldMarkStyleIsAffectedByPreviousSibling):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markElementIfResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle): Deleted.
* dom/Document.cpp:
(WebCore::nodeOrItsAncestorNeedsStyleRecalc):
* dom/Element.cpp:
(WebCore::checkForSiblingStyleChanges):
(WebCore::Element::hasFlagsSetDuringStylingOfChildren):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules): Deleted.
* dom/Element.h:
(WebCore::Element::affectsNextSiblingElementStyle):
(WebCore::Element::setAffectsNextSiblingElementStyle):
(WebCore::Element::setStyleIsAffectedByPreviousSibling):
(WebCore::Element::childrenAffectedByPositionalRules): Deleted.
(WebCore::Element::childrenAffectedByDirectAdjacentRules): Deleted.
(WebCore::Element::childrenAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::setChildrenAffectedByDirectAdjacentRules): Deleted.
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetDynamicRestyleObservations):
(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules): Deleted.
* dom/Node.h:
(WebCore::Node::styleIsAffectedByPreviousSibling):
(WebCore::Node::flagAffectsNextSiblingElementStyle):
(WebCore::Node::flagStyleIsAffectedByPreviousSibling):
(WebCore::Node::flagChildrenAffectedByDirectAdjacentRulesFlag): Deleted.
* html/HTMLElement.h:
(WebCore::HTMLElement::isHTMLUnknownElement):
* html/HTMLUnknownElement.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::resolveTree):

LayoutTests:

The test coverage was pretty bad. :(
I tried to cover the most obvious problems.

* fast/css/direct-adjacent-style-update-optimization-expected.txt: Added.
* fast/css/direct-adjacent-style-update-optimization.html: Added.
* fast/css/indirect-adjacent-style-update-optimization-expected.txt: Added.
* fast/css/indirect-adjacent-style-update-optimization.html: Added.
* fast/css/non-matching-adjacent-style-update-expected.txt: Added.
* fast/css/non-matching-adjacent-style-update.html: Added.
* fast/selectors/attribute-direct-adjacent-style-update-expected.txt:
* fast/selectors/class-direct-adjacent-style-update-expected.txt:
* fast/selectors/first-child-direct-adjacent-style-update-expected.txt:
* fast/selectors/first-of-type-direct-adjacent-style-update-expected.txt: Copied from LayoutTests/fast/selectors/attribute-direct-adjacent-style-update-expected.txt.
* fast/selectors/first-of-type-direct-adjacent-style-update.html: Added.
* fast/selectors/first-of-type-sibling-style-update-expected.txt: Added.
* fast/selectors/first-of-type-sibling-style-update.html: Added.
* fast/selectors/id-direct-adjacent-style-update-expected.txt: Copied from LayoutTests/fast/selectors/attribute-direct-adjacent-style-update-expected.txt.
* fast/selectors/id-direct-adjacent-style-update.html: Added.
* fast/selectors/id-sibling-style-update-expected.txt: Added.
* fast/selectors/id-sibling-style-update.html: Added.
* fast/selectors/nth-child-as-first-simple-selector-style-update-expected.txt: Added.
* fast/selectors/nth-child-as-first-simple-selector-style-update.html: Added.
* fast/selectors/nth-child-direct-adjacent-style-update-expected.txt: Copied from LayoutTests/fast/selectors/attribute-direct-adjacent-style-update-expected.txt.
* fast/selectors/nth-child-direct-adjacent-style-update.html: Added.
* fast/selectors/nth-child-style-update-expected.txt: Added.
* fast/selectors/nth-child-style-update.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173229 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agobuild.webkit.org/dashboard performance popover is unstyled
ap@apple.com [Wed, 3 Sep 2014 21:29:52 +0000 (21:29 +0000)]
build.webkit.org/dashboard performance popover is unstyled
https://bugs.webkit.org/show_bug.cgi?id=136499

Reviewed by Tim Horton.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:
(.performance-popover):
(.performance-popover .dashboard-link):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173228 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd a test case for Element.matches() with :scope
benjamin@webkit.org [Wed, 3 Sep 2014 21:25:08 +0000 (21:25 +0000)]
Add a test case for Element.matches() with :scope
https://bugs.webkit.org/show_bug.cgi?id=136475

Reviewed by Andreas Kling.

There was not test for this use case. Looks like everything works fine.

* fast/selectors/matches-scope-expected.txt: Added.
* fast/selectors/matches-scope.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173227 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDump SimpleLineLayout info in showRenderTree() output
simon.fraser@apple.com [Wed, 3 Sep 2014 21:18:05 +0000 (21:18 +0000)]
Dump SimpleLineLayout info in showRenderTree() output
https://bugs.webkit.org/show_bug.cgi?id=136489

Reviewed by Zalan Bujtas.

Include info about SimpleLineLayout to showRenderTree() output.

Also show RenderText length, and truncate the RenderText contents
to 80 chars (since the string is replicated in inline boxes or simple line layout output).

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::showLineTreeAndMark):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::showRenderObject):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::printPrefix):
(WebCore::SimpleLineLayout::showLineTreeForFlow):
* rendering/SimpleLineLayoutFunctions.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173226 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCreate tests for type profiling
saambarati1@gmail.com [Wed, 3 Sep 2014 21:01:43 +0000 (21:01 +0000)]
Create tests for type profiling
https://bugs.webkit.org/show_bug.cgi?id=136161

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

The type profiler is now being tested. These are basic tests that don't
check every edge case, but will catch any major failures in the type profiler.
These tests cover:
- The basic, inheritance-based type system in TypeSet.
- Function return types.
- Correct merging of types for multiple assignments to one variable.

This patch also provides an API for writing new tests for
the type profiler. The API works by passing in a function and a
unique substring of an expression contained in that function, and
returns an object representing type information for that expression.

* jsc.cpp:
(GlobalObject::finishCreation):
(functionFindTypeForExpression):
(functionReturnTypeFor):
* runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::typeInformationForExpressionAtOffset):
* runtime/TypeProfiler.h:
* runtime/TypeProfilerLog.h:
* runtime/TypeSet.cpp:
(JSC::TypeSet::toJSONString):
(JSC::StructureShape::toJSONString):
* runtime/TypeSet.h:
* tests/typeProfiler: Added.
* tests/typeProfiler.yaml: Added.
* tests/typeProfiler/basic.js: Added.
(wrapper.foo):
(wrapper):
* tests/typeProfiler/captured.js: Added.
(wrapper.changeFoo):
(wrapper):
* tests/typeProfiler/driver: Added.
* tests/typeProfiler/driver/driver.js: Added.
(assert):
* tests/typeProfiler/inheritance.js: Added.
(wrapper.A):
(wrapper.B):
(wrapper.C):
(wrapper):
* tests/typeProfiler/return.js: Added.
(foo):
(Ctor):

Tools:

Have run-javascriptcore-tests run the newly created
tests for the type profiler.

* Scripts/run-javascriptcore-tests:
* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173225 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agobmalloc crashes on the EWS bots (due to bad large object allocation)
ggaren@apple.com [Wed, 3 Sep 2014 21:00:33 +0000 (21:00 +0000)]
bmalloc crashes on the EWS bots (due to bad large object allocation)
https://bugs.webkit.org/show_bug.cgi?id=136469

Reviewed by Andreas Kling.

It's possible to convince bmalloc to perform a bad large object allocation,
through these steps:

(1) Insert object A into freelist F0.

(2) Split, merge and split again A's neighbors such that object B is
inserted into freelist F0, with boundary tag and size equal to object A,
but pointer not completely equal to object A. Put object B at the head of F0.

(3) Allocate some other object from F0, swapping its position in the
freelist with object B, such that object A is now ahead of object B.

--> Now, the next allocation for size A/B will allocate object A, which
has a slightly wrong idea about where the object actually begins.
Immediately, you'll corrupt a little memory, and over time, you'll also
corrupt boundary tag metadata.

The solution is to store the begin pointer in the boundary tag. Luckily,
this doesn't make the tag any bigger, and it's not a noticeable slowdown
on MallocBench.

* bmalloc/Algorithm.h:
(bmalloc::rightShift):
* bmalloc/BeginTag.h:
(bmalloc::BeginTag::isInFreeList): This is the bug fix. Make sure to
validate the start pointer when popping off the free list. Through a
very uncommon set of steps, it is possible to have an item in the free
list that is valid by all accounts except for its start pointer.

* bmalloc/BoundaryTag.h:
(bmalloc::BoundaryTag::compactBegin):
(bmalloc::BoundaryTag::setRange):
(bmalloc::BoundaryTag::setSize): Deleted. Record a compact version of the
start pointer. We don't need the whole pointer -- just the offset, in
largeAlignment increments, into the relevant boundary tag bucket.

* bmalloc/BoundaryTagInlines.h:
(bmalloc::validateNext):
(bmalloc::BoundaryTag::init):
(bmalloc::BoundaryTag::mergeLarge):
(bmalloc::BoundaryTag::splitLarge):
* bmalloc/SegregatedFreeList.cpp:
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take): Provide the whole range instead of
the size when establishing a boundary tag, as required by the new
interface.

* bmalloc/Sizes.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173224 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMallocBench should have a stress test for correctness
ggaren@apple.com [Wed, 3 Sep 2014 20:59:58 +0000 (20:59 +0000)]
MallocBench should have a stress test for correctness
https://bugs.webkit.org/show_bug.cgi?id=136468

Reviewed by Andreas Kling.

Added a stress test that allocates randomized sizes of randomized
lifetimes in randomized order.

This version of the test reproduces the EWS crash seen in bmalloc
(<https://bugs.webkit.org/show_bug.cgi?id=132629>).

* MallocBench/MallocBench.xcodeproj/project.pbxproj:
* MallocBench/MallocBench/Benchmark.cpp: Sort!
* MallocBench/MallocBench/stress.cpp: Added.
(Object::Object):
(SizeStream::SizeStream):
(SizeStream::next):
(benchmark_stress): Usually, we random(0). Surprisingly, though, only
random(1) reproduces the bug I was looking for.
* MallocBench/MallocBench/stress.h: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173223 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd missing implementations to fix build for sh4 architecture
julien.brianceau@gmail.com [Wed, 3 Sep 2014 20:53:20 +0000 (20:53 +0000)]
Add missing implementations to fix build for sh4 architecture
https://bugs.webkit.org/show_bug.cgi?id=136455

Reviewed by Geoffrey Garen.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::store8):
(JSC::MacroAssemblerSH4::moveWithPatch):
(JSC::MacroAssemblerSH4::branchAdd32):
(JSC::MacroAssemblerSH4::branch32WithPatch):
(JSC::MacroAssemblerSH4::abortWithReason):
(JSC::MacroAssemblerSH4::canJumpReplacePatchableBranch32WithPatch):
(JSC::MacroAssemblerSH4::startOfPatchableBranch32WithPatchOnAddress):
(JSC::MacroAssemblerSH4::revertJumpReplacementToPatchableBranch32WithPatch):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitFunctionPrologue):
(JSC::AssemblyHelpers::emitFunctionEpilogue):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoiOS build fix after r173217
timothy_horton@apple.com [Wed, 3 Sep 2014 20:26:52 +0000 (20:26 +0000)]
iOS build fix after r173217

* platform/graphics/ios/FontServicesIOS.h:
(WebCore::FontServicesIOS::capHeight):
* platform/graphics/ios/FontServicesIOS.mm:
(WebCore::FontServicesIOS::FontServicesIOS):
This fixes the build, but I don't know if it's completely correct.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173221 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoGet rid of DOMImplementationFront
andersca@apple.com [Wed, 3 Sep 2014 20:18:36 +0000 (20:18 +0000)]
Get rid of DOMImplementationFront
https://bugs.webkit.org/show_bug.cgi?id=136495

Reviewed by Andreas Kling.

DOMImplementationFront was used in a workaround for a GCC bug, and since we're building with clang
on Mac this is no longer an issue.

* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMImplementationFront.cpp: Removed.
* bindings/objc/DOMImplementationFront.h: Removed.
Remove files.

* bindings/objc/DOMUtility.mm:
(JSC::createDOMWrapper):
Remove call to implementationFront.

* bindings/scripts/CodeGeneratorObjC.pm:
(GetImplClassName):
Remove DOMImplementation special case

(AddIncludesForType):
Ditto.

(GenerateHeader):
Use the class header name in the #import in the internal header.

(GenerateImplementation):
Remove DOMImplementation special case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173220 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Revise test environment for Windows build.
bfulgham@apple.com [Wed, 3 Sep 2014 20:12:31 +0000 (20:12 +0000)]
[Win] Revise test environment for Windows build.
https://bugs.webkit.org/show_bug.cgi?id=136486

Reviewed by David Kilzer.

The various calls to get the Safari path really only have
meaning on the Mac. Other ports get access to the build
and test environment separately, so remove the various
checks in the Safari-specific code to simplify things.

Remove some 64-bit hacks used on Windows now that the
various tools know how to find the 64-bit runtime environment.

* Scripts/run-javascriptcore-tests:
* Scripts/webkitdirs.pm:
(safariPathFromSafariBundle): Revise to expect Mac.
(installedSafariPath): Ditto.
(safariPath): Ditto.
(appleApplicationSupportPath): Get rid of 64-bit Windows hack.
(setPathForRunningWebKitApp): Get rid of unused SafariPath
argument for Windows runs.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173219 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Improper release of unretained AVCFAssetResourceLoaderRef
bfulgham@apple.com [Wed, 3 Sep 2014 19:57:34 +0000 (19:57 +0000)]
[Win] Improper release of unretained AVCFAssetResourceLoaderRef
https://bugs.webkit.org/show_bug.cgi?id=136493
<rdar://problem/18112559>

Reviewed by Eric Carlson.

Don't bother wrapping the return value of AVCFURLAssetGetResourceLoader in a
RetainPtr. We don't hold onto this value or want to control its lifetime; we just
want to pass it to the AVCFAssetResourceLoaderSetCallbacks function.

Use of the RetainPtr created a double-release and crash.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createAssetForURL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173218 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd support for the initial-letter CSS property to first-letter
hyatt@apple.com [Wed, 3 Sep 2014 19:26:38 +0000 (19:26 +0000)]
Add support for the initial-letter CSS property to first-letter
https://bugs.webkit.org/show_bug.cgi?id=136484

Reviewed by Dean Jackson.
Source/WebCore:

New tests in fast/css-generated-content/initial-letter-*.html

This patch add support for the CSS initial-letter property, enabling
better drop caps support in WebKit. Letters size to a specified number of
paragraph lines, and align to the cap-height of the first line and the baseline
of the last line.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
Add -webkit-initial-letter to the list.

* css/CSSLineBoxContainValue.cpp:
(WebCore::CSSLineBoxContainValue::customCSSText):
* css/CSSLineBoxContainValue.h:
Add support for a new value of line-box-contain, initial-letter, that causes
lines to use cap-height above the baseline and the glyph bounds below the
baseline.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Add support for parsing of initial-letter.

(WebCore::CSSParser::parseLineBoxContain):
Add the new line-box-contain value for first-letters with initial-letter set.

* css/CSSPropertyNames.in:
Add the new initial-letter property.

* css/CSSValueKeywords.in:
Add the new initial-letter line-box-contain value.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Map initial-letter into the RenderStyle.

* platform/graphics/FontMetrics.h:
(WebCore::FontMetrics::hasCapHeight):
(WebCore::FontMetrics::floatCapHeight):
(WebCore::FontMetrics::setCapHeight):
(WebCore::FontMetrics::capHeight):
* platform/graphics/ios/SimpleFontDataIOS.mm:
(WebCore::SimpleFontData::platformInit):
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):
Add support for cap-height to the font system. iOS and Mac have been patched.
Other platforms will need to add support for cap-height to get this feature.
hasCapHeight() will return false for unsupported platforms for graceful
degradation.

* rendering/RenderBlock.cpp:
(WebCore::styleForFirstLetter):
Modified to check for initialLetterDrop/Height and to adjust the style
accordingly (e.g., to apply float when needed).

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
Code to adjust the float's position and margin to do cap-height alignment
and sunken letters.

* rendering/RenderBlockFlow.h:
Remove the const from computeLogicalLocationForFloat, since the margin of the
float can now be modified dynamically for sunken first-letters.

* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::ascentAndDescentForBox):
Add support for initial-letter line-box-contain value.

* rendering/RootInlineBox.h:
Add the includeInitialLetterForBox method to support the new line-box-contain value.

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
Normal maintenance stuff for addition of a new CSS property (making sure it is diffed
properly for layout changes and copied on assignment, etc.)

LayoutTests:

* fast/css-generated-content/initial-letter-basic.html: Added.
* fast/css-generated-content/initial-letter-border-padding.html: Added.
* fast/css-generated-content/initial-letter-descender.html: Added.
* fast/css-generated-content/initial-letter-raised.html: Added.
* fast/css-generated-content/initial-letter-sunken.html: Added.
* platform/mac/fast/css-generated-content/initial-letter-basic-expected.png: Added.
* platform/mac/fast/css-generated-content/initial-letter-basic-expected.txt: Added.
* platform/mac/fast/css-generated-content/initial-letter-border-padding-expected.png: Added.
* platform/mac/fast/css-generated-content/initial-letter-border-padding-expected.txt: Added.
* platform/mac/fast/css-generated-content/initial-letter-descender-expected.png: Added.
* platform/mac/fast/css-generated-content/initial-letter-descender-expected.txt: Added.
* platform/mac/fast/css-generated-content/initial-letter-raised-expected.png: Added.
* platform/mac/fast/css-generated-content/initial-letter-raised-expected.txt: Added.
* platform/mac/fast/css-generated-content/initial-letter-sunken-expected.png: Added.
* platform/mac/fast/css-generated-content/initial-letter-sunken-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173217 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Prevent double-release on AVCFURLAssetRef
bfulgham@apple.com [Wed, 3 Sep 2014 19:22:12 +0000 (19:22 +0000)]
[Win] Prevent double-release on AVCFURLAssetRef
https://bugs.webkit.org/show_bug.cgi?id=136492
<rdar://problem/18206746>

Reviewed by Eric Carlson.

The AVFWrapper::setAsset method needs to retain the passed argument, since it
originates from AVCFPlayerItemGetAsset, which does not increment the
reference count of its return value as expected by Cocoa Get/Create/Copy
semantics.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::setAsset): Retain the passed argument.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173216 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoGet rid of HIGH_DPI_CANVAS leftovers
mitz@apple.com [Wed, 3 Sep 2014 19:17:49 +0000 (19:17 +0000)]
Get rid of HIGH_DPI_CANVAS leftovers
https://bugs.webkit.org/show_bug.cgi?id=136491

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
and removed it from FEATURE_DEFINES.

Source/WebCore:

* Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
and removed it from FEATURE_DEFINES.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Removed #if ENABLE(HIGH_DPI_CANVAS)
code.

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
and removed it from FEATURE_DEFINES.

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
and removed it from FEATURE_DEFINES.

Source/WTF:

* wtf/FeatureDefines.h: Removed definition of ENABLE_HIGH_DPI_CANVAS.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173215 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCallEdgeProfile::visitWeak() should gracefully handle the case where primaryCallee...
fpizlo@apple.com [Wed, 3 Sep 2014 18:58:24 +0000 (18:58 +0000)]
CallEdgeProfile::visitWeak() should gracefully handle the case where primaryCallee duplicates an entry in otherCallees
https://bugs.webkit.org/show_bug.cgi?id=136490

Reviewed by Geoffrey Garen.

* bytecode/CallEdgeProfile.cpp:
(JSC::CallEdgeProfile::visitWeak):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173214 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFTL In implementation sets callReturnLocation incorrectly leading to crashes beneath...
fpizlo@apple.com [Wed, 3 Sep 2014 18:50:23 +0000 (18:50 +0000)]
FTL In implementation sets callReturnLocation incorrectly leading to crashes beneath repatchCall()
https://bugs.webkit.org/show_bug.cgi?id=136488

Reviewed by Mark Hahnenberg.

* ftl/FTLCompile.cpp:
(JSC::FTL::generateCheckInICFastPath): The call is in the slow path.
* tests/stress/ftl-in-overflow.js: Added. This used to crash with 100% with FTL enabled.
(foo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173213 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse StringBuilder append(char) and appendLiteral in more places
commit-queue@webkit.org [Wed, 3 Sep 2014 18:42:54 +0000 (18:42 +0000)]
Use StringBuilder append(char) and appendLiteral in more places
https://bugs.webkit.org/show_bug.cgi?id=136470

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-09-03
Reviewed by Andreas Kling.

* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::loggingString):
* Modules/websockets/WebSocket.cpp:
(WebCore::encodeProtocolString):
* Modules/websockets/WebSocketExtensionDispatcher.cpp:
(WebCore::WebSocketExtensionDispatcher::createHeaderValue):
(WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientLocation):
(WebCore::WebSocketHandshake::clientHandshakeMessage):
* css/CSSCalculationValue.cpp:
(WebCore::buildCssText):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssText):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::cssText):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::selectorsText):
* css/CSSSupportsRule.cpp:
(WebCore::CSSSupportsRule::cssText):
* css/MediaQuery.cpp:
(WebCore::MediaQuery::serialize):
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::generateUniquePrefix):
* editing/markup.cpp:
(WebCore::urlToMarkup):
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::convertToDataURL):
* html/EmailInputType.cpp:
(WebCore::EmailInputType::sanitizeValue):
* html/FormController.cpp:
(WebCore::recordFormStructure):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::buildConsoleError):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::collectCueText):
* mathml/MathMLMencloseElement.cpp:
(WebCore::MathMLMencloseElement::longDivLeftPadding):
* page/PageSerializer.cpp:
(WebCore::SerializerMarkupAccumulator::appendElement):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::toRawString):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
* page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::logThreadedScrollingMode):
* platform/PODInterval.h:
(WebCore::PODInterval::toString):
* platform/PODRedBlackTree.h:
(WebCore::PODRedBlackTree::dumpFromNode):
* platform/UUID.cpp:
(WebCore::createCanonicalUUIDString):
* platform/network/ProxyServer.cpp:
(WebCore::appendProxyServerString):
(WebCore::toString):
* platform/text/DateTimeFormat.cpp:
(WebCore::DateTimeFormat::quoteAndAppendLiteral):
* platform/text/PlatformLocale.cpp:
(WebCore::DateTimeStringBuilder::zeroPadString):
(WebCore::Locale::convertFromLocalizedNumber):
* platform/text/TextStream.cpp:
(WebCore::TextStream::operator<<):
* rendering/RenderListMarker.cpp:
(WebCore::listMarkerText):
* testing/Internals.cpp:
(WebCore::Internals::parserMetaData):
(WebCore::Internals::getCurrentCursorInfo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173212 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDashboard should show performance bots.
dburkart@apple.com [Wed, 3 Sep 2014 17:57:25 +0000 (17:57 +0000)]
Dashboard should show performance bots.
https://bugs.webkit.org/show_bug.cgi?id=136386

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype._parseData.collectPerfTestResults):
(BuildbotIteration.prototype._parseData):
Support possible performance failures.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotPerformanceQueueView.js:
New QueueView to manage the way we present performance data.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:
(BuildbotQueue):
Support new 'performance' and 'performanceTestName' keys.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
Add performance column to the main page.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(body):
Make sure everything fits on 13 inch screens.

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173211 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Unreviewed test gardening.
bfulgham@apple.com [Wed, 3 Sep 2014 17:37:36 +0000 (17:37 +0000)]
[Win] Unreviewed test gardening.

Remove abandoned results for tests that had been converted to reftest.
Also resolve warnings in TestExpectation file.

* platform/win/TestExpectations:
* platform/win/ietestcenter/css3/flexbox: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-baseline-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-baseline-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-center-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-center-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-center-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-center-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-end-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-end-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-start-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-start-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-stretch-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-align-stretch-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-direction-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-direction-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-004-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-004-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-005-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-flex-005-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-004-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-groups-004-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-layout-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-ordinal-group-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-center-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-center-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-end-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-end-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-justify-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-justify-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-start-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/flexbox/flexbox-pack-start-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid: Removed.
* platform/win/ietestcenter/css3/grid/display-grid-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/display-grid-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/display-grid-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/display-grid-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-column-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-columns-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-columns-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-004-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-004-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-005-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/grid/grid-items-005-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-block-formatting-context-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-block-formatting-context-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-containing-block-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-filling-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-filling-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-002-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-002-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-004-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-004-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-005-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-005-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-006-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-006-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-007-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-007-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-008-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-008-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-009-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-009-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-010-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-010-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-012-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-012-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-013-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-013-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-014-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-014-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-015-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-015-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-negative-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-negative-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-percentage-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/multicolumn/column-width-percentage-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/declaring-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/declaring-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/prefix-008-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/prefix-008-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/prefix-009-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/prefix-009-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/qualifiedNames-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/qualifiedNames-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/scope-003-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/scope-003-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-016-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-016-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-017-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-017-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-018-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-018-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-019-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-019-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-020-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-020-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-021-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-021-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-022-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-022-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-023-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/syntax-023-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/terminology-001-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/namespaces/terminology-001-expected.txt: Removed.
* platform/win/ietestcenter/css3/valuesandunits: Removed.
* platform/win/ietestcenter/css3/valuesandunits/units-000-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/valuesandunits/units-010-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/valuesandunits/units-010-expected.txt: Removed.
* platform/win/ietestcenter/css3/valuesandunits/units-020-expected-expected.txt: Removed.
* platform/win/ietestcenter/css3/valuesandunits/units-020-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173210 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CSS Font Loading] Enable Page Caching
betravis@adobe.com [Wed, 3 Sep 2014 17:26:09 +0000 (17:26 +0000)]
[CSS Font Loading] Enable Page Caching
https://bugs.webkit.org/show_bug.cgi?id=136044

Reviewed by Andreas Kling.

Source/WebCore:

Modifying FontLoader to track fonts loaded via the loadFont
method as well as via CSS rules. Fonts loaded via loadFont are
tracked in m_numLoadingFromJS, while fonts loaded via CSS rules
are tracked in m_numLoadingFromCSS. The page is cacheable when no
fonts are currently loading.

Added fast/css/fontloader-page-cache.html

* css/FontLoader.cpp:
(WebCore::LoadFontCallback::create): Modified to take and store
the number of fonts it will be loading.
(WebCore::LoadFontCallback::createFromParams): Ditto.
(WebCore::LoadFontCallback::familyCount): Getter for number of
fonts loaded via this callback.
(WebCore::LoadFontCallback::LoadFontCallback):
(WebCore::LoadFontCallback::notifyLoaded): Callback the FontLoader
to let it update its count when all the fonts have finished loading.
(WebCore::FontLoader::loadFontDone): Ditto.
(WebCore::FontLoader::FontLoader):
(WebCore::FontLoader::beginFontLoading): Track the number of fonts
loading.
(WebCore::FontLoader::fontLoaded): Ditto.
(WebCore::FontLoader::loadError): Ditto.
(WebCore::FontLoader::loadFont):
* css/FontLoader.h:
(WebCore::FontLoader::loading):

LayoutTests:

Adding test that loads a font then navigates away and back.
Test must also be disabled while feature is turned off.

* TestExpectations: Skip test.
* fast/css/fontloader-page-cache-expected.txt: Added.
* fast/css/fontloader-page-cache.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173209 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSimplify DOMTimer::adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
barraclough@apple.com [Wed, 3 Sep 2014 17:05:08 +0000 (17:05 +0000)]
Simplify DOMTimer::adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
https://bugs.webkit.org/show_bug.cgi?id=136402

Reviewed by Andreas Kling.

When the minimum DOM timer interval changes, the Page updates all DOMTimers accordingly.
Updating the fire/repeat interval on TimerBase requires a delta, but in
DOMTimer::adjustMinimumTimerInterval we have the new requested interval. In the case of
timers we can get the current interval to calculate the delta by calling repeatInterval(),
but in the case of one-shot timers neither TimerBase nor DOMTimer have store the interval
that was actually set for the timer (DOMTimer knows the original, unadjusted timer, but
not the actual interval). The way this currently works is that when the minimum interval
changes, Page calls adjustMinimumTimerInterval providing the previous minimum. If the
timer is one-shot, then adjustMinimumTimerInterval will use this to compute the delta
based on what the interval would have been.

We can simplify & unify with the code to throttle interval timers when the nesting
threshold is hit, by instead tracking the current timer interval as a member on DOMTimer &
using this to compute the delta in all cases.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
    - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
* page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer):
    initialize m_currentTimerInterval
(WebCore::DOMTimer::fired):
    - when the nesting level changes (potentially triggering throttling) just call updateTimerIntervalIfNecessary
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
    - compute delta based on m_currentTimerInterval
(WebCore::DOMTimer::intervalClampedToMinimum):
    - this now always takes m_originalInterval and scriptExecutionContext()->minimumTimerInterval()
      as its inputs, so remove arguments.
(WebCore::DOMTimer::adjustMinimumTimerInterval): Deleted.
    - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
* page/DOMTimer.h:
    - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary, added m_currentTimerInterval

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173208 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed build fix after r173200.
bfulgham@apple.com [Wed, 3 Sep 2014 16:12:00 +0000 (16:12 +0000)]
Unreviewed build fix after r173200.

* WebView.cpp:
(WebView::setCacheModel): Use appropriate types for cache sizes to be
64-bit clean on CFNetwork compile.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[XSLT] Make WebKit build when XSLT is disabled
dbates@webkit.org [Wed, 3 Sep 2014 15:34:42 +0000 (15:34 +0000)]
[XSLT] Make WebKit build when XSLT is disabled
https://bugs.webkit.org/show_bug.cgi?id=136471

Reviewed by Simon Fraser.

Fixes a Clang compiler warning that file-static function WebCore::hasNoStyleInformation is unused.
This function is only called from ENABLE(XSLT)-guarded code. So, add a ENABLE(XSLT)-guard around
WebCore::hasNoStyleInformation().

* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::hasNoStyleInformation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173206 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDon't generate superfluous mov instructions for move immediate on ARM64.
commit-queue@webkit.org [Wed, 3 Sep 2014 14:15:09 +0000 (14:15 +0000)]
Don't generate superfluous mov instructions for move immediate on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=136435

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-09-03
Reviewed by Michael Saboff.

On ARM64, the size of an immediate operand for a mov instruction is 16
bits. Thus, a move immediate offlineasm instruction may potentially be
split up to several machine level instructions. The current
implementation always emits a mov for the least significant 16 bits of
the value. However, if any of the bits 63:16 are significant then the
first emitted mov already filled bits 15:0 with zeroes (or ones, for
negative values). So, if bits 15:0 of the value are all zeroes (or ones)
then the last mov does not need to be emitted.

* offlineasm/arm64.rb:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173205 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoGMainLoopSource is exposed to race conditions
zandobersek@gmail.com [Wed, 3 Sep 2014 07:26:52 +0000 (07:26 +0000)]
GMainLoopSource is exposed to race conditions
https://bugs.webkit.org/show_bug.cgi?id=135800

Reviewed by Carlos Garcia Campos.

Source/WTF:

GMainLoopSource objects can be dispatching tasks on one thread
while having a new task scheduled on a different thread. This
can for instance occur in WebKitVideoSink, where the timeout
callback can be called on main thread while at the same time
it is being rescheduled on a different thread (created through
GStreamer).

The initial solution is to use GMutex to prevent parallel data
access from different threads. In the future I plan to add better
assertions, some meaningful comments and look at the possibility
of creating thread-specific GMainLoopSource objects that wouldn't
require the use of GMutex.

GSource, GCancellable and std::function<> objects are now packed
into an internal Context structure. Using the C++11 move semantics
it's simple to, at the time of dispatch, move the current context
out of the GMainLoopSource object in case the dispatch causes a
rescheduling on that same object.

All the schedule*() methods and the cancelInternal() method callers
now lock the GMutex to ensure no one else is accessing the data at
that moment. Similar goes for the dispatch methods, but those do
the dispatch and possible destruction duties with the mutex unlocked.
The dispatch can cause rescheduling on the same GMainLoopSource object,
which must not be done with a locked mutex.

* wtf/gobject/GMainLoopSource.cpp:
(WTF::GMainLoopSource::GMainLoopSource):
(WTF::GMainLoopSource::~GMainLoopSource):
(WTF::GMainLoopSource::cancel):
(WTF::GMainLoopSource::cancelInternal):
(WTF::GMainLoopSource::scheduleIdleSource):
(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleTimeoutSource):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::GMainLoopSource::voidCallback):
(WTF::GMainLoopSource::boolCallback):
(WTF::GMainLoopSource::socketCallback):
(WTF::GMainLoopSource::destroy):
(WTF::GMainLoopSource::reset): Deleted.
* wtf/gobject/GMainLoopSource.h:

Tools:

Add a unit test for GMainLoopSource that tests different
types of rescheduling tasks on already-active sources.

* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp: Added.
(GMainLoopSourceTest::GMainLoopSourceTest):
(GMainLoopSourceTest::~GMainLoopSourceTest):
(GMainLoopSourceTest::runLoop):
(GMainLoopSourceTest::finish):
(GMainLoopSourceTest::source):
(testGMainLoopSourceBasicRescheduling):
(testGMainLoopSourceReentrantRescheduling):
(testGMainLoopSourceDifferentThreadRescheduling):
(beforeAll):
(afterAll):
(TestWebKitAPI::GMainLoopSourceTest::GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::~GMainLoopSourceTest):
(TestWebKitAPI::GMainLoopSourceTest::runLoop):
(TestWebKitAPI::GMainLoopSourceTest::finish):
(TestWebKitAPI::GMainLoopSourceTest::source):
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[WinCairo] Memory cache capacity is not set.
commit-queue@webkit.org [Wed, 3 Sep 2014 06:04:44 +0000 (06:04 +0000)]
[WinCairo] Memory cache capacity is not set.
https://bugs.webkit.org/show_bug.cgi?id=136432

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-09-02
Reviewed by Alex Christensen.

Reuse code from AppleWin to set memory and disk cache capacity.

* WebKitSystemBits.cpp:
(WebVolumeFreeSize):
* WebKitSystemBits.h:
* WebView.cpp:
(WebView::setCacheModel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173200 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoLegacyProfiler: remove redundant ProfileNode members and other cleanup
burg@cs.washington.edu [Wed, 3 Sep 2014 04:58:55 +0000 (04:58 +0000)]
LegacyProfiler: remove redundant ProfileNode members and other cleanup
https://bugs.webkit.org/show_bug.cgi?id=136380

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

ProfileNode's selfTime and totalTime members are redundant and only used
for dumping profile data from debug-only code. Remove the members and compute
the same data on-demand when necessary using a postorder traversal functor.

Remove ProfileNode.head since it is only used to calculate percentages for
dumped profile data. This can be explicitly passed around when needed.

Rename Profile.head to Profile.rootNode, and other various renamings.

Rearrange some header includes so that touching LegacyProfiler-related headers
will no longer cause a full rebuild.

* inspector/JSConsoleClient.cpp: Add header include.
* inspector/agents/InspectorProfilerAgent.cpp:
(Inspector::InspectorProfilerAgent::buildProfileInspectorObject):
* inspector/protocol/Profiler.json: Remove unused Profile.idleTime member.
* jit/JIT.h: Remove header include.
* jit/JITCode.h: Remove header include.
* jit/JITOperations.cpp: Sort and add header include.
* llint/LLIntSlowPaths.cpp: Sort and add header include.
* profiler/Profile.cpp: Rename the debug dumping functions. Move the node
postorder traversal code to ProfileNode so we can traverse any subtree.
(JSC::Profile::Profile):
(JSC::Profile::debugPrint):
(JSC::Profile::debugPrintSampleStyle):
(JSC::Profile::forEach): Deleted.
(JSC::Profile::debugPrintData): Deleted.
(JSC::Profile::debugPrintDataSampleStyle): Deleted.
* profiler/Profile.h:
* profiler/ProfileGenerator.cpp:
(JSC::ProfileGenerator::ProfileGenerator):
(JSC::AddParentForConsoleStartFunctor::AddParentForConsoleStartFunctor):
(JSC::AddParentForConsoleStartFunctor::operator()):
(JSC::ProfileGenerator::addParentForConsoleStart):
(JSC::ProfileGenerator::didExecute):
(JSC::StopProfilingFunctor::operator()):
(JSC::ProfileGenerator::stopProfiling):
(JSC::ProfileGenerator::removeProfileStart):
(JSC::ProfileGenerator::removeProfileEnd):
* profiler/ProfileGenerator.h:
* profiler/ProfileNode.cpp:
(JSC::ProfileNode::ProfileNode):
(JSC::ProfileNode::willExecute):
(JSC::ProfileNode::removeChild):
(JSC::ProfileNode::stopProfiling):
(JSC::ProfileNode::endAndRecordCall):
(JSC::ProfileNode::debugPrint):
(JSC::ProfileNode::debugPrintSampleStyle):
(JSC::ProfileNode::debugPrintRecursively):
(JSC::ProfileNode::debugPrintSampleStyleRecursively):
(JSC::ProfileNode::debugPrintData): Deleted.
(JSC::ProfileNode::debugPrintDataSampleStyle): Deleted.
* profiler/ProfileNode.h: Calculate per-node self and total times using a postorder traversal.
The forEachNodePostorder functor traverses the subtree rooted at |this|.
(JSC::ProfileNode::create):
(JSC::ProfileNode::calls):
(JSC::ProfileNode::forEachNodePostorder):
(JSC::CalculateProfileSubtreeDataFunctor::returnValue):
(JSC::CalculateProfileSubtreeDataFunctor::operator()):
(JSC::ProfileNode::head): Deleted.
(JSC::ProfileNode::setHead): Deleted.
(JSC::ProfileNode::totalTime): Deleted.
(JSC::ProfileNode::setTotalTime): Deleted.
(JSC::ProfileNode::selfTime): Deleted.
(JSC::ProfileNode::setSelfTime): Deleted.
(JSC::ProfileNode::totalPercent): Deleted.
(JSC::ProfileNode::selfPercent): Deleted.
* runtime/ConsoleClient.h: Remove header include.

Source/WebCore:

Remove Profile.idleTime, rename head to rootNode, and remove ProfileNode members.

Covered by existing tests.

* inspector/ScriptProfile.idl:
* inspector/ScriptProfileNode.idl:
* inspector/TimelineRecordFactory.cpp:

Source/WebInspectorUI:

Remove unused Profile.idleTime member.

* UserInterface/Models/Profile.js:
(WebInspector.Profile.prototype.get idleTime): Deleted.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):

LayoutTests:

Renamed Profile.head to Profile.rootNode.

* fast/profiler/resources/profiler-test-JS-resources.js:
(printHeavyProfilesDataWithoutTime):
(printProfilesDataWithoutTime):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173199 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: remove ProfilerAgent and legacy profiler files in the frontend
burg@cs.washington.edu [Wed, 3 Sep 2014 03:17:47 +0000 (03:17 +0000)]
Web Inspector: remove ProfilerAgent and legacy profiler files in the frontend
https://bugs.webkit.org/show_bug.cgi?id=136462

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

It's not used by the frontend anymore.

* CMakeLists.txt:
* DerivedSources.make:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:

* inspector/JSConsoleClient.cpp:
(Inspector::JSConsoleClient::JSConsoleClient): Stub out console.profile/profileEnd
methods since they didn't work for JSContexts anyway.
(Inspector::JSConsoleClient::profile):
(Inspector::JSConsoleClient::profileEnd):
* inspector/JSConsoleClient.h:

* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
* inspector/agents/InspectorProfilerAgent.cpp: Removed.
* inspector/agents/InspectorProfilerAgent.h: Removed.
* inspector/agents/JSGlobalObjectProfilerAgent.cpp: Removed.
* inspector/agents/JSGlobalObjectProfilerAgent.h: Removed.
* inspector/protocol/Profiler.json: Removed.

Source/WebCore:

It's not used by the frontend anymore.

No new tests, no behavior changed.

* CMakeLists.txt:
* ForwardingHeaders/inspector/agents/InspectorProfilerAgent.h: Removed.
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorProfilerAgent): Deleted.
(WebCore::InstrumentingAgents::setInspectorProfilerAgent): Deleted.
* inspector/PageProfilerAgent.cpp: Removed.
* inspector/PageProfilerAgent.h: Removed.
* inspector/TimelineRecordFactory.cpp: Moved these builders to their only callsite.
(WebCore::buildInspectorObject):
(WebCore::buildProfileInspectorObject):
(WebCore::TimelineRecordFactory::appendProfile):
* inspector/WebProfilerAgent.cpp: Removed.
* inspector/WebProfilerAgent.h: Removed.
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/WorkerProfilerAgent.cpp: Removed.
* inspector/WorkerProfilerAgent.h: Removed.
* inspector/protocol/Timeline.json:

Source/WebInspectorUI:

The legacy profiler manager didn't do anything, and its views and models
have been superseded by new views and models based on the Timeline classes.

* .eslintrc:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.openURL): Remove profile URL handling code.
* UserInterface/Controllers/LegacyProfileManager.js: Removed.
* UserInterface/Main.html:
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.isProfilingJavaScript): Deleted.
(InspectorFrontendAPI.startProfilingJavaScript): Deleted.
(InspectorFrontendAPI.stopProfilingJavaScript): Deleted.
* UserInterface/Protocol/LegacyProfilerObserver.js: Removed.
* UserInterface/Views/LegacyBottomUpProfileDataGridTree.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileObject.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileType.js: Removed.
* UserInterface/Views/LegacyJavaScriptProfileView.css: Removed.
* UserInterface/Views/LegacyJavaScriptProfileView.js: Removed.
* UserInterface/Views/LegacyProfileDataGridTree.js: Removed.
* UserInterface/Views/LegacyProfileObject.js: Removed.
* UserInterface/Views/LegacyProfileType.js: Removed.
* UserInterface/Views/LegacyProfileView.css: Removed.
* UserInterface/Views/LegacyProfileView.js: Removed.
* UserInterface/Views/LegacyTopDownProfileDataGridTree.js: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173198 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EME][Mac] Refactor CDMPrivateMediaSourceAVFObjC to allow sessions to be created...
jer.noble@apple.com [Wed, 3 Sep 2014 01:28:33 +0000 (01:28 +0000)]
[EME][Mac] Refactor CDMPrivateMediaSourceAVFObjC to allow sessions to be created without being attached to an AVStreamDataParser.
https://bugs.webkit.org/show_bug.cgi?id=136016

Reviewed by Eric Carlson.

The CDMPrivateMediaPlayer class will delegate creation of CDMSession instances to the current MediaPlayer. This
of course requires the MediaKeys object owning the CDM to be attached to a HTMLMediaElement, and specifically to
one with a valid src attribute or source node which has sucessfully begun loading. For certain CDM operations,
it would be better if a given MediaKeys could create a session without actually being connected to a
HTMLMediaElement (yet).

To facilitate this for CDMSessionPrivateMediaSourceAVFObjC, add a new class, CDMPrivateMediaSourceAVFObjC, which
is the primary factory for CDMSessionPrivateMediaSOurceAVFObjC. Disclaim responsibility for creating these sessions
in MediaPlayerPrivateMediaSourceAVFObjC by not passing the "supportsKeySystem" method when registering itself.

Add methods to CDMSessionPrivateMediaSourceAVFObjC to allow SourceBuffers to be added and removed from the session,
to support adding the session to the HTMLMediaElement after the session has been created.

Since MediaPlayerPrivate instance and  CDMSession instances must be able to communicate with one another, add a type()
enum and virtual method to allow CDMSession instnaces to be distinguisted from (and casted to) one another.

* Modules/encryptedmedia/CDM.cpp:
(WebCore::installedCDMFactories): Register CDMPrivateMediaSourceAVFObjC.
(WebCore::CDM::createSession): Notify the MediaPlayer of the new CDMSession.
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::setMediaElement): Notify the HTMLMediaElement of any existing sessions.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/CDMSession.h:
(WebCore::CDMSession::type): Added.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setCDMSession): Pass through to the MediaPlayerPrivate.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setCDMSession): Added. Default no-op.
* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h: Added.
(WebCore::CDMPrivateMediaSourceAVFObjC::CDMPrivateMediaSourceAVFObjC): Simple constructor.
(WebCore::CDMPrivateMediaSourceAVFObjC::~CDMPrivateMediaSourceAVFObjC): Simple destructor.
(WebCore::CDMPrivateMediaSourceAVFObjC::create): Simple factory.
(WebCore::CDMPrivateMediaSourceAVFObjC::cdm): Simple accessor.
* platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystem): Moved from MediaPlayerPrivateMediaSourceAVFObjC.
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType): Ditto.
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Ditto.
(WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Returns new CDMSessionMediaSourceAVFObjC.
* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
(WebCore::CDMSessionAVFoundationObjC::type): Added.
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
(WebCore::CDMSessionMediaSourceAVFObjC::type): Added.
(WebCore::toCDMSessionMediaSourceAVFObjC): Throw assertion if type() is not correct.
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC): Removed m_parent ivar.
(WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Ditto.
(WebCore::CDMSessionMediaSourceAVFObjC::update): Determing which SourceBuffer is protected.
(WebCore::CDMSessionMediaSourceAVFObjC::addSourceBuffer): Added.
(WebCore::CDMSessionMediaSourceAVFObjC::removeSourceBuffer): Added.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Remove supportsKeyType parameter.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Remove keyType check.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession): Tell the CDMSession about outstanding SourceBuffers.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173197 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Win] Attempt to fix the Windows build after <http://trac.webkit.org/changeset/173192>
dbates@webkit.org [Wed, 3 Sep 2014 00:51:44 +0000 (00:51 +0000)]
[Win] Attempt to fix the Windows build after <trac.webkit.org/changeset/173192>
(https://bugs.webkit.org/show_bug.cgi?id=136467)

Declare ResourceHandleClient::connectionProperties() when building for iOS or when USE(CFNETWORK).

* platform/network/ResourceHandleClient.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173196 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] Updated German translation
gns@gnome.org [Wed, 3 Sep 2014 00:25:19 +0000 (00:25 +0000)]
[GTK] Updated German translation
https://bugs.webkit.org/show_bug.cgi?id=135956

Patch by Christian Stadelmann <gnome-de@genodeftest.de> on 2014-09-02
Reviewed by Gustavo Noronha.

* de.po: updated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[iOS] Support using Foundation networking code
dbates@webkit.org [Wed, 3 Sep 2014 00:14:06 +0000 (00:14 +0000)]
[iOS] Support using Foundation networking code
https://bugs.webkit.org/show_bug.cgi?id=136467

Reviewed by Pratik Solanki.

Source/WebCore:

We should support building iOS WebKit with the Foundation networking code
(i.e. !USE(CFNETWORK)).

Additionally, disable USE(CFNETWORK) and use the Foundation networking code
by default when building iOS WebKit without the Apple Internal SDK.

* Configurations/WebCore.xcconfig: Remove file WebCoreURLResponse.mm from the list of excluded files
so that we compile an implementation for function WebCore::synthesizeRedirectResponseIfNecessary when
building without USE(CFNETWORK).
* WebCore.exp.in: Add symbols for WebCore::synthesizeRedirectResponseIfNecessary() and WebCore::ResourceHandleClient::willCacheResponseAsync().
* WebCore.xcodeproj/project.pbxproj: Add new files CFNetworkConnectionCacheSPI.h and CFURLRequestSPI.h.
Also move group platform/spi such that it appears in alphabetical order in the platform group.
* platform/cf/URLCF.cpp: Remove unnecessary header <CoreFoundation/CFPriv.h>.
* platform/network/ResourceHandle.h: Declare iOS-specific variant of ResourceHandle::createNSURLConnection().
* platform/network/ResourceHandleClient.h: Always include header <wtf/RetainPtr.h> when building for iOS.
(WebCore::ResourceHandleClient::connectionProperties): Add PLATFORM(IOS)-guard around declaration.
* platform/network/cf/ResourceRequestCFNet.cpp: Substitute header CFNetworkConnectionCacheSPI.h for
<CFNetwork/CFNetworkConnectionCachePriv.h>.
* platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::saveToPersistentStorage): Use Credential::nsCredential() and ProtectionSpace::nsSpace()
instead of WebCore::mac(const {Credential, ProtectionSpace}&) as the latter were removed in <http://trac.webkit.org/changeset/171801>
and <http://trac.webkit.org/changeset/171540>, respectively.
* platform/network/mac/ResourceErrorMac.mm: Add USE(CFNETWORK)-guard around <CFNetwork/CFSocketStreamPriv.h>.
* platform/network/mac/ResourceHandleMac.mm: Substitute header CFURLRequestSPI.h for <CFNetwork/CFURLRequest.h>.
(WebCore::ResourceHandle::start): Modified to use ResourceHandle::makeDelegate() instead of d->m_proxy, which
was removed in <http://trac.webkit.org/changeset/147476>.
(WebCore::ResourceHandle::platformLoadResourceSynchronously): Ditto.
* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::synthesizeRedirectResponseIfNecessary): Add !USE(CFNETWORK)- and PLATFORM(IOS)- guards.
* platform/spi/cf/CFNetworkConnectionCacheSPI.h: Added.
* platform/spi/cf/CFURLRequestSPI.h: Added.

Source/WTF:

Disable USE(CFNETWORK) and use the Foundation networking code by default when building
iOS WebKit without the Apple Internal SDK.

* wtf/Platform.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173192 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPass the resource identifier in willSendRequest callback.
commit-queue@webkit.org [Tue, 2 Sep 2014 23:09:02 +0000 (23:09 +0000)]
Pass the resource identifier in willSendRequest callback.
https://bugs.webkit.org/show_bug.cgi?id=136325

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-09-02
Reviewed by Dan Bernstein.

Add two new delegate methods webProcessPlugInBrowserContextController:frame:willSendRequestForResource:request:redirectResponse:
and webProcessPlugInBrowserContextController:frame:didInitiateLoadForResource:request:pageIsProvisionallyLoading:. We will remove
the old willSendRequest and didInitiateLoadForResource when clients adopt the new methods.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(willSendRequestForFrame):
(didInitiateLoadForResource):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173191 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse references in public EventSender functions
mmaxfield@apple.com [Tue, 2 Sep 2014 22:47:37 +0000 (22:47 +0000)]
Use references in public EventSender functions
https://bugs.webkit.org/show_bug.cgi?id=136463

Reviewed by Dan Bates.

Passing nullptr to EventSender shouldn't be allowed.

No new tests because there is no behavior change.

* dom/EventSender.h:
(WebCore::EventSender::hasPendingEvents):
(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::cancelEvent):
(WebCore::EventSender<T>::dispatchPendingEvents):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::~HTMLLinkElement):
(WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::~HTMLStyleElement):
(WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::setImageWithoutConsideringPendingLoadEvent):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173190 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[iOS] Exclude touch and gesture files when building without ENABLE_TOUCH_EVENTS
dbates@webkit.org [Tue, 2 Sep 2014 22:45:05 +0000 (22:45 +0000)]
[iOS] Exclude touch and gesture files when building without ENABLE_TOUCH_EVENTS
and ENABLE_IOS_GESTURE_EVENTS, respectively
https://bugs.webkit.org/show_bug.cgi?id=136456

Reviewed by Andy Estes.

It's sufficient to exclude the touch and gesture files when building without
ENABLE_TOUCH_EVENTS and ENABLE_IOS_GESTURE_EVENTS, respectively. Currently we
exclude these files when building without the Apple Internal SDK, which is
heavy handed.

* Configurations/WebCore.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173189 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoOptimize own property GetByVals with rope string subscripts.
akling@apple.com [Tue, 2 Sep 2014 22:29:59 +0000 (22:29 +0000)]
Optimize own property GetByVals with rope string subscripts.
<https://webkit.org/b/136458>

For simple JSObjects that don't override getOwnPropertySlot to implement
custom properties, we have a fast path that grabs directly at the object
property storage.

Make this fast path even faster when the property name is an unresolved
rope string by using JSString::toExistingAtomicString(). This is faster
because it avoids allocating a new StringImpl if the string is already
a known Identifier, which is guaranteed to be the case if it's present
as an own property on the object.)

~10% speed-up on Dromaeo/dom-attr.html

Reviewed by Geoffrey Garen.

* dfg/DFGOperations.cpp:
* jit/JITOperations.cpp:
(JSC::getByVal):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):

    When using the fastGetOwnProperty() optimization, get the String
    out of JSString by using toExistingAtomicString(). This avoids
    StringImpl allocation and lets us bypass the PropertyTable lookup
    entirely if no AtomicString is found.

* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::fastGetOwnProperty):

    Make fastGetOwnProperty() take a PropertyName instead of a String.
    This avoids churning the ref count, since we don't need to create
    a temporary wrapper around the AtomicStringImpl* found in GetByVal.

* runtime/PropertyName.h:
(JSC::PropertyName::PropertyName):

    Add constructor: PropertyName(AtomicStringImpl*)

* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::get):
(JSC::PropertyTable::findWithString): Deleted.
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::get):

    Remove code for querying a PropertyTable with an unhashed string key
    since the only client is now gone.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173188 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMake sure WK1 prefs are initialized in MiniBrowser
simon.fraser@apple.com [Tue, 2 Sep 2014 21:33:41 +0000 (21:33 +0000)]
Make sure WK1 prefs are initialized in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=136465

Reviewed by Tim Horton.

Call -didChangeSettings from -awakeFromNib for WK1 windows just as we do
for WK2 windows, to make sure that WebPreferences are updated (to get
layer borders to work consistently).

* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController awakeFromNib]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix an assertion sometimes seen under RenderLayerCompositor::detachRootLayer()
simon.fraser@apple.com [Tue, 2 Sep 2014 21:25:33 +0000 (21:25 +0000)]
Fix an assertion sometimes seen under RenderLayerCompositor::detachRootLayer()
https://bugs.webkit.org/show_bug.cgi?id=136464

Reviewed by Tim Horton.

Don't try to call RenderLayer::isVisuallyNonEmpty() under RenderLayerCompositor::detachRootLayer()
when layout might be stale; there's not point trying to update the backing store state
when detaching, only when attaching.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAvoid backing store allocation with some combinations of replaced elements, masking...
simon.fraser@apple.com [Tue, 2 Sep 2014 20:20:25 +0000 (20:20 +0000)]
Avoid backing store allocation with some combinations of replaced elements, masking and visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=136400

Reviewed by Tim Horton.
Source/WebCore:

RenderLayer::isVisuallyNonEmpty() would return true for replaced elements (e.g. images)
with visibility:hidden, and for layers with a mask, and both would cause additional
backing store in some cases.

We can move the hasVisibleContent() to the top of the function, since visibility:hidden
will always hide any content of this layer. The hasMask() check can also be removed;
a mask can only mask content that is already visible; it never contributes additional
pixels.

Tests: compositing/backing/masked-child-no-backing.html
       compositing/backing/replaced-child-no-backing.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

* compositing/backing/masked-child-no-backing-expected.txt: Added.
* compositing/backing/masked-child-no-backing.html: Added.
* compositing/backing/replaced-child-no-backing-expected.txt: Added.
* compositing/backing/replaced-child-no-backing.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173184 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse jsNontrivialString for strings we know are more than a single character
commit-queue@webkit.org [Tue, 2 Sep 2014 20:14:31 +0000 (20:14 +0000)]
Use jsNontrivialString for strings we know are more than a single character
https://bugs.webkit.org/show_bug.cgi?id=136393

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-09-02
Reviewed by Geoffrey Garen.

* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::addUsagesToJSON):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173183 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix bindings tests after r173176.
achristensen@apple.com [Tue, 2 Sep 2014 19:07:42 +0000 (19:07 +0000)]
Fix bindings tests after r173176.
https://bugs.webkit.org/show_bug.cgi?id=136460

Reviewed by Simon Fraser.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.cpp:
* bindings/scripts/test/JS/JSreadonly.h:
* bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
* bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
* bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
* bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
* bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
* bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h:
* bindings/scripts/test/ObjC/DOMTestObjInternal.h:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
* bindings/scripts/test/ObjC/DOMattributeInternal.h:
* bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
Added new WEBCORE_EXPORT macros.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoNon-composited child RenderLayers cause allocation of unncessary backing store
simon.fraser@apple.com [Tue, 2 Sep 2014 18:30:06 +0000 (18:30 +0000)]
Non-composited child RenderLayers cause allocation of unncessary backing store
https://bugs.webkit.org/show_bug.cgi?id=136375

Reviewed by David Hyatt.

Source/WebCore:

A composited element that has non-composited descendant elements that fall into
RenderLayers was getting backing store when none was required. descendentLayerPaintsIntoAncestor()
was simply checking the "visibility:visible" bit on descendant non-composited layers,
instead of actually asking them if they have any visual content.

Added a couple of FIXME comments.

Test: compositing/backing/child-layer-no-backing.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::descendentLayerPaintsIntoAncestor):

LayoutTests:

Test with a composited div with various configurations of non-composited child layers.

* compositing/backing/child-layer-no-backing-expected.txt: Added.
* compositing/backing/child-layer-no-backing.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: Create a UI for displaying JavaScript type information
saambarati1@gmail.com [Tue, 2 Sep 2014 18:25:32 +0000 (18:25 +0000)]
Web Inspector: Create a UI for displaying JavaScript type information
https://bugs.webkit.org/show_bug.cgi?id=135142

Reviewed by Joseph Pecoraro.

JavaScriptCore now has a type profiler. This patch provides a frontend
user interface for displaying this type information in the Web Inspector.
The user interface works by placing inline "type tokens" next to important
JavaScript expressions: function arguments, function return types, and
variable declarations. Type information can also be seen for almost every
JavaScipt expression just by hovering over it while viewing a JavaScript file.

Currently, turning on the type profiler is expensive, so the inspector
ensures to never turn on type profiling until the user specifically asks
for type information to be turned on.

* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
Added a new type profiling mode.

* UserInterface/Controllers/FormatterSourceMap.js:
(WebInspector.FormatterSourceMap.prototype.originalToFormatted):
(WebInspector.FormatterSourceMap.prototype.originalPositionToFormatted):
(WebInspector.FormatterSourceMap.prototype.formattedToOriginal):
(WebInspector.FormatterSourceMap.prototype.formattedToOriginalOffset):
* UserInterface/Controllers/TypeTokenAnnotator.js: Added.
(WebInspector.TypeTokenAnnotator):
(WebInspector.TypeTokenAnnotator.prototype.get isActive):
(WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor):
(WebInspector.TypeTokenAnnotator.prototype.pause):
(WebInspector.TypeTokenAnnotator.prototype.resume):
(WebInspector.TypeTokenAnnotator.prototype.refresh):
(WebInspector.TypeTokenAnnotator.prototype.reset):
(WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
(WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.):
(WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
(WebInspector.TypeTokenAnnotator.prototype._insertToken):
(WebInspector.TypeTokenAnnotator.prototype.isLineTerminator):
(WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList):
(WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded):
This class is responsible for producing the inline "type token" annotations.

* UserInterface/Images/NavigationItemTypes.svg: Added.
* UserInterface/Main.html:
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.get scriptSyntaxTree):
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
(WebInspector.ScriptSyntaxTree.prototype.):
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView):
(WebInspector.ScriptContentView.prototype.get navigationItems):
(WebInspector.ScriptContentView.prototype._contentDidPopulate):
(WebInspector.ScriptContentView.prototype._toggleTypeAnnotations):
(WebInspector.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.shown):
(WebInspector.SourceCodeTextEditor.prototype.hidden):
(WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
(WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
(WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
(WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype._showPopover):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._enableScrollEventsForTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._disableScrollEventsForTypeTokenAnnotator):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
(WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
* UserInterface/Views/TextContentView.js:
(WebInspector.TextContentView.prototype.get navigationItems):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.set formatted):
(WebInspector.TextEditor.prototype.canShowTypeAnnotations):
(WebInspector.TextEditor.prototype.visibleRangeOffsets):
(WebInspector.TextEditor.prototype.originalOffsetToCurrentPosition):
(WebInspector.TextEditor.prototype.currentOffsetToCurrentPosition):
(WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
(WebInspector.TextEditor.prototype.currentPositionToCurrentOffset):
(WebInspector.TextEditor.prototype.setInlineWidget):
(WebInspector.TextEditor.prototype.addScrollHandler):
(WebInspector.TextEditor.prototype.removeScrollHandler):
(WebInspector.TextEditor.prototype._scrollIntoViewCentered):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get navigationItems):
(WebInspector.TextResourceContentView.prototype._contentDidPopulate):
(WebInspector.TextResourceContentView.prototype._toggleTypeAnnotations):
(WebInspector.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged):
* UserInterface/Views/TypePropertiesSection.js: Added.
(WebInspector.TypePropertiesSection):
(WebInspector.TypePropertiesSection.prototype.onpopulate):
(WebInspector.TypePropertiesSection.PropertyComparator):
(WebInspector.TypePropertyTreeElement):
(WebInspector.TypePropertyTreeElement.prototype.onpopulate):
* UserInterface/Views/TypeTokenView.css: Added.
(.type-token):
(.type-token-left-spacing):
(.type-token-right-spacing):
(.type-token-function, .type-token-boolean):
(.type-token-number):
(.type-token-string):
(.type-token-default):
(.type-token-empty):
(.type-token-many):
* UserInterface/Views/TypeTokenView.js: Added.
(WebInspector.TypeTokenView):
(WebInspector.TypeTokenView.titleForPopover):
(WebInspector.TypeTokenView.prototype.update):
(WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
(WebInspector.TypeTokenView.prototype._shouldShowPopover):
The inline "type token" view.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[ARM] MacroAssembler generating incorrect code on ARM32 Traditional
dbatyai.u-szeged@partner.samsung.com [Tue, 2 Sep 2014 17:01:35 +0000 (17:01 +0000)]
[ARM] MacroAssembler generating incorrect code on ARM32 Traditional
https://bugs.webkit.org/show_bug.cgi?id=136429

Reviewed by Csaba Osztrogonác.

Changed test32 to use tst to check if reg is zero, instead of cmp.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::test32):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173179 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoOut of bounds write in vmEntryToJavaScript / JSC::JITCode::execute
msaboff@apple.com [Tue, 2 Sep 2014 16:52:35 +0000 (16:52 +0000)]
Out of bounds write in vmEntryToJavaScript / JSC::JITCode::execute
https://bugs.webkit.org/show_bug.cgi?id=136305

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

While preparing the callee's CallFrame, ProtoCallFrame fixes any arity mismatch
and then JITCode::execute() calls the normal entrypoint.  This is incompatible
with the expectation of FTL generated functions.  Changed ProtoCallFrame to not
perform the arity fix, but just flag an arity mismatch.  now JITCode::execute()
uses that arity mismatch condition to select the normal or arity check
entrypoint.  The entrypoint selection is only done for functions, programs
and eval always have one parameter.

* interpreter/ProtoCallFrame.cpp:
(JSC::ProtoCallFrame::init): Changed to flag arity mismatch instead of fixing it.
* interpreter/ProtoCallFrame.h:
(JSC::ProtoCallFrame::needArityCheck): New boolean to signify what entrypoint
should be called.
* jit/JITCode.cpp:
(JSC::JITCode::execute): Select normal or arity check entrypoint as appropriate.

LayoutTests:

* js/arity-mismatch-at-vmentry-expected.txt: Added.
* js/arity-mismatch-at-vmentry.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r173175.
commit-queue@webkit.org [Tue, 2 Sep 2014 16:47:11 +0000 (16:47 +0000)]
Unreviewed, rolling out r173175.
https://bugs.webkit.org/show_bug.cgi?id=136454

it broke debug builds (Requested by jessieberlin on #webkit).

Reverted changeset:

"Introduce CSS_BASIC_TYPE_CASTS, and use it"
https://bugs.webkit.org/show_bug.cgi?id=136403
http://trac.webkit.org/changeset/173175

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173177 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago2014-09-02 Alex Christensen <achristensen@webkit.org>
darin@apple.com [Tue, 2 Sep 2014 16:28:49 +0000 (16:28 +0000)]
2014-09-02  Alex Christensen  <achristensen@webkit.org>

More use of WEBCORE_EXPORT.

Reviewed by Darin Adler.

These changes from a patch attached to https://bugs.webkit.org/show_bug.cgi?id=136172
contain more deployment of the WEBCORE_EXPORT macro. As of this writing, the macro is
defined to do nothing, so landing these is a harmless way to get closer to be the point
where we can throw the switch to use these instead of explicit export files on OS X,
iOS, and Windows.

* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowBase.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateHeader):
* bridge/runtime_method.cpp:
* bridge/runtime_object.cpp:
* dom/Document.h:
* dom/Element.h:
* dom/Position.h:
* dom/Range.h:
* dom/StaticNodeList.h:
* dom/make_names.pl:
(printInit):
(printNamesCppFile):
* editing/Editor.h:
* editing/FrameSelection.h:
* editing/TextIterator.h:
* inspector/InspectorFrontendClient.h:
* inspector/InspectorFrontendClientLocal.h:
* loader/DocumentLoader.h:
* loader/FrameLoader.h:
* loader/cache/MemoryCache.h:
* loader/cocoa/DiskCacheMonitorCocoa.h:
* loader/mac/LoaderNSURLExtras.h:
* page/Page.h:
* page/PageGroup.h:
* page/SecurityPolicy.h:
* page/Settings.h:
* page/make_settings.pl:
(printGetterAndSetter):
* page/scrolling/ScrollingStateScrollingNode.h:
* platform/CrossThreadCopier.h:
* platform/LocalizedStrings.h:
* platform/MemoryPressureHandler.cpp:
* platform/PlatformScreen.h:
* platform/PublicSuffix.h:
* platform/graphics/Gradient.h:
* platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h:
* platform/graphics/filters/FilterOperation.h:
* platform/ios/WebVideoFullscreenControllerAVKit.h:
* platform/mac/PlatformEventFactoryMac.h:
* platform/mac/WebCoreFullScreenPlaceholderView.h:
* platform/mac/WebCoreFullScreenWindow.h:
* platform/mac/WebCoreNSStringExtras.h:
* platform/mac/WebCoreObjCExtras.h:
* platform/mac/WebFontCache.h:
* platform/mac/WebVideoFullscreenController.h:
* platform/mac/WebWindowAnimation.h:
* platform/network/BlobRegistryImpl.h:
* platform/network/CredentialStorage.h:
* platform/network/PlatformCookieJar.h:
* platform/network/ProxyServer.h:
* platform/sql/SQLiteStatement.h:
* platform/text/TextEncoding.h:
* rendering/HitTestResult.h:
* rendering/RenderTreeAsText.h:
* testing/Internals.h:
Add many more correct uses of WEBCORE_EXPORT; remove a few incorrect ones.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173176 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoIntroduce CSS_BASIC_TYPE_CASTS, and use it
gyuyoung.kim@samsung.com [Tue, 2 Sep 2014 16:06:23 +0000 (16:06 +0000)]
Introduce CSS_BASIC_TYPE_CASTS, and use it
https://bugs.webkit.org/show_bug.cgi?id=136403

Reviewed by Darin Adler.

toCSSBasicFoo() will help to detect wrong type casting. So this patch generates it, and use it
instead of static_cast<const CSSBasicFoo*>().

No new tests no behavior changes.

* css/BasicShapeFunctions.cpp:
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapeCircle::equals):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::CSSBasicShapePolygon::equals):
(WebCore::CSSBasicShapeInset::equals):
* css/CSSBasicShapes.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173175 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agocheck-webkit-style should complain about C++ comments in Platform.h
commit-queue@webkit.org [Tue, 2 Sep 2014 16:03:41 +0000 (16:03 +0000)]
check-webkit-style should complain about C++ comments in Platform.h
https://bugs.webkit.org/show_bug.cgi?id=133802

Patch by Renato Nagy <rnagy@inf.u-szeged.hu> on 2014-09-02
Reviewed by Csaba Osztrogonác.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_platformh_comments):
(_process_lines):
(CppChecker):
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_platformh_comment):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173174 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCachedResourceLoader should check redirections to reuse or not cached resources
commit-queue@webkit.org [Tue, 2 Sep 2014 16:00:14 +0000 (16:00 +0000)]
CachedResourceLoader should check redirections to reuse or not cached resources
https://bugs.webkit.org/show_bug.cgi?id=131757

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-09-02
Reviewed by Antti Koivisto.

Source/WebCore:

Added cache-control redirection check to properly determine revalidation policy.
Tightened redirection cache-control header check by testing for no-cache and must-revalidate directives.
Added redirection freshness check.

Test: http/tests/cache/cache-redirections.html

* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::canReuse): Removed redirection check (now handled by CachedResource::redirectChainAllowsReuse).
* loader/cache/CachedResource.cpp:
(WebCore::currentAge): Moved from WebCore::CachedResource::currentAge method to static function. Added response and responseTimestamp as parameters.
(WebCore::CachedResource::CachedResource): Initialized redirection chain status (no redirection and expiracy date set to never).
(WebCore::CachedResource::isExpired): Updated according new currentAge/freshnessLifetime method parameters.
(WebCore::CachedResource::freshnessLifetime): Added response as parameter.
(WebCore::CachedResource::willSendRequest): Computes whether a redirection can be cached, and if cached for how long it will remain fresh.
(WebCore::CachedResource::redirectChainAllowsReuse): Return false if any of the redirection in the redirection chain cannot be cached or expired.
* loader/cache/CachedResource.h: Added cache chain member that stores whether the redirection chain can be cached and if so when it will be expired.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Added check of the redirection chain.

LayoutTests:

Added test checks that fresh redirections allow reuse of cached resoure and expired or not cacheable redirections trigger reloading of resources.

* http/tests/cache/cache-redirections-expected.txt: Added.
* http/tests/cache/cache-redirections.html: Added.
* http/tests/cache/resources/cache-control-redirect.php: Added.
* http/tests/cache/resources/cacheable-random-text.php: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173173 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPrevent decoded images from being destroyed when they're in use.
commit-queue@webkit.org [Tue, 2 Sep 2014 15:54:26 +0000 (15:54 +0000)]
Prevent decoded images from being destroyed when they're in use.
https://bugs.webkit.org/show_bug.cgi?id=136259.

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2014-09-02
Reviewed by Darin Adler.

Try to fix a regression introduced by r172790. Before the patch,
CachedImage does not release its Image object if it still has clients.
However this behavior was changed due to removal of CachedResource::isSafeToMakePurgeable(),
which implied a call to CachedResource::hasClients(). This patch restores
the behavior by adding a check to hasClients() in CachedImage::destroyDecodedData().

* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::destroyDecodedData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173172 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[WinCairo] testapi.exe is not built.
commit-queue@webkit.org [Tue, 2 Sep 2014 15:51:33 +0000 (15:51 +0000)]
[WinCairo] testapi.exe is not built.
https://bugs.webkit.org/show_bug.cgi?id=136369

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-09-02
Reviewed by Alex Christensen.

The testapi project should be of type Application.

* JavaScriptCore.vcxproj/jsc/jscLauncher.vcxproj: Change project type to Application.
* JavaScriptCore.vcxproj/testRegExp/testRegExpLauncher.vcxproj: Ditto.
* JavaScriptCore.vcxproj/testapi/testapiCommonCFLite.props: Compile and link fix.
* JavaScriptCore.vcxproj/testapi/testapiLauncher.vcxproj: Change project type to Application.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Gtk] Make install-dependencies work on Arch Linux
commit-queue@webkit.org [Tue, 2 Sep 2014 10:59:16 +0000 (10:59 +0000)]
[Gtk] Make install-dependencies work on Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=136374

Patch by Brendan Long <self@brendanlong.com> on 2014-09-02
Reviewed by Philippe Normand.

* gtk/install-dependencies: Add dependencies for pacman (Arch Linux).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CSS Grid Layout] Test coverage for first-line pseudo-element
rego@igalia.com [Tue, 2 Sep 2014 08:36:14 +0000 (08:36 +0000)]
[CSS Grid Layout] Test coverage for first-line pseudo-element
https://bugs.webkit.org/show_bug.cgi?id=135770

Reviewed by Zoltan Horvath.

According to the spec the ::first-line pseudo-element do not apply to
grid containers.

This was already working as expected but we were missing some tests
checking it, so we are adding new tests to have coverage.

* fast/css-grid-layout/grid-container-ignore-first-line-expected.txt: Added.
* fast/css-grid-layout/grid-container-ignore-first-line.html: Added.
* fast/css-grid-layout/grid-item-first-line-valid-expected.txt: Added.
* fast/css-grid-layout/grid-item-first-line-valid.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173169 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, GTK build fix after r173163.
philn@webkit.org [Tue, 2 Sep 2014 08:06:17 +0000 (08:06 +0000)]
Unreviewed, GTK build fix after r173163.

* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createDrawingAreaProxy):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
(WebKit::DrawingAreaProxyImpl::update):
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::incorporateUpdate):
(WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::updateAcceleratedCompositingMode):
* UIProcess/DrawingAreaProxyImpl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173168 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix the iOS build.
timothy_horton@apple.com [Tue, 2 Sep 2014 04:43:50 +0000 (04:43 +0000)]
Fix the iOS build.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _createDrawingAreaProxy]):
Whoops.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173167 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoBuild break on the EFL port since r173163
commit-queue@webkit.org [Tue, 2 Sep 2014 02:05:04 +0000 (02:05 +0000)]
Build break on the EFL port since r173163
https://bugs.webkit.org/show_bug.cgi?id=136443

Unreviewed build fix.

Patch by Ryuan Choi <ryuan.choi@gmail.com> on 2014-09-01

* UIProcess/BackingStore.cpp:
(WebKit::BackingStore::BackingStore):
* UIProcess/BackingStore.h:
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
(WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy):
(WebKit::CoordinatedDrawingAreaProxy::updateViewport):
(WebKit::CoordinatedDrawingAreaProxy::contentsRect):
(WebKit::CoordinatedDrawingAreaProxy::update):
(WebKit::CoordinatedDrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate):
(WebKit::CoordinatedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::CoordinatedDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::CoordinatedDrawingAreaProxy::exitAcceleratedCompositingMode):
(WebKit::CoordinatedDrawingAreaProxy::updateAcceleratedCompositingMode):
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
(WebKit::CoordinatedDrawingAreaProxy::page):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores):
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::createDrawingAreaProxy):
* UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173166 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove two unused WebKit2 PDF-related preferences
timothy_horton@apple.com [Tue, 2 Sep 2014 00:12:06 +0000 (00:12 +0000)]
Remove two unused WebKit2 PDF-related preferences
https://bugs.webkit.org/show_bug.cgi?id=136441

Reviewed by Dan Bernstein.

* Shared/WebPreferencesDefinitions.h:
Move the macro arguments comment down near where the macros are being used.
No need to check both PLATFORM(IOS) and PLATFORM(IOS_SIMULATOR); the second can't be true without the first.
These two PDF preferences are long-unused; if we bring back their functionality,
we'll bring back the preferences.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173165 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CMAKE] Add missing offlineasm dependencies
commit-queue@webkit.org [Mon, 1 Sep 2014 23:15:27 +0000 (23:15 +0000)]
[CMAKE] Add missing offlineasm dependencies
https://bugs.webkit.org/show_bug.cgi?id=136437

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-09-01
Reviewed by Csaba Osztrogonác.

Add the ARM64, MIPS and SH4 backends to the dependencies.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173164 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDrawingAreaProxy and friends can hold on to WebPageProxy by reference
timothy_horton@apple.com [Mon, 1 Sep 2014 23:04:12 +0000 (23:04 +0000)]
DrawingAreaProxy and friends can hold on to WebPageProxy by reference
https://bugs.webkit.org/show_bug.cgi?id=136440

Reviewed by Dan Bernstein.

* UIProcess/API/mac/WKView.mm:
(-[WKView _createDrawingAreaProxy]):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::~DrawingAreaProxy):
(WebKit::DrawingAreaProxy::setExposedRect):
(WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
* UIProcess/DrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sizeDidChange):
(WebKit::RemoteLayerTreeDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidEnd):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
(WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy):
(WebKit::TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::sizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
(WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::TiledCoreAnimationDrawingAreaProxy::updateAcceleratedCompositingMode):
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState):
(WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingAreaProxy::commitTransientZoom):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoProvide column numbers to DTrace willExecute/didExecute probes
burg@cs.washington.edu [Mon, 1 Sep 2014 21:15:21 +0000 (21:15 +0000)]
Provide column numbers to DTrace willExecute/didExecute probes
https://bugs.webkit.org/show_bug.cgi?id=136434

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

Provide the columnNumber and update stubs for !HAVE(DTRACE).

* profiler/ProfileGenerator.cpp:
(JSC::ProfileGenerator::willExecute):
(JSC::ProfileGenerator::didExecute):
* runtime/Tracing.d:
* runtime/Tracing.h:

Tools:

Create a directory for DTrace scripts. Add an example script that
shows how to use static probes provided by JavaScriptCore's profiler.

* Scripts/dtrace/jsc-trace-profiler-events.d: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173162 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRenderThemeMac::paintProgressBar creates a buffer without respecting the destination...
timothy_horton@apple.com [Mon, 1 Sep 2014 19:16:14 +0000 (19:16 +0000)]
RenderThemeMac::paintProgressBar creates a buffer without respecting the destination's acceleration setting
https://bugs.webkit.org/show_bug.cgi?id=136427

Reviewed by Dan Bernstein.

No new tests, just a performance improvement.

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173161 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove an unnecessary local in GraphicsLayerCA::ensureStructuralLayer
timothy_horton@apple.com [Mon, 1 Sep 2014 19:15:23 +0000 (19:15 +0000)]
Remove an unnecessary local in GraphicsLayerCA::ensureStructuralLayer
https://bugs.webkit.org/show_bug.cgi?id=136426

Reviewed by Dan Bernstein.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
This was here so that we could call PlatformCALayerClient::platformLayerChanged,
but that no longer exists!

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] [JHBuild] Cyclic dependency between cairo and librsvg.
clopez@igalia.com [Mon, 1 Sep 2014 18:10:32 +0000 (18:10 +0000)]
[GTK] [JHBuild] Cyclic dependency between cairo and librsvg.
https://bugs.webkit.org/show_bug.cgi?id=136431

Reviewed by Martin Robinson.

* gtk/jhbuild.modules: Disable cairo SVG testsuite.
Add missing dependencies for librsvg (glib and cairo).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] install-dependencies don't installs dbus-launch that is needed for the API...
clopez@igalia.com [Mon, 1 Sep 2014 18:06:33 +0000 (18:06 +0000)]
[GTK] install-dependencies don't installs dbus-launch that is needed for the API tests.
https://bugs.webkit.org/show_bug.cgi?id=136425

Reviewed by Martin Robinson.

* gtk/install-dependencies: Add dbus-x11 to the list of packages needed for running the tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173158 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUpdate my list of email addresses in contributors.json
ryuan.choi@samsung.com [Mon, 1 Sep 2014 10:33:52 +0000 (10:33 +0000)]
Update my list of email addresses in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=136424

Reviewed by Gyuyoung Kim.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173157 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CSS Grid Layout] Resolved value of grid-template-* must include every track listed
svillar@igalia.com [Mon, 1 Sep 2014 09:33:07 +0000 (09:33 +0000)]
[CSS Grid Layout] Resolved value of grid-template-* must include every track listed
https://bugs.webkit.org/show_bug.cgi?id=136362

Reviewed by Darin Adler.

Source/WebCore:

Section 5.1.5 of the specs clearly states that the resolved value
for grid-template-* must include every listed track, whether
explicitly or implicitly created. We were only listing the
explicit grid tracks.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList):

LayoutTests:

Added new test cases to verify that both explicit and implicit
tracks are listed in grid-template-* resolved values. Also
refactored a testing function to improve the readability of the test.

* fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
* fast/css-grid-layout/resources/grid-definitions-parsing-utils.js:
(testGridAutoDefinitionsValues):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CMAKE] Build warning by INTERFACE_LINK_LIBRARIES
gyuyoung.kim@samsung.com [Mon, 1 Sep 2014 09:28:47 +0000 (09:28 +0000)]
[CMAKE] Build warning by INTERFACE_LINK_LIBRARIES
https://bugs.webkit.org/show_bug.cgi?id=136194

Reviewed by Csaba Osztrogonác.

Set the LINK_INTERFACE_LIBRARIES target property on the top level CMakeLists.txt.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173155 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[SOUP] WebKitDownload cannot overwrite existing file
commit-queue@webkit.org [Mon, 1 Sep 2014 08:35:52 +0000 (08:35 +0000)]
[SOUP] WebKitDownload cannot overwrite existing file
https://bugs.webkit.org/show_bug.cgi?id=136322

Patch by Michael Catanzaro <mcatanzaro@igalia.com> on 2014-09-01
Reviewed by Carlos Garcia Campos.

* Shared/Downloads/soup/DownloadSoup.cpp:
(WebKit::DownloadClient::didReceiveResponse): pass a member variable
to Download::decideDestinationWithSuggestedFilename instead of a
temporary bool, so we can use the result in didFinishLoading.
(WebKit::DownloadClient::didFinishLoading): overwrite the destination
if Download::decideDestinationWithSuggestedFilename determined we
should do so.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, fix build break on EFL and GTK since r173152.
gyuyoung.kim@samsung.com [Mon, 1 Sep 2014 05:10:17 +0000 (05:10 +0000)]
Unreviewed, fix build break on EFL and GTK since r173152.

* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::platformInit): Remove a bool parameter because it was removed from function's declaration.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173153 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove GraphicsContext constructor that takes shouldUseContextColors
timothy_horton@apple.com [Mon, 1 Sep 2014 01:53:47 +0000 (01:53 +0000)]
Remove GraphicsContext constructor that takes shouldUseContextColors
https://bugs.webkit.org/show_bug.cgi?id=136421

Reviewed by Dan Bernstein.

* WebCore.exp.in:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::drawLinesForText):
As far as I can tell, the last user of this constructor died with WebNSStringDrawing.
Adjust all code to assume shouldUseContextColors=true.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove unused ARMv6-specific #if branches in WebCore::canHyphenate
timothy_horton@apple.com [Mon, 1 Sep 2014 01:11:20 +0000 (01:11 +0000)]
Remove unused ARMv6-specific #if branches in WebCore::canHyphenate
https://bugs.webkit.org/show_bug.cgi?id=136420

Reviewed by Dan Bernstein.

* platform/text/cf/HyphenationCF.cpp:
(WebCore::AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef>>::createValueForNullKey):
Use kCFAllocatorDefault instead of 0.

(WebCore::canHyphenate):
Remove ARMv6-specific code.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove unnecessary (and unnecessarily iOS-specific) setStrokeAndFillColor
timothy_horton@apple.com [Sun, 31 Aug 2014 22:06:29 +0000 (22:06 +0000)]
Remove unnecessary (and unnecessarily iOS-specific) setStrokeAndFillColor
https://bugs.webkit.org/show_bug.cgi?id=136416

Reviewed by Dan Bernstein.

* WebCore.exp.in:
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::setStrokeAndFillColor): Deleted.
Remove.

* WebView/WebFrameView.mm:
(-[WebFrameView drawRect:]):
We only end up filling, so only set the fill color.

* WebView/WebPDFViewIOS.mm:
(-[WebPDFView drawPage:]):
(-[WebPDFView drawRect:]):
* WebView/WebPlainWhiteView.mm:
We only end up filling, so only set the fill color.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove duplicate implementation of drawEllipse and some related PLATFORM(IOS) ifdefs
timothy_horton@apple.com [Sun, 31 Aug 2014 22:03:50 +0000 (22:03 +0000)]
Remove duplicate implementation of drawEllipse and some related PLATFORM(IOS) ifdefs
https://bugs.webkit.org/show_bug.cgi?id=136413

Reviewed by Dan Bernstein.

No new tests, just cleanup.

* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawRaisedEllipse):
There's nothing iOS specific about this function.

* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawEllipse):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawEllipse):
Un-ifdef drawRaisedEllipse; delete the reimplementation of drawEllipse that takes
a FloatRect and make the normal one take a FloatRect instead.

(WebCore::GraphicsContext::platformInit):
Make sure that the CGContext's line width starts out in sync with GraphicsContext's.
By default, CGContext has a line width of 1 and GraphicsContext 0, so they could previously
have been out of sync until someone set the width explicitly.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173149 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix a harmless mismerge in BitmapImage::destroyDecodedDataIfNecessary
timothy_horton@apple.com [Sun, 31 Aug 2014 22:02:47 +0000 (22:02 +0000)]
Fix a harmless mismerge in BitmapImage::destroyDecodedDataIfNecessary
https://bugs.webkit.org/show_bug.cgi?id=136412

Reviewed by Alexey Proskuryakov.

No new tests, just cleanup.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Drop the leading 'c' and the 'static' on the cutoff parameter.
Remove the duplicated early return (seems like it happened in the merge).
Remove reference to the exact size in the comment, since it's different on iOS.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse SinkDocument instead of PDFDocument; get rid of PDFDocument
timothy_horton@apple.com [Sun, 31 Aug 2014 22:01:34 +0000 (22:01 +0000)]
Use SinkDocument instead of PDFDocument; get rid of PDFDocument
https://bugs.webkit.org/show_bug.cgi?id=136414

Reviewed by Alexey Proskuryakov.

* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
* pdf/ios/PDFDocument.cpp: Removed.
* pdf/ios/PDFDocument.h: Removed.
Use the generic SinkDocument, which ignores all incoming data just like PDFDocument.
Delete the unnecessary and iOS-specific PDFDocument.cpp/h

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173147 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdjust an antique comment in Image::drawPattern
timothy_horton@apple.com [Sun, 31 Aug 2014 08:06:29 +0000 (08:06 +0000)]
Adjust an antique comment in Image::drawPattern
https://bugs.webkit.org/show_bug.cgi?id=136411

Reviewed by Dan Bernstein.

* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
Reword the comment.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoOccasional crashes (null deref) under ViewGestureController::endMagnificationGesture
timothy_horton@apple.com [Sun, 31 Aug 2014 08:04:25 +0000 (08:04 +0000)]
Occasional crashes (null deref) under ViewGestureController::endMagnificationGesture
https://bugs.webkit.org/show_bug.cgi?id=136409
<rdar://problem/18104748>

Reviewed by Dan Bernstein.

* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::endMagnificationGesture):
Null-check DrawingArea.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSVGImage::drawPatternForContainer creates a buffer without respecting the destination...
timothy_horton@apple.com [Sun, 31 Aug 2014 07:41:50 +0000 (07:41 +0000)]
SVGImage::drawPatternForContainer creates a buffer without respecting the destination's acceleration setting
https://bugs.webkit.org/show_bug.cgi?id=136408
<rdar://problem/12013317>

Reviewed by Dan Bernstein.

No new tests required, just a performance improvement.

* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
Use ImageBuffer::createCompatibleBuffer, which passes the destination's
acceleration setting through to the ImageBuffer constructor.

I didn't use GraphicsContext::createCompatibleBuffer because adjusting
how this function applies the destination's CTM is outside the scope of this patch.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173143 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoConvert string literals to character literals in makeString usage
commit-queue@webkit.org [Sat, 30 Aug 2014 23:19:32 +0000 (23:19 +0000)]
Convert string literals to character literals in makeString usage
https://bugs.webkit.org/show_bug.cgi?id=136394

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-08-30
Reviewed by Sam Weinig.

* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::evaluateInOverlay):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setOriginalURLForDownloadRequest):
* loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::logWarning):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
(WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
(WebCore::ContentSecurityPolicy::reportInvalidPathCharacter):
Also reorder some code to ensure single string creation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173142 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse RetainPtr::autorelease in some places where it seems appropriate
mjs@apple.com [Sat, 30 Aug 2014 22:43:33 +0000 (22:43 +0000)]
Use RetainPtr::autorelease in some places where it seems appropriate
https://bugs.webkit.org/show_bug.cgi?id=136280

Reviewed by Darin Adler.

Source/JavaScriptCore:

* API/JSContext.mm:
(-[JSContext name]): Use RetainPtr::autorelease() in place of ObjC autorelease.
* API/JSValue.mm:
(valueToString): Make appropriate use of RetainPtr

Source/WebCore:

* platform/mac/URLMac.mm:
(WebCore::URL::operator NSURL *): Use autorelease() instead of
CFBridgingRelease(leakRef())

Source/WebKit/mac:

* WebView/WebHTMLView.mm:
(imageFromRect): Use RetainPtr in this function.
* WebView/WebPDFRepresentation.mm:
(-[WebPDFRepresentation convertPostScriptDataSourceToPDF:]): Use RetainPtr
in this method.

Source/WebKit2:

* Shared/Cocoa/WKNSURLExtras.mm:
(urlWithWTFString): Use autorelease() instead of CFBridgingRelease(leakRef())

Source/WTF:

* wtf/text/mac/StringImplMac.mm:
(WTF::StringImpl::operator NSString *): Use autorelease() instead of
CFBridgingRelease(leakRef())

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173141 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[RJST] eager-no-cjit should really mean eager
fpizlo@apple.com [Sat, 30 Aug 2014 18:22:11 +0000 (18:22 +0000)]
[RJST] eager-no-cjit should really mean eager
https://bugs.webkit.org/show_bug.cgi?id=136407

Reviewed by Mark Hahnenberg.

At some point we made NO_CJIT_OPTIONS force threshold settings to something reasonable
and well-known. But the way we appended options was such that NO_CJIT_OPTIONS came in
after EAGER_OPTIONS. The whole point of "eager" was to use eager tier-up thresholds. This
all meant that NO_CJIT_OPTIONS was overriding the eagerness of EAGER_OPTIONS, for the one
threshold setting that NO_CJIT_OPTIONS was currently setting
(thresholdForJITAfterWarmUp). The solution is to make sure that we always append
NO_CJIT_OPTIONS before we append EAGER_OPTIONS.

Luckily, no tests regressed during the time that we lost eager-no-cjit coverage.

* Scripts/run-jsc-stress-tests:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173140 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed EFL gardening. Mark some compositing tests as "failure" since r172999
gyuyoung.kim@samsung.com [Sat, 30 Aug 2014 16:20:46 +0000 (16:20 +0000)]
Unreviewed EFL gardening. Mark some compositing tests as "failure" since r172999

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173139 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCSS: Refactor :visited handling in SelectorChecker
utatane.tea@gmail.com [Sat, 30 Aug 2014 13:42:51 +0000 (13:42 +0000)]
CSS: Refactor :visited handling in SelectorChecker
https://bugs.webkit.org/show_bug.cgi?id=135639

Reviewed by Benjamin Poulain.

Source/WebCore:

:visited is specially handled in the SelectorChecker and style resolution
because of security issues. That is nested links and adjacent combinators.
Since we propagate linkState from the ancestors,

    1. linkStates of ancestors from the target node are only used to calculate
    the linkState of the current node.
    This is why adjacent combinators disable :visited.

    2. linkState is overrides by the closest link element in the ancestors.
    This is why :visited is effective on the closest link element.

In this patch, we fix 3 things.

    1. Simplify SelectorChecker. Move m_mode to CheckingContext and it makes
    CheckingContext more similar to SelectorCompiler::CheckingContext in CSS JIT.
    And hide visitedMatchType parameter from the caller of SelectorChecker.

    2. Disable :visited inside :-webkit-any. Currently, :-webkit-any provides MatchAll
    link match type. So considering visited match type in the matching phase of :visited
    provides inconsistency. In this patch, :-webkit-any(:visited) never matches.
    And :-webkit-any(:link) acts like a :-webkit-any(:any-link). This behavior represents
    that visited match type is always considered as disabled inside :-webkit-any.
    This behavior may be changed when Selector Level4 is implemented.

    3. Fix the issue when traversing the descendant element,
    first encountered link check is missing.

Tests: fast/history/link-inside-any.html
       fast/history/link-inside-not.html
       fast/history/nested-visited-test-override.html
       fast/history/visited-inside-any.html
       fast/history/visited-inside-not.html

* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::SelectorChecker):
(WebCore::SelectorChecker::match):
(WebCore::hasScrollbarPseudoElement):
(WebCore::checkingContextForParent):
(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::checkOne):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
* css/StyleResolver.h:
(WebCore::checkRegionSelector):
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::selectorMatches):

LayoutTests:

* fast/history/link-inside-any-expected.txt: Added.
* fast/history/link-inside-any.html: Added.
* fast/history/link-inside-not-expected.txt: Added.
* fast/history/link-inside-not.html: Added.
* fast/history/nested-visited-test-override-expected.txt: Added.
* fast/history/nested-visited-test-override.html: Added.
* fast/history/visited-inside-any-expected.txt: Added.
* fast/history/visited-inside-any.html: Added.
* fast/history/visited-inside-not-expected.txt: Added.
* fast/history/visited-inside-not.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173138 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSubpixel layout: Remove LayoutUnit's kEffectiveFixedPointDenominator.
zalan@apple.com [Sat, 30 Aug 2014 02:55:35 +0000 (02:55 +0000)]
Subpixel layout: Remove LayoutUnit's kEffectiveFixedPointDenominator.
https://bugs.webkit.org/show_bug.cgi?id=136383.

Reviewed by Simon Fraser.

There's only one subpixel denominator now.

No change in functionality.

* platform/LayoutUnit.h:
(WebCore::LayoutUnit::LayoutUnit):
(WebCore::LayoutUnit::fromFloatCeil):
(WebCore::LayoutUnit::fromFloatFloor):
(WebCore::LayoutUnit::toInt):
(WebCore::LayoutUnit::toFloat):
(WebCore::LayoutUnit::toDouble):
(WebCore::LayoutUnit::operator++):
(WebCore::LayoutUnit::ceil):
(WebCore::LayoutUnit::round):
(WebCore::LayoutUnit::floor):
(WebCore::LayoutUnit::ceilToFloat):
(WebCore::LayoutUnit::fraction):
(WebCore::LayoutUnit::epsilon):
(WebCore::LayoutUnit::nearlyMax):
(WebCore::LayoutUnit::nearlyMin):
(WebCore::LayoutUnit::isInBounds):
(WebCore::LayoutUnit::setValue):
(WebCore::boundedMultiply):
(WebCore::operator*):
(WebCore::operator/):
(WebCore::operator%):
(WebCore::roundToDevicePixel):
(WebCore::floorToDevicePixel):
(WebCore::ceilToDevicePixel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173135 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRename updatePreferredWidth to make it more explicit.
zalan@apple.com [Sat, 30 Aug 2014 02:55:02 +0000 (02:55 +0000)]
Rename updatePreferredWidth to make it more explicit.
https://bugs.webkit.org/show_bug.cgi?id=136389

Reviewed by Simon Fraser.

No change in functionality.

* rendering/RenderBlock.cpp:
(WebCore::preferredWidth):
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
(WebCore::updatePreferredWidth): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMake timerNestingLevel threadsafe
barraclough@apple.com [Sat, 30 Aug 2014 01:33:24 +0000 (01:33 +0000)]
Make timerNestingLevel threadsafe
https://bugs.webkit.org/show_bug.cgi?id=136401

Reviewed by Tim Horton.

timerNestingLevel, used by DOMTimer to determine whether a timer is 'nested'
(repeating, possible due to a timer rescheduling itself) is a global. Since
worker threads can set timers too this is not thread safe.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ScriptExecutionContext):
    - added initialize m_timerNestingLevel
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::timerNestingLevel):
(WebCore::ScriptExecutionContext::setTimerNestingLevel):
    - added accessors
* page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::fired):
    - move timerNestingLevel to the context

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@173133 268f45cc-cd09-0410-ab3c-d52691b4dbfc