ryuan.choi@samsung.com [Tue, 24 Sep 2013 07:30:28 +0000 (07:30 +0000)]
Remove ScrollView::platformInit() and ScrollView::platformDestroy()
https://bugs.webkit.org/show_bug.cgi?id=121824
Reviewed by Darin Adler.
ScrollView::platformInit() and ScrollView::platformDestroy() are just
empty functions for all ports after removed WX port at r149186.
* PlatformEfl.cmake: Removed ScrollViewEfl.cpp from source list.
* platform/ScrollView.cpp: Removed platformInit and PlatformDestroy.
(WebCore::ScrollView::ScrollView):
(WebCore::ScrollView::~ScrollView):
* platform/ScrollView.h: Ditto.
* platform/efl/ScrollViewEfl.cpp: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156320
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Tue, 24 Sep 2013 05:53:55 +0000 (05:53 +0000)]
Use unique_ptr instead of deleteAllValues in FloatingObject code
https://bugs.webkit.org/show_bug.cgi?id=121823
Reviewed by Sam Weinig.
* rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::create): Return a unique_ptr instead of PassOwnPtr.
Use auto and a word for the local variable instead of an abbreviation. Also
changed to take a reference instead of a pointer.
(WebCore::FloatingObject::copyToNewContainer): Ditto.
(WebCore::FloatingObject::unsafeClone): Ditto.
(WebCore::FloatingObjects::~FloatingObjects): Removed call to deleteAllValues.
(WebCore::FloatingObjects::clearLineBoxTreePointers): Use auto to make this
read clearly.
(WebCore::FloatingObjects::clear): Removed call to deleteAllValues.
(WebCore::FloatingObjects::moveAllToFloatInfoMap): Use std::move to move values
out of the set, into the map. Removed code to clear the set, since it was a
trick to prevent the values from being deleted when they were not moved.
(WebCore::FloatingObjects::add): Changed to take a unique_ptr and to move the
pointer into the set instead of using leakPtr.
(WebCore::FloatingObjects::remove): Rearranged code so that the remove is at
the end of the function rather than the beginning. Also had to use a hash
translator and a find/remove combo since we don't have hash translator version
of the remove function.
(WebCore::FloatingObjects::computePlacedFloatsTree): Updated for changes to
the types.
(WebCore::FloatingObjects::placedFloatsTree): Moved this function here instead
of having it in the header, since it's only used within the file.
* rendering/FloatingObjects.h: Changed functions to take references instead
of pointers and return unique_ptr instead of PassOwnPtr. Also made
constructors public so we can use them with make_unique. Changed types to
use unique_ptr instead of raw pointers, and made the FloatingObjectHashTranslator
work for both RenderBox& and FloatingObject&.
* rendering/LineWidth.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
Updated for changes to types.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::moveAllChildrenIncludingFloatsTo):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::repaintOverhangingFloats):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::removeFloatingObject):
(WebCore::RenderBlock::removeFloatingObjectsBelow):
(WebCore::RenderBlock::positionNewFloats):
(WebCore::RenderBlock::nextFloatLogicalBottomBelow):
(WebCore::RenderBlock::lowestFloatLogicalBottom):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::hasOverhangingFloat):
(WebCore::RenderBlock::addIntrudingFloats):
(WebCore::RenderBlock::containsFloat):
(WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
(WebCore::RenderBlock::updateLocalFloatingObjectsForPaintingContainer):
(WebCore::RenderBlock::hitTestFloats):
(WebCore::RenderBlock::adjustForBorderFit):
Updated for changes to types.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::clearFloats): Updated to use take instead of
a combination of remove and delete.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloats):
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
(WebCore::RenderBlock::positionNewFloatOnLine):
Updated for changes to types.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156319
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 24 Sep 2013 04:00:29 +0000 (04:00 +0000)]
CSS Unit vh, vw, vmin and vmax in box-shadow are not applied.
https://bugs.webkit.org/show_bug.cgi?id=121422
Patch by Gurpreet Kaur <k.gurpreet@samsung.com> on 2013-09-23
Reviewed by Darin Adler.
Source/WebCore:
Box-shadow properties were not applied incase its values
were given in vh, vw, vmax, vmin unit.
Tests: fast/css/box-shadow-negative-viewportlength.html
fast/css/box-shadow-viewport-height.html
fast/css/box-shadow-viewport-vmax.html
fast/css/box-shadow-viewport-vmin.html
fast/css/box-shadow-viewport-width.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShadow):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::MatchedProperties::~MatchedProperties):
(WebCore::StyleResolver::viewportPercentageHeight):
(WebCore::StyleResolver::viewportPercentageWidth):
(WebCore::StyleResolver::viewportPercentageMax):
(WebCore::StyleResolver::viewportPercentageMin):
* css/StyleResolver.h:
Parsing and calculating the shadow values which has been specified
in viewport units.The vh/vw units are calcultated as percent of
viewport height and viewport width respectively. 1vmax: 1vw or 1vh,
whatever is largest.1vmin: 1vw or 1vh, whatever is smallest.
LayoutTests:
* fast/css/box-shadow-negative-viewportlength-expected-mismatch.html: Added.
* fast/css/box-shadow-negative-viewportlength.html: Added.
* fast/css/box-shadow-viewport-height-expected-mismatch.html: Added.
* fast/css/box-shadow-viewport-height.html: Added.
* fast/css/box-shadow-viewport-vmax-expected-mismatch.html: Added.
* fast/css/box-shadow-viewport-vmax.html: Added.
* fast/css/box-shadow-viewport-vmin-expected-mismatch.html: Added.
* fast/css/box-shadow-viewport-vmin.html: Added.
* fast/css/box-shadow-viewport-width-expected-mismatch.html: Added.
* fast/css/box-shadow-viewport-width.html: Added.
Added new tests for verifying that box-shadow properties are
applied when its values are viewport units.
* fast/css/shadow-viewport-units-expected.txt:
* fast/css/shadow-viewport-units.html:
Rebaselining existing tests as per the new behavior. Support for shadow
properties with viewport units is added so modified the test case.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156318
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryuan.choi@samsung.com [Tue, 24 Sep 2013 02:48:14 +0000 (02:48 +0000)]
Unreviewed build fix for CMake ports with INDEXED_DATABASE after r156296
* CMakeLists.txt: Removed IDBBackingStore.cpp from source list.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156317
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Tue, 24 Sep 2013 02:09:17 +0000 (02:09 +0000)]
Remove WTF_USE_SCROLLBAR_PAINTER #define
https://bugs.webkit.org/show_bug.cgi?id=121819
Reviewed by Sam Weinig.
Source/WebCore:
Remove unnecessary if checks and dead code.
* platform/mac/NSScrollerImpDetails.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::contentAreaWillPaint):
(WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
(WebCore::ScrollAnimatorMac::mouseExitedContentArea):
(WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
(WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
(WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
(WebCore::ScrollAnimatorMac::willStartLiveResize):
(WebCore::ScrollAnimatorMac::contentsResized):
(WebCore::ScrollAnimatorMac::willEndLiveResize):
(WebCore::ScrollAnimatorMac::contentAreaDidShow):
(WebCore::ScrollAnimatorMac::contentAreaDidHide):
(WebCore::ScrollAnimatorMac::didBeginScrollGesture):
(WebCore::ScrollAnimatorMac::didEndScrollGesture):
(WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
(WebCore::ScrollAnimatorMac::finishCurrentScrollAnimations):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
(WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting):
(WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
(WebCore::ScrollAnimatorMac::cancelAnimations):
(WebCore::ScrollAnimatorMac::setIsActive):
(WebCore::ScrollAnimatorMac::updateScrollerStyle):
(WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
* platform/mac/ScrollViewMac.mm:
(WebCore::toNSScrollerKnobStyle):
(WebCore::ScrollView::platformSetScrollbarOverlayStyle):
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::updateArrowPlacement):
(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::usesOverlayScrollbarsChanged):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::paint):
Source/WTF:
All our supported systems use the scrollbar painter now, so get rid of the #ifdef.
* wtf/Platform.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156316
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 24 Sep 2013 01:56:02 +0000 (01:56 +0000)]
[Windows] Moving back in history from a page with <video>, then moving forward causes crash.
https://bugs.webkit.org/show_bug.cgi?id=120475
Reviewed by Anders Carlsson.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::AVFWrapper): Add assertion that creation is on main thread.
(WebCore::AVFWrapper::~AVFWrapper): Add assertion that destruction is on main thread.
(WebCore::destroyAVFWrapper): Helper function to dispatch on main queue.
(WebCore::AVFWrapper::disconnectAndDeleteAVFWrapper): Spawn AVFoundationCF destruction to
main queue.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156315
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Tue, 24 Sep 2013 01:44:10 +0000 (01:44 +0000)]
RenderTextControlSingleLine::updateFromElement() override not needed.
<https://webkit.org/b/121815>
Reviewed by Anders Carlsson.
* rendering/RenderTextControlSingleLine.cpp:
* rendering/RenderTextControlSingleLine.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156314
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@samsung.com [Tue, 24 Sep 2013 00:57:43 +0000 (00:57 +0000)]
Introduce CSS_VALUE_TYPE_CASTS macro in order to cast CSSValue type
https://bugs.webkit.org/show_bug.cgi?id=121462
Reviewed by Darin Adler.
As r155429 introduced ELEMENT_TYPE_CASTS, CSS_VALUE_TYPE_CASTS can be used
by css value type casting as well. This type cast macros will help to detect
bad-cast bugs as well as improve a code readibility.
This patch adds the following methods,
- CSSFooValue* toCSSFooValue(CSSValue*)
- const CSSFooValue* toCSSFooValue(const CSSValue*)
This patch support CSSImageSetValue and CSSReflectValue first. Other CSS*Values
will use this macro step by step.
Besides this patch will remove unnecessary local variables.
No new tests, no behavior change.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
* css/CSSImageSetValue.h:
* css/CSSReflectValue.h:
* css/CSSValue.cpp:
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
* css/StyleResolver.cpp:
(WebCore::hasVariableReference):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::cssImageSetValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156313
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Tue, 24 Sep 2013 00:55:44 +0000 (00:55 +0000)]
Move style change analysis code to RenderElement
https://bugs.webkit.org/show_bug.cgi?id=121812
Reviewed by Andreas Kling.
Text renderers don't need this. There is no text renderer specific invalidation and text
style never changes independent from the containing RenderElement.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156312
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 24 Sep 2013 00:51:34 +0000 (00:51 +0000)]
Unreviewed, rolling out r156307.
http://trac.webkit.org/changeset/156307
https://bugs.webkit.org/show_bug.cgi?id=121817
Broke the build, and crashes the compiler (Requested by ap on
#webkit).
Source/WebCore:
* css/MediaQuery.cpp:
(WebCore::expressionCompare):
(WebCore::MediaQuery::MediaQuery):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::ObserverLessThan::operator()):
(WebCore::MutationObserver::deliverAllMutations):
* page/CaptionUserPreferences.cpp:
(WebCore::textTrackCompare):
(WebCore::CaptionUserPreferences::sortedTrackListForMenu):
Source/WTF:
* wtf/ListDump.h:
(WTF::lessThan):
(WTF::sortedListDump):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156311
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Tue, 24 Sep 2013 00:34:49 +0000 (00:34 +0000)]
Move rendererForRootBackground() to RenderElement.
<http://webkit.org/b/121813>
Reviewed by Antti Koivisto.
Move this to RenderElement (and make it return one, too) since the
document element renderer will always be a RenderElement.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156310
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Tue, 24 Sep 2013 00:14:13 +0000 (00:14 +0000)]
Make the Mac build work with IndexedDB enabled.
https://bugs.webkit.org/show_bug.cgi?id=121814
Reviewed by Alexey Proskuryakov.
This patch makes the Mac build work if one were to enable the IndexedDB feature flag.
This patch does not actually enable the flag for everyone.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBBackingStore.cpp: Added.
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::openInMemory):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::IDBBackingStore::Cursor::advance):
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::IDBBackingStore::Transaction::Transaction):
(WebCore::IDBBackingStore::Transaction::begin):
(WebCore::IDBBackingStore::Transaction::commit):
(WebCore::IDBBackingStore::Transaction::rollback):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore::LevelDBFactory::~LevelDBFactory):
(WebCore::IDBBackingStore::Transaction::reset):
(WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBIsValidKeyPath):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156309
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 23 Sep 2013 23:55:20 +0000 (23:55 +0000)]
CTTE: RenderObject::container() should return a RenderElement*.
<https://webkit.org/b/121811>
Reviewed by Antti Koivisto.
The containing renderer is always a RenderElement.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156308
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 23:53:28 +0000 (23:53 +0000)]
Test the waters and begin using lambdas
https://bugs.webkit.org/show_bug.cgi?id=121809
Reviewed by Andreas Kling.
Source/WebCore:
Use lambdas instead of static functions and function objects.
* css/MediaQuery.cpp:
(WebCore::MediaQuery::MediaQuery):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::deliverAllMutations):
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::sortedTrackListForMenu):
Source/WTF:
* wtf/ListDump.h:
(WTF::sortedListDump):
Use std::less instead of a custom lessThan function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156307
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 23:26:23 +0000 (23:26 +0000)]
[WIN] Add implementation for WebCore::readFromFile()
https://bugs.webkit.org/show_bug.cgi?id=119210
Reviewed by Brent Fulgham.
* platform/win/FileSystemWin.cpp:
(WebCore::readFromFile):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156306
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 22:41:57 +0000 (22:41 +0000)]
ListHashSet::removeLast should only remove one element.
* wtf/ListHashSet.h:
(WTF::ListHashSet::removeLast):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156305
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 22:39:35 +0000 (22:39 +0000)]
Add hash traits for std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=121807
Reviewed by Antti Koivisto.
Also, convert the thread map over to using std::unique_ptr instead of OwnPtr.
* wtf/HashMap.h:
Remove unnecessary typedefs and add missing calls to std::forward.
* wtf/HashTraits.h:
Add hash trait for std::unique_ptr.
* wtf/RefPtrHashMap.h:
Use std::add_lvalue_reference.
* wtf/ThreadingPthreads.cpp:
(WTF::establishIdentifierForPthreadHandle):
Change ThreadMap to be a hash map from ThreadIdentifier to std::unique_ptr<PthreadState>.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156304
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 22:35:46 +0000 (22:35 +0000)]
[WIN] Implement WebMutableURLRequest::setHTTPBody()
https://bugs.webkit.org/show_bug.cgi?id=91920
Reviewed by Brent Fulgham.
Source/WebCore:
Add a method to FormData for growing the internal buffer with a given size.
* platform/network/FormData.cpp:
(WebCore::FormData::appendData):
(WebCore::FormData::expandDataStore):
* platform/network/FormData.h:
Source/WebKit/win:
* WebMutableURLRequest.cpp:
(WebMutableURLRequest::setHTTPBody):
(WebMutableURLRequest::setHTTPBodyStream):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156303
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 22:25:25 +0000 (22:25 +0000)]
use NOMINMAX instead of #define min min
https://bugs.webkit.org/show_bug.cgi?id=73563
Reviewed by Brent Fulgham.
Use NOMINMAX instead of #define min/max as a cleaner
way of ensuring that Windows system header files don't
define min/max as macro in the first place.
Source/JavaScriptCore:
* config.h:
Source/WebCore:
* WebCorePrefix.h:
* config.h:
Source/WebKit/win:
* WebKitPrefix.h:
Source/WebKit2:
* config.h:
Source/WTF:
* config.h:
Tools:
* DumpRenderTree/DumpRenderTreePrefix.h:
* DumpRenderTree/cg/ImageDiffCG.cpp:
* DumpRenderTree/config.h:
* DumpRenderTree/win/ImageDiffCairo.cpp:
* WebKitTestRunner/WebKitTestRunnerPrefix.h:
* WebKitTestRunner/config.h:
WebKitLibraries:
* win/tools/vsprops/common.props:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156302
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 23 Sep 2013 22:16:44 +0000 (22:16 +0000)]
REGRESSION (r155998): when zooming in, tiles are too small
https://bugs.webkit.org/show_bug.cgi?id=121765
Source/WebCore:
Reviewed by Dean Jackson.
In r155998 I made GraphicsLayerCA take root-relative transforms
into account when computing contentsScale, and landed a bunch of
new results which should actually have told me that I broke page
scaling.
We don't want to take page scale into account when computing contentsScale,
because we already do so, so ignore the transform on the layer that
applies page scale (the only transform it should ever has is the page scale).
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateRootRelativeScale):
LayoutTests:
Reviewed by Dean Jackson.
Fix results of tests that showed that we had incorrect tiling
behavior on zooming.
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
* platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
* platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156301
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 23 Sep 2013 22:09:24 +0000 (22:09 +0000)]
Never use ReturnPC for exception handling and quit using exception check indices as a lame replica of the CodeOrigin index
https://bugs.webkit.org/show_bug.cgi?id=121734
Reviewed by Mark Hahnenberg.
Exception handling can deduce where the exception was thrown from by looking at the
code origin that was stored into the call frame header. There is no need to pass any
additional meta-data into the exception throwing logic. But the DFG was still doing it
anyway.
This removes all of the logic to pass extra meta-data into lookupExceptionHandler()
and friends. It simplifies a lot of code.
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shrinkToFit):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::codeOrigins):
(JSC::CodeBlock::hasCodeOrigins):
(JSC::CodeBlock::canGetCodeOrigin):
(JSC::CodeBlock::codeOrigin):
* bytecode/CodeOrigin.h:
(JSC::InlineCallFrame::InlineCallFrame):
* bytecode/InlineCallFrameSet.cpp: Added.
(JSC::InlineCallFrameSet::InlineCallFrameSet):
(JSC::InlineCallFrameSet::~InlineCallFrameSet):
(JSC::InlineCallFrameSet::add):
(JSC::InlineCallFrameSet::shrinkToFit):
* bytecode/InlineCallFrameSet.h: Added.
(JSC::InlineCallFrameSet::isEmpty):
(JSC::InlineCallFrameSet::size):
(JSC::InlineCallFrameSet::at):
* dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGCommonData.cpp:
(JSC::DFG::CommonData::addCodeOrigin):
(JSC::DFG::CommonData::shrinkToFit):
* dfg/DFGCommonData.h:
* dfg/DFGDesiredWriteBarriers.cpp:
(JSC::DFG::DesiredWriteBarrier::DesiredWriteBarrier):
(JSC::DFG::DesiredWriteBarrier::trigger):
* dfg/DFGDesiredWriteBarriers.h:
(JSC::DFG::DesiredWriteBarriers::add):
(JSC::DFG::initializeLazyWriteBarrierForInlineCallFrameExecutable):
(JSC::DFG::initializeLazyWriteBarrierForInlineCallFrameCallee):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
* dfg/DFGGraph.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::compileExceptionHandlers):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compileFunction):
* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::emitStoreCodeOrigin):
(JSC::DFG::JITCompiler::exceptionCheck):
(JSC::DFG::JITCompiler::fastExceptionCheck):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGRepatch.cpp:
(JSC::DFG::tryBuildGetByIDList):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheck):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):
(JSC::DFG::SpeculativeJIT::appendCall):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::callPreflight):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitExceptionCheck):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156300
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 23 Sep 2013 22:07:49 +0000 (22:07 +0000)]
Delete TestWebKitAPI domain or some keys before running TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=121715 & <rdar://problem/
14269434>
Patch by Benjamin Poulain <benjamin@webkit.org> on 2013-09-23
Reviewed by Alexey Proskuryakov.
Previously, initalizing a WebPreference would change the cache model
to WebCacheModelDocumentBrowser. That behavior was due to a stale
preference file on disk.
This patch fixes the tests by resetting the default, and using the proper
default values after initializing WebPreference.
* TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm:
(TestWebKitAPI::TEST): Use the proper initial value, unrelated
to the previous runs.
* TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm:
(TestWebKitAPI::TEST): This test needs b/f cache to be enabled, so change
cache model to the one required.
* TestWebKitAPI/ios/mainIOS.mm:
(main): Reset the preferences before testing.
* TestWebKitAPI/mac/mainMac.mm:
(main): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156299
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 21:53:38 +0000 (21:53 +0000)]
Remove PassTraits.h
https://bugs.webkit.org/show_bug.cgi?id=121805
Reviewed by Andreas Kling.
We no longer need PassTraits.h, get rid of it.
* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/PassTraits.h: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156298
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 21:50:16 +0000 (21:50 +0000)]
iframe and scrollbar with "overflow:auto" should support autoscroll with mousedrag
https://bugs.webkit.org/show_bug.cgi?id=40981
Patch by Antonio Gomes <a1.gomes@sisa.samsung.com> on 2013-09-23
Reviewed by Darin Adler.
Source/WebCore:
RenderBox::calculateAutoscrollDirection does not properly translate
inner frames' coordinates in order to determine its auto-scrollability.
By coincidence, if the inner frame box it placed near to page's 0, 0 position
(upper left corner), it might work.
Patch fixes it by changing ::calculateAutoscrollDirection algorithm to operate
with window coordinates, taking inner frames offset and scroll position into account.
The behavior of auto-scrollable non-frame overflow boxes, including divs, still works
as it is used to.
Test: fast/events/drag-and-drop-autoscroll-inner-frame.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateAutoscrollDirection):
LayoutTests:
Test ensures that dragging an element close to the boundary of
scrollable Frames, scroll its content in that direction.
* fast/events/drag-and-drop-autoscroll-inner-frame-expected.txt: Added.
* fast/events/drag-and-drop-autoscroll-inner-frame.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156297
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Mon, 23 Sep 2013 21:45:21 +0000 (21:45 +0000)]
Move LevelDB specific IDB files into their own subdirectory.
https://bugs.webkit.org/show_bug.cgi?id=121804
Rubberstamped by Alexey Proskuryakov.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp.
(WebCore::recordInternalError):
(WebCore::putBool):
(WebCore::getInt):
(WebCore::putInt):
(WebCore::getVarInt):
(WebCore::putVarInt):
(WebCore::getString):
(WebCore::putString):
(WebCore::putIDBKeyPath):
(WebCore::compareKeys):
(WebCore::compareIndexKeys):
(WebCore::Comparator::compare):
(WebCore::Comparator::name):
(WebCore::isSchemaKnown):
(WebCore::setUpMetadata):
(WebCore::getMaxObjectStoreId):
(WebCore::DefaultLevelDBFactory::openLevelDB):
(WebCore::DefaultLevelDBFactory::destroyLevelDB):
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::openInMemory):
(WebCore::IDBBackingStore::create):
(WebCore::IDBBackingStore::getDatabaseNames):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::getNewDatabaseId):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::checkObjectStoreAndMetaDataType):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::getNewVersionNumber):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::checkIndexAndMetaDataKey):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::findGreatestKeyLessThanOrEqual):
(WebCore::versionExists):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::firstSeek):
(WebCore::IDBBackingStore::Cursor::advance):
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::IDBBackingStore::Cursor::haveEnteredRange):
(WebCore::IDBBackingStore::Cursor::isPastBounds):
(WebCore::ObjectStoreKeyCursorImpl::create):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::encodeKey):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::create):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::value):
(WebCore::ObjectStoreCursorImpl::encodeKey):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::create):
(WebCore::IndexKeyCursorImpl::clone):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexKeyCursorImpl::primaryKey):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexKeyCursorImpl::encodeKey):
(WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::create):
(WebCore::IndexCursorImpl::clone):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::primaryKey):
(WebCore::IndexCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::encodeKey):
(WebCore::IndexCursorImpl::IndexCursorImpl):
(WebCore::IndexCursorImpl::loadCurrentRow):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStore::openObjectStoreCursor):
(WebCore::IDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBBackingStore::openIndexKeyCursor):
(WebCore::IDBBackingStore::openIndexCursor):
(WebCore::IDBBackingStore::Transaction::Transaction):
(WebCore::IDBBackingStore::Transaction::begin):
(WebCore::IDBBackingStore::Transaction::commit):
(WebCore::IDBBackingStore::Transaction::rollback):
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp.
(WebCore::IDBLevelDBCoding::encodeByte):
(WebCore::IDBLevelDBCoding::decodeByte):
(WebCore::IDBLevelDBCoding::maxIDBKey):
(WebCore::IDBLevelDBCoding::minIDBKey):
(WebCore::IDBLevelDBCoding::encodeBool):
(WebCore::IDBLevelDBCoding::decodeBool):
(WebCore::IDBLevelDBCoding::encodeInt):
(WebCore::IDBLevelDBCoding::decodeInt):
(WebCore::IDBLevelDBCoding::compareInts):
(WebCore::IDBLevelDBCoding::encodeVarInt):
(WebCore::IDBLevelDBCoding::decodeVarInt):
(WebCore::IDBLevelDBCoding::encodeString):
(WebCore::IDBLevelDBCoding::decodeString):
(WebCore::IDBLevelDBCoding::encodeStringWithLength):
(WebCore::IDBLevelDBCoding::decodeStringWithLength):
(WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength):
(WebCore::IDBLevelDBCoding::encodeDouble):
(WebCore::IDBLevelDBCoding::decodeDouble):
(WebCore::IDBLevelDBCoding::encodeIDBKey):
(WebCore::IDBLevelDBCoding::decodeIDBKey):
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
(WebCore::IDBLevelDBCoding::keyTypeByteToKeyType):
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
(WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
(WebCore::IDBLevelDBCoding::decodeIDBKeyPath):
(WebCore::IDBLevelDBCoding::compare):
(WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
(WebCore::IDBLevelDBCoding::KeyPrefix::createWithSpecialIndex):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidDatabaseId):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidObjectStoreId):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidIndexId):
(WebCore::IDBLevelDBCoding::KeyPrefix::decode):
(WebCore::IDBLevelDBCoding::KeyPrefix::encodeEmpty):
(WebCore::IDBLevelDBCoding::KeyPrefix::encode):
(WebCore::IDBLevelDBCoding::KeyPrefix::encodeInternal):
(WebCore::IDBLevelDBCoding::KeyPrefix::compare):
(WebCore::IDBLevelDBCoding::KeyPrefix::type):
(WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
(WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::DatabaseFreeListKey):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::databaseId):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::compare):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::decode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::compare):
(WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::ObjectStoreMetaDataKey):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::objectStoreId):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::IndexMetaDataKey):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::indexId):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::ObjectStoreFreeListKey):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::objectStoreId):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::compare):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::IndexFreeListKey):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::decode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::compare):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::objectStoreId):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::indexId):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::compare):
(WebCore::IDBLevelDBCoding::IndexNamesKey::IndexNamesKey):
(WebCore::IDBLevelDBCoding::IndexNamesKey::decode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::compare):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::userKey):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::decode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::compare):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::userKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::IndexDataKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::decode):
(WebCore::IDBLevelDBCoding::IndexDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexDataKey::encodeMinKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexDataKey::databaseId):
(WebCore::IDBLevelDBCoding::IndexDataKey::objectStoreId):
(WebCore::IDBLevelDBCoding::IndexDataKey::indexId):
(WebCore::IDBLevelDBCoding::IndexDataKey::userKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::primaryKey):
* Modules/indexeddb/leveldb/IDBLevelDBCoding.h: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h.
(WebCore::IDBLevelDBCoding::encodeIntSafely):
(WebCore::IDBLevelDBCoding::KeyPrefix::validIds):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::origin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::databaseName):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::metaDataType):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::objectStoreName):
(WebCore::IDBLevelDBCoding::IndexNamesKey::indexName):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156296
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Mon, 23 Sep 2013 21:39:58 +0000 (21:39 +0000)]
Try to fix GTK build.
Not reviewed.
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(textForRenderer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156295
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 21:39:30 +0000 (21:39 +0000)]
ListHashSet should work with move-only types
https://bugs.webkit.org/show_bug.cgi?id=121802
Reviewed by Andreas Kling.
Source/WTF:
Add rvalue reference overloads and calls to std::forward and std::move where appropriate.
* wtf/ListHashSet.h:
(WTF::::removeFirst):
Implement this in terms of takeFirst.
(WTF::::takeFirst):
Look up the iterator before we move out the value so we won't break the hash invariant.
(WTF::::removeLast):
Implement this in terms of takeLast.
(WTF::::takeLast):
Look up the iterator before we move out the value so we won't break the hash invariant.
Tools:
* TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
(TestWebKitAPI::TEST):
Add a test for move-only types.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156294
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 23 Sep 2013 21:20:13 +0000 (21:20 +0000)]
video-object-fit tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=121803
Rubber-stamped by Simon Fraser.
Removing an ad hoc 1.5 second timeout that these tests had. Loading video can take
longer.
* compositing/video/video-object-fit.html:
* media/video-object-fit-change.html:
* media/video-object-fit.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156293
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achicu@adobe.com [Mon, 23 Sep 2013 20:45:55 +0000 (20:45 +0000)]
Web Inspector: [CSS Regions] Display CSS Regions flow name in the inspector overlay
https://bugs.webkit.org/show_bug.cgi?id=121794
Reviewed by Joseph Pecoraro.
Source/WebCore:
No new tests, the previous test for CSS Regions highlighting covers the flow name.
This patch adds the "Flow" property in the inspector overlay. The region
chain is already displayed with numbers, so it makes sense to have the flow
name around when a CSS region is highlighted.
I've consolidated the flow information into "elementInfo.flowInfo".
Flow info has two properties: "name" and "regions".
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForCSSRegionsHighlight):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):
* inspector/InspectorOverlayPage.css:
(.css-property): Added the CSS property font color that the Inspector uses.
* inspector/InspectorOverlayPage.html: Added a new element to be used to display the flow-from property.
* inspector/InspectorOverlayPage.js:
(_drawElementTitle):
(drawNodeHighlight):
LayoutTests:
Updated the expected results after moving the regions to the elementInfo.flowInfo property.
Also, the test is now logging the name of the flow container in the output.
* http/tests/inspector/elements-test.js:
* inspector/elements/highlight-node-regions-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156292
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 23 Sep 2013 20:43:17 +0000 (20:43 +0000)]
Rapidly loading pages can result in !needsLayout() assertions in FrameView::paintContents() and RenderView::paint()
https://bugs.webkit.org/show_bug.cgi?id=121725
<rdar://problem/
13982161> ASSERT(!needsLayout()) in WebCore::RenderView::paint (121196)
Reviewed by Dean Jackson.
Layout has to be up-to-date before we paint, and when composited we rely on a
CFRunLoopObserver owned by LayerFlushScheduler to enforce this. The contract is
that changes to GraphicsLayers accumulate in those layers, and are all pushed to
CALayers only inside of flushCompositingState(). CALayers must not be touched
directly outside of flushCompositingState(), since this may trigger a CA commit
and resultant painting without us having updated layout.
In addition, we rely on the CA commits only happening after our runloop observer
has fired in order for LayerFlushScheduler's suspend/resume to work (these are used
for freezing the layer tree during page transitions).
However, TileController was violating this contract. It called revalidateTiles()
at random times, and on a timer. This would result in CA commits happening when
layer flushing was suspended at the LayerFlushScheduler level, and thus before
we'd had a chance to do layout.
Fix by only ever revalidatingTiles inside of flushCompositingState(). Calls
that used to result in revalidateTiles() at other times now just set a bit
on GraphicsLayerCA to indicate that revalidation is required, and this triggers
a later flush like any other GraphicsLayerCA change.
There is one exception to the revalidate-inside-flush rule: when purging
files for background tabs on a timer, we are only dealing with an unparented
layer tree, so CALayer manipulation is safe at any time.
Very timing dependent, so hard to test.
* platform/graphics/TiledBacking.h: Expose revalidateTiles()
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Remove
platformCALayerDidCreateTiles() override.
* platform/graphics/ca/GraphicsLayerCA.h: Keep track of m_isCommittingChanges
so we can assert. Add TilingAreaChanged flag.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::recursiveCommitChanges): noteSublayersChanged() is
used inside of a commit in some cases to trigger a parent layer to update
children after the children have been processed. To avoid trying to pointlessly
schedule the flusher inside a flush, and for strong assertions, use a new flag
that indicates that flushing is not required in this situation.
Set the m_isCommittingChanges flag around committing state.
(WebCore::GraphicsLayerCA::platformCALayerSetNeedsToRevalidateTiles): We used
to use platformCALayerDidCreateTiles() to ensure that we would flush after adding
new tiles to avoid garbage flashes. Now that we only ever create tiles inside
a flush, this is no longer necessary.
The new platformCALayerSetNeedsToRevalidateTiles() function just sets the
TilingAreaChanged flag and triggers a flush.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating
visible rect, we look for the TilingAreaChanged flag to tell us whether to
revalidate TiledBacking tiles.
(WebCore::GraphicsLayerCA::ensureStructuralLayer): Use DontScheduleFlush when
telling a parent layer that it needs to reconsider sublayers.
(WebCore::GraphicsLayerCA::updateTiles): The caller of revalidateTiles().
(WebCore::GraphicsLayerCA::updateContentsRects): DontScheduleFlush again.
(WebCore::GraphicsLayerCA::noteSublayersChanged): Pass scheduleFlush along.
(WebCore::GraphicsLayerCA::noteLayerPropertyChanged): Handle scheduleFlush.
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerSetNeedsToRevalidateTiles): Added
so that TileController can call back out to GraphicsLayerCA.
(WebCore::PlatformCALayerClient::isCommittingChanges):
* platform/graphics/ca/mac/TileController.h: Need to keep track of secondary
coverage rects in m_secondaryTileCoverageRects.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tileCacheLayerBoundsChanged): Just trigger a tile revalidate,
which will happen later in this same commit.
(WebCore::TileController::setScale): This is called inside the commit. Does an extra
revalidate, which is needed to prune tiles. This could be optimized in future.
(WebCore::TileController::setVisibleRect): Assert that we're inside a commit,
and trigger a revalidate.
(WebCore::TileController::setExposedRect): Trigger a revalidate.
(WebCore::TileController::setClipsToExposedRect): Ditto.
(WebCore::TileController::prepopulateRect): Save the rect and trigger a revalidate.
(WebCore::TileController::setIsInWindow): If we're in the window, trigger a revalidate
otherwise schedule the timer.
(WebCore::TileController::revalidateTiles): Wrapper for the real revalidateTiles().
(WebCore::TileController::tileRevalidationTimerFired): If we're in the window,
schedule a revalidate. Otherwise our layer tree is disconnected, and it's OK to call revalidateTiles().
(WebCore::TileController::setNeedsRevalidateTiles): Call through the client to GraphicsLayerCA
which will schedule a layer tree flush.
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::ensureTilesForRect): Move code from prepopulateRect
into here; ensureTilesForRect() for each secondary rect, then clear the rects.
No need to call platformCALayerDidCreateTiles() at the end.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Remove
platformCALayerDidCreateTiles() override.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scheduleLayerFlush): This should only be
called when we're not inside a flush, otherwise it will fail to schedule
another one.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156291
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
alex.christensen@flexsim.com [Mon, 23 Sep 2013 20:38:36 +0000 (20:38 +0000)]
Added --64-bit option for Windows build.
https://bugs.webkit.org/show_bug.cgi?id=121799
Reviewed by Brent Fulgham.
* Scripts/webkitdirs.pm:
(determinePassedConfiguration): Add "|x64" for 64-bit configuration.
(isWin64): Added.
(determineIsWin64): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156290
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 23 Sep 2013 20:24:47 +0000 (20:24 +0000)]
CTTE: htmlediting.h Element creation function should take a Document&
https://bugs.webkit.org/show_bug.cgi?id=121800
Reviewed by Antti Koivisto.
Thread the Document&!
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156289
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zhajiang@rim.com [Mon, 23 Sep 2013 20:23:02 +0000 (20:23 +0000)]
[BlackBerry] Poor rendering opening a Google map short link
https://bugs.webkit.org/show_bug.cgi?id=121687
Source/WebCore:
Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-09-23.
Reviewed by Yong Li.
Internally reviewed by Liam Quinn and Joe Mason.
Fix a regression. It turns out that LayerCompositingThread already has
an API named isVisible() which by default returns false. So rename the
one in the LayerData to isLayerVisible().
* platform/graphics/blackberry/LayerData.h:
(WebCore::LayerData::isLayerVisible):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::compositeLayersRecursive):
Source/WebKit/blackberry:
Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-09-23.
Reviewed by Yong Li.
Internally reviewed by Arvid Nilsson.
Clean up m_isAcceleratedCompositingActive as it has been deprecated.
* Api/WebPage_p.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156288
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
changseok.oh@collabora.com [Mon, 23 Sep 2013 20:09:41 +0000 (20:09 +0000)]
[GTK][WK2] A plugin dirtyRect within iframe remains after moving to a different page.
https://bugs.webkit.org/show_bug.cgi?id=121600
Reviewed by Gustavo Noronha Silva.
Nowhere to destroy NetscapePlugin::m_platformPluginWidget even after destroying
an instance of NetscapePlugin. So the created GtkWidget remains visible.
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformDestroy):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156287
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Mon, 23 Sep 2013 19:46:46 +0000 (19:46 +0000)]
CodeLoad performance regression
Reviewed by Filip Pizlo.
Temporarily remove the ExpressionInfo compression until we can
work out how to make it not clobber performance.
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset):
(JSC::UnlinkedCodeBlock::addExpressionInfo):
* bytecode/UnlinkedCodeBlock.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156286
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Mon, 23 Sep 2013 19:32:15 +0000 (19:32 +0000)]
Rename RenderObject::first/lastChild to RenderObject::first/lastChildSlow
https://bugs.webkit.org/show_bug.cgi?id=121784
Reviewed by Andreas Kling.
This will make it obvious in code where typing should be tightened.
Handled some simple cases by tightening the code instead of renaming.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156285
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Mon, 23 Sep 2013 19:27:38 +0000 (19:27 +0000)]
Hook up the initiator info and show it in the Resource details sidebar.
https://bugs.webkit.org/show_bug.cgi?id=121741
Reviewed by Joseph Pecoraro.
* UserInterface/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
(WebInspector.FrameResourceManager.prototype._initiatorSourceCodeLocationFromPayload):
* UserInterface/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.requestWillBeSent):
(WebInspector.NetworkObserver.prototype.requestServedFromMemoryCache):
* UserInterface/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get initiatorSourceCodeLocation):
* UserInterface/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156284
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 19:27:15 +0000 (19:27 +0000)]
Clean up ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=121797
Reviewed by Antti Koivisto.
* wtf/ListHashSet.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156283
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
changseok.oh@collabora.com [Mon, 23 Sep 2013 19:02:44 +0000 (19:02 +0000)]
[Texmap] Reloading a webgl page doesn't work
https://bugs.webkit.org/show_bug.cgi?id=120593
Reviewed by Noam Rosenthal.
Source/WebCore:
Let GraphicsLayerTextureMapper know it needs to detach the platform layer when a GraphicsContext3D is destroyed.
Test: fast/canvas/webgl/webgl-reload-crash.html
* platform/graphics/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/TextureMapperPlatformLayer.h:
LayoutTests:
Add a new test case to check if a crash occurs while reloading a page which contains webgl.
* fast/canvas/webgl/webgl-reload-crash-expected.txt: Added.
* fast/canvas/webgl/webgl-reload-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156282
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 18:21:24 +0000 (18:21 +0000)]
ListHashSet should use std::reverse_iterator for reverse iterators
https://bugs.webkit.org/show_bug.cgi?id=121795
Reviewed by Antti Koivisto.
Source/WTF:
Get rid of the custom reverse iterators and just use std::reverse_iterator instead.
* wtf/ListHashSet.h:
Tools:
Add test for reverse iterators.
* TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156281
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 23 Sep 2013 17:54:22 +0000 (17:54 +0000)]
Audio object garbage collection is incorrect (media/audio-garbage-collect.html test is flaky)
https://bugs.webkit.org/show_bug.cgi?id=72698
Skipping the test. It frequently times out, and when it doesn't, that's only
because if fails to detect incorrect behavior.
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156280
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 23 Sep 2013 17:50:55 +0000 (17:50 +0000)]
Add back the SharedWorkerStrategy to prevent crashing.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createSharedWorkerStrategy):
(WebKit::WebPlatformStrategies::isAvailable):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156279
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Mon, 23 Sep 2013 17:43:04 +0000 (17:43 +0000)]
Remove RenderObjectChildList
https://bugs.webkit.org/show_bug.cgi?id=121771
Reviewed by Darin Adler.
Most RenderElement subclasses have m_children member (>90% of instances on typical page). It is not worth optimising
for memory for the few cases that don't (RenderImage, RenderLineBreak mostly) in expense of performance.
This patch moves child handling to RenderElement. This gets rid of virtual children() calls and simplifies the code.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156278
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 23 Sep 2013 17:39:52 +0000 (17:39 +0000)]
SharedWorkerProcess code is dead
https://bugs.webkit.org/show_bug.cgi?id=121563
Reviewed by Alexey Proskuryakov.
Remove SharedWorkerProcess code.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156277
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 23 Sep 2013 17:33:52 +0000 (17:33 +0000)]
De-indent ListHashSet in preparation of more changes.
Rubber-stamped by Sam Weinig.
* wtf/ListHashSet.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156276
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 23 Sep 2013 16:32:18 +0000 (16:32 +0000)]
Document::destroyRenderTree() shouldn't do anything but.
<https://webkit.org/b/121786>
Reviewed by Anders Carlsson.
Move everything in destroyRenderTree() that doesn't actually destroy
render trees to prepareForDestruction() instead.
Destroying the render tree is now a reparable operation.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156274
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 15:47:44 +0000 (15:47 +0000)]
[EFL] accessibility/aria-invalid is failing
https://bugs.webkit.org/show_bug.cgi?id=111986
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-23
Reviewed by Mario Sanchez Prada.
Tools:
Adds possibility to retrieve JS context.
This is part of the implementation of AccessibilityUIElement::addNotificationListener
from 119883 and 120421.
* DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp:
(axObjectEventListener):
(addAccessibilityNotificationHandler):
(removeAccessibilityNotificationHandler):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
(WTR::AccessibilityNotificationHandler::setNotificationFunctionCallback):
(WTR::AccessibilityNotificationHandler::removeAccessibilityNotificationHandler):
LayoutTests:
Test passes on both efk-wk2 and efl-wk1, because of the patches from bugs: 119883 and 120421.
* platform/efl-wk1/TestExpectations: Removed accessibility/aria-invalid.html
* platform/efl-wk2/TestExpectations: Removed accessibility/aria-invalid.html
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156273
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
allan.jensen@digia.com [Mon, 23 Sep 2013 15:40:29 +0000 (15:40 +0000)]
[Qt] Tiled backing-store causes wrong translation
https://bugs.webkit.org/show_bug.cgi?id=121789
Reviewed by Noam Rosenthal.
Move the translation inside save/restore of the GraphicsContext.
* platform/graphics/qt/TileQt.cpp:
(WebCore::TileQt::updateBackBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156272
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Mon, 23 Sep 2013 15:09:34 +0000 (15:09 +0000)]
[Autotools] Rework the build target selection
https://bugs.webkit.org/show_bug.cgi?id=121703
Reviewed by Gustavo Noronha Silva.
Replace the --with-target configuration flag with target-specific --enable-*-target flags:
- --enable-x11-target
- --enable-wayland-target
- --enable-win32-target
- --enable-quartz-target
- --enable-directfb-target
By default, the X11 target is enabled. This default is preserved only if no --enable-*-target flag
is passed on the command line. When that occurs, the newly-constructed list of build targets is
used to determine what build targets should actually be built. So for instance, executing just
`./configure` would only enable the X11 target as that's the default, and executing
`./configure --enable-wayland-target` would only enable the Wayland target, as the defaults are
completely ignored.
* Source/autotools/CheckSystemAndBasicDependencies.m4: Abort if grep was not found, just in case.
* Source/autotools/CustomMacros.m4: The new file that contains helpful custom macros.
* Source/autotools/FindDependencies.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
* Source/autotools/PrintBuildConfiguration.m4: Use the new AM_APPEND_TO_DESCRIPTION macro to construct a pretty-looking
description string of what targets will be built.
* Source/autotools/ReadCommandLineArguments.m4: Replace the --with-target configuration flag and the related
hacks with the set of --enable-*-target flags. The new AM_DETERMINE_BUILD_TARGET_STATUS macro is used to determine
whether to enable specific build targets, based indirectly on the passed-in --enable-*-target flags.
* Source/autotools/SetupAutoconfHeader.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
* Source/autotools/SetupAutomake.m4: Use the appropriate 'enable_*_target' references instead of 'with_*target'.
* configure.ac: Include the new CustomMacros.m4 file.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156271
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 23 Sep 2013 13:04:43 +0000 (13:04 +0000)]
Unify code paths leading to render tree teardown.
<https://webkit.org/b/121785>
Reviewed by Antti Koivisto.
Make Document::prepareForDestruction() fit all the call sites that were
doing destroyRenderTree() + disconnectFromFrame().
- disconnectDescendantFrames() is already a no-op if there are no frames.
- willDetachDocumentFromFrame() will only run if there is a frame.
This is another step towards making tree rebuild possible.
Removed some age-old FIXMEs about why we aren't calling willRemove(),
a long-gone function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156270
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
csaavedra@igalia.com [Mon, 23 Sep 2013 12:03:37 +0000 (12:03 +0000)]
[GTK] Bump version
Reviewed by Carlos Garcia Campos.
* Source/autotools/Versions.m4: Bump to 2.3.0
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156269
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 09:51:51 +0000 (09:51 +0000)]
[EFL] accessibility/selection-states.html is failing
https://bugs.webkit.org/show_bug.cgi?id=112007
Unreviewed EFL gardening. Passes after r156149.
Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-09-23
* platform/efl-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156268
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 08:26:01 +0000 (08:26 +0000)]
Cleanup CMake files in WebCore
https://bugs.webkit.org/show_bug.cgi?id=119262
Reviewed by Gyuyoung Kim.
Sort files and unify style.
* CMakeLists.txt:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformWin.cmake:
* PlatformWinCE.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156267
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 08:09:08 +0000 (08:09 +0000)]
Cleanup CMake files in WebKit
https://bugs.webkit.org/show_bug.cgi?id=121763
Reviewed by Gyuyoung Kim.
Sort files and unify style.
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformWinCE.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156266
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 08:07:44 +0000 (08:07 +0000)]
Cleanup CMake files in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=121767
Reviewed by Gyuyoung Kim.
Sort files and unify style.
* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156265
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 08:03:38 +0000 (08:03 +0000)]
Cleanup CMake files in WTF
https://bugs.webkit.org/show_bug.cgi?id=121761
Reviewed by Gyuyoung Kim.
Sort files and unify the style.
* wtf/CMakeLists.txt:
* wtf/PlatformEfl.cmake:
* wtf/PlatformGTK.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156264
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Mon, 23 Sep 2013 08:02:57 +0000 (08:02 +0000)]
Cleanup CMake files in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=121762
Reviewed by Gyuyoung Kim.
Sort files and unify style.
* CMakeLists.txt:
* shell/CMakeLists.txt:
* shell/PlatformBlackBerry.cmake:
* shell/PlatformEfl.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156263
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 06:35:47 +0000 (06:35 +0000)]
Unreviewed, rolling out r156254.
http://trac.webkit.org/changeset/156254
https://bugs.webkit.org/show_bug.cgi?id=121779
Caused assertions in fast/regions tests (Requested by ap on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
(WebCore::RenderBlock::splitBlocks):
(WebCore::RenderBlock::splitFlow):
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeLeftoverAnonymousBlock):
(WebCore::RenderBlock::collapseAnonymousBoxChild):
(WebCore::RenderBlock::removeChild):
(WebCore::RenderBlock::updateFirstLetterStyle):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::firstChild):
(WebCore::RenderBlock::lastChild):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::splitAnonymousBoxesAroundChild):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::addChild):
(WebCore::RenderElement::removeChild):
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFrameSet.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::splitFlow):
(WebCore::RenderInline::childBecameNonInline):
* rendering/RenderInline.h:
(WebCore::RenderInline::firstChild):
(WebCore::RenderInline::lastChild):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
* rendering/RenderLineBreak.h:
* rendering/RenderListMarker.h:
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
* rendering/RenderMedia.h:
(WebCore::RenderMedia::firstChild):
(WebCore::RenderMedia::lastChild):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::handleDynamicFloatPositionChange):
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
* rendering/RenderObject.h:
(WebCore::RenderObject::firstChild):
(WebCore::RenderObject::lastChild):
(WebCore::RenderObject::children):
(WebCore::RenderObject::canHaveChildren):
* rendering/RenderObjectChildList.cpp: Added.
(WebCore::RenderObjectChildList::destroyLeftoverChildren):
(WebCore::RenderObjectChildList::removeChildNode):
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderObjectChildList.h: Copied from Source/WebCore/rendering/RenderMedia.h.
(WebCore::RenderObjectChildList::RenderObjectChildList):
(WebCore::RenderObjectChildList::firstChild):
(WebCore::RenderObjectChildList::lastChild):
(WebCore::RenderObjectChildList::setFirstChild):
(WebCore::RenderObjectChildList::setLastChild):
(WebCore::RenderObjectChildList::appendChildNode):
* rendering/RenderReplaced.h:
(WebCore::RenderReplaced::canHaveChildren):
* rendering/RenderReplica.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderingAllInOne.cpp:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):
* rendering/svg/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::firstChild):
(WebCore::RenderSVGContainer::lastChild):
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::willBeDestroyed):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156262
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Mon, 23 Sep 2013 06:34:09 +0000 (06:34 +0000)]
Unreviewed, GTK build fix when building with GTK+ 2.0.
Patch provided by Dominique Leuenberger <dimstar@opensuse.org>.
* WebCoreSupport/AcceleratedCompositingContextGL.cpp: Include GtkVersioning.h to set up
the mock GDK_IS_X11_DISPLAY macro if it's not provided by the GTK+ headers.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156261
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 06:33:13 +0000 (06:33 +0000)]
Unreviewed, rolling out r156253.
http://trac.webkit.org/changeset/156253
https://bugs.webkit.org/show_bug.cgi?id=121778
Caused >20 tests to crash with assertion failures (Requested
by ap on #webkit).
* css/CSSAspectRatioValue.h:
* css/CSSBorderImageSliceValue.h:
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseValue):
* css/CSSCalculationValue.h:
* css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque):
* css/CSSCrossfadeValue.h:
(WebCore::toCSSCrossfadeValue):
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
(WebCore::CSSCursorImageValue::isSVGCursor):
* css/CSSCursorImageValue.h:
* css/CSSFilterImageValue.h:
(WebCore::toCSSFilterImageValue):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSGradientValue.h:
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::loadSubimages):
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):
* css/CSSImageGeneratorValue.h:
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::fillImageSet):
* css/CSSImageSetValue.h:
* css/CSSImageValue.h:
* css/CSSInheritedValue.h:
* css/CSSInitialValue.h:
* css/CSSLineBoxContainValue.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillRepeat):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseRadialGradient):
* css/CSSPrimitiveValue.h:
* css/CSSReflectValue.h:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillAttachment):
(WebCore::CSSToStyleMap::mapFillClip):
(WebCore::CSSToStyleMap::mapFillComposite):
(WebCore::CSSToStyleMap::mapFillBlendMode):
(WebCore::CSSToStyleMap::mapFillOrigin):
(WebCore::CSSToStyleMap::mapFillRepeatX):
(WebCore::CSSToStyleMap::mapFillRepeatY):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapFillMaskSourceType):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDirection):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationFillMode):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationPlayState):
(WebCore::CSSToStyleMap::mapAnimationProperty):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):
* css/CSSValue.cpp:
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isCSSLineBoxContainValue):
(WebCore::CSSValue::isCalculationValue):
* css/CSSValueList.h:
* css/CSSVariableValue.h:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyMarqueeRepetition::applyValue):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue):
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
(WebCore::ApplyPropertyTextIndent::applyValue):
* css/FontFeatureValue.h:
* css/FontValue.h:
* css/MediaList.cpp:
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaQueryEvaluator.cpp:
(WebCore::compareAspectRatioValue):
(WebCore::numberValue):
(WebCore::orientationMediaFeatureEval):
(WebCore::evalResolution):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
(WebCore::computeLength):
(WebCore::view_modeMediaFeatureEval):
(WebCore::pointerMediaFeatureEval):
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/ShadowValue.h:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::createGridTrackSize):
(WebCore::createGridTrackList):
(WebCore::createGridPosition):
(WebCore::hasVariableReference):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::styleShader):
(WebCore::StyleResolver::parseCustomFilterArrayParameter):
(WebCore::StyleResolver::parseCustomFilterColorParameter):
(WebCore::StyleResolver::parseCustomFilterNumberParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
(WebCore::StyleResolver::parseCustomFilterParameterList):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
(WebCore::StyleResolver::createFilterOperations):
* css/TransformFunctions.cpp:
(WebCore::transformsForValue):
* css/ViewportStyleResolver.cpp:
(WebCore::ViewportStyleResolver::getViewportArgumentValue):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::computedFontSize):
* editing/EditingStyle.cpp:
(WebCore::identifierForStyleProperty):
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::cssValueToRGBA):
(WebCore::EditingStyle::extractFontSizeDelta):
(WebCore::EditingStyle::textDirection):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::legacyFontSize):
(WebCore::EditingStyle::textDirectionForSelection):
(WebCore::StyleChange::extractTextStyles):
(WebCore::fontWeightIsBold):
(WebCore::isTransparentColorValue):
* editing/markup.cpp:
(WebCore::propertyMissingOrEqualToNone):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::data):
(WebCore::StylePendingImage::cssImageValue):
(WebCore::StylePendingImage::cssImageGeneratorValue):
(WebCore::StylePendingImage::cssCursorImageValue):
(WebCore::StylePendingImage::cssImageSetValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156260
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 23 Sep 2013 06:31:24 +0000 (06:31 +0000)]
Unreviewed, rolling out r156257.
http://trac.webkit.org/changeset/156257
https://bugs.webkit.org/show_bug.cgi?id=121777
The test from this patch fails (Requested by ap on #webkit).
Source/WebCore:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateAutoscrollDirection):
LayoutTests:
* fast/events/drag-and-drop-autoscroll-inner-frame-expected.txt: Removed.
* fast/events/drag-and-drop-autoscroll-inner-frame.html: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156259
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jinwoo7.song@samsung.com [Mon, 23 Sep 2013 04:32:32 +0000 (04:32 +0000)]
Unreviewed EFL gardening. Rebaselining after r156040.
* platform/efl/fast/forms/HTMLOptionElement_label06-expected.txt:
* platform/efl/fast/forms/HTMLOptionElement_label07-expected.txt:
* platform/efl/fast/forms/form-element-geometry-expected.txt:
* platform/efl/fast/forms/menulist-separator-painting-expected.txt:
* platform/efl/fast/forms/select-baseline-expected.txt:
* platform/efl/fast/forms/select-empty-option-height-expected.txt:
* platform/efl/fast/forms/selectlist-minsize-expected.txt:
* platform/efl/fast/html/keygen-expected.txt:
* platform/efl/fast/replaced/three-selects-break-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156258
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tonikitoo@webkit.org [Mon, 23 Sep 2013 04:03:25 +0000 (04:03 +0000)]
iframe and scrollbar with "overflow:auto" should support autoscroll with mousedrag
https://bugs.webkit.org/show_bug.cgi?id=40981
Reviewed by Darin Adler.
Patch by Antonio Gomes <a1.gomes@sisa.samsung.com>
Source/WebCore:
RenderBox::calculateAutoscrollDirection does not properly translate
inner frames' coordinates in order to determine its auto-scrollability.
By coincidence, if the inner frame box it placed near to page's 0, 0 position
(upper left corner), it might work.
Patch fixes it by changing ::calculateAutoscrollDirection algorithm to operate
with window coordinates, taking inner frames offset and scroll position into account.
The behavior of auto-scrollable non-frame overflow boxes, including divs, still works
as it is used to.
Test: fast/events/drag-and-drop-autoscroll-inner-frame.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateAutoscrollDirection):
LayoutTests:
Test ensures that dragging an element close to the boundary of
scrollable Frames, scroll its content in that direction.
* fast/events/drag-and-drop-autoscroll-inner-frame-expected.txt: Added.
* fast/events/drag-and-drop-autoscroll-inner-frame.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156257
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 23 Sep 2013 03:40:47 +0000 (03:40 +0000)]
CTTE: Use references more in ContainerNode, ContainerNodeAlgorithms and related classes
https://bugs.webkit.org/show_bug.cgi?id=121772
Reviewed by Andreas Kling.
../WebCore:
Use references for never null Nodes in ContainerNode and related classes.
../WebKit/qt:
* Api/qwebelement.cpp:
(QWebElementCollection::append):
Update to work with the new StaticNodeList adopt function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156256
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Mon, 23 Sep 2013 02:59:16 +0000 (02:59 +0000)]
Fix functions calling to RenderObject superclass to call RenderElement instead
https://bugs.webkit.org/show_bug.cgi?id=121773
Reviewed by Andreas Kling.
The class hierarchy has a new class. Superclass calls should be pointed there instead to
avoid future bugs.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::setSelectionState):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleWillChange):
(WebCore::RenderLayerModelObject::styleDidChange):
* rendering/svg/RenderSVGGradientStop.cpp:
(WebCore::RenderSVGGradientStop::styleDidChange):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::styleWillChange):
(WebCore::RenderSVGModelObject::styleDidChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156255
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Mon, 23 Sep 2013 02:35:38 +0000 (02:35 +0000)]
Remove RenderObjectChildList
https://bugs.webkit.org/show_bug.cgi?id=121771
Reviewed by Darin Adler.
Most RenderElement subclasses have m_children member (>90% of instances on typical page). It is not worth optimising
for memory for the few cases that don't (RenderImage, RenderLineBreak mostly) in expense of performance.
This patch moves child handling to RenderElement. This gets rid of virtual children() calls and simplifies the code.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156254
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@samsung.com [Mon, 23 Sep 2013 01:20:19 +0000 (01:20 +0000)]
Introduce CSS_VALUE_TYPE_CASTS macro in order to cast CSSValue type
https://bugs.webkit.org/show_bug.cgi?id=121462
Reviewed by Andreas Kling.
As r155429 introduced ELEMENT_TYPE_CASTS, CSS_VALUE_TYPE_CASTS can be used
by css value type casting as well. This type cast macros will help to detect
bad-cast bugs as well as improve a code readibility.
This patch adds the following methods,
- CSSFooValue* toCSSFooValue(CSSValue*)
- const CSSFooValue* toCSSFooValue(const CSSValue*)
To be consistent with other is*Value() naming style, isCSSLineBoxContainValue() and isCalculationValue()
are changed with isLineBoxContainValue() and isCalcValue().
FontValue, FontFeatureValue, ShadowValue have a manual type case function because of different
class naming style. So, toFontValue(), toFontFeatureValue() and toShadowValue() are added manually.
This patch removes unnecessary local variables.
No new tests, no behavior change.
* css/CSSAspectRatioValue.h:
* css/CSSBorderImageSliceValue.h:
* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseValue):
* css/CSSCalculationValue.h:
* css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque):
* css/CSSCrossfadeValue.h:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
(WebCore::CSSCursorImageValue::isSVGCursor):
* css/CSSCursorImageValue.h:
* css/CSSFilterImageValue.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSGradientValue.h:
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::loadSubimages):
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):
* css/CSSImageGeneratorValue.h:
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::fillImageSet):
* css/CSSImageSetValue.h:
* css/CSSImageValue.h:
* css/CSSInheritedValue.h:
* css/CSSInitialValue.h:
* css/CSSLineBoxContainValue.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::parse3ValuesFillPosition):
(WebCore::CSSParser::parseFillPosition):
(WebCore::CSSParser::parseFillRepeat):
(WebCore::CSSParser::parseDeprecatedRadialGradient):
(WebCore::CSSParser::parseRadialGradient):
* css/CSSPrimitiveValue.h:
* css/CSSReflectValue.h:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillAttachment):
(WebCore::CSSToStyleMap::mapFillClip):
(WebCore::CSSToStyleMap::mapFillComposite):
(WebCore::CSSToStyleMap::mapFillBlendMode):
(WebCore::CSSToStyleMap::mapFillOrigin):
(WebCore::CSSToStyleMap::mapFillRepeatX):
(WebCore::CSSToStyleMap::mapFillRepeatY):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapFillMaskSourceType):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDirection):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationFillMode):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationPlayState):
(WebCore::CSSToStyleMap::mapAnimationProperty):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):
* css/CSSValue.cpp:
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isLineBoxContainValue):
(WebCore::CSSValue::isCalcValue):
* css/CSSValueList.h:
* css/CSSVariableValue.h:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyDefault::applyValue):
(WebCore::ApplyPropertyNumber::applyValue):
(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::applyValue):
(WebCore::ApplyPropertyColor::applyValue):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyString::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFont::applyValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::ApplyPropertyFontWeight::applyValue):
(WebCore::ApplyPropertyFontVariantLigatures::applyValue):
(WebCore::ApplyPropertyCounter::applyValue):
(WebCore::ApplyPropertyCursor::applyValue):
(WebCore::ApplyPropertyTextAlign::applyValue):
(WebCore::ApplyPropertyTextDecoration::applyValue):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyMarqueeRepetition::applyValue):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue):
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
(WebCore::ApplyPropertyResize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
(WebCore::ApplyPropertyZoom::applyValue):
(WebCore::ApplyPropertyDisplay::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyImageResolution::applyValue):
(WebCore::ApplyPropertyTextIndent::applyValue):
* css/FontFeatureValue.h:
(WebCore::toFontFeatureValue):
* css/FontValue.h:
(WebCore::toFontValue):
* css/MediaList.cpp:
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaQueryEvaluator.cpp:
(WebCore::compareAspectRatioValue):
(WebCore::numberValue):
(WebCore::orientationMediaFeatureEval):
(WebCore::evalResolution):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
(WebCore::computeLength):
(WebCore::view_modeMediaFeatureEval):
(WebCore::pointerMediaFeatureEval):
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/ShadowValue.h:
(WebCore::toShadowValue):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::createGridTrackSize):
(WebCore::createGridTrackList):
(WebCore::createGridPosition):
(WebCore::hasVariableReference):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::styleImage):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::styleShader):
(WebCore::StyleResolver::parseCustomFilterArrayParameter):
(WebCore::StyleResolver::parseCustomFilterColorParameter):
(WebCore::StyleResolver::parseCustomFilterNumberParameter):
(WebCore::StyleResolver::parseCustomFilterParameter):
(WebCore::StyleResolver::parseCustomFilterParameterList):
(WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
(WebCore::StyleResolver::createFilterOperations):
* css/TransformFunctions.cpp:
(WebCore::transformsForValue):
* css/ViewportStyleResolver.cpp:
(WebCore::ViewportStyleResolver::getViewportArgumentValue):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::setMatrixValue):
* css/WebKitCSSShaderValue.h:
(WebCore::toWebKitCSSShaderValue):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::computedFontSize):
* editing/EditingStyle.cpp:
(WebCore::identifierForStyleProperty):
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::cssValueToRGBA):
(WebCore::EditingStyle::extractFontSizeDelta):
(WebCore::EditingStyle::textDirection):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::legacyFontSize):
(WebCore::EditingStyle::textDirectionForSelection):
(WebCore::StyleChange::extractTextStyles):
(WebCore::fontWeightIsBold):
(WebCore::isTransparentColorValue):
* editing/markup.cpp:
(WebCore::propertyMissingOrEqualToNone):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::data):
(WebCore::StylePendingImage::cssImageValue):
(WebCore::StylePendingImage::cssImageGeneratorValue):
(WebCore::StylePendingImage::cssCursorImageValue):
(WebCore::StylePendingImage::cssImageSetValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156253
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 22 Sep 2013 23:19:14 +0000 (23:19 +0000)]
Hiding a focused element should unfocus it and fire a blur event
https://bugs.webkit.org/show_bug.cgi?id=29241
Patch by Arunprasad Rajkumar <ararunprasad@gmail.com> on 2013-09-22
Reviewed by Darin Adler.
Source/WebCore:
Test: fast/dom/HTMLDocument/active-element-gets-unfocusable.html
We check whether the current focus element is really focusable after
the style recalculation and layout change. If it is not focusable then schedule a
timer to reset it asynchronously.
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::recalcStyle): Check isFocusable() on the focus element after
style recalculation.
(WebCore::Document::updateLayout): Check isFocusable() on the focus element after
layout.
(WebCore::Document::resetHiddenFocusElementSoon):
(WebCore::Document::resetHiddenFocusElementTimer):
* dom/Document.h:
LayoutTests:
* fast/dom/HTMLDocument/active-element-gets-unfocusable-expected.txt: Added.
* fast/dom/HTMLDocument/active-element-gets-unfocusable.html: Added.
LayoutTest reused from https://chromium.googlesource.com/chromium/blink/+/
c58f636fd18fc27944c42e27d6a92a36867c57e1
with little modification.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156252
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 22 Sep 2013 22:11:37 +0000 (22:11 +0000)]
CTTE: StaticNodeLists often contain only Elements, we shouldn't store them as Vector<RefPtr<Node>> in those cases
https://bugs.webkit.org/show_bug.cgi?id=121769
Reviewed by Andreas Kling.
Introduces StaticElementList and uses it.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/js/JSHTMLCollectionCustom.cpp:
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* dom/SelectorQuery.cpp:
(WebCore::AllElementExtractorSelectorQueryTrait::appendOutputForElement):
(WebCore::SelectorDataList::queryAll):
* dom/StaticNodeList.cpp:
(WebCore::StaticElementList::length):
(WebCore::StaticElementList::item):
(WebCore::StaticElementList::namedItem):
* dom/StaticNodeList.h:
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):
(WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
(WebCore::WebKitNamedFlow::dispatchRegionOversetChangeEvent):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::namedItems):
* html/HTMLCollection.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getNamedElements):
* html/HTMLFormElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156251
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 22 Sep 2013 21:23:48 +0000 (21:23 +0000)]
CTTE: RenderNamedFlowThread and FlowThreadController should operate on Elements, not Nodes
https://bugs.webkit.org/show_bug.cgi?id=121768
Reviewed by Andreas Kling.
* dom/Element.cpp:
(WebCore::Element::unregisterNamedFlowContentElement):
(WebCore::Element::shouldMoveToFlowThread):
(WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
* dom/Element.h:
Update to new names and to pass this as a reference to the FlowThreadController.
* dom/Node.cpp:
* dom/Node.h:
Move isRegisteredWithNamedFlow() to Element.
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):
Update for contentNodes() -> contentElements() name change. Modernize the code a bit
as well.
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::registerNamedFlowContentElement):
(WebCore::FlowThreadController::unregisterNamedFlowContentElement):
(WebCore::FlowThreadController::isContentElementRegisteredWithAnyNamedFlow):
* rendering/FlowThreadController.h:
Change the Node* -> RenderNamedFlowThread* map to a Element* -> RenderNamedFlowThread*. Update
functions taking Node*s to take Element&s.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::clearContentElements):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::hasContentElement):
(WebCore::isContainedInElements):
(WebCore::nextNodeInsideContentElement):
(WebCore::RenderNamedFlowThread::getRanges):
* rendering/RenderNamedFlowThread.h:
Change the NamedFlowContent set to store Elements rather than Nodes. Like with FlowThreadController,
update registration functions to take Element&s instead of Node*s, removing asserts.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
Update for new names.
* style/StyleResolveTree.cpp:
(WebCore::Style::moveToFlowThreadIfNeeded):
Pass the Element and RenderNamedFlowThread as references.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156250
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 22 Sep 2013 21:23:34 +0000 (21:23 +0000)]
Try to fix the windows build (take 2).
* DOMEventsClasses.cpp:
(DOMEvent::createInstance):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156249
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 22 Sep 2013 21:17:27 +0000 (21:17 +0000)]
Try to fix the windows build.
* DOMEventsClasses.cpp:
(DOMEvent::createInstance):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156248
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sun, 22 Sep 2013 17:03:59 +0000 (17:03 +0000)]
Get rid of CodeBlock::RareData::callReturnIndexVector and most of the evil that it introduced
https://bugs.webkit.org/show_bug.cgi?id=121766
Reviewed by Andreas Kling.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shrinkToFit):
* bytecode/CodeBlock.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileExceptionHandlers):
(JSC::DFG::JITCompiler::link):
* jit/JIT.cpp:
(JSC::JIT::privateCompile):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156247
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sun, 22 Sep 2013 12:49:59 +0000 (12:49 +0000)]
Give purity hints to compiler to avoid penalizing repeated calls to some functions.
<https://webkit.org/b/121744>
Reviewed by Darin Adler.
Source/WebCore:
Mark the following functions pure:
- gcController()
- cssValuePool()
- threadGlobalData()
I had this idea when I saw Darin's patch to cache cssValuePool() in a local.
We know that this function will always return the same value, so we should just
share this knowledge with the compiler and let it do the cleverness instead.
Source/WTF:
Added a PURE_FUNCTION macro. This is supported on GCC and Clang for now.
Marking a function pure means that the compiler's CSE pass is free to coalesce
multiple calls to this function because it has no globally observable side
effects beyond the first call.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156246
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Sun, 22 Sep 2013 07:34:49 +0000 (07:34 +0000)]
Remove unused code in WebKit/mac's WebScriptDebugDelegate.
https://bugs.webkit.org/show_bug.cgi?id=121706.
Reviewed by Timothy Hatcher.
WebScriptDebugDelegate's didEnterCallFrame, willExecuteStatement,
and willLeaveCallFrame are not in use. Removed them and all methods
and fields used for supporting them.
* WebView/WebDelegateImplementationCaching.h:
* WebView/WebScriptDebugDelegate.h:
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFramePrivate dealloc]):
(-[WebScriptCallFrame _initWithGlobalObject:debuggerCallFrame:]):
* WebView/WebScriptDebugger.h:
(WebScriptDebugger::globalObject):
(WebScriptDebugger::callEvent):
(WebScriptDebugger::atStatement):
(WebScriptDebugger::returnEvent):
(WebScriptDebugger::willExecuteProgram):
(WebScriptDebugger::didExecuteProgram):
(WebScriptDebugger::didReachBreakpoint):
* WebView/WebScriptDebugger.mm:
(WebScriptDebugger::WebScriptDebugger):
(WebScriptDebugger::exception):
* WebView/WebView.mm:
(-[WebView _cacheScriptDebugDelegateImplementations]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156245
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 22 Sep 2013 07:15:15 +0000 (07:15 +0000)]
Fix accessibility-node-memory-management.html to use normal style for
GC-related tests, making it more robust
https://bugs.webkit.org/show_bug.cgi?id=121760
Rubber-stamped by Alexey Proskuryakov.
Change was accidentally landed in previous commit, this is the change log
that goes with it.
* accessibility/accessibility-node-memory-management.html:
Use jsTestIsAsync and setTimeout to do the garbage collection without the
rest of the script state on the stack. Also removed a lot of unneeded
"window." since the test works fine without them and tweaked comments.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156244
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 22 Sep 2013 07:11:10 +0000 (07:11 +0000)]
Fix too-strict type error exceptions introduced in WebGL bindings
https://bugs.webkit.org/show_bug.cgi?id=121759
Reviewed by Alexey Proskuryakov.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::getAttachedShaders): Allow undefined
or null without throwing type error.
(WebCore::JSWebGLRenderingContext::getProgramParameter): Ditto.
(WebCore::JSWebGLRenderingContext::getUniform): Ditto.
(WebCore::dataFunctionf): Ditto.
(WebCore::dataFunctioni): Ditto.
(WebCore::dataFunctionMatrix): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156243
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sun, 22 Sep 2013 05:00:45 +0000 (05:00 +0000)]
Interpreter::unwind() has no need for the bytecodeOffset
https://bugs.webkit.org/show_bug.cgi?id=121755
Reviewed by Oliver Hunt.
It was only using the bytecodeOffset for some debugger stuff, but the debugger could
just get the bytecodeOffset the same way the rest of the machinery does: by using the
CallFrame's location.
It turns out that a lot of really ugly code was in place just to supply this
bytecodeOffset. This patch kills most of that code, and allows us to kill even more
code in a future patch - though most likely that killage will involve further
refactorings as well, see https://bugs.webkit.org/show_bug.cgi?id=121734.
* dfg/DFGOperations.cpp:
* interpreter/CallFrame.cpp:
(JSC::CallFrame::bytecodeOffset):
(JSC::CallFrame::codeOrigin):
* interpreter/CallFrame.h:
* interpreter/Interpreter.cpp:
(JSC::Interpreter::unwind):
* interpreter/Interpreter.h:
* jit/JITExceptions.cpp:
(JSC::genericUnwind):
* jit/JITExceptions.h:
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
(JSC::cti_vm_handle_exception):
* llint/LLIntExceptions.cpp:
(JSC::LLInt::doThrow):
(JSC::LLInt::returnToThrow):
(JSC::LLInt::callToThrow):
* llint/LLIntExceptions.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPathsExceptions.cpp:
(JSC::CommonSlowPaths::interpreterThrowInCaller):
* runtime/CommonSlowPathsExceptions.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156242
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 22 Sep 2013 04:15:10 +0000 (04:15 +0000)]
Event and EventTarget interfaces don't need to be store as AtomicStrings
https://bugs.webkit.org/show_bug.cgi?id=121751
Reviewed by Andreas Kling.
Convert the Event and EventTarget interface identifiers from AtomicStrings to enums. They
are not extensible and not exposed as Strings anywhere.
* Files elided *
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156241
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sun, 22 Sep 2013 04:02:59 +0000 (04:02 +0000)]
Add ExecState::uncheckedArgument and use where possible to shrink a bit
https://bugs.webkit.org/show_bug.cgi?id=121750
Reviewed by Andreas Kling.
Source/JavaScriptCore:
* interpreter/CallFrame.h:
(JSC::ExecState::uncheckedArgument): Added. Like argument, but with an
assertion rather than a runtime check.
* API/APICallbackFunction.h:
(JSC::APICallbackFunction::call): Use uncheckedArgument because we are
already in a loop over arguments, so don't need a range check.
* API/JSCallbackConstructor.cpp:
(JSC::constructJSCallback): Ditto.
* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject::construct): Ditto.
(JSC::JSCallbackObject::call): Ditto.
* jsc.cpp:
(functionPrint): Ditto.
(functionRun): Ditto.
(functionSetSamplingFlags): Ditto.
(functionClearSamplingFlags): Ditto.
* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncConcat): Ditto.
(JSC::arrayProtoFuncPush): Use uncheckedArgument because there is already
code that explicitly checks argumentCount.
(JSC::arrayProtoFuncSplice): Ditto.
(JSC::arrayProtoFuncUnShift): Ditto.
(JSC::arrayProtoFuncReduce): Ditto.
(JSC::arrayProtoFuncReduceRight): Ditto.
(JSC::arrayProtoFuncLastIndexOf): Ditto.
* runtime/DatePrototype.cpp:
(JSC::fillStructuresUsingTimeArgs): Ditto.
(JSC::fillStructuresUsingDateArgs): Ditto.
* runtime/JSArrayBufferConstructor.cpp:
(JSC::constructArrayBuffer): Ditto.
* runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice): Ditto.
* runtime/JSBoundFunction.cpp:
(JSC::boundFunctionCall): Ditto.
(JSC::boundFunctionConstruct): Ditto.
* runtime/JSDataViewPrototype.cpp:
(JSC::getData): Ditto.
(JSC::setData): Ditto.
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayView): Ditto.
* runtime/JSGenericTypedArrayViewPrototypeInlines.h:
(JSC::genericTypedArrayViewProtoFuncSet): Ditto.
(JSC::genericTypedArrayViewProtoFuncSubarray): Ditto.
* runtime/JSONObject.cpp:
(JSC::JSONProtoFuncParse): Ditto.
(JSC::JSONProtoFuncStringify): Ditto.
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise): Ditto.
(JSC::JSPromiseConstructorFuncFulfill): Ditto.
(JSC::JSPromiseConstructorFuncResolve): Ditto.
(JSC::JSPromiseConstructorFuncReject): Ditto.
* runtime/MathObject.cpp:
(JSC::mathProtoFuncMax): Ditto.
(JSC::mathProtoFuncMin): Ditto.
* runtime/NameConstructor.cpp:
(JSC::constructPrivateName): Removed unneeded check of argumentCout
that simply repeats what argument already does.
* runtime/NativeErrorConstructor.cpp:
(JSC::Interpreter::constructWithNativeErrorConstructor): Ditto.
(JSC::Interpreter::callNativeErrorConstructor): Ditto.
* runtime/NumberConstructor.cpp:
(JSC::constructWithNumberConstructor): Use uncheckedArgument since
there is already code that explicitly checks argument count.
(JSC::callNumberConstructor): Ditto.
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorCreate): Small refactoring to not call argument(0)
three times.
* runtime/SetConstructor.cpp:
(JSC::constructSet): Use uncheckedArgument since we are already in a loop
over arguments.
* runtime/StringConstructor.cpp:
(JSC::stringFromCharCodeSlowCase): In a loop.
(JSC::stringFromCharCode): Already checked count.
(JSC::constructWithStringConstructor): Ditto.
(JSC::callStringConstructor): Ditto.
* runtime/StringPrototype.cpp:
(JSC::stringProtoFuncConcat): Already checked count.
* runtime/TestRunnerUtils.cpp:
(JSC::numberOfDFGCompiles): Ditto.
(JSC::setNeverInline): Ditto.
Source/WebCore:
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::probablySupportsContext): Already checked count.
(WebCore::JSHTMLCanvasElement::toDataURL): Ditto.
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::documentWrite): In a loop.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::inspectedObject): Already checked count.
(WebCore::JSInjectedScriptHost::internalConstructorName): Ditto.
(WebCore::JSInjectedScriptHost::isHTMLAllCollection): Ditto.
(WebCore::JSInjectedScriptHost::type): Ditto.
(WebCore::JSInjectedScriptHost::functionDetails): Ditto.
(WebCore::JSInjectedScriptHost::getEventListeners): Ditto.
(WebCore::JSInjectedScriptHost::inspect): Ditto.
(WebCore::JSInjectedScriptHost::databaseId): Ditto.
(WebCore::JSInjectedScriptHost::storageId): Ditto.
* bindings/js/JSSQLTransactionSyncCustom.cpp:
(WebCore::JSSQLTransactionSync::executeSql): Ditto.
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::convertToSpecifiedUnits): Ditto.
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker): Ditto.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::getObjectParameter): Already checked count.
(WebCore::JSWebGLRenderingContext::getAttachedShaders): Removed tortured code
to triply do the checking that the toWebGLProgram function already does, including
spurious exception checking in code that can't create an exception. Also count is
already checked.
(WebCore::JSWebGLRenderingContext::getExtension): More of the same.
(WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter): Ditto.
(WebCore::JSWebGLRenderingContext::getParameter): Ditto.
(WebCore::JSWebGLRenderingContext::getProgramParameter): Ditto.
(WebCore::JSWebGLRenderingContext::getShaderParameter): Ditto.
(WebCore::JSWebGLRenderingContext::getUniform): Ditto.
(WebCore::dataFunctionf): Ditto.
(WebCore::dataFunctioni): Ditto.
(WebCore::dataFunctionMatrix): Ditto.
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::importScripts): In a loop.
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::open): Already checked. Also removed some unneeded
argument count checks.
(WebCore::JSXMLHttpRequest::send): Removed unneeded special case for 0 argument
count that does the same thing as the undefined case, since asking for an
argument past the count yields undefined.
* bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessor::setParameter): Already checked.
(WebCore::JSXSLTProcessor::getParameter): Already checked.
(WebCore::JSXSLTProcessor::removeParameter): Already checked.
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::ScheduledAction): In a loop.
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptArguments): Ditto.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck): Removed some excess argumentCount checks.
Used uncheckedArgument in a few places. More needs to be done, especially for
overloaded functions.
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::invokeMethod): In a loop.
(JSC::Bindings::CInstance::invokeDefaultMethod): Ditto.
* bridge/objc/objc_instance.mm:
(ObjcInstance::invokeObjcMethod): Ditto.
(ObjcInstance::invokeDefaultMethod): Ditto.
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
Updated.
Source/WebKit2:
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::callMethod): In a loop.
(WebKit::JSNPObject::callObject): Ditto.
(WebKit::JSNPObject::callConstructor): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156240
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sun, 22 Sep 2013 03:48:26 +0000 (03:48 +0000)]
Remove the notion that a CallFrame can have a pointer to an InlineCallFrame, since that doesn't happen anymore
https://bugs.webkit.org/show_bug.cgi?id=121753
Reviewed by Darin Adler.
* interpreter/CallFrame.cpp:
(JSC::CallFrame::bytecodeOffsetFromCodeOriginIndex):
* interpreter/CallFrame.h:
* interpreter/Register.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156239
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sun, 22 Sep 2013 00:31:09 +0000 (00:31 +0000)]
Unreviewed, fix the revert.
* dfg/DFGRepatch.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156238
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sun, 22 Sep 2013 00:24:36 +0000 (00:24 +0000)]
Unreviewed, revert trac.webkit.org/changeset/156235. It won't work on Windows.
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::unlink):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::resetStubInternal):
* bytecode/StructureStubInfo.h:
* dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
(JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
* dfg/DFGJITCompiler.h:
* dfg/DFGOSRExitCompiler.h:
* dfg/DFGOperations.cpp:
(JSC::DFG::operationPutByValInternal):
* dfg/DFGOperations.h:
(JSC::DFG::operationNewTypedArrayWithSizeForType):
(JSC::DFG::operationNewTypedArrayWithOneArgumentForType):
* dfg/DFGRegisterSet.h: Added.
(JSC::DFG::RegisterSet::RegisterSet):
(JSC::DFG::RegisterSet::asPOD):
(JSC::DFG::RegisterSet::copyInfo):
(JSC::DFG::RegisterSet::set):
(JSC::DFG::RegisterSet::setGPRByIndex):
(JSC::DFG::RegisterSet::clear):
(JSC::DFG::RegisterSet::get):
(JSC::DFG::RegisterSet::getGPRByIndex):
(JSC::DFG::RegisterSet::getFreeGPR):
(JSC::DFG::RegisterSet::setFPRByIndex):
(JSC::DFG::RegisterSet::getFPRByIndex):
(JSC::DFG::RegisterSet::setByIndex):
(JSC::DFG::RegisterSet::getByIndex):
(JSC::DFG::RegisterSet::numberOfSetGPRs):
(JSC::DFG::RegisterSet::numberOfSetFPRs):
(JSC::DFG::RegisterSet::numberOfSetRegisters):
(JSC::DFG::RegisterSet::setBit):
(JSC::DFG::RegisterSet::clearBit):
(JSC::DFG::RegisterSet::getBit):
* dfg/DFGRepatch.cpp: Added.
(JSC::DFG::repatchCall):
(JSC::DFG::repatchByIdSelfAccess):
(JSC::DFG::addStructureTransitionCheck):
(JSC::DFG::replaceWithJump):
(JSC::DFG::emitRestoreScratch):
(JSC::DFG::linkRestoreScratch):
(JSC::DFG::generateProtoChainAccessStub):
(JSC::DFG::tryCacheGetByID):
(JSC::DFG::repatchGetByID):
(JSC::DFG::getPolymorphicStructureList):
(JSC::DFG::patchJumpToGetByIdStub):
(JSC::DFG::tryBuildGetByIDList):
(JSC::DFG::buildGetByIDList):
(JSC::DFG::appropriateGenericPutByIdFunction):
(JSC::DFG::appropriateListBuildingPutByIdFunction):
(JSC::DFG::emitPutReplaceStub):
(JSC::DFG::emitPutTransitionStub):
(JSC::DFG::tryCachePutByID):
(JSC::DFG::repatchPutByID):
(JSC::DFG::tryBuildPutByIdList):
(JSC::DFG::buildPutByIdList):
(JSC::DFG::tryRepatchIn):
(JSC::DFG::repatchIn):
(JSC::DFG::linkSlowFor):
(JSC::DFG::linkFor):
(JSC::DFG::linkClosureCall):
(JSC::DFG::resetGetByID):
(JSC::DFG::resetPutByID):
(JSC::DFG::resetIn):
* dfg/DFGRepatch.h: Added.
(JSC::DFG::resetGetByID):
(JSC::DFG::resetPutByID):
(JSC::DFG::resetIn):
* dfg/DFGScratchRegisterAllocator.h: Added.
(JSC::DFG::ScratchRegisterAllocator::ScratchRegisterAllocator):
(JSC::DFG::ScratchRegisterAllocator::lock):
(JSC::DFG::ScratchRegisterAllocator::allocateScratch):
(JSC::DFG::ScratchRegisterAllocator::allocateScratchGPR):
(JSC::DFG::ScratchRegisterAllocator::allocateScratchFPR):
(JSC::DFG::ScratchRegisterAllocator::didReuseRegisters):
(JSC::DFG::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::DFG::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::DFG::ScratchRegisterAllocator::desiredScratchBufferSize):
(JSC::DFG::ScratchRegisterAllocator::preserveUsedRegistersToScratchBuffer):
(JSC::DFG::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBuffer):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::writeBarrier):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compare):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGThunks.cpp:
(JSC::DFG::emitPointerValidation):
(JSC::DFG::throwExceptionFromCallSlowPathGenerator):
(JSC::DFG::slowPathFor):
(JSC::DFG::linkForThunkGenerator):
(JSC::DFG::linkCallThunkGenerator):
(JSC::DFG::linkConstructThunkGenerator):
(JSC::DFG::linkClosureCallThunkGenerator):
(JSC::DFG::virtualForThunkGenerator):
(JSC::DFG::virtualCallThunkGenerator):
(JSC::DFG::virtualConstructThunkGenerator):
* dfg/DFGThunks.h:
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
* ftl/FTLOSRExitCompiler.h:
* jit/AssemblyHelpers.h:
* jit/JIT.cpp:
(JSC::JIT::linkFor):
(JSC::JIT::linkSlowCall):
* jit/JITCall.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::privateCompileClosureCall):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::privateCompileClosureCall):
* jit/JITOperationWrappers.h: Removed.
* jit/JITOperations.cpp: Removed.
* jit/JITOperations.h: Removed.
* jit/RegisterSet.h: Removed.
* jit/Repatch.cpp: Removed.
* jit/Repatch.h: Removed.
* jit/ScratchRegisterAllocator.h: Removed.
* jit/ThunkGenerators.cpp:
(JSC::generateSlowCaseFor):
(JSC::linkForGenerator):
(JSC::linkCallGenerator):
(JSC::linkConstructGenerator):
(JSC::linkClosureCallGenerator):
(JSC::virtualForGenerator):
(JSC::virtualCallGenerator):
(JSC::virtualConstructGenerator):
* jit/ThunkGenerators.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156237
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jonlee@apple.com [Sun, 22 Sep 2013 00:11:15 +0000 (00:11 +0000)]
Fix Obj-C bindings test expectations.
Unreviewed.
Bindings tests failed with r156232, from https://bugs.webkit.org/show_bug.cgi?id=121745.
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj reflectedStringAttr]): Update test expectations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156236
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sat, 21 Sep 2013 23:10:45 +0000 (23:10 +0000)]
Move DFG inline caching logic into jit/
https://bugs.webkit.org/show_bug.cgi?id=121749
Rubber stamped by Sam Weinig.
We want to get rid of the baseline JIT's inline caching machinery and have it use the
DFG's instead. But before we do that we need to move the DFG's inline caching machine
out from behind its ENABLE(DFG_JIT) guards and make it available to the whole system.
This patch does that:
- dfg/DFGRepatch becomes jit/Repatch.
- The thunks used by the DFG IC go into jit/ThunkGenerators, instead of dfg/DFGThunks.
- The operations used by the DFG IC go into jit/JITOperations, instead of
dfg/DFGOperations.
- The old JIT's thunk generators for calls are renamed to reduce confusion. Previously
it was easy to know which generators belong to which JIT because the old JIT used
JSC::virtualCallBlah and the DFG used JSC::DFG::virtualCallBlah, but that's not the
case anymore. Note that the old JIT's thunk generators will die in a future patch.
No functional changes beyond those moves.
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::unlink):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::resetStubInternal):
* bytecode/StructureStubInfo.h:
* dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
(JSC::DFG::CallArrayAllocatorSlowPathGenerator::CallArrayAllocatorSlowPathGenerator):
(JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
* dfg/DFGJITCompiler.h:
* dfg/DFGOSRExitCompiler.h:
* dfg/DFGOperations.cpp:
(JSC::DFG::operationPutByValInternal):
* dfg/DFGOperations.h:
(JSC::DFG::operationNewTypedArrayWithSizeForType):
(JSC::DFG::operationNewTypedArrayWithOneArgumentForType):
* dfg/DFGRegisterSet.h: Removed.
* dfg/DFGRepatch.cpp: Removed.
* dfg/DFGRepatch.h: Removed.
* dfg/DFGScratchRegisterAllocator.h: Removed.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compare):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGThunks.cpp:
* dfg/DFGThunks.h:
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::writeBarrier):
* jit/JIT.cpp:
(JSC::JIT::linkFor):
(JSC::JIT::linkSlowCall):
* jit/JITCall.cpp:
(JSC::JIT::compileCallEval):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::privateCompileClosureCall):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::privateCompileClosureCall):
* jit/JITOperationWrappers.h: Added.
* jit/JITOperations.cpp: Added.
* jit/JITOperations.h: Added.
* jit/RegisterSet.h: Added.
(JSC::RegisterSet::RegisterSet):
(JSC::RegisterSet::asPOD):
(JSC::RegisterSet::copyInfo):
(JSC::RegisterSet::set):
(JSC::RegisterSet::setGPRByIndex):
(JSC::RegisterSet::clear):
(JSC::RegisterSet::get):
(JSC::RegisterSet::getGPRByIndex):
(JSC::RegisterSet::getFreeGPR):
(JSC::RegisterSet::setFPRByIndex):
(JSC::RegisterSet::getFPRByIndex):
(JSC::RegisterSet::setByIndex):
(JSC::RegisterSet::getByIndex):
(JSC::RegisterSet::numberOfSetGPRs):
(JSC::RegisterSet::numberOfSetFPRs):
(JSC::RegisterSet::numberOfSetRegisters):
(JSC::RegisterSet::setBit):
(JSC::RegisterSet::clearBit):
(JSC::RegisterSet::getBit):
* jit/Repatch.cpp: Added.
(JSC::repatchCall):
(JSC::repatchByIdSelfAccess):
(JSC::addStructureTransitionCheck):
(JSC::replaceWithJump):
(JSC::emitRestoreScratch):
(JSC::linkRestoreScratch):
(JSC::generateProtoChainAccessStub):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::getPolymorphicStructureList):
(JSC::patchJumpToGetByIdStub):
(JSC::tryBuildGetByIDList):
(JSC::buildGetByIDList):
(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateListBuildingPutByIdFunction):
(JSC::emitPutReplaceStub):
(JSC::emitPutTransitionStub):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryBuildPutByIdList):
(JSC::buildPutByIdList):
(JSC::tryRepatchIn):
(JSC::repatchIn):
(JSC::linkSlowFor):
(JSC::linkFor):
(JSC::linkClosureCall):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::resetIn):
* jit/Repatch.h: Added.
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::resetIn):
* jit/ScratchRegisterAllocator.h: Added.
(JSC::ScratchRegisterAllocator::ScratchRegisterAllocator):
(JSC::ScratchRegisterAllocator::lock):
(JSC::ScratchRegisterAllocator::allocateScratch):
(JSC::ScratchRegisterAllocator::allocateScratchGPR):
(JSC::ScratchRegisterAllocator::allocateScratchFPR):
(JSC::ScratchRegisterAllocator::didReuseRegisters):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::ScratchRegisterAllocator::desiredScratchBufferSize):
(JSC::ScratchRegisterAllocator::preserveUsedRegistersToScratchBuffer):
(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBuffer):
* jit/ThunkGenerators.cpp:
(JSC::oldStyleGenerateSlowCaseFor):
(JSC::oldStyleLinkForGenerator):
(JSC::oldStyleLinkCallGenerator):
(JSC::oldStyleLinkConstructGenerator):
(JSC::oldStyleLinkClosureCallGenerator):
(JSC::oldStyleVirtualForGenerator):
(JSC::oldStyleVirtualCallGenerator):
(JSC::oldStyleVirtualConstructGenerator):
(JSC::emitPointerValidation):
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::slowPathFor):
(JSC::linkForThunkGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkConstructThunkGenerator):
(JSC::linkClosureCallThunkGenerator):
(JSC::virtualForThunkGenerator):
(JSC::virtualCallThunkGenerator):
(JSC::virtualConstructThunkGenerator):
* jit/ThunkGenerators.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156235
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sat, 21 Sep 2013 20:02:35 +0000 (20:02 +0000)]
Node: FINAL-ize EventTarget overrides.
<https://webkit.org/b/121748>
Reviewed by Darin Adler.
Mark the following Node functions FINAL:
- scriptExecutionContext()
- eventTargetData()
- ensureEventTargetData()
This devirtualizes a myriad of generated calls in the JSC bindings.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156234
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Sat, 21 Sep 2013 19:05:41 +0000 (19:05 +0000)]
Fix the non-DFG build.
* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::r):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156233
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sat, 21 Sep 2013 18:46:09 +0000 (18:46 +0000)]
Don't bloat Obj-C bindings with inlined attribute retrieval.
<https://webkit.org/b/121745>
Reviewed by Anders Carlsson.
Hack bindings generator to always use getAttribute() for Objective-C.
Reduces WebCore binary size by 25120 bytes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156232
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sat, 21 Sep 2013 18:25:43 +0000 (18:25 +0000)]
Shink attribute event listener code
https://bugs.webkit.org/show_bug.cgi?id=121735
Reviewed by Antti Koivisto.
* GNUmakefile.list.am: Eliminate ScriptEventListener source files.
* Target.pri: Ditto.
* UseJSC.cmake: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/js/JSBindingsAllInOne.cpp: Ditto.
* bindings/js/JSDOMGlobalObject.h: Removed unneeded forward declarations
of JSEventListener and JSLazyEventListener.
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::JSLazyEventListener): Changed type to
ContainerNode because the node pointer is only ever used for elements
and documents.
(WebCore::eventParameterName): Moved this function here from
ScriptEventListener.cpp, but also rewrote to use NeverDestroyed.
(WebCore::JSLazyEventListener::createForNode): Moved this function
here from ScriptEventListener.cpp, cleaned up a bit.
(WebCore::JSLazyEventListener::createForDOMWindow): Ditto.
* bindings/js/JSLazyEventListener.h: Replaced the old create function
with two new create functions we can use directly. Also used some
OVERRIDE, some FINAL, and a bit of WTF_DELETED_FUNCTION so we don't
accidentally call create and create a non-lazy listener.
* bindings/js/ScriptEventListener.cpp: Removed.
* bindings/js/ScriptEventListener.h: Removed.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::setAttributeEventListener): Added.
Calls JSLazyEventListener::createForNode and then calls the other
overload of setAttributeEventListener, to obviate having more code
at the call site.
* dom/ContainerNode.h: Added overload of setAttributeEventListener
for convenient use in Document and Element implementations.
* dom/Document.cpp:
(WebCore::Document::prepareForDestruction): Use m_domWindow instead
of the domWindow() function.
(WebCore::Document::removeAllEventListeners): Ditto.
(WebCore::Document::errorEventTarget): Ditto.
(WebCore::Document::takeDOMWindowFrom): Ditto.
(WebCore::Document::setWindowAttributeEventListener): Ditto. Also
added an overload that calls JSLazyEventListener::createForDOMWindow.
(WebCore::Document::getWindowAttributeEventListener): Use m_domWindow.
(WebCore::Document::dispatchWindowEvent): Ditto.
(WebCore::Document::dispatchWindowLoadEvent): Ditto.
(WebCore::Document::enqueueWindowEvent): Ditto.
(WebCore::Document::enqueuePopstateEvent): Ditto.
* dom/Document.h: Added overload of setWindowAttributeEventListener.
* html/HTMLBodyElement.cpp: Removed unnneded include.
(WebCore::HTMLBodyElement::parseAttribute): Removed all the calls to
createAttributeEventListener, and use the setAttributeEventListener
overloads instead.
* html/HTMLButtonElement.cpp: Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute): Ditto.
* html/HTMLFormControlElement.cpp: Ditto.
* html/HTMLFormElement.cpp: Ditto.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute): Ditto.
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseAttribute): Ditto.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute): Ditto.
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute): Ditto.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute): Ditto.
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseAttribute): Ditto.
* html/HTMLSelectElement.cpp: Ditto.
* html/HTMLStyleElement.cpp: Ditto.
* html/HTMLTextFormControlElement.cpp: Ditto.
* html/HTMLTrackElement.cpp: Ditto.
* html/track/LoadableTextTrack.cpp: Ditto.
* svg/SVGElement.cpp:
(WebCore::SVGElement::parseAttribute): Ditto.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseAttribute): Ditto.
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::parseAttribute): Ditto.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
Moved the code here to dig inside a JSEventListener for things like
the source location. This used to be spread across multiple function
calls in ScriptEventListener.h, which were doing and redoing the same
things, so better to just get it all at once.
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init): Fixed "minium" typo.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156231
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Sat, 21 Sep 2013 17:47:12 +0000 (17:47 +0000)]
Don't store the "processing-instruction" string for PI tokens in the XPath parser
https://bugs.webkit.org/show_bug.cgi?id=121746
Reviewed by Antti Koivisto.
For PI tokens, the string is always going to be "processing-instruction", and it's never used so we don't need to save it.
* xml/XPathGrammar.y:
* xml/XPathParser.cpp:
(Parser::nextTokenInternal):
(Parser::lex):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156230
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Sat, 21 Sep 2013 17:40:35 +0000 (17:40 +0000)]
Get rid of IsInlinedCodeTag and its associated methods since it's unused
https://bugs.webkit.org/show_bug.cgi?id=121737
Source/JavaScriptCore:
Reviewed by Sam Weinig.
This was meant to be easy, but I kept wondering if it was safe to remove the
inline call frame check in Arguments::tearOff(). The check was clearly dead
since the bit wasn't being set anywhere.
It turns out that the unwindCallFrame() function was relying on tearOff()
doing the right thing for inlined code, but it wasn't even passing it an
inline call frame. I fixed this by having unwindCallFrame() inlining check,
while also making sure that the code uses the right operand index for the
arguments register.
* interpreter/CallFrame.h:
* interpreter/CallFrameInlines.h:
* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::r):
* interpreter/StackVisitor.h:
* runtime/Arguments.cpp:
(JSC::Arguments::tearOff):
LayoutTests:
Reviewed by Sam Weinig.
* js/dfg-inline-arguments-capture-throw-exception-expected.txt: Added.
* js/dfg-inline-arguments-capture-throw-exception.html: Added.
* js/script-tests/dfg-inline-arguments-capture-throw-exception.js: Added.
(foo):
(bar):
(makeF):
(recurse):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156229
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Sat, 21 Sep 2013 13:45:10 +0000 (13:45 +0000)]
Handle windows lineendings in makeprop.pl after r155511
https://bugs.webkit.org/show_bug.cgi?id=121740
Reviewed by Ryosuke Niwa.
Check for an optinal \r at the end of a line in regular expressions
to make it work again on native windows machines which use CRLF.
* css/makeprop.pl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156228
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sat, 21 Sep 2013 13:05:56 +0000 (13:05 +0000)]
Re-inline some hot ElementData functions.
<https://webkit.org/b/121743>
Reviewed by Antti Koivisto.
Make the following functions inline again:
- deref()
- addAttribute()
- removeAttribute()
- attributeAt()
They were out-of-lined in r154249 and perf.webkit.org reports a 1.4%
regression on the html5 spec for that revision. This'll hopefully steer
the graph back in the right direction.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156227
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Sat, 21 Sep 2013 10:52:25 +0000 (10:52 +0000)]
GeneratorGeneratedImage should be called GradientImage
https://bugs.webkit.org/show_bug.cgi?id=121085
Reviewed by Simon Fraser.
No new tests, just a refactor.
r150053 removed the concept of a Generator, making GeneratorGeneratedImage
take a Gradient. This leaves GeneratorGeneratedImage's name not making a
whole lot of sense, so let's rename it to GradientImage.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
* platform/graphics/BitmapImage.h:
* platform/graphics/GradientImage.cpp: Renamed from Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp.
(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):
* platform/graphics/GradientImage.h: Renamed from Source/WebCore/platform/graphics/GeneratorGeneratedImage.h.
* platform/graphics/Image.h:
* platform/graphics/ImageBuffer.h:
Rename.
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::cachedImageForSize):
(WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
* css/CSSImageGeneratorValue.h:
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::image):
Drive-by, the CSSImageGeneratorValue generated image cache should be
in terms of GeneratedImage, not a random subclass, regardless
of the fact that it's only used for GradientImage as of yet.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156226
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sat, 21 Sep 2013 08:03:45 +0000 (08:03 +0000)]
Shrink valueForBasicShape by removing repeated calls to cssValuePool()
https://bugs.webkit.org/show_bug.cgi?id=121736
Reviewed by Sam Weinig.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape): Put the pool into a local variable and use that.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156225
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Sat, 21 Sep 2013 05:35:57 +0000 (05:35 +0000)]
Another CSS parser leak fix
https://bugs.webkit.org/show_bug.cgi?id=121730
Reviewed by Alexey Proskuryakov.
* css/CSSGrammar.y.in: Added a missing adoptPtr.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156224
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Sat, 21 Sep 2013 05:35:15 +0000 (05:35 +0000)]
Handle panning gestures messages properly on Windows
https://bugs.webkit.org/show_bug.cgi?id=121711
Follow-up fix: five regression tests started to crash on Mac.
Reviewed by Anders Carlsson.
* rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollByRecursively):
Added null checks, not all callers are interested in scrolled view pointer.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156223
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Sat, 21 Sep 2013 04:13:52 +0000 (04:13 +0000)]
Bad cast from CSSInitialValue to CSSValueList
https://bugs.webkit.org/show_bug.cgi?id=121729
Source/WebCore:
Reviewed by Beth Dakin.
Merge https://chromium.googlesource.com/chromium/blink/+/
fcfaa51f9207b32cffe751c1a1380a921e464cbb
The issue was that we would cast to CSSValueList without checking
the type of the CSSValue. After this change, we use the ASSERT'ing
cast and explicitly check the type of the CSSValue before the cast.
Test: fast/css/crash-inherit-value-font-family.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceValue):
LayoutTests:
Reviewed by Beth Dakin.
Add a regression test. This is not a merge since the test in the Blink change involves
superfluous execCommand calls.
* fast/css/crash-inherit-value-font-family-expected.txt: Added.
* fast/css/crash-inherit-value-font-family.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156222
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zoltan@webkit.org [Sat, 21 Sep 2013 03:36:57 +0000 (03:36 +0000)]
Remove includes from LineWidth.h
https://bugs.webkit.org/show_bug.cgi?id=121716
Reviewed by Darin Adler.
In r156197 I removed logicalLineHeight from LineWidth.h, so we don't need to include RenderBlock.h
and RenderRubyRun.h anymore in LineWidth.h.
No new tests, no behavior change.
* rendering/LineWidth.cpp:
* rendering/LineWidth.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156220
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
roger_fong@apple.com [Sat, 21 Sep 2013 03:23:22 +0000 (03:23 +0000)]
Handle panning gestures messages properly on Windows.
https://bugs.webkit.org/show_bug.cgi?id=121711.
Reviewed by Brent Fulgham.
This fixes a number of issues with panning gestures on Windows.
1. Two finger panning in one direction can sometimes cause some unexpected scrolling
in the other direction when the gesture first begins (directions meaning horizontal and vertical)
2. Single finger horizontal panning should only be disabled when attempting to select text.
3. Scrolling via panning should be clamped, other wise we can scroll contents completely out of the scrollview.
4. Horizontal overpan should work.
5. Overpan should occur whenever we scroll to the extents of whichever scroll view we're currently scrolling.
* WebView.cpp:
(WebView::gestureNotify):
(WebView::gesture):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollByRecursively):
* rendering/RenderLayer.h:
Added an argument to keep track of which scrollview was actually scrolled
This is needed by the Windows port to keep track to determine whether or not
we need to overpan.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156219
268f45cc-cd09-0410-ab3c-
d52691b4dbfc