Timeline



Jul 14, 2014:

8:04 PM Changeset in webkit [171101] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
<https://webkit.org/b/134915>

When we're under memory pressure, the last thing we want to be doing is
creating gratuitous new IOSurfaces. Just wait for the gesture to end before
rendering at the new scale.

Reviewed by Tim Horton.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

7:55 PM Changeset in webkit [171100] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.
https://bugs.webkit.org/show_bug.cgi?id=134903

Reviewed by Simon Fraser.

The compositing layer boundaries are calculated using its renderer()'s and the renderer()'s
descendants' bounds. However when the renderer() is zero sized, its bounds are omitted.
In such cases, when the child content has offset from the renderer(), the subpixel adjustment
of the compositing layer becomes negative (-meaning that the compositing layer is to the right/bottom
direction from its renderer()). Remove fabs() to be able to express such direction.

Source/WebCore:
Test: compositing/hidpi-compositing-layer-with-zero-sized-container.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

LayoutTests:

  • compositing/hidpi-compositing-layer-with-zero-sized-container-expected.html: Added.
  • compositing/hidpi-compositing-layer-with-zero-sized-container.html: Added.
7:15 PM Changeset in webkit [171099] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix crash on WebVideoFullscreenManagerProxy construction.
https://bugs.webkit.org/show_bug.cgi?id=134909

Unreviewed fix crash from r171089

Remove unnecessary dispatch to main queue since it can happen during construction.

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): remove dispatch_async

6:52 PM Changeset in webkit [171098] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[Cocoa] _WKRemoteObjectInterface leaks NSString ivar
https://bugs.webkit.org/show_bug.cgi?id=134914

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-14
Reviewed by Simon Fraser.

Release our copied NSString in dealloc.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(-[_WKRemoteObjectInterface dealloc]):

6:37 PM Changeset in webkit [171097] by dino@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Provide some large JPEG images with EXIF orientation for subsampling tests
https://bugs.webkit.org/show_bug.cgi?id=134847

Reviewed by Sam Weinig.

Four images (either 3000x2000 or 2000x3000) that each have EXIF rotation
attributes that should render with an arrow pointing UP. The
orientation-rotate-0.jpg should always render correctly, even if EXIF
rotation is ignored. The others are variations on that image that were
saved in rotated form, then reverted to the correct orientation via EXIF.

  • fast/canvas/resources/orientation-rotate-0.jpg: Added.
  • fast/canvas/resources/orientation-rotate-180.jpg: Added.
  • fast/canvas/resources/orientation-rotate-90-ccw.jpg: Added.
  • fast/canvas/resources/orientation-rotate-90-cw.jpg: Added.
5:41 PM Changeset in webkit [171096] by fpizlo@apple.com
  • 29 edits
    19 adds in trunk/Source/JavaScriptCore

Allow for Int52Rep to see things other than Int32, and make this testable
https://bugs.webkit.org/show_bug.cgi?id=134873
<rdar://problem/17641915>

Reviewed by Geoffrey Garen and Mark Hahnenberg.

A major premise of our type inference is that prediction propagation can say whatever it
wants and we'll still have valid IR after Fixup. This previously didn't work with Int52s.
We required some kind of agreement between prediction propagation and fixup over which
data flow paths were Int52 and which weren't.

It turns out that we basically had such an agreement, with the exception of code that was
unreachable due to ForceOSRExit. Then, fixup and prediction propagation would disagree. It
might be nice to fix that bug - but it's only in the case of Int52 that such a thing would
be a bug! Normally, we allow sloppiness in prediction propagation.

This patch allows us to be sloppy with Int52 prediction propagation by giving Int52Rep the
ability to see inputs other than Int32. This fixes the particular ForceOSRExit bug (see
int52-force-osr-exit-path.js for the reduced test case). To make sure that the newly
empowered Int52Rep is actually correct - in case we end up using it on paths other than
ForceOSRExit - this patch introduces an internal intrinsic called fiatInt52() that forces
us to attempt Int52 conversion on the input. This patch adds a bunch of tests that stress
this intrinsic. This means that we're now stressing Int52Rep more so than ever before!

Note that it would still be a bug for prediction propagation to ever cause us to create an
Int52Rep node for a non-Int32 input. But, this will now be a performance bug, rather than
a crash bug.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::fixTypeForRepresentation):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::isMachineIntConstant):

  • dfg/DFGNode.h:

(JSC::DFG::Node::isMachineIntConstant):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertMachineInt):
(JSC::DFG::SpeculativeJIT::speculateMachineInt):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepMachineInt):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):
(JSC::DFG::isDouble):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileInt52Rep):
(JSC::FTL::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::doubleToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateMachineInt):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepMachineInt):

  • jit/JITOperations.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionIdentity):

  • runtime/Intrinsic.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::tryConvertToInt52):
(JSC::isInt52):
(JSC::JSValue::isMachineInt):

  • tests/stress/dead-fiat-double-to-int52-then-exit-not-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-double-to-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-int32-to-int52.js: Added.

(foo):

  • tests/stress/dead-fiat-value-to-int52-double-path.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52-then-exit-not-double.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52-then-exit-not-int52.js: Added.

(foo):
(bar):

  • tests/stress/dead-fiat-value-to-int52.js: Added.

(foo):
(bar):

  • tests/stress/fiat-double-to-int52-then-exit-not-int52.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52-then-fail-to-fold.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52-then-fold.js: Added.

(foo):

  • tests/stress/fiat-double-to-int52.js: Added.

(foo):

  • tests/stress/fiat-int32-to-int52.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52-double-path.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-exit-not-double.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-exit-not-int52.js: Added.

(foo):
(bar):

  • tests/stress/fiat-value-to-int52-then-fail-to-fold.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52-then-fold.js: Added.

(foo):

  • tests/stress/fiat-value-to-int52.js: Added.

(foo):
(bar):

  • tests/stress/int52-force-osr-exit-path.js: Added.

(foo):

5:14 PM Changeset in webkit [171095] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

[PlugIns] Check for a non-null snapshot image before trying to decode it
https://bugs.webkit.org/show_bug.cgi?id=134913
<rdar://problem/17606033>

Reviewed by Tim Horton.

Changeset r169820 introduced a bug where we could examine the pixels of
an image (looking for solid colors) before checking if the image actually
existed.

I added a null check, and moved the code around a bit to avoid checking
for existence three times.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pluginSnapshotTimerFired): Check that snapshotImage exists
before trying to look at it.

5:14 PM Changeset in webkit [171094] by dbates@webkit.org
  • 2 edits
    6 adds in trunk

[iOS] Add tests to ensure CSS :active and :hover are applied when processing touch events
https://bugs.webkit.org/show_bug.cgi?id=134905
<rdar://problem/16602779>

Reviewed by Simon Fraser.

.:
Add a manual test to ensure that styles for CSS pseudo-class :hover aren't temporarily cleared
on the tapped element when processing a touchend as a result of finger pressing and releasing
on the same element that is initially positioned outside the visible content area.

  • ManualTests/ios/touchstart-touchend-on-same-element-should-not-clear-hover.html: Added.

LayoutTests:
Upstream tests by Andreas Kling for <rdar://problem/14324231>.

Add a DRT test to ensure that we apply the style for the CSS pseudo-class :active when
processing touch events.

  • platform/iphone-simulator/fast/events/ontouchstart-active-selector-expected.txt: Added.
  • platform/iphone-simulator/fast/events/ontouchstart-active-selector.html: Added.
5:09 PM Changeset in webkit [171093] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState):

4:59 PM Changeset in webkit [171092] by mhahnenberg@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Flattening dictionaries with oversize backing stores can cause crashes
https://bugs.webkit.org/show_bug.cgi?id=134906

Reviewed by Filip Pizlo.

The collector expects any pointers into CopiedSpace passed to copyLater are within 32 KB
of the CopiedBlock header. This was always the case except for when flattening a dictionary
caused the size of the Butterfly to decrease. This was equivalent to moving the base of the
Butterfly to higher addresses. If the object was reduced sufficiently in size, the base
would no longer be within the first 32 KB of the CopiedBlock and the next collection would
choke on the Butterfly pointer.

This patch fixes this issue by detect this situation during flattening and memmove-ing
the Butterfly down to where the old base was.

  • runtime/JSObject.cpp:

(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:

(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

  • tests/stress/flatten-oversize-dictionary-object.js: Added.

(foo):

4:35 PM Changeset in webkit [171091] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Use the legacy session coder for encoding/decoding session state
https://bugs.webkit.org/show_bug.cgi?id=134910

Reviewed by Beth Dakin.

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState):
(WebKit::decodeSessionState):

4:13 PM Changeset in webkit [171090] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Restrict network process to remote connections
https://bugs.webkit.org/show_bug.cgi?id=134908

Reviewed by Geoffrey Garen.

Further restrict network client

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
3:32 PM Changeset in webkit [171089] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

WebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
https://bugs.webkit.org/show_bug.cgi?id=134890

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-07-14
Reviewed by Eric Carlson.

dispatch_async to the main thread before setting properties that would affect the UI.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): wrap in call to dispatch_async
(WebVideoFullscreenInterfaceAVKit::setDuration): ditto
(WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
(WebVideoFullscreenInterfaceAVKit::setRate): ditto
(WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
(WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
(WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto

3:22 PM Changeset in webkit [171088] by dbates@webkit.org
  • 3 edits in trunk/Tools

check-webkit-style should apply C++ rules to Objective-C++ files
https://bugs.webkit.org/show_bug.cgi?id=134884

Reviewed by Joseph Pecoraro.

Fixes an issue where check-webkit-style doesn't apply applicable C++ rules to
Objective-C++ files.

Currently check-webkit-style doesn't apply the following rules to Objective-C++
files: build/using_std, runtime/max_min_macros, runtime/wtf_move, readability/null.
Instead, we should teach check-webkit-style to apply these rules because, as
its name implies, an Objective-C++ file may contain C++ code.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_FileState.init): Add instance variable _is_objective_cpp to track whether a file has
extension mm (i.e. an Objective-C++ file).
(_FileState.is_objective_c_or_objective_cpp): Added; returns true if the file
has extension m or mm or if the file has extension h and contains Objective-C directives.
(check_for_null): No change in behavior; don't apply rule to Objective-C++ file.
(check_identifier_name_in_declaration): Substitute _FileState.is_objective_c_or_objective_cpp() for
_FileState.is_c_or_objective_c()

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_null_false_zero): Added test case for Objective-C++ file.
(WebKitStyleTest.test_max_macro): Add test case for Objective-C and Objective-C++ file.
(WebKitStyleTest.test_min_macro): Ditto.
(WebKitStyleTest.test_wtf_move): Add test case for Objective-C++ file.

3:00 PM Changeset in webkit [171087] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

ASSERT(isMainThread()) under OneShotDisplayLinkHandler
https://bugs.webkit.org/show_bug.cgi?id=134900

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(-[OneShotDisplayLinkHandler displayLinkFired:]):
isMainThread means the Web thread sometimes.

2:57 PM Changeset in webkit [171086] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView _frameOrBoundsChanged]):

2:42 PM Changeset in webkit [171085] by Lucas Forschler
  • 10 edits in tags/Safari-538.46.2/Source/WebKit2

Merged r171057. <rdar://problem/17295636>

2:37 PM Changeset in webkit [171084] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[UNIX] Log error description when failing to create shared memory file.
https://bugs.webkit.org/show_bug.cgi?id=134892

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-14
Reviewed by Darin Adler.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::create): Print the string describing the error number (errno).

2:29 PM Changeset in webkit [171083] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
https://bugs.webkit.org/show_bug.cgi?id=134679

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-07-14
Reviewed by Darin Adler.

  • html/ImageData.cpp:
  • platform/graphics/cairo/ImageBufferCairo.cpp:
2:23 PM Changeset in webkit [171082] by Manuel Rego Casasnovas
  • 14 edits
    2 adds in trunk

[CSS Grid Layout] Support sparse in auto-placement algorithm
https://bugs.webkit.org/show_bug.cgi?id=134544

Reviewed by Sergio Villar Senin.

Source/WebCore:
This patch implements sparse mode for auto-placement algorithm, which is
the default mode in the new grid-auto-flow syntax. It keeps track of the
auto-placement cursor in
RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
when auto-positioned items are placed.
If we're in dense mode it resets the cursor after each item (which keeps
the old behavior that was using dense mode by default).

GridIterator has been adapted to look for empty areas from a given
position in both directions.

Test: fast/css-grid-layout/grid-auto-flow-sparse.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
add an optional argument for the varying index. This allows to look for
empty areas in both axis.
(WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
auto-placement cursor and rested after each item if we're in dense mode.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
cursor to look for empty areas from the last auto-positioned item
placed.

  • rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header

to receive the auto-placement cursor.

LayoutTests:
Test cases have been adapted accordingly, adding new cases to cover both
sparse and dense options.

  • fast/css-grid-layout/grid-auto-flow-resolution-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-flow-sparse-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-flow-sparse.html: Added.
  • fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span-expected.txt:
  • fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
  • fast/css-grid-layout/grid-item-auto-placement-definite-span-expected.txt:
  • fast/css-grid-layout/grid-item-auto-placement-definite-span.html:
  • fast/css-grid-layout/grid-item-removal-auto-placement-update.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/resources/grid.css:

(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowDense):

2:22 PM Changeset in webkit [171081] by Brent Fulgham
  • 8 edits in trunk/Source/WebCore

[iOS] Some videos play as inline audio-only content
https://bugs.webkit.org/show_bug.cgi?id=134898.
<rdar://problem/17629379>

Reviewed by Eric Carlson.

Add a new 'presentationType' accessor that indicates if the media
element is playing in 'audio' mode. This can happen if a video
element plays an HLS stream that starts off in audio-only mode.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::presentationType): Added.

  • html/HTMLMediaElement.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::presentationType): Added.

  • platform/audio/MediaSession.h:
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
Use the presentationType, rather than the mediaType to control
inline playback behavior.

  • platform/audio/ios/AudioDestinationIOS.h:

(WebCore::AudioDestinationMac::presentationType): Add presentationType.

  • platform/audio/mac/AudioDestinationMac.h:

(WebCore::AudioDestinationMac::presentationType): Ditto.

2:07 PM Changeset in webkit [171080] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit2

[iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the wrong orientation
https://bugs.webkit.org/show_bug.cgi?id=134875

Reviewed by Tim Horton.

On animated resize, the size of the DrawingAreaProxy was changed before the layout parameters were
changed. This in turn caused the WebProcess's DrawingArea to flush the layer tree while still
at the wrong orientation.

This patch fixes the issue by making a special case for animated resize:
-While starting animated resize, _frameOrBoundsChanged can be called several times in response to

the API's client changing the WKWebView. In that case, we do not update the drawing area.

-After the "updateBlock" is executed and the size have been changed, the dynamic viewport update

is computed, the dynamicViewportSizeUpdate is sent to the WebProcess, followed by the message
DrawingArea::updateGeometry(). Since both messages are asynchronous, they are received in that
order, and the updateGeometry() is always done after the viewport configuration has been updated.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView setMinimumSize:]): Deleted.

2:06 PM Changeset in webkit [171079] by Lucas Forschler
  • 5 edits in tags/Safari-538.46.2/Source

Versioning.

2:02 PM Changeset in webkit [171078] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Fix withinEpsilon()
https://bugs.webkit.org/show_bug.cgi?id=134798

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-14
Reviewed by Darin Adler.

Move the function back to WKWebView, it is no longer needed in WKContentView.

Use the real types as input to properly verify that the two inputs are within
a small value of the 32bit floating point.

The epsilon we use is always on 32 bits float because we want to avoid doing work for changes
that would not make any difference on float.

The source of those small changes comes from the fact UIProcess does a lot of processing
on CGFloat, which are double on 64bits architecture, while the WebProcess use 32bits floating point
for scale. When we are getting updates from the WebProcess, we should ignore any small differences
caused by the computations done with less precision.

  • UIProcess/API/Cocoa/WKWebView.mm:

(withinEpsilon):

  • UIProcess/ios/WKContentViewInteraction.h:

(withinEpsilon): Deleted.

2:01 PM Changeset in webkit [171077] by Lucas Forschler
  • 1 copy in tags/Safari-538.46.2

New Tag.

1:55 PM Changeset in webkit [171076] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

Remove some dead code from FTLJITFinalizer
https://bugs.webkit.org/show_bug.cgi?id=134874

Reviewed by Geoffrey Garen.

Not sure what that code was for...but it does not do anything :)

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):
The pointer of the label is computed but never used.

  • ftl/FTLJITFinalizer.h:
  • ftl/FTLLink.cpp:

(JSC::FTL::link):
The label is never set to anything.

1:12 PM Changeset in webkit [171075] by betravis@adobe.com
  • 10 edits in trunk

[Feature Queries] Enable Feature Queries on Mac
https://bugs.webkit.org/show_bug.cgi?id=134404

Reviewed by Antti Koivisto.

Source/JavaScriptCore:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebCore:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit/mac:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

Source/WebKit2:
Enable Feature Queries on Mac and resume running the
feature tests.

  • Configurations/FeatureDefines.xcconfig: Turn on

ENABLE_CSS3_CONDITIONAL_RULES.

LayoutTests:
Resume running the Feature Queries tests on Mac.

  • platform/mac/TestExpectations: Unskip the tests.
12:51 PM Changeset in webkit [171074] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

<rdar://problem/17305458> Cannot interact with video controls in ePubs
Bug 134836 - [New Multicolumn] Crawl to check for compositing between us and the enclosingPaginationLayer
https://bugs.webkit.org/show_bug.cgi?id=134836

Reviewed by Dean Jackson.

The paginatedAndComposited bit being set in updateLayerPositions just didn't work, since compositing states
can change without triggering that function. This patch just gets rid of the bit and does a crawl every time
to check. This ensures that changes in compositing states don't necessitate any changes in pagination,
since the lookup will always check the current compositing state.

The new function that does this check is hasCompositedLayerInEnclosingPaginationChain.

I have been unable to reproduce this issue, and this is therefore a purely speculative fix. I have no test
case to provide because of this.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hasCompositedLayerInEnclosingPaginationChain):
(WebCore::RenderLayer::updatePagination):

  • rendering/RenderLayer.h:
12:15 PM Changeset in webkit [171073] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Move composite bounds calculation to RenderLayerBacking.
https://bugs.webkit.org/show_bug.cgi?id=134864

Reviewed by Darin Adler.

No change in functionality.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

  • rendering/RenderLayerCompositor.cpp: it was just proxying the calculateLayerBounds()

to the RenderLayer.
(WebCore::RenderLayerCompositor::calculateCompositedBounds): Deleted.

  • rendering/RenderLayerCompositor.h:
12:14 PM Changeset in webkit [171072] by andersca@apple.com
  • 6 edits in trunk

Make shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid breaking ABI
https://bugs.webkit.org/show_bug.cgi?id=134889

Reviewed by Beth Dakin.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:
  • UIProcess/API/C/WKPageLoaderClient.h:

Tools:
Bump loader version number to 5.

  • TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp:

(TestWebKitAPI::setPageLoaderClient):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):

11:54 AM Changeset in webkit [171071] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/audio/MediaSessionManager.h:
11:31 AM Changeset in webkit [171070] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r171045): Reproducible crash on navigation in PageClientImpl::willRecordNavigationSnapshot
https://bugs.webkit.org/show_bug.cgi?id=134887

Reviewed by Tim Horton.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin): nil-check m_webView. It can be nil when
the client is using WKView directly.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.

11:17 AM Changeset in webkit [171069] by eric.carlson@apple.com
  • 16 edits
    1 delete in trunk/Source

[Mac] don't enable low power audio mode on external output devices
https://bugs.webkit.org/show_bug.cgi?id=134877

Reviewed by Sam Weinig.

Source/WebCore:
No new tests, this deals with changes to the audio hardware at runtime.

  • WebCore.xcodeproj/project.pbxproj: Remove AudioSessionListener.h.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • platform/audio/AudioHardwareListener.cpp:

(WebCore::AudioHardwareListener::AudioHardwareListener): Initialize m_outputDeviceSupportsLowPowerMode

to true on iOS.

  • platform/audio/AudioHardwareListener.h:

(WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode): New accessor.
(WebCore::AudioHardwareListener::setHardwareActivity): New setter for derived classes.
(WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Ditto.

Remove AudioSessionListener interface, it wasn't being used.

  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::addListener): Deleted.
(WebCore::AudioSession::removeListener): Deleted.
(WebCore::AudioSession::beganAudioInterruption): Deleted.
(WebCore::AudioSession::endedAudioInterruption): Deleted.

  • platform/audio/AudioSession.h:
  • platform/audio/AudioSessionListener.h: Removed.
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::addSession): Allocate the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::removeSession): Free the AudioHardwareListener if necessary.
(WebCore::MediaSessionManager::audioOutputDeviceChanged): AudioHardwareListener client interface

called when the output device changes, call updateSessionState to make sure we are using
the correct buffer size.

  • platform/audio/MediaSessionManager.h:
  • platform/audio/ios/AudioDestinationIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSessionPrivate::AudioSessionPrivate): Drive-by cleanup, remove ObjC helper object

that was used to listen for OS notifications, it is no longer used.

(SOFT_LINK_POINTER): Deleted.
(-[WebAudioSessionHelper initWithCallback:]): Deleted.
(-[WebAudioSessionHelper dealloc]): Deleted.
(-[WebAudioSessionHelper interruption:]): Deleted.

  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::currentDeviceSupportsLowPowerBufferSize): New, return true only if using build-in

transport device.

(WebCore::processIsRunningPropertyDescriptor): Return reference to static AudioObjectPropertyAddress

for kAudioHardwarePropertyProcessIsRunning instead of declaring one in every method
that needs one.

(WebCore::outputDevicePropertyDescriptor): Return reference to static AudioObjectPropertyAddress

for kAudioHardwarePropertyDefaultOutputDevice.

(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): Restructure and add audio object

listener for default output device.

(WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac): *Remove* listener audio object

property listener instead of *Adding* a new one. Remove new listener.

(WebCore::AudioHardwareListenerMac::propertyChanged): Enumerate the properties that changed,

call appropriate method.

(WebCore::AudioHardwareListenerMac::processIsRunningChanged): Renamed from setHardwareActive,

cleanup.

(WebCore::AudioHardwareListenerMac::outputDeviceChanged): New, call client.audioHardwareOutputDeviceChanged.
(WebCore::AudioHardwareListenerMac::setHardwareActive): Deleted, renamed processIsRunningChanged.

  • platform/audio/mac/AudioHardwareListenerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.cpp:

(MediaSessionManager::updateSessionState): Only set the output buffer size to 4K when hardware

supports it.

Source/WebKit2:

  • PluginProcess/PluginProcess.h: Add an empty implementation of

AudioHardwareListener::audioOutputDeviceChanged.

11:11 AM Changeset in webkit [171068] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Throttle painting using a UI-process-side CADisplayLink
https://bugs.webkit.org/show_bug.cgi?id=134879
<rdar://problem/17641699>

Reviewed by Simon Fraser.

Just waiting for CA to commit is insufficient to actually throttle to 60fps,
because nothing will block the main runloop from spinning.

Instead, listen to a CADisplayLink, and send didUpdate to the WebProcess
the first time it fires after we commit. This is not a guarantee that
our content is on the screen, but we don't have any way to make that guarantee yet.

This will throttle painting, rAF, etc. to the display refresh rate.

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

(-[OneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
(-[OneShotDisplayLinkHandler dealloc]):
(-[OneShotDisplayLinkHandler displayLinkFired:]):
(-[OneShotDisplayLinkHandler invalidate]):
(-[OneShotDisplayLinkHandler schedule]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.

10:16 AM Changeset in webkit [171067] by Bruno de Oliveira Abinader
  • 3 edits
    2 adds in trunk/LayoutTests

[css3-text] Add editing test for CSS3 Text Decoration properties
https://bugs.webkit.org/show_bug.cgi?id=120114

Reviewed by Darin Adler.

Adds editing layout test to verify that CSS3 Text Decoration properties
are being properly propagated.

  • editing/pasteboard/insert-text-decoration-expected.txt: Added.
  • editing/pasteboard/insert-text-decoration.html: Added.
  • platform/mac/TestExpectations: Skip while CSS3_TEXT is disabled by default.
  • platform/win/TestExpectations: Skip while CSS3_TEXT is disabled by default.
9:17 AM Changeset in webkit [171066] by mitz@apple.com
  • 6 edits in trunk/Source/WebKit2

<rdar://problem/17657391> [iOS] Networking process writes persistent credentials to the keychain
https://bugs.webkit.org/show_bug.cgi?id=134878

Reviewed by Sam Weinig.

Route CFNetwork’s calls to Security API through to the UI process.

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcess): Initialize SecItemShim.

  • Shared/mac/SecItemShim.cpp:

(WebKit::SecItemShim::initialize): On iOS, rather than using a shim library, supply
CFNetwork with alternate functions to call.

  • Shared/mac/SecItemShim.messages.in: Removed #if !PLATFORM(IOS).
  • UIProcess/mac/SecItemShimProxy.messages.in: Ditto.
  • config.h: Define ENABLE_SEC_ITEM_SHIM to 1 on iOS as well.
9:16 AM Changeset in webkit [171065] by dbates@webkit.org
  • 3 edits in trunk/Tools

Teach check-webkit-style to suggest WTF::move() when it sees std::move()
https://bugs.webkit.org/show_bug.cgi?id=134620

Reviewed by Joseph Pecoraro.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_max_min_macros): Fix up comment so that it reads well.
(check_wtf_move): Added.
(check_style): Modified to call check_wtf_move().
(CppChecker): Add category "runtime/wtf_move".

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_wtf_move): Added.

3:56 AM Changeset in webkit [171064] by jinwoo7.song@samsung.com
  • 22 edits
    3 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170418 and r170433.

  • platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.png: Added. Rebaseline after r170418.
  • platform/efl/fast/regions/repaint/japanese-rl-selection-repaint-in-regions-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/decorations-with-text-combine-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/decorations-with-text-combine-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/emphasis-vertical-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/emphasis-vertical-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/002-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/international/002-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/text-combine-image-test-expected.png: Rebaseline after r170418.
  • platform/efl/fast/text/international/text-combine-image-test-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/text/international/wrap-CJK-001-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/border-vertical-lr-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/border-vertical-lr-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-selection-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-selection-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-text-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-lr-text-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-selection-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-selection-expected.txt: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-text-expected.png: Rebaseline after r170418.
  • platform/efl/fast/writing-mode/japanese-rl-text-expected.txt: Rebaseline after r170418.
  • platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png: Rebaseline after r170433.
  • platform/efl/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt: Added. Rebaseline after r170433.
  • platform/efl/svg/filters/feBlend-all-blendmodes-expected.txt: Added. Rebaseline after r170433.
3:25 AM Changeset in webkit [171063] by jinwoo7.song@samsung.com
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Remove failure expectations for tests that have been passing after r168350, r169309 and r169620.

  • platform/efl/TestExpectations:
3:07 AM Changeset in webkit [171062] by jinwoo7.song@samsung.com
  • 3 edits in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

  • platform/efl/css1/formatting_model/inline_elements-expected.png: Rebaseline after r170875.
  • platform/efl/css1/formatting_model/inline_elements-expected.txt: Rebaseline after r170875.
12:19 AM Changeset in webkit [171061] by mitz@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Added Radar link to the last ChangeLog entry

12:18 AM Changeset in webkit [171060] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

NetworkProcess sometimes hangs under copyDefaultCredentialForProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=134666

Reviewed by Tim Horton.

A SecItem may have an attribute whose value is a SecAccessControlRef, which is not supported
by ArgumentCodersCF. In debug builds, trying to encode a CFDictionary containing a value of
unsupprted type causes an assertion to fail, but in release builds encoding succeeds, and
only decoding fails, in this case silently, simply not delivering the
SecItemShim::secItemResponse message.

The fix is to teach ArgumentCodersCF about SecAccessControlRef.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef): Check for the SecAccessControlRef type.
(IPC::encode): Encode the SecAccessControl serialized into CFData.
(IPC::decode): Deserialize a SecAccessControl from the decoded CFData.

  • Shared/cf/ArgumentCodersCF.h:
  • config.h: Defined HAVE_SEC_ACCESS_CONTROL.

Jul 13, 2014:

2:51 PM Changeset in webkit [171059] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove SelectorCheckerFastPath from the style resolution algorithm
https://bugs.webkit.org/show_bug.cgi?id=134866

Reviewed by Antti Koivisto.

SelectorCheckerFastPath is now pure overhead because it can almost never match
if the CSS JIT was unable to compile.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):
The "pre-filter" behind fastCheckableSelector had two parts:
1) Filtering the pseudoID.
2) Filtering on the rule hash.

The first part has been generalized (RuleDatacanMatchPseudoElement())
and moved to collectMatchingRulesForList().

(WebCore::ElementRuleCollector::collectMatchingRulesForList):

  • css/RuleSet.cpp:

(WebCore::selectorCanMatchPseudoElement):
(WebCore::RuleData::RuleData):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addRulesFromSheet):

  • css/RuleSet.h:

(WebCore::RuleData::canMatchPseudoElement):
(WebCore::RuleData::hasFastCheckableSelector): Deleted.

  • css/StyleResolver.cpp:
2:46 PM Changeset in webkit [171058] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove an useless check from SelectorChecker
https://bugs.webkit.org/show_bug.cgi?id=134868

Reviewed by Darin Adler.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):
The condition of this if() branch can never be met for the mode "QueryingRules".

The next condition in that if() is "dynamicPseudo != NOPSEUDO", which implies
a pseudo element was matched prior to the current context/simple selector.
This cannot happen with QueryingRules, since we never match pseudo elements for
SelectorQuery.

12:39 PM Changeset in webkit [171057] by mitz@apple.com
  • 10 edits in trunk/Source/WebKit2

<rdar://problem/17295636> [Cocoa] Include element snapshot in _WKActivatedElementInfo
https://bugs.webkit.org/show_bug.cgi?id=134872

Reviewed by Sam Weinig.

  • Shared/InteractionInformationAtPosition.cpp:

(WebKit::InteractionInformationAtPosition::encode): Encode the image if there is one.
(WebKit::InteractionInformationAtPosition::decode): Decode the image if there is one.

  • Shared/InteractionInformationAtPosition.h: Added an image member to the struct.
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Exposed the boundingRect property and added

an image property.

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:image:]): Added an image
parameter, which is stored in a new ivar.
(-[_WKActivatedElementInfo image]): Added this getter, which converts the ShareableBitmap
into a cached Cocoa image and returns it.

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added image parameter to the

initializer, removed _boundingRect property declaration from here.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]): Pass the image from the position information
into the _WKActivatedElementInfo initializer.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotNode): Added.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation): If the element is a link or an image, store a
snapshot of it in the image member of the InteractionInformationAtPosition.

11:55 AM Changeset in webkit [171056] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.43.42/Source

Versioning.

11:54 AM Changeset in webkit [171055] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.43.42

New tag.

11:39 AM Changeset in webkit [171054] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.43.41/Source

Versioning.

11:36 AM Changeset in webkit [171053] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.43.41

New tag.

10:26 AM Changeset in webkit [171052] by fpizlo@apple.com
  • 2 edits in branches/ftlopt/Source/JavaScriptCore

Unreviewed, revert unintended change in r171051.

  • dfg/DFGCSEPhase.cpp:
10:18 AM Changeset in webkit [171051] by fpizlo@apple.com
  • 4 edits in branches/ftlopt/Source

Merge trunk r171049.

2014-07-13 Filip Pizlo <fpizlo@apple.com>


HashMap should have removeIf()
https://bugs.webkit.org/show_bug.cgi?id=134870


Reviewed by Sam Weinig.


Expose a new HashMap method, called removeIf(), which allows you to do an efficient
pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
part of https://bugs.webkit.org/show_bug.cgi?id=134677.


  • wtf/HashMap.h: (WTF::X>::removeIf):
  • wtf/HashTable.h: (WTF::KeyTraits>::removeIf):
10:09 AM Changeset in webkit [171050] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Clean up session state API a little
https://bugs.webkit.org/show_bug.cgi?id=134871

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _sessionState]):
(-[WKWebView _restoreFromSessionState:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
10:03 AM Changeset in webkit [171049] by fpizlo@apple.com
  • 3 edits in trunk/Source/WTF

HashMap should have removeIf()
https://bugs.webkit.org/show_bug.cgi?id=134870

Reviewed by Sam Weinig.

Expose a new HashMap method, called removeIf(), which allows you to do an efficient
pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
part of https://bugs.webkit.org/show_bug.cgi?id=134677.

  • wtf/HashMap.h:

(WTF::X>::removeIf):

  • wtf/HashTable.h:

(WTF::KeyTraits>::removeIf):

4:28 AM Changeset in webkit [171048] by jfernandez@igalia.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r171045) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134867

Unreviewed GTK build fix after r171045.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::willRecordNavigationSnapshot):

  • UIProcess/API/gtk/PageClientImpl.h:
3:35 AM Changeset in webkit [171047] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed, EFL build fix since r171045.

  • UIProcess/CoordinatedGraphics/WebView.h:

Jul 12, 2014:

11:35 PM Changeset in webkit [171046] by commit-queue@webkit.org
  • 11 edits
    12 adds in trunk

Elements with rendering disabled due to dimensions should not contribute to parent bounding box
https://bugs.webkit.org/show_bug.cgi?id=134184

Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-07-12
Reviewed by Dirk Schulze.

Source/WebCore:
SVG elements that have rendering disabled should not contribute to any ancestor elements bounding box.
Examples of elements with rendering disabled:

  • basic shape with width <= 0 or height <= 0
  • path with no path data (d attribute missing or empty)
  • polyline or polygon element with no point data (points attribute missing or empty)

To achieve this a method (isRenderingDisabled) was added to RenderSVGShape and it's derived classes.
This is used to determine if an element is included when creating the union of child bounding boxes
in a container element.

Tests: svg/custom/GetBBox-path-nodata.html

svg/custom/GetBBox-polygon-nodata.html
svg/custom/GetBBox-polyline-nodata.html
svg/custom/getBBox-container-hiddenchild.html

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.

  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGPath.cpp:

(WebCore::RenderSVGPath::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.

  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::isRenderingDisabled):
New method added. Checks bounding box to determine if rendering is disabled.

  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGShape.h:

(WebCore::RenderSVGShape::isRenderingDisabled):
New method added. Always returns false so that derived classes that do not
implement this method retain the existing behaviour.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
For each element potentially being included in the unioned bounding box of
a container, check isRenderingDisabled and skip that element if true.

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::isRenderingDisabled):

  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGPath.cpp:

(WebCore::RenderSVGPath::isRenderingDisabled):

  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::isRenderingDisabled):

  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):

LayoutTests:
Test, for each element type, that when rendering is disabled, that element does not contribute
to the bounding box for an ancestor element.

Added test to ensure zero width/height polyline and polygon do contribute to ancestor bounding box.

Updated expected results for 1 existing test (shapes-rect-02-t) as this test included zero
width and zero height rects and these were previously included in the repaint rect.

  • platform/mac/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt:
  • svg/custom/GetBBox-path-nodata-expected.txt: Added.
  • svg/custom/GetBBox-path-nodata.html: Added.
  • svg/custom/GetBBox-polygon-nodata-expected.txt: Added.
  • svg/custom/GetBBox-polygon-nodata.html: Added.
  • svg/custom/GetBBox-polyline-nodata-expected.txt: Added.
  • svg/custom/GetBBox-polyline-nodata.html: Added.
  • svg/custom/getBBox-container-hiddenchild-expected.txt: Added.
  • svg/custom/getBBox-container-hiddenchild.html: Added.
  • svg/custom/getBBox-perpendicular-polygon-expected.txt: Added.
  • svg/custom/getBBox-perpendicular-polygon.svg: Added.
  • svg/custom/getBBox-perpendicular-polyline-expected.txt: Added.
  • svg/custom/getBBox-perpendicular-polyline.svg: Added.
10:51 PM Changeset in webkit [171045] by mitz@apple.com
  • 12 edits in trunk/Source/WebKit2

[Cocoa] Notify the client when a navigation snapshot is taken
https://bugs.webkit.org/show_bug.cgi?id=134865

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Initialize new flag in
m_navigationDelegateMethods.
(WebKit::NavigationState::willRecordNavigationSnapshot): Added. Calls the new
WKNavigationDelegate method.

  • UIProcess/PageClient.h: Declared new client function.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willRecordNavigationSnapshot): Added. Calls the new client function.

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

(WebKit::PageClientImpl::willRecordNavigationSnapshot): Override that calls
NavigationState::willRecordNavigationSnapshot.

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

(WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::recordSnapshot): Added a call to
WebPageProxy::willRecordNavigationSnapshot.

7:37 PM Changeset in webkit [171044] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Style checker complains about namespace indentation when there is no namespace
https://bugs.webkit.org/show_bug.cgi?id=105427

Patch by Peter Szanka <h868064@stud.u-szeged.hu> on 2014-07-12
Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_namespace_indentation):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_indentation):

The indentation level depends on the parantheses too, to avoid false warning in case of several statements inside macros.

7:24 PM Changeset in webkit [171043] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Rename selectorListContainsUncommonAttributeSelector() to selectorListContainsAttributeSelector()
https://bugs.webkit.org/show_bug.cgi?id=134862

Reviewed by Sam Weinig.

Unlike containsUncommonAttributeSelector(), selectorListContainsUncommonAttributeSelector() does not
evaluate the attribute for "uncommon" types.

It would be possible to change the function instead to evaluate common attributes based
on the match type and the pseudo class type. Such change would be more risky
and we would get very little benefit from it, I leave that for later if that ever becomes useful.

  • css/RuleSet.cpp:

(WebCore::selectorListContainsAttributeSelector):
(WebCore::containsUncommonAttributeSelector):
(WebCore::selectorListContainsUncommonAttributeSelector): Deleted.

6:44 PM Changeset in webkit [171042] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebKit2

Unreviewed, fix EFL build break since r171034.

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/efl/WebContextEfl.cpp:

(WebKit::WebContext::platformMediaCacheDirectory):

6:27 PM Changeset in webkit [171041] by Darin Adler
  • 2 edits in trunk/Source/WebKit2

Try to fix 32-bit Mac build.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin): Added WK_API_ENABLED conditional.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

6:09 PM Changeset in webkit [171040] by jfernandez@igalia.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r171034) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134861

Unreviewed GTK build fix.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):
(WebKit::PageClientImpl::navigationGestureWillEnd):
(WebKit::PageClientImpl::navigationGestureDidEnd):

  • UIProcess/API/gtk/PageClientImpl.h:
5:54 PM Changeset in webkit [171039] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove excessive nesting from _EnumState.process_clean_line at cpp style checker
https://bugs.webkit.org/show_bug.cgi?id=125317

Patch by Daker Fernandes Pinheiro <daker.pinheiro@openbossa.org> on 2014-07-12
Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_EnumState.process_clean_line):

5:31 PM Changeset in webkit [171038] by brian.holt@samsung.com
  • 3 edits in trunk/Tools

Style Checker should prevent enums in bitfields
https://bugs.webkit.org/show_bug.cgi?id=57352

Reviewed by Darin Adler.

Added check that enums are not used as types for bitfields
and a unit test.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_language):
(CppChecker):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest):
(CppStyleTest.test_enum_bitfields):
(CppStyleTest.test_plain_integral_bitfields):

5:19 PM Changeset in webkit [171037] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use braced-init-list to create one-item Vector object in insertPerformanceEntry
https://bugs.webkit.org/show_bug.cgi?id=133675

Patch by Zan Dobersek <zdobersek@igalia.com> on 2014-07-12
Reviewed by Darin Adler.

  • page/PerformanceUserTiming.cpp:

(WebCore::insertPerformanceEntry): Avoid wasting three lines for creating a
Vector object with just one item that in the end gets copied. Use the
braced-init-list syntax instead, leveraging Vector's std::initializer_list
constructor.

5:10 PM Changeset in webkit [171036] by allan.jensen@digia.com
  • 2 edits in trunk/Source/WebCore

Memory leaks with autoLoadImages off
https://bugs.webkit.org/show_bug.cgi?id=124411

Reviewed by Darin Adler.

Do not emit notifyFinished for images with deferred load,
and allow deferred loads to be cancelled.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::checkNotify):
(WebCore::CachedResource::cancelLoad):

4:39 PM Changeset in webkit [171035] by jfernandez@igalia.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r171024) [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134859

Unreviewed GTK build fix.

  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformMediaCacheDirectory):

4:32 PM Changeset in webkit [171034] by mitz@apple.com
  • 15 edits in trunk/Source/WebKit2

<rdar://problem/16020380> [Cocoa] Inform the client when back-forward navigation gestures begin and end
https://bugs.webkit.org/show_bug.cgi?id=134853

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new WKNavigationDelegate

methods.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isShowingNavigationGestureSnapshot]): Added this getter.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new property

_isShowingNavigationGestureSnapshot.

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Initialize new flags in
m_navigationDelegateMethods.
(WebKit::NavigationState::navigationGestureDidBegin): Added. Calls the new
WKNavigationDelegate method.
(WebKit::NavigationState::navigationGestureWillEnd): Ditto.
(WebKit::NavigationState::navigationGestureDidEnd): Ditto.

  • UIProcess/PageClient.h: Declared new client functions.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Initialize new member variable.
(WebKit::WebPageProxy::navigationGestureDidBegin): Set m_isShowingNavigationGestureSnapshot
and call the new client function.
(WebKit::WebPageProxy::navigationGestureWillEnd): Call the new client function.
(WebKit::WebPageProxy::navigationGestureDidEnd): Ditto.
(WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): Clear
m_isShowingNavigationGestureSnapshot.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isShowingNavigationGestureSnapshot): Added this getter.

  • UIProcess/ios/PageClientImplIOS.h: Declared overrides of new client functions.
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
NavigationState function.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidBegin and WebPageProxy::navigationGestureWillEnd.
(WebKit::ViewGestureController::endSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidEnd.
(WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
WebPageProxy::navigationGestureSnapshotWasRemoved.

  • UIProcess/mac/PageClientImpl.h: Declared overrides of new client functions.
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
NavigationState function.
(WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
(WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture): Added call to
WebPageProxy::navigationGestureDidBegin.
(WebKit::ViewGestureController::endSwipeGesture): Added calls to
WebPageProxy::navigationGestureDidEnd.
(WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
WebPageProxy::navigationGestureSnapshotWasRemoved.

3:39 PM Changeset in webkit [171033] by jer.noble@apple.com
  • 22 edits in trunk

[MSE] http/tests/media/media-source/mediasource-duration.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=134852

Reviewed by Eric Carlson.

Source/WebCore:
Fixes the following tests:
http/tests/media/media-source/mediasource-config-change-mp4-a-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html
http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html
http/tests/media/media-source/mediasource-duration.html
http/tests/media/media-source/mediasource-play.html

The primary change necessary to fix the mediasource-duration.html test was to add support
for delaying the completion of a seek operation until the HTMLMediaElement's readyState
rises to > HAVE_CURRENT_DATA. This is accomplished by modifying MediaSourcePrivate to have
waitForSeekCompleted() and seekCompleted() virtual methods. These are called by MediaSource
when a seek operation results in the current time moving outside the currently buffered time
ranges, and when an append operation results in the readyState changing, respectively.

A number of other drive-by fixes were necessary to get this test fully passing, as noted
below.

Make the MediaSource the primary owner of the media's duration, rather than the MediaSourcePrivate.
Move the MediaSourcePrivateClient pointer to the MediaSourcePrivate from the MediaPlayerPrivate, so
the MediaSource's duration can be retrieved. While we're at it, do the same thing for buffered.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource): Initialize m_duration.
(WebCore::MediaSource::duration): Simple accessor.
(WebCore::MediaSource::setDurationInternal): Bring 'duration change algorithm' up to spec.
(WebCore::MediaSource::setReadyState): Reset m_duration on close.

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivate.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Do not call setPrivateAndOpen().
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble): Pass through to MediaSourcePrivateAVFObjC.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::create): Call setPrivateAndOpen().
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Set m_client.
(WebCore::MediaSourcePrivateAVFObjC::duration): Pass through to MediaSourcePrivateClient.
(WebCore::MediaSourcePrivateAVFObjC::buffered): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::durationChanged): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
(WebCore::MediaSourcePrivateAVFObjC::setDuration): Deleted.

  • platform/graphics/gstreamer/MediaSourceGStreamer.cpp:

(WebCore::MediaSourceGStreamer::open): Pass in MediaSourcePrivateClient.
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer): Initialize m_mediaSource.
(WebCore::MediaSourceGStreamer::durationChanged): Retrieve the duration from MediaSourcePrivateClient.
(WebCore::MediaSourceGStreamer::markEndOfStream): Remove unnecssary ASSERT.
(WebCore::MediaSourceGStreamer::unmarkEndOfStream): Ditto.
(WebCore::MediaSourceGStreamer::setDuration): Deleted.

  • platform/graphics/gstreamer/MediaSourceGStreamer.h:
  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::load): Do not call setPrivateAndOpen().
(WebCore::MockMediaPlayerMediaSource::buffered): Pass through to MockMediaSourcePrivate.
(WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::create): Call setPrivateAndOpen().
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Set m_client.
(WebCore::MockMediaSourcePrivate::duration): Pass through to MediaSourcePrivateClient.
(WebCore::MockMediaSourcePrivate::buffered): Ditto.
(WebCore::MockMediaSourcePrivate::durationChanged): Pass thorugh to MockMediaPlayerMediaSource.
(WebCore::MockMediaSourcePrivate::setDuration): Deleted.

Route seekToTime through MediaSource, rather than through MediaSourcePrivate, so that
the time can be compared against the buffered ranges, and trigger the delay of the seek
operation if necessary. Add a seekTimer to MediaPlayerPrivateMediaSourceAVFObjC, as this
guarantees the order of asynchronous operations, rather than callOnMainThread, which can
cause async operations to occur out of order.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::seekToTime): Bring up to spec.
(WebCore::MediaSource::completeSeek): Ditto.
(WebCore::MediaSource::monitorSourceBuffers): Call completeSeek() when appropriate.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Deleted.
(WebCore::SourceBuffer::seekToTime): Renamed from sourceBufferPrivateSeekToTime().

  • platform/graphics/MediaSourcePrivate.h:
  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Add seekTimer. Only

call timeChanged() if no longer seeking, thereby triggering a 'seeked' event.

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC): Clear m_seekTimer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): Use m_seekTimer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired): Call seekInternal.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Add logging.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): Added.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Added; trigger 'seeked'.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): No longer attempt to finish seek when

readyState changes here; this has been moved up to MediaSource.cpp.

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::waitForSeekCompleted): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
(WebCore::MediaSourcePrivateAVFObjC::seekCompleted): Ditto.
(WebCore::MediaSourcePrivateAVFObjC::seekToTime): Pass through to MediaSourcePrivateClient.
(WebCore::MediaSourcePrivateAVFObjC::fastSeekTimeForMediaTime): Ditto.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Initialize m_seekCompleted.
(WebCore::MockMediaPlayerMediaSource::seeking): Check for an uncompleted seek operation.
(WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
(WebCore::MockMediaPlayerMediaSource::waitForSeekCompleted): Added.
(WebCore::MockMediaPlayerMediaSource::seekCompleted): Added; trigger 'seeked'.

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::waitForSeekCompleted): Pass through to MockMediaPlayerMediaSource.
(WebCore::MockMediaSourcePrivate::seekCompleted): Ditto.

  • platform/mock/mediasource/MockMediaSourcePrivate.h:

Drive-by fixes.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError): Re-order the steps in streamEndedWithError()

to avoid the MediaSource being closed and re-opened by the resulting duration change
operation.

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::remove): Added logging.
(WebCore::SourceBuffer::removeCodedFrames): Ditto.
(WebCore::SourceBuffer::hasFutureTime): Swap an ASSERT for an early-return; it's possible

for currentTime() to be outside of a buffered area.

  • Modules/mediasource/SourceBuffer.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute): Do not issue an additional 'timeupdate' event

after finishSeek() issues one of its own.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::globalDataParserQueue): Allow parsing operations to happen concurrently on

background queues.

LayoutTests:
Eliminate flakiness in the mediasource-duration.html test by not playing
the media while testing seeking and duration.

  • http/tests/media/media-source/mediasource-duration.html:

Update testharness.js to the latest W3C version:

  • http/tests/w3c/resources/testharness.js:
3:14 PM Changeset in webkit [171032] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] update control type when playback state changes
https://bugs.webkit.org/show_bug.cgi?id=134856

Reviewed by Dean Jackson.

Check to make sure the correct type of media controls are showing when playback state
changes so we don't end up with the wrong type of controls during playback.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.HandledVideoEvents): Drive-by fix, call handlePlay on 'playing' instead

of 'play' so controls don't hide too early.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.setPlaying): New, call updateControls to make sure inline

controls are shown when appropriate.

2:55 PM Changeset in webkit [171031] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.1/Source/WebKit2

Merged r171030.

2:49 PM Changeset in webkit [171030] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix typo in prior patch
https://bugs.webkit.org/show_bug.cgi?id=134858

Reviewed by Sam Weinig.

Fix typo

  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultCookieStorageDirectory):

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

[iOS Media] Start playback button should indicate when it can't play
https://bugs.webkit.org/show_bug.cgi?id=134851

Post-commit review with Eric Carlson on IRC.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.updateStatusDisplay): Remove the line that sets the
class on the inline play button.

2:17 PM Changeset in webkit [171028] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS Media] Start playback button should indicate when it can't play
https://bugs.webkit.org/show_bug.cgi?id=134851

Reviewed by Sam Weinig.

If a video element has errors and cannot play, then the start
playback button should use the "broken" icon.

  • Modules/mediacontrols/mediaControlsApple.js: Add a new "failed" class.
  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldHaveStartPlaybackButton): We need a playback button
even when there is an error.
(ControllerIOS.prototype.handleWirelessPickerButtonTouchStart): Don't offer Airplay
if we're in an error state.
(ControllerIOS.prototype.updateStatusDisplay): Set the "failed" class on
the playback buttons if we are in an error state.

1:40 PM Changeset in webkit [171027] by mitz@apple.com
  • 10 edits in trunk/Source/WebKit2

[Cocoa] Client is not notified of same-document navigations
https://bugs.webkit.org/show_bug.cgi?id=134855

Reviewed by Sam Weinig.

  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::didSameDocumentNavigationForFrame): Added navigationID parameter.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient): Ditto.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Added new enum and delegate method.
  • UIProcess/Cocoa/NavigationState.h: Declare override of

API::LoaderClient::didSameDocumentNavigationForFrame. Added flag in
m_navigationDelegateMethods struct.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Initialize new m_navigationDelegateMethods
flag.
(WebKit::toWKSameDocumentNavigationType): Added this helper to convert from internal to API
values.
(WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame): Override to call
the delegate method, if implemented.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didSameDocumentNavigationForFrame): Added navigationID parameter,
which is forwarded to the client.

  • UIProcess/WebPageProxy.h: Added navigationID parameter.
  • UIProcess/WebPageProxy.messages.in: Ditto.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage): Send the navigation ID.
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage): Ditto.
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage): Ditto.

12:10 PM Changeset in webkit [171026] by bshafiei@apple.com
  • 8 edits in tags/Safari-538.46.1/Source/WebKit2

Merged r171024.

12:02 PM Changeset in webkit [171025] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.46.1/Source/WebKit2

Merged r171023.

11:33 AM Changeset in webkit [171024] by oliver@apple.com
  • 8 edits in trunk/Source/WebKit2

Extend WebContent sandbox to allow some extra access for frameworks
https://bugs.webkit.org/show_bug.cgi?id=134844

Reviewed by Sam Weinig.

Open up the webcontent sandbox a bit so that some external frameworks
can work correctly.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::mediaCacheDirectory):

  • UIProcess/WebContext.h:
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformMediaCacheDirectory):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:32 AM Changeset in webkit [171023] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Temporary work around for <rdar://<rdar://problem/17513375>
https://bugs.webkit.org/show_bug.cgi?id=134848

Reviewed by Sam Weinig.

Temporarily work around <rdar://<rdar://problem/17513375> by
dropping the explicit cookie storage if it points out of the
container.

  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultCookieStorageDirectory):

11:13 AM Changeset in webkit [171022] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.46.1/Source

Versioning.

11:07 AM Changeset in webkit [171021] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.46.1

New tag.

Jul 11, 2014:

10:08 PM Changeset in webkit [171020] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

Partition the CSS rules based on the most specific filter of the rightmost fragment
https://bugs.webkit.org/show_bug.cgi?id=134828

Reviewed by Andreas Kling.

Previously, RuleSet was partitioning each rule based on the rightmost filter.
While fast, this had the side effect of putting many selectors with ID match in the class
bucket (because the selectors are generally written starting with the ID).

This patch replace the code of findBestRuleSetAndAdd() by a simple loop going over all
the simple selectors in the rightmost fragment to find the best bucket.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):

  • css/RuleSet.cpp:

(WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
I unified ruleData.hasRightmostSelectorMatchingHTMLBasedOnRuleHash() and hasMultipartSelector().

(WebCore::RuleData::RuleData):
(WebCore::rulesCountForName):
(WebCore::RuleSet::addRule):
I removed the recursive part of findBestRuleSetAndAdd() (which was wrong anyway). The function
was useless so I just moved the algorithm to addRule() directly.

We first loop over all the CSSSelectors related by SubSelector, this correspond to the rightmost fragment.
If a filter with high specificity is found, we add the rule immediately and end there.
If a filter that is not very specific is found, we keep a pointer to the selector to use it later.

(WebCore::RuleSet::findBestRuleSetAndAdd): Deleted.

  • css/RuleSet.h:

(WebCore::RuleData::hasMultipartSelector): Deleted.

8:54 PM Changeset in webkit [171019] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix after r170937.

  • WebCore.vcxproj/WebCoreGeneratedWinCairo.make:

Update and apply changes applied to WebCoreGenerated.make in r170937.

6:49 PM Changeset in webkit [171018] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Crash when using a stale InspectableNode Node
https://bugs.webkit.org/show_bug.cgi?id=134849

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-11
Reviewed by Timothy Hatcher.

  • inspector/PageConsoleAgent.cpp:
5:53 PM Changeset in webkit [171017] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] Separate MediaSource logging into its own log channel
https://bugs.webkit.org/show_bug.cgi?id=134809

Reviewed by Eric Carlson.

Separate out MediaSource logging (which can be quite verbose) into its own log channel,
distinct from the Media log channel. Add some per-sample logging and further sequester that
logging into its own MediaSourceSamples log channel.

Add the MediaSource and MediaSourceSamples channels:

  • platform/Logging.h:

Move LOG(Media) -> LOG(MediaSource):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::~MediaSource):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::isTypeSupported):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::monitorBufferingRate):
(WebCore::SourceBuffer::textTrackAddCues):
(WebCore::SourceBuffer::hasFutureTime):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):

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

Phone numbers that span two lines are not detected.
<rdar://problem/17601146> and https://bugs.webkit.org/show_bug.cgi?id=134808

Reviewed by Tim Horton.

  • editing/Editor.cpp:

(WebCore::Editor::scanSelectionForTelephoneNumbers): After scanning a range from the TextIterator,

create an "edge range" window around the end of the TextIterator range, and scan it.
Also make sure to not accumulate duplicate ranges that might have showed up in both the
TextIterator range and the edge window range.

4:24 PM Changeset in webkit [171015] by enrica@apple.com
  • 8 edits in trunk/Source

Implement textStylingAtPosition in WK2.
https://bugs.webkit.org/show_bug.cgi?id=134843
<rdar://problem/17614981>

Source/WebCore:

Reviewed by Benjamin Poulain.

Adding some exports and making styleForSelectionStart public.

  • WebCore.exp.in:
  • editing/Editor.h:

Source/WebKit2:

Reviewed by Benjamin Poulain.

Adding information about typing attributes to EditorState so
that we can implement textStylingAtPosition.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode):
(WebKit::EditorState::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::EditorState):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView toggleBoldface:]):
(-[WKContentView toggleItalics:]):
(-[WKContentView toggleUnderline:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

3:36 PM Changeset in webkit [171014] by Alan Bujtas
  • 9 edits
    2 adds in trunk

REGRESSION (r168868): eBay 'see all' links fail due to different JS bindings conversion behavior.
https://bugs.webkit.org/show_bug.cgi?id=134841
<rdar://problem/17577563>

Reviewed by Simon Fraser.

Revert back to type int for Element.scroll* APIs in order to preserve exception handling
behavior.

Source/WebCore:
Test: cssom/non-subpixel-scroll-top-left-values.html

  • dom/Element.cpp:

(WebCore::Element::scrollLeft):
(WebCore::Element::scrollTop):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
(WebCore::Element::scrollWidth):
(WebCore::Element::scrollHeight):

  • dom/Element.h:
  • dom/Element.idl:
  • html/HTMLBodyElement.cpp:

(WebCore::adjustForZoom):
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
(WebCore::HTMLBodyElement::scrollHeight):
(WebCore::HTMLBodyElement::scrollWidth):

  • html/HTMLBodyElement.h:

LayoutTests:

  • cssom/non-subpixel-scroll-top-left-values-expected.txt: Added.
  • cssom/non-subpixel-scroll-top-left-values.html: Added.
2:54 PM Changeset in webkit [171013] by Joseph Pecoraro
  • 9 edits in trunk/Source

Web Inspector: Debugger Pause button does not work
https://bugs.webkit.org/show_bug.cgi?id=134785

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:

Minification strips the sourceURL command. Add it back with minification.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • inspector/CommandLineAPIModuleSource.js:

Minification strips the sourceURL command. Add it back with minification.

Source/WebInspectorUI:
Previously we were automatically resuming if we had no recognized
call frames in the call stack we get when paused. However, we
were accidentally skipping over anonymous scripts instead of
just Web Inspector originated call frames.

Now that we allow anonymous scripts we can step into anonymous
scripts (e.g. evals, new Function(...)) as expected.

Also, remove the condition of automatically resuming if the
call stack was empty. The UI handles this with "No Call Frames".

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.debuggerDidPause):

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

Use the bare minimum tile coverage rect when under memory pressure.
<https://webkit.org/b/134837>

When the browser is under critical memory pressure, don't generate any
more tiles than are needed to cover the exposed viewport rect.

Reviewed by Pratik Solanki.

  • page/FrameView.cpp:

(WebCore::FrameView::computeCoverageRect):

2:04 PM Changeset in webkit [171011] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Autocompletion: "background" only has colors, should support others
https://bugs.webkit.org/show_bug.cgi?id=134839

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-11
Reviewed by Timothy Hatcher.

Update and consolidate the background related CSS properties
and include sub-property completions in the shorthand property.

Also take the opportunity to add or update other properties
(-webkit-alt, -webkit-text-decoration-skip, -webkit-aspect-ratio)
and remove unnecessary newlines / commas in the list.

  • UserInterface/Models/CSSKeywordCompletions.js:
1:26 PM Changeset in webkit [171010] by jfernandez@igalia.com
  • 13 edits
    2 adds in trunk

[CSS Grid Layout] Implement justify-self css property
https://bugs.webkit.org/show_bug.cgi?id=134419

Reviewed by Dean Jackson.

This change adds the justify-self property from CSS 3 Box Alignment
and implements the parsing.

From Blink r164685 by <jchaffraix@chromium.org>

Source/WebCore:
Test: fast/css/parse-justify-self.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::isItemPositionKeyword):
(WebCore::CSSParser::parseJustifySelf):

  • css/CSSParser.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EJustifySelf):
(WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment):

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

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

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

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

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

  • fast/css/parse-justify-self-expected.txt: Added.
  • fast/css/parse-justify-self.html: Added.
12:47 PM Changeset in webkit [171009] by Lucas Forschler
  • 6 edits in tags/Safari-538.46

Rollout r170675. <rdar://problem/17643689>.

12:00 PM Changeset in webkit [171008] by betravis@adobe.com
  • 2 edits in trunk/Source/WebCore

[Feature Queries] Feature Query CSS Grammar Productions Should Return a Value
https://bugs.webkit.org/show_bug.cgi?id=134810

Reviewed by Antti Koivisto.

The parsing return values are used to determine if a feature query is valid. Two
grammar productions have been updated to correctly return a value.

Tests exist for this feature but will not be run until the feature is turned on.
See https://bugs.webkit.org/show_bug.cgi?id=134404.

  • css/CSSGrammar.y.in: Adding return values for two valid feature query productions.
11:56 AM Changeset in webkit [171007] by Lucas Forschler
  • 2 edits in tags/Safari-538.46/Source/WebKit2

Merged r171003. <rdar://problem/17642184>

11:54 AM Changeset in webkit [171006] by Lucas Forschler
  • 10 edits in tags/Safari-538.46

Merged r171001. <rdar://problem/17435776>

11:53 AM Changeset in webkit [171005] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[Win] Enable DFG JIT.
https://bugs.webkit.org/show_bug.cgi?id=123615

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-07-11
Reviewed by Mark Lam.

Source/JavaScriptCore:
When the return type of a JIT generated function call is larger than 64-bit (e.g. SlowPathReturnType),
the normal call() implementation cannot be used on 64-bit Windows, because the 64-bit Windows ABI is different in this case.
Also, when generating calls with double arguments, we need to make sure the arguments are put in the correct registers,
since the register allocation differs on 64-bit Windows.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType): Added method to handle function calls where the return value type size is larger than 64-bit.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): Move arguments to correct registers when there are floating point arguments.
(JSC::CCallHelpers::setupArgumentsWithExecStateForCallWithSlowPathReturnType): Added method.

  • jit/JIT.h:

(JSC::JIT::appendCallWithSlowPathReturnType): Added method.

  • jit/JITInlines.h:

(JSC::JIT::appendCallWithExceptionCheckAndSlowPathReturnType): Added method.
(JSC::JIT::callOperation): Call new method.

Source/WTF:

  • wtf/Platform.h:
10:32 AM Changeset in webkit [171004] by Brent Fulgham
  • 11 edits in trunk

Use a separate backdrop element to allow cues to have highlight and background color
https://bugs.webkit.org/show_bug.cgi?id=134821
<rdar://problem/15999721>

Reviewed by Eric Carlson.

Source/WebCore:
Add a new <div> element wrapping the existing cue <span>. This allows
us to have a highlight on the cue (in the <span> background), as well
as an overall background color.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-text-track-display-backdrop): New markup for
the backdrop element of the caption.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::cueBackdropShadowPseudoId): Added to
allow user customization of the cue backdrop.
(WebCore::VTTCue::initialize): Rename the old "m_cueBackgroundBox" to
"m_cueHighlightBox" and add a new "m_cueBackdropBox" member.
(WebCore::VTTCue::updateDisplayTree): Update for m_cueHighlightBox.
(WebCore::VTTCue::getDisplayTree): Make m_cueHighlightBox a child
of the new m_cueBackdropBox element, and add m_cueBackdropBox to
the display tree.

  • html/track/VTTCue.h:

(WebCore::VTTCue::element):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
Fix for missing caption style updates. Even if we are already
listening for caption changes, we still want to update the new
instance's style sheet to match.
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters): Take the new
<div> into consideration when looking for the Cue text element.

LayoutTests:
Updated tests for new formatting logic.

  • platform/mac/media/track/track-cue-rendering-horizontal-expected.png:
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.txt:
10:15 AM Changeset in webkit [171003] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Tighten WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=134834

Reviewed by Sam Weinig.

Define a much tighter sandbox profile for the WebContent process

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:29 AM Changeset in webkit [171002] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r170163?): Web content shifts revealing space equivalent to the find bar when clicking a link while a phrase is targeted via Cmd+F
https://bugs.webkit.org/show_bug.cgi?id=134833
<rdar://problem/17580021>

Reviewed by Zalan Bujtas.

Some versions of OS X Safari can't handle the new unfreeze timing. Revert back to DidFirstLayout on Mac.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidLayout):

8:27 AM Changeset in webkit [171001] by Alan Bujtas
  • 10 edits in trunk

Subpixel layout: return integral results for offset*, client*, scroll* by default.
https://bugs.webkit.org/show_bug.cgi?id=134651

Reviewed by Simon Fraser.

Revert to returning integral values for Element.offset* client* scroll* by default.
Fractional values break number of sites(tight design) and JS frameworks(fail to handle fractional values).

Since snapped dimension depends on both the original point and the width/height of the box,
we need to call RenderBoxModelObject::pixelSnapped*() helpers, instead of round().

Covered by existing tests

Source/WebCore:

  • dom/Element.cpp:

(WebCore::subpixelMetricsEnabled):
(WebCore::convertToNonSubpixelValueIfNeeded):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):

  • page/Settings.in:

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferencesRefPrivate.h:

LayoutTests:

  • cssom/subpixel-offsetleft-top-width-height-values-expected.txt:
7:19 AM Changeset in webkit [171000] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
https://bugs.webkit.org/show_bug.cgi?id=134824
<rdar://problem/17612729>

Reviewed by Simon Fraser.

Transparent layer clipping needs device pixel offset adjusting.

Source/WebCore:
Test: fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position-expected.html: Added.
  • fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html: Added.
5:26 AM Changeset in webkit [170999] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r170995.
https://bugs.webkit.org/show_bug.cgi?id=134831

Causing odd crashes in debug builds (Requested by zdobersek on
#webkit).

Reverted changeset:

"[WTF] Add the move constructor, move assignment operator for
HashTable"
https://bugs.webkit.org/show_bug.cgi?id=130772
http://trac.webkit.org/changeset/170995

5:15 AM Changeset in webkit [170998] by Carlos Garcia Campos
  • 1 edit
    1 delete in trunk/Source/WebCore

Unreviewed. Remove unused file.

  • html/shadow/MediaControlsGtk.h: Removed.
5:12 AM Changeset in webkit [170997] by Carlos Garcia Campos
  • 2 edits in trunk

[GTK] Enable VIDEO_TRACK by default
https://bugs.webkit.org/show_bug.cgi?id=134801

Reviewed by Philippe Normand.

  • Source/cmake/OptionsGTK.cmake:
3:42 AM Changeset in webkit [170996] by Manuel Rego Casasnovas
  • 33 edits in trunk

[CSS Grid Layout] Update grid-auto-flow to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=134057

Reviewed by Sergio Villar Senin.

Source/WebCore:
In last versions of the spec grid-auto-flow syntax has changed. New
syntax is:
[ row | column ] && dense? | stack && [ row | column ]?

Implemented parsing for new syntax and added/modified test cases in
current layout tests.

For the moment, the implementation keeps working in the same way, but
using "stack" value for grid-auto-flow property instead of "none". This
should be fixed in a follow-up patch once "stack" is properly
implemented.

Also "dense" needs to be reviewed. Right now auto-placement algorithm is
always "dense" and never "sparse".

No new tests, update current tests to add new cases.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Adapt to new syntax.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Removed grid-auto-flow as it
is not a keyword anymore.
(WebCore::isKeywordPropertyID): Ditto.
(WebCore::CSSParser::parseValue): Add specific method for parsing
grid-auto-flow.
(WebCore::CSSParser::parseGridShorthand): Adapt parsing for
grid-auto-flow property inside the shorthand.
(WebCore::isValidGridAutoFlowId): Helper method to check if the CSSValue
id is a valid keyword for grid-auto-flow property.
(WebCore::CSSParser::parseGridAutoFlow): Implement new parsing for
grid-auto-flow.

  • css/CSSParser.h: Method header for grid-auto-flow parsing.
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator GridAutoFlow): Deleted.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.

  • css/CSSValueKeywords.in: Add new keywords required by grid-auto-flow:

"dense" and "stack".

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Remove
default handler as grid-auto-flow is not a keyword now.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty): Implement particular handler
for new grid-auto-flow syntax.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid): Keep old "none" behavior as
"stack" behavior for the moment.
(WebCore::RenderGrid::autoPlacementMajorAxisDirection): Use the new
helper methods in RenderStyle.
(WebCore::RenderGrid::autoPlacementMinorAxisDirection): Ditto.

  • rendering/style/GridResolvedPosition.cpp:

(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle): Again
keep old "none" behavior for "stack".

  • rendering/style/RenderStyle.h: Add new helper methods to know the

direction and algorithm of grid-auto-flow property.

  • rendering/style/RenderStyleConstants.h: Redefine GridAutoFlow enum

using flags for algorithm and direction.

  • rendering/style/StyleGridData.h: Change m_gridAutoFlow type to

unsigned.

LayoutTests:
Adapted current tests to the new syntax. Keeping old "none" behavior
using "stack".

Add new use cases to cover the new syntax to grid-auto-flow-get-set.html
and grid-shorthand-get-set.html.

  • fast/css-grid-layout/grid-auto-flow-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-get-set.html:
  • fast/css-grid-layout/grid-auto-flow-resolution.html:
  • fast/css-grid-layout/grid-auto-flow-update-expected.txt:
  • fast/css-grid-layout/grid-auto-flow-update.html:
  • fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
  • fast/css-grid-layout/grid-item-z-index-change-repaint.html:
  • fast/css-grid-layout/grid-item-z-index-stacking-context.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
  • fast/css-grid-layout/resources/grid.css:

(.gridAutoFlowStack):
(.gridAutoFlowNone): Deleted.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • ietestcenter/css3/grid/grid-column-001.htm:
  • ietestcenter/css3/grid/grid-column-002.htm:
  • ietestcenter/css3/grid/grid-column-003.htm:
  • svg/css/getComputedStyle-basic-expected.txt:
1:16 AM Changeset in webkit [170995] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WTF

[WTF] Add the move constructor, move assignment operator for HashTable
https://bugs.webkit.org/show_bug.cgi?id=130772

Reviewed by Darin Adler.

HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
copies when moves can be performed.

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):

Jul 10, 2014:

11:17 PM Changeset in webkit [170994] by Lucas Forschler
  • 10 edits in tags/Safari-538.46/Source

Merge patch from <rdar://problem/17631537>.

11:01 PM Changeset in webkit [170993] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

10:57 PM Changeset in webkit [170992] by Lucas Forschler
  • 1 copy in tags/Safari-538.46

New Tag.

10:06 PM Changeset in webkit [170991] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger Continue button is incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=134786

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-10
Reviewed by Timothy Hatcher.

Before this patch everything in the DebuggerDashboardView was flexing.
Normally, if the contents were not too wide, this would just behave
as expected and be centered. If the content was too wide, then each
element would flex uniformly and overlap uniformly. That was not expected.

This patch changes makes everything but the link have a non-flexible
size. If the link (at the end) flexs it will have a nice ellipsis
text truncation, and the rest of the content will be left justified.

This also fixes a few other minor issues seen in the view.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger .navigation-bar):
Reduce the complexity, give the nav bar (the resume button) some simple padding.

(.dashboard.debugger > div):
Make everything non-flex by default.

(.dashboard.debugger > .location):
The location will have an inner element flex, so make it flex.

(.dashboard.debugger > .location > *):
Make everything in .location non-flex by default.

(.dashboard.debugger > .location .go-to-link):
Make the link flex and truncate cleanly.

(.dashboard.debugger > .location .function-name):
Fix vertical alignment when the toolbar has small icons.

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
Fix class name spelling.

9:26 PM Changeset in webkit [170990] by jinwoo7.song@samsung.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed EFL build fix after r170970.

  • UIProcess/efl/WebContextEfl.cpp:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

8:50 PM Changeset in webkit [170989] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

REGRESSION(r170970) REGRESSION(r170974): [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=134825

Unreviewed GTK build fix.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-07-10

  • Shared/SessionState.h: Put ifdefs for ViewSnapshot on Mac port.
  • Shared/WebBackForwardListItem.h: Idem.
  • UIProcess/gtk/WebContextGtk.cpp:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory): Implement skeleton.

7:29 PM Changeset in webkit [170988] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] It should be safe to call WKContentViewInteraction's cleanupInteraction multiple times
https://bugs.webkit.org/show_bug.cgi?id=134820

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-07-10
Reviewed by Andreas Kling.

If a view is destroyed just after a crash, "cleanupInteraction" is called twice: once on crash,
once on dealloc.

The code handling _interactionViewsContainerView is using KVO to monitor transform changes. It is not safe
to remove the observer if we are not already observing on that view.

To solve the problem, this patch makes the cleanup actually remove the view so that setup and cleanup
are completely symmetrical. If cleanup is called twice, the second time would not enter the branch because
the view is already nil.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):

5:49 PM Changeset in webkit [170987] by Simon Fraser
  • 3 edits
    2 adds in trunk/Source/WebKit2

[iOS WK2] Move WKInspectorHighlightView to its own file
https://bugs.webkit.org/show_bug.cgi?id=134819

Reviewed by Joseph Pecoraro.

WKInspectorHighlightView brought a lot of path/quad-related code into WKContentView.mm,
so move it into its own file.

  • UIProcess/WKInspectorHighlightView.h: Added.
  • UIProcess/WKInspectorHighlightView.mm: Added.

(-[WKInspectorHighlightView dealloc]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKInspectorHighlightView initWithFrame:]): Deleted.
(-[WKInspectorHighlightView dealloc]): Deleted.
(-[WKInspectorHighlightView _removeAllLayers]): Deleted.
(-[WKInspectorHighlightView _createLayers:]): Deleted.
(findIntersectionOnLineBetweenPoints): Deleted.
(quadIntersection): Deleted.
(layerPathWithHole): Deleted.
(layerPath): Deleted.
(-[WKInspectorHighlightView _layoutForNodeHighlight:]): Deleted.
(-[WKInspectorHighlightView _layoutForRectsHighlight:]): Deleted.
(-[WKInspectorHighlightView update:]): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
5:12 PM Changeset in webkit [170986] by mmaxfield@apple.com
  • 5 edits
    3 adds in trunk

[iOS] Pasting rich content does not perform a two-step paste
https://bugs.webkit.org/show_bug.cgi?id=134795

Reviewed by Benjamin Poulain.

Source/WebCore:
UIKit requires writing something (anything!) to a particular pasteboard
during copy in order to flag the content as rich. When a paste occurs,
UIKit will read this flag and perform a two-step paste.

Test: platform/ios-sim/editing/pasteboard/two-step-paste.html

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write):

LayoutTests:
Copy and paste some text, and make sure that the two step paste occurred.
The mechanism for detecting this is whether or not styles have changed appropriately.

  • platform/ios-sim/editing/pasteboard/two-step-paste-expected.txt: Added.
  • platform/ios-sim/editing/pasteboard/two-step-paste.html: Added.

Tools:
Two-step paste requires setting InputViewObeysDOMFocus on the UIWebBrowserView.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):

5:04 PM Changeset in webkit [170985] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Update the ChangeLog per Pratik's review comments

5:02 PM Changeset in webkit [170984] by aestes@apple.com
  • 5 edits in trunk/Source

[iOS] Some QuickLook documents are not displayed as previews
https://bugs.webkit.org/show_bug.cgi?id=134788

Reviewed by Pratik Solanki.

ResourceRequest::isMainResourceRequest() is not reliable (e.g. ResourceRequests reconstituted from an
NSURLRequest have no way to set this bit properly) and should probably be removed. Instead of using
isMainResourceRequest() to check if a QuickLookHandle should be created when the Network Process is in use,
just check if the current ResourceLoader is the same as the DocumentLoader's ResourceLoader.

No new tests. QuickLook is not testable from WebKit.

  • platform/network/ios/QuickLook.mm:

(WebCore::QuickLookHandle::create):

4:57 PM Changeset in webkit [170983] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.45.1/Source/WebKit2

Merged r170979. <rdar://problem/17632687>

4:46 PM Changeset in webkit [170982] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r170935): WKWebView is always transparent until the first layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134818
<rdar://problem/17632468>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(scrollViewBackgroundColor):
r170935 made it so that we would initialize the scroll view background color to an
invalid color until the first layer tree commit. We should go with white instead.

4:26 PM Changeset in webkit [170981] by enrica@apple.com
  • 12 edits in trunk/Source/WebKit2

Add a mechanism to notify the UIProcess when an editing command is done executing.
https://bugs.webkit.org/show_bug.cgi?id=134807

Reviewed by Tim Horton.

Some editing commands have an effect on some parts of the system that
run inside the UIProcess. A good example are the cursor movement commands
that require an update of the autocorrection/autosuggestion machinery.
This patch adds a way to reliably know when the command has been executed
in the WebProcess. A previous attempt at solving this problem was added in
r170858 and was partially reverted in r170948.
The change also removes the selectionWillChange notification added in r170858.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::editorStateChanged):

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

(WebKit::PageClientImpl::selectionWillChange): Deleted.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView executeEditCommandWithCallback:]):
(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):
(-[WKContentView _selectionWillChange]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::notifySelectionWillChange): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::executeEditCommandWithCallback):

4:20 PM Changeset in webkit [170980] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[Mac] NSWindow warning: adding an unknown subview opening detached Inspector
https://bugs.webkit.org/show_bug.cgi?id=134813

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-07-10
Reviewed by Timothy Hatcher.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController window]):
Use a selector that will avoid the warning message.

Source/WebKit2:

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::createInspectorWindow):
Use a selector that will avoid the warning message.

4:17 PM Changeset in webkit [170979] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Remove use of container relative restrictions in the network process sandbox
https://bugs.webkit.org/show_bug.cgi?id=134816

Reviewed by Anders Carlsson.

As i'm tidying up the various sandboxes and that's meaning we
need to reduce some file restrictions in the network process.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
3:26 PM Changeset in webkit [170978] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS WebKit2] Don't uninstall the memory pressure listener after first signal.
<https://webkit.org/b/134814>

The call to uninstall() should not be made on iOS since iOS doesn't use the
hold-off mechanism in MemoryPressureHandler.

Reviewed by Benjamin Poulain.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::respondToMemoryPressure):

2:35 PM Changeset in webkit [170977] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed iOS build fix after r170974. Define id if building a non ObjC file.

  • UIProcess/mac/ViewSnapshotStore.h:
2:28 PM Changeset in webkit [170976] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] Overlapping appended ranges must cause the decoder to flush and re-enqueue.
https://bugs.webkit.org/show_bug.cgi?id=134805

Reviewed by Eric Carlson.

When appending a range of media data which overlaps with an existing range, SourceBuffer
must cause the decoder to flush and re-enqueue samples. Those samples removed by appending
the overlapping range may have already been enqueued for display, and unless the decode
queue is flushed, corruption or decode errors may occur as the new samples are enqueued for
display.

Add a boolean flag onto TrackBuffer to indicate whether the decoder needs to be flushed and
re-enqueued the next time an append operation completes. Set this flag whenever samples are
removed due to overlapping or an explicit call to removeCodedFrames(). Move the contents of
sourceBufferPrivateSeekToTime() (which previously did flushing and re-enqueueing) into a new
function, reenqueueMediaForTime(), which can be called from sourceBufferPrivateAppendComplete().

Drive-by fix: findSyncSampleAfterDecodeIterator() would return the passed in iterator if that
sample is a sync-sample. Fix this to correctly return the next sync sample.

Drive-by fix: Use a SampleMap, rather than a DecodeOrderSampleMap, to track erased samples
so that the erasedSamples are correctly accounted for in both presentation and decode orders.

  • Modules/mediasource/SampleMap.cpp:

(WebCore::SampleMap::empty): Add convenience method.
(WebCore::DecodeOrderSampleMap::findSyncSampleAfterDecodeIterator): Drive-by fix.

  • Modules/mediasource/SampleMap.h:

(WebCore::SampleMap::decodeOrder): Added const accessor.
(WebCore::SampleMap::presentationOrder): Ditto.
(WebCore::SampleMap::addRange): Added.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Add needsReenqueeing flag.
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Move contents into reenqueueMediaForTime().
(WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueMediaForTime() if necessary.
(WebCore::SourceBuffer::removeCodedFrames): Set needsReenqueing.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::provideMediaData): Drive-by fix.
(WebCore::SourceBuffer::reenqueueMediaForTime): Moved from sourceBufferPrivateSeekToTime().

  • Modules/mediasource/SourceBuffer.h:
1:48 PM Changeset in webkit [170975] by psolanki@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERT in SharedBuffer::maybeAppendDataArray() on MobileSafari launch
https://bugs.webkit.org/show_bug.cgi?id=134812
<rdar://problem/17628434>

Reviewed by Joseph Pecoraro.

Fix bug in my fix in r170930. Initialize the badly named m_shouldUsePurgeableMemory field to
false. This field indicates when it is okay to use purgeable memory and is set to true once
the resource is finished loading. By setting it to true in the constructor we were creating
purgeable memory while the resource was still being loaded and this triggered the assert.

No new tests. Should be covered by existing tests.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

1:33 PM Changeset in webkit [170974] by timothy_horton@apple.com
  • 20 edits in trunk/Source/WebKit2

Store ViewSnapshots directly on the WebBackForwardListItem
https://bugs.webkit.org/show_bug.cgi?id=134667
<rdar://problem/17082639>

Reviewed by Dan Bernstein.

Make ViewSnapshot a refcounted class. Store it directly on the back-forward item
instead of in a side map referenced by UUID. Switch to a very simple LRU eviction model for now.
This fixes a ton of snapshot management bugs; for example, we would start throwing out snapshots
in the page that was actively being interacted with *first* when evicting snapshots, instead of
preferring older snapshots. Additionally, we would not throw away snapshots when back forward items
became unreachable.

There is definitely room for improvement of the eviction mechanism, but this is closer to a time-tested implementation.

  • Shared/SessionState.h:

Keep a ViewSnapshot instead of a UUID on the BackForwardListItemState.

  • Shared/WebBackForwardListItem.h:

Fix some indented namespace contents.

(WebKit::WebBackForwardListItem::snapshot):
(WebKit::WebBackForwardListItem::setSnapshot):
(WebKit::WebBackForwardListItem::setSnapshotUUID): Deleted.
(WebKit::WebBackForwardListItem::snapshotUUID): Deleted.
Switch the snapshot getter/setter to operate on ViewSnapshots instead of UUIDs.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):

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

(WebKit::WebPageProxy::takeViewSnapshot):

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

(WebKit::PageClientImpl::takeViewSnapshot):

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

(WebKit::PageClientImpl::takeViewSnapshot):
Adopt ViewSnapshot::create, return a PassRefPtr, and class-ify ViewSnapshot.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

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

(WebKit::ViewGestureController::shouldUseSnapshotForSize):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):
Grab the ViewSnapshot directly from the WebBackForwardListItem, and adopt the new functions.

  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:

(WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
Rename discardSnapshots to discardSnapshotImages, because we're really only discarding
the images; the render tree size/background color "snapshot" remains and is useful.

  • UIProcess/mac/ViewSnapshotStore.h:

(WebKit::ViewSnapshot::setRenderTreeSize):
(WebKit::ViewSnapshot::renderTreeSize):
(WebKit::ViewSnapshot::setBackgroundColor):
(WebKit::ViewSnapshot::backgroundColor):
(WebKit::ViewSnapshot::setDeviceScaleFactor):
(WebKit::ViewSnapshot::deviceScaleFactor):
(WebKit::ViewSnapshot::imageSizeInBytes):
(WebKit::ViewSnapshot::surface):
(WebKit::ViewSnapshot::size):
(WebKit::ViewSnapshot::creationTime):
Make ViewSnapshot a refcounted class.
Add create functions which take an image (or slot ID), and relevant sizes.
It is expected that a ViewSnapshot is created with an image, and it is only possible
to remove that image, never to replace it. A new ViewSnapshot is required in that case.
Add setters for things that ViewSnapshotStore sets on the snapshot after the PageClient
retrieves it from the view. Add getters for things that the ViewGestureControllers need.

Remove removeSnapshotImage, getSnapshot, and the snapshot map.

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::~ViewSnapshotStore):
(WebKit::ViewSnapshotStore::didAddImageToSnapshot):
(WebKit::ViewSnapshotStore::willRemoveImageFromSnapshot):
Manage m_snapshotCacheSize and m_snapshotsWithImages via didAddImageToSnapshot and willRemoveImageFromSnapshot.
willRemoveImageFromSnapshot will -always- be called before the ViewSnapshot is destroyed.

(WebKit::ViewSnapshotStore::pruneSnapshots):
Switch to a simple LRU eviction model. As previously mentioned, it's possible to do better, but
this is much less broken than the previous implementation.

(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::discardSnapshotImages):
(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::~ViewSnapshot):
(WebKit::ViewSnapshot::hasImage):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::asLayerContents):
If a surface is Empty when it comes back from being volatile, throw away the surface
and notify the Store to remove it from m_snapshotCacheSize (via clearImage()).

(WebKit::ViewSnapshotStore::removeSnapshotImage): Deleted.
(WebKit::ViewSnapshotStore::getSnapshot): Deleted.
(WebKit::ViewSnapshotStore::discardSnapshots): Deleted.

1:24 PM Changeset in webkit [170973] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS WebKit2] Some memory pressure relief tweaks.
<https://webkit.org/b/134811>

Split memory pressure relief into critical and non-critical sections.
Non-critical relief is for clearing out things that are really not
essential, e.g unused font data, text measurement caches, etc.

On iOS, only flip the "WebKit is under memory pressure" flag when we
are under *critical* memroy pressure, rather than doing it early on
and gimping ourselves because other processes are too big.

Also added logging for when we transition in/out of system pressure.

Reviewed by Geoffrey Garen.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):
(WebCore::MemoryPressureHandler::releaseMemory):

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::ReliefLogger::loggingEnabled):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::install):

1:04 PM Changeset in webkit [170972] by Beth Dakin
  • 16 edits in trunk/Source

Need Setting/WKPreference that allows clients to prevent scrollbars from drawing
on a secondary thread
https://bugs.webkit.org/show_bug.cgi?id=134778
-and corresponding-
<rdar://problem/17595333>

Reviewed by Tim Horton.

Source/WebCore:
This is a requirement for some types of performance tests. The patch adds a new
virtual function to ScrollableArea that forces subclasses to indicate the value of
the Setting. This is required because Scrollbar and ScrollableArea can’t get to
Settings on their own.

  • page/FrameView.cpp:

(WebCore::FrameView::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

  • page/FrameView.h:
  • page/Settings.in:
  • platform/ScrollableArea.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):

  • platform/win/PopupMenuWin.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

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

(WebCore::RenderListBox::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

  • rendering/RenderListBox.h:

Source/WebKit2:
This is a requirement for some types of performance tests.

New pref.

  • Shared/WebPreferencesDefinitions.h:

PDFPlugin has to implement this new ScrollableArea virtual function to indicate
the Setting’s value.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

New pref.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

12:31 PM Changeset in webkit [170971] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Frequent assertion failures when swiping back

Reviewed by Dan Bernstein.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
Don't create an unused VoidCallback. It will assert when destroyed without being called.

11:33 AM Changeset in webkit [170970] by oliver@apple.com
  • 7 edits in trunk/Source/WebKit2

Pass sandbox extension for GL cache over to webprocess
https://bugs.webkit.org/show_bug.cgi?id=134806

Reviewed by Anders Carlsson.

Add additional WebProcess parameters to pass an extension
that allows access to the opengl cache directory in the
host application's container.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::openGLCacheDirectory):

  • UIProcess/WebContext.h:
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:24 AM Changeset in webkit [170969] by beidson@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Fix my mis-merged ChangeLog from r170966

10:52 AM Changeset in webkit [170968] by commit-queue@webkit.org
  • 4 edits in trunk

Enable same features on all Windows ports.
https://bugs.webkit.org/show_bug.cgi?id=134715

Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-10
Reviewed by Brent Fulgham.

Source/WTF:

  • wtf/Platform.h:

Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo.

WebKitLibraries:

  • win/tools/vsprops/FeatureDefinesCairo.props:

Made identical to FeatureDefines.props.

10:07 AM Changeset in webkit [170967] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

iOS build fix.

  • WebProcess/WebPage/ServicesOverlayController.h:
9:19 AM Changeset in webkit [170966] by beidson@apple.com
  • 6 edits in trunk/Source

Phone number highlights should always be visible if the mouse hovers over.
<rdar://problem/17527476> and https://bugs.webkit.org/show_bug.cgi?id=134784

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit2:
This is a fairly extensive rewrite of ServicesOverlayController.
It allows one selection highlight for the entire selection, and as many telephone number highlights as there are numbers.
If a telephone number highlight is hovered over, it wins and is painted.
If no telephone number highlight is hovered but the selection highlight is, then it is painted.

The purposes of each method are self evident by their name, and the concepts are mostly the same as they used to be.

The exception is establishHoveredTelephoneHighlight which gets a more detailed explanation below.

  • Platform/Logging.h: Add a Services logging channel.
  • WebProcess/WebPage/ServicesOverlayController.h:

(WebKit::TelephoneNumberData::TelephoneNumberData):

  • WebProcess/WebPage/mac/ServicesOverlayController.mm:

(WebKit::ServicesOverlayController::ServicesOverlayController):
(WebKit::ServicesOverlayController::selectionRectsDidChange):
(WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
(WebKit::ServicesOverlayController::clearHighlightState):
(WebKit::ServicesOverlayController::drawRect):
(WebKit::ServicesOverlayController::drawSelectionHighlight):
(WebKit::ServicesOverlayController::maybeDrawTelephoneNumberHighlight):
(WebKit::ServicesOverlayController::drawHighlight):
(WebKit::ServicesOverlayController::clearSelectionHighlight):
(WebKit::ServicesOverlayController::clearHoveredTelephoneNumberHighlight):
(WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight): Starts walking the telephone number ranges and

creating a highlight for each one that doesn’t already have a highlight. If that highlight is also being hovered by
the mouse, then it is set as the hovered telephone number highlight and the method stops creating new highlights.

(WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
(WebKit::ServicesOverlayController::mouseEvent):
(WebKit::ServicesOverlayController::handleClick):
(WebKit::ServicesOverlayController::drawTelephoneNumberHighlight): Deleted.
(WebKit::ServicesOverlayController::drawCurrentHighlight): Deleted.

9:13 AM Changeset in webkit [170965] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][CMake] Add a 'distcheck' target
https://bugs.webkit.org/show_bug.cgi?id=130675

.:
Reviewed by Gustavo Noronha Silva.

  • Source/PlatformGTK.cmake: Add distcheck target.

Tools:
Patch by Carlos Garcia Campos <cgarcia@igalia.com> and Martin Robinson <mrobinson@igalia.com> on 2014-07-10
Reviewed by Gustavo Noronha Silva.

Add --check option to make-dist script that builds and installs the tarball.

  • gtk/make-dist.py:

(Distcheck.init):
(Distcheck.extract_tarball): Extratc the tarball.
(Distcheck.configure): Run cmake.
(Distcheck.configure.create_dir): Helper function to create a directory.
(Distcheck.build): Run make.
(Distcheck.install): Run make install.
(Distcheck.clean): Clean up the extracted tarball.
(Distcheck.check): Run all previous methods in order.

  • gtk/manifest.txt: Add missing file.
9:11 AM Changeset in webkit [170964] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk

[GTK] Use the same default options for production builds that previous stable releases
https://bugs.webkit.org/show_bug.cgi?id=134589

Reviewed by Martin Robinson.

.:
Change the default value of some features to match our stable releases.
Add FindCairoGL to find cairo-gl libraries and make accelearetd 2D
canvas depend on whether cairo-gl is found.

  • Source/cmake/FindCairoGL.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:

Tools:
Make sure all features enabled in production builds are also
enabled in developer mode.

  • Scripts/webkitperl/FeatureList.pm: Enable ACCELERATED_2D_CANVAS

and CSS_FILTERS for the GTK port.

8:39 AM Changeset in webkit [170963] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Assertions or crashes under _takeViewSnapshot when restoring windows
https://bugs.webkit.org/show_bug.cgi?id=134792

Reviewed by Simon Fraser.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
Taking a window-server snapshot of a non-visible window tends to not succeed.

  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::createFromImage):

5:23 AM Changeset in webkit [170962] by jinwoo7.song@samsung.com
  • 1 edit
    4 adds in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170304 and r170619.

  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.png: Added after r170304.
  • platform/efl/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt: Added after r170304.
  • platform/efl/fast/text/indic-expected.png: Added after r170619.
  • platform/efl/fast/text/indic-expected.txt: Added after r170619.
5:14 AM Changeset in webkit [170961] by jinwoo7.song@samsung.com
  • 1 edit
    1 add in trunk/LayoutTests

[EFL] Unreviewed EFL gardening.

Rebaseline tests after r170207.

  • platform/efl/fast/text/khmer-lao-font-expected.txt: Added.
3:09 AM Changeset in webkit [170960] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

[XHR] overrideMimeType() should be able to change encoding in HEADERS RECEIVED state
https://bugs.webkit.org/show_bug.cgi?id=128968

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-07-10
Reviewed by Alexey Proskuryakov.

Source/WebCore:
Moved response encoding computation from didReceiveResponse to didReceiveData, just before the decoder is instantiated.
This allows overrideMimeType to be changed within readystatechange event callback and have an impact on selected encoding.

Test: http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didReceiveResponse): Removed m_responseEncoding computation from response and mimeTypeOverride.
(WebCore::XMLHttpRequest::didReceiveData): Added m_responseEncoding computation from response and mimeTypeOverride.

LayoutTests:
Added test equivalent to http://w3c-test.org/web-platform-tests/master/XMLHttpRequest/overridemimetype-headers-received-state-force-shiftjis.htm
The test sets overrideMimeType when xhr state is changed to HEADERS RECEIVED.

  • http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis-expected.txt: Added.
  • http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html: Added.
  • http/tests/xmlhttprequest/resources/get-content.php: Added.
Note: See TracTimeline for information about the timeline view.