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

Timeline



Apr 3, 2015:

11:08 PM Changeset in webkit [182342] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

MediaDevices possesses a vtable despite using ImplementationLacksVTable IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=143367

Reviewed by Eric Carlson.

  • Modules/mediastream/MediaDevices.idl: MediaDevices ends up with a vtable

because of inheriting from ContextDestructionObserver. This collides with
the ImplementationLacksVTable IDL attribute, causing compilation errors
with Clang. Since MediaDevices isn't being inherited from, but will still
end up with a vtable, the IDL attribute should be removed.

6:55 PM Changeset in webkit [182341] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Attempted build fix.

  • UIProcess/API/mac/WKView.mm:
5:42 PM Changeset in webkit [182340] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix the firing of the ReachedSessionRestorationRenderTreeSizeThreshold milestone on iOS
https://bugs.webkit.org/show_bug.cgi?id=143394

Reviewed by Tim Horton.

A client reshuffle at some point broke the dispatch of the ReachedSessionRestorationRenderTreeSizeThreshold
milestone. Fix by using WebPageProxy::didLayout() to fire the milestone.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didCommitLayerTree):

5:07 PM Changeset in webkit [182339] by timothy_horton@apple.com
  • 4 edits in trunk/LayoutTests

fast/fixed-layout/fixed-layout.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=143379

Reviewed by Simon Fraser.

Un-flakify the fixed layout test.

  • fast/css-grid-layout/flex-content-sized-columns-resize-expected.html:

Remove a mistaken line in the original test; this function doesn't exist in WebKit
and was presumably ported directly from the Blink test (and then never noticed because
JS exceptions thrown in -expected files go nowhere).

  • fast/fixed-layout/fixed-layout.html:

Make the fixed layout test less racy by waiting for the resize event (which can be
very asynchronous). Also, force a layout before resizing to ensure that we
always do get a resize event.

4:52 PM Changeset in webkit [182338] by Beth Dakin
  • 8 edits in trunk/Source/WebKit2

https://bugs.webkit.org/show_bug.cgi?id=143387
Improvements to webkitmouseforce web API
-and corresponding-
rdar://problem/20281808
rdar://problem/20281853

Reviewed by Darin Adler.

This patch:

  1. Dispatches webkitmouseforceup and webkitmouseforceclick at the right time.
  2. Dispatches webkitmouseforcechanged from mousedown all the way through through

mouseup.

  1. Uses force values from pressureChangeWithEvent instead of the immediate action

gesture recognizer.

Listen for this NSResponder method, and pass the relevant info to WebPageProxy to
dispatch to the web process.

  • UIProcess/API/mac/WKView.mm:

(-[WKView pressureChangeWithEvent:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::inputDeviceForceDidChange):
(WebKit::WebPageProxy::immediateActionDidUpdate):

  • UIProcess/WebPageProxy.h:

The web process still needs to know when the immediate action gesture recognizer
is updating, but it doesn’t need the force information. That will come from
pressureChangeWithEvent.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):

Cache m_lastForceStage so that we can determine if we are
transitioning to a new stage.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:

New message for InputDeviceForceDidChange and modified message for
ImmediateActionDidUpdate

  • WebProcess/WebPage/WebPage.messages.in:

inputDeviceForceDidChange now takes care of dispatching mouseforcechanged,
mouseforcedown, mouseforceup, and mouseforceclick.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::inputDeviceForceDidChange):

We still need to keep track of the ImmediateActionStages in WebCore::EventHandler
so that we can have the right default behavior on mouseup based on whether or not
that action began and was completed. (In other words, to ensure we don’t navigate
to a link after force clicking it.)
(WebKit::WebPage::immediateActionDidUpdate):
(WebKit::WebPage::immediateActionDidComplete):

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

Add Options::jitPolicyScale() as a single knob to make all compilations happen sooner.
<https://webkit.org/b/143385>

Reviewed by Geoffrey Garen.

For debugging purposes, sometimes, we want to be able to make compilation happen
sooner to see if we can accelerate the manifestation of certain events / bugs.
Currently, in order to achieve this, we'll have to tweak multiple JIT thresholds
which make up the compilation policy. Let's add a single knob that can tune all
the thresholds up / down in one go proportionately so that we can easily tweak
how soon compilation occurs.

  • runtime/Options.cpp:

(JSC::scaleJITPolicy):
(JSC::recomputeDependentOptions):

  • runtime/Options.h:
3:18 PM Changeset in webkit [182336] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

is* API methods should be @properties
https://bugs.webkit.org/show_bug.cgi?id=143388

Reviewed by Mark Lam.

This appears to be the preferred idiom in WebKit, CA, AppKit, and
Foundation.

  • API/JSValue.h: Be @properties.
  • API/tests/testapi.mm:

(testObjectiveCAPI): Use the @properties.

2:44 PM Changeset in webkit [182335] by achristensen@apple.com
  • 9 edits in trunk/Source/WebCore

[Content Extensions] Add memory reporting.
https://bugs.webkit.org/show_bug.cgi?id=143386

Reviewed by Benjamin Poulain.

  • contentextensions/CompiledContentExtension.cpp:

(WebCore::ContentExtensions::CompiledContentExtension::globalDisplayNoneSelectors):

  • contentextensions/CompiledContentExtension.h:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::globalDisplayNoneStyleSheet):

  • contentextensions/ContentExtension.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):

  • contentextensions/ContentExtensionsDebugging.h:
  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::getBits):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsFromDFARoot):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):

  • contentextensions/DFABytecodeInterpreter.h:

(WebCore::ContentExtensions::DFABytecodeInterpreter::DFABytecodeInterpreter):
(WebCore::ContentExtensions::DFABytecodeInterpreter::~DFABytecodeInterpreter):
Keep track of which memory pages in the bytecode are being hit if CONTENT_EXTENSIONS_MEMORY_REPORTING is 1.
When CONTENT_EXTENSIONS_MEMORY_REPORTING is 0, this makes an empty vector in ContentExtension
and passes some pointers on the stack, many of which can be optimized out by the C++ compiler.

2:32 PM Changeset in webkit [182334] by Brent Fulgham
  • 10 edits in trunk/Source/WebCore

Expand test infrastructure to support scrolling tests
https://bugs.webkit.org/show_bug.cgi?id=143383

Reviewed by Darin Adler.

No new tests: No change in behavior.

This is an initial set of changes that clean up a few things I noticed while extending testing support
for scroll animations and wheel event gestures.

  1. Reduce the amount of #ifdef code in EventHandler{Mac}.
  2. Consolidate the idea of an "End Gesture" in the PlatformWheelEvent class.
  3. Remove a number of unneeded null checks in EventHandler.
  4. ScrollController must always have a client, so hold a reference instead of using a pointer.
  • page/EventHandler.cpp:

(WebCore::EventHandler::platformNotifyIfEndGesture): Renamed from 'platformNotifySnapIfNecessary'.
(WebCore::EventHandler::handleWheelEvent): Call 'platformNotifySnapIfNecessary' at method exit points.
(WebCore::EventHandler::platformNotifySnapIfNecessary): Deleted.

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent): Remove unneeded null checks for 'view'. Remove
CSS_SNAP-specific call to 'platformNotifySnapIfNecessary'. This logic is now handled in the new
'platformNotifyIfEndGesture' method.
(WebCore::EventHandler::platformNotifyIfEndGesture): Renamed from 'platformNotifySnapIfNecessary'.
(WebCore::EventHandler::platformNotifySnapIfNecessary): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): Pass 'this' as
reference to ScrollController constructor.

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::shouldResetLatching): Call new 'isEndGesture' method.
(WebCore::PlatformWheelEvent::isEndGesture): Added method to encapsulate some code that was duplicated
in a number of places.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator): Pass 'this' as reference to ScrollController constructor.

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::ScrollController): Update to reflect m_client is now a reference.
(WebCore::ScrollController::handleWheelEvent): Ditto.
(WebCore::ScrollController::snapRubberBandTimerFired): Ditto. Also, a drive-by fix for ending rubberband
snapping. This end-state wasn't deactivating the timer (even when the animation finished). This isn't a
huge problem, but I (will) rely on the state of the animation timer in a future patch to decide if
tests should run or continue waiting.
(WebCore::ScrollController::isRubberBandInProgress): Ditto.
(WebCore::ScrollController::startSnapRubberbandTimer): Ditto.
(WebCore::ScrollController::stopSnapRubberbandTimer): Ditto.
(WebCore::ScrollController::shouldRubberBandInHorizontalDirection): Ditto.
(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Ditto.
(WebCore::ScrollController::startScrollSnapTimer): Ditto.
(WebCore::ScrollController::stopScrollSnapTimer): Ditto.
(WebCore::ScrollController::scrollSnapAnimationUpdate): Ditto.
(WebCore::ScrollController::beginScrollSnapAnimation): Ditto.
(WebCore::ScrollController::computeSnapDelta): Ditto.
(WebCore::ScrollController::computeGlideDelta): Ditto.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::gestureShouldBeginSnap): Use new PlatformWheelEvent::isEndGesture() method.

2:21 PM Changeset in webkit [182333] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Toggling check box state not speaking using plain space, not VO space.
https://bugs.webkit.org/show_bug.cgi?id=143356

Reviewed by Darin Adler.

Source/WebCore:

The checkbox state change needs to result in a value change being generated, otherwise accessibility won't know the value has changed through keyboard usage.

Test: platform/mac/accessibility/checkbox-posts-value-change-notification-after-activation-with-space.html

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests:

  • platform/mac/accessibility/checkbox-posts-value-change-notification-after-activation-with-space-expected.txt: Added.
  • platform/mac/accessibility/checkbox-posts-value-change-notification-after-activation-with-space.html: Added.
2:20 PM Changeset in webkit [182332] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

run-jsc-stress-tests --remote should add libllvmForJSC.so to the bundle on Linux
https://bugs.webkit.org/show_bug.cgi?id=143372

Reviewed by Darin Adler.

  • Scripts/run-jsc-stress-tests:
2:01 PM Changeset in webkit [182331] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Some JSC Options refactoring and enhancements.
<https://webkit.org/b/143384>

Rubber stamped by Benjamin Poulain.

Create a better encapsulated Option class to make working with options easier. This
is a building block towards a JIT policy scaling debugging option I will introduce later.

This work entails:

  1. Convert Options::Option into a public class Option (who works closely with Options).
  2. Convert Options::EntryType into an enum class Options::Type and make it public.
  3. Renamed Options::OPT_<option name> to Options::<option name>ID because it reads better.
  4. Add misc methods to class Option to make it more useable.
  • runtime/Options.cpp:

(JSC::Options::dumpOption):
(JSC::Option::dump):
(JSC::Option::operator==):
(JSC::Options::Option::dump): Deleted.
(JSC::Options::Option::operator==): Deleted.

  • runtime/Options.h:

(JSC::Option::Option):
(JSC::Option::operator!=):
(JSC::Option::name):
(JSC::Option::description):
(JSC::Option::type):
(JSC::Option::isOverridden):
(JSC::Option::defaultOption):
(JSC::Option::boolVal):
(JSC::Option::unsignedVal):
(JSC::Option::doubleVal):
(JSC::Option::int32Val):
(JSC::Option::optionRangeVal):
(JSC::Option::optionStringVal):
(JSC::Option::gcLogLevelVal):
(JSC::Options::Option::Option): Deleted.
(JSC::Options::Option::operator!=): Deleted.

1:46 PM Changeset in webkit [182330] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Add time series segmentation algorithms as moving averages
https://bugs.webkit.org/show_bug.cgi?id=143362

Reviewed by Chris Dumez.

This patch implements two preliminary time series segmentation algorithms as moving averages.

Recursive t-test: Compute Welch's t-statistic at each point in a given segment of the time series.
If Welch's t-test implicates a statistically significance difference, then split the segment into two
sub segments with the maximum t-statistic (i.e. the point at which if split would yield the highest
probability that two segments do not share the same "underlying" mean in classical / frequentist sense).
We repeat this process recursively. See [1] for the evaluation of this particular algorithm.

Schwarz criterion: Use Schwarz or Bayesian information criterion to heuristically find the optimal
segmentation. Intuitively, the problem of finding the best segmentation comes down to minimizing the
residual sum of squares in each segment as in linear regressions. That is, for a given segment with
values y_1 through y_n with mean y_avg, we want to minimize the sum of (y_i - y_avg)2 over i = 1
through i = n. However, we also don't want to split every data point into a separate segment so we need
to account the "cost" of introducing new segments. We use a cost function that's loosely based on two
models discussed in [2] for simplicity. We will tune this cost function further in the future.

The problem of finding the best segmentation then reduces to a search problem. Unfortunately, our problem
space is exponential with respect to the size of the time series since we could split at each data point.
We workaround this problem by first splitting the time series into a manageable smaller grids, and only
considering segmentation of a fixed size (i.e. the number of segments is constant). Since time series
tend to contain a lot more data points than segments, this strategy finds the optimal solution without
exploring much of the problem space.

Finding the optimal segmentation of a fixed size is, itself, another search problem that is equivalent to
finding the shortest path of a fixed length in DAG. Here, we use dynamic programming with a matrix of size
n by n where n is the length of the time series (grid). Each entry in this matrix at (i, k) stores
the minimum cost of segmenting data points 1 through i using k segments. We start our search at i = 1.
Clearly C(1, 0) = 0 (note the actual code uses 0-based index). In i-th iteration, we compute the cost
S(i, j) of each segment starting at i and ending at another point j after i and update C(j, k + 1) by
min( C(j, k + 1), C(i, k) + S(i, j) ) for all values of j above i.

[1] Kensuke Fukuda, H. Eugene Stanley, and Luis A. Nunes Amaral, "Heuristic segmentation of
a nonstationary time series", Physical Review E 69, 021108 (2004)

[2] Marc Lavielle, Gilles Teyssi`ere, "Detection of Multiple Change–Points in Multivariate Time Series"
Lithuanian Mathematical Journal, vol 46, 2006

  • public/v2/index.html: Show the optional description for the chosen moving average strategy.
  • public/v2/js/statistics.js:

(Statistics.testWelchsT):
(Statistics.computeWelchsT): Extracted from testWelchsT. Generalized to take the offset and the length
of each value array between which Welch's t-statistic is computed. This generalization helps the
Schwarz criterion segmentation algorithm avoid splitting values array O(n2) times.
(.sampleMeanAndVarianceForValues): Ditto for the generalization.
(.recursivelySplitIntoTwoSegmentsAtMaxTIfSignificantlyDifferent): Added. Implements recursive t-test.
(.splitIntoSegmentsUntilGoodEnough): Added. Implements Schwarz criterion.
(.findOptimalSegmentation): Added. Implements the algorithm to find the optimal segmentation of a fixed
segment count.
(.SampleVarianceUpperTriangularMatrix): Added. Stores S(i, j) used by findOptimalSegmentation.
(.SampleVarianceUpperTriangularMatrix.prototype.costBetween): Added.

1:43 PM Changeset in webkit [182329] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

REGRESSION: Perf dashboard sometimes fails to update zooming level
https://bugs.webkit.org/show_bug.cgi?id=143359

Reviewed by Darin Adler.

The bug was caused by various bugs that ended up in an exception.

  • public/v2/app.js:

(App.Pane._handleFetchErrors): Removed superfluous console.log.
(App.Pane.computeStatus): Fixed the bug in r182185 that previousPoint could be null.
(App.PaneController.actions.zoomed): Update the overview when the main chart triggered a zoom.

  • public/v2/index.html: Replaced all instances of href="#" by href="javascript:false" to avoid navigating

to # when Ember.js fails to attach event listeners on time.

  • public/v2/interactive-chart.js:

(App.InteractiveChartComponent._updateDimensionsIfNeeded): Avoid using a negative width or height when
the containing element's size is 0.
(App.InteractiveChartComponent._updateBrush): Ditto.

1:16 PM Changeset in webkit [182328] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2015-04-03 Geoffrey Garen <ggaren@apple.com>

JavaScriptCore API should support type checking for Array and Date
https://bugs.webkit.org/show_bug.cgi?id=143324

Follow-up to address a comment by Dan.

  • API/WebKitAvailability.h: MAC_OS_X_VERSION_MIN_REQUIRED <= 101100 is wrong, since this API is available when MAC_OS_X_VERSION_MIN_REQUIRED is equal to 101100.
1:12 PM Changeset in webkit [182327] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

InjectedBundleNodeHandle::renderedImage() needs to be exposed from the Cocoa WebAPI layer.
https://bugs.webkit.org/show_bug.cgi?id=143341.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-04-03
Reviewed by Anders Carlsson.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]): Expose rendered
image injected bundle API from the Cocoa layer. A node in the page can be
rendered to an NSImage on MacOS and to a UIImage on iOS.

11:49 AM Changeset in webkit [182326] by Csaba Osztrogonác
  • 2 edits in trunk

Unreviewed, kick the GTK bots to fix an incremental build issue.

  • Source/cmake/OptionsGTK.cmake:
11:27 AM Changeset in webkit [182325] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Simple line layout: Use pre-computed simple line runs to produce innerText content.
https://bugs.webkit.org/show_bug.cgi?id=143351

Reviewed by Antti Koivisto.

This is in preparation to cover <br> with simple line layout.
Runs provide line layout information that can be used to cover hard line break cases.
(similar to TextIterator::handleTextBox())

Covered by existing tests.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::emitCharacter):
(WebCore::TextIterator::emitText):

  • editing/TextIterator.h:
  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Run::isEndOfLine):

10:55 AM Changeset in webkit [182324] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2015-04-03 Geoffrey Garen <ggaren@apple.com>

JavaScriptCore API should support type checking for Array and Date
https://bugs.webkit.org/show_bug.cgi?id=143324

Follow-up to address a comment by Dan.

  • API/WebKitAvailability.h: Do use 10.0 because it was right all along. Added a comment explaining why.
10:54 AM Changeset in webkit [182323] by Chris Dumez
  • 9 edits
    2 moves in trunk/Source/WebKit2

[WK2][iOS] We should prevent NetworkProcess suspension while it has pending SQL transactions
https://bugs.webkit.org/show_bug.cgi?id=143278
<rdar://problem/20180799>

Reviewed by Anders Carlsson.

Prevent NetworkProcess suspension while it has pending SQL transactions,
similarly to what we already did for WebProcesses. This patch moves the
WebSQLiteDatabaseTracker from WebProcess/ to Shared/ and make it usable
by the NetworkProcess class as well.

Whenever there are locked files to due SQL transactions, the
NetworkProcess will send an IPC message to the NetworkProcessProxy
which will hold a background process assertion until the NetworkProcess'
SQL transactions are complete. This way, it is no longer possible for
the NetworkProcess to get suspended while SQL transactions are running
and a database file is locked.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp.

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::m_childProcessType):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):

  • Shared/WebSQLiteDatabaseTracker.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
10:24 AM Changeset in webkit [182322] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Re-skip tests that got recently enabled, but time out.

  • platform/mac-wk2/TestExpectations:
10:23 AM Changeset in webkit [182321] by Antti Koivisto
  • 9 edits
    1 add in trunk

Source/WebCore:
Add non-counting bloom filter class
https://bugs.webkit.org/show_bug.cgi?id=143366

Reviewed by Sam Weinig.

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::setupParentStack):

  • css/SelectorFilter.h:

Update names.

Source/WebKit2:
Add non-counting Bloom filter implementation
https://bugs.webkit.org/show_bug.cgi?id=143366

Reviewed by Sam Weinig.

  • NetworkProcess/cache/NetworkCacheStorage.h:

Source/WTF:
Add non-counting Bloom filter implementation
https://bugs.webkit.org/show_bug.cgi?id=143366

Reviewed by Sam Weinig.

Add a traditional single-bit-per-bucket Bloom filter in addition to the existing counting implementation.

  • wtf/BloomFilter.h:

(WTF::BloomFilter::BloomFilter):
(WTF::BloomFilter::add):

Also support merging.

(WTF::BloomFilter::mayContain):
(WTF::BloomFilter::arrayIndex):
(WTF::BloomFilter::bitMask):
(WTF::BloomFilter<keyBits>::mayContain):
(WTF::BloomFilter<keyBits>::add):
(WTF::BloomFilter<keyBits>::isBitSet):
(WTF::BloomFilter<keyBits>::setBit):
(WTF::BloomFilter<keyBits>::clear):
(WTF::CountingBloomFilter::CountingBloomFilter):
(WTF::CountingBloomFilter::mayContain):
(WTF::CountingBloomFilter::firstBucket):
(WTF::CountingBloomFilter::secondBucket):
(WTF::CountingBloomFilter<keyBits>::add):
(WTF::CountingBloomFilter<keyBits>::remove):
(WTF::CountingBloomFilter<keyBits>::clear):
(WTF::CountingBloomFilter<keyBits>::likelyEmpty):
(WTF::CountingBloomFilter<keyBits>::isClear):
(WTF::BloomFilter::maximumCount): Deleted.
(WTF::BloomFilter::firstSlot): Deleted.
(WTF::BloomFilter::secondSlot): Deleted.
(WTF::BloomFilter<keyBits>::remove): Deleted.
(WTF::BloomFilter<keyBits>::likelyEmpty): Deleted.
(WTF::BloomFilter<keyBits>::isClear): Deleted.

Tools:
Add non-counting bloom filter class
https://bugs.webkit.org/show_bug.cgi?id=143366

Reviewed by Sam Weinig.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/BloomFilter.cpp: Added.

(TestWebKitAPI::generateRandomHashes):
(TestWebKitAPI::TEST):

9:46 AM Changeset in webkit [182320] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Remove dead code.
https://bugs.webkit.org/show_bug.cgi?id=143352

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-03
Reviewed by Gyuyoung Kim.

  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):

  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::openDateTimeChooser): Deleted.

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::openDateTimeChooser): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:

Remove ChromeClient::openDateTimeChooser.

9:38 AM Changeset in webkit [182319] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/fixed-layout/fixed-layout.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=143379

9:01 AM Changeset in webkit [182318] by Csaba Osztrogonác
  • 5 edits in trunk

FTL JIT tests should fail if LLVM library isn't available
https://bugs.webkit.org/show_bug.cgi?id=143374

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • dfg/DFGPlan.cpp:

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

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
5:52 AM Changeset in webkit [182317] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Speedup jhbuild with disable running autogen.sh
https://bugs.webkit.org/show_bug.cgi?id=143369

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
5:30 AM Changeset in webkit [182316] by Csaba Osztrogonác
  • 3 edits in trunk/LayoutTests

[WK2] Unskip now passing tests after r135595
https://bugs.webkit.org/show_bug.cgi?id=127428

Unreviewed gardening.

  • platform/mac-wk2/TestExpectations: Mark editing/selection/context-menu-text-selection.html as timeouting test.
  • platform/wk2/TestExpectations: Unskip now passing tests.
5:23 AM Changeset in webkit [182315] by zandobersek@gmail.com
  • 6 edits in trunk

Fix the EFL and GTK build after r182243
https://bugs.webkit.org/show_bug.cgi?id=143361

Reviewed by Csaba Osztrogonác.

.:

  • Source/PlatformEfl.cmake: Add a custom command that copies

the InspectorBackendCommands.js file into the proper directory
under DerivedSources/WebInspectorUI/.

Source/JavaScriptCore:

  • CMakeLists.txt: InspectorBackendCommands.js is generated in the

DerivedSources/JavaScriptCore/inspector/ directory.

Source/WebKit2:

  • PlatformGTK.cmake: Add a custom command that copies the

InspectorBackendCommands.js file into the proper directory
under DerivedSources/WebInspectorUI/.

5:20 AM Changeset in webkit [182314] by zandobersek@gmail.com
  • 4 edits in trunk/Source

Unreviewed, fixing Clang builds of the GTK port on Linux.

Source/JavaScriptCore:

  • runtime/Options.cpp:

Include the <math.h> header for isnan().

Source/WebCore:

  • Modules/mediastream/MediaDevices.h:

Include the <functional> header for uses of std::function<>.

4:23 AM Changeset in webkit [182313] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Fix 18 crashing compositing tests after r182101
https://bugs.webkit.org/show_bug.cgi?id=143214

Unreviewed gardening, comment out the original expectations after r182311.

  • platform/efl/TestExpectations:
3:55 AM Changeset in webkit [182312] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Fix 18 crashing compositing tests after r182101
https://bugs.webkit.org/show_bug.cgi?id=143214

Unreviewed gardening, add crash expectations until proper fix.

  • platform/efl/TestExpectations:
3:27 AM Changeset in webkit [182311] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Skip fast/fixed-layout, because it made the following tests fail.

  • platform/efl/TestExpectations:
2:17 AM Changeset in webkit [182310] by Philippe Normand
  • 4 edits in trunk/Source/WebKit2

Unreviewed, GTK build fix.

  • UIProcess/API/gtk/WebKitContextMenuClient.cpp:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:
  • UIProcess/gtk/WebContextMenuProxyGtk.h:
1:07 AM Changeset in webkit [182309] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source/WebCore

[Streams API] Split ReadableStream/Reader implementation according source type (JS vs native)
https://bugs.webkit.org/show_bug.cgi?id=143130

Reviewed by Benjamin Poulain.

Introduce ReadableJSStream and ReadableJSStreamReader as subclasses of ReadableStream and ReadableStreamReader.
These classes manage JS based sources: ReadableStream JS constructor instantiates ReadableJStream.
These classes are expected to handle JS source specific handling, in particular JSValue error storage and JSValue chunk queue.
Making ReadableStream and ReadableStreamReader abstract, to be subclassed for native sources.

Current tests cover the changes.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::ReadableStream): Moved suspendIfNeeded inside constructor to ease subclassing.
(WebCore::ReadableStream::create): Deleted as ReadableStream is now abstarct.

  • Modules/streams/ReadableStream.h: Made createReader virtual pure.
  • Modules/streams/ReadableStream.idl: Skipping VTable validation as subclasses of ReadableStream may be JS wrapped.
  • Modules/streams/ReadableStreamReader.cpp: Removed ReadableStreamReader::create.
  • Modules/streams/ReadableStreamReader.h: Ditto.
  • Modules/streams/ReadableStreamReader.idl: Skipping VTable validation as subclasses of ReadableStreamReader may be JS wrapped.
  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream): Instantiating ReadableJSStream in lieu of ReadableStream within JS constructor.

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::createReader): Instantiating ReadableJSStreamReader.
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::ReadableJSStreamReader::create):
(WebCore::ReadableJSStreamReader::ReadableJSStreamReader):

  • bindings/js/ReadableStreamJSSource.h: Definition of ReadableJSStream and ReadableJSStreamReader.

Apr 2, 2015:

11:39 PM Changeset in webkit [182308] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Typo fix.

  • PlatformGTK.cmake:
11:37 PM Changeset in webkit [182307] by timothy_horton@apple.com
  • 6 edits
    4 adds in trunk

Scrollbars are left in the wrong position when resizing a fixed layout view
https://bugs.webkit.org/show_bug.cgi?id=143360

Reviewed by Beth Dakin.

Test: fast/fixed-layout/fixed-layout.html

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setFrameRect):
Update scrollbars when the ScrollView frameRect changes. We were previously
depending on the layout that always happens after this to update scrollbars,
but with fixed layout mode, there won't be a layout! Also, FrameView's
setFrameRect override will sync this scrollbar update with the scrollbar
layers (via RenderLayerCompositor::frameViewDidChangeSize) immediately afterwards.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Turn off fixed layout when resetting state.

(WebCore::Internals::setUseFixedLayout):
(WebCore::Internals::setFixedLayoutSize):

  • testing/Internals.h:
  • testing/Internals.idl:

Add internals functions to set the fixed layout size and to turn on fixed layout.

  • fast/fixed-layout/fixed-layout-expected.png: Added.
  • fast/fixed-layout/fixed-layout-expected.txt: Added.
  • fast/fixed-layout/fixed-layout.html: Added.

Add a simple fixed layout test. We can add more (or recover some from
when the Qt tests were purged) now that it's testable again.

This test also happens to test the aforementioned setFrameRect change,
because without it, the RenderView's layer would be left at the wrong
size (800x600) because the scrollbars would be left behind in the resize.

11:36 PM Changeset in webkit [182306] by Csaba Osztrogonác
  • 3 edits
    2 adds in trunk/Source/WebKit2

URTBF after r182303, stub NativeContextMenuItem implemetations added for EFL and GTK.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • Shared/efl/NativeContextMenuItemEfl.cpp: Added.

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

  • Shared/gtk/NativeContextMenuItemGtk.cpp: Added.

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

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

De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort
https://bugs.webkit.org/show_bug.cgi?id=143342

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

Actually, not available on Mavericks. Fix the build.

8:51 PM JSC edited by mark.lam@apple.com
(diff)
8:46 PM Changeset in webkit [182304] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Enhance ability to dump JSC Options.
<https://webkit.org/b/143357>

Reviewed by Benjamin Poulain.

Some enhancements to how the JSC options work:

  1. Add a JSC_showOptions option which take values: 0 = None, 1 = Overridden only, 2 = All, 3 = Verbose.

The default is 0 (None). This dumps nothing.
With the Overridden setting, at VM initialization time, we will dump all
option values that have been changed from their default.
With the All setting, at VM initialization time, we will dump all option values.
With the Verbose setting, at VM initialization time, we will dump all option
values along with their descriptions (if available).

  1. We now store a copy of the default option values.

We later use this for comparison to tell if an option has been overridden, and
print the default value for reference. As a result, we no longer need the
didOverride flag since we can compute whether the option is overridden at any time.

  1. Added description strings to some options to be printed when JSC_showOptions=3 (Verbose).

This will come in handy later when we want to rename some of the options to more sane
names that are easier to remember. For example, we can change
Options::dfgFunctionWhitelistFile() to Options::dfgWhiteList(), and
Options::slowPathAllocsBetweenGCs() to Options::forcedGcRate(). With the availability
of the description, we can afford to use shorter and less descriptive option names,
but they will be easier to remember and use for day to day debugging work.

In this patch, I did not change the names of any of the options yet. I only added
description strings for options that I know about, and where I think the option name
isn't already descriptive enough.

  1. Also deleted some unused code.
  • jsc.cpp:

(CommandLine::parseArguments):

  • runtime/Options.cpp:

(JSC::Options::initialize):
(JSC::Options::setOption):
(JSC::Options::dumpAllOptions):
(JSC::Options::dumpOption):
(JSC::Options::Option::dump):
(JSC::Options::Option::operator==):

  • runtime/Options.h:

(JSC::OptionRange::rangeString):
(JSC::Options::Option::Option):
(JSC::Options::Option::operator!=):

6:16 PM Changeset in webkit [182303] by Brent Fulgham
  • 31 edits
    2 adds in trunk/Source

Source/WebCore:
Unreviewed: Reapplied Change after rollout.

Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318

Patch by Brady Eidson <beidson@apple.com> on 2015-04-02

  • page/ContextMenuClient.h:

(WebCore::ContextMenuClient::shareSelectedTextMenuItem):

  • page/ContextMenuContext.h:

(WebCore::ContextMenuContext::setSelectedText):
(WebCore::ContextMenuContext::selectedText):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate): Add a Share menu item returned from the client.
(WebCore::ContextMenuController::checkOrEnableIfNeeded):

  • platform/ContextMenuItem.cpp:

(WebCore::ContextMenuItem::shareSelectedTextMenuItem):

  • platform/ContextMenuItem.h:

(WebCore::ContextMenuItem::supportsShareMenu):

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::shareSelectedTextMenuItem):

  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::getPlatformDescription):
(WebCore::ContextMenuItem::supportsShareMenu):
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Use NSMenu SPI to get the Share menu.

  • platform/spi/mac/NSMenuSPI.h: Forward declare instead of #include

Source/WebKit/mac:
Unreviewed: Reland change after rollout.

Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318

Patch by Brady Eidson <beidson@apple.com> on 2015-04-02

  • WebView/WebImmediateActionController.mm: Update for required #include

Source/WebKit2:
Unreviewed: Re-applied change after rollout.

Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318

Patch by Brady Eidson <beidson@apple.com> on 2015-04-02

  • Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu.
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::selectedText):

Add a "cross platform" menu item wrapper, right now only for NSMenuItem.

  • Shared/NativeContextMenuItem.h:

(WebKit::NativeContextMenuItem::~NativeContextMenuItem):
(WebKit::NativeContextMenuItem::nsMenuItem):

  • Shared/mac/NativeContextMenuItem.mm:

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform.

  • Shared/WebContextMenuItem.cpp:

(WebKit::WebContextMenuItem::WebContextMenuItem):

  • Shared/WebContextMenuItem.h:

(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::nativeContextMenuItem):

  • UIProcess/API/APIContextMenuClient.h:

(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::showContextMenu):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient):

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

(WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the

native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem
can be attached to them.

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

(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::nsMenuItem):
(WebKit::nsMenuItemVector):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebContextMenuClient.h:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the

context menu with a placeholder item. It will be translated into the real Share menu in the UI process.

6:07 PM Changeset in webkit [182302] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Perf dashboard should have UI to test out anomaly detection strategies
https://bugs.webkit.org/show_bug.cgi?id=143290

Reviewed by Benjamin Poulain.

Added the UI to select anomaly detection strategies. The detected anomalies are highlighted in the graph.

Implemented the Western Electric Rules 1 through 4 in http://en.wikipedia.org/wiki/Western_Electric_rules
as well as Welch's t-test that compares the last five points to the prior twenty points.

The latter is what Mozilla uses (or at least did in the past) to detect performance regressions on their
performance tests although they compare medians instead of means.

All of these strategies don't quite work for us since our data points are too noisy but this is a good start.

  • public/v2/app.js:

(App.Pane.updateStatisticsTools): Clone anomaly detection strategies.
(App.Pane._updateMovingAverageAndEnvelope): Highlight anomalies detected by the enabled strategies.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Observe changes to anomaly detection strategies.
(App.Pane._computeMovingAverageAndOutliers): Detect anomalies by each strategy and aggregate results.
Only report the first data point when multiple consecutive data points are detected as anomalies.

  • public/v2/chart-pane.css: Updated styles.
  • public/v2/index.html: Added the pane for selecting anomaly detection strategies.
  • public/v2/js/statistics.js:

(Statistics.testWelchsT): Added. Implements Welch's t-test.
(.sampleMeanAndVarianceForValues): Added.
(.createWesternElectricRule): Added.
(.countValuesOnSameSide): Added.
(Statistics.AnomalyDetectionStrategy): Added.

5:53 PM Changeset in webkit [182301] by commit-queue@webkit.org
  • 31 edits
    2 deletes in trunk/Source

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

Broke GTK and EFL builds. (Requested by bfulgham on #webkit).

Reverted changeset:

"Expose the "Share" menu for text selections on platforms
where it's available."
https://bugs.webkit.org/show_bug.cgi?id=143318
http://trac.webkit.org/changeset/182293

5:43 PM Changeset in webkit [182300] by Brent Fulgham
  • 4 edits in trunk/LayoutTests

New ruby tests are failing on all non-Mac platforms.
https://bugs.webkit.org/show_bug.cgi?id=143354

Add skip commands for these new tests.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
5:40 PM Changeset in webkit [182299] by ap@apple.com
  • 3 edits in trunk/LayoutTests

http/tests/security/cross-frame-access-call.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=143344

Reviewed by Anders Carlsson.

Correct the results. Not sure where I got the different results from.

5:27 PM Changeset in webkit [182298] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

REGRESSION: Caption Menus show language codes instead of display names.
https://bugs.webkit.org/show_bug.cgi?id=143350
<rdar://problem/20094145>

Reviewed by Jer Noble.

The generic caption/track label handling in CaptionUserPreferences does not convert language codes
(e.g. 'fr-CA') into display names (e.g., 'French (Canada)'). Because we did not have an AudioTrack
override to process these types of menu items, they were being handled using the generic code.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::buildStringForTrackBase): Helper function to share code with the two flavors
of 'trackDisplayName'.
(WebCore::trackDisplayName): Add a version to support AudioTracks, and modify the TextTrack
version to use the new 'buildStringForTrackBase' function.
(WebCore::CaptionUserPreferencesMediaAF::displayNameForTrack): Add an AudioTrack override so
our AVFoundation tracks are processed in our CaptionUserPreferencesMediaAF implementation, not the
generic version.
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Add an AudioTrack override so
that the menu items are sorted in order of display name, not language code.

  • page/CaptionUserPreferencesMediaAF.h:
5:09 PM Changeset in webkit [182297] by ggaren@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

JavaScriptCore API should support type checking for Array and Date
https://bugs.webkit.org/show_bug.cgi?id=143324

Reviewed by Darin Adler, Sam Weinig, Dan Bernstein.

  • API/JSValue.h:
  • API/JSValue.mm:

(-[JSValue isArray]):
(-[JSValue isDate]): Added an ObjC API.

  • API/JSValueRef.cpp:

(JSValueIsArray):
(JSValueIsDate):

  • API/JSValueRef.h: Added a C API.
  • API/WebKitAvailability.h: Brought our availability macros up to date

and fixed a harmless bug where "10_10" translated to "10.0".

  • API/tests/testapi.c:

(main): Added a test and corrected a pre-existing leak.

  • API/tests/testapi.mm:

(testObjectiveCAPI): Added a test.

4:19 PM Changeset in webkit [182296] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key
https://bugs.webkit.org/show_bug.cgi?id=143348

Reviewed by Antti Koivisto.

Drop HTTP method from NetworkCache::Key as we only cache GET responses
for now. Even when we start caching HEAD responses, we likely will not
want the method to be part of the key because:

  • A HEAD response can be used to update the headers of a previously cached response to GET
  • A cached GET response may be used to satisfy subsequent HEAD requests
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeCacheKey):

  • NetworkProcess/cache/NetworkCacheKey.cpp:

(WebKit::NetworkCache::Key::Key):
(WebKit::NetworkCache::Key::operator=):
(WebKit::NetworkCache::Key::computeHash):
(WebKit::NetworkCache::Key::operator==):
(WebKit::NetworkCache::Key::encode):
(WebKit::NetworkCache::Key::decode):

  • NetworkProcess/cache/NetworkCacheKey.h:

(WebKit::NetworkCache::Key::method): Deleted.

3:50 PM Changeset in webkit [182295] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac][WK2] Fullscreen animation incorrect when initiated on non-primary monitor
https://bugs.webkit.org/show_bug.cgi?id=143237

Reviewed by Brent Fulgham.

The animation calculations have an implicit assumptions of a screen whose origin is 0,0. Account
for the screen origin by passing the window's screen's frame into the zoomAnimation() and maskAnimation()
methods.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:]):
(zoomAnimation):
(maskAnimation):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):

3:46 PM Changeset in webkit [182294] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add Options::dumpSourceAtDFGTime().
<https://webkit.org/b/143349>

Reviewed by Oliver Hunt, and Michael Saboff.

Sometimes, we will want to see the JS source code that we're compiling, and it
would be nice to be able to do this without having to jump thru a lot of hoops.
So, let's add a Options::dumpSourceAtDFGTime() option just like we have a
Options::dumpBytecodeAtDFGTime() option.

Also added versions of CodeBlock::dumpSource() and CodeBlock::dumpBytecode()
that explicitly take no arguments (instead of relying on the version that takes
the default argument). These versions are friendlier to use when we want to call
them from an interactive debugging session.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpSource):
(JSC::CodeBlock::dumpBytecode):

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

(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • runtime/Options.h:
3:40 PM Changeset in webkit [182293] by beidson@apple.com
  • 31 edits
    2 copies in trunk/Source

Expose the "Share" menu for text selections on platforms where it's available.
rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318

Reviewed by Sam Weinig.

Source/WebCore:

  • page/ContextMenuClient.h:

(WebCore::ContextMenuClient::shareSelectedTextMenuItem):

  • page/ContextMenuContext.h:

(WebCore::ContextMenuContext::setSelectedText):
(WebCore::ContextMenuContext::selectedText):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate): Add a Share menu item returned from the client.
(WebCore::ContextMenuController::checkOrEnableIfNeeded):

  • platform/ContextMenuItem.cpp:

(WebCore::ContextMenuItem::shareSelectedTextMenuItem):

  • platform/ContextMenuItem.h:

(WebCore::ContextMenuItem::supportsShareMenu):

  • platform/gtk/ContextMenuItemGtk.cpp:

(WebCore::ContextMenuItem::shareSelectedTextMenuItem):

  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::getPlatformDescription):
(WebCore::ContextMenuItem::supportsShareMenu):
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Use NSMenu SPI to get the Share menu.

  • platform/spi/mac/NSMenuSPI.h: Forward declare instead of #include

Source/WebKit/mac:

  • WebView/WebImmediateActionController.mm: Update for required #include

Source/WebKit2:

  • Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu.
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::selectedText):

Add a "cross platform" menu item wrapper, right now only for NSMenuItem.

  • Shared/NativeContextMenuItem.h:

(WebKit::NativeContextMenuItem::~NativeContextMenuItem):
(WebKit::NativeContextMenuItem::nsMenuItem):

  • Shared/mac/NativeContextMenuItem.mm:

(WebKit::NativeContextMenuItem::NativeContextMenuItem):

Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform.

  • Shared/WebContextMenuItem.cpp:

(WebKit::WebContextMenuItem::WebContextMenuItem):

  • Shared/WebContextMenuItem.h:

(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::nativeContextMenuItem):

  • UIProcess/API/APIContextMenuClient.h:

(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::showContextMenu):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient):

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

(WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the

native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem
can be attached to them.

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

(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::nsMenuItem):
(WebKit::nsMenuItemVector):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebContextMenuClient.h:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the

context menu with a placeholder item. It will be translated into the real Share menu in the UI process.

3:31 PM Changeset in webkit [182292] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Only pass in the AVURLAssetClientBundleIdentifierKey on iOS.
https://bugs.webkit.org/show_bug.cgi?id=143347

Reviewed by Brent Fulgham.

Only pass in the main app bundle id into AVURLAsset via the AVURLAssetClientBundleIdentifierKey option
on iOS. On OS X, setting this key can cause media playback to fail.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

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

De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort
https://bugs.webkit.org/show_bug.cgi?id=143342

Reviewed by Myles C. Maxfield.

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::setFencePort):
There's nothing iOS specific about this.

3:22 PM Changeset in webkit [182290] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening.

Unreviewed.

  • fast/ruby/ruby-expansion-cjk-4-expected.html:
  • fast/ruby/ruby-expansion-cjk-4.html:
2:52 PM Changeset in webkit [182289] by oliver@apple.com
  • 2 edits in trunk/Source/WebKit2

Ensure that we always set network ATS context in the network process
https://bugs.webkit.org/show_bug.cgi?id=143343

Reviewed by Dan Bernstein.

If a custom cache location or size we were early returning before setting
the CFNetwork ATS context. This is clearly an error.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

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

Show audio media controls on OSX.
https://bugs.webkit.org/show_bug.cgi?id=143346.
<rdar://problem/20306240>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-panel:hover):
Revert part of r180893.

2:25 PM Changeset in webkit [182287] by andersca@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/security/cross-frame-access-call.html is flaky.

Skip this test for now. Fixing it is being tracked by webkit.org/b/143344.

1:29 PM Changeset in webkit [182286] by mmaxfield@apple.com
  • 12 edits
    13 adds in trunk

Disallow ruby base from having leading or trailing expansions
https://bugs.webkit.org/show_bug.cgi?id=142608

Reviewed by David Hyatt.

Source/WebCore:

If we determine that a ruby base should have either a leading or trailing expansion,
we shunt that expansion over to the neighboring RenderText, assuming one exists. This
requires that we teach RenderText how to force leading or trailing expansions if one
wouldn't naturally be present.

Tests: fast/ruby/ruby-expansion-cjk-2.html

fast/ruby/ruby-expansion-cjk-3.html
fast/ruby/ruby-expansion-cjk-4.html
fast/ruby/ruby-expansion-cjk-5.html
fast/ruby/ruby-expansion-cjk.html

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::removeChild): Delete contentIsKnownToFollow.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::expansionBehavior): Support forced leading and trailing
expansions.

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::expansionBehavior): Moved to .cpp

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::updateRubyForJustifiedText): Perform relayout even if
there are no expansions left. This is so that ruby bases with no expansions will get
centered.
(WebCore::expansionBehaviorForInlineTextBox): Update to inspect neighboring rubies.
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): Use updated
expansionBehaviorForInlineTextBox(). Also center ruby bases if they have no expansion
opportunities.
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Use nullptr.
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Ditto.

  • rendering/RenderText.cpp:

(WebCore::RenderText::RenderText): Delete contentIsKnownToFollow.

  • rendering/RenderText.h:

(WebCore::RenderText::contentIsKnownToFollow): Deleted.
(WebCore::RenderText::setContentIsKnownToFollow): Deleted.

LayoutTests:

Test combinations of CJK, Latin, ruby-in-ruby, simple text codepath, complex
text codepath, RTL, and LTR codepaths.

  • fast/ruby/positioned-ruby-text-expected.txt:
  • fast/ruby/positioned-ruby-text.html:
  • fast/ruby/resources/green.png: Added.
  • fast/ruby/resources/ruby-expansion.svg: Added.
  • fast/ruby/ruby-expansion-cjk-2-expected.html: Added.
  • fast/ruby/ruby-expansion-cjk-2.html: Added.
  • fast/ruby/ruby-expansion-cjk-3-expected.html: Added.
  • fast/ruby/ruby-expansion-cjk-3.html: Added.
  • fast/ruby/ruby-expansion-cjk-4-expected.html: Added.
  • fast/ruby/ruby-expansion-cjk-4.html: Added.
  • fast/ruby/ruby-expansion-cjk-5-expected.html: Added.
  • fast/ruby/ruby-expansion-cjk-5.html: Added.
  • fast/ruby/ruby-expansion-cjk-expected.html: Added.
  • fast/ruby/ruby-expansion-cjk.html: Added.
  • fast/ruby/ruby-justification-expected.html:
  • fast/ruby/ruby-justification.html:
12:53 PM Changeset in webkit [182285] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Make checkURLReceivedFromWebProcess not rely on details of platform URL implementation.
https://bugs.webkit.org/show_bug.cgi?id=143222
rdar://problem/19978997

Reviewed by Sam Weinig.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):

12:50 PM Changeset in webkit [182284] by ap@apple.com
  • 5 edits in trunk

Clean up access checks in JSHistoryCustom.cpp
https://bugs.webkit.org/show_bug.cgi?id=143227

Reviewed by Sam Weinig.

Source/WebCore:

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::putDelegate):
(WebCore::JSHistory::deleteProperty):
(WebCore::JSHistory::deletePropertyByIndex):
(WebCore::JSHistory::getOwnPropertyNames):
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

LayoutTests:

  • http/tests/security/cross-frame-access-call-expected.txt:
  • http/tests/security/cross-frame-access-call.html:
12:46 PM Changeset in webkit [182283] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

[Content Extensions] Only add unique universal action locations.
https://bugs.webkit.org/show_bug.cgi?id=143325

Reviewed by Benjamin Poulain.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):
Use a HashSet instead of a Vector for the universal action locations to remove duplicates.

12:41 PM Changeset in webkit [182282] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Fix slider colors for media controls on OSX.
https://bugs.webkit.org/show_bug.cgi?id=143328.
<rdar://problem/20357858>

Reviewed by Darin Adler.

Fill in bottom portion of volume slider.
Adjust colors to make slider controls look better. Will likely be tweaked later.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.drawTimelineBackground):
(Controller.prototype.drawVolumeBackground):

12:14 PM Changeset in webkit [182281] by ap@apple.com
  • 2 edits in trunk/LayoutTests

media/track/track-forced-subtitles-in-band.html times out

  • platform/mac/TestExpectations: Update the expectations - the test doens't only fail

flakily, it times out too.

11:53 AM Changeset in webkit [182280] by Yusuke Suzuki
  • 35 edits in trunk/Source

Clean up EnumerationMode to easily extend
https://bugs.webkit.org/show_bug.cgi?id=143276

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

To make the followings easily,

  1. Adding new flag Include/ExcludeSymbols in the Object.getOwnPropertySymbols patch
  2. Make ExcludeSymbols implicitly default for the existing flags

we encapsulate EnumerationMode flags into EnumerationMode class.

And this class manages 2 flags. Later it will be extended to 3.

  1. DontEnumPropertiesMode (default is Exclude)
  2. JSObjectPropertiesMode (default is Include)
  3. SymbolPropertiesMode (default is Exclude)

SymbolPropertiesMode will be added in Object.getOwnPropertySymbols patch.

This patch replaces places using ExcludeDontEnumProperties
to EnumerationMode() value which represents default mode.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):

  • API/JSObjectRef.cpp:

(JSObjectCopyPropertyNames):

  • bindings/ScriptValue.cpp:

(Deprecated::jsToInspectorValue):

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::possibleDefaultPropertyCount):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSort):

  • runtime/EnumerationMode.h:

(JSC::EnumerationMode::EnumerationMode):
(JSC::EnumerationMode::includeDontEnumProperties):
(JSC::EnumerationMode::includeJSObjectProperties):
(JSC::shouldIncludeDontEnumProperties): Deleted.
(JSC::shouldExcludeDontEnumProperties): Deleted.
(JSC::shouldIncludeJSObjectPropertyNames): Deleted.
(JSC::modeThatSkipsJSObject): Deleted.

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::getOwnPropertyNames):

  • runtime/JSArray.cpp:

(JSC::JSArray::getOwnNonIndexPropertyNames):

  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::getOwnNonIndexPropertyNames):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::getOwnNonIndexPropertyNames):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnNonIndexPropertyNames):

  • runtime/JSFunction.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::getOwnNonIndexPropertyNames):

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::getClassPropertyNames):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
(JSC::JSObject::getGenericPropertyNames):

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/JSSymbolTableObject.cpp:

(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorKeys):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::getOwnNonIndexPropertyNames):
(JSC::RegExpObject::getPropertyNames):
(JSC::RegExpObject::getGenericPropertyNames):

  • runtime/StringObject.cpp:

(JSC::StringObject::getOwnPropertyNames):

  • runtime/Structure.cpp:

(JSC::Structure::getPropertyNamesFromStructure):

Source/WebCore:

Use default EnumerationMode().

  • bindings/js/Dictionary.cpp:

(WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
(WebCore::Dictionary::getOwnPropertyNames):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSFloat64Array.h:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bridge/NP_jsobject.cpp:

(_NPN_Enumerate):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::getOwnPropertyNames):

Source/WebKit/mac:

Use default EnumerationMode().

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::enumerate):

Source/WebKit2:

Use default EnumerationMode().

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::enumerate):

11:34 AM Changeset in webkit [182279] by hyatt@apple.com
  • 17 edits
    6 adds in trunk

[New Block-Inside-Inline Model] Implement the correct paint order for blocks inside inlines.
https://bugs.webkit.org/show_bug.cgi?id=143320

Reviewed by Darin Adler.

Source/WebCore:

Added new tests in fast/block/inside-inlines.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::nodeAtPoint):

  • rendering/EllipsisBox.h:
  • rendering/InlineBox.h:
  • rendering/InlineElementBox.cpp:

(WebCore::InlineElementBox::paint):
(WebCore::InlineElementBox::nodeAtPoint):

  • rendering/InlineElementBox.h:
  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paint):

  • rendering/InlineFlowBox.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::nodeAtPoint):

  • rendering/InlineTextBox.h:

The HitTestAction has to be passed to nodeAtPoint so that hit test actions can be honored. All the nodeAtPoint
functions have been patched to include this argument. Painting and hit testing have been patched for InlineElementBox
to honor phases/actions when the element is an anonymous inline block.

The phase filter on RenderLineBoxList has been pushed in to InlineFlowBox::paint and InlineFlowBox::nodeAtPoint so that
we can respect it properly when inlines are painting by themselves (e.g., because they have a layer).

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::createLineBoxes):
(WebCore::RenderBlockFlow::constructLine):
Go ahead and include all of the inline flow boxes between the root and the anonymous inline block if it turns out they
need to be constructed. This will end up being relevant for outlines and for self-painting layers (e.g., opacity).

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::paint):
(WebCore::RenderLineBoxList::hitTest):
Remove the filters here, since they get pushed in to InlineFlowBox.

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::nodeAtPoint):

  • rendering/RootInlineBox.h:
  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGInlineTextBox.h:

More patching to pass the HitTestAction into nodeAtPoint.

LayoutTests:

  • fast/block/inside-inlines/new-model/paint-order-expected.html: Added.
  • fast/block/inside-inlines/new-model/paint-order.html: Added.
  • fast/block/inside-inlines/opacity-on-inline-expected.html: Added.
  • fast/block/inside-inlines/opacity-on-inline.html: Added.
  • fast/block/inside-inlines/paint-order-expected.html: Added.
  • fast/block/inside-inlines/paint-order.html: Added.
11:31 AM Changeset in webkit [182278] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Update the WebContent process' sandbox profile for AWD
https://bugs.webkit.org/show_bug.cgi?id=143340
<rdar://problem/20375170>

Reviewed by Alexey Proskuryakov.

Update the WebContent process' sandbox profile for AWD.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:50 AM Changeset in webkit [182277] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5-branch/Source

Versioning.

10:38 AM Changeset in webkit [182276] by bshafiei@apple.com
  • 3 edits in tags/Safari-601.1.25/Source/WebCore

Merged r182274. rdar://problem/20391647

10:37 AM Changeset in webkit [182275] by adam.bergkvist@ericsson.com
  • 9 edits
    9 adds in trunk

WebRTC: Add support for Promise-based MediaDevices.getUserMedia()
https://bugs.webkit.org/show_bug.cgi?id=143255

Reviewed by Eric Carlson.

Source/WebCore:

The MediaDevices object collects functionality related to local media
devices. This patch adds the Promise-based version of getUserMedia()
(unprefixed). Other functionality, like enumerateDevices(), will be
added in later patches.

The old callback-based webkitGetUserMedia() (on Navigator) is kept for
legacy purposes (according to the Media Capture and Streams API spec [1]).
Both versions of getUserMedia are backed up by UserMediaRequest where
the callbacks from the callback-based version are wrapped inside c++
lambda functions. The new Promise-based getUserMedia() uses the lambda
functions directly as created by the Promise bindings.

[1] http://w3c.github.io/mediacapture-main/archives/20150324/getusermedia.html#navigatorusermedia-interface-extensions

Test: fast/mediastream/MediaDevices-getUserMedia.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/MediaDevices.cpp: Added.

(WebCore::MediaDevices::create):
(WebCore::MediaDevices::MediaDevices):
(WebCore::MediaDevices::~MediaDevices):
(WebCore::MediaDevices::document):
(WebCore::MediaDevices::getUserMedia):

  • Modules/mediastream/MediaDevices.h: Added.
  • Modules/mediastream/MediaDevices.idl: Added.
  • Modules/mediastream/NavigatorMediaDevices.cpp: Added.

(WebCore::NavigatorMediaDevices::NavigatorMediaDevices):
(WebCore::NavigatorMediaDevices::~NavigatorMediaDevices):
(WebCore::NavigatorMediaDevices::from):
(WebCore::NavigatorMediaDevices::mediaDevices):
(WebCore::NavigatorMediaDevices::supplementName):

  • Modules/mediastream/NavigatorMediaDevices.h: Added.
  • Modules/mediastream/NavigatorMediaDevices.idl: Added.
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):

  • Modules/mediastream/UserMediaRequest.h:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSMediaDevicesCustom.cpp: Added.

(WebCore::JSMediaDevices::getUserMedia):

LayoutTests:

Added test for new Promise-based getUserMedia() (on MediaDevices).

  • fast/dom/navigator-detached-no-crash.html:
  • fast/mediastream/MediaDevices-getUserMedia-expected.txt: Added.
  • fast/mediastream/MediaDevices-getUserMedia.html: Added.
10:15 AM Changeset in webkit [182274] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Fix AirPlay problem caused by r182240
https://bugs.webkit.org/show_bug.cgi?id=143337

Reviewed by Jer Noble.

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Return false if the legacy attribute

"x-webkit-airplay" has the value "allow".

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::parseAttribute): Don't call webkitWirelessVideoPlaybackDisabled when

processing "x-webkit-airplay" and "x-webkit-wirelessvideoplaybackdisabled", just consider
the attribute/value.

9:44 AM Changeset in webkit [182273] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Reinstate expectations for fast/events/mouse-cursor-image-set.html now that r182247
was rolled out.

  • platform/mac/TestExpectations:
9:43 AM Changeset in webkit [182272] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

Caused an assertion on
http/tests/contentextensions/whitelist.html (Requested by ap
on #webkit).

Reverted changeset:

"[Content Extensions] Only add unique universal action
locations."
https://bugs.webkit.org/show_bug.cgi?id=143325
http://trac.webkit.org/changeset/182265

8:45 AM Changeset in webkit [182271] by Antti Koivisto
  • 19 edits in trunk/Source

Use std::chrono types to represent time in response and cache classes
https://bugs.webkit.org/show_bug.cgi?id=143316

Reviewed by Andreas Kling.

Source/WebCore:

Use std::chrono::system_clock::time_point to represent clock times and std::chrono::microseconds to
represent durations. Also use WTF::Optional for optional values (instead of coding them as NaNs).

  • dom/Document.cpp:

(WebCore::Document::lastModified):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::freshnessLifetime):
(WebCore::CachedResource::responseReceived):
(WebCore::CachedResource::updateResponseAfterRevalidation):

  • loader/cache/CachedResource.h:
  • platform/network/CacheValidation.cpp:

(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
(WebCore::updateRedirectChainStatus):
(WebCore::redirectChainAllowsReuse):
(WebCore::parseCacheControlDirectives):

  • platform/network/CacheValidation.h:

(WebCore::RedirectChainCacheStatus::RedirectChainCacheStatus):

  • platform/network/HTTPParsers.cpp:

(WebCore::parseHTTPDate):
(WebCore::parseDate): Deleted.

  • platform/network/HTTPParsers.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::cacheControlMaxAge):
(WebCore::parseDateValueInHeader):
(WebCore::ResourceResponseBase::date):
(WebCore::ResourceResponseBase::age):
(WebCore::ResourceResponseBase::expires):
(WebCore::ResourceResponseBase::lastModified):

  • platform/network/ResourceResponseBase.h:

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::responseHasExpired):
(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::store):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::asJSON):

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::timeStamp):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecord):

Sanity check the timestamp on decode.

(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::encodeRecordHeader):
(WebKit::NetworkCache::Storage::traverse):

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::lastModifiedDateMS):
(WebKit::PluginView::Stream::didReceiveResponse):
(WebKit::PluginView::manualLoadDidReceiveResponse):
(WebKit::lastModifiedDate): Deleted.

1:51 AM Changeset in webkit [182270] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

[CSS MultiColumn] Parse "columns: auto <length>" shorthand property value properly
https://bugs.webkit.org/show_bug.cgi?id=143248

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-02
Reviewed by Darin Adler.

Source/WebCore:

Test: fast/multicol/columns-shorthand-parsing-2.html

The two longhands for the 'columns' property ('column-count' and
'column-width') may both take 'auto' as a value. When we encounter
'auto' during parsing the value list of a declaration, we cannot just
make a guess at which property/properties that's meant for. Instead,
don't assign anything to 'auto' right away, but wait until all values
have been processed and at that point set the still unassigned
properties to 'auto'. If 'auto' isn't in the value list at all, set
unassigned properties to 'initial' for the 'columns' property, just
like we do for any other property.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColumnWidth):
(WebCore::CSSParser::parseColumnCount):
(WebCore::CSSParser::parseColumnsShorthand):

  • css/CSSParser.h:

LayoutTests:

  • fast/css/getPropertyValue-columns-expected.txt:
  • fast/css/getPropertyValue-columns.html:
  • fast/multicol/columns-shorthand-parsing-2-expected.txt: Added.
  • fast/multicol/columns-shorthand-parsing-2.html: Added.
Note: See TracTimeline for information about the timeline view.