Timeline



Jan 25, 2014:

11:19 PM Changeset in webkit [162798] by fpizlo@apple.com
  • 4 edits in branches/jsCStack/Source

StubInfoMap should use CodeOriginApproximateHash
https://bugs.webkit.org/show_bug.cgi?id=127646

Not yet reviewed.

Source/JavaScriptCore:

  • bytecode/StructureStubInfo.h:

Source/WTF:

  • wtf/BagToHashMap.h:

(WTF::toHashMap):

10:53 PM Changeset in webkit [162797] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: fix build breakage from previous commit.

Not reviewed.

  • profiler/ProfileNode.cpp:

(JSC::ProfileNode::debugPrintData):

  • Removed obsolete references to "visible" timers.
10:30 PM Changeset in webkit [162796] by timothy@apple.com
  • 14 edits in trunk

Remove dead code from the JSC profiler.

https://bugs.webkit.org/show_bug.cgi?id=127643

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • profiler/Profile.cpp:
  • profiler/Profile.h:
  • profiler/ProfileGenerator.cpp:

(JSC::ProfileGenerator::stopProfiling):

  • profiler/ProfileNode.cpp:

(JSC::ProfileNode::ProfileNode):
(JSC::ProfileNode::stopProfiling):
(JSC::ProfileNode::endAndRecordCall):
(JSC::ProfileNode::debugPrintData):
(JSC::ProfileNode::debugPrintDataSampleStyle):

  • profiler/ProfileNode.h:

(JSC::ProfileNode::totalTime):
(JSC::ProfileNode::setTotalTime):
(JSC::ProfileNode::selfTime):
(JSC::ProfileNode::setSelfTime):
(JSC::ProfileNode::totalPercent):
(JSC::ProfileNode::selfPercent):
Remove support for things like focus and exclude. The Inspector does those in JS now.

Source/WebCore:

Passes existing tests in fast/profiler.

  • bindings/js/ScriptProfile.cpp:

(WebCore::buildInspectorObjectFor): Remove visible.

  • inspector/ScriptProfileNode.idl: Ditto.
  • inspector/protocol/Profiler.json: Ditto.

Source/WebInspectorUI:

  • Versions/Inspector-iOS-7.0.json: Remove visible from CPUProfileNode.

LayoutTests:

  • fast/profiler/resources/profiler-test-JS-resources.js:

(printProfileNodeWithoutTime): Don't use visible. It was always true.

10:25 PM Changeset in webkit [162795] by commit-queue@webkit.org
  • 34 edits in trunk/Source

Remove unused support for DRAGGABLE_REGION
https://bugs.webkit.org/show_bug.cgi?id=127642

Patch by Sam Weinig <sam@webkit.org> on 2014-01-25
Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • WebCore.exp.in:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):

  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:
  • page/Chrome.cpp:
  • page/ChromeClient.h:
  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::paintContents):

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

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addAnnotatedRegions):

  • rendering/RenderInline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::setHasVerticalScrollbar):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addAnnotatedRegions):

  • rendering/RenderObject.h:

(WebCore::AnnotatedRegionValue::operator==):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

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

  • rendering/style/StyleRareNonInheritedData.h:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:
8:15 PM Changeset in webkit [162794] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Remove FIXME in CSSKeywordCompletions.js about "inherit" keyword
https://bugs.webkit.org/show_bug.cgi?id=127638

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-01-25
Reviewed by Timothy Hatcher.

  • UserInterface/CSSKeywordCompletions.js:

(WebInspector.CSSKeywordCompletions.forProperty):
Replace FIXME with a descriptive comment about why the code is what it is.

7:54 PM Changeset in webkit [162793] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WTF

Add FALLTHROUGH and -Wimplicit-fallthrough to warn about unannotated implicit fallthroughs in switches
https://bugs.webkit.org/show_bug.cgi?id=127637

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-01-25
Reviewed by Darin Adler.

For information about [[clang::fallthrough]], see:
<http://clang.llvm.org/docs/LanguageExtensions.html#the-clang-fallthrough-attribute>

  • Configurations/Base.xcconfig:

Enable -Wimplicit-fallthrough warnings.

  • wtf/Compiler.h:

Define FALLTHROUGH on clang and fallback to outputing nothing when unsupported.

  • wtf/dtoa/fast-dtoa.cc:
  • wtf/unicode/UTF8.cpp:

(WTF::Unicode::convertLatin1ToUTF8):
(WTF::Unicode::convertUTF16ToUTF8):
(WTF::Unicode::isLegalUTF8):
(WTF::Unicode::readUTF8Sequence):
Explicitly annotate implicit fallthroughs with FALLTHROUGH.

7:43 PM Changeset in webkit [162792] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebCore

Clean up SVGPatternElement::collectPatternAttributes
https://bugs.webkit.org/show_bug.cgi?id=127612

Reviewed by Andreas Kling.

This patch refactors SVGPatternElement::collectPatternAttributes() by extracting
the setPatternAttributes logic into a new function. This patch also changes the
while loop to be easier to understand and similar to collectGradientAttributes.

  • svg/SVGPatternElement.cpp:

(WebCore::setPatternAttributes):
(WebCore::SVGPatternElement::collectPatternAttributes):

5:27 PM Changeset in webkit [162791] by Alan Bujtas
  • 10 edits in trunk

Subpixel layout: RenderInline is not centered when child RenderTextControl's innerTextRenderer needs bias centering.
https://bugs.webkit.org/show_bug.cgi?id=125659

Source/WebCore:

Reviewed by Andreas Kling

layoutMod(logicalHeightDiff, 2) fails to bias round when subpixel layout is enabled. It sets
the denominator value to 2, which returns incorrect modulo result.
(subpixel off: 3px % 2 = 1 vs subpixel on: (3px * 64) -> 192 % 2 = 0)

Covered by existing tests.

  • platform/LayoutUnit.h:
  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::centerContainerIfNeeded):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::centerRenderer):
(WebCore::RenderTextControlSingleLine::layout):

  • rendering/RenderTextControlSingleLine.h:

LayoutTests:

Reviewed by Andreas Kling.

layoutMod(logicalHeightDiff, 2) fails to bias round when subpixel layout is enabled. It sets
the denominator value to 2, which returns incorrect modulo result.
(subpixel off: 3px % 2 = 1 vs subpixel on: (3px * 64) -> 192 % 2 = 0)

Covered by existing tests.

  • platform/mac/fast/block/float/032-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.png:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac-mountainlion/fast/forms/search-vertical-alignment-expected.txt:
5:08 PM Changeset in webkit [162790] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Position the completion suggestions popup below if there is room
https://bugs.webkit.org/show_bug.cgi?id=127615

Patch by Diego Pino Garcia <Diego Pino Garcia> on 2014-01-25
Reviewed by Joseph Pecoraro.

  • UserInterface/CompletionSuggestionsView.js:

(WebInspector.CompletionSuggestionsView.prototype.show):

4:50 PM Changeset in webkit [162789] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Remove more unnecessary #if PLATFORM(IOS)s in ApplicationCacheStorage.cpp
https://bugs.webkit.org/show_bug.cgi?id=127635

Reviewed by Antti Koivisto.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::executeSQLCommand):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::executeStatement):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
(WebCore::ApplicationCacheStorage::loadCache):

4:44 PM Changeset in webkit [162788] by fpizlo@apple.com
  • 40 edits
    2 adds in branches/jsCStack/Source/JavaScriptCore

FTL should do polyvariant Call/Construct inlining
https://bugs.webkit.org/show_bug.cgi?id=127335

Reviewed by Oliver Hunt.

Imagine that you have a call stack like foo calls bar, which calls baz. Lets say that
there's another call stack where bar calls something other than baz at the same
callsite, but whenver bar is called from foo, it always calls baz.

This bar->baz callsite can be said to be polymorphic, because it may call things other
than baz in some cases.

But if we conduct a polyvariant analysis - that is, one that accounts for the call
stack when reporting results - then this call appears monomorphic whenever bar gets
called from foo. A polyvariant analysis of callsites will report results of the form
"when statement S ran on a call stack that included functions f, g, etc then the set
of possible callees is bounded by ...". This is in contrast to a monovariant analysis
that will attempt to construct a bounding set of callees without adding the call stack
as a contingency.

Prior to this patch, all inlining decisions were made based on a monovariant dynamic
analysis.

This patch allows the FTL to make its Call/Construct inlining decisions based on a
polyvariant analysis. That analysis is cleverly simple: we just ask the DFG to do the
same "analysis" that the LLInt and Baseline JIT perform. That "analysis" is just an
inline cache plus a slow-path count. But the DFG has performed inlining. Hence each
callsite that the DFG reports information for is actually sitting on a static call
stack. When the DFG reports the status of its call inline caches, it can report the
information with a (short) snippet of call stack as a kind of contingency, much like a
polyvariant analysis would.

Consider the foo->bar->baz example. Lets say that foo's call to bar is trivially
monomorphic, and the DFG inlines it. The DFG won't be able to then inline the call
from foo->bar to baz because when we ask the Baseline JIT profiling what the status of
the bar->baz call is, the profiling will say "polymorphic". That's because that
profiling doesn't have any context sensitivity, and so it doesn't know that the call
would be monomorphic if foo was bar's caller.

But, with this patch, once we tier-up from the DFG to the FTL, the FTL will be able to
ask the DFG: "hey, what do you know about the callsite to baz in foo->bar?" The DFG
had, as we said above, inlined bar into foo and so it sees that callsite in its
proper context. That call inline cache would be monomorphic. The FTL would then be
able to inline baz into foo->bar.

This will eventually benefit V8v7/raytrace, but we still have some more things to do
before we can close the loop on this. Right now, the callsite in question is not an
inlining candidate because it's op_call_varargs. We'll fix that eventually.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:

(JSC::CallLinkStatus::makeClosureCall):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::specialFastCaseProfileForBytecodeOffset):

  • bytecode/CodeOrigin.cpp:

(JSC::CodeOrigin::isApproximatelyEqualTo):
(JSC::CodeOrigin::approximateHash):

  • bytecode/CodeOrigin.h:

(JSC::CodeOrigin::CodeOrigin):
(JSC::CodeOrigin::deletedMarker):
(JSC::CodeOriginApproximateHash::hash):
(JSC::CodeOriginApproximateHash::equal):

  • bytecode/DFGExitProfile.cpp:

(JSC::DFG::ExitProfile::add):
(JSC::DFG::ExitProfile::hasExitSite):

  • bytecode/DFGExitProfile.h:

(JSC::DFG::FrequentExitSite::FrequentExitSite):
(JSC::DFG::FrequentExitSite::operator==):
(JSC::DFG::FrequentExitSite::subsumes):
(JSC::DFG::FrequentExitSite::hash):
(JSC::DFG::FrequentExitSite::jitType):
(JSC::DFG::FrequentExitSite::withJITType):
(JSC::DFG::QueryableExitProfile::hasExitSite):

  • bytecode/ExitKind.h:
  • bytecode/ExitingJITType.h: Added.

(JSC::exitingJITTypeFor):

  • bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:

(JSC::ProfiledCodeBlockJettisoningWatchpoint::fireInternal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGCapabilities.h:

(JSC::DFG::inlineFunctionForCallCapabilityLevel):
(JSC::DFG::inlineFunctionForClosureCallCapabilityLevel):
(JSC::DFG::inlineFunctionForConstructCapabilityLevel):
(JSC::DFG::inlineFunctionForCapabilityLevel):

  • dfg/DFGCommon.h:
  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:
  • dfg/DFGFailedFinalizer.cpp:

(JSC::DFG::FailedFinalizer::codeSize):

  • dfg/DFGFailedFinalizer.h:
  • dfg/DFGFinalizer.h:
  • dfg/DFGJITCode.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::currentJSCallIndex):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::codeSize):

  • dfg/DFGJITFinalizer.h:
  • dfg/DFGOSRExit.h:

(JSC::DFG::OSRExit::considerAddingAsFrequentExitSite):

  • dfg/DFGOSRExitBase.cpp:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSite):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThread):

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

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

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

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::codeSize):

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):

  • jit/JITCode.h:
  • jit/JITOperations.cpp:
  • runtime/Options.h:
  • tests/stress/simple-polyvariant-call-inlining-example.js: Added.

(foo):
(fuzz):
(bar):
(baz1):
(baz2):

4:36 PM Changeset in webkit [162787] by weinig@apple.com
  • 11 edits
    3 copies
    1 delete in trunk/Source/WebCore

Remove some iOS #ifdefs by adding SQLiteDatabaseTracker to all the builds
https://bugs.webkit.org/show_bug.cgi?id=127632

Reviewed by Darin Adler.

Move the SQLiteDatabaseTracker and client from platform/sql/ios to platform/sql,
as there is nothing iOS specific about it. Then, un-#ifdef all its uses. For
ports that don't setup a client, this has no change in behavior.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Modules/webdatabase/DatabaseBackendBase.cpp:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/appcache/ApplicationCacheStorage.cpp:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded):

  • platform/sql/SQLiteDatabaseTracker.cpp: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.cpp.
  • platform/sql/SQLiteDatabaseTracker.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTracker.h.
  • platform/sql/SQLiteDatabaseTrackerClient.h: Copied from Source/WebCore/platform/sql/ios/SQLiteDatabaseTrackerClient.h.
  • platform/sql/ios: Removed.
  • platform/sql/ios/SQLiteDatabaseTracker.cpp: Removed.
  • platform/sql/ios/SQLiteDatabaseTracker.h: Removed.
  • platform/sql/ios/SQLiteDatabaseTrackerClient.h: Removed.
  • storage/StorageAreaSync.cpp:

(WebCore::StorageAreaSync::openDatabase):
(WebCore::StorageAreaSync::sync):

  • storage/StorageTracker.cpp:
3:04 PM Changeset in webkit [162786] by andersca@apple.com
  • 22 edits in trunk/Source

Remove an unused FrameLoaderClient function
https://bugs.webkit.org/show_bug.cgi?id=127628

Reviewed by Andreas Kling.

Source/WebCore:

All implementations of FrameLoaderClient::shouldStopLoadingForHistoryItem return true and this function
was only used by Chromium so we can get rid of it.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::shouldStopLoadingForHistoryItem):

Source/WebKit/efl:

  • WebCoreSupport/FrameLoaderClientEfl.cpp:
  • WebCoreSupport/FrameLoaderClientEfl.h:

Source/WebKit/gtk:

  • WebCoreSupport/FrameLoaderClientGtk.cpp:
  • WebCoreSupport/FrameLoaderClientGtk.h:

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit/wince:

  • WebCoreSupport/FrameLoaderClientWinCE.cpp:
  • WebCoreSupport/FrameLoaderClientWinCE.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2:58 PM Changeset in webkit [162785] by Darin Adler
  • 2 edits in trunk/Source/JavaScriptCore

Try to fix Mac build.

  • runtime/DatePrototype.cpp: Put the include of <unicode/udat.h> inside

a conditional since we don't have that header in our Mac build configuration.

2:47 PM Changeset in webkit [162784] by Darin Adler
  • 31 edits in trunk

Call deprecatedCharacters instead of characters at more call sites
https://bugs.webkit.org/show_bug.cgi?id=127631

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • API/JSValueRef.cpp:

(JSValueMakeFromJSONString):

  • API/OpaqueJSString.cpp:

(OpaqueJSString::~OpaqueJSString):

  • bindings/ScriptValue.cpp:

(Deprecated::jsToInspectorValue):

  • inspector/ContentSearchUtilities.cpp:

(Inspector::ContentSearchUtilities::createSearchRegexSource):

  • inspector/InspectorValues.cpp:
  • runtime/Identifier.h:

(JSC::Identifier::deprecatedCharacters):

  • runtime/JSStringBuilder.h:

(JSC::JSStringBuilder::append):
Use the new name.

Source/WebCore:

  • bindings/objc/WebScriptObject.mm:

(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):

  • editing/CompositeEditCommand.cpp:

(WebCore::containsOnlyWhitespace):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::insertText):

  • editing/VisibleUnits.cpp:

(WebCore::startOfParagraph):
(WebCore::endOfParagraph):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::stripLeadingAndTrailingHTMLSpaces):
(WebCore::parseHTMLNonNegativeInteger):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters):

  • inspector/InspectorStyleTextEditor.cpp:

(WebCore::InspectorStyleTextEditor::insertProperty):
(WebCore::InspectorStyleTextEditor::internalReplaceProperty):

  • platform/Length.cpp:

(WebCore::newCoordsArray):

  • platform/LinkHash.cpp:

(WebCore::visitedLinkHash):

  • platform/graphics/Color.cpp:

(WebCore::Color::parseHexColor):
(WebCore::Color::Color):

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::atomicCanonicalTextEncodingName):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::constructTextRun):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::width):

  • svg/SVGFontElement.cpp:

(WebCore::SVGFontElement::registerLigaturesInGlyphCache):

  • xml/XPathFunctions.cpp:

(WebCore::XPath::FunId::evaluate):
Use the new name.

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::replace):

  • wtf/text/WTFString.h:

(WTF::String::isAllSpecialCharacters):
Use the new name.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::expectBuilderContent):
(TestWebKitAPI::expectEmpty):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):
Use the new name.

2:46 PM Changeset in webkit [162783] by Darin Adler
  • 6 edits
    1 add in trunk/Source/WTF

Add a new separate LChar.h header file, to be used after we remove Unicode.h
https://bugs.webkit.org/show_bug.cgi?id=127630

Reviewed by Sam Weinig.

  • GNUmakefile.list.am: Added the new file
  • WTF.vcxproj/WTF.vcxproj: Ditto.
  • WTF.vcxproj/WTF.vcxproj.filters: Ditto.
  • WTF.xcodeproj/project.pbxproj: Ditto.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/text/LChar.h: Added.
1:36 PM Changeset in webkit [162782] by Darin Adler
  • 28 edits
    1 delete in trunk

Get rid of ICU_UNICODE and WCHAR_UNICODE remnants
https://bugs.webkit.org/show_bug.cgi?id=127623

Reviewed by Anders Carlsson.

.:

  • Source/cmake/OptionsEfl.cmake: Removed ICU_UNICODE and WCHAR_UNICODE flags.
  • Source/cmake/OptionsGTK.cmake: Ditto.
  • Source/cmake/OptionsWinCE.cmake: Ditto.

Source/JavaScriptCore:

  • runtime/DatePrototype.cpp: Removed USE(ICU_UNICODE) checks, since that's always true now.

Source/WebCore:

  • CMakeLists.txt: Removed SmartReplaceICU.cpp.
  • GNUmakefile.list.am: Ditto.
  • PlatformEfl.cmake: Ditto.
  • PlatformGTK.cmake: Ditto.
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::modifyMovingRight): Ditto.
(WebCore::FrameSelection::modifyMovingLeft): Ditto.

  • editing/SmartReplace.cpp: Moved code here from SmartReplaceICU,

since we always support ICU now. Added some FIXME comments about
bugs and mistakes I spotted in the code as I was moving it.

  • editing/SmartReplaceICU.cpp: Removed.
  • editing/TextIterator.cpp: Removed unneeded checks.
  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::ThreadGlobalData): Ditto.
(WebCore::ThreadGlobalData::destroy): Ditto.

  • platform/ThreadGlobalData.h: Ditto.
  • platform/URL.cpp:

(WebCore::appendEncodedHostname): Ditto.

  • platform/graphics/SurrogatePairAwareTextIterator.cpp: Ditto.

Also removed unneeded "using namespace".

  • platform/text/TextCodecICU.cpp: Ditto.
  • platform/text/TextEncoding.cpp:

(WebCore::TextEncoding::encode): Ditto.

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::extendTextCodecMaps): Ditto.

Source/WTF:

  • wtf/CMakeLists.txt: Removed WTF_USE_ICU_UNICODE and

WTF_USE_WCHAR_UNICODE since they are true and false respectively.

  • wtf/Platform.h: Removed code to set WTF_USE_ICU_UNICODE.
  • wtf/unicode/Collator.h: Removed ifdefs.
  • wtf/unicode/CollatorDefault.cpp: Ditto.
  • wtf/unicode/Unicode.h: Ditto.
  • wtf/unicode/icu/CollatorICU.cpp: Ditto.
1:31 PM Changeset in webkit [162781] by Darin Adler
  • 2 edits in trunk/Source/JavaScriptCore

[Mac] Rewrite locale-specific date formatting code to remove strange string creation
https://bugs.webkit.org/show_bug.cgi?id=127624

Reviewed by Anders Carlsson.

  • runtime/DatePrototype.cpp:

(JSC::formatLocaleDate): Use some smart pointers and conversion operators we already
have to do the formatting in a more straightforward way.

1:31 PM Changeset in webkit [162780] by Darin Adler
  • 10 edits
    2 deletes in trunk/Source/WebCore

Get rid of UnicodeRange.h/cpp, using ICU instead
https://bugs.webkit.org/show_bug.cgi?id=127622

Reviewed by Anders Carlsson.

  • CMakeLists.txt: Remove UnicodeRange.h/cpp.
  • GNUmakefile.list.am: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::systemFallbackForCharacters): To check if a character has
multiple code pages, use UCHAR_UNIFIED_IDEOGRAPH instead of cRangeSetCJK.

  • platform/graphics/wince/FontCacheWinCE.cpp:

(WebCore::FontCache::systemFallbackForCharacters): Ditto. Also, to check if a
character is in the Thai block, use UBLOCK_THAI.

  • platform/graphics/wince/FontPlatformData.cpp: Removed include of UnicodeRange.h.
  • platform/text/UnicodeRange.cpp: Removed.
  • platform/text/UnicodeRange.h: Removed.
  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle): To figure
out if a character is full width, use UCHAR_EAST_ASIAN_WIDTH, instead of hard-coding
"not Latin or Arabic" as the rule.

1:25 PM Changeset in webkit [162779] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Remove an unnecessary platform #if in BitmapImage(CG)::checkForSolidColor()
https://bugs.webkit.org/show_bug.cgi?id=127610

Reviewed by Simon Fraser.

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::checkForSolidColor):
Over time, the two sides of this #if !PLATFORM(IOS) converged. Remove the #if
and merge the code. We explicitly use kCGBitmapByteOrder32Big to be correct everywhere.

1:24 PM Changeset in webkit [162778] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

[cg] Look in the PNG dictionary for image duration information
https://bugs.webkit.org/show_bug.cgi?id=127611
<rdar://problem/15408643>

Reviewed by Simon Fraser.

We should look in the PNG properties dictionary for frame duration and loop count data.

  • platform/graphics/cg/ImageSourceCG.cpp:

(WebCore::ImageSource::repetitionCount):
Mush repetitionCount a bit more to make it easier to read (early returns, etc.)
Also, look in the PNG properties dictionary for a loop count.

(WebCore::ImageSource::frameDurationAtIndex):
Look in the PNG properties dictionary for delay time.
Get rid of WebCoreCGImagePropertyGIFUnclampedDelayTime; it hasn't
been needed since Snow Leopard.

1:16 PM Changeset in webkit [162777] by andersca@apple.com
  • 19 edits in trunk/Source

Remove atomicIncrement/atomicDecrement
https://bugs.webkit.org/show_bug.cgi?id=127625

Reviewed by Andreas Kling.

Replace atomicIncrement/atomicDecrement with std::atomic.

Source/JavaScriptCore:

  • bytecode/Watchpoint.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::Database):
(JSC::Profiler::Database::addDatabaseToAtExit):

Source/WebCore:

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::incrementActiveSourceCount):
(WebCore::AudioContext::decrementActiveSourceCount):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::~AudioNode):
(WebCore::AudioNode::ref):
(WebCore::AudioNode::finishDeref):

  • Modules/webaudio/AudioNode.h:
  • Modules/webdatabase/OriginLock.h:

Source/WebKit2:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::createSyncMessageEncoder):

  • Shared/mac/SecItemShim.cpp:

(WebKit::generateSecItemRequestID):

  • UIProcess/StatisticsRequest.cpp:

(WebKit::StatisticsRequest::addOutstandingRequest):

Source/WTF:

  • wtf/Atomics.h:
  • wtf/RefCountedLeakCounter.cpp:

(WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
(WTF::RefCountedLeakCounter::increment):
(WTF::RefCountedLeakCounter::decrement):

  • wtf/RefCountedLeakCounter.h:
  • wtf/ThreadSafeRefCounted.h:

(WTF::ThreadSafeRefCountedBase::ref):
(WTF::ThreadSafeRefCountedBase::refCount):
(WTF::ThreadSafeRefCountedBase::derefBase):

12:49 PM Changeset in webkit [162776] by alex.christensen@flexsim.com
  • 4 edits in trunk/Source

Source/WebCore: Unreviewed build fix for WinCairo.

  • platform/network/curl/CurlDownload.h:

Included wtf/Threading.h for ThreadIdentifier definition.

Source/WebKit: Unreviewed build fix for Win64.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Corrected 64-bit linker symbol.

12:10 PM Changeset in webkit [162775] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • WebView/WebViewData.h:
11:24 AM Changeset in webkit [162774] by andersca@apple.com
  • 16 edits in trunk

Modernize HashTable threading code
https://bugs.webkit.org/show_bug.cgi?id=127621

Reviewed by Darin Adler.

Source/WebCore:

Explicitly include headers that used to be brought in by HashTable.h

  • platform/DragData.h:

Change a Windows-specific typedef to avoid having to include WindDef.h from a header.

  • platform/audio/AudioSession.h:
  • platform/network/cf/SocketStreamHandle.h:

Source/WebKit/win:

Explicitly include headers that used to be brought in by HashTable.h

  • WebLocalizableStrings.cpp:

Source/WebKit2:

Explicitly include headers that used to be brought in by HashTable.h

  • Shared/BlockingResponseMap.h:

Source/WTF:

Use std::mutex and std::atomic instead of WTF threading primitives.

  • wtf/DynamicAnnotations.h:

Include Platform.h here since this file relies on USE macros.

  • wtf/HashTable.cpp:

(WTF::HashTableStats::recordCollisionAtCount):
Change this to take an unsigned.

(WTF::HashTableStats::dumpStats):

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):
(WTF::KeyTraits>::remove):
(WTF::KeyTraits>::invalidateIterators):
Use a single probe counter.

(WTF::addIterator):
(WTF::removeIterator):

Tools:

Explicitly include headers that used to be brought in by HashTable.h

  • DumpRenderTree/JavaScriptThreading.cpp:
10:55 AM Changeset in webkit [162773] by zandobersek@gmail.com
  • 8 edits in trunk/Source/WebCore

Move CSSGroupingRule, CSSStyleSheet, ElementRuleCollector to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127575

Reviewed by Andreas Kling.

Use std::unique_ptr and std::make_unique in place of OwnPtr and adoptPtr
in the CSSGroupingRule, CSSStyleSheet and ElementRuleCollector classes.

  • css/CSSFunctionValue.cpp: Remove the unnecessary PassOwnPtr header inclusion.
  • css/CSSGroupingRule.cpp:

(WebCore::CSSGroupingRule::cssRules):

  • css/CSSGroupingRule.h:
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::cssRules):

  • css/CSSStyleSheet.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::addMatchedRule):

  • css/ElementRuleCollector.h:
10:54 AM Changeset in webkit [162772] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Move MediaQueryMatcher, SelectorFilter to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127574

Reviewed by Andreas Kling.

Replace the use of OwnPtr and adoptPtr with std::unique_ptr and std::make_unique
in the MediaQueryMatcher and SelectorFilter classes.

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::prepareEvaluator):
(WebCore::MediaQueryMatcher::evaluate):
(WebCore::MediaQueryMatcher::addListener):
(WebCore::MediaQueryMatcher::styleResolverChanged):

  • css/MediaQueryMatcher.h:
  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::popParentStackFrame):
(WebCore::SelectorFilter::setupParentStack):

  • css/SelectorFilter.h:
10:52 AM Changeset in webkit [162771] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Move PropertySetCSSStyleDeclaration, WebKitCSSKeyframesRule to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127572

Reviewed by Andreas Kling.

Switch the PropertySetCSSStyleDeclaration and WebKitCSSKeyframesRule classes from using
OwnPtr and adoptPtr to using std::unique_ptr and std::make_unique.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
(WebCore::InlineCSSStyleDeclaration::didMutate):

  • css/PropertySetCSSStyleDeclaration.h:
  • css/WebKitCSSKeyframesRule.cpp:

(WebCore::WebKitCSSKeyframesRule::cssRules):

  • css/WebKitCSSKeyframesRule.h:
10:51 AM Changeset in webkit [162770] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebCore

Move StyleProperties, StyleResolver to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127570

Reviewed by Andreas Kling.

Move the StyleProperties and StyleResolver classes from using OwnPtr and adoptPtr
to using std::unique_ptr and std::make_unique.

  • css/StyleInvalidationAnalysis.h: Remove the PassOwnPtr.h header inclusion.
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
(WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):

  • css/StyleProperties.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::addViewportDependentMediaQueryResult):

  • css/StyleResolver.h:
  • css/StyleScopeResolver.h:
10:49 AM Changeset in webkit [162769] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

Move CSSFontFace, CSSFontSelector to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127569

Reviewed by Andreas Kling.

Move the CSSFontFace and CSSFontSelector classes from using OwnPtr, PassOwnPtr and adoptPtr
to using std::unique_ptr, move semantics and std::make_unique.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::addSource):

  • css/CSSFontFace.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::getFontFace):

  • css/CSSFontSelector.h:
10:48 AM Changeset in webkit [162768] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove null check for WebPopupMenuProxy::Client in WebPopupMenuProxyGtk::showPopupMenu
https://bugs.webkit.org/show_bug.cgi?id=107036

Reviewed by Andreas Kling.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu): Don't perform an early return
if the client is not available - it always should be. The client is set to null
only when the proxy is invalidated. This happens immediately after this function
returns, either with the popup being forced to close or being closed by the user
with possibly an item being chosen. Rather than the early return, use an ASSERT.

9:48 AM Changeset in webkit [162767] by Joseph Pecoraro
  • 21 edits
    2 moves
    3 adds in trunk/Source

Web Inspector: Move InspectorRuntimeAgent into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=127605

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Add new files to the build.

  • inspector/agents/InspectorRuntimeAgent.h: Renamed from Source/WebCore/inspector/InspectorRuntimeAgent.h.
  • inspector/agents/InspectorRuntimeAgent.cpp: Renamed from Source/WebCore/inspector/InspectorRuntimeAgent.cpp.

(Inspector::InspectorRuntimeAgent::InspectorRuntimeAgent):
(Inspector::InspectorRuntimeAgent::parse):
(Inspector::InspectorRuntimeAgent::evaluate):
(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::getProperties):

  • Move the agent into JavaScriptCore.
  • Modernize and cleanup.
  • Make globalVM a pure virtual function for subclasses to implement.
  • inspector/agents/JSGlobalObjectRuntimeAgent.h: Added.
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp: Added.

(Inspector::JSGlobalObjectRuntimeAgent::JSGlobalObjectRuntimeAgent):
(Inspector::JSGlobalObjectRuntimeAgent::didCreateFrontendAndBackend):
(Inspector::JSGlobalObjectRuntimeAgent::willDestroyFrontendAndBackend):
(Inspector::JSGlobalObjectRuntimeAgent::globalVM):
(Inspector::JSGlobalObjectRuntimeAgent::injectedScriptForEval):
Straightforward JSGlobalObject implementation.

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
Add a runtime agent when inspecting a JSContext!

Source/WebCore:

Covered by existing tests. No change in functionality.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

Remove WebCore InspectorRuntimeAgent.

  • ForwardingHeaders/inspector/agents/InspectorRuntimeAgent.h: Added.

Add JavaScriptCore InspectorRuntimeAgent.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):

  • inspector/WorkerInspectorController.h:
  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):
New constructors for the runtime agent.

  • inspector/PageRuntimeAgent.h:
  • inspector/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::disable):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::didCreateIsolatedContext):
(WebCore::PageRuntimeAgent::globalVM):
Modernize and implement globalVM.

  • inspector/WorkerRuntimeAgent.h:
  • inspector/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::injectedScriptForEval):
(WebCore::WorkerRuntimeAgent::globalVM):
Modernize and implement globalVM.

9:25 AM Changeset in webkit [162766] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Add parameters from 'DOM Object Model Core' spec and 'DOM CSS' spec that can be NULL

https://bugs.webkit.org/show_bug.cgi?id=117536

Patch by Diego Pino Garcia <Diego Pino Garcia> on 2014-01-25
Reviewed by Xan Lopez.

  • bindings/scripts/CodeGeneratorGObject.pm:

(ParamCanBeNull): Add new pairs (function, parameter) that can be NULL

9:18 AM Changeset in webkit [162765] by Darin Adler
  • 2 edits in trunk/Source/WTF

Restore alphabetical order in Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=127620

Reviewed by Sam Weinig.

  • wtf/Compiler.h: Resorted some things into alphabetical order
9:16 AM Changeset in webkit [162764] by andersca@apple.com
  • 8 edits in trunk/Source

Get rid of BackForwardController::isActive()
https://bugs.webkit.org/show_bug.cgi?id=127604

Reviewed by Sam Weinig.

Source/WebCore:

BackForwardController::isActive() used to mean "my page maintains a back forward
list that has zero capacity". Move that logic into WebKit instead, namely the
WebFrameLoaderClient::canCachePage function so we can simplify WebCore.

  • history/BackForwardClient.h:
  • history/BackForwardController.cpp:
  • history/BackForwardController.h:
  • history/BackForwardList.h:
  • history/PageCache.cpp:

(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCache):

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::canCachePage):
Move isActive logic here.

9:15 AM Changeset in webkit [162763] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION(r162744): wsj.com paints white
https://bugs.webkit.org/show_bug.cgi?id=127619

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/css/stylesheet-layout-with-pending-paint.html

  • dom/Document.cpp:

(WebCore::Document::styleResolverChanged):

Ensure we switch out from IgnoreLayoutWithPendingSheets state after stylesheet loads complete.

LayoutTests:

  • fast/css/stylesheet-layout-with-pending-paint-expected.html: Added.
  • fast/css/stylesheet-layout-with-pending-paint.html: Added.
6:19 AM Changeset in webkit [162762] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/WebKit/efl

[EFL][WK1] Fix broken rendering while navigating history in EWebLauncher
https://bugs.webkit.org/show_bug.cgi?id=127601

Reviewed by Anders Carlsson.

When scrolled after requested repaints, rendering was broken because scrollDelta
changed repaints area.

  • ewk/ewk_view.cpp:

(ewk_view_scroll):

1:07 AM WebKitGTK/2.2.x edited by vjaquez@igalia.com
(diff)

Jan 24, 2014:

11:44 PM Changeset in webkit [162761] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Reverted r162760. It broke more things.

  • WebCore.exp.in:
11:10 PM Changeset in webkit [162760] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix some 32-bit builds.

  • WebCore.exp.in:
10:40 PM Changeset in webkit [162759] by jinwoo7.song@samsung.com
  • 4 edits in trunk/Source/WebCore

[EFL] Replace usage of DEFINE_STATIC_LOCAL with NeverDestroyed in WebCore/platform/efl
https://bugs.webkit.org/show_bug.cgi?id=127607

Reviewed by Anders Carlsson.

  • platform/efl/EflKeyboardUtilities.cpp:

(WebCore::keyMap): Use NeverDestroyed instead of DEFINE_STATIC_LOCAL.
(WebCore::windowsKeyMap): Ditto.
(WebCore::keyDownCommandsMap): Ditto.
(WebCore::keyPressCommandsMap): Ditto.

  • platform/efl/GamepadsEfl.cpp:

(WebCore::sampleGamepads): Ditto.

  • platform/efl/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::systemFont): Do not use unnecessary DEFINE_STATIC_LOCAL.

10:01 PM Changeset in webkit [162758] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

WebKit2 View Gestures (Smart Zoom): Can't double-tap zoom-out on the body
https://bugs.webkit.org/show_bug.cgi?id=127602

Reviewed by Anders Carlsson.

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

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
Use an explicit boolean instead of the emptiness of the renderRect() to determine
whether or not the user has already smart-zoomed. renderRect() can be 0x0
if our hit-test hits the body element.

8:42 PM Changeset in webkit [162757] by Joseph Pecoraro
  • 30 edits
    2 copies
    5 moves
    2 adds
    1 delete in trunk/Source

Move JavaScriptCallFrame and ScriptDebugServer into JavaScriptCore for inspector
https://bugs.webkit.org/show_bug.cgi?id=127543

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Add new files.

  • inspector/ScriptDebugListener.h:

Extract WebCore knowledge from ScriptDebugServer. This will
eventually be made to work outside of WebCore.

  • inspector/ScriptDebugServer.h: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.h.
  • inspector/ScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/ScriptDebugServer.cpp.

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::dispatchDidPause):
(Inspector::ScriptDebugServer::dispatchBreakpointActionLog):
(Inspector::ScriptDebugServer::dispatchBreakpointActionSound):
(Inspector::ScriptDebugServer::sourceParsed):
(Inspector::ScriptDebugServer::dispatchFunctionToListeners):
(Inspector::ScriptDebugServer::handlePause):
Modernize code, and call the new ScriptDebugListener callbacks where appropriate.

  • inspector/JSJavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptCallFrameCustom.cpp.

(Inspector::JSJavaScriptCallFrame::JSJavaScriptCallFrame):
(Inspector::JSJavaScriptCallFrame::finishCreation):
(Inspector::JSJavaScriptCallFrame::createPrototype):
(Inspector::JSJavaScriptCallFrame::destroy):
(Inspector::JSJavaScriptCallFrame::releaseImpl):
(Inspector::JSJavaScriptCallFrame::~JSJavaScriptCallFrame):
(Inspector::JSJavaScriptCallFrame::evaluate):
(Inspector::JSJavaScriptCallFrame::scopeType):
(Inspector::JSJavaScriptCallFrame::caller):
(Inspector::JSJavaScriptCallFrame::sourceID):
(Inspector::JSJavaScriptCallFrame::line):
(Inspector::JSJavaScriptCallFrame::column):
(Inspector::JSJavaScriptCallFrame::functionName):
(Inspector::JSJavaScriptCallFrame::scopeChain):
(Inspector::JSJavaScriptCallFrame::thisObject):
(Inspector::JSJavaScriptCallFrame::type):
(Inspector::toJS):
(Inspector::toJSJavaScriptCallFrame):

  • inspector/JSJavaScriptCallFrame.h: Added.

(Inspector::JSJavaScriptCallFrame::createStructure):
(Inspector::JSJavaScriptCallFrame::create):
(Inspector::JSJavaScriptCallFrame::impl):

  • inspector/JSJavaScriptCallFramePrototype.cpp: Added.

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluate):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeType):
(Inspector::jsJavaScriptCallFrameAttributeCaller):
(Inspector::jsJavaScriptCallFrameAttributeSourceID):
(Inspector::jsJavaScriptCallFrameAttributeLine):
(Inspector::jsJavaScriptCallFrameAttributeColumn):
(Inspector::jsJavaScriptCallFrameAttributeFunctionName):
(Inspector::jsJavaScriptCallFrameAttributeScopeChain):
(Inspector::jsJavaScriptCallFrameAttributeThisObject):
(Inspector::jsJavaScriptCallFrameAttributeType):
(Inspector::jsJavaScriptCallFrameConstantGLOBAL_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantLOCAL_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantWITH_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantCLOSURE_SCOPE):
(Inspector::jsJavaScriptCallFrameConstantCATCH_SCOPE):

  • inspector/JSJavaScriptCallFramePrototype.h: Added.

(Inspector::JSJavaScriptCallFramePrototype::create):
(Inspector::JSJavaScriptCallFramePrototype::createStructure):
(Inspector::JSJavaScriptCallFramePrototype::JSJavaScriptCallFramePrototype):

  • inspector/JavaScriptCallFrame.cpp: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.cpp.

(Inspector::JavaScriptCallFrame::caller):

  • inspector/JavaScriptCallFrame.h: Renamed from Source/WebCore/bindings/js/JavaScriptCallFrame.h.

Port of JavaScriptCallFrame.idl to a set of native JS classes.

Source/WebCore:

Covered by existing tests.

  • ForwardingHeaders/inspector/ScriptDebugServer.h: Added.
  • GNUmakefile.list.am:
  • UseJSC.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • inspector/JavaScriptCallFrame.idl: Removed.

Update builds now that ScriptDebugServer moved to JavaScriptCore.

  • bindings/js/PageScriptDebugServer.h:
  • bindings/js/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):

  • bindings/js/WorkerScriptDebugServer.h:
  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):
Handle ScriptDebugServer functionality depending on WebCore knowledge.

  • inspector/InspectorDebuggerAgent.h:
  • inspector/InspectorDebuggerAgent.cpp:

(WebCore::InspectorDebuggerAgent::breakpointActionSound):
Handle ScriptDebugServer functionality that depended on WebCore knowledge.
This will eventually be written in a non-WebCore specific way.

  • inspector/InspectorRuntimeAgent.cpp:
  • inspector/InspectorRuntimeAgent.h:

Update ScriptDebugServer type now that it is in namespace Inspector.

  • workers/WorkerGlobalScope.h:

Make addConsoleMessage public again so the inspector can call it.

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::breakpointActionLog):

  • inspector/PageDebuggerAgent.h:
  • inspector/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::breakpointActionLog):

  • inspector/WorkerDebuggerAgent.h:

Let each of these handle console logs in their own way. Both of these
eventually go through the PageConsole and log through the InspectorConsoleAgent
and ChromeClient.

8:42 PM Changeset in webkit [162756] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix EFL WebKit2 build.

  • WebProcess/WebPage/efl/WebPageEfl.cpp:

(WebKit::WebPage::performDefaultBehaviorForKeyEvent):

8:33 PM Changeset in webkit [162755] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Improve latching behavior for wheel events
https://bugs.webkit.org/show_bug.cgi?id=127386
<rdar://problem/12176858>

Reviewed by Simon Fraser.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::ScrollingTree): Initialize new values used for tracking
scroll latching state.
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Check for an existing
latched node and stay in fast scrolling mode if possible.
(WebCore::ScrollingTree::removeDestroyedNodes): Clear latched node if it's being removed.
(WebCore::ScrollingTree::latchedNode): Added
(WebCore::ScrollingTree::setLatchedNode): Added
(WebCore::ScrollingTree::clearLatchedNode): Added

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::hasLatchedNode): Added

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::shouldConsiderLatching): Added
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent): Determine latching state
based on wheel event state and position of mouse pointer in the document.

7:38 PM Changeset in webkit [162754] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix GTK+ WebKit2 build.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::performDefaultBehaviorForKeyEvent):

7:25 PM Changeset in webkit [162753] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

ASSERT(time.isFinite()) in SVGSMILElement::createInstanceTimesFromSyncbase
<https://webkit.org/b/108184>

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2014-01-24
Reviewed by Philip Rogers.

Additional test to detect the crash in debug mode. It is merged back
from blink commit https://src.chromium.org/viewvc/blink?revision=165498&view=revision

  • svg/animations/self-dependency-crash-expected.txt: Added.
  • svg/animations/self-dependency-crash.html: Added.
7:15 PM Changeset in webkit [162752] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DebuggerCallFrame::evaluateWithCallFrame() should not execute a null executable.
<https://webkit.org/b/127600>

Reviewed by Oliver Hunt.

In DebuggerCallFrame::evaluateWithCallFrame(), if the script string that
is passed in is bad, it will fail to create an Executable i.e.
EvalExecutable::create() returns a null pointer. However,
DebuggerCallFrame::evaluateWithCallFrame() was just clearing the
exception and proceeded to execute the null pointer as an Executable.
A crash ensues.

Now, if an exception is detected while creating the Executable, we
abort instead.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluateWithCallFrame):

7:00 PM Changeset in webkit [162751] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/gtk

GTK+ build fix.

  • webkit/webkitwebview.cpp:

(webkit_web_view_can_go_back):

6:58 PM Changeset in webkit [162750] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another attempted build fix.

Use wildcards in the the std::duration symbol.

  • WebCore.exp.in:
6:58 PM Changeset in webkit [162749] by Alan Bujtas
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed Apple Windows port gardering.

  • platform/win/fast/forms/file/file-input-disabled-expected.txt:
  • platform/win/tables/mozilla/marvin/body_col-expected.txt: Added.
6:32 PM Changeset in webkit [162748] by Simon Fraser
  • 9 edits in trunk/Source

Start using the RemoteScrollingCoordinatorProxy on iOS
https://bugs.webkit.org/show_bug.cgi?id=127598

Reviewed by Tim Horton.

Source/WebCore:

Add a scrollPositionChangedViaDelegatedScrolling() function to
ScrollingTree, allowing the ScrollingTree to be informed about
external sources of scrolling.

Also add a convenience getter for nodes, nodeForID().

  • WebCore.exp.in:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::nodeForID):

  • page/scrolling/ScrollingTree.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
To avoid assertions on iOS, bail from iOS WK1 fixed position code if
we have a ScrollingCoordinator.
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
Ditto.

Source/WebKit2:

Add a scrollPositionChangedViaDelegatedScrolling() function to
ScrollingTree, allowing the ScrollingTree to be informed about
external sources of scrolling.

Call it from -[WKContentView didScrollTo:] for the root node.

  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView didScrollTo:]):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::rootScrollingNodeID):
(WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChangedViaDelegatedScrolling):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
6:32 PM Changeset in webkit [162747] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Add typesafe casts for ScrollingTreeNode classes
https://bugs.webkit.org/show_bug.cgi?id=127597

Reviewed by Tim Horton.

Add a ScrollingNodeType member to ScrollingTreeNodes and
use it for type-safe casting.

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::ScrollingTreeNode):

  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::nodeType):
(WebCore::ScrollingTreeNode::scrollingNodeID):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):

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

(WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):

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

(WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):

6:11 PM Changeset in webkit [162746] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the GTK+ build.

  • GNUmakefile.list.am:
6:08 PM Changeset in webkit [162745] by andersca@apple.com
  • 19 edits in trunk/Source

Remove back/forward list related functions from Page
https://bugs.webkit.org/show_bug.cgi?id=127596

Reviewed by Andreas Kling.

Source/WebCore:

  • WebCore.exp.in:
  • history/BackForwardController.cpp:

(WebCore::BackForwardController::canGoBackOrForward):
(WebCore::BackForwardController::goBackOrForward):
(WebCore::BackForwardController::goBack):
(WebCore::BackForwardController::goForward):
(WebCore::BackForwardController::count):

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultBackspaceEventHandler):

  • page/Page.cpp:
  • page/Page.h:

Source/WebKit/efl:

  • ewk/ewk_frame.cpp:

(ewk_frame_navigate):
(ewk_frame_navigate_possible):

Source/WebKit/gtk:

  • webkit/webkitwebview.cpp:

(webkit_web_view_set_maintains_back_forward_list):
(webkit_web_view_get_back_forward_list):
(webkit_web_view_go_back):
(webkit_web_view_go_back_or_forward):
(webkit_web_view_go_forward):
(webkit_web_view_can_go_back_or_forward):
(webkit_web_view_can_go_forward):

Source/WebKit/mac:

  • WebView/WebFrameView.mm:

(-[WebFrameView keyDown:keyDown:]):

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView initWithCoder:]):
(-[WebView encodeWithCoder:]):
(-[WebView backForwardList]):
(-[WebView setMaintainsBackForwardList:]):
(-[WebView goBack]):
(-[WebView goForward]):
(-[WebView canGoBack]):
(-[WebView canGoForward]):

Source/WebKit/win:

  • WebView.cpp:

(WebView::keyDown):
(WebView::goBack):
(WebView::goForward):

Source/WebKit2:

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performNonEditingBehaviorForSelector):

6:04 PM Changeset in webkit [162744] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Update style asynchronously after style sheet load
https://bugs.webkit.org/show_bug.cgi?id=127563

Reviewed by Andreas Kling.

Since we don't attach synchronously we don't need to recalc style synchronously either.

  • dom/Document.cpp:

(WebCore::Document::didRemoveAllPendingStylesheet):

6:02 PM Changeset in webkit [162743] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix attemp on the EFL after r162728.

  • CMakeLists.txt: Removed WebLoaderClient.cpp
5:34 PM Changeset in webkit [162742] by Alan Bujtas
  • 47 edits in trunk

Subpixel layout: Default style of input type=checkbox/radio (0.5ex) adds 1px extra margin on both left and right.
https://bugs.webkit.org/show_bug.cgi?id=125728

Reviewed by Simon Fraser.

Using the 0.5ex value to set checkbox/radio left and right margins is a long-standing
(khtml) behavior. While it indicates dynamic behavior, in order to get the margins changed,
the widget's font size needs to be set, which is rather rare for such input types.
It also results in odd layout, where the checkbox's indentation may seem to change randomly.

'<input style="font-size: 30px;" type="checkbox">foo' changes neither the checkbox
nor the text size, but it indents the line by about 15px.

Other browsers (FF, Opera with Presto) disagree and they set static margins values.
2px is the current default computed value.

Source/WebCore:

  • css/html.css:

(input[type="radio"], input[type="checkbox"]):

LayoutTests:

  • platform/mac-mountainlion/fast/block/margin-collapse/103-expected.txt:
  • platform/mac-mountainlion/fast/forms/basic-inputs-expected.txt:
  • platform/mac-mountainlion/fast/forms/box-shadow-override-expected.txt:
  • platform/mac-mountainlion/fast/forms/form-element-geometry-expected.txt:
  • platform/mac-mountainlion/fast/forms/input-appearance-height-expected.txt:
  • platform/mac-mountainlion/fast/forms/input-value-expected.txt:
  • platform/mac-mountainlion/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac-mountainlion/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac-mountainlion/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac-mountainlion/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/compositing/overflow/theme-affects-visual-overflow-expected.txt:
  • platform/mac/css1/box_properties/acid_test-expected.txt:
  • platform/mac/css2.1/t09-c5526c-display-00-e-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-25-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-70-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-25-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-70-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-25-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-70-expected.txt:
  • platform/mac/fast/block/basic/011-expected.txt:
  • platform/mac/fast/block/margin-collapse/103-expected.txt:
  • platform/mac/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/mac/fast/forms/001-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/file/file-input-disabled-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/formmove-expected.txt:
  • platform/mac/fast/forms/formmove2-expected.txt:
  • platform/mac/fast/forms/indeterminate-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/inline/positionedLifetime-expected.txt:
  • platform/mac/fast/parser/bad-xml-slash-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/mac/fast/replaced/width100percent-radio-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/core/captions2-expected.txt:
5:26 PM Changeset in webkit [162741] by oliver@apple.com
  • 29 edits
    3 adds in trunk

Put functions need to take a base object and a this value, and perform type checks on |this|
https://bugs.webkit.org/show_bug.cgi?id=127594

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Change the signature for static setter functions, and update uses

  • create_hash_table:
  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/PutPropertySlot.h:
  • runtime/RegExpConstructor.cpp:

(JSC::setRegExpConstructorInput):
(JSC::setRegExpConstructorMultiline):

Source/WebCore:

Update bindings generator to emit setters with correct type, and perform
type checks on |this|, instead of the baseObject.

Test: js/dom/dom-as-prototype-assignment-exception.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjCustomAttr):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):

  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:

LayoutTests:

Add tests, and update expectation for previously failing test.

  • js/dom/dom-as-prototype-assignment-exception-expected.txt: Added.
  • js/dom/dom-as-prototype-assignment-exception.html: Added.
  • js/dom/script-tests/dom-as-prototype-assignment-exception.js: Added.
  • media/network-no-source-const-shadow-expected.txt:
5:03 PM Changeset in webkit [162740] by oliver@apple.com
  • 53 edits
    3 adds in trunk

Generic JSObject::put should handle static properties in the classinfo hierarchy
https://bugs.webkit.org/show_bug.cgi?id=127523

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch makes JSObject::put correctly call static setters
defined by the ClassInfo.

To make this not clobber performance, the ClassInfo HashTable
now includes a flag to indicate that it contains setters. This
required updating the lut generator so that it tracked (and emitted)
this.

The rest of the change was making a number of the methods take
a VM rather than an ExecState*, so that Structure could set the
getter/setter flags during construction (if necessary).

This also means most objects do not need to perform a lookupPut
manually anymore, so most custom ::put's are no longer needed.
DOMWindow is the only exception as it has interesting security
related semantics.

  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::arrayConstructorTable):
(JSC::ExecState::arrayPrototypeTable):
(JSC::ExecState::booleanPrototypeTable):
(JSC::ExecState::dataViewTable):
(JSC::ExecState::dateTable):
(JSC::ExecState::dateConstructorTable):
(JSC::ExecState::errorPrototypeTable):
(JSC::ExecState::globalObjectTable):
(JSC::ExecState::jsonTable):
(JSC::ExecState::numberConstructorTable):
(JSC::ExecState::numberPrototypeTable):
(JSC::ExecState::objectConstructorTable):
(JSC::ExecState::privateNamePrototypeTable):
(JSC::ExecState::regExpTable):
(JSC::ExecState::regExpConstructorTable):
(JSC::ExecState::regExpPrototypeTable):
(JSC::ExecState::stringConstructorTable):
(JSC::ExecState::promisePrototypeTable):
(JSC::ExecState::promiseConstructorTable):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::getOwnPropertySlot):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::getOwnPropertySlot):

  • runtime/BooleanPrototype.cpp:

(JSC::BooleanPrototype::getOwnPropertySlot):

  • runtime/ClassInfo.h:

(JSC::ClassInfo::propHashTable):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::getOwnPropertySlot):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::getOwnPropertySlot):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::getOwnPropertySlot):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::getOwnPropertySlot):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::getOwnPropertySlot):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):

  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::getOwnPropertySlot):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::getOwnPropertySlot):

  • runtime/Lookup.h:

(JSC::HashTable::copy):
(JSC::putEntry):
(JSC::lookupPut):

  • runtime/NamePrototype.cpp:

(JSC::NamePrototype::getOwnPropertySlot):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::getOwnPropertySlot):

  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::getOwnPropertySlot):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::put):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::getOwnPropertySlot):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::freezeTransition):
(JSC::ClassInfo::hasStaticSetterOrReadonlyProperties):

Source/WebCore:

Update the bindings generator to emit the flag indicating the presence
of setters, and remove the many (now unnecessary) put overrides.
Tested with run-jsc-benchmarks and shows neutral performance. A few of the
micro benchmarks actually get a significant performance increase which
is nice.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

We still need a custom call to lookupPut here in order
to get the magic security semantics of the window object.

  • bindings/scripts/CodeGeneratorJS.pm:

(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

  • bindings/scripts/CodeGeneratorJS.pm:

(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(InstanceOverridesPutImplementation):
(InstanceOverridesPutDeclaration):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::put):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:
  • html/canvas/WebGLRenderingContext.idl: Remove bogus attribute, as it has never been in the spec and should not have been added.

LayoutTests:

Yay tests!

  • fast/canvas/webgl/constants.html: Remove incorrect constant
  • js/script-tests/static-put-in-prototype-chain.js: Added.
  • js/static-put-in-prototype-chain-expected.txt: Added.
  • js/static-put-in-prototype-chain.html: Added.
4:59 PM Changeset in webkit [162739] by fpizlo@apple.com
  • 5 edits
    2 adds in branches/jsCStack/Source/JavaScriptCore

DFG should allow inlining of op_call_varargs calls
https://bugs.webkit.org/show_bug.cgi?id=127538

Reviewed by Michael Saboff and Mark Hahnenberg.

Previously, op_call_varargs was directly lowered to a Call by the ByteCodeParser and
we bypassed all of the call optimizations (intrinsics, inlining) provided by
ByteCodeParser::handleCall().

This changes op_call_varargs handling so that it first sets up the stack to look like
it would have if it had been a normal call, and then it calls handleCall(). This
gives us inlining of op_call_varargs.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):

  • bytecode/CodeOrigin.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addCall):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • tests/stress/inline-call-varargs-and-call.js: Added.

(foo):
(bar):
(baz):

  • tests/stress/inline-call-varargs.js: Added.

(foo):
(bar):
(baz):

4:52 PM Changeset in webkit [162738] by commit-queue@webkit.org
  • 53 edits
    3 deletes in trunk

Unreviewed, rolling out r162713.
http://trac.webkit.org/changeset/162713
https://bugs.webkit.org/show_bug.cgi?id=127593

broke media/network-no-source-const-shadow (Requested by
thorton on #webkit).

Source/JavaScriptCore:

  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::arrayConstructorTable):
(JSC::ExecState::arrayPrototypeTable):
(JSC::ExecState::booleanPrototypeTable):
(JSC::ExecState::dataViewTable):
(JSC::ExecState::dateTable):
(JSC::ExecState::dateConstructorTable):
(JSC::ExecState::errorPrototypeTable):
(JSC::ExecState::globalObjectTable):
(JSC::ExecState::jsonTable):
(JSC::ExecState::numberConstructorTable):
(JSC::ExecState::numberPrototypeTable):
(JSC::ExecState::objectConstructorTable):
(JSC::ExecState::privateNamePrototypeTable):
(JSC::ExecState::regExpTable):
(JSC::ExecState::regExpConstructorTable):
(JSC::ExecState::regExpPrototypeTable):
(JSC::ExecState::stringConstructorTable):
(JSC::ExecState::promisePrototypeTable):
(JSC::ExecState::promiseConstructorTable):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::getOwnPropertySlot):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::getOwnPropertySlot):

  • runtime/BooleanPrototype.cpp:

(JSC::BooleanPrototype::getOwnPropertySlot):

  • runtime/ClassInfo.h:

(JSC::ClassInfo::propHashTable):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::getOwnPropertySlot):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::getOwnPropertySlot):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::getOwnPropertySlot):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::getOwnPropertySlot):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::getOwnPropertySlot):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):

  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::getOwnPropertySlot):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::getOwnPropertySlot):

  • runtime/Lookup.h:

(JSC::HashTable::copy):
(JSC::putEntry):
(JSC::lookupPut):

  • runtime/NamePrototype.cpp:

(JSC::NamePrototype::getOwnPropertySlot):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::getOwnPropertySlot):
(JSC::NumberConstructor::put):

  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::getOwnPropertySlot):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getOwnPropertySlot):
(JSC::RegExpConstructor::put):

  • runtime/RegExpConstructor.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::put):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::getOwnPropertySlot):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::freezeTransition):

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

  • bindings/scripts/CodeGeneratorJS.pm:

(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::put):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::put):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::put):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::put):

  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:
  • html/canvas/WebGLRenderingContext.idl:

LayoutTests:

  • fast/canvas/webgl/constants.html:
  • js/script-tests/static-put-in-prototype-chain.js: Removed.
  • js/static-put-in-prototype-chain-expected.txt: Removed.
  • js/static-put-in-prototype-chain.html: Removed.
4:21 PM Changeset in webkit [162737] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Replace LayoutUnit() calls to a more descriptive LayoutUnit::fromPixel(int).
https://bugs.webkit.org/show_bug.cgi?id=127580

Reviewed by Simon Fraser.

LayoutUnit(1) statement is ambiguous. While it is intended to set one (CSS) pixel, it
could be interpreted as 1 layout unit (1/64th of a CSS pixel atm).

No change in behavior.

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForRegionHighlight):

  • rendering/FloatingObjects.cpp:

(WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatTypeValue>::heightRemaining):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutShapeInsideInfo):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::collapseMargins):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainAxisContentExtent):
(WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
(WebCore::RenderFlexibleBox::alignChildren):

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::addForcedRegionBreak):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):

4:04 PM Changeset in webkit [162736] by Simon Fraser
  • 17 edits in trunk/Source

Prepare scrolling tree to handle > 1 scrolling node
https://bugs.webkit.org/show_bug.cgi?id=127590

Source/WebCore:

Reviewed by Tim Horton.

Clean up the code path called after the ScrollingTree has scrolled a node,
to prepare for multiple scrolling nodes.

Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
and pass along the ScrollingNodeID that scrolled.

Move updateMainFrameScrollPosition-related code from ScrollingCoordinator to
AsyncScrollingCoordinator, since this sync-up is only necessary when doing
async scrolling.

  • WebCore.exp.in:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScrollTimerFired):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):

  • page/scrolling/AsyncScrollingCoordinator.h:

(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::matchesUpdateType):
Package up the data related to a scheduled scroll into a ScheduledScrollUpdate struct,
for easier comparison and cleaner code.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::ScrollingCoordinator):

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

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/ios/ScrollingTreeIOS.cpp:

(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):

  • page/scrolling/ios/ScrollingTreeIOS.h:
  • page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:

(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):

Source/WebKit2:

Reviewed by Tim Horton.

Clean up the code path called after the ScrollingTree has scrolled a node,
to prepare for multiple scrolling nodes.

Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
and pass along the ScrollingNodeID that scrolled.

  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • WebProcess/Scrolling/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):

3:44 PM Changeset in webkit [162735] by mark.lam@apple.com
  • 7 edits in trunk/Source

ASSERT(!m_markedSpace.m_currentDelayedReleaseScope) reloading page in inspector.
<https://webkit.org/b/127582>

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

  1. We should not enter a HeapIterationScope when we iterate the CodeBlocks. Apparently, iterating the CodeBlocks does not count as heap iteration.
  1. If we're detaching the debugger due to the JSGlobalObject destructing, then we don't need to clear the debugger requests in the associated CodeBlocks. The JSGlobalObject destructing would mean that those CodeBlocks would be destructing too, and it may not be safe to access them anyway at this point.

The assertion failure is because we had entered a HeapIterationScope
while the JSGlobalObject is destructing, which in turn means that GC
sweeping is in progress. It's not legal to iterate the heap while the GC
is sweeping. Once we fixed the above 2 issues, we will no longer have
the conditions that manifests this assertion failure.

  • debugger/Debugger.cpp:

(JSC::Debugger::detach):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):

  • debugger/Debugger.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):

Source/WebCore:

No new tests.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::attachDebugger):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::detachDebugger):

  • Adding reasons for detaching a globalObject from the debugger.
3:39 PM Changeset in webkit [162734] by mhahnenberg@apple.com
  • 263 edits
    42 adds
    951 deletes in branches/jsCStack

Merge branch up to ToT r162711.

3:38 PM Changeset in webkit [162733] by eric.carlson@apple.com
  • 3 edits in trunk/Tools

Unreviewed. Add Philip Jägenstedt to watch and contributor lists.

  • Scripts/webkitpy/common/config/contributors.json:
  • Scripts/webkitpy/common/config/watchlist:
3:35 PM Changeset in webkit [162732] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

Subpixel rendering: Make PaintInfo layout unit aware.
https://bugs.webkit.org/show_bug.cgi?id=127562

Reviewed by Simon Fraser.

Replace PaintInfo's IntRect with LayoutRect to be able to render to
subpixel positions.

No functional changes.

  • platform/graphics/LayoutRect.h:
  • rendering/PaintInfo.h:

(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::applyTransform):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paint):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderLayer.cpp:

(WebCore::cornerRect):
(WebCore::RenderLayer::scrollCornerRect):
(WebCore::resizerCornerRect):
(WebCore::RenderLayer::scrollCornerAndResizerRect):
(WebCore::RenderLayer::horizontalScrollbarStart):
(WebCore::RenderLayer::drawPlatformResizerImage):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::hitTestOverflowControls):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintContents):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintScrollbar):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::fillWithExtensionGlyph):

  • rendering/svg/SVGRenderingContext.h:
3:29 PM Changeset in webkit [162731] by Simon Fraser
  • 8 edits in trunk/Source

https://bugs.webkit.org/show_bug.cgi?id=127583

Reviewed by Tim Horton.

handleWheelEventPhase() doesn't make any sense for iOS, which
has no wheel events.

Source/WebCore:

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.cpp:
  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/ios/ScrollingTreeIOS.h:

Source/WebKit2:

  • UIProcess/Scrolling/RemoteScrollingTree.cpp:
  • UIProcess/Scrolling/RemoteScrollingTree.h:
3:29 PM Changeset in webkit [162730] by Simon Fraser
  • 9 edits in trunk/Source/WebKit2

Push a custom fixed position rect down to the WebProcess in iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=127573

Reviewed by Tim Horton.

Make it possible for WKContentView to specify a custom rect
used to layout fixed position elements on iOS.

This is computed in WKContentView, and pushed down
through the RemoteLayerTreeDrawingArea, and eventually
pushed onto FrameView.

  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView fixedPositionRectFromExposedRect:scale:]):
(-[WKContentView _updateFixedPositionRect]):
(-[WKContentView didFinishScrollTo:]):
(-[WKContentView didZoomToScale:]):

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::setCustomFixedPositionRect):

  • UIProcess/DrawingAreaProxy.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setCustomFixedPositionRect):

3:20 PM Changeset in webkit [162729] by dfarler@apple.com
  • 13 edits
    6 copies
    21 adds in trunk/Tools

Make WebKitTestRunner work with iOS
https://bugs.webkit.org/show_bug.cgi?id=127448

Reviewed by Simon Fraser.

Combined patch from Simon below with some additional xcconfig cleanups,
rebasing and stubbing out a couple of new functions that popped up
since then.

2013-12-03 Simon Fraser <Simon Fraser>

<rdar://problem/15515469> Get WebKitTestRunner working on iOS

Get WebKitTestRunner limping on iOS. Main parts:

  • Stub out lots of accessibility-related functions.
  • Stub out EventSender
  • Create target to make a bundled app that runs in the simulator, and copy the injected bundle library into it.
  • Make a UIWindow and WKView to load tests in

It runs, load tests, and dumps results to output. More work will be
required once we can execute it via the webkitpy scripts.

  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm: Added.

(WTR::AccessibilityController::addNotificationListener):
(WTR::AccessibilityController::removeNotificationListener):
(WTR::AccessibilityController::platformName):
(WTR::AccessibilityController::logAccessibilityEvents):
(WTR::AccessibilityController::resetToConsistentState):
(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityNotificationHandler.h: Added.
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityTextMarkerIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(WTR::AccessibilityTextMarker::isEqual):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: Added.

(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::~AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::getChildrenWithRange):
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::AccessibilityUIElement::linkedUIElementAtIndex):
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex):
(WTR::AccessibilityUIElement::disclosedRowAtIndex):
(WTR::AccessibilityUIElement::rowAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex):
(WTR::AccessibilityUIElement::selectedChildrenCount):
(WTR::AccessibilityUIElement::selectedRowAtIndex):
(WTR::AccessibilityUIElement::titleUIElement):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::disclosedByRow):
(WTR::AccessibilityUIElement::attributesOfLinkedUIElements):
(WTR::AccessibilityUIElement::attributesOfDocumentLinks):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue):
(WTR::AccessibilityUIElement::uiElementAttributeValue):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::parameterizedAttributeNames):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::subrole):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::insertionPointLineNumber):
(WTR::AccessibilityUIElement::isPressActionSupported):
(WTR::AccessibilityUIElement::isIncrementActionSupported):
(WTR::AccessibilityUIElement::isDecrementActionSupported):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired):
(WTR::AccessibilityUIElement::isFocused):
(WTR::AccessibilityUIElement::isSelected):
(WTR::AccessibilityUIElement::isSelectedOptionActive):
(WTR::AccessibilityUIElement::isIndeterminate):
(WTR::AccessibilityUIElement::isExpanded):
(WTR::AccessibilityUIElement::isChecked):
(WTR::AccessibilityUIElement::hierarchicalLevel):
(WTR::AccessibilityUIElement::classList):
(WTR::AccessibilityUIElement::speak):
(WTR::AccessibilityUIElement::ariaIsGrabbed):
(WTR::AccessibilityUIElement::ariaDropEffects):
(WTR::AccessibilityUIElement::lineForIndex):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::rangeForPosition):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
(WTR::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::indexInTable):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::horizontalScrollbar):
(WTR::AccessibilityUIElement::verticalScrollbar):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::showMenu):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChild):
(WTR::AccessibilityUIElement::accessibilityValue):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):
(WTR::AccessibilityUIElement::isFocusable):
(WTR::AccessibilityUIElement::isSelectable):
(WTR::AccessibilityUIElement::isMultiSelectable):
(WTR::AccessibilityUIElement::isVisible):
(WTR::AccessibilityUIElement::isOffScreen):
(WTR::AccessibilityUIElement::isCollapsed):
(WTR::AccessibilityUIElement::isIgnored):
(WTR::AccessibilityUIElement::hasPopup):
(WTR::AccessibilityUIElement::takeFocus):
(WTR::AccessibilityUIElement::takeSelection):
(WTR::AccessibilityUIElement::addSelection):
(WTR::AccessibilityUIElement::removeSelection):
(WTR::AccessibilityUIElement::textMarkerRangeForElement):
(WTR::AccessibilityUIElement::textMarkerRangeLength):
(WTR::AccessibilityUIElement::previousTextMarker):
(WTR::AccessibilityUIElement::nextTextMarker):
(WTR::AccessibilityUIElement::stringForTextMarkerRange):
(WTR::AccessibilityUIElement::textMarkerRangeForMarkers):
(WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange):
(WTR::AccessibilityUIElement::endTextMarkerForBounds):
(WTR::AccessibilityUIElement::startTextMarkerForBounds):
(WTR::AccessibilityUIElement::textMarkerForPoint):
(WTR::AccessibilityUIElement::accessibilityElementForTextMarker):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute):
(WTR::AccessibilityUIElement::indexForTextMarker):
(WTR::AccessibilityUIElement::isTextMarkerValid):
(WTR::AccessibilityUIElement::textMarkerForIndex):
(WTR::AccessibilityUIElement::startTextMarker):
(WTR::AccessibilityUIElement::endTextMarker):
(WTR::AccessibilityUIElement::mathPostscriptsDescription):
(WTR::AccessibilityUIElement::mathPrescriptsDescription):
(WTR::AccessibilityUIElement::pathDescription):
(WTR::AccessibilityUIElement::supportedActions):

  • WebKitTestRunner/InjectedBundle/ios/ActivateFontsIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(WTR::activateFonts):

  • WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm: Added.

(WTR::EventSenderProxy::EventSenderProxy):
(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::updateClickCountForButton):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::leapForward):
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::addTouchPoint):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::setTouchModifier):
(WTR::EventSenderProxy::setTouchPointRadius):
(WTR::EventSenderProxy::touchStart):
(WTR::EventSenderProxy::touchMove):
(WTR::EventSenderProxy::touchEnd):
(WTR::EventSenderProxy::touchCancel):
(WTR::EventSenderProxy::clearTouchPoints):
(WTR::EventSenderProxy::releaseTouchPoint):
(WTR::EventSenderProxy::cancelTouchPoint):

  • WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(WTR::InjectedBundle::platformInitialize):

  • WebKitTestRunner/InjectedBundle/ios/InjectedBundlePageIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame):

  • WebKitTestRunner/Makefile:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.h: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/AppDelegate.m: Added.

(-[AppDelegate application:didFinishLaunchingWithOptions:]):
(-[AppDelegate applicationWillResignActive:]):
(-[AppDelegate applicationDidEnterBackground:]):
(-[AppDelegate applicationWillEnterForeground:]):
(-[AppDelegate applicationDidBecomeActive:]):
(-[AppDelegate applicationWillTerminate:]):

  • WebKitTestRunner/WebKitTestRunnerApp/Images.xcassets/AppIcon.appiconset/Contents.json: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/Images.xcassets/LaunchImage.launchimage/Contents.json: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Prefix.pch: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/en.lproj/InfoPlist.strings: Added.
  • WebKitTestRunner/WebKitTestRunnerApp/main.m: Added.

(main):

  • WebKitTestRunner/WebKitTestRunnerAppTests-Info.plist: Added.
  • WebKitTestRunner/WebKitTestRunnerAppTests/WebKitTestRunnerAppTests-Info.plist: Added.
  • WebKitTestRunner/WebKitTestRunnerAppTests/WebKitTestRunnerAppTests.m: Added.

(-[WebKitTestRunnerAppTests setUp]):
(-[WebKitTestRunnerAppTests tearDown]):
(-[WebKitTestRunnerAppTests testExample]):

  • WebKitTestRunner/WebKitTestRunnerAppTests/en.lproj/InfoPlist.strings: Added.
  • WebKitTestRunner/WebKitTestRunnerPrefix.h:
  • WebKitTestRunner/cg/TestInvocationCG.cpp:
  • WebKitTestRunner/iOS.xcconfig: Added.
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm: Added.

(-[TestRunnerWKView initWithFrame:contextRef:pageGroupRef:relatedToPage:useTiledDrawing:]):
(-[TestRunnerWKView _shouldUseTiledDrawingArea]):
(-[WebKitTestRunnerWindow isKeyWindow]):
(-[WebKitTestRunnerWindow setFrameOrigin:]):
(-[WebKitTestRunnerWindow setFrame:]):
(-[WebKitTestRunnerWindow frameRespectingFakeOrigin]):
(-[WebKitTestRunnerWindow backingScaleFactor]):
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::~PlatformWebView):
(WTR::PlatformWebView::page):
(WTR::PlatformWebView::focus):
(WTR::PlatformWebView::windowFrame):
(WTR::PlatformWebView::setWindowFrame):
(WTR::PlatformWebView::didInitializeClients):
(WTR::PlatformWebView::addChromeInputField):
(WTR::PlatformWebView::removeChromeInputField):
(WTR::PlatformWebView::makeWebViewFirstResponder):
(WTR::PlatformWebView::windowSnapshotImage):
(WTR::PlatformWebView::viewSupportsOptions):

  • WebKitTestRunner/ios/TestControllerIOS.mm: Added.

(WTR::TestController::notifyDone):
(WTR::TestController::platformInitialize):
(WTR::TestController::platformDestroy):
(WTR::TestController::initializeInjectedBundlePath):
(WTR::TestController::initializeTestPluginDirectory):
(WTR::TestController::platformRunUntil):
(WTR::TestController::platformInitializeContext):
(WTR::TestController::runModal):
(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/ios/WebArchiveDumpSupportIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(createCFURLResponseFromResponseData):
(supportedNonImageMIMETypes):

  • WebKitTestRunner/ios/mainIOS.mm: Copied from Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h.

(-[WebKitTestRunnerApp _runTestController]):
(-[WebKitTestRunnerApp applicationDidFinishLaunching:]):
(main):

3:14 PM Changeset in webkit [162728] by andersca@apple.com
  • 5 edits
    2 deletes in trunk/Source/WebKit2

Get rid of WebLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=127587

Reviewed by Andreas Kling.

Move WebLoaderClient into WKPage.cpp.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController setLoadDelegate:]):

  • UIProcess/WebLoaderClient.cpp: Removed.
  • UIProcess/WebLoaderClient.h: Removed.
  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
3:05 PM Changeset in webkit [162727] by beidson@apple.com
  • 5 edits in trunk/Source/WebKit2

IDB: Support createIndex/deleteIndex
<rdar://problem/15779642> and https://bugs.webkit.org/show_bug.cgi?id=127585

Reviewed by Tim Horton.

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::createIndex):
(WebKit::UniqueIDBDatabase::deleteIndex):
(WebKit::UniqueIDBDatabase::createIndexInBackingStore):
(WebKit::UniqueIDBDatabase::deleteIndexInBackingStore):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore): Also drop all associated indexes.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
2:52 PM Changeset in webkit [162726] by hyatt@apple.com
  • 11 edits in trunk/Source/WebCore

[New Multicolumn] Don't destroy all the renderers when a multi-column block stops being multi-column (and vice versa)
https://bugs.webkit.org/show_bug.cgi?id=127584

Make the logic for when you need columns and when you don't shared between the
old multi-column code and the new multi-column code. Make sure that the flow thread
and sets get created lazily and destroyed on-demand when whether or not we should
have multiple columns changes.

Reviewed by Beth Dakin.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateLogicalWidthAndColumnWidth):
No longer virtual. The new column code now uses this function too.

(WebCore::RenderBlock::availableLogicalWidth):
Renamed desiredColumnWidth() to computedColumnWidth().

(WebCore::RenderBlock::computeColumnCountAndWidth):
Renamed calcColumnWidth to computeColumnCountAndWidth.

(WebCore::RenderBlock::setComputedColumnCountAndWidth):
Rename setDesiredColumnCountAndWidth to computed.

(WebCore::RenderBlock::computedColumnWidth):
(WebCore::RenderBlock::computedColumnCount):
Renamed desiredColumnWidth/Count to computedColumnWidth/Count and made them virtual.

(WebCore::RenderBlock::updateFirstLetterStyle):
desired -> computed rename.

  • rendering/RenderBlock.h:

Renames and made a few functions virtual so that RenderBlockFlow can override.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::RenderBlockFlow):
Don't create the flow thread at construction time any longer.

(WebCore::RenderBlockFlow::createMultiColumnFlowThread):
(WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
The methods to create and destroy flow threads. These work at any time now and will
fix up the render tree accordingly.

(WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
Virtual override that creates/destroys the new multi-column information as needed.

(WebCore::RenderBlockFlow::computedColumnWidth):
(WebCore::RenderBlockFlow::computedColumnCount):
Overrides to return the cached column width and count from the flow thread.

  • rendering/RenderBlockFlow.h:

Has overrides of the virtual functions needed to turn multi-column state on/off and
to hand back computed count/width information.

  • rendering/RenderMultiColumnFlowThread.cpp:
  • rendering/RenderMultiColumnFlowThread.h:

Removed the algorithm to compute column count and width, since this has been combined
with the old multi-column layout code.

  • rendering/RenderView.cpp:

(WebCore::RenderView::computeColumnCountAndWidth):
Renamed desired -> computed.

  • rendering/RenderView.h:

Renamed desired -> computed.

  • style/StyleResolveTree.cpp:

(WebCore::Style::determineChange):
(WebCore::Style::resolveLocal):
(WebCore::Style::resolveTree):

  • style/StyleResolveTree.h:

The Settings argument is no longer needed now that we don't destroy and re-create
the renderer for a block flow if it stops being (or becomes) multi-column.

2:29 PM Changeset in webkit [162725] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix 32-bit build.

  • WebCore.exp.in:
2:05 PM Changeset in webkit [162724] by vjaquez@igalia.com
  • 3 edits in trunk/Source/WebKit2

[GTK] youtube HTML5 videos in fullscreen, after <Esc>, can't go fullscreen again
https://bugs.webkit.org/show_bug.cgi?id=127064

When pressing <Esc> or <f> at full screen, the WebView shall emit the
event webkitfullscreenchange, but wk2gtk does not emit it. This is
because the WebView manages directly the exit of the full screen.

With this patch the WebView calls requestExitFullScreen to the full
screen manager, instead of managing directly the exit of the full
screen, and the event webkitfullscreenchange will be dispatched
correctly.

Reviewed by Martin Robinson.

No tests are included because there is a bug in WKTR that prevents the
execution of a test for this patch. See
https://bugs.webkit.org/show_bug.cgi?id=127348

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseKeyPressEvent): Call
webkitWebViewBaseRequestExitFullScreen.
(webkitWebViewBaseRequestExitFullScreen): Added.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Ditto.
2:01 PM Changeset in webkit [162723] by Brent Fulgham
  • 3 edits
    3 adds
    3 deletes in trunk/Source

[Win] Convert some NMake files to MSBuild project files
https://bugs.webkit.org/show_bug.cgi?id=127579

Reviewed by Tim Horton.

../JavaScriptCore:

../WebCore:

  • WebCore.vcxproj/WebCore.make: Removed.
  • WebCore.vcxproj/WebCore.proj: Added.

../WTF:

  • WTF.vcxproj/WTF.make: Removed.
  • WTF.vcxproj/WTF.proj: Added.
1:46 PM Changeset in webkit [162722] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fixed a bad assertion in CodeBlock::removeBreakpoint().
<https://webkit.org/b/127581>

Reviewed by Joseph Pecoraro.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::removeBreakpoint):

1:28 PM Changeset in webkit [162721] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix after r162710.

This is why these sorts of comments are bad.

  • UIProcess/WebPageProxy.cpp:
1:27 PM Changeset in webkit [162720] by Joseph Pecoraro
  • 6 edits in trunk/Source

fast/profiler tests ASSERTing after moving recompileAllJSFunctions off a timer
https://bugs.webkit.org/show_bug.cgi?id=127566

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Make the VM handle recompilation as soon as possible after it is requested.

  • debugger/Debugger.cpp:

(JSC::Debugger::recompileAllJSFunctions):
When in a JavaScript stack, mark for recompilation when possible.

  • runtime/VMEntryScope.h:

(JSC::VMEntryScope::setRecompilationNeeded):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):
Handle recompilation when the top VMEntryScope is popped.
Pass the needs recompilation flag up the stack if needed.

Source/WebCore:

Covered by existing tests.

  • testing/Internals.cpp:

(WebCore::Internals::closeDummyInspectorFrontend):
Now that we don't have to fake that this is a page being destroyed to
avoid recompilation. Use the InspectorDestroyed reason.

1:25 PM Changeset in webkit [162719] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Use a side table to map WebPageProxy objects to WKBrowsingContextController objects
https://bugs.webkit.org/show_bug.cgi?id=127577

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(browsingContextControllerMap):
(-[WKBrowsingContextController dealloc]):
(-[WKBrowsingContextController _initWithPageRef:]):
(+[WKBrowsingContextController _browsingContextControllerForPageRef:]):

  • UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
  • UIProcess/WebPageProxy.h:
1:23 PM Changeset in webkit [162718] by mark.lam@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Generic JSObject::put should handle static properties in the classinfo hierarchy
https://bugs.webkit.org/show_bug.cgi?id=127523

Patch by Oliver Hunt <oliver@apple.com> on 2014-01-24
Reviewed by Geoffrey Garen.

This patch makes JSObject::put correctly call static setters
defined by the ClassInfo.

To make this not clobber performance, the ClassInfo HashTable
now includes a flag to indicate that it contains setters. This
required updating the lut generator so that it tracked (and emitted)
this.

The rest of the change was making a number of the methods take
a VM rather than an ExecState*, so that Structure could set the
getter/setter flags during construction (if necessary).

This also means most objects do not need to perform a lookupPut
manually anymore, so most custom ::put's are no longer needed.
DOMWindow is the only exception as it has interesting security
related semantics.

  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::arrayConstructorTable):
(JSC::ExecState::arrayPrototypeTable):
(JSC::ExecState::booleanPrototypeTable):
(JSC::ExecState::dataViewTable):
(JSC::ExecState::dateTable):
(JSC::ExecState::dateConstructorTable):
(JSC::ExecState::errorPrototypeTable):
(JSC::ExecState::globalObjectTable):
(JSC::ExecState::jsonTable):
(JSC::ExecState::numberConstructorTable):
(JSC::ExecState::numberPrototypeTable):
(JSC::ExecState::objectConstructorTable):
(JSC::ExecState::privateNamePrototypeTable):
(JSC::ExecState::regExpTable):
(JSC::ExecState::regExpConstructorTable):
(JSC::ExecState::regExpPrototypeTable):
(JSC::ExecState::stringConstructorTable):
(JSC::ExecState::promisePrototypeTable):
(JSC::ExecState::promiseConstructorTable):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::getOwnPropertySlot):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::getOwnPropertySlot):

  • runtime/BooleanPrototype.cpp:

(JSC::BooleanPrototype::getOwnPropertySlot):

  • runtime/ClassInfo.h:

(JSC::ClassInfo::propHashTable):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::getOwnPropertySlot):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::getOwnPropertySlot):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::getOwnPropertySlot):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::getOwnPropertySlot):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::getOwnPropertySlot):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):

  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::getOwnPropertySlot):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::getOwnPropertySlot):

  • runtime/Lookup.h:

(JSC::HashTable::copy):
(JSC::putEntry):
(JSC::lookupPut):

  • runtime/NamePrototype.cpp:

(JSC::NamePrototype::getOwnPropertySlot):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::getOwnPropertySlot):

  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::getOwnPropertySlot):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::put):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::getOwnPropertySlot):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::freezeTransition):
(JSC::ClassInfo::hasStaticSetterOrReadonlyProperties):

1:19 PM Changeset in webkit [162717] by fpizlo@apple.com
  • 3 edits
    2 adds in branches/jsCStack/Source/JavaScriptCore

PutByIdDirect in FTL
https://bugs.webkit.org/show_bug.cgi?id=127442

Patch by Matthew Mirman <mmirman@apple.com> on 2014-01-24
Reviewed by Filip Pizlo.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

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

  • tests/stress/ftl-putbyid.js: Added.
  • tests/stress/ftl-putbyiddirect.js: Added.

(foo):

12:41 PM Changeset in webkit [162716] by andersca@apple.com
  • 16 edits in trunk/Source

Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead
https://bugs.webkit.org/show_bug.cgi?id=127571

Reviewed by Antti Koivisto.

Source/WebCore:

WebCore.exp.in:
Update symbols.

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::implicitClose):
(WebCore::Document::setParsing):
(WebCore::Document::isLayoutTimerActive):
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::elapsedTime):
(WebCore::Document::write):
(WebCore::Document::styleResolverChanged):

  • dom/Document.h:

Use std::chrono instead of doubles for the times and durations.

  • fileapi/FileReader.cpp:

(WebCore::FileReader::FileReader):
(WebCore::FileReader::didReceiveData):

  • fileapi/FileReader.h:

Switch over to std::chrono.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::layoutTimerFired):
(WebCore::FrameView::scheduleRelayout):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
Update for Document::elapsedTime() changes.

  • page/Settings.cpp:

(WebCore::Settings::setLayoutInterval):

  • page/Settings.h:

(WebCore::Settings::layoutInterval):
Change layoutInterval to be std::chrono::milliseconds instead of int.

  • platform/Timer.h:

(WebCore::TimerBase::startOneShot):
Add an overload that takes std::chrono::milliseconds.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Convert the layout interval to std::chrono::milliseconds.

Source/WTF:

  • wtf/Compiler.h:

Add a CONSTEXPR define so we can still use constexpr on compilers that don't support them (MSVC).

  • wtf/CurrentTime.h:

Remove monotonicallyIncreasingTimeMS().

  • wtf/StdLibExtras.h:

(std::literals::chrono_literals::operator _s):
(std::literals::chrono_literals::operator _ms):
Add _s and _ms literals. Once we switch over to C++14, we can drop them and just use the built-in ones.

12:27 PM Changeset in webkit [162715] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

iOS build fix after r162710.

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

(WebKit::PageClientImpl::takeViewSnapshot):

12:06 PM Changeset in webkit [162714] by commit-queue@webkit.org
  • 7 edits in trunk

[GTK] Put cache files in XDG_CACHE_HOME
https://bugs.webkit.org/show_bug.cgi?id=123458

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-01-24
Reviewed by Martin Robinson.

Source/WebKit/gtk:

  • webkit/webkitglobals.cpp:

(webkitInit):

  • webkit/webkiticondatabase.cpp:

Source/WebKit2:

  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformDefaultIconDatabasePath):

Tools:

  • GtkLauncher/main.c:

(createBrowser):

12:03 PM Changeset in webkit [162713] by oliver@apple.com
  • 53 edits
    3 adds in trunk

Generic JSObject::put should handle static properties in the classinfo hierarchy
https://bugs.webkit.org/show_bug.cgi?id=127523

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch makes JSObject::put correctly call static setters
defined by the ClassInfo.

To make this not clobber performance, the ClassInfo HashTable
now includes a flag to indicate that it contains setters. This
required updating the lut generator so that it tracked (and emitted)
this.

The rest of the change was making a number of the methods take
a VM rather than an ExecState*, so that Structure could set the
getter/setter flags during construction (if necessary).

This also means most objects do not need to perform a lookupPut
manually anymore, so most custom ::put's are no longer needed.
DOMWindow is the only exception as it has interesting security
related semantics.

  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::arrayConstructorTable):
(JSC::ExecState::arrayPrototypeTable):
(JSC::ExecState::booleanPrototypeTable):
(JSC::ExecState::dataViewTable):
(JSC::ExecState::dateTable):
(JSC::ExecState::dateConstructorTable):
(JSC::ExecState::errorPrototypeTable):
(JSC::ExecState::globalObjectTable):
(JSC::ExecState::jsonTable):
(JSC::ExecState::numberConstructorTable):
(JSC::ExecState::numberPrototypeTable):
(JSC::ExecState::objectConstructorTable):
(JSC::ExecState::privateNamePrototypeTable):
(JSC::ExecState::regExpTable):
(JSC::ExecState::regExpConstructorTable):
(JSC::ExecState::regExpPrototypeTable):
(JSC::ExecState::stringConstructorTable):
(JSC::ExecState::promisePrototypeTable):
(JSC::ExecState::promiseConstructorTable):

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::getOwnPropertySlot):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::getOwnPropertySlot):

  • runtime/BooleanPrototype.cpp:

(JSC::BooleanPrototype::getOwnPropertySlot):

  • runtime/ClassInfo.h:

(JSC::ClassInfo::propHashTable):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::getOwnPropertySlot):

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::getOwnPropertySlot):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::getOwnPropertySlot):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::getOwnPropertySlot):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::getOwnPropertySlot):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::getOwnPropertySlot):

  • runtime/JSObject.cpp:

(JSC::JSObject::put):
(JSC::JSObject::deleteProperty):

  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::getOwnPropertySlot):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::getOwnPropertySlot):

  • runtime/Lookup.h:

(JSC::HashTable::copy):
(JSC::putEntry):
(JSC::lookupPut):

  • runtime/NamePrototype.cpp:

(JSC::NamePrototype::getOwnPropertySlot):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::getOwnPropertySlot):

  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::getOwnPropertySlot):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::getOwnPropertySlot):

  • runtime/RegExpConstructor.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::put):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::getOwnPropertySlot):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::getOwnPropertySlot):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::freezeTransition):
(JSC::ClassInfo::hasStaticSetterOrReadonlyProperties):

Source/WebCore:

Update the bindings generator to emit the flag indicating the presence
of setters, and remove the many (now unnecessary) put overrides.
Tested with run-jsc-benchmarks and shows neutral performance. A few of the
micro benchmarks actually get a significant performance increase which
is nice.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

We still need a custom call to lookupPut here in order
to get the magic security semantics of the window object.

  • bindings/scripts/CodeGeneratorJS.pm:

(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):

  • bindings/scripts/CodeGeneratorJS.pm:

(hashTableAccessor):
(prototypeHashTableAccessor):
(constructorHashTableAccessor):
(InstanceOverridesPutImplementation):
(InstanceOverridesPutDeclaration):
(GenerateHeader):
(GenerateImplementation):
(GenerateHashTable):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::put):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSattribute.cpp:
  • bindings/scripts/test/JS/JSreadonly.cpp:
  • html/canvas/WebGLRenderingContext.idl: Remove bogus attribute, as it has never been in the spec and should not have been added.

LayoutTests:

Yay tests!

  • fast/canvas/webgl/constants.html: Remove incorrect constant
  • js/script-tests/static-put-in-prototype-chain.js: Added.
  • js/static-put-in-prototype-chain-expected.txt: Added.
  • js/static-put-in-prototype-chain.html: Added.
11:55 AM Changeset in webkit [162712] by hyatt@apple.com
  • 17 edits
    2 deletes in trunk/Source/WebCore

[New Multicolumn] Eliminate RenderMultiColumnBlock
https://bugs.webkit.org/show_bug.cgi?id=127565

Reviewed by Antti Koivisto.

This patch eliminates RenderMultiColumnBlock and folds all of its remaining code
back into RenderBlockFlow. This allows all block flows to support multi-column
layout, including table cells, list items, and the RenderView itself.

  • CMakeLists.txt:
  • WebCore.order:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:

Remove RenderMultiColumnBlock from the makefiles.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
Tweak the comment, since it was no longer accurate.

  • rendering/RenderBlock.h:

Move some functions down into RenderBlockFlow.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::createMultiColumnFlowThreadIfNeeded):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
(WebCore::RenderBlockFlow::updateLogicalWidthAndColumnWidth):
(WebCore::RenderBlockFlow::addChild):
(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):

  • rendering/RenderBlockFlow.h: Move a bunch of functions from RenderMultiColumnBlock up into RenderBlockFlow.
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::isUnsplittableForPagination):
Calls isMultiColumnBlockFlow() now instead of testing for a specific renderer type.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):
Remove the multicolumn block creation code, since we always make a block flow now.

  • rendering/RenderMultiColumnBlock.cpp: Removed.
  • rendering/RenderMultiColumnBlock.h: Removed.

Nuke the files.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
(WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
(WebCore::RenderMultiColumnSet::addForcedBreak):
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::columnGap):
(WebCore::RenderMultiColumnSet::paintColumnRules):
Change all of the functions in the multicolumnset and multicolumnflowthread classes
to cast the parent to a RenderBlockFlow now instead of a RenderMultiColumnBlock.
Change the code to call through to multiColumnFlowThread() for column-specific information
for that parent block.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isMultiColumnBlockFlow):
Remove isRenderMultiColumnBlock() and replace with isMultiColumnBlockFlow().

  • rendering/RenderingAllInOne.cpp:

Remove RenderMultiColumnBlock include.

11:07 AM Changeset in webkit [162711] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Removing the need for Debugger* and m_shouldPause op_debug check.
<https://webkit.org/b/127532>

Reviewed by Geoffrey Garen.

This patch replaces the checking of the Debugger::m_shouldPause flag
with a procedure to set a SteppingMode flag on all CodeBlocks under
the management of the debugger. This simplifies the op_debug checking
logic in all the execution engines.

  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasDebuggerRequests):
(JSC::CodeBlock::debuggerRequestsAddress):
(JSC::CodeBlock::setSteppingMode):
(JSC::CodeBlock::clearDebuggerRequests):

  • CodeBlock::m_debuggerRequests is a union of m_numBreakpoints and the new m_steppingMode. The debugger can add/remove breakpoints to the CodeBlock as well as set the stepping mode. By having m_debuggerRequests as a union of the 2 bit fields, the op_debug code can now check if any of the 2 requests made on the CodeBlock is still in effect just by testing a single int.
  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::detach):

  • This was bug from before where I forgot to clear the CodeBlock breakpoints before detaching. We now take care of it by clearing all debugger requests made to the CodeBlock.

(JSC::Debugger::SetSteppingModeFunctor::SetSteppingModeFunctor):
(JSC::Debugger::SetSteppingModeFunctor::operator()):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::ClearCodeBlockDebuggerRequestsFunctor):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::operator()):
(JSC::Debugger::clearBreakpoints):

(JSC::Debugger::ClearDebuggerRequestsFunctor::ClearDebuggerRequestsFunctor):
(JSC::Debugger::ClearDebuggerRequestsFunctor::operator()):
(JSC::Debugger::clearDebuggerRequests):

  • We need a distinct clearDebuggerRequests() from clearBreakpoints() because:
    1. When we detach a globalObject, we only want to clear the debugger requests in CodeBlocks from that global.
    2. Clearing the debugger requests in the CodeBlocks is not the same as clearing the breakpoints. The breakpoints are still in effect for the next time a globalObject is attached, or for other globalObjects that are still attached.

(JSC::Debugger::setPauseOnNextStatement):
(JSC::Debugger::breakProgram):
(JSC::Debugger::stepIntoStatement):
(JSC::Debugger::updateCallFrameAndPauseIfNeeded):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::exception):
(JSC::Debugger::willExecuteProgram):
(JSC::Debugger::didReachBreakpoint):

  • debugger/Debugger.h:
  • We're always going to support the debugger. So, there's no longer a need to check ENABLE(JAVASCRIPT_DEBUGGER). Removed the unneeded code.
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::debug):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_debug):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_debug):

  • llint/LowLevelInterpreter.asm:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::setDebugger):

10:56 AM Changeset in webkit [162710] by timothy_horton@apple.com
  • 13 edits
    2 adds in trunk/Source/WebKit2

WebKit2 View Gestures (Swipe): Add a simple cache of view snapshots
https://bugs.webkit.org/show_bug.cgi?id=127438

Reviewed by Sam Weinig.

Add a cache of bitmap snapshots of the WKView, taken via OS X's window server
snapshotting mechanism. For now, we store all snapshots; refinements to the
caching strategy (or really having one at all) will come in future patches.

Snapshots are stored in a side map, with a UUID that allows references
to be stored inside WebBackForwardListItem (and serialized along with
the back-forward list when it is copied).

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::setSnapshotUUID):
(WebKit::WebBackForwardListItem::snapshotUUID):

  • UIProcess/cf/WebBackForwardListCF.cpp:

(WebKit::WebBackForwardList::createCFDictionaryRepresentation):
(WebKit::extractBackForwardListEntriesFromArray):
Store and serialize a UUID along with each back-forward list item which
identifies that item's view snapshot in the ViewSnapshotStore.

  • UIProcess/cf/WebPageProxyCF.cpp:

Bump the session state data version, as we changed the WebBackForwardList format.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/PageClientImpl.h:
  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::takeViewSnapshot):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Add _takeViewSnapshot IPI, which is used by ViewSnapshotStore via the PageClient
to take a snapshot of the view.

(-[WKView saveBackForwardSnapshotForCurrentItem]):
Add saveBackForwardSnapshotForCurrentItem SPI, which clients could potentially
use when they know they're about to manipulate the view hierarchy in such a way
that they want the current back-forward item's snapshot to be up to date.

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::recordNavigationSnapshot):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
Update the current back-forward item's snapshot immediately before navigating.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::shouldRecordNavigationSnapshots):
(WebKit::WebPageProxy::setShouldRecordNavigationSnapshots):
Expose the ability to enable taking view snapshots on every navigation.
This is off by default, so we won't be taking any snapshots yet.

  • UIProcess/mac/ViewSnapshotStore.h: Added.

(WebKit::ViewSnapshotStore::disableSnapshotting):
(WebKit::ViewSnapshotStore::enableSnapshotting):

  • UIProcess/mac/ViewSnapshotStore.mm: Added.

(WebKit::ViewSnapshotStore::ViewSnapshotStore):
(WebKit::ViewSnapshotStore::~ViewSnapshotStore):
(WebKit::ViewSnapshotStore::shared):
(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::takeViewSnapshot):

  • WebKit2.xcodeproj/project.pbxproj:
10:46 AM Changeset in webkit [162709] by beidson@apple.com
  • 12 edits in trunk/Source

IDB: support createIndex/deleteIndex messaging
https://bugs.webkit.org/show_bug.cgi?id=127546

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in: Export a needed CrossThreadCopier

Source/WebKit2:

Message create/delete requests over to the DatabaseProcess, and listen to its replies:

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::createIndex):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::deleteIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:

Pass create/delete requests to the appropriate unique IDB database:

  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:

(WebKit::DatabaseProcessIDBConnection::createIndex):
(WebKit::DatabaseProcessIDBConnection::deleteIndex):

  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
  • DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:

Message the create/delete request to the database thread for the backing store to handle:

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::didCreateIndex):
(WebKit::UniqueIDBDatabase::didDeleteIndex):
(WebKit::UniqueIDBDatabase::createIndex):
(WebKit::UniqueIDBDatabase::deleteIndex):
(WebKit::UniqueIDBDatabase::createIndexInBackingStore):
(WebKit::UniqueIDBDatabase::deleteIndexInBackingStore):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • Scripts/webkit2/messages.py:

(struct_or_class):

10:30 AM Changeset in webkit [162708] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

The CXX_EXPLICIT_CONVERSIONS COMPILER_SUPPORTS macro has been removed, and all
compilers support explicit conversions now so simply remove the #ifdef.

  • wtf/RetainPtr.h:
10:20 AM Changeset in webkit [162707] by andersca@apple.com
  • 5 edits in trunk/Source/WTF

Simplify Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=127491

Patch by Darin Adler <Darin Adler> on 2014-01-24
Reviewed by Anders Carlsson.

  • wtf/Assertions.h: Remove COMPILER_SUPPORTS(CXX_STATIC_ASSERT), since

we now have that for all compilers that can build WebKit.

  • wtf/Compiler.h: Removed always true feature flags, including:

COMPILER_SUPPORTS(CXX_VARIADIC_TEMPLATES), COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES),
COMPILER_SUPPORTS(CXX_DELETED_FUNCTIONS), COMPILER_SUPPORTS(CXX_NULLPTR),
COMPILER_SUPPORTS(CXX_EXPLICIT_CONVERSIONS), COMPILER_SUPPORTS(CXX_STATIC_ASSERT),
COMPILER_SUPPORTS(CXX_OVERRIDE_CONTROL), COMPILER_SUPPORTS(CXX_STRONG_ENUMS), and
COMPILER_SUPPORTS(CXX_AUTO_TYPE). Sorted sections alphabetically. Separated out
nested #if and #else into separate checks for greater readability. Removed obsolete
check for COMPILER(RVCT). Removed unused COMPILER(GCCE) detection.

  • wtf/RefPtr.h: Remove COMPILER_SUPPORTS(CXX_NULLPTR), since we now have

that for all compilers that can build WebKit.

  • wtf/RetainPtr.h: Ditto.
10:09 AM Changeset in webkit [162706] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the Windows build after <http://trac.webkit.org/changeset/162704>
(https://bugs.webkit.org/show_bug.cgi?id=127293)

Only include TargetConditionals.h when building on a Darwin-based OS.
Also, check that TARGET_OS_IPHONE is defined before referencing its value
since it will be undefined when building on Windows.

  • bindings/objc/PublicDOMInterfaces.h:
10:06 AM Changeset in webkit [162705] by msaboff@apple.com
  • 9 edits in branches/jsCStack/Source/JavaScriptCore

CStack Branch: Get ARM working
https://bugs.webkit.org/show_bug.cgi?id=127510

Reviewed by Geoffrey Garen.

Fixed nativeCallTrampoline in the LLInt to account for the prior changes made for running on the
C stack.

Updated maxFrameExtentForSlowPathCall to take into account the stack aligning that needs
to happen as well.

In LowLevelInterpreter.asm::callToJavaScriptPrologue() for 32 bit variants of ARM,
we align the stack to a 16 byte boundary since the ARM calling convention allows any
4 byte alignment. Added code in callToJavaScriptEpilogue() to restore the unaligned
stack pointer before returning.

Added pop and push register list opcodes to ARMv7 assember and added popPair and pushPair in the
ARMv7 macro assembler for use saving and restoring lr & fp. Also add the ARM only "clrbp"
(stands for clear bits for pointer) that maps to the bic (bit clear) instruction used to
align the stack.

Fixed ARMv7 add instructions where the destination is the stack pointer. Some instructions
only allow the "Rn" source to be the stack pointer. In those cases, the source register is
moved into the stack pointer and then an "add sp, ..." or "add sp, sp, ..." instruction is used.

Fixed the test32 macro instruction handle the case where we want to test the stack pointer.
The instruction set doesn't allow that directly, so we move the stack pointer into a temp
register first.

Reviewed by Geoffrey Garen.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::add):
(JSC::ARMv7Assembler::pop):
(JSC::ARMv7Assembler::push):
(JSC::ARMv7Assembler::ARMInstructionFormatter::twoWordOp16Imm16):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::add32):
(JSC::MacroAssemblerARMv7::popPair):
(JSC::MacroAssemblerARMv7::pushPair):
(JSC::MacroAssemblerARMv7::test32):

  • assembler/MaxFrameExtentForSlowPathCall.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • offlineasm/arm.rb:
  • offlineasm/instructions.rb:
9:49 AM Changeset in webkit [162704] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Bindings generation tests hit an error trying to include wtf/Platform.h after r161638
https://bugs.webkit.org/show_bug.cgi?id=127293

Reviewed by Alexey Proskuryakov.

Include TargetConditionals.h instead of wtf/Platform.h as the latter isn't available
in the public SDK.

As a side effect of this change, replace usage of PLATFORM(IOS) with TARGET_OS_IPHONE.

  • bindings/objc/PublicDOMInterfaces.h:
9:33 AM Changeset in webkit [162703] by msaboff@apple.com
  • 2 edits in branches/jsCStack/Source/JavaScriptCore

Merge trunk change set r162701.

9:14 AM Changeset in webkit [162702] by hyatt@apple.com
  • 8 edits in trunk/Source/WebCore

[New Multicolumn] Table cells and list items need to work as multicolumn blocks.
https://bugs.webkit.org/show_bug.cgi?id=127365

This patch is a first step towards eliminating RenderMultiColumnBlock and moving
all its functionality into RenderBlockFlow. Doing so will allow table cells, list
items and the RenderView to use the new multi-column layout.

Reviewed by Simon Fraser.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::setMultiColumnFlowThread):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderBlockFlow::multiColumnFlowThread):
Add the flow thread pointer to the multi-column flow thread to RenderBlockFlow's
rare data. This lets us use only one pointer in the rare data to point to an object
that can hold all of the rest of the multi-column info.

  • rendering/RenderMultiColumnBlock.cpp:

(WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
Move the construction of the flow thread to the constructor. This ensures we
never have a null flow thread and lets us avoid having to null check it for
empty multi-column blocks.

(WebCore::RenderMultiColumnBlock::columnHeightAvailable):
(WebCore::RenderMultiColumnBlock::columnWidth):
(WebCore::RenderMultiColumnBlock::columnCount):
(WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
The above functions now call through to the multi-column flow thread for results.

(WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):

Set the column height available on the flow thread.

(WebCore::RenderMultiColumnBlock::relayoutForPagination):
The balancing pass and guard is in the multi-column flow thread now.

(WebCore::RenderMultiColumnBlock::addChild):
Don't have to create the flow thread here any longer, since we do it up front
in the constructor of RenderMultiColumnBlock.

(WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
Don't need the null check of the flow thread any more.

  • rendering/RenderMultiColumnBlock.h:

Change the inlined functions to not be inlined, since they need to call
RenderMultiColumnFlowThread functions now.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
Init the new member variables we moved here from RenderMultiColumnBlock.

(WebCore::RenderMultiColumnFlowThread::computeColumnCountAndWidth):
Moved from RenderMultiColumnBlock.

  • rendering/RenderMultiColumnFlowThread.h:

Add public getters/setters to the member variables so that RenderMultiColumnBlock can
still see them. Move the member variables here from RenderMultiColumnBlock.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::prepareForLayout):
(WebCore::RenderMultiColumnSet::columnCount):
Call through to the flow thread instead.

8:34 AM Changeset in webkit [162701] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ARM Offline assembler temporary register allocator has duplicate register when building fat binaries
https://bugs.webkit.org/show_bug.cgi?id=127545

Reviewed by Mark Lam.

Eliminate the conditional addition of r11/r7 from getModifiedListARMCommon as the
.concat will add the new register to ARM_EXTRA_GPRS. If getModifiedListARMCommon is
invoked a second time, there will be a second r11 or r7, which messes things up.
Instead, r6 was added to ARM_EXTRA_GPRS. r6 is currently an unused register.

  • offlineasm/arm.rb:
8:19 AM Changeset in webkit [162700] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Add expectations for two flaky media layout tests
https://bugs.webkit.org/show_bug.cgi?id=127557

Unreviewed EFL gardening.

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2014-01-24

  • platform/efl/TestExpectations:
4:02 AM Changeset in webkit [162699] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL][WK2] Debug buildfix
https://bugs.webkit.org/show_bug.cgi?id=127496

Reviewed by Gyuyoung Kim.

  • Shared/SessionTracker.cpp:
3:44 AM Changeset in webkit [162698] by Michał Pakuła vel Rutka
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening

Skip crashing http tests.

  • platform/efl-wk2/TestExpectations:
1:59 AM Changeset in webkit [162697] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed GTK build fix after r162663.

  • platform/gtk/ScrollViewGtk.cpp:

(WebCore::ScrollView::visibleContentRectInternal): Renamed from visibleContentRect.

1:25 AM Changeset in webkit [162696] by zandobersek@gmail.com
  • 9 edits in trunk/Source

Move HistoryItem to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127275

Reviewed by Darin Adler.

Source/WebCore:

Replace the uses of OwnPtr and PassOwnPtr in the HistoryItem class with std::unique_ptr.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::reset):
(WebCore::HistoryItem::addRedirectURL):
(WebCore::HistoryItem::setRedirectURLs):

  • history/HistoryItem.h:
  • history/mac/HistoryItemMac.mm:

(WebCore::HistoryItem::setTransientProperty):
WebCore.exp.in: Update the symbol.

Source/WebKit/mac:

  • History/WebHistoryItem.mm: The Vector object that's passed to HistoryItem::setRedirectURLs

should now be handled by std::unique_ptr and passed on through move semantics.
(-[WebHistoryItem initFromDictionaryRepresentation:]):

Source/WebKit/win:

  • WebHistoryItem.cpp: The Vector object that's passed to HistoryItem::setRedirectURLs

should now be handled by std::unique_ptr and passed on through move semantics.
(WebHistoryItem::initFromDictionaryRepresentation):

12:33 AM Changeset in webkit [162695] by jinwoo7.song@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Remove failure expectations which are passing now.

  • platform/efl/TestExpectations: fast/css3-text/css3-text-decoration/
12:00 AM Changeset in webkit [162694] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

Region based multicol: unresolvable percent height results in 1px tall multicol
https://bugs.webkit.org/show_bug.cgi?id=122826

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-01-23
Reviewed by David Hyatt.

Source/WebCore:

If a box has a percentage height, but the computed height of its
containing block is auto, the computed height of the box also becomes
auto. computeContentLogicalHeight() returns -1 if the height isn't
resolvable, and we need to make sure that such a value doesn't
constrain the height of the multicol container.

Tests: fast/multicol/newmulticol/unresolvable-percent-height-2.html

fast/multicol/newmulticol/unresolvable-percent-height.html
fast/multicol/newmulticol/unresolvable-percent-max-height-2.html
fast/multicol/newmulticol/unresolvable-percent-max-height.html

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
(WebCore::RenderMultiColumnSet::prepareForLayout):

LayoutTests:

  • fast/multicol/newmulticol/unresolvable-percent-height-2-expected.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-height-2.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-height-expected.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-height.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-max-height-2-expected.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-max-height-2.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-max-height-expected.html: Added.
  • fast/multicol/newmulticol/unresolvable-percent-max-height.html: Added.
Note: See TracTimeline for information about the timeline view.