[chromium] Turn ENABLE(OVERFLOW_SCROLLING) off for Chromium port
https://bugs.webkit.org/show_bug.cgi?id=87177

Reviewed by Eric Seidel.

Source/WebKit/chromium:

Removes ENABLE(OVERFLOW_SCROLLING) from the set of enables set by Chromium. This guards a new non-standard
CSS property, -webkit-overflow-scrolling, that was introduced by iOS5 intended for mobile browsers. This
property is very partially implemented in Chromium but the way it's implemented does cause new stacking contexts
to be created that otherwise would not be, breaking "desktop" pages.

This turns the feature off until we can figure out how to deal with the compatibility issues.

* features.gypi:

LayoutTests:

Mark test depending on ENABLE(OVERFLOW_SCROLLING) as an expected failure since the define is off.

* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118261 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use after free in JSC::DFG::ByteCodeParser::processPhiStack
https://bugs.webkit.org/show_bug.cgi?id=87312
<rdar://problem/11518848>

Reviewed by Oliver Hunt.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::processPhiStack):
(JSC::DFG::ByteCodeParser::parse):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a Setting to make position:fixed form a new stacking context
https://bugs.webkit.org/show_bug.cgi?id=87186

Patch by James Robinson <jamesr@chromium.org> on 2012-05-23
Reviewed by Adam Barth.

Source/WebCore:

position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
issues, so we need a runtime setting in order to stage the change carefully.

Tests: fast/block/positioning/fixed-position-stacking-context.html
       fast/block/positioning/fixed-position-stacking-context2.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setFixedPositionCreatesStackingContext):
(WebCore::Settings::fixedPositionCreatesStackingContext):
(Settings):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::InternalSettings):
(WebCore::InternalSettings::restoreTo):
(WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
(WebCore):
* testing/InternalSettings.h:
(InternalSettings):
* testing/InternalSettings.idl:

Source/WebKit/chromium:

* public/WebSettings.h:
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setFixedPositionCreatesStackingContext):
(WebKit):
* src/WebSettingsImpl.h:
(WebSettingsImpl):

LayoutTests:

Adds layout tests that confirm we don't creates stacking contexts for position:fixed by default, but we do when
the fixedPositionCreatesStackingContext Setting is true.

Qt and Blackberry will need different expectations since they set this via an #ifdef

* fast/block/positioning/fixed-position-stacking-context-expected.png: Added.
* fast/block/positioning/fixed-position-stacking-context-expected.txt: Added.
* fast/block/positioning/fixed-position-stacking-context.html: Added.
* fast/block/positioning/fixed-position-stacking-context2-expected.png: Added.
* fast/block/positioning/fixed-position-stacking-context2-expected.txt: Added.
* fast/block/positioning/fixed-position-stacking-context2.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] http/tests/cache/history-only-cached-subresource-loads{-max-age-https}.html are now
failing with TEXT differences, so updated failure expectations.

Unreviewed gardening.

* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Marking a pair of fast/history layout tests as flaky (TEXT).
https://bugs.webkit.org/show_bug.cgi?id=87321

Unreviewed gardening.

* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118267 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactored WeakBlock to use malloc, clarify behavior
https://bugs.webkit.org/show_bug.cgi?id=87318

Reviewed by Filip Pizlo.

We want to use malloc so we can make these smaller than 4KB,
since an individual MarkedBlock will usually have fewer than
4KB worth of weak pointers.

* heap/Heap.cpp:
(JSC::Heap::markRoots): Renamed visitLiveWeakImpls to visit, since
we no longer need to distinguish from "visitDeadWeakImpls".

Renamed "visitDeadWeakImpls" to "reap" because we're not actually
doing any visiting -- we're just tagging things as dead.

* heap/WeakBlock.cpp:
(JSC::WeakBlock::create):
(JSC::WeakBlock::destroy):
(JSC::WeakBlock::WeakBlock): Malloc!

(JSC::WeakBlock::visit):
(JSC::WeakBlock::reap): Renamed as above.

* heap/WeakBlock.h:
(WeakBlock): Reduced to 3KB, as explained above.

* heap/WeakSet.cpp:
(JSC::WeakSet::visit):
(JSC::WeakSet::reap):
* heap/WeakSet.h:
(WeakSet): Updated for renames, and to match WebKit style.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG should be able to optimize foo.apply(bar, arguments)
https://bugs.webkit.org/show_bug.cgi?id=86306

Reviewed by Gavin Barraclough.
        
Merge r116912 from dfgopt.
        
Enables compilation of op_jneq_ptr and some forms of op_call_varargs.
        
Also includes a bunch of bug fixes that were made necessary by the increased
pressure on the CFG simplifier.
        
This is a 1-2% win on V8.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::CodeBlock):
(JSC::ProgramCodeBlock::canCompileWithDFGInternal):
(JSC::EvalCodeBlock::canCompileWithDFGInternal):
(JSC::FunctionCodeBlock::canCompileWithDFGInternal):
* bytecode/CodeBlock.h:
(CodeBlock):
(JSC::CodeBlock::canCompileWithDFG):
(JSC::CodeBlock::canCompileWithDFGState):
(ProgramCodeBlock):
(EvalCodeBlock):
(FunctionCodeBlock):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::processPhiStack):
(JSC::DFG::ByteCodeParser::parse):
* dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::fixPossibleGetLocal):
(JSC::DFG::CFGSimplificationPhase::fixTailOperand):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::getLocalLoadElimination):
(CSEPhase):
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::debugFail):
(DFG):
(JSC::DFG::canHandleOpcodes):
(JSC::DFG::canCompileOpcodes):
(JSC::DFG::canInlineOpcodes):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
(JSC::DFG::canInlineOpcode):
(DFG):
(JSC::DFG::canCompileOpcodes):
(JSC::DFG::canCompileEval):
(JSC::DFG::canCompileProgram):
(JSC::DFG::canCompileFunctionForCall):
(JSC::DFG::canCompileFunctionForConstruct):
* dfg/DFGCommon.h:
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
(Validate):
(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::checkOperand):
(JSC::DFG::Validate::reportValidationContext):
* jit/JIT.cpp:
(JSC::JIT::emitOptimizationCheck):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::privateCompile):
* jit/JIT.h:
* jit/JITArithmetic.cpp:
(JSC::JIT::compileBinaryArithOp):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompilePutByIdTransition):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::privateCompilePutByIdTransition):
* tools/CodeProfile.cpp:
(JSC::CodeProfile::sample):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r118134.
http://trac.webkit.org/changeset/118134
https://bugs.webkit.org/show_bug.cgi?id=87209

some LayoutTests crash since the patch passes a NULL to
Null(isolate)

* bindings/v8/custom/V8HTMLElementCustom.cpp:
(WebCore::toV8Object):
(WebCore::toV8):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::stateAccessorGetter):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8IDBKeyCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8ImageDataCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Int16ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Int32ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Int8ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8MessageEventCustom.cpp:
(WebCore::V8MessageEvent::dataAccessorGetter):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8NodeCustom.cpp:
(WebCore::V8Node::insertBeforeCallback):
(WebCore::V8Node::replaceChildCallback):
(WebCore::V8Node::removeChildCallback):
(WebCore::V8Node::appendChildCallback):
(WebCore::toV8Slow):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallback):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8SVGElementCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8SVGPathSegCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8ScriptProfileCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8StyleSheetCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8TrackEventCustom.cpp:
(WebCore::V8TrackEvent::trackAccessorGetter):
* bindings/v8/custom/V8Uint16ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Uint32ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Uint8ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::toV8Object):
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::toV8):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r118133.
http://trac.webkit.org/changeset/118133
https://bugs.webkit.org/show_bug.cgi?id=87207

some LayoutTests crash since the patch passes a NULL to
Null(isolate)

* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8CSSRuleCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8CSSValueCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8ClipboardCustom.cpp:
(WebCore::V8Clipboard::typesAccessorGetter):
* bindings/v8/custom/V8CoordinatesCustom.cpp:
(WebCore::V8Coordinates::altitudeAccessorGetter):
(WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
(WebCore::V8Coordinates::headingAccessorGetter):
(WebCore::V8Coordinates::speedAccessorGetter):
* bindings/v8/custom/V8DOMStringMapCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DOMTokenListCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
(WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
(WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
(WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
(WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAccessorGetter):
* bindings/v8/custom/V8EntryCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8EntrySyncCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Float32ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8Float64ArrayCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::toV8):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r118129.
http://trac.webkit.org/changeset/118129
https://bugs.webkit.org/show_bug.cgi?id=87202

some LayoutTests crash since the patch passes a NULL to
Null(isolate)

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNormalAttrGetter):
(GenerateFunctionCallback):
(NativeToJSValue):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::contentDocumentAttrGetter):
(WebCore::TestObjV8Internal::getSVGDocumentCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
(WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r118120.
http://trac.webkit.org/changeset/118120
https://bugs.webkit.org/show_bug.cgi?id=87193

some LayoutTests crash since the patch passes a NULL to
Null(isolate)

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestException.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestInterface.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestNode.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestObj.h:
(WebCore::toV8):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(WebCore::toV8):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Enable the CCLayerTreeHostTestCanDrawBlocksDrawing test in single-threaded mode
https://bugs.webkit.org/show_bug.cgi?id=87308

Reviewed by James Robinson.

Chromium bug: http://crbug.com/127481

Unit test: CCLayerTreeHostTestCanDrawBlocksDrawing.runSingleThread

* tests/CCLayerTreeHostTest.cpp:
(WTF::TestHooks::didCommit):
(WTF):
(WTF::CCLayerTreeHostTestCanDrawBlocksDrawing::didCommit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG should optimize inlined uses of arguments.length and arguments[i]
https://bugs.webkit.org/show_bug.cgi?id=86327

Reviewed by Gavin Barraclough.
        
Merged r117017 from dfgopt.
        
Turns inlined uses of arguments.length into a constant.
        
Turns inlined uses of arguments[constant] into a direct reference to the
argument.
        
Big win on micro-benchmarks. Not yet a win on V8 because the hot uses of
arguments.length and arguments[i] are aliased. I'll leave the aliasing
optimizations to a later patch.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/DFGExitProfile.h:
(FrequentExitSite):
(JSC::DFG::FrequentExitSite::FrequentExitSite):
(JSC::DFG::QueryableExitProfile::hasExitSite):
(QueryableExitProfile):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGArgumentsSimplificationPhase.cpp: Added.
(DFG):
(ArgumentsSimplificationPhase):
(JSC::DFG::ArgumentsSimplificationPhase::ArgumentsSimplificationPhase):
(JSC::DFG::ArgumentsSimplificationPhase::run):
(JSC::DFG::performArgumentsSimplification):
* dfg/DFGArgumentsSimplificationPhase.h: Added.
(DFG):
* dfg/DFGAssemblyHelpers.cpp:
(JSC::DFG::AssemblyHelpers::executableFor):
(DFG):
* dfg/DFGAssemblyHelpers.h:
(AssemblyHelpers):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::getLocalLoadElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGDriver.cpp:
(JSC::DFG::compile):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::executableFor):
(Graph):
(JSC::DFG::Graph::clobbersWorld):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::convertToGetLocalUnlinked):
(Node):
(JSC::DFG::Node::unlinkedLocal):
* dfg/DFGNodeType.h:
(DFG):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::considerAddingAsFrequentExitSiteSlow):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
auto margins on flexbox should allocate space in the cross direction
https://bugs.webkit.org/show_bug.cgi?id=86913

Reviewed by Ojan Vafai.

Source/WebCore:

Test: css3/flexbox/auto-margins.html

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis):
(WebCore):
(WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren): If we have flex-align: baseline and auto margins, we ignore flex-align: baseline.
(WebCore::RenderFlexibleBox::alignChildren): auto margins apply before flex-align.
* rendering/RenderFlexibleBox.h:

LayoutTests:

* css3/flexbox/auto-margins-expected.html: Added.
* css3/flexbox/auto-margins.html: Added. These are the test cases in the spec.
* css3/flexbox/flex-align-vertical-writing-mode.html: Fix tests with auto margins and add more tests.
Also reduce the height so it's easier to see the test cases (these vertical tests don't check the height).
* css3/flexbox/flex-align.html: Fix tests with auto margins and add more tests.
* css3/flexbox/flex-flow-auto-margins.html: Fix results now that we handle auto in the cross direction.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AX: Prevents assertion from potentially dereferencing null pointer.
https://bugs.webkit.org/show_bug.cgi?id=87290

Patch by David Tseng <dtseng@google.com> on 2012-05-23
Reviewed by Chris Fleizach.

Changes to assertions. Coverage by existing tests.

* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::cellForColumnAndRow):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118281 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove the Chromium Grid Layout bot from the waterfall
https://bugs.webkit.org/show_bug.cgi?id=87311

Reviewed by Ryosuke Niwa.

I removed the compiler define in r117613, so we don't need a separate
bot to compile/test this code.

* BuildSlaveSupport/build.webkit.org-config/config.json:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] GraphicsContext should avoid converting rotation angle to degrees
https://bugs.webkit.org/show_bug.cgi?id=87317

Reviewed by Noam Rosenthal.

The angle for rotate is already in radians, so we should take advantage of it
by using QTransform::rotateRadians, rather than converting it back internally.

* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::rotate):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, fix Windows build.

* bytecode/CodeBlock.h:
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
(JSC::DFG::canCompileOpcodes):
* dfg/DFGCommon.h:
(DFG):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add seamless layout code (and pass most of the remaining seamless tests)
https://bugs.webkit.org/show_bug.cgi?id=86608

Reviewed by Ojan Vafai.

Source/WebCore:

This patch contains almost all the layout changes needed for seamless iframes.
I removed the scroll-bar avoiding code at the last moment, as it didn't
work for platforms other than mac-lion.  I'll add that, as well as the
HTMLIFrameElement.seamless idl attribute in a follow-up patch.

Seamless iframes piggy-back a bit on the existing frame-flattening
logic, however seamless is different from frame-flattening in a few ways:
- Frame flattening can only ever make an iframe larger (seamless just behaves like a normal div).
- Frame flattening disables scrollbars (seamless frames behave like normal overflow: auto divs).
- Seamless only has to work with iframes (flattening works with frame/frameset as well).
- Seamless support shrink-wrap size negotiation when the iframe is inline.

Test: fast/frames/seamless/seamless-percent-height.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): map inline -> inline-block for seamless iframes.
* dom/Document.cpp:
(WebCore::Document::scheduleStyleRecalc):
 - Seamless iframes don't manage their own style recalc.
(WebCore::Document::recalcStyle):
 - We should make sure our parent is resolved before we are, but currently that causes some tests to crash
   I don't have a test to demonstrate this need yet, as presumably it's fulfilled through other codepaths atm.
* page/FrameView.cpp:
(WebCore::FrameView::scheduleRelayout): Do the cheaper check first.
(WebCore::FrameView::isInChildFrameWithFrameFlattening): Make frameview layout abort child layouts like how frame flattening does.
* rendering/RenderBox.h:
(WebCore::RenderBox::stretchesToViewport): Disable the stretch-to-viewport quirk for seamless iframes (it makes no sense and breaks the layout code).
* rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::computeLogicalHeight):
 - This function is needed for the child document to participate in the normal block shrink-wrap algorithm.
   Thankfully all the shrink-wrap logic is in RenderBox instead of RenderBlock. In the future we may make
   RenderIframe a RenderBlock for the seamless case. We may just split RenderIframe into two renderers.
(WebCore::RenderIFrame::computeLogicalWidth):
(WebCore::RenderIFrame::shouldComputeSizeAsReplaced):
 - seamless iframes behave like blocks, not inline replaced elements.
(WebCore):
(WebCore::RenderIFrame::isInlineBlockOrInlineTable):
 - Behave like an inline-block when marked inline.
(WebCore::RenderIFrame::minPreferredLogicalWidth):
 - When asked for our pref widths, return those of our child document.
(WebCore::RenderIFrame::maxPreferredLogicalWidth):
(WebCore::RenderIFrame::isSeamless): helper function
(WebCore::RenderIFrame::contentRootRenderer): helper function
(WebCore::RenderIFrame::flattenFrame): seamless iframes never use the frame-flattening feature.
(WebCore::RenderIFrame::layoutSeamlessly): The guts of seamless layout.
(WebCore::RenderIFrame::layout):
* rendering/RenderIFrame.h:
(WebCore):
(RenderIFrame):

LayoutTests:

Add a test for percent height in child documents, as well as
disabling the expand-to-fill-viewport quirk of html/body elements
in quirks mode.
Also update all the expectations now that we pass almost all the tests.

* fast/frames/seamless/resources/percent-square.html: Added.
* fast/frames/seamless/resources/two-inline-blocks.html:
* fast/frames/seamless/seamless-basic-expected.txt:
* fast/frames/seamless/seamless-float-expected.txt:
* fast/frames/seamless/seamless-inherited-origin-expected.txt:
* fast/frames/seamless/seamless-inherited-origin.html:
* fast/frames/seamless/seamless-inline-expected.txt:
* fast/frames/seamless/seamless-nested-expected.txt:
* fast/frames/seamless/seamless-percent-height-expected.txt: Added.
* fast/frames/seamless/seamless-percent-height.html: Added.
* fast/frames/seamless/seamless-quirks-expected.txt:
* fast/frames/seamless/seamless-sandbox-flag-expected.txt:
* fast/frames/seamless/seamless-sandbox-srcdoc-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118291 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused declarations in MemoryCache.h
https://bugs.webkit.org/show_bug.cgi?id=87323

It is originated from r75912.

Patch by Huang Dongsung <luxtella@company100.net> on 2012-05-23
Reviewed by Darin Adler.

* loader/cache/MemoryCache.h:

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