⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jul 5, 2013:

10:01 PM Changeset in webkit [152434] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Tons of crashes on bots after r152425
https://bugs.webkit.org/show_bug.cgi?id=118440
<rdar://problem/14366772>

Reviewed by Sam Weinig.

Null-check the frame's page and early return. It's OK to do this
because it only happens when we're being torn down.

  • page/FrameView.cpp:

(WebCore::FrameView::minimumScrollPosition):
(WebCore::FrameView::maximumScrollPosition):

7:19 PM Changeset in webkit [152433] by timothy_horton@apple.com
  • 4 edits in trunk

Fix r152265: FrameView's pagination mode is only one of two, and the logic was totally wrong
https://bugs.webkit.org/show_bug.cgi?id=118439
<rdar://problem/14366120>

Reviewed by Anders Carlsson.

  • page/FrameView.cpp:

(WebCore::FrameView::maximumScrollPosition):

  • Test both Page and FrameView's pagination modes.
  • *Don't* clamp negatives to zero if we are paginated with scroll offset set,

like the original changelog claimed, but the code did the opposite.

  • Don't clamp in *all* pagination modes; with 'direction: RTL' it's still possible

to have a negative maximum position in LTR/TB pagination modes.

  • TestWebKitAPI/Tests/WebKit2/ResizeReversePaginatedWebView.cpp:

(TestWebKitAPI::didLayout):
(TestWebKitAPI::TEST):

  • Make use of EXPECT_JS_EQ instead of manually doing JavaScript stuff.
  • Assert that we got the right number of pages for sanity.
  • Reduce the page gap size so that DrawingAreaImpl doesn't try to allocate

so much memory that SharedMemory asserts and makes the test time out.

  • Use didFirstLayoutAfterSuppressedIncrementalRendering instead of Paint

because paint doesn't fire if the window is offscreen.

6:08 PM Changeset in webkit [152432] by fpizlo@apple.com
  • 7 edits in branches/dfgFourthTier/Source/JavaScriptCore

fourthTier: FTL should better report its compile-times and it should be able to run in a mode where it doesn't spend time generating OSR exits
https://bugs.webkit.org/show_bug.cgi?id=118401

Reviewed by Sam Weinig.

Add two new OSR exit modes, which are useful only for playing with compile times:

  • All OSR exits are llvm.trap().


  • OSR exits don't take arguments and have no exit value marshaling.
  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPlan.h:

(Plan):

  • ftl/FTLIntrinsicRepository.h:

(FTL):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::appendOSRExit):
(LowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::emitOSRExitCall):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::trap):

  • runtime/Options.h:

(JSC):

6:01 PM Changeset in webkit [152431] by fpizlo@apple.com
  • 38 edits in branches/dfgFourthTier/Source/JavaScriptCore

fourthTier: DFG should refer to BasicBlocks by BasicBlock* and not BlockIndex
https://bugs.webkit.org/show_bug.cgi?id=118339

Reviewed by Michael Saboff.

This accomplishes two goals:

1) Simplifies a bunch of code. You can now much more directly get to a successor

or predecessor, since you just get the pointer directly. The backend(s) always
hold onto a pointer to the block they're on, so you don't have to do work to
get the block from the index.


2) It allows for the possibility of inserting blocks into the program.

Previously, if you did that, you'd have to edit all references to blocks since
those references would have outdated indexing after an insertion. Now, if you
change the indexing, you just have to invalidate some analyses and make sure
that you change each block's BasicBlock::index accordingly.

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::initialize):
(JSC::DFG::AbstractState::endBasicBlock):
(JSC::DFG::AbstractState::mergeToSuccessors):

  • dfg/DFGAbstractState.h:

(AbstractState):

  • dfg/DFGArgumentsSimplificationPhase.cpp:

(JSC::DFG::ArgumentsSimplificationPhase::run):

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::run):

  • dfg/DFGBasicBlock.h:

(DFG):
(JSC::DFG::BasicBlock::BasicBlock):
(JSC::DFG::BasicBlock::size):
(JSC::DFG::BasicBlock::isEmpty):
(JSC::DFG::BasicBlock::at):
(JSC::DFG::BasicBlock::operator[]):
(JSC::DFG::BasicBlock::last):
(JSC::DFG::BasicBlock::resize):
(JSC::DFG::BasicBlock::grow):
(BasicBlock):
(JSC::DFG::BasicBlock::append):
(JSC::DFG::BasicBlock::numSuccessors):
(JSC::DFG::BasicBlock::successor):
(JSC::DFG::BasicBlock::successorForCondition):
(JSC::DFG::BasicBlock::dump):
(UnlinkedBlock):
(JSC::DFG::UnlinkedBlock::UnlinkedBlock):
(JSC::DFG::getBytecodeBeginForBlock):
(JSC::DFG::blockForBytecodeOffset):

  • dfg/DFGByteCodeParser.cpp:

(ByteCodeParser):
(InlineStackEntry):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::linkBlock):
(JSC::DFG::ByteCodeParser::linkBlocks):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parseCodeBlock):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::performBlockCFA):
(JSC::DFG::CFAPhase::performForwardCFA):

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::convertToJump):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlocks):
(JSC::DFG::CPSRethreadingPhase::propagatePhis):
(CPSRethreadingPhase):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::run):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):
(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::Disassembler):
(JSC::DFG::Disassembler::createDumpList):

  • dfg/DFGDisassembler.h:

(JSC::DFG::Disassembler::setForBlockIndex):

  • dfg/DFGDominators.cpp:

(JSC::DFG::Dominators::compute):
(JSC::DFG::Dominators::iterateForBlock):

  • dfg/DFGDominators.h:

(JSC::DFG::Dominators::dominates):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Graph::handleSuccessor):
(JSC::DFG::Graph::determineReachability):
(JSC::DFG::Graph::resetReachability):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::numBlocks):
(JSC::DFG::Graph::block):
(JSC::DFG::Graph::lastBlock):
(Graph):
(JSC::DFG::Graph::appendBlock):
(JSC::DFG::Graph::killBlock):
(DFG):

  • dfg/DFGJITCompiler.cpp:

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

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::setForBlockIndex):

  • dfg/DFGNaturalLoops.cpp:

(JSC::DFG::NaturalLoop::dump):
(JSC::DFG::NaturalLoops::compute):
(JSC::DFG::NaturalLoops::loopsOf):

  • dfg/DFGNaturalLoops.h:

(JSC::DFG::NaturalLoop::NaturalLoop):
(JSC::DFG::NaturalLoop::addBlock):
(JSC::DFG::NaturalLoop::header):
(JSC::DFG::NaturalLoop::at):
(JSC::DFG::NaturalLoop::operator[]):
(JSC::DFG::NaturalLoop::contains):
(NaturalLoop):
(JSC::DFG::NaturalLoops::headerOf):
(NaturalLoops):

  • dfg/DFGNode.h:

(DFG):
(JSC::DFG::SwitchCase::SwitchCase):
(JSC::DFG::SwitchCase::withBytecodeIndex):
(SwitchCase):
(JSC::DFG::SwitchCase::targetBytecodeIndex):
(JSC::DFG::SwitchData::SwitchData):
(JSC::DFG::SwitchData::setFallThroughBytecodeIndex):
(JSC::DFG::SwitchData::fallThroughBytecodeIndex):
(SwitchData):
(JSC::DFG::Node::setTakenBlock):
(JSC::DFG::Node::setNotTakenBlock):
(JSC::DFG::Node::takenBlock):
(JSC::DFG::Node::notTakenBlock):
(JSC::DFG::Node::successor):
(JSC::DFG::Node::successorForCondition):

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagateForward):
(JSC::DFG::PredictionPropagationPhase::propagateBackward):
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::convertLastOSRExitToForward):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativeStrictEq):
(JSC::DFG::SpeculativeJIT::compilePeepHoleDoubleBranch):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::createOSREntries):
(JSC::DFG::SpeculativeJIT::linkOSREntries):
(JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::addBranch):
(JSC::DFG::SpeculativeJIT::linkBranches):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::nextBlock):
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):
(JSC::DFG::SpeculativeJIT::branchDouble):
(JSC::DFG::SpeculativeJIT::branchDoubleNonZero):
(JSC::DFG::SpeculativeJIT::branch32):
(JSC::DFG::SpeculativeJIT::branchTest32):
(JSC::DFG::SpeculativeJIT::branch64):
(JSC::DFG::SpeculativeJIT::branch8):
(JSC::DFG::SpeculativeJIT::branchPtr):
(JSC::DFG::SpeculativeJIT::branchTestPtr):
(JSC::DFG::SpeculativeJIT::branchTest8):
(JSC::DFG::SpeculativeJIT::jump):
(JSC::DFG::SpeculativeJIT::addBranch):
(JSC::DFG::SpeculativeJIT::StringSwitchCase::StringSwitchCase):
(StringSwitchCase):
(JSC::DFG::SpeculativeJIT::BranchRecord::BranchRecord):
(BranchRecord):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::run):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
(JSC::DFG::TypeCheckHoistingPhase::disableHoistingAcrossOSREntries):

  • dfg/DFGUnificationPhase.cpp:

(JSC::DFG::UnificationPhase::run):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::checkOperand):
(JSC::DFG::Validate::reportValidationContext):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::lower):
(JSC::FTL::LowerDFGToLLVM::compileBlock):
(JSC::FTL::LowerDFGToLLVM::compileJump):
(JSC::FTL::LowerDFGToLLVM::compileBranch):
(JSC::FTL::LowerDFGToLLVM::lowBlock):

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

WKPageFindStringMatches with kWKFindOptionsBackwards still doesn't work
<rdar://problem/13881024>
https://bugs.webkit.org/show_bug.cgi?id=118436

Reviewed by Tim Horton.

  • page/Page.cpp:

(WebCore::Page::findStringMatchingRanges):

  • When searching backwards, use END_TO_START rather than START_TO_END.
  • If there is no selection and we are searching backwards, we now select the last item, not the first.
4:12 PM Changeset in webkit [152429] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Windows] Unreviewed build correction.

  • WTF.vcxproj/WTFGenerated.make: Avoid syntax error in generated

file in cases where Legible Output support is not present.

4:06 PM Changeset in webkit [152428] by commit-queue@webkit.org
  • 1 edit
    5 adds in trunk/Source/WebCore

Nix upstreaming - Adding Nix render theme files
https://bugs.webkit.org/show_bug.cgi?id=118368

Patch by Tullio Lucena <tullio.lucena@openbossa.org> on 2013-07-05
Reviewed by Benjamin Poulain.

All files related to render theme stuff.

No new tests. They will be uploaded on another patch during the upstreaming process.

  • platform/nix/RenderThemeNix.cpp: Added.
  • platform/nix/RenderThemeNix.h: Added.
  • platform/nix/ScrollbarThemeNix.cpp: Added.
  • platform/nix/ScrollbarThemeNix.h: Added.
3:57 PM Changeset in webkit [152427] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Windows] Unreviewed build correction.

  • WTF.vcxproj/WTFGenerated.make: Use space (rather than double

quotes) when handling the no-Legible-Output case.

3:17 PM Changeset in webkit [152426] by Brent Fulgham
  • 7 edits in trunk/Source

[Windows] Identify OS-level at build-time.
https://bugs.webkit.org/show_bug.cgi?id=118428

Reviewed by Anders Carlsson.

../WebCore:

  • DerivedSources.make: Activate legible output features if present.
  • WebCorePrefix.h: Activate MSVC 2010 workarounds for CGFloat if

building with VS2010.

  • config.h: Activate legible output features if present.

../WTF:

  • WTF.vcxproj/WTFGenerated.make: Check for Legible Output featurs

and set build environment as appropriate.

  • wtf/Platform.h: Activate Legible Output features if present.
2:33 PM Changeset in webkit [152425] by timothy_horton@apple.com
  • 24 edits
    1 add in trunk

[wk2] Add API to lock the scroll position at the top or bottom of the page
https://bugs.webkit.org/show_bug.cgi?id=118429
<rdar://problem/14120323>

Reviewed by Anders Carlsson.

Test (API): WebKit2.ScrollPinningBehaviors

  • WebCore.exp.in:

Expose FrameView::setScrollPinningBehavior.

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
Our pinning behavior should be DoNotPin by default.

  • page/FrameView.cpp:

(WebCore::FrameView::minimumScrollPosition):
(WebCore::FrameView::maximumScrollPosition):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
Fix the minimum scroll position's vertical location to the maximum if
we're pinned to the bottom, and vice-versa if we're pinned to the top.

(WebCore::FrameView::setScrollPinningBehavior): Added.
If scroll pinning behavior has changed, inform ScrollingCoordinator
and update scrollbars (which will also re-pin the scroll position).

  • page/FrameView.h:

Override minimumScrollPosition, add setScrollPinningBehavior,
and storage for m_scrollPinningBehavior.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setScrollPinningBehavior): Added.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::ScrollingTree):
Our pinning behavior should be DoNotPin by default.

(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
Getter/setter for m_scrollPinningBehavior, scrolling-thread-safe.

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

(WebCore::ScrollingCoordinatorMac::setScrollPinningBehavior):
Inform ScrollingTree of the scroll pinning behavior change.

  • platform/ScrollTypes.h:

Add ScrollPinningBehavior enum.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/ScrollPinningBehaviors.cpp: Added.

(TestWebKitAPI::didFinishDocumentLoadForFrame):
(TestWebKitAPI::TEST):
Add a test that ensures that the three pinning modes (DoNotPin, PinToTop, PinToBottom)
all work correctly in the face of resizing the view and scrolling from JS.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Pass the current ScrollPinningBehavior across to the WebPage upon creation.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetScrollPinningBehavior):
(WKPageSetScrollPinningBehavior):

  • UIProcess/API/C/WKPagePrivate.h:

SPI to get/set the WebPageProxy's current ScrollPinningBehavior.
Convert between WK API type and WebCore enum.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::creationParameters):
Send ScrollPinningBehavior when creating a WebPage.

(WebKit::WebPageProxy::setScrollPinningBehavior):
Pass ScrollPinningBehavior changes across to the WebProcess (and save it
in WebPageProxy so it can be sent back across if the WebProcess crashes).

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::scrollPinningBehavior):
Getter/setter and storage for m_scrollPinningBehavior.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Inform new FrameViews of the current ScrollPinningBehavior.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
Set our ScrollPinningBehavior based on our creation parameters.

(WebKit::WebPage::setScrollPinningBehavior):
Inform the FrameView of ScrollPinningBehavior changes.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::scrollPinningBehavior): Added.
(WebKit::WebPage::setScrollPinningBehavior): Added.
Add storage for m_scrollPinningBehavior.

  • WebProcess/WebPage/WebPage.messages.in:

Add SetScrollPinningBehavior message.

2:28 PM Changeset in webkit [152424] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

iframe constrained by max-width in full screen
https://bugs.webkit.org/show_bug.cgi?id=118250

Patch by Zalan Bujtas <Alan Bujtas> on 2013-07-05
Reviewed by Antti Koivisto.

Ensure that contents inside iframe can go full screen properly.

Set max-width and max-height values to the default 'none', so that iframes are not
constrained when entering full screen.

Source/WebCore:

Test: fullscreen/full-screen-iframe-with-max-width-height.html

  • css/fullscreen.css:

(iframe:-webkit-full-screen):

LayoutTests:

  • fullscreen/full-screen-iframe-with-max-width-height-expected.txt: Added.
  • fullscreen/full-screen-iframe-with-max-width-height.html: Added.
2:03 PM Changeset in webkit [152423] by michael@68k.org
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
1:35 PM Changeset in webkit [152422] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

[Mac] .webkitClosedCaptionsVisible doesn't work with "Automatic" caption mode
https://bugs.webkit.org/show_bug.cgi?id=118319

Reviewed by Jer Noble.

Source/WebCore:

Track when captions are enabled with the old 'webkitClosedCaptionsVisible' attribute and
consider that when determining which track should be enabled.

Test: media/track/track-legacyapi-with-automatic-mode.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_webkitLegacyClosedCaptionOverride.
(WebCore::HTMLMediaElement::setWebkitClosedCaptionsVisible): Set m_webkitLegacyClosedCaptionOverride.
(WebCore::HTMLMediaElement::webkitClosedCaptionsVisible): Return m_webkitLegacyClosedCaptionOverride.

  • html/HTMLMediaElement.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Don't apply "automatic"

logic when captions were enabled with .webkitClosedCaptionsVisible.

LayoutTests:

  • media/track/track-legacyapi-with-automatic-mode-expected.txt: Added.
  • media/track/track-legacyapi-with-automatic-mode.html: Added.
10:46 AM Changeset in webkit [152421] by bshafiei@apple.com
  • 5 edits in tags/Safari-537.48.3/Source

Versioning.

10:44 AM Changeset in webkit [152420] by bshafiei@apple.com
  • 1 copy in tags/Safari-537.48.3

New tag.

10:35 AM Changeset in webkit [152419] by mario@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Updated TestExpectations file.

Added accessibility/listitem-list.html to the list of expected
failures, which will get fixed once bug 105214 is fixed.

  • platform/gtk/TestExpectations: Added new test.
10:25 AM Changeset in webkit [152418] by mikhail.pozdnyakov@intel.com
  • 3 edits in trunk/Source/WTF

A lot of code duplication within StringImpl 'equal' functions
https://bugs.webkit.org/show_bug.cgi?id=118415

Reviewed by Anders Carlsson.

There has been a lot of code duplication within StringImpl 'equal' functions:
the whole logic was copied to every overloaded 'equal' function.
Fixed now using templates and std::equal.

  • wtf/text/StringImpl.cpp:

(WTF::equalInternal):
(WTF::equal):

  • wtf/text/StringImpl.h:

(WTF::arraysEqual):
(WTF::equal):

9:35 AM Changeset in webkit [152417] by mario@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Update TestExpectations with crashing and failing tests
https://bugs.webkit.org/show_bug.cgi?id=118424

Unreviewed GTK gardening.

Updated TestExpectations with tests crashing and failing.

Patch by Simon Pena <simon.pena@samsung.com> on 2013-07-05

  • platform/gtk/TestExpectations:
8:02 AM Changeset in webkit [152416] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Segmentation fault occurred when ICU data library doesn't embed the expected encoding.
https://bugs.webkit.org/show_bug.cgi?id=118410

Patch by Benjamin Dupont <bdupont@nds.com> on 2013-07-05
Reviewed by Allan Sandfeld Jensen.

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::newTextCodec):

4:23 AM Changeset in webkit [152415] by mikhail.pozdnyakov@intel.com
  • 3 edits in trunk/Source/WTF

Remove code duplication from StringImpl create()/reallocate() methods
https://bugs.webkit.org/show_bug.cgi?id=118355

Reviewed by Andreas Kling.

StringImpl create()/reallocate() methods accepting LChar and UChar used to have
duplicated code. The code duplication is removed now via used templates.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::constructInternal):
(WTF::LChar):
(WTF::StringImpl::createUninitializedInternal):
(WTF::StringImpl::createUninitialized):
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::reallocate):
(WTF::StringImpl::createInternal):
(WTF::StringImpl::create):

  • wtf/text/StringImpl.h:
3:29 AM WikiStart edited by stuffmc@pomcast.com
I'm developing a Mac app embedding a WebView and another developer … (diff)
3:29 AM Changeset in webkit [152414] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

[EFL][WK2] Implement unit test callbacks: onWordLearn and onWordIgnore.
https://bugs.webkit.org/show_bug.cgi?id=118392

Patch by Krzysztof Wolanski <k.wolanski@samsung.com> on 2013-07-05
Reviewed by Christophe Dumez.

Simulate behavior of Learn and Ignore Word in the text field.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

(EWK2UnitTest::EWK2UnitTestBase::mouseDoubleClick):
Select the entire word in the text field.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
  • UIProcess/API/efl/tests/test_ewk2_text_checker.cpp:

(onSpellingForKnownWord):
(onWordLearn):
(onWordIgnore):
(selectLearnSpelling):
(selectIgnoreSpelling):

3:26 AM Changeset in webkit [152413] by commit-queue@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[New multicol] Change test to follow the pattern of the other tests
https://bugs.webkit.org/show_bug.cgi?id=117698

Patch by Mihai Maerean <Mihai Maerean> on 2013-07-05
Reviewed by Andreas Kling.

Test is a ref test against the old multicol code, like all the other tests in LayoutTests/fast/multicol/newmulticol/
This is a follow up of bug 116614, testing that flow threads don't end up being cloned in region based multi
columns with columns:1 where the only child has column-span:all.

  • fast/multicol/newmulticol/direct-child-column-span-all-expected.html: Added.
  • fast/multicol/newmulticol/direct-child-column-span-all-expected.txt: Removed.
  • fast/multicol/newmulticol/direct-child-column-span-all.html:
3:13 AM Changeset in webkit [152412] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] WebKit2 test TestWebKitFaviconDatabase times out with recent glib
https://bugs.webkit.org/show_bug.cgi?id=111434

Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-07-05
Reviewed by Carlos Garcia Campos.

Source/WebKit2:

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

(testNotInitialized):
(testSetDirectory):
(testClearDatabase):
(testGetFavicon):
(testGetFaviconURI): Removed gconstpointer parameter.
(testWebViewFavicon): Fixed to make it work together with the
other tests and removed gconstpointer parameter.
(testFaviconDatabase): Created to call all tests in the proper
order.
(beforeAll): Changed to call only testFaviconDatabase instead of
the separate tests.

Tools:

  • Scripts/run-gtk-tests:

(TestRunner): Unskipped TestWebKitFaviconDatabase tests.

1:52 AM Changeset in webkit [152411] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK] fast/text/font-kerning.html fails
https://bugs.webkit.org/show_bug.cgi?id=76048

Patch by Denis Nomiyama <d.nomiyama@samsung.com> on 2013-07-05
Reviewed by Martin Robinson.

Added kerning to the list of features for hb_shade() according to FontDescription::kerning().
Removed font-kerning.html from gtk/TestExpectations, which was failing before this fix.

Source/WebCore:

  • platform/graphics/harfbuzz/HarfBuzzFace.cpp:

(WebCore):

  • platform/graphics/harfbuzz/HarfBuzzFace.h:

(HarfBuzzFace):

  • platform/graphics/harfbuzz/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::setFontFeatures):

LayoutTests:

  • platform/gtk/TestExpectations:
1:41 AM Changeset in webkit [152410] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

TestWebKitFaviconDatabase/clear-database is not testing things properly
https://bugs.webkit.org/show_bug.cgi?id=118404

Patch by Xabier Rodriguez Calvar <calvaris@igalia.com> on 2013-07-05
Reviewed by Carlos Garcia Campos.

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

(testClearDatabase): Check for an existing icon that can make the
test fail if clear database is not working.

12:36 AM Changeset in webkit [152409] by Christophe Dumez
  • 2 edits in trunk/Source/WebCore

Build fix GTK after r152404.
https://bugs.webkit.org/show_bug.cgi?id=118407

Patch by Gwang Yoon Hwang <ryumiel@company100.net> on 2013-07-05
Reviewed by Christophe Dumez.

  • GNUmakefile.list.am:

Jul 4, 2013:

11:53 PM Changeset in webkit [152408] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL] DumpRenderTree doesn't run if "opengl_x11" engine is not available
https://bugs.webkit.org/show_bug.cgi?id=118370

Patch by Viatcheslav Ostapenko <sl.ostapenko@samsung.com> on 2013-07-04
Reviewed by Christophe Dumez.

Add fallback to software X11 engine if opengl_x11 engine creation fails.

  • DumpRenderTree/efl/DumpRenderTree.cpp:

(initEcoreEvas):

2:17 PM Changeset in webkit [152407] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Paint the page background if we haven't received our first update
https://bugs.webkit.org/show_bug.cgi?id=118402
<rdar://problem/13893308>

Reviewed by Simon Fraser.

Make sure that we always paint something when we haven't received our first update from the web process.

  • UIProcess/API/mac/WKView.mm:

(-[WKView drawRect:]):

  • UIProcess/DrawingAreaProxyImpl.h:

(WebKit::DrawingAreaProxyImpl::hasReceivedFirstUpdate):

1:28 PM Changeset in webkit [152406] by fpizlo@apple.com
  • 2 edits in branches/dfgFourthTier/Source/JavaScriptCore

Unreviewed, add a helpful comment for why DCE is needed in the FTL.

I believe I've now twice down the experiment of disabling DCE in the FTL,
only to realize that this can't work, and that DCE is needed. I'd kind of
like to not make that mistake again.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

12:53 PM Changeset in webkit [152405] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/mac

Add a method to get unreachable URL from WebFrame.
https://bugs.webkit.org/show_bug.cgi?id=118399

Normally we could use [[WebFrame dataSource] unreachableURL] to get the failed URL. However, if the frame has not
loaded (FrameLoader::frameHasLoaded() is false), we will get a nil dataSource and we won't be able to get unreachableURL.
We can add a method to always return the unreachableURL regardless if the frame has loaded or not.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2013-07-04
Reviewed by Dan Bernstein.

  • WebView/WebFrame.mm:

(-[WebFrame _unreachableURL]):

  • WebView/WebFramePrivate.h:
11:48 AM Changeset in webkit [152404] by Christophe Dumez
  • 16 edits
    2 deletes in trunk

Have SVGTextContentElement inherit SVGGraphicsElement
https://bugs.webkit.org/show_bug.cgi?id=118351

Reviewed by Dirk Schulze.

Source/WebCore:

Have SVGTextContentElement inherit SVGGraphicsElement instead of
SVGStyledElement in order to match the latest SVG2 specification:
https://svgwg.org/svg2-draft/text.html#InterfaceSVGTextContentElement

This patch also removes the SVGTransformable and SVGLocatable IDL
interfaces as they are no longer needed (were merged into
SVGGraphicsElement in the latest specification).

This is one step towards getting rid of multiple inheritance in
SVG, and complying with the latest SVG2 specification.

No new tests, covered by existing tests.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetGnuVTableOffsetForType):

  • bindings/scripts/CodeGeneratorObjC.pm:
  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::hasValidAttributeType):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::getBoundingBox):

  • svg/SVGLocatable.idl: Removed.
  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::isSupportedAttribute):
(WebCore::SVGTextContentElement::isPresentationAttribute):
(WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
(WebCore::SVGTextContentElement::parseAttribute):
(WebCore::SVGTextContentElement::svgAttributeChanged):

  • svg/SVGTextContentElement.h:
  • svg/SVGTextContentElement.idl:
  • svg/SVGTextElement.cpp:

(WebCore::SVGTextElement::SVGTextElement):
(WebCore::SVGTextElement::animatedLocalTransform):

  • svg/SVGTextElement.h:
  • svg/SVGTextElement.idl:
  • svg/SVGTransformable.idl: Removed.

LayoutTests:

Fix conversion to absolute (user agent) coordinates in the svg/text
tests to use SVGGraphicsElement::getScreenCTM() instead of
SVGGraphicsElement::getTransformToElement(). The previous code was
working until now due to a bug in getTransformToElement(), which
was not taking into consideration the CTM of the SVGTextElement (as
it was not recognized as a "locatable" element). Now that
SVGTextElement inherits from SVGGraphicsElement, it is properly
recognized as a "locatable" element by getTransformToElement().

  • svg/text/resources/SelectionTestCase.js:

(toAbsoluteCoordinates):

  • svg/text/selection-doubleclick.svg:
11:42 AM Changeset in webkit [152403] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash when createPluginInternal ends up destroying the plug-in
https://bugs.webkit.org/show_bug.cgi?id=118397
<rdar://problem/14155051>

Reviewed by Simon Fraser.

Keep the WebProcessConnection object alive while calling createPluginInternal and handle
the IPC connection going away.

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::createPluginAsynchronously):

11:33 AM WebKitGTK/StartHacking edited by jfernandez@igalia.com
(diff)
11:00 AM Changeset in webkit [152402] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

Remove PageThrottler::m_activeThrottleBlockers
https://bugs.webkit.org/show_bug.cgi?id=118375

Reviewed by Mark Rowe.

This is simply m_activityTokens.size().

Also, fold preventThrottling into addActivityToken & allowThrottling into removeActivityToken
(these should no longer be called directly, and should not be public).

  • page/PageThrottler.cpp:

(WebCore::PageThrottler::PageThrottler):

  • removed m_activeThrottleBlockers

(WebCore::PageThrottler::startThrottleHysteresisTimer):

  • m_activeThrottleBlockers -> m_activityTokens.size()

(WebCore::PageThrottler::throttleHysteresisTimerFired):

  • m_activeThrottleBlockers -> m_activityTokens.size()

(WebCore::PageThrottler::addActivityToken):

  • added functionality from preventThrottling

(WebCore::PageThrottler::removeActivityToken):

  • added functionality from allowThrottling
  • page/PageThrottler.h:
    • removed preventThrottling, allowThrottling, and m_activeThrottleBlockers.
8:52 AM WebKitGTK/StartHacking edited by Andres Gomez
Minor correction in documentation section (diff)
8:51 AM Changeset in webkit [152401] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Take document height into account when determining when it is considered visually non-empy
https://bugs.webkit.org/show_bug.cgi?id=118272

Reviewed by Darin Adler.

The current visually non-empy mechanism takes into account only the amount of contents in renderers.
Add a simple layout dependency so that we don't consider page non-empty until the document height
exceed a (low) height threshold (or the load completes).

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

Don't send layout callbacks until we have actually some content.

(WebCore::FrameView::qualifiesAsVisuallyNonEmpty):
(WebCore::FrameView::updateIsVisuallyNonEmpty):

Factor into functions.

  • page/FrameView.h:

(WebCore::FrameView::incrementVisuallyNonEmptyCharacterCount):
(WebCore::FrameView::incrementVisuallyNonEmptyPixelCount):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::RenderEmbeddedObject):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::RenderHTMLCanvas):

The size is not known but the estimate provided here is always bigger than the threshold so
the functionality is unchanged.

8:50 AM WebKitGTK/StartHacking edited by Andres Gomez
Added documentation section. (diff)
8:33 AM Changeset in webkit [152400] by Christophe Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r152399.

Add missing header include for SVGNames.h.

  • svg/SVGImageElement.h:
7:09 AM WebKitGTK/SpeedUpBuild edited by Andres Gomez
Minor typo fix in gold section (diff)
7:07 AM WebKitGTK/SpeedUpBuild edited by Andres Gomez
Minor fix in gold (diff)
7:06 AM WebKitGTK/SpeedUpBuild edited by Andres Gomez
Adding gold section (diff)
7:00 AM WebKitGTK/StartHacking edited by Andres Gomez
Recommending to use the gold linker (diff)
6:58 AM Changeset in webkit [152399] by gyuyoung.kim@samsung.com
  • 4 edits in trunk/Source/WebCore

Change static_cast<SVGImageElement*> with toSVGImageElement
https://bugs.webkit.org/show_bug.cgi?id=118387

Reviewed by Andreas Kling.

As a step to change static_cast with toXXX, static_cast<SVGImageElement*> can
be changed with toSVGImageElement().

Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=153557

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::updateImageViewport):
(WebCore::RenderSVGImage::layout):
(WebCore::RenderSVGImage::paintForeground):

  • svg/SVGImageElement.h:

(WebCore::toSVGImageElement):

  • svg/SVGImageLoader.cpp:

(WebCore::SVGImageLoader::dispatchLoadEvent):

6:18 AM Changeset in webkit [152398] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Leak: Free PangoFontDescription* in RenderThemeGtk3
https://bugs.webkit.org/show_bug.cgi?id=118386

Patch by Brian Holt <brian.holt@samsung.com> on 2013-07-04
Reviewed by Carlos Garcia Campos.

Free PangoFontDescription* allocated by gtk_style_context_get (transfer full).

  • platform/gtk/RenderThemeGtk3.cpp:

(WebCore::spinButtonArrowSize):

5:10 AM Changeset in webkit [152397] by commit-queue@webkit.org
  • 7 edits in trunk

[ATK] Leak: AtkAttributeSet* should be freed
https://bugs.webkit.org/show_bug.cgi?id=118307

Patch by Brian Holt <brian.holt@samsung.com> on 2013-07-04
Reviewed by Christophe Dumez.

Source/WebCore:

Use AtkAttributeSet* instead of GSList*.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetObjectLocale):

Tools:

Fixed memory leaks for AtkAttributeSet by calling
atk_attribute_set_free().

  • DumpRenderTree/atk/AccessibilityControllerAtk.cpp:

(AccessibilityController::childElementById):

  • DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:

(getAtkAttributeSetAsString):
(AccessibilityUIElement::allAttributes):
(AccessibilityUIElement::stringAttributeValue):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:

(WTR::childElementById):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::getAtkAttributeSetAsString):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringAttributeValue):

3:03 AM Changeset in webkit [152396] by mario@webkit.org
  • 4 edits in trunk/Source

[ATK] Do not expose '\n' for wrapped lines with ATK_TEXT_BOUNDARY_CHAR
https://bugs.webkit.org/show_bug.cgi?id=118359

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Do not expose a '\n' character for every visual line break.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(webkitAccessibleTextGetChar): Removed wrong code.

Source/WebKit/gtk:

Added new unit test to make sure we exposed line breaks properly.

  • tests/testatk.c:

(testWebkitAtkGetTextAtOffsetWithWrappedLines): New unit test.
(main): Added new test to the test suite.

2:12 AM Changeset in webkit [152395] by Patrick Gansterer
  • 2 edits
    1 delete in trunk/Source/JavaScriptCore

[CMake] Add generation of JITStubs for x86_64 MSVC
https://bugs.webkit.org/show_bug.cgi?id=116666

Reviewed by Laszlo Gombos.

Also move the generation for ARM CPU into the CMakeLists.txt,
since it's compiler specific and not dedicated to Windows CE.

  • CMakeLists.txt:
  • PlatformWinCE.cmake: Removed.
2:05 AM Changeset in webkit [152394] by commit-queue@webkit.org
  • 2 edits
    2 deletes in trunk/LayoutTests

[EFL] Gardening. Unskip tests related with editing
https://bugs.webkit.org/show_bug.cgi?id=118379

Unreviewed gardening.

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2013-07-04

  • platform/efl-wk2/TestExpectations: Unskip editing/selection/doubleclick-beside-cr-span.html and editing/selection/doubleclick-whitespace.html, which are passed after r150289
  • platform/efl/editing/style/5065910-expected.txt: Removed (wrong expected result).
  • platform/efl/editing/style/5065910-expected.png: Removed (wrong expected result).
1:52 AM Changeset in webkit [152393] by Patrick Gansterer
  • 2 edits in trunk/Source/JavaScriptCore

[CMake] Add STATICALLY_LINKED_WITH_WTF to JavaScriptCore project
https://bugs.webkit.org/show_bug.cgi?id=118120

Reviewed by Gyuyoung Kim.

Since WTF is a static library linked to JavaScriptCore on all CMake ports
we need to define STATICALLY_LINKED_WITH_WTF for all of them.
This makes only a difference for Windows, since WTF_EXPORT and WTF_IMPORT
are the same on all other platforms.

  • CMakeLists.txt:
1:08 AM Changeset in webkit [152392] by Patrick Gansterer
  • 3 edits
    1 delete in trunk/Source/WebCore

Port FileSystemWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=117935

Reviewed by Brent Fulgham.

Add #if !OS(WINCE) around a few lines of the code, so it can be used by the WinCE port too.

  • PlatformWinCE.cmake:
  • platform/win/FileSystemWin.cpp:

(WebCore::storageDirectory):

  • platform/wince/FileSystemWinCE.cpp: Removed.
12:44 AM Changeset in webkit [152391] by kbalazs@webkit.org
  • 3 edits
    2 adds in trunk

[GStreamer] support preload="metadata"
https://bugs.webkit.org/show_bug.cgi?id=116817

Reviewed by Eric Carlson.

Source/WebCore:

Add appropriate behavior for preload="metadata". Delay enabling download buffering
until playback is started in this case. This behavior fits with the standard quite
well and this is the most exact match we can get (at least without adding too much
extra complexity). What matters mostly is that we can avoid loading the media
before playback but we have the first frame and the metadata.

Test: media/video-load-preload-metadata.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay): Set |m_preload| to |Auto|
so we will start download buffering if we did not start it yet.
(WebCore::MediaPlayerPrivateGStreamer::play): Ditto.
(MediaPlayerPrivateGStreamer::setDownloadBuffering): Only start download
buffering if |m_preload == Auto|. Also make sure we don't clear the download
flag once we started downloading because it would result in not well defined
behavior and it does not really makes sense.
(MediaPlayerPrivateGStreamer::setPreload): Set download buffering accordingly.

LayoutTests:

  • media/video-load-preload-metadata.html: Added.
Note: See TracTimeline for information about the timeline view.