Timeline



Oct 6, 2014:

11:58 PM Changeset in webkit [174388] by Darin Adler
  • 9 edits
    1 add in trunk/Source

Make StringView check the lifetime of the StringImpl it's created from
https://bugs.webkit.org/show_bug.cgi?id=137202

Reviewed by Anders Carlsson.

Source/WebCore:

  • platform/graphics/TextRun.cpp: Update since TextRun's definition now

uses a StringView.

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj: Added StringView.cpp.
  • WTF.vcxproj/WTF.vcxproj.filters: Added StringView.cpp.
  • WTF.xcodeproj/project.pbxproj: Added StringView.cpp.
  • wtf/CMakeLists.txt: Added StringView.cpp.
  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::~StringImpl): Call StringView::invalidate.

  • wtf/text/StringView.cpp: Added.

(WTF::underlyingStrings): Returns map from StringImpl to the underlying
string object used by StringView to track validity.
(WTF::StringView::invalidate): Mark the underlying string object invalid,
and remove it from the map, so any future StringImpl will get a new one,
even if it has the same pointer.
(WTF::StringView::underlyingStringIsValid): Return true only if the
underlying string is still valid.
(WTF::StringView::setUnderlyingString): Create and manage reference counts
of underlying string objects as needed.

  • wtf/text/StringView.h: Moved function bodies out of the class definition,

so we can now read a clean class definition to see the class design and what
functions it offers.
(WTF::StringView::StringView): Added a comment to the default constructor.
Also added copy and move constructors so they can call setUnderlyingString
and assert the underlying string is valid as needed, replacing the
compiler-generated ones.
(WTF::StringView::~StringView): Added a call to setUnderlyingString.
(WTF::StringView::operator=): Added these assignment operators with the same
job as the constructors above.
(WTF::StringView::initialize): Added a comment.
(WTF::StringView::characters8): Added an assertion that the underlying
string is valid.
(WTF::StringView::characters16): Ditto.
(WTF::StringView::substring): Added code to propagate the underlying string
from the original string to the substring.
(WTF::StringView::invalidate): Inline empty version of this function for
non-debug builds.
(WTF::StringView::underlyingStringIsValid): Ditto.
(WTF::StringView::setUnderlyingString): Ditto.

11:54 PM Changeset in webkit [174387] by vivek.vg@samsung.com
  • 2 edits in trunk/Source/WebKit2

Remove unused warning in WebPageOverlay
https://bugs.webkit.org/show_bug.cgi?id=137444

Reviewed by Darin Adler.

Commenting the unused parameter to supress the warning.

  • WebProcess/WebPage/WebPageOverlay.h:

(WebKit::WebPageOverlay::Client::copyAccessibilityAttributeStringValueForPoint):
(WebKit::WebPageOverlay::Client::copyAccessibilityAttributeBoolValueForPoint):

11:19 PM Changeset in webkit [174386] by aestes@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Objective-C objects must be fully defined when used in a WTF::Vector
https://bugs.webkit.org/show_bug.cgi?id=137479

Reviewed by Mark Rowe.

When compiling an Objective-C++ file under ARC, @class types are considered non-trivially destructable, so
Vector needs to see their definition in order to call their destructor.

See <http://clang.llvm.org/docs/AutomaticReferenceCounting.html#ownership-qualified-fields-of-structs-and-unions> for details.

  • API/ObjcRuntimeExtras.h: Imported <objc/Protocol.h>.
10:26 PM Changeset in webkit [174385] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Make webkit-patch find-users useful
https://bugs.webkit.org/show_bug.cgi?id=137475

Reviewed by Alexey Proskuryakov.

Make find-users use the CommitterList instead of accessing Bugzilla.

This essentially exposes the same functionality as webkitbot's whois command.

  • Scripts/webkitpy/tool/commands/findusers.py:

(FindUsers.execute):

9:42 PM Changeset in webkit [174384] by adachan@apple.com
  • 8 edits in trunk/Source/WebKit2

Call WKPageUIClient::isPlayingAudioDidChange() whenever audio starts/stops playing on a page.
https://bugs.webkit.org/show_bug.cgi?id=137050

Reviewed by Anders Carlsson.

Implement WebChromeClient::isPlayingAudioDidChange() which sends the new isPlayingAudio state
over to the UI process. WebPageProxy caches the isPlayingAudio state, and when that changes,
it calls WKPageUIClient::isPlayingAudioDidChange().

  • UIProcess/API/APIUIClient.h:

(API::UIClient::isPlayingAudioDidChange):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::isPlayingAudioDidChange):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isPlayingAudio):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::isPlayingAudioDidChange):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
8:32 PM Changeset in webkit [174383] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Fix remaining misuses of abs() and fabsf()
https://bugs.webkit.org/show_bug.cgi?id=130947

Reviewed by Simon Fraser.

Fixed issues found when compiling with -Wabsolute-value.

  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimatorIOS::handleTouchEvent): Called abs() instead of fabsf for integral types. Explicitly
cast the divisor to float in the call to atanf().

  • platform/ios/wak/WKView.mm:

(_WKViewAutoresizeCoord): Explicitly cast origMarginsTotal to an int before calling abs(). Added a FIXME
indicating the strange behavior when origMarginsTotal is in the range (0, 1) (as pointed out by Darin).

8:28 PM Changeset in webkit [174382] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

CanvasPattern always has an internal WebCore::Pattern.
<https://webkit.org/b/137456>

Use more Ref & PassRef for CanvasPattern and Pattern.

Removed some impossible null checks in GraphicsContext that
got exposed as compile errors with these changes.

Reviewed by Anders Carlsson.

  • html/canvas/CanvasPattern.h:

(WebCore::CanvasPattern::pattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Pattern.cpp:

(WebCore::Pattern::create):

  • platform/graphics/Pattern.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • rendering/svg/RenderSVGPath.cpp:

(WebCore::useStrokeStyleToFill):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::applyResource):

8:10 PM Changeset in webkit [174381] by Brent Fulgham
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Use of 1-bit Enum type behaves improperly
https://bugs.webkit.org/show_bug.cgi?id=137471
<rdar://problem/18559172>

Reviewed by Mark Lam.

Represent 1-bit enum element as 'unsigned', as we have done elsewhere
in WebKit to avoid problems when building with MSVC.

  • debugger/Debugger.h:
7:33 PM Changeset in webkit [174380] by gyuyoung.kim@samsung.com
  • 8 edits in trunk/Source

[EFL] Restore previous scroll position using restoreViewState()
https://bugs.webkit.org/show_bug.cgi?id=136999

Reviewed by Benjamin Poulain.

There are duplicating code paths to restore previous scroll position and scale factor in
HistoryController::restoreScrollPositionAndViewState. EFL port has processed the two code paths.
It causes wrong rendering update or scroll position change when previous page's scroll position
is restored. Thus EFL port begins to use restoreViewState() to restore scroll position and scale factor.
This patch is first step to support it.

Additionally EFL port has supported to use ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate()
since r173785. So EFL port can use the requestScrollPositionUpdate() to restore scroll position on previous page
instead of delegatedScrollRequested(). However setScrollPosition() can't be used there for now, because iOS port
should call it when delegatesScrolling is disabled. On the other hand, EFL port supports it only when delegatesScrolling
is enabled.

Source/WebCore:

Test covered by WKViewRestoreZoomAndScrollBackForward API test.

  • loader/HistoryController.cpp:

(WebCore::HistoryController::restoreScrollPositionAndViewState):
EFL port only calls restoreViewState() to restore previous page's view state.

  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::saveViewStateToItem):
Move iOS saveViewStateToItem() to common place in order to share iOS implementation with EFL port.

(WebKit::WebFrameLoaderClient::restoreViewState):
EFL begins to share restoreViewState() of iOS, thus move iOS restoreViewState() to common place.

  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:

(WebKit::WebFrameLoaderClient::saveViewStateToItem): Deleted.
(WebKit::WebFrameLoaderClient::restoreViewState): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/efl/WebPageEfl.cpp:

(WebKit::WebPage::restorePageState):
Call scalePage() to update previous scaleFactor and scrollPosition of historyItem both to WebProcess and UIProcess.

(WebKit::WebPage::savePageState):

6:55 PM Changeset in webkit [174379] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: Highlighted selectors in Rules sidebar break with selectors that contain nested selector lists
https://bugs.webkit.org/show_bug.cgi?id=137378

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-10-06
Reviewed by Joseph Pecoraro.

We should not update the parser's selectorRange when matching a nested selector list.

To implement this with low risk of unbalanced start+end and good error recovery,
I have wrapped the parsing of selector_list between a start/end function at the grammar
level. Whenever the parser enter a nested selector list, m_nestedSelectorLevel goes up
by one. Any time the parsing is currently in a nested selector list, we never update
the selector ranges.

  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::markSelectorStart):
(WebCore::CSSParser::markSelectorEnd):

  • css/CSSParser.h:

(WebCore::CSSParser::startNestedSelectorList):
(WebCore::CSSParser::endNestedSelectorList):

6:16 PM Changeset in webkit [174378] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

[Windows] Build fix for EWS bots.

  • WebCore.vcxproj/WebCoreGenerated.make: Make sure we always regenerate WebCore derived sources.
6:15 PM Changeset in webkit [174377] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Win] DateMath's calculateUTFOffset does not account for DST.
https://bugs.webkit.org/show_bug.cgi?id=137458
<rdar://problem/18559172>

Reviewed by Geoffrey Garen.

Check the return value of GetTimeZoneInformation and use the
proper bias against UTC (depending on whether we are in daylight
savings time, or standard time).

Also, handle possible error cases in the FileTimeToSystemTime
and SystemTimeToTzSpecificLocalTime, rather than using potentially
uninitialized values.

  • wtf/DateMath.cpp:

(WTF::calculateUTCOffset): Use proper daylight-savings-time state.
(WTF::calculateDSTOffset): Avoid uninitialized data due to failing
API calls.

6:10 PM Changeset in webkit [174376] by Chris Fleizach
  • 2 edits in trunk/Tools

AX: iOS8: Crash at -[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]
https://bugs.webkit.org/show_bug.cgi?id=137289

Unreviewed build fix.

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::getChildrenWithRange):

5:26 PM Changeset in webkit [174375] by Chris Dumez
  • 97 edits in trunk/Source

Add is<>() / downcast<>() support for RenderObject subclasses
https://bugs.webkit.org/show_bug.cgi?id=137424

Reviewed by Benjamin Poulain.

Source/WebCore:

Add is<>() / downcast<>() support for RenderObject subclasses, and
get rid of IsRendererOfType traits struct as we can now rely on the
TypeCastsTraits instead.

toRender*() is still supported for most render objects because I did
not want to remove all usages in this patch, to keep the size small.
For now, only the MathML render objects were ported over to using
is<>() / downcast<>(). Other render objects will be taken care of in
follow-up patches and I will drop support for toRender*()
incrementally.

No new tests, no behavior change.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isMathFenceOperator):
(WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
(WebCore::AccessibilityRenderObject::mathLineThickness):

  • dom/make_names.pl:

(printTypeHelpers):

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged):

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::didAttachRenderers):
(WebCore::MathMLTextElement::childrenChanged):

  • rendering/RenderAncestorIterator.h:

(WebCore::lineageOfType):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderButton.h:
  • rendering/RenderCombineText.h:
  • rendering/RenderCounter.h:
  • rendering/RenderDetailsMarker.h:
  • rendering/RenderElement.h:
  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderFieldset.h:
  • rendering/RenderFileUploadControl.h:
  • rendering/RenderFlexibleBox.h:
  • rendering/RenderFlowThread.h:
  • rendering/RenderFrame.h:
  • rendering/RenderFrameSet.h:
  • rendering/RenderFullScreen.h:
  • rendering/RenderGrid.h:
  • rendering/RenderHTMLCanvas.h:
  • rendering/RenderIFrame.h:
  • rendering/RenderImage.h:
  • rendering/RenderInline.h:
  • rendering/RenderIterator.h:

(WebCore::isRendererOfType):
(WebCore::RenderTraversal::firstChild):
(WebCore::RenderTraversal::lastChild):
(WebCore::RenderTraversal::nextSibling):
(WebCore::RenderTraversal::previousSibling):
(WebCore::RenderTraversal::findAncestorOfType):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderLineBreak.h:
  • rendering/RenderListBox.h:
  • rendering/RenderListItem.h:
  • rendering/RenderListMarker.h:
  • rendering/RenderMedia.h:
  • rendering/RenderMenuList.h:
  • rendering/RenderMeter.h:
  • rendering/RenderMultiColumnFlowThread.h:
  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderNamedFlowFragment.h:
  • rendering/RenderNamedFlowThread.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject>): Deleted.

  • rendering/RenderProgress.h:
  • rendering/RenderQuote.h:
  • rendering/RenderRegion.h:
  • rendering/RenderReplaced.h:
  • rendering/RenderRubyRun.h:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderSearchField.h:
  • rendering/RenderSlider.h:
  • rendering/RenderSnapshottedPlugIn.h:
  • rendering/RenderTable.h:
  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.h:
  • rendering/RenderText.h:
  • rendering/RenderTextControl.h:
  • rendering/RenderTextControlMultiLine.h:
  • rendering/RenderTextControlSingleLine.h:
  • rendering/RenderTextFragment.h:
  • rendering/RenderVideo.h:
  • rendering/RenderView.h:
  • rendering/RenderWidget.h:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::unembellishedOperator):

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLRadicalOperator.h:
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::baseWrapper):
(WebCore::RenderMathMLRoot::radicalWrapper):
(WebCore::RenderMathMLRoot::indexWrapper):
(WebCore::RenderMathMLRoot::radicalOperator):
(WebCore::RenderMathMLRootWrapper::removeChild):

  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::updateOperatorProperties):
(WebCore::RenderMathMLRow::layout):

  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::addChildInternal):
(WebCore::RenderMathMLScripts::removeChildInternal):
(WebCore::RenderMathMLScripts::unembellishedOperator):
(WebCore::RenderMathMLScripts::layout):
(WebCore::RenderMathMLScriptsWrapper::addChildInternal):
(WebCore::RenderMathMLScriptsWrapper::addChild):
(WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
(WebCore::RenderMathMLScriptsWrapper::removeChild):

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLSquareRoot.h:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::unembellishedOperator):

  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGResourceContainer.h:
  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGText.h:
  • rendering/svg/RenderSVGTextPath.h:
  • rendering/svg/RenderSVGViewportContainer.h:

Source/WTF:

Handle correctly calling TypeCastTraits<ExpectedType, ArgType>::isOfType(ArgType&)
with ExpectedType being a base class of ArgType (or the same as ArgType). The
previous template specialization was only meant to support the case where
ExpectedType is the same as ArgType but even that wasn't working as the compiler
would complain about ambiguous partial specializations. Since this is needed by
RenderTraversal functions, this patch adds an extra isBaseType template parameter
to TypeCastTraits to resolve the ambiguity and relies on std::is_base_of for the
detection.

  • wtf/TypeCasts.h:
5:15 PM Changeset in webkit [174374] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for ScrollingTreeNode subclasses
https://bugs.webkit.org/show_bug.cgi?id=137451

Reviewed by Tim Horton.

Use is<>() / downcast<>() for ScrollingTreeNode subclasses.

No new tests, no behavior change.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeNode.h:
  • page/scrolling/ScrollingTreeOverflowScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFixedNode.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.h:
  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):

4:54 PM Changeset in webkit [174373] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review comment on r174297.
https://bugs.webkit.org/show_bug.cgi?id=137355

Unreviewed.

  • rendering/RenderText.cpp:

(WebCore::RenderText::stringView):

3:44 PM Changeset in webkit [174372] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed merge fix for r174279.
https://bugs.webkit.org/show_bug.cgi?id=137097

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::convertSVGToOTFFont):

3:17 PM Changeset in webkit [174371] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Fixed compiler warnings on Windows build.
<https://webkit.org/b/135205>

Reviewed by Geoffrey Garen.

Benchmarking with jsc shows that perf is neutral with this change.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::call):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • dfg/DFGArgumentPosition.h:

(JSC::DFG::ArgumentPosition::mergeShouldNeverUnbox):
(JSC::DFG::ArgumentPosition::mergeArgumentUnboxingAwareness):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::makeWord):

  • dfg/DFGNodeFlags.h:

(JSC::DFG::nodeMayOverflow):
(JSC::DFG::nodeMayNegZero):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGVariableAccessData.cpp:

(JSC::DFG::VariableAccessData::mergeIsCaptured):

  • dfg/DFGVariableAccessData.h:

(JSC::DFG::VariableAccessData::mergeIsProfitableToUnbox):
(JSC::DFG::VariableAccessData::mergeStructureCheckHoistingFailed):
(JSC::DFG::VariableAccessData::mergeCheckArrayHoistingFailed):
(JSC::DFG::VariableAccessData::mergeIsArgumentsAlias):
(JSC::DFG::VariableAccessData::mergeIsLoadedFrom):

  • runtime/JSDataViewPrototype.cpp:

(JSC::getData):

3:07 PM Changeset in webkit [174370] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (Simple Line Layout): Inline block baselines computed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=137461

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/inline-block/simple-line-layout.html

  • rendering/SimpleLineLayoutFunctions.h:

(WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
(WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
Fix the baseline computation functions in simple line layout to
use lineCount rather than runCount.

LayoutTests:

  • fast/inline-block/simple-line-layout-expected.html: Added.
  • fast/inline-block/simple-line-layout.html: Added.
3:07 PM Changeset in webkit [174369] by Chris Dumez
  • 13 edits in trunk/Source/WebKit2

[Mac] We are spending too much time serializing ProtectionSpace objects
https://bugs.webkit.org/show_bug.cgi?id=137367

Reviewed by Dan Bernstein.

When profiling the load of nytimes.com, I noticed that we were spending
a lot of CPU time serializing ProtectionSpace objects (in particular
the NSURLProtectionSpace platform data):

  • 5.6% of CPU time for Network Process
  • 2.5% of CPU time for WebProcess

Serializing an NSURLProtectionSpace seems to be costly due to server
trust verification. We do this for every sub-resource load over HTTPS
due to the canAuthenticateAgainstProtectionSpace() callback for server
trust validation, from the NetworkProcess to the WebProcess and then to
the UIProcess.

This patch adds a WKContextSetCanHandleHTTPSServerTrustEvaluation(bool)
WK2 private API that the client can call to indicate that it cannot
handle HTTPS server trust evaluation and that it is thus unnecessary to
call the canAuthenticateAgainstProtectionSpace() callback for such
evaluations. This reduces the amount of IPC between the process and
thus the number of times we have to serialize the ProtectionSpace.

In the case of the nytimes.com load, there is no longer any
ProtectionSpace serialization happening as
canAuthenticateAgainstProtectionSpace() was only called for HTTPS
server trust evaluation.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation):

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):

  • Shared/Network/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):

  • Shared/Network/NetworkProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetCanHandleHTTPSServerTrustEvaluation):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::WebContext):
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::setCanHandleHTTPSServerTrustEvaluation):

  • UIProcess/WebContext.h:
2:53 PM Changeset in webkit [174368] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Win] Unreviewed 64-bit build fix after r174315.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Update exports for

64-bit symbol names.

2:52 PM Changeset in webkit [174367] by Simon Fraser
  • 3 edits in trunk/Source/WebKit2

Don't attempt to paint into zero-sized backing store
https://bugs.webkit.org/show_bug.cgi?id=137465

Reviewed by Tim Horton.

Page scale could cause the backing store for a small composited element to become empty,
in which case we'd try to allocate, and paint into a graphics context with no surface
behind it.

Fix by bailing from RemoteLayerBackingStore::display() when checking the backing store
size after accounting for scale.

  • Shared/mac/RemoteLayerBackingStore.h:
  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::backingStoreSize):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::display):

2:37 PM Changeset in webkit [174366] by ap@apple.com
  • 6 edits
    3 moves in trunk/Tools

build.webkit.org/dashboard: Add commit queue
https://bugs.webkit.org/show_bug.cgi?id=137462

Reviewed by Tim Horton.

Generalizes EWS into "bubble queue", which also includes commit queue and style queue.
Style queue is still invisible, as it doesn't have an associated platform, and also
we never have problems with it anyway, so it's not worth watching.

The UI now allows for adding more bots to the Other column (such as leaks bot).
To make that actually happen, we'll need to refactor QueueView, allowing for multiple
sources of data in a cell.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueue.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js.

(BubbleQueue):
(BubbleQueue.prototype.get statusPageURL):
(BubbleQueue.prototype.update):
(BubbleQueue.prototype.loadDetailedStatus):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js.

(BubbleQueueServer):
(BubbleQueueServer.prototype.jsonQueueLengthURL):
(BubbleQueueServer.prototype.jsonQueueStatusURL):
(BubbleQueueServer.prototype.queueStatusURL):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js.

(BubbleQueueView):
(BubbleQueueView.prototype.update.appendQueue):
(BubbleQueueView.prototype.update):
(BubbleQueueView.prototype._addQueueHeadingToPopover):
(BubbleQueueView.prototype._popoverContentForBubbleQueue):
(BubbleQueueView.prototype._presentPopoverForBubbleQueue):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:

(.bubble-server-popover .popover-queue-heading .queue-charts-link):
(.bubble-server-popover .latest-status-no-link):
(.bubble-server-popover .bot-status-description):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:

(buildAggregateTable):
(buildQueuesTable):
Removed dysfunctional support for EWS for now. It will be different.

2:36 PM Changeset in webkit [174365] by adachan@apple.com
  • 3 edits in trunk/Source/WebCore

Add ChromeClient::isPlayingAudioDidChange().
https://bugs.webkit.org/show_bug.cgi?id=137220

Reviewed by Jer Noble.

This is called when the Page's m_isPlayingAudio changes.

No new tests, no behavior change.

  • page/ChromeClient.h:

(WebCore::ChromeClient::isPlayingAudioDidChange):

  • page/Page.cpp:

(WebCore::Page::updateIsPlayingAudio):

1:58 PM Changeset in webkit [174364] by ap@apple.com
  • 3 edits in trunk/Tools

One more case of incorrect comparison in recordpatchevent.py
https://bugs.webkit.org/show_bug.cgi?id=137459

Reviewed by Tim Horton.

  • QueueStatusServer/app.yaml:
  • QueueStatusServer/loggers/recordpatchevent.py:

(RecordPatchEvent.started):

1:45 PM Changeset in webkit [174363] by benjamin@webkit.org
  • 17 edits in trunk

Unreviewed, rolling out r174336.

Mozilla's Dromaeo still relies on the deprecated function.

Reverted changeset:

"Add a deprecation warning for Element.webkitMatchesSelector"
https://bugs.webkit.org/show_bug.cgi?id=137417
http://trac.webkit.org/changeset/174336

1:42 PM Changeset in webkit [174362] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove incorrect assertion.

1:27 PM Changeset in webkit [174361] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix cloop build.

1:18 PM Changeset in webkit [174360] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix.
<https://webkit.org/b/137279>

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

12:29 PM Changeset in webkit [174359] by oliver@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

REGRESSION(r174226): [JSC] Crash when running the perf test Speedometer/Full.html
https://bugs.webkit.org/show_bug.cgi?id=137404

Reviewed by Michael Saboff.

Update the Arguments object to recognise that it must always have an
environment record if the referenced callee has one, and if such is not
present it should not try to extract one from the callframe, as that
path leads to madness.

Happily this makes some of the other code more sensible, and removes a
bunch of unnecessary and icky logic.

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/Arguments.cpp:

(JSC::Arguments::tearOff):
(JSC::Arguments::didTearOffActivation): Deleted.

  • runtime/Arguments.h:

(JSC::Arguments::argument):
(JSC::Arguments::finishCreation):

12:20 PM Changeset in webkit [174358] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CryptoKey subclasses
https://bugs.webkit.org/show_bug.cgi?id=137436

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for CryptoKey subclasses.

No new tests, no behavior change.

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::addJWKAlgorithmToJSON):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::write):

  • crypto/CryptoKey.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):

  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey):
(WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey):

  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::decrypt):

  • crypto/keys/CryptoKeyAES.h:

(WebCore::isCryptoKeyAES): Deleted.

  • crypto/keys/CryptoKeyHMAC.h:

(WebCore::isCryptoKeyHMAC): Deleted.

  • crypto/keys/CryptoKeyRSA.h:

(WebCore::isCryptoKeyRSA): Deleted.

12:09 PM Changeset in webkit [174357] by ap@apple.com
  • 3 edits in trunk/Tools

webkit-queues PatchLog is incorrect for patches that took less than a second
https://bugs.webkit.org/show_bug.cgi?id=137453

Reviewed by Tim Horton.

  • QueueStatusServer/app.yaml: Updated app version.
  • QueueStatusServer/loggers/recordpatchevent.py: (RecordPatchEvent.stopped):

Don't bail out for patches that took 0 seconds to process (as frequently happens
when a patch is obsolete).

11:57 AM Changeset in webkit [174356] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Some compositing logic cleanup
https://bugs.webkit.org/show_bug.cgi?id=133060

Reviewed by Zalan Bujtas.

Move compositing-related code from RenderLayer::styleChanged() to
RenderLayerCompositor::layerStyleChanged(). Combine various tests
(many clip-related) for changes that require layer rebuilding into
styleChangeRequiresLayerRebuild().

Remove code that calls setBackingNeedsRepaint() after filters change
between being composited or not; I verified that existing "repaint after
style change" code takes care those repaints.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::checkIfDescendantClippingContextNeedsUpdate): Deleted.

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

(WebCore::checkIfDescendantClippingContextNeedsUpdate):
(WebCore::styleChangeRequiresLayerRebuild):
(WebCore::RenderLayerCompositor::layerStyleChanged):

  • rendering/RenderLayerCompositor.h:
11:56 AM Changeset in webkit [174355] by adachan@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build after https://trac.webkit.org/changeset/174353.

  • platform/audio/ios/AudioDestinationIOS.h:
11:39 AM Changeset in webkit [174354] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Build fix.

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

11:22 AM Changeset in webkit [174353] by adachan@apple.com
  • 10 edits in trunk/Source/WebCore

Implement Page::isPlayingAudio().
https://bugs.webkit.org/show_bug.cgi?id=137218

Reviewed by Eric Carlson.

  • Add a hasMediaCharacteristics() method to MediaSession. There are three characteristics:

audible, visual, and legible. MediaSession gets the media characteristics information from
its MediaSessionClient.

  • Add a mediaStateDidChange() method to MediaSessionClient that MediaSession can call when its

state changes.

  • Each Document keeps a set of MediaSessions it contains. When that set changes, or when a MediaSession

changes state, or when its characteristics change, Document::updateIsPlayingAudio() is called. That method
iterates through all its MediaSessions to check if the overall isPlayingAudio state has changed in the Document.

  • Each Page caches its overall isPlayingAudio state. Whenever a Document's isPlayingAudio state changes,

it calls Page::updateIsPlayingAudio() which iterates through its frames' documents to calculate its
overall isPlayingAudio state.

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::Document):
Initialize m_isPlayingAudio.
(WebCore::Document::registerMediaSession):
Add the MediaSession to m_mediaSessions. Call updateIsPlayingAudio().
(WebCore::Document::unregisterMediaSession):
Remove the MediaSession from m_mediaSessions. Call updateIsPlayingAudio().
(WebCore::Document::updateIsPlayingAudio):
Go through all the MediaSessions in this Document and check if any has the Audible characteristic
and is playing. If the overall isPlayingAudio state changes, call Page::updateIsPlayingAudio().

  • dom/Document.h:

(WebCore::Document::isPlayingAudio):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument):
Call Document::registerMediaSession().
(WebCore::HTMLMediaElement::unregisterWithDocument):
Call Document::unregisterMediaSession().
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
Call Document::updateIsPlayingAudio().
(WebCore::HTMLMediaElement::stop):
Call MediaSession::clientWillPausePlayback() so the MediaSession's state can be set back to Paused.
(WebCore::HTMLMediaElement::hasMediaCharacteristics):
Call hasAudio() to check if the HTMLMediaElement has the Audible characteristic. Call hasVideo()
to check if it has the Visual characteristic. Call hasClosedCaptions() to check if it has the
Legible characteristic.
(WebCore::HTMLMediaElement::mediaStateDidChange):
Call Document::updateIsPlayingAudio().

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

(WebCore::Page::Page):
Initialize m_isPlayingAudio.
(WebCore::Page::updateIsPlayingAudio):
Iterate through all its frames' documents to check if any has audio playing. If the overall isPlayingAudio
state has changed, update m_isPlayingAudio.

  • page/Page.h:

(WebCore::Page::isPlayingAudio):

  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::setState):
If the MediaSession's state has changed, call Document::updateIsPlayingAudio().
(WebCore::MediaSession::hasMediaCharacteristics):
Call MediaSessionClient::hasMediaCharacteristics().

  • platform/audio/MediaSession.h:

(WebCore::MediaSessionClient::mediaStateDidChange):

  • platform/audio/mac/AudioDestinationMac.h:

AudioDestination only has the Audible characteristic.

11:09 AM Changeset in webkit [174352] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/mac

Unreviewed build fix after r174333.

Forgot explicit WebCore:: namespace.

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

11:08 AM Changeset in webkit [174351] by Chris Dumez
  • 8 edits in trunk/Source

Use is<>() / downcast<>() for ScrollingTree subclasses
https://bugs.webkit.org/show_bug.cgi?id=137449

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for ScrollingTree subclasses.

Source/WebCore:

No new tests, no behavior change.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/ios/ScrollingTreeIOS.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
(WebCore::ScrollingCoordinatorMac::commitTreeState):

Source/WebKit2:

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage):

11:01 AM Changeset in webkit [174350] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Build fix aftr r174347.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Use correct build

macro to prevent build break when ENCRYPTED_MEDIA_V2 is not enabled.

10:55 AM Changeset in webkit [174349] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Skip remaining failing media tests after adding audio devices to the bots Part 2.

  • platform/win/TestExpectations:
10:55 AM Changeset in webkit [174348] by Brent Fulgham
  • 2 edits in trunk/Source/WTF

[Win] Project file gardening.

  • WTF.vcxproj/WTF.vcxproj.filters: Move HashMethod.h and

FastBitVector.cpp to proper places in hierarchy.

10:53 AM Changeset in webkit [174347] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Project file gardening.

  • WebCore.vcxproj/WebCore.vcxproj.filters: Move EditorWin.cpp and MediatTimeAVFoundation to proper folder locations in project.
10:49 AM Changeset in webkit [174346] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

[Win] Extend AVFoundationCF Media Implementation
https://bugs.webkit.org/show_bug.cgi?id=137409

Reviewed by Eric Carlson.

This code is not yet being built and tested by our system. Appropriate
tests will be activated when we enable the build.

Most of this patch involves correcting some misuse of the AVFoundationCF API.

  1. It is never appropriate in AVCF to pass a null CFErrorRef; instead you must pass a CFErrorRef with error type kCFURLErrorUnknown.
  2. Because of the asynchronous way we handle the request/response, it is possible for AVCF to make two AVCF requests while negotiating the key exchange.
  • platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add

missing declaration.

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::generateKeyRequest): Tighten up scope
of 'underlyingError'.
(WebCore::CDMSessionAVFoundationCF::update): Add call to complete the
loading process.

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::label): Handle null titles CFArray
found during testing.
(WebCore::InbandTextTrackPrivateAVCF::language): Ditto for a null locale.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine): Add support
for the new 'supportsKeySystem' method.
(WebCore::MediaPlayerPrivateAVFoundationCF::createContextVideoRenderer): Add
assertion for mainThread.
(WebCore::MediaPlayerPrivateAVFoundationCF::destroyContextVideoRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::createVideoLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayerItem): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::platformLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::platformSetVisible): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::paint): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsKeySystem): Added.
(WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): Add assertion that this
is being called on the main thread.
(WebCore::MediaPlayerPrivateAVFoundationCF::processMediaSelectionOptions): Handle
the allows empty media selection properly based on test behavior.
(WebCore::AVFWrapper::AVFWrapper): Initialize resource loader callback structure
when building with AVFOUNDATION_LOADER_DELEGATE.
(WebCore::AVFWrapper::createAssetForURL): Use AVFWrapper's loader callback struct,
rather than passing the address of a temporary value.
(WebCore::AVFWrapper::processNotification): Stop using the deprecated
'dispatch_get_current_queue' function.
(WebCore::AVFWrapper::processCue): Ditto.
(WebCore::AVFWrapper::legibleOutputCallback): Ditto.
(WebCore::AVFWrapper::processShouldWaitForLoadingOfResource): Pass a valid CFError
object; nullptr is not allowed as an argument to the "...FinishedLoadingWithError"
method.
(WebCore::AVFWrapper::shouldWaitForLoadingOfResource): Add support for multiple
in-flight requests.
(WebCore::AVFWrapper::platformLayer): Assert we are on the main thread.
(WebCore::AVFWrapper::setRequestForKey): Add support for multiple in-flight requests.
(WebCore::AVFWrapper::takeRequestForKeyURI): Ditto.
(WebCore::LayerClient::platformCALayerLayoutSublayersOfLayer): Ditto.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: Make sure we pass

valid CFError objects, rather than nullptr.

9:39 AM Changeset in webkit [174345] by Chris Fleizach
  • 3 edits in trunk/Source/WebCore

AX: Performance: Certain Web site causes Safari to hang completely while entering form data
https://bugs.webkit.org/show_bug.cgi?id=137420

Reviewed by Mario Sanchez Prada.

If a website has multiple nested tables that are not "accessibility" tables, the performance of accessibility slows to a crawl because:

1) We are re-computing accessibilityIsIgnored many times.

As a solution, we can enable the isIgnoredCache when updating children.

2) When asking if an object isTableCell, we'd go up the parent chain, asking each of those parents the same question, which exploded into calling this many times.

As a solution, I've changed our determination of isTableCell to instead check if the parent is an accessibiltyTable which should be much faster.

No new functionality. Existing tests cover changes.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::updateChildrenIfNecessary):
(WebCore::AccessibilityObject::accessibilityIsIgnored):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentTable):
(WebCore::AccessibilityTableCell::isTableCell):

9:25 AM Changeset in webkit [174344] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Unreviewed, touch testing/Internals.idl to try to fix Windows EWS after r174315.

  • testing/Internals.idl: Remove unnecessary whitespaces.
7:34 AM Changeset in webkit [174343] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

EWS bubble hover shows wrong timestamps
https://bugs.webkit.org/show_bug.cgi?id=137252

Reviewed by Alexey Proskuryakov.

Add "Z" suffix to timestamps to make sure if it is handled as UTC time.

  • QueueStatusServer/handlers/queuestatusjson.py:

(QueueStatusJSON.get):

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble._iso_time):

5:47 AM Changeset in webkit [174342] by mario@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, updated list of email addresses in contributors.json

  • Scripts/webkitpy/common/config/contributors.json: Added my former

email address in Igalia, for the sake of completeness.

2:10 AM Changeset in webkit [174341] by zsborbely.u-szeged@partner.samsung.com
  • 2 edits in trunk/Tools

Unreviewed, moved myself to the list of committers.

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

Oct 5, 2014:

10:14 PM Changeset in webkit [174340] by Chris Dumez
  • 26 edits in trunk/Source

Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses
https://bugs.webkit.org/show_bug.cgi?id=137440

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses.

Source/WebCore:

No new tests, no behavior change.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::updateAfterChildren):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):

  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):

  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

Source/WebKit2:

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::encodeNodeAndDescendants):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):
(WebKit::RemoteScrollingTreeTextStream::dump):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • WebProcess/Scrolling/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):

10:13 PM Changeset in webkit [174339] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CachedRawResource
https://bugs.webkit.org/show_bug.cgi?id=137439

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for CachedRawResource.

No new tests, no behavior change.

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::switchClientsToRevalidatedResource):

  • loader/cache/CachedRawResource.h:

(isType):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestRawResource):
(WebCore::CachedResourceLoader::requestMainResource):

10:10 PM Changeset in webkit [174338] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for TextTrack subclasses
https://bugs.webkit.org/show_bug.cgi?id=137438

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for TextTrack subclasses.

No new tests, no behavior change.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/track/InbandTextTrack.h:

(isType):

  • html/track/LoadableTextTrack.h:

(isType):

  • html/track/TextTrackList.cpp:

(TextTrackList::getTrackIndex):
(TextTrackList::append): Deleted.

10:08 PM Changeset in webkit [174337] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CryptoKeyData subclasses
https://bugs.webkit.org/show_bug.cgi?id=137437

Reviewed by Ryosuke Niwa.

Use is<>() / downcast<>() for CryptoKeyData subclasses.

No new tests, no behavior change.

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::JSCryptoKeySerializationJWK::serialize):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::write):

  • crypto/CryptoKeyData.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::importKey):

  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::importKey):

  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::importKey):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::importKey):

  • crypto/keys/CryptoKeyDataOctetSequence.h:

(WebCore::isCryptoKeyDataOctetSequence): Deleted.

  • crypto/keys/CryptoKeyDataRSAComponents.h:

(WebCore::isCryptoKeyDataRSAComponents): Deleted.

  • crypto/keys/CryptoKeySerializationRaw.cpp:

(WebCore::CryptoKeySerializationRaw::serialize):

7:08 PM Changeset in webkit [174336] by benjamin@webkit.org
  • 19 edits in trunk

Add a deprecation warning for Element.webkitMatchesSelector
https://bugs.webkit.org/show_bug.cgi?id=137417

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-10-05
Reviewed by Christophe Dumez.

Source/WebCore:

Many scripts have assumed that the unprefixed version of ElementwebkitMatchesSelector
would be Element.matchesSelector. Feature detection scripts too often test
for Element.matchesSelector instead of Element.matches before calling Element.webkitMatchesSelector.

This patch add a deprecation warning for Element.webkitMatchesSelector with the hope
that it will push the adoption of the unprefixed version.

  • dom/Element.cpp:

(WebCore::Element::webkitMatchesSelector):

  • dom/Element.h:
  • dom/Element.idl:

LayoutTests:

  • jquery/resources/src/sizzle/sizzle.js:

This is a great example of library that needs fixing. The old sizzle
we have in WebKit used "matchesSelector" instead of "matches".

  • fast/dom/SelectorAPI/attrname-case-insensitive-expected.txt:
  • fast/dom/SelectorAPI/attrname-case-sensitive-expected.txt:
  • fast/dom/SelectorAPI/caseID-almost-strict-expected.txt:
  • fast/dom/SelectorAPI/caseID-expected.txt:
  • fast/dom/SelectorAPI/caseID-strict-expected.txt:
  • fast/dom/SelectorAPI/caseTag-expected.txt:
  • fast/dom/SelectorAPI/caseTagX-expected.txt:
  • fast/dom/SelectorAPI/detached-element-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/SelectorAPI/undefined-null-stringify-expected.txt:

Update the test results due to the warning.

  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:

That duplicate I added back when I unprefixed Element.matches() is useless.

5:47 PM Changeset in webkit [174335] by ryuan.choi@gmail.com
  • 12 edits
    11 adds
    1 delete in trunk

[EFL] Introduce EWebKit_Extension
https://bugs.webkit.org/show_bug.cgi?id=134921

Reviewed by Gyuyoung Kim.

Source/WebKit2:

EWebKit2 does not provide the functionality to extend WebProcess.
Although there is ewk_context_new_with_injected_bundle_path() in ewebkit2 APIs,
application developers can not make bundle object without touching WK APIs
which ewebkit2 does not expose.

This patch introduces EWebKit_Extension, basic structure for the extension of WebProcess.

  • PlatformEfl.cmake:

Added files for the EWebKit_Extension and install them properly.

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):
(bundlePathForExtension):
(EwkContext::create):
(EwkContext::getInjectedBundleInitializationUserData):
(EwkContext::setMessageFromInjectedBundleCallback):
(ewk_context_new_with_extensions_path):
Deleted because ewebkit2 does not have a way to make injected bundle.
Instead, Ewk_Extension will cover the same functionalities.
(ewk_context_new_with_injected_bundle_path): Deleted.

  • UIProcess/API/efl/ewk_context.h:
  • UIProcess/API/efl/ewk_context_private.h:

(EwkContext::extensionsPath):

  • UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Removed.
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:

(EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample):
(EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample): Renamed injectedBundleSample to extensionSample.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
  • UIProcess/API/efl/tests/extensions/extension_sample.cpp: Copied from Source/WebKit2/UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp.
  • UIProcess/API/efl/tests/test_ewk2_context.cpp: Renamed ewk_context_new_with_injected_bundle_path to ewk_context_new_with_extensions_path.

(TEST_F):

  • WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h: Added.
  • WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: Added.

(EwkExtension::append):
(EwkExtension::remove):
(ewk_extension_client_add):
(ewk_extension_client_del):

  • WebProcess/InjectedBundle/API/efl/ewk_extension.h: Added.
  • WebProcess/InjectedBundle/API/efl/ewk_extension_private.h: Added.

(EwkExtension::EwkExtension):
(EwkExtension::~EwkExtension):

  • WebProcess/efl/ExtensionManagerEfl.cpp: Added.

(WebKit::ExtensionManagerEfl::shared):
(WebKit::ExtensionManagerEfl::ExtensionManagerEfl):
(WebKit::ExtensionManagerEfl::initialize):

  • WebProcess/efl/ExtensionManagerEfl.h: Added.
  • WebProcess/efl/WebInjectedBundleMainEfl.cpp: Added.

(WKBundleInitialize):

  • efl/ewebkit2-extension.pc.in: Added.

Tools:

  • MiniBrowser/efl/main.c: Added x option to test extension path.

(window_create):
(elm_main):

  • Scripts/webkitpy/common/config/watchlist:

Added Source/WebKit2/WebProcess/InjectedBundle/API/efl/ into EFLWebKit2PublicAPI.

  • Scripts/webkitpy/style/checker.py:

Added Source/WebKit2/WebProcess/InjectedBundle/API/efl/ into EFL exceptions.

5:41 PM Changeset in webkit [174334] by benjamin@webkit.org
  • 3 edits
    8 adds in trunk

Element.matches()'s argument is not supposed to be optional
https://bugs.webkit.org/show_bug.cgi?id=137427

Reviewed by Christophe Dumez.

Source/WebCore:

The argument was marked as optional, it is not supposed to:
https://dom.spec.whatwg.org/#interface-element

Also update the webkit-prefixed version: webkitMatchesSelector().

Tests: fast/dom/SelectorAPI/closest-definition.html

fast/dom/SelectorAPI/closest-null-undefined.html
fast/dom/SelectorAPI/matches-definition.html
fast/dom/SelectorAPI/matches-null-undefined.html

  • dom/Element.idl:

LayoutTests:

  • fast/dom/SelectorAPI/matches-definition.html: Added.
  • fast/dom/SelectorAPI/matches-null-undefined.html: Added.

Test for the bug.

  • fast/dom/SelectorAPI/closest-definition.html: Added.
  • fast/dom/SelectorAPI/closest-null-undefined.html: Added.

Similar tests for Element.closest() since those are similar APIs.

5:31 PM Changeset in webkit [174333] by Chris Dumez
  • 15 edits in trunk/Source

Use is<>() / downcast<>() for CachedResource subclasses
https://bugs.webkit.org/show_bug.cgi?id=137431

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for CachedResource subclasses.

Source/WebCore:

No new tests, no behavior change.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedFont.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::switchClientsToRevalidatedResource):

  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestFont):
(WebCore::CachedResourceLoader::requestTextTrack):
(WebCore::CachedResourceLoader::requestCSSStyleSheet):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestScript):
(WebCore::CachedResourceLoader::requestXSLStyleSheet):
(WebCore::CachedResourceLoader::requestSVGDocument):
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedScript.h:
  • loader/cache/CachedTextTrack.h:
  • loader/cache/CachedXSLStyleSheet.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeImageFromCache):

Source/WebKit/mac:

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

5:23 PM Changeset in webkit [174332] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for StyleSheet subclasses
https://bugs.webkit.org/show_bug.cgi?id=137429

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for StyleSheet subclasses.

No new tests, no behavior change.

  • bindings/gobject/WebKitDOMPrivate.cpp:

(WebKit::wrap):

  • css/CSSStyleSheet.h:

(isType):

  • css/StyleSheet.h:
  • dom/Document.cpp:

(WebCore::Document::applyXSLTransform):

  • dom/DocumentStyleSheetCollection.cpp:

(WebCore::filterEnabledNonemptyCSSStyleSheets):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::parseStyleSheet):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getAllStyleSheets):

  • xml/XSLStyleSheet.h:

(isType):

4:27 PM Changeset in webkit [174331] by Chris Dumez
  • 17 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for CryptoAlgorithmParameters subclasses
https://bugs.webkit.org/show_bug.cgi?id=137432

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for CryptoAlgorithmParameters subclasses.

No new tests, no behavior change.

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):

  • crypto/CryptoAlgorithmParameters.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
(WebCore::CryptoAlgorithmAES_CBC::generateKey):

  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::generateKey):

  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
(WebCore::CryptoAlgorithmHMAC::generateKey):
(WebCore::CryptoAlgorithmHMAC::importKey):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
(WebCore::CryptoAlgorithmRSA_OAEP::importKey):

  • crypto/parameters/CryptoAlgorithmAesCbcParams.h:
  • crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
  • crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
  • crypto/parameters/CryptoAlgorithmHmacParams.h:
  • crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
  • crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
  • crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
  • crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
4:09 PM Changeset in webkit [174330] by Chris Fleizach
  • 4 edits
    2 adds in trunk

AX: iOS8: Crash at -[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]
https://bugs.webkit.org/show_bug.cgi?id=137289

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Casting a NSInteger to an unsigned can bypass the check we were hoping to achieve,
because size_t is not the same as unsigned.

Test: platform/ios-sim/accessibility/out-of-bounds-child-access.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):

LayoutTests:

  • platform/ios-sim/accessibility/out-of-bounds-child-access-expected.txt: Added.
  • platform/ios-sim/accessibility/out-of-bounds-child-access.html: Added.
3:14 PM Changeset in webkit [174329] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Use is<>() / downcast<>() for ElementData subclasses
https://bugs.webkit.org/show_bug.cgi?id=137430

Reviewed by Benjamin Poulain.

Use is<>() / downcast<>() for ElementData subclasses.

No new tests, no behavior change.

  • dom/Element.cpp:

(WebCore::Element::cloneAttributesFromElement):
(WebCore::Element::createUniqueElementData):

  • dom/ElementData.cpp:

(WebCore::ElementData::destroy):

  • dom/ElementData.h:

(WebCore::ElementData::length):
(WebCore::ElementData::attributeBase):
(WebCore::ElementData::presentationAttributeStyle):
(WebCore::ElementData::attributesIterator):
(WebCore::ElementData::findAttributeByName):
(isType):

4:28 AM Changeset in webkit [174328] by commit-queue@webkit.org
  • 10 edits in trunk/Source

[GTK] Fix build when DRAG_SUPPORT is disabled
https://bugs.webkit.org/show_bug.cgi?id=137361

Patch by Lorenzo Tilve <ltilve@igalia.com> on 2014-10-05
Reviewed by Carlos Garcia Campos.

Flag out unbuildable code without DRAG_SUPPORT.

Source/WebCore:

  • platform/gtk/GtkDragAndDropHelper.cpp:
  • platform/gtk/GtkDragAndDropHelper.h:

Source/WebKit2:

  • Shared/gtk/ArgumentCodersGtk.cpp:
  • Shared/gtk/ArgumentCodersGtk.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseConstructed):

  • UIProcess/PageClient.h:
1:17 AM Changeset in webkit [174327] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK] The new web inspector can't be docked again once undocked
https://bugs.webkit.org/show_bug.cgi?id=121544

Reviewed by Martin Robinson.

Use a GtkHeaderBar for the inspector window to add dock buttons
when building with GTK+ >= 3.10.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::dockButtonClicked):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::updateInspectorWindowTitle):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

12:41 AM Changeset in webkit [174326] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Do not generate a symlink in derived sources for every header in WebCore/bindings/gobject
https://bugs.webkit.org/show_bug.cgi?id=137389

Reviewed by Martin Robinson.

We only need a symlink for static sources that are included in
public generated headers, because they are added with as
<webkitdom/WebKitDOMFoo.h> so they need to be inside a webkitdom
directory. Also use proper targets and commands to create the
symlinks only when needed instead of for every build.

  • PlatformGTK.cmake:
Note: See TracTimeline for information about the timeline view.