zandobersek@gmail.com [Tue, 16 May 2017 13:04:30 +0000 (13:04 +0000)]
[WPE] GLContextEGL::createWPEContext() should fall back to pbuffer-based contexts when offscreen target provides no native window
https://bugs.webkit.org/show_bug.cgi?id=172162
Reviewed by Carlos Garcia Campos.
When creating an offscreen GLContext, the underlying implementation might
provide a mock native window that's to be used as the window target upon
which a window-based GLContext should be created. But we should also support
falling back to pbuffer-based GLContexts when the underlying implementation
can't provide such mock targets.
* platform/graphics/egl/GLContextEGLWPE.cpp:
(WebCore::GLContextEGL::createWPEContext):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216930
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Tue, 16 May 2017 12:57:15 +0000 (12:57 +0000)]
[GLib] Use RunLoopSourcePriority::RunLoopDispatcher as the GSocketMonitor's GSource priority
https://bugs.webkit.org/show_bug.cgi?id=172160
Reviewed by Carlos Garcia Campos.
* Platform/IPC/glib/GSocketMonitor.cpp:
(IPC::GSocketMonitor::start): Explicitly set the priority for the GSocketMonitor's
GSource object to RunLoopSourcePriority::RunLoopDispatcher, equating it to the
priority that's used in RunLoop for dispatches of the queued functions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216929
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Tue, 16 May 2017 12:51:24 +0000 (12:51 +0000)]
[WPE] Set and expose ENABLE_DEVELOPER_MODE in build when DEVELOPER_MODE is enabled
https://bugs.webkit.org/show_bug.cgi?id=172159
Reviewed by Carlos Garcia Campos.
* Source/cmake/OptionsWPE.cmake: Expose the ENABLE_DEVELOPER_MODE macro
when the DEVELOPER_MODE configuration options is enabled.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216928
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Tue, 16 May 2017 12:49:26 +0000 (12:49 +0000)]
[GLib] Name more GSource-based RunLoop::Timers
https://bugs.webkit.org/show_bug.cgi?id=172158
Reviewed by Carlos Garcia Campos.
Source/WebCore:
* platform/glib/MainThreadSharedTimerGLib.cpp:
(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
Specify 'MainThreadSharedTimer' as the name of this GSource-based RunLoop::Timer.
Source/WebKit2:
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop):
Specify 'CompositingRunLoop' as the name of this GSource-based RunLoop::Timer.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor):
Specify 'ThreadedDisplayRefreshMonitor' as the name of this GSource-based RunLoop::Timer.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
Specify 'CoordinatedLayerTreeHost' as the name of this GSource-based RunLoop::Timer.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216927
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 12:47:22 +0000 (12:47 +0000)]
[Readable Streams API] Implement ReadableStreamBYOBReader releaseLock()
https://bugs.webkit.org/show_bug.cgi?id=172111
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-16
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Updated test expectations.
* web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
* web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.
Source/WebCore:
Implemented ReadableStreamBYOBReader releaseLock():
- https://streams.spec.whatwg.org/#byob-reader-release-lock;
- https://streams.spec.whatwg.org/#readable-stream-reader-generic-release.
Added tests to check releaseLock behavior.
* Modules/streams/ReadableStreamBYOBReader.js:
(releaseLock): Implemented.
* Modules/streams/ReadableStreamInternals.js:
(readableStreamReaderGenericRelease): Aligned with spec.
LayoutTests:
Added tests to check releaseLock() behavior.
* streams/readable-stream-byob-reader-expected.txt: Updated.
* streams/readable-stream-byob-reader.js: Added new tests.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216926
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Tue, 16 May 2017 10:32:22 +0000 (10:32 +0000)]
Unreviewed Windows gardening. Skip svg animation test, since image throttling behaves differently on WK1.
* platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216925
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Tue, 16 May 2017 09:40:52 +0000 (09:40 +0000)]
Unreviewed, add Objective C files to CMake Mac port
https://bugs.webkit.org/show_bug.cgi?id=172103
* shell/PlatformMac.cmake: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216924
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 16 May 2017 09:37:51 +0000 (09:37 +0000)]
Unreviewed. Revert change committed by mistakle in r216922.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::forceRepaint):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216923
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 16 May 2017 09:35:58 +0000 (09:35 +0000)]
Unreviewed GTK+ gardening. Rebaseline tests after r216817.
* platform/gtk/fast/multicol/client-rects-expected.txt:
* platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/gtk/fast/multicol/client-rects-spanners-expected.txt:
* platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/gtk/fast/transforms/bounding-rect-zoom-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216922
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jfbastien@apple.com [Tue, 16 May 2017 09:24:13 +0000 (09:24 +0000)]
WebAssembly: enforce size limits
https://bugs.webkit.org/show_bug.cgi?id=165833
<rdar://problem/
29760219>
Reviewed by Keith Miller.
Use the same limits as V8.
* JavaScriptCore.xcodeproj/project.pbxproj:
* wasm/WasmLimits.h: Added.
* wasm/WasmModuleParser.cpp:
* wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::consumeUTF8String):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216921
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 16 May 2017 09:10:55 +0000 (09:10 +0000)]
Unreviewed. Try to fix GTK+ build with MEDIA_STREAM enabled after r216918.
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216920
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 16 May 2017 08:53:21 +0000 (08:53 +0000)]
Unreviewed GTK+ gardening. Update expectations of several WebRTC tests.
* platform/gtk/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216919
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 08:51:50 +0000 (08:51 +0000)]
Remove MediaConstraintsData and MediaConstraintsImpl
https://bugs.webkit.org/show_bug.cgi?id=172132
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-16
Reviewed by Eric Carlson.
Source/WebCore:
No observable change of behavior.
Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
Simplified some RealtimeMediaSource subclasses by removing unused MediaConstraints class members.
* CMakeLists.txt: Removing MediaConstraintsImpl.cpp.
* Modules/mediastream/MediaConstraintsImpl.cpp: Removed.
* Modules/mediastream/MediaConstraintsImpl.h: Removed.
* Modules/mediastream/MediaDevices.cpp:
(WebCore::createMediaConstraints):
(WebCore::MediaDevices::getUserMedia):
(WebCore::createMediaConstraintsImpl): Deleted.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::createMediaConstraints):
(WebCore::MediaStreamTrack::applyConstraints):
(WebCore::createMediaConstraintsImpl): Deleted.
* Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::createMediaConstraints):
(WebCore::createMediaConstraintsImpl): Deleted.
* Modules/mediastream/MediaTrackConstraints.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::allow):
* Modules/mediastream/UserMediaRequest.h:
(WebCore::UserMediaRequest::audioConstraints):
(WebCore::UserMediaRequest::videoConstraints):
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/MediaConstraints.cpp:
(WebCore::addDefaultVideoConstraints):
(WebCore::MediaConstraints::isConstraintSet):
(WebCore::MediaConstraints::setDefaultVideoConstraints):
* platform/mediastream/MediaConstraints.h:
(WebCore::MediaConstraints::~MediaConstraints): Deleted.
(WebCore::MediaConstraints::MediaConstraints): Deleted.
* platform/mediastream/MediaStreamConstraintsValidationClient.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::selectSettings):
(WebCore::RealtimeMediaSource::supportsConstraints):
(WebCore::RealtimeMediaSource::applyConstraints):
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::supportedConstraints): Deleted.
* platform/mediastream/mac/RealtimeIncomingAudioSource.h:
* platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::supportedConstraints): Deleted.
* platform/mediastream/mac/RealtimeIncomingVideoSource.h:
* platform/mock/MockRealtimeMediaSource.h:
(WebCore::MockRealtimeMediaSource::constraints): Deleted.
Source/WebKit2:
Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
* Scripts/webkit/messages.py:
(headers_for_type):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaConstraints>::encode):
(IPC::ArgumentCoder<MediaConstraints>::decode):
(IPC::ArgumentCoder<MediaConstraintsData>::encode): Deleted.
(IPC::ArgumentCoder<MediaConstraintsData>::decode): Deleted.
* Shared/WebCoreArgumentCoders.h:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
* UIProcess/UserMediaPermissionRequestManagerProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::applyConstraints):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216918
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aestes@apple.com [Tue, 16 May 2017 08:03:02 +0000 (08:03 +0000)]
[Cocoa] Tell NEFilterSource about the presenting app's PID
https://bugs.webkit.org/show_bug.cgi?id=172152
<rdar://problem/
32197740>
Reviewed by Dan Bernstein.
* platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::initialize):
* platform/spi/cocoa/NEFilterSourceSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216917
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rego@igalia.com [Tue, 16 May 2017 07:50:32 +0000 (07:50 +0000)]
[css-grid] Fix static position of positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=172108
Reviewed by Sergio Villar Senin.
Source/WebCore:
This patch makes us follow the text on the spec
(https://drafts.csswg.org/css-grid/#static-position):
"The static position of an absolutely-positioned child
of a grid container is determined as if it were the sole grid item
in a grid area whose edges coincide with the padding edges
of the grid container."
Test: fast/css-grid-layout/absolute-positioning-grid-container-parent.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::prepareChildForPositionedLayout): Modified to avoid
including padding to match the spec behavior.
LayoutTests:
The test is updated as the expected results were wrong.
Note that after this patch we match Chrome and Firefox behavior on this test.
* fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216916
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mcatanzaro@igalia.com [Tue, 16 May 2017 07:44:41 +0000 (07:44 +0000)]
[SOUP] Remove LATEST_RECORD_VERSION from GnuTLS priority string
https://bugs.webkit.org/show_bug.cgi?id=172153
Based on discussion with Nikos in https://bugzilla.gnome.org/show_bug.cgi?id=782218, we
should remove LATEST_RECORD_VERSION from our GnuTLS priority string. This causes GnuTLS to
use the latest TLS record version (the record format is separate from the TLS protocol
version), which we needed a couple years ago (after dropping SSLv3) for maximum
compatibility with broken web servers. But it's not needed anymore, and is causing new
compatibility problems with other broken web servers, so let's get rid of it.
Reviewed by Carlos Garcia Campos.
* NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
* WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216915
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Tue, 16 May 2017 07:27:50 +0000 (07:27 +0000)]
[JSC] Build testapi in non Apple ports
https://bugs.webkit.org/show_bug.cgi?id=172103
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch makes JSC testapi buildable in non-Apple ports.
We isolate CF related tests in testapi.c. If we do not use
CF, we include JavaScript.h instead of JavaScriptCore.h.
By running the testapi in Linux, we found that contraints
test have a bug: If constraint marker runs after WeakRefs
are destroyed, it accesses destroyed WeakRef. This patch
also fixes it.
* API/tests/CurrentThisInsideBlockGetterTest.h:
* API/tests/CustomGlobalObjectClassTest.c:
* API/tests/ExecutionTimeLimitTest.cpp:
* API/tests/FunctionOverridesTest.cpp:
* API/tests/GlobalContextWithFinalizerTest.cpp:
* API/tests/JSObjectGetProxyTargetTest.cpp:
* API/tests/MultithreadedMultiVMExecutionTest.cpp:
* API/tests/PingPongStackOverflowTest.cpp:
* API/tests/TypedArrayCTest.cpp:
* API/tests/testapi.c:
(assertEqualsAsCharactersPtr):
(markingConstraint):
(testMarkingConstraintsAndHeapFinalizers):
(testCFStrings):
(main):
* shell/CMakeLists.txt:
Tools:
Now testapi is drived in JSCOnly, GTK and WPE ports too.
* Scripts/build-jsc:
* Scripts/run-javascriptcore-tests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216914
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jfbastien@apple.com [Tue, 16 May 2017 07:23:34 +0000 (07:23 +0000)]
WebAssembly: add memory fuzzer
https://bugs.webkit.org/show_bug.cgi?id=169976
<rdar://problem/
31965328>
Reviewed by Keith Miller.
* wasm/fuzz/memory.js: Added.
(const.insert):
(const.action.string_appeared_here):
(const.performAction):
(catch):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216913
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Tue, 16 May 2017 07:11:56 +0000 (07:11 +0000)]
Compile error, include file is not found.
https://bugs.webkit.org/show_bug.cgi?id=172105
Reviewed by Brent Fulgham.
Use __has_include to detect if include file exists.
* platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216912
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jfbastien@apple.com [Tue, 16 May 2017 07:09:56 +0000 (07:09 +0000)]
WebAssembly: report Memory usage to GC
https://bugs.webkit.org/show_bug.cgi?id=170690
<rdar://problem/
31965310>
Reviewed by Keith Miller.
* wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::grow):
(JSC::JSWebAssemblyMemory::finishCreation):
(JSC::JSWebAssemblyMemory::visitChildren):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216911
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jfbastien@apple.com [Tue, 16 May 2017 07:07:35 +0000 (07:07 +0000)]
WebAssembly: validate load / store alignment
https://bugs.webkit.org/show_bug.cgi?id=168836
<rdar://problem/
31965349>
Reviewed by Keith Miller.
JSTests:
* wasm/WASM.js: fix regular expression greed
* wasm/function-tests/memory-alignment.js: Added.
(const.op.of.WASM.opcodes):
* wasm/wasm.json: fix formatting
Source/JavaScriptCore:
* wasm/WasmFunctionParser.h: check the alignment
* wasm/generateWasm.py: generate the log2 alignment helper
(Wasm):
(isSimple):
(memoryLog2Alignment):
* wasm/generateWasmOpsHeader.py:
(memoryLog2AlignmentGenerator):
* wasm/wasm.json: fix formatting
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216908
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aestes@apple.com [Tue, 16 May 2017 06:06:58 +0000 (06:06 +0000)]
Make the application PID available to WebCore
https://bugs.webkit.org/show_bug.cgi?id=172133
Reviewed by Andreas Kling.
Source/WebCore:
* CMakeLists.txt:
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* platform/RuntimeApplicationChecks.cpp: Added.
(WebCore::presentingApplicationPIDOverride):
(WebCore::presentingApplicationPID): Returns the override PID if set, or getCurrentProcessID()
otherwise.
(WebCore::setPresentingApplicationPID):
* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm: Renamed from Source/WebCore/platform/RuntimeApplicationChecks.mm.
Source/WebKit2:
Added uiProcessPID to Web and Networking process creation parameters. The UI process
initializes these to getpid(), and the child processes call WebCore::setPresentingApplicationPID()
at initialization time.
This replaces presenterApplicationPid.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformInitialize):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::presenterApplicationPid): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216903
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Tue, 16 May 2017 05:35:04 +0000 (05:35 +0000)]
RenderTheme does not need to be per-page
https://bugs.webkit.org/show_bug.cgi?id=172116
<rdar://problem/
30426457>
Reviewed by Zalan Bujtas.
There are no implementations of RenderTheme::themeForPage that actually care about the page.
It can be replaced with a singleton, simplifying a bunch of code.
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::shadowRootCSSText):
(WebCore::MediaControlsHost::base64StringForIconNameAndType):
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
Fix a potential crash if we get here when page is null (though it doesn't appear to repro on trunk).
* css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
* css/parser/CSSParser.h:
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeSystemFont):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAppearance):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::createElementRenderer):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::usesMenuList):
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle):
* html/InputType.cpp:
(WebCore::InputType::themeSupportsDataListUI):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::shouldHaveSpinButton):
(WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setStrokeColor):
(WebCore::CanvasRenderingContext2D::setFillColor):
* html/canvas/CanvasStyle.cpp:
(WebCore::parseColor):
(WebCore::parseColorOrCurrentColor):
(WebCore::CanvasStyle::createFromString):
* html/canvas/CanvasStyle.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::startTimer):
(WebCore::MediaControlPanelElement::makeOpaque):
(WebCore::MediaControlPanelElement::makeTransparent):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::reset):
(WebCore::MediaControls::reportedError):
(WebCore::MediaControls::updateCurrentTimeDisplay):
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
(WebCore::ImageControlsButtonElementMac::tryCreate):
* page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::theme): Deleted.
* platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderTheme::singleton):
(WebCore::RenderTheme::themeForPage): Deleted.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::theme):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::focusRingColor):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::defaultTheme): Deleted.
* rendering/RenderThemeGtk.cpp:
(WebCore::RenderTheme::singleton):
(WebCore::RenderTheme::themeForPage): Deleted.
* rendering/RenderThemeIOS.mm:
(WebCore::RenderTheme::singleton):
(WebCore::RenderTheme::themeForPage): Deleted.
* rendering/RenderThemeMac.mm:
(WebCore::RenderTheme::singleton):
(WebCore::RenderTheme::themeForPage): Deleted.
* rendering/RenderThemeWin.cpp:
(WebCore::RenderTheme::singleton):
(WebCore::RenderTheme::themeForPage): Deleted.
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216902
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 05:14:50 +0000 (05:14 +0000)]
Do not delete asynchronously decoded frames for large images if their clients are in the viewport
https://bugs.webkit.org/show_bug.cgi?id=170640
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-15
Reviewed by Simon Fraser.
Source/WebCore:
The image flickering problem happens when a large image is visible in the
view port and for some reason, the decoded frame gets destroyed. When this
image is repainted, BitmapImage::draw() does not find a valid decoded frame
for that image. It then requests an async decoding for the image and just
draws nothing in the image rectangle. Drawing no content between two drawing
phases in which the image is drawn causes the unwanted flickering.
To fix this issue we need to protect the decoded frames of all the images
in the view port from being destroyed. When BitmapImage::destroyDecodedData()
is called, it is going to check, through the ImageObserver, whether any
of its clients is visible. And if so, the current decoded frame won't be
destroyed.
Tests: Modifying existing tests.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImageObserver::decodedSizeChanged):
(WebCore::CachedImage::CachedImageObserver::didDraw):
(WebCore::CachedImage::CachedImageObserver::canDestroyDecodedData):
(WebCore::CachedImage::CachedImageObserver::imageFrameAvailable):
(WebCore::CachedImage::CachedImageObserver::changedInRect):
(WebCore::CachedImage::decodedSizeChanged):
(WebCore::CachedImage::didDraw):
(WebCore::CachedImage::canDestroyDecodedData): Finds out whether it's okay
to discard the image decoded data or not.
(WebCore::CachedImage::imageFrameAvailable):
(WebCore::CachedImage::changedInRect):
* loader/cache/CachedImage.h:
* loader/cache/CachedImageClient.h:
(WebCore::CachedImageClient::canDestroyDecodedData):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::destroyDecodedDataForAllImages): This function is
currently not used. Use in the internal destroyDecodedDataForAllImages()
but unlike what CachedImage::destroyDecodedData() does, make it destroy
the decoded frames without deleting the image itself.
* loader/cache/MemoryCache.h:
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::canDestroyCurrentFrameDecodedData):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):
(WebCore::BitmapImage::imageFrameAvailableAtIndex):
* platform/graphics/BitmapImage.h:
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::packImageData):
* platform/graphics/ImageFrameCache.cpp:
(WebCore::ImageFrameCache::decodedSizeChanged):
(ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): The assertion in this
function is wrong. frameIsCompleteAtIndex() can be false when the an image
decoding is requested but can be true when the decoding finishes.
* platform/graphics/ImageObserver.h:
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageCG.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoder::frameIsCompleteAtIndex):
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::decodedSizeChanged):
(WebCore::PDFDocumentImage::draw):
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
* platform/graphics/win/ImageDirect2D.cpp:
(WebCore::Image::drawPattern):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::isVisibleInDocumentRect):
(WebCore::RenderElement::isVisibleInViewport):
(WebCore::RenderElement::imageFrameAvailable):
(WebCore::RenderElement::repaintForPausedImageAnimationsIfNeeded):
(WebCore::RenderElement::shouldRepaintInVisibleRect): Deleted. Function
is renamed to isVisibleInViewport() for better readability.
* rendering/RenderElement.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):
* svg/graphics/SVGImageClients.h:
* testing/Internals.cpp:
(WebCore::Internals::destroyDecodedDataForAllImages):
* testing/Internals.h:
* testing/Internals.idl:
Source/WebKit/mac:
Enable the async decoding for large images.
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2:
Enable the async decoding for large images.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
LayoutTests:
* fast/images/async-image-background-image-repeated.html:
* fast/images/async-image-background-image.html:
* fast/images/sprite-sheet-image-draw.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216901
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 03:41:24 +0000 (03:41 +0000)]
WPT test importer should not account for slow manual tests
https://bugs.webkit.org/show_bug.cgi?id=172127
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-15
Reviewed by Ryosuke Niwa.
Making sure manual tests are not triggering updating tests-options.json file.
* Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.find_importable_tests):
(TestImporter._already_identified_as_resource_file):
(TestImporter.update_tests_options):
* Scripts/webkitpy/w3c/test_importer_unittest.py:
(test_manual_slow_test):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216900
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jbedard@apple.com [Tue, 16 May 2017 03:19:19 +0000 (03:19 +0000)]
webkitpy: Some versions of simctl do not place parenthesis around runtime identifiers
https://bugs.webkit.org/show_bug.cgi?id=172142
Reviewed by Tim Horton.
* Scripts/webkitpy/xcode/simulator.py:
(Simulator._parse_runtimes): Newer versions of simctl output do not put parenthesis
around runtime identifiers.
* Scripts/webkitpy/xcode/simulator_unittest.py: Add tests for new simctl output.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216899
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 02:45:28 +0000 (02:45 +0000)]
Simplify RealtimeMediaSource data production and state
https://bugs.webkit.org/show_bug.cgi?id=171999
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-15
Reviewed by Eric Carlson.
Source/WebCore:
RealtimeMediaSource takes 3 booleans:
- m_isProducingData tells whether data is produced or not. In the case of capturing, it tells whether capture
happens.
- m_muted/m_enabled allows JS or WebKit level to start/stop the source.
Changed MediaStream capture state computation so that capture is reported as follows:
- m_isProducing is true, capture is happenning and is active
- m_muted is true, capture is happening but is inactive.
Except in the case of WebRTC incoming sources, for which sources may be created as muted as per the spec,
all sources are unmuted, enabled and not producing data when created.
RealtimeMediaSource is now activable either by calling start/stop or by calling setMuted/setEnabled.
This in turns will set the boolean values accordingly and will call the underlying
startProducingData/stopProducingData methods doing the actual stuff.
Removing from all RealtimeMediaSource subclasses the handling of producing data.
Making more methods non-virtual/member fields private to simplify the model.
* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::create):
(WebCore::CanvasCaptureMediaStreamTrack::Source::startProducingData):
(WebCore::CanvasCaptureMediaStreamTrack::Source::stopProducingData):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasDestroyed):
(WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas):
* Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::mediaState):
* platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::startProducingData):
(WebCore::MediaStreamTrackPrivate::stopProducingData):
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::setMuted):
(WebCore::RealtimeMediaSource::notifyMutedChange):
(WebCore::RealtimeMediaSource::setEnabled):
(WebCore::RealtimeMediaSource::start):
(WebCore::RealtimeMediaSource::stop):
(WebCore::RealtimeMediaSource::requestStop):
(WebCore::RealtimeMediaSource::reset): Deleted.
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/mac/AVMediaCaptureSource.h:
* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::AVMediaCaptureSource):
(WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange):
(WebCore::AVMediaCaptureSource::reset): Deleted.
(WebCore::AVMediaCaptureSource::isProducingData): Deleted.
* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::audioSourceProvider):
* platform/mediastream/mac/CoreAudioCaptureSource.h:
* platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:
(WebCore::MockRealtimeAudioSourceMac::render):
(WebCore::MockRealtimeAudioSource::createMuted): Deleted.
* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::createMuted): Deleted.
* platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::create):
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource):
(WebCore::RealtimeIncomingAudioSource::~RealtimeIncomingAudioSource):
(WebCore::RealtimeIncomingAudioSource::startProducingData):
(WebCore::RealtimeIncomingAudioSource::stopProducingData):
(WebCore::RealtimeIncomingAudioSource::setSourceTrack):
* platform/mediastream/mac/RealtimeIncomingAudioSource.h:
* platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::create):
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::startProducingData):
(WebCore::RealtimeIncomingVideoSource::setSourceTrack):
(WebCore::RealtimeIncomingVideoSource::stopProducingData):
(WebCore::RealtimeIncomingVideoSource::OnFrame):
* platform/mediastream/mac/RealtimeIncomingVideoSource.h:
* platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
(WebCore::WebAudioSourceProviderAVFObjC::setClient):
* platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::createMutedRemoteSource):
(WebCore::MockMediaEndpoint::unmuteTimerFired):
* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::createMuted):
(WebCore::MockRealtimeAudioSource::startProducingData):
(WebCore::MockRealtimeAudioSource::stopProducingData):
* platform/mock/MockRealtimeAudioSource.h:
* platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::startProducingData): Deleted.
(WebCore::MockRealtimeMediaSource::stopProducingData): Deleted.
* platform/mock/MockRealtimeMediaSource.h:
* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::createMuted):
(WebCore::MockRealtimeVideoSource::startProducingData):
(WebCore::MockRealtimeVideoSource::stopProducingData):
(WebCore::MockRealtimeVideoSource::generateFrame):
* platform/mock/MockRealtimeVideoSource.h:
Source/WebKit2:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::startProducingData):
(WebKit::UserMediaCaptureManagerProxy::stopProducingData):
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216898
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Tue, 16 May 2017 01:59:10 +0000 (01:59 +0000)]
browserbench.org/Speedometer/ should show the benchmark not an index of files
https://bugs.webkit.org/show_bug.cgi?id=172141
Reviewed by Alexey Proskuryakov.
Renamed Speedometer/Full.html to Speedometer/index.html.
We used to have a .htaccess but it's better to use the same file name convention as other benchmarks.
* Speedometer/index.html: Renamed from Websites/browserbench.org/Speedometer/Full.html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216897
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mmaxfield@apple.com [Tue, 16 May 2017 01:37:43 +0000 (01:37 +0000)]
Migrate Font constructor from bools to enums
https://bugs.webkit.org/show_bug.cgi?id=172140
Reviewed by Tim Horton.
In https://bugs.webkit.org/show_bug.cgi?id=168487, I'm adding a new flag to Font. We can't
keep having just a pile of bools in this class. Instead, we should be using enums.
No new tests because there is no behavior change.
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::font):
* css/CSSSegmentedFontFace.cpp:
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::createFont):
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::description):
(WebCore::Font::mathData):
* platform/graphics/Font.h:
(WebCore::Font::create):
(WebCore::Font::origin):
(WebCore::Font::isInterstitial):
(WebCore::Font::widthForGlyph):
(WebCore::Font::isCustomFont): Deleted.
(WebCore::Font::isLoading): Deleted.
* platform/graphics/FontRanges.cpp:
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformInit):
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::Font::platformCreateScaledFont):
* platform/graphics/win/SimpleFontDataCGWin.cpp:
(WebCore::Font::platformInit):
* platform/graphics/win/SimpleFontDataDirect2D.cpp:
(WebCore::Font::platformInit):
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::Font::platformCreateScaledFont):
(WebCore::Font::determinePitch):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForFontAndText):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216896
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Tue, 16 May 2017 01:29:39 +0000 (01:29 +0000)]
bmalloc: Bump the size of the deallocator log to 512
https://bugs.webkit.org/show_bug.cgi?id=172143
Reviewed by Michael Saboff.
This is a speedup on parallel workloads for machines with lots of CPUs.
* bmalloc/Sizes.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216895
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mcatanzaro@igalia.com [Tue, 16 May 2017 00:58:32 +0000 (00:58 +0000)]
[GTK] [l10n] Updated French translation for Webkit/GTK
https://bugs.webkit.org/show_bug.cgi?id=172093
Patch by Alexandre Franke <afranke@gnome.org> on 2017-05-15
Rubber-stamped by Michael Catanzaro.
* fr.po:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216894
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 16 May 2017 00:50:19 +0000 (00:50 +0000)]
Correct typo (part of r216790).
* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: The check-in missed part of a
regular expression needed to fix the audio playback.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216893
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 16 May 2017 00:41:50 +0000 (00:41 +0000)]
WebRTC outgoing muted video sources should send black frames
https://bugs.webkit.org/show_bug.cgi?id=170627
<rdar://problem/
31513869>
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-15
Reviewed by Eric Carlson.
Source/WebCore:
Covered by updated test.
Instead of sending one black frame and then another one asynchronously,
we use the timer to send a black frame every second when outgoing source is muted.
* platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged):
(WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged):
(WebCore::RealtimeOutgoingVideoSource::sendBlackFrames):
(WebCore::RealtimeOutgoingVideoSource::sendBlackFrame): Deleted.
* platform/mediastream/mac/RealtimeOutgoingVideoSource.h:
* testing/Internals.cpp:
(WebCore::Internals::videoSampleAvailable):
LayoutTests:
* webrtc/video-mute-expected.txt:
* webrtc/video-mute.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216892
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Tue, 16 May 2017 00:21:59 +0000 (00:21 +0000)]
Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
https://bugs.webkit.org/show_bug.cgi?id=172147
Rubber-stamped by Saam Barati.
JSTests:
* stress/object-rest-deconstruct.js: Removed.
* stress/object-spread.js: Removed.
Source/JavaScriptCore:
I rolled out every thing in those 2 patches except for the change to make
CodeBlock::finishCreation() return a bool plus its clients that depend on this.
I made this exception because r214931 relies on this change, and this part of
the change looks correct.
* builtins/BuiltinNames.h:
* builtins/GlobalOperations.js:
(globalPrivate.speciesConstructor):
(globalPrivate.copyDataProperties): Deleted.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantIdentifierSetRegisters): Deleted.
* bytecode/CodeBlock.h:
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::addBitVector):
(JSC::UnlinkedCodeBlock::constantRegisters):
(JSC::UnlinkedCodeBlock::addSetConstant): Deleted.
(JSC::UnlinkedCodeBlock::constantIdentifierSets): Deleted.
* bytecompiler/BytecodeGenerator.cpp:
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitBytecode):
(JSC::ObjectPatternNode::bindValue):
(JSC::ObjectSpreadExpressionNode::emitBytecode): Deleted.
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createObjectSpreadExpression): Deleted.
(JSC::ASTBuilder::appendObjectPatternRestEntry): Deleted.
(JSC::ASTBuilder::setContainsObjectRestElement): Deleted.
* parser/NodeConstructors.h:
(JSC::PropertyNode::PropertyNode):
(JSC::SpreadExpressionNode::SpreadExpressionNode):
(JSC::ObjectSpreadExpressionNode::ObjectSpreadExpressionNode): Deleted.
* parser/Nodes.h:
(JSC::ObjectPatternNode::appendEntry):
(JSC::ObjectSpreadExpressionNode::expression): Deleted.
(JSC::ObjectPatternNode::setContainsRestElement): Deleted.
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseProperty):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createSpreadExpression):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::operatorStackPop):
(JSC::SyntaxChecker::createObjectSpreadExpression): Deleted.
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
* runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
Source/WTF:
* wtf/HashSet.h:
(WTF::=):
LayoutTests:
* js/parser-syntax-check-expected.txt:
* js/script-tests/parser-syntax-check.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216891
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Mon, 15 May 2017 23:54:34 +0000 (23:54 +0000)]
Crash in libxml2.2.dylib: xmlDictReference
<https://webkit.org/b/172086>
<rdar://problem/
23643436>
Reviewed by Daniel Bates.
Speculative fix and code clean-up based on source code
inspection. The fix for the crash is in two parts that change
XSLStyleSheet::parseString():
1. Always set m_stylesheetDoc to nullptr after freeing it via
XSLStyleSheet::clearXSLStylesheetDocument().
2. Add nullptr check before using m_stylesheetDoc from parent.
Broadly speaking, the changes are:
- Extract code to reset m_stylesheetDoc into new private
XSLStyleSheet::clearXSLStylesheetDocument() method. There is
a special contract between m_stylesheetDoc and
m_stylesheetDocTaken that wasn't being followed every time.
See comment in XSLStyleSheet::compileStyleSheet().
- XSLStyleSheet::clearDocuments() now calls new
clearXSLStylesheetDocument() method. Previously, it was not
checking or resetting m_stylesheetDocTaken, and it might have
leaked an xmlDocPtr if m_stylesheetDoc was set and
m_stylesheetDocTaken was false.
- XSLStyleSheet::parseString() now calls new
clearXSLStylesheetDocument() method. Previously, it did not
clear m_stylesheetDoc after freeing it, and it could return
early due to a failure in xmlCreateMemoryParserCtxt().
- In XSLStyleSheet::parseString() use checked arithmetic when
calculating 'size' for xmlCreateMemoryParserCtxt() and
xmlCtxtReadMemory(). This code used to do an implicit
unsigned -> signed integer conversion that could overflow.
- Always iterate m_children using an 'auto& import' variable.
* xml/XSLStyleSheet.h:
(WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add declaration.
(WebCore::XSLStyleSheet::m_disabled): Add default initializer.
(WebCore::XSLStyleSheet::m_stylesheetDoc): Ditto.
(WebCore::XSLStyleSheet::m_stylesheetDocTaken): Ditto.
(WebCore::XSLStyleSheet::m_parentStyleSheet): Ditto.
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::XSLStyleSheet): Get rid of redundant
initializers. Set m_parentStyleSheet if needed.
(WebCore::XSLStyleSheet::~XSLStyleSheet): Call
clearXSLStylesheetDocument() instead of custom code. Switch
m_children fast iteration to use 'auto& import' variable.
(WebCore::XSLStyleSheet::isLoading): Switch m_children fast
iteration to use 'auto& import' variable.
(WebCore::XSLStyleSheet::clearDocuments): Call
clearXSLStylesheetDocument() instead of setting m_stylesheetDoc
to nullptr. This might fix an occasional xmlDocPtr leak.
(WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add. This
method always sets m_stylesheetDoc to nullptr (after freeing it
if necessary) and sets m_stylesheetDocTaken to false.
(WebCore::XSLStyleSheet::parseString): Call
clearXSLStylesheetDocument(). Prior to this, m_stylesheetDoc
might be left pointing to a freed value, and this method could
return early if xmlCreateMemoryParserCtxt() failed. Switch to
using Checked<> to compute required buffer size to parse XSL
stylesheet, and return early on overflow. Clean up existing
return statements to use boolean expressions. Add nullptr check
for m_parentStyleSheet->m_stylesheetDoc before using it.
(WebCore::XSLStyleSheet::loadChildSheet): Get rid of local
variable by calling loadSheet() from last array element.
(WebCore::XSLStyleSheet::compileStyleSheet): Add debug assert
that m_stylesheetDoc is not nullptr.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216889
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 15 May 2017 23:36:20 +0000 (23:36 +0000)]
Unreviewed, rebaseline platform/ios/ios/css/construct-WebKitCSSMatrix.html after r216881.
* platform/ios/ios/css/construct-WebKitCSSMatrix-expected.txt:
* platform/ios/ios/css/resources/construct-WebKitCSSMatrix.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216888
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Mon, 15 May 2017 23:24:43 +0000 (23:24 +0000)]
Update ARES-6 plan file to use the latest version
https://bugs.webkit.org/show_bug.cgi?id=172139
Reviewed by Keith Miller.
Include r216538.
* Scripts/webkitpy/benchmark_runner/data/plans/ares6.plan:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216887
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Mon, 15 May 2017 22:46:13 +0000 (22:46 +0000)]
Add experimental setting to allow document gesture interaction to fulfill media playback gesture requirement
https://bugs.webkit.org/show_bug.cgi?id=172131
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/restricted-audio-playback-with-document-gesture.html
Move all calls to ScriptController::processingUserGestureForMedia() to the new Document equivalent. In Document,
if the new setting is enabled, return true from processingUserGestureForMedia() if the top-level document has had
a user gesture interaction.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::processingUserGestureForMedia):
* Modules/mediastream/MediaStream.h:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::processingUserGestureForMedia):
(WebCore::AudioContext::willBeginPlayback):
(WebCore::AudioContext::willPausePlayback):
* Modules/webaudio/AudioContext.h:
* dom/Document.cpp:
(WebCore::Document::processingUserGestureForMedia):
* dom/Document.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::audioTrackEnabledChanged):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker):
(WebCore::HTMLMediaElement::processingUserGestureForMedia):
* html/HTMLMediaElement.h:
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted):
(WebCore::MediaElementSession::dataLoadingPermitted):
(WebCore::MediaElementSession::fullscreenPermitted):
(WebCore::MediaElementSession::canShowControlsManager):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
* page/Settings.in:
* platform/audio/PlatformMediaSession.h:
Source/WebKit/mac:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences mediaUserGestureInheritsFromDocument]):
(-[WebPreferences setMediaUserGestureInheritsFromDocument:]):
* WebView/WebPreferencesPrivate.h:
Source/WebKit2:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMediaUserGestureInheritsFromDocument):
(WKPreferencesGetMediaUserGestureInheritsFromDocument):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
LayoutTests:
* media/restricted-audio-playback-with-document-gesture-expected.txt: Added.
* media/restricted-audio-playback-with-document-gesture.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216886
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Mon, 15 May 2017 22:40:50 +0000 (22:40 +0000)]
LayoutTest http/tests/media/track-in-band-hls-metadata-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167749
Reviewed by Eric Carlson.
Start video playback when the 'canplaythrough' event is handled, and stop logging the event,
since the event sequence is not identical on all bots.
* http/tests/media/track-in-band-hls-metadata-crash-expected.txt:
* http/tests/media/track-in-band-hls-metadata-crash.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216885
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Mon, 15 May 2017 22:34:15 +0000 (22:34 +0000)]
Only ever initialize LibWebRTCProvider's staticFactoryAndThreads() factories once.
https://bugs.webkit.org/show_bug.cgi?id=172047
Reviewed by Youenn Fablet.
Wrap the initilization of the factories contained in staticFactoryAndThreads() in a call_once to ensure
new factories aren't created every time it's called.
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::staticFactoryAndThreads):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216884
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 22:32:27 +0000 (22:32 +0000)]
Web Inspector: CRASH seen with DOM.setOuterHTML when there is no documentElement
https://bugs.webkit.org/show_bug.cgi?id=172135
<rdar://problem/
32175860>
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-05-15
Reviewed by Brian Burg.
Source/WebCore:
Test: inspector/dom/setOuterHTML-no-document-element.html
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
Null check the document element which might not exist.
LayoutTests:
* inspector/dom/setOuterHTML-no-document-element-expected.txt: Added.
* inspector/dom/setOuterHTML-no-document-element.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216883
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 22:10:37 +0000 (22:10 +0000)]
REGRESSION (216471): Infinite repaint-drawing loop when asynchronously decoding incomplete image frames
https://bugs.webkit.org/show_bug.cgi?id=171900
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-15
Reviewed by Tim Horton.
-- Don't destroy incomplete decoded image frames for large images. This
is to avoid flickering while decoding another image frame with the new
data. The old incomplete image frame will be destroyed once the newer one
finishes decoding.
-- Extend the enum ImageFrame::DecodingStatus by adding a new value called
'Decoding'. This new value will never be cached in the ImageFrame::
m_decodingStatus. Add a member m_currentFrameDecodingStatus to BitmapImage.
The purpose of this member is to invalidate the current frame, without
deleting it, when new encoded data is received.
-- Don't wait until the native image is decoded to cache the ImageFrame
decodingStatus. There is a big chance that more data arrives between
starting the decoding and finishing it such that the decoding changes
from Partial to Complete. We need to prevent keeping incomplete ImageFrames
cached because we mistakenly assume they are complete. To fix this issue
we need to know the ImageFrame decodingStatus when the decoding is requested.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::dataChanged):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::internalStartAnimation): At the beginning of this
function we check whether the next frame is being decoded or not and we
return DecodingActive if it is. Let's handle the second check here also
before requesting the decoding of nextFrame. We need to check whether the
nextFrame has a native image with decoded with the native size or not.
(WebCore::BitmapImage::internalAdvanceAnimation):
(WebCore::BitmapImage::imageFrameAvailableAtIndex):
* platform/graphics/BitmapImage.h:
* platform/graphics/ImageFrame.cpp:
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::setDecodingStatus):
(WebCore::ImageFrame::decodingStatus):
* platform/graphics/ImageFrame.h:
(WebCore::ImageFrame::isInvalid):
(WebCore::ImageFrame::isPartial):
(WebCore::ImageFrame::isComplete):
(WebCore::ImageFrame::setDecoding): Deleted.
(WebCore::ImageFrame::decoding): Deleted.
(WebCore::ImageFrame::isEmpty): Deleted.
* platform/graphics/ImageFrameCache.cpp:
(WebCore::ImageFrameCache::setNativeImage):
(WebCore::ImageFrameCache::cacheMetadataAtIndex):
(WebCore::ImageFrameCache::cacheNativeImageAtIndex):
(WebCore::ImageFrameCache::cacheNativeImageAtIndexAsync):
(WebCore::ImageFrameCache::startAsyncDecodingQueue):
(WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex):
(WebCore::ImageFrameCache::stopAsyncDecodingQueue):
(WebCore::ImageFrameCache::frameAtIndexCacheIfNeeded):
(WebCore::ImageFrameCache::frameDecodingStatusAtIndex):
(WebCore::ImageFrameCache::cacheFrameMetadataAtIndex): Deleted.
(WebCore::ImageFrameCache::cacheFrameNativeImageAtIndex): Deleted.
(WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex): Deleted.
(WebCore::ImageFrameCache::frameIsCompleteAtIndex): Deleted.
* platform/graphics/ImageFrameCache.h:
(WebCore::ImageFrameCache::ImageFrameRequest::operator==):
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::dataChanged):
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::destroyIncompleteDecodedData):
(WebCore::ImageSource::requestFrameAsyncDecodingAtIndex): Let the caller
decide whether another request for the same image frame is allowed or not.
(WebCore::ImageSource::frameDecodingStatusAtIndex):
(WebCore::ImageSource::frameIsCompleteAtIndex): Deleted.
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageDecoder::frameDurationAtIndex):
(WebCore::ImageDecoder::createFrameImageAtIndex):
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::decodeBMP):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::clearFrameBufferCache):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::frameComplete):
(WebCore::GIFImageDecoder::initFrameBuffer):
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::outputScanlines):
(WebCore::JPEGImageDecoder::jpegComplete):
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable):
(WebCore::PNGImageDecoder::pngComplete):
(WebCore::PNGImageDecoder::clearFrameBufferCache):
(WebCore::PNGImageDecoder::frameComplete):
* platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216882
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 15 May 2017 22:07:54 +0000 (22:07 +0000)]
Align WebKitCSSMatrix stringifier with spec for DOMMatrix
https://bugs.webkit.org/show_bug.cgi?id=172114
Reviewed by Simon Fraser.
Source/WebCore:
Align WebKitCSSMatrix stringifier with spec for DOMMatrix after:
- https://github.com/w3c/fxtf-drafts/pull/148
The following changes were made:
- Use EcmaScript's ToString() to convert floating point values to string
- Throw an invalid state error if the matrix contains non-finite values
- Made WebKitCSSMatrix.toString enumerable as per [1].
[1] https://heycam.github.io/webidl/#es-stringifier
Test: fast/css/matrix-stringifier.html
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::toString):
* css/WebKitCSSMatrix.h:
* css/WebKitCSSMatrix.idl:
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::containsOnlyFiniteValues):
* platform/graphics/transforms/TransformationMatrix.h:
LayoutTests:
* fast/css/matrix-stringifier-expected.txt: Added.
* fast/css/matrix-stringifier.html: Added.
Add layout test coverage.
* fast/dom/Window/custom-constructors-expected.txt:
* fast/dom/Window/custom-constructors.html:
Rebaseline existing test to reflect behavior change.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216881
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Mon, 15 May 2017 21:51:09 +0000 (21:51 +0000)]
JSEnvironmentRecord::allocationSizeForScopeSize() and offsetOfVariable(ScopeOffset) should used checked arithmetic
<https://webkit.org/b/172134>
Reviewed by Saam Barati.
* runtime/JSEnvironmentRecord.h:
(JSC::JSEnvironmentRecord::offsetOfVariable): Change to return
size_t and use checked arithmetic.
(JSC::JSEnvironmentRecord::allocationSizeForScopeSize): Change
to use checked arithmetic.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216880
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jcraig@apple.com [Mon, 15 May 2017 21:36:32 +0000 (21:36 +0000)]
AX: Inaccessible content on webkit.org main page
https://bugs.webkit.org/show_bug.cgi?id=172106
Reviewed by Joseph Pecoraro.
* wp-content/themes/webkit/widgets/icon.php: Resolved link title.
* wp-content/themes/webkit/widgets/post.php: Resolved link title.
* wp-content/themes/webkit/widgets/twitter.php: Resolved link titles. Suppressed unlabeled images with alt="".
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216879
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 15 May 2017 21:23:23 +0000 (21:23 +0000)]
Import css/geometry-1 web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172130
Reviewed by Youenn Fablet.
Import css/geometry-1 web-platform-tests to gain better test coverage.
* resources/import-expectations.json:
* web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-001.html: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-002-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-002.html: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-003-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-003.html: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias.html: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.html: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-css-string.worker.js: Added.
(string_appeared_here.forEach.constr.test):
(string_appeared_here.forEach.constr.assert_equals):
(test):
* web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMMatrix-newobject.html: Added.
* web-platform-tests/css/geometry-1/DOMPoint-001-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMPoint-001.html: Added.
* web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMPoint-002.html: Added.
* web-platform-tests/css/geometry-1/DOMQuad-001-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMQuad-001.html: Added.
* web-platform-tests/css/geometry-1/DOMQuad-002-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMQuad-002.html: Added.
* web-platform-tests/css/geometry-1/DOMRect-001-expected.txt: Added.
* web-platform-tests/css/geometry-1/DOMRect-001.html: Added.
* web-platform-tests/css/geometry-1/OWNERS: Added.
* web-platform-tests/css/geometry-1/WebKitCSSMatrix-expected.txt: Added.
* web-platform-tests/css/geometry-1/WebKitCSSMatrix.html: Added.
* web-platform-tests/css/geometry-1/WebKitCSSMatrix.worker-expected.txt: Added.
* web-platform-tests/css/geometry-1/WebKitCSSMatrix.worker.html: Added.
* web-platform-tests/css/geometry-1/WebKitCSSMatrix.worker.js: Added.
(test):
* web-platform-tests/css/geometry-1/historical-expected.txt: Added.
* web-platform-tests/css/geometry-1/historical.html: Added.
* web-platform-tests/css/geometry-1/structured-serialization-expected.txt: Added.
* web-platform-tests/css/geometry-1/structured-serialization.html: Added.
* web-platform-tests/css/geometry-1/w3c-import.log: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216878
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Mon, 15 May 2017 21:21:58 +0000 (21:21 +0000)]
[WK2][macOS][iOS] Allow Network process to access nsurlstoraged's top level domain data cache
https://bugs.webkit.org/show_bug.cgi?id=172128
<rdar://problem/
30871490>
Reviewed by Alex Christensen.
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216877
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Mon, 15 May 2017 20:34:13 +0000 (20:34 +0000)]
WorkerRunLoop::Task::performTask() should check !scriptController->isTerminatingExecution().
https://bugs.webkit.org/show_bug.cgi?id=171775
<rdar://problem/
30975761>
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
Increased the number of frames captured in VM::nativeStackTraceOfLastThrow()
from 25 to 100. From experience, I found that 25 is sometimes not sufficient
for our debugging needs.
Also added VM::throwingThread() to track which thread an exception was thrown in.
This may be useful if the client is entering the VM from different threads.
* runtime/ExceptionScope.cpp:
(JSC::ExceptionScope::unexpectedExceptionMessage):
* runtime/ExceptionScope.h:
(JSC::ExceptionScope::exception):
(JSC::ExceptionScope::unexpectedExceptionMessage):
* runtime/Options.h:
- Added the unexpectedExceptionStackTraceLimit option.
* runtime/VM.cpp:
(JSC::VM::throwException):
* runtime/VM.h:
(JSC::VM::throwingThread):
(JSC::VM::clearException):
Source/WebCore:
Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate
JS execution first, followed by posting a cleanup task to the worker, and lastly,
it invokes terminate() on the WorkerRunLoop.
As a result, before the run loop is terminated, the worker thread may observe the
TerminatedExecutionException in JS code, bail out, see another JS task to run,
re-enters the VM to run said JS code, and fails with an assertion due to the
TerminatedExecutionException still being pending on VM entry.
WorkerRunLoop::Task::performTask() already has a check to only allow a task to
run if and only if !runLoop.terminated() and the task is not a clean up task.
We'll fix the above race by changing WorkerRunLoop::Task::performTask() to check
!context->script()->isTerminatingExecution() instead of !runLoop.terminated().
Since WorkerThread::stop() always scheduleExecutionTermination() before it
terminates the run loop, !context->script()->isTerminatingExecution() implies
!runLoop.terminated().
The only time that runLoop is terminated without scheduleExecutionTermination()
being called is when WorkerThread::stop() is called before the WorkerThread has
finished creating its WorkerGlobalScope. In this scenario, WorkerThread::stop()
will still terminate the run loop. Hence, after the WorkerGlobalScope is created
(in WorkerThread::workerThread()), we will check if the run loop has been
terminated (i.e. stop() was called). If so, we'll scheduleExecutionTermination()
there, and guarantee that if runloop.terminated() is true, then
context->script()->isTerminatingExecution() is also true.
Solutions that were considered but did not work (recorded for future reference):
1. In WorkerThread::stop(), call scheduleExecutionTermination() only after it
posts the cleanup task and terminate the run loop.
This did not work because this creates a race where the worker thread may run
the cleanup task before WorkerThread::stop() finishes. As a result, the
scriptController may be deleted before we get to invoke scheduleExecutionTermination()
on it, thereby resulting in a use after free.
To make this work, we would have to change the life cycle management strategy
of the WorkerScriptController. This is a more risky change that we would
want to take on at this time, and may also not be worth the gain.
2. Break scheduleExecutionTermination() up into 2 parts i.e. WorkerThread::stop()
will:
1. set the scriptControllers m_isTerminatingExecution flag before
posting the cleanup task and terminating the run loop, and
2. invoke VM::notifyNeedsTermination() after posting the cleanup task and
terminating the run loop.
This requires that we protect the liveness of the VM until we can invoke
notifyNeedsTermination() on it.
This did not work because:
1. We may end up destructing the VM in WorkerThread::stop() i.e. in the main
web frame, but only the worker thread holds the JS lock for the VM.
We can make the WorkerThread::stop() acquire the JS lock just before it
releases the protected VM's RefPtr, but that would mean the main thread
may be stuck waiting a bit for the worker thread to release its JSLock.
This is not desirable.
2. In practice, changing the liveness period of the Worker VM relative to its
WorkerScriptController and WorkerGlobalScope also has unexpected
ramifications. We observed many worker tests failing with assertion
failures and crashes due to this change.
Hence, this approach is also a more risky change than it appears on the
surface, and is not worth exploring at this time.
In the end, changing WorkerRunLoop::Task::performTask() to check for
!scriptController->isTerminatingExecution() is the most straight forward solution
that is easy to prove correct.
Also fixed a race in WorkerThread::workerThread() where it can delete the
WorkerGlobalScope while WorkerThread::stop() is in the midst of accessing it.
We now guard the the nullifying of m_workerGlobalScope with the
m_threadCreationAndWorkerGlobalScopeMutex as well.
UPDATE: the only new thing in this patch for re-landing (vs one previously landed)
is that instead of nullifying m_workerGlobalScope directly (thereby deleting the
WorkerGlobalScope context), we'll swap it out and delete it only after we've
unlocked the m_threadCreationAndWorkerGlobalScopeMutex. This is needed because
the destruction of the WorkerGlobalScope will cause the main thread to race against
the worker thread to delete the WorkerThread object, and the WorkerThread object
owns the mutex that we need to unlock after nullifying the m_workerGlobalScope
field.
This issue is covered by an existing test that I just unskipped in TestExpectations.
* bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::callFunction):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::scheduleExecutionTermination):
- Added a check to do nothing and return early if the scriptController is already
terminating execution.
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):
(WebCore::WorkerRunLoop::Task::performTask):
* workers/WorkerRunLoop.h:
- Made Task::performTask() private and make Task befriend the WorkerRunLoop class.
This ensures that only the WorkerRunLoop may call performTask().
Note: this change only formalizes and hardens a relationship that was already
in place before this.
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThread::stop):
* workers/WorkerThread.h:
- Renamed m_threadCreationMutex to m_threadCreationAndWorkerGlobalScopeMutex so
that it more accurately describes what it guards.
LayoutTests:
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216876
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Mon, 15 May 2017 20:20:37 +0000 (20:20 +0000)]
Update json.hpp to v2.1.1
<https://webkit.org/b/172085>
<rdar://problem/
32180980>
Reviewed by Alex Christensen.
* NetworkProcess/capture/NetworkCaptureEvent.cpp:
- Define JSON_NOEXCEPTION as 1 to disable exceptions in
json.hpp.
(WebKit::NetworkCapture::JSONCoder<String>::encode):
(WebKit::NetworkCapture::JSONCoder<WebCore::SharedBuffer>::encode):
- Build std::string passing in length to avoid the need for a
custom basic_json() constructor, and for efficiency.
* NetworkProcess/capture/json.hpp:
- Update to v2.1.1 and remove customizations.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216875
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mmaxfield@apple.com [Mon, 15 May 2017 20:16:51 +0000 (20:16 +0000)]
Unicode characters which can't be rendered in any font are invisible
https://bugs.webkit.org/show_bug.cgi?id=171942
<rdar://problem/
32054234>
Reviewed by Tim Horton.
Source/WebCore:
There are some Unicode characters which don't have any font on the system which can render them.
These characters should be drawn as the .notdef "tofu." This is for security and usability, as
well as what Firefox and Chrome do. However, we still shouldn't draw characters with the
Default_Ignorable_Code_Point property, because this is what CoreText does.
This behavior is also what the Unicode spec recommends: In UTR #36 Unicode Security Considerations:
http://www.unicode.org/reports/tr36/#Recommendations_General
"If there is no available glyph for a character, never show a simple "?" or omit the character."
Also relevant is the Unicode Standard section 5.3 Unknown and MIssing Characters, starting at page
marked 203 in the following: http://www.unicode.org/versions/Unicode9.0.0/ch05.pdf
Tests: fast/text/default-ignorable.html
fast/text/unknown-char-notdef.html
* platform/graphics/WidthIterator.cpp:
(WebCore::characterMustDrawSomething):
LayoutTests:
* fast/text/default-ignorable-expected.html: Added.
* fast/text/default-ignorable.html: Added.
* fast/text/unknown-char-notdef-expected-mismatch.html: Added.
* fast/text/unknown-char-notdef.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216874
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 19:44:54 +0000 (19:44 +0000)]
Disable Picture In Picture API tests on unsupported platforms.
https://bugs.webkit.org/show_bug.cgi?id=172125
rdar://problem/
32199477
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-15
Reviewed by Simon Fraser.
The callbacks and allowing picture-in-picture require new SPI.
* TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216871
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Mon, 15 May 2017 19:34:28 +0000 (19:34 +0000)]
[ios-simulator] API test WKWebView.ClearAppCache is failing.
https://bugs.webkit.org/show_bug.cgi?id=172120
Unreviewed test gardening.
* TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:
(TEST): ios-sim needs explicit deleting of the app cache paths that I'd removed in 216805.
Restoring that code fixes this.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216869
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Mon, 15 May 2017 19:21:36 +0000 (19:21 +0000)]
Null deref under WebContentReader::readURL when interacting with a file URL
https://bugs.webkit.org/show_bug.cgi?id=172045
<rdar://problem/
25880647>
Reviewed by Wenson Hsieh.
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readURL):
The AppSupport soft link was wrong, as there is no such framework in /System/Library/Frameworks.
Thus, any time we hit this codepath, the soft linked function would be null, and calling it would crash.
Instead of just fixing the soft link, remove the code, because it does not seem necessary to
special-case fileURLs to images in the media directory.
* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
The text of the file URL is pasted because a textual version of it gets
onto the pasteboard. However, this test would have crashed before. Also
tests that we don't make an <a>.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216868
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Mon, 15 May 2017 18:31:11 +0000 (18:31 +0000)]
Unreviewed build fix.
Debugging code was accidentally left in the Plugin sandbox profile.
* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216867
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Mon, 15 May 2017 18:26:08 +0000 (18:26 +0000)]
ASSERTION FAILED: wasRemoved in WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver(DevicesChangedObserverToken)
https://bugs.webkit.org/show_bug.cgi?id=171529
<rdar://problem/
31945791>
Reviewed by Jer Noble.
No new tests, fixes a crash in existing tests.
* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::MediaDevices): Use a weak ptr.
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::observerMap): Use a static hash map for observers because the
source center can change at runtime.
(WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::captureDevicesChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216866
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 18:14:36 +0000 (18:14 +0000)]
[GTK] Web Inspector: Add new GTK+ icons for Search icon of Quick Open dialog
https://bugs.webkit.org/show_bug.cgi?id=172110
Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-05-15
Reviewed by Michael Catanzaro.
Add a free icon for the Web Inspector in GTK+.
* UserInterface/Images/gtk/Search.svg: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216865
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 18:11:41 +0000 (18:11 +0000)]
[GTK] Web Inspector: Add new GTK+ icons for Worker Scripts / Web Sockets
https://bugs.webkit.org/show_bug.cgi?id=164138
Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-05-15
Reviewed by Michael Catanzaro.
Add more free icons for the Web Inspector in GTK+.
* UserInterface/Images/gtk/WorkerScript.png: Added.
* UserInterface/Images/gtk/WorkerScript@2x.png: Added.
* UserInterface/Images/gtk/WorkerScriptLarge.png: Added.
* UserInterface/Images/gtk/WorkerScriptLarge@2x.png: Added.
* UserInterface/Views/ResourceIcons.css:
(.script.worker-icon .icon):
(.large .script.worker-icon .icon):
(body:matches(.mac-platform, .windows-platform) .script.worker-icon .icon): Deleted.
(body:matches(.mac-platform, .windows-platform) .large .script.worker-icon .icon): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216864
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Mon, 15 May 2017 17:24:14 +0000 (17:24 +0000)]
[iOS WK1] Do not try to dispatch messages to subframes if their documents have not been constructed yet.
https://bugs.webkit.org/show_bug.cgi?id=172059
<rdar://problem/
31963192>
Reviewed by Zalan Bujtas.
On iOS WK1 we can end up in an inconsistent state, where
1. The web thread is inside a newly-injected iframe's document's constructor and
2. waiting on a delegate callback on the main thread
while the main thread
(a) Evaluates arbitrary JavaScript that modifies storage which
(b) Triggers an event dispatch.
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents): If the sub-frame's document
is in an inconsistent state, skip it.
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents): Ditto.
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames): Ditto.
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216863
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yoon@igalia.com [Mon, 15 May 2017 15:26:58 +0000 (15:26 +0000)]
[WPE] Unreviewed debug build fix
https://bugs.webkit.org/show_bug.cgi?id=172118
Unreviewed, remove a dead code accidentally committed in r215259.
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
Remove deprecated CompositingRunLoop::isCurrent.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::frameComplete):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216862
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Mon, 15 May 2017 14:21:54 +0000 (14:21 +0000)]
Simple line layout: Leading whitespace followed by a <br> produces an extra linebreak.
https://bugs.webkit.org/show_bug.cgi?id=172076
Reviewed by Antti Koivisto.
Source/WebCore:
When the collapsed whitespace does not fit the line, we need to push it to the next line
so that we can decide whether any soft/hard linebreak should be skipped (to avoid double line breaks) or not.
Test: fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::consumeLineBreakIfNeeded): special handling <br>
(WebCore::SimpleLineLayout::firstFragment): Now we need to deal with leading collapsed whitespace.
(WebCore::SimpleLineLayout::createLineRuns): We need to push even the collapsed whitespace to the next line.
LayoutTests:
* fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak-expected.html: Added.
* fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216861
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
nael.ouedraogo@crf.canon.fr [Mon, 15 May 2017 09:14:25 +0000 (09:14 +0000)]
Invalid MediaSource duration value should throw TyperError instead of InvalidStateError
https://bugs.webkit.org/show_bug.cgi?id=171653
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Rebaseline test results.
* web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt:
Source/WebCore:
Modify MediaSource::setDuration to throw a TypeError when duration value is invalid as per MSE specification
(https://www.w3.org/TR/2016/REC-media-source-
20161117/#dom-mediasource-duration).
Update expectations of corresponding WPT test.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setDuration):
(WebCore::MediaSource::setDurationInternal):
LayoutTests:
Modify MediaSource::setDuration to throw a TypeError when duration value is invalid as per MSE specification
(https://www.w3.org/TR/2016/REC-media-source-
20161117/#dom-mediasource-duration).
Update expectations of corresponding WPT test.
* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Added.
* platform/mac-elcapitan/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Added.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216860
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yoon@igalia.com [Mon, 15 May 2017 09:06:53 +0000 (09:06 +0000)]
[CAIRO] Painting an image mask with a matrix above Pixman's limit breaks internal states of Cairo
https://bugs.webkit.org/show_bug.cgi?id=169094
Reviewed by Žan Doberšek.
Source/WebCore:
It is the same problem which addressed in r212431.
In HiDPI situation, it happens easily due to the size of coordinates.
Also, if this bug happens, it will break the rendering continuously
since we are reusing graphics contexts to render webpages in same
webview.
Test: fast/hidpi/hidpi-long-page-with-inset-element.html
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::pushImageMask):
We can avoid the limit of the Pixman by reducing the source surface's
size, and it will create a minimal pattern matrix.
LayoutTests:
* fast/hidpi/hidpi-long-page-with-inset-element-expected.html: Added.
* fast/hidpi/hidpi-long-page-with-inset-element.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216859
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jcraig@apple.com [Mon, 15 May 2017 07:01:51 +0000 (07:01 +0000)]
2017-05-14 James Craig <jcraig@apple.com>
Upload poster images and working captioned video
https://bugs.webkit.org/show_bug.cgi?id=172102
Unreviewed. More resources for prefers-reduced-motion post.
* blog-files/prefers-reduced-motion/axi.htm: Added.
* blog-files/prefers-reduced-motion/axi.png: Removed.
* blog-files/prefers-reduced-motion/posters: Added.
* blog-files/prefers-reduced-motion/posters/apple_env_load.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_env_planeshift.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_ios10.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_shoot.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_shoot_reduced.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_sierra.jpg: Added.
* blog-files/prefers-reduced-motion/posters/apple_sierra_reduced.jpg: Added.
* blog-files/prefers-reduced-motion/posters/axi.jpg: Added.
* blog-files/prefers-reduced-motion/posters/viljami.jpg: Added.
* blog-files/prefers-reduced-motion/prm.htm: Link to axi.htm video demo.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216858
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Mon, 15 May 2017 06:20:06 +0000 (06:20 +0000)]
[Win] fast/cookies/local-file-can-set-cookies.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=172071
Reviewed by Alexey Proskuryakov.
Source/WebKit/win:
We need to delete all cookies after each test.
* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferences.cpp:
(WebPreferences::linkPreloadEnabled):
(WebPreferences::clearNetworkLoaderSession):
* WebPreferences.h:
Tools:
* DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216857
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Mon, 15 May 2017 05:51:19 +0000 (05:51 +0000)]
Unreviewed build fix with newer Perl versions.
* bindings/scripts/CodeGeneratorJS.pm:
(AddLegacyCallerOperationIfNeeded): Support for experimental push on scalar (and
other auto-dereferencing) was removed in Perl 5.24. Instead, the LegacyCallers array
has to be dereferenced when pushing new values to it.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216856
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jcraig@apple.com [Mon, 15 May 2017 05:00:08 +0000 (05:00 +0000)]
2017-05-14 James Craig <jcraig@apple.com>
AX: All the articles on the WebKit blog are called 'Clickable Link' by VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=172096
<rdar://problem/
31624323>
Unreviewed. Fixing broken link titles for screen readers.
* wp-content/themes/webkit/loop.php: Adding relevant link label for accessibility.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216855
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Mon, 15 May 2017 01:09:48 +0000 (01:09 +0000)]
[WebIDL/DOM] Remove need for custom bindings for HTMLAllCollection and bring up to spec
https://bugs.webkit.org/show_bug.cgi?id=172095
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
* web-platform-tests/html/infrastructure/common-dom-interfaces/collections/htmlallcollection-expected.txt:
Update results.
Source/WebCore:
- Adds support for the legacycaller WebIDL special annotation.
- Updates implementation of HTMLAllCollection to match the current HTML spec.
Test: fast/dom/document-all.html
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSHTMLAllCollectionCustom.cpp: Removed.
Removed JSHTMLAllCollectionCustom.cpp
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateInterface):
(AddLegacyCallerOperationIfNeeded):
Before code generation, clone all the legacycaller operations and put them
in their own set, so they can form an overload set.
(AddStringifierOperationIfNeeded):
Use IDLParser::cloneType as the FIXME suggested.
(GenerateHeader):
Group call related functionality together and use new IsCallable predicate.
(GenerateOverloadedFunctionOrConstructor):
Generalize a little bit to allow the function being overloaded to be an overloaded legacycaller.
(GenerateImplementation):
Add call to generate the legacycaller code.
(GenerateLegacyCallerDefinitions):
(GenerateLegacyCallerDefinition):
Generate the legacycaller definition, using GenerateArgumentsCountCheck, GenerateParametersCheck
and GenerateImplementationFunctionCall to do all the heavy lifting.
(IsCallable):
Add helper predicate for both custom calls and legacycaller.
* bindings/scripts/IDLParser.pm:
(cloneType):.
(cloneArgument):.
(cloneOperation):
Add cloning functions for IDLArgument and IDLOperation, and make IDLType's
clone feasible for calling outside the package by removing the unneeded
self parameter.
* bindings/scripts/test/JS/JSTestObj.cpp
* bindings/scripts/test/JS/JSTestObj.h
* bindings/scripts/test/TestObj.idl:
Add testing of legacycaller overloading.
* dom/Document.cpp:
(WebCore::Document::allFilteredByName):
* dom/Document.h:
Add new collection access for the HTMLAllNamedSubCollection.
* html/CachedHTMLCollection.h:
(WebCore::nameShouldBeVisibleInDocumentAll):
Update list of tags to match the current spec.
* html/CollectionType.h:
Add new type for HTMLAllNamedSubCollection.
* html/GenericCachedHTMLCollection.cpp:
(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
Specify that DocumentAllNamedItems does not want
the default elementMatches.
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::namedOrIndexedItemOrItems):
(WebCore::HTMLAllCollection::namedItemOrItems):
(WebCore::HTMLAllNamedSubCollection::~HTMLAllNamedSubCollection):
(WebCore::HTMLAllNamedSubCollection::elementMatches):
* html/HTMLAllCollection.h:
Move implementations from the custom binding, and re-implement to
match the spec. Alternate names to item/namedItem were needed to not
shadow the existing ones in HTMLCollection. HTMLAllNamedSubCollection
is a simple HTMLCollection that matches on a name, following the rules
of document.all about which tags can have name attributes.
* html/HTMLAllCollection.idl:
Remove custom annotations and add legacycaller which is now supported.
* html/HTMLCollection.cpp:
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::HTMLCollection::~HTMLCollection):
Add DocumentAllNamedItems.
LayoutTests:
* fast/dom/collection-null-like-arguments-expected.txt:
Update results.
* fast/dom/document-all-expected.txt: Added.
* fast/dom/document-all.html: Added.
New test that covers a bunch of missing coverage.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216851
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 15 May 2017 00:46:51 +0000 (00:46 +0000)]
[CoordinatedGraphics] Remove unused files and lines
https://bugs.webkit.org/show_bug.cgi?id=172080
Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-05-14
Reviewed by Darin Adler.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: Removed.
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h: Removed.
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp: Removed.
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h: Removed.
* UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h: Removed.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216850
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Sun, 14 May 2017 21:16:42 +0000 (21:16 +0000)]
Remove unused lambda in TextFragmentIterator::TextFragment::split() and cleanup dependencies.
https://bugs.webkit.org/show_bug.cgi?id=172089
Reviewed by David Kilzer.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::splitFragmentToFitLine):
* rendering/SimpleLineLayoutTextFragmentIterator.h:
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::split):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::splitWithHyphen):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216849
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sun, 14 May 2017 19:27:45 +0000 (19:27 +0000)]
Always reset the assisted node when the main frame commits a new load.
https://bugs.webkit.org/show_bug.cgi?id=172088
Reviewed by Antti Koivisto.
WebPage::m_assistedNode could extend the lifetime of the document it pointed into
if the main frame was navigated while the assisted node was in one of its subframes.
The life-supported document wouldn't be reachable from JavaScript but nevertheless
would consume memory and other resources.
This patch fixes the issue by always clearing WebPage::m_assistedNode when the main
frame commits a new load.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::resetAssistedNodeForFrame):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216847
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 17:43:39 +0000 (17:43 +0000)]
[iOS/macOS Debug WK2] LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces.html is a flaky crash due to assertion failure
<https://bugs.webkit.org/show_bug.cgi?id=172094>
<rdar://problem/
32184256>
Unreviewed test gardening.
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
- Mark test as flaky crash on Debug WK2 builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216846
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ossy@webkit.org [Sun, 14 May 2017 13:27:10 +0000 (13:27 +0000)]
Unreviewed Mac cmake buildfix after r216690, just for fun.
* PlatformMac.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216844
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 11:28:21 +0000 (11:28 +0000)]
[macOS Debug WK1] fast/parser/adoption-agency-unload-iframe-4.html is a flaky timeout (always on iOS 10 Release WK1)
<https://webkit.org/b/172092>
Unreviewed test gardening.
* platform/ios-wk1/TestExpectations:
- This only times out on Release builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216843
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 11:16:38 +0000 (11:16 +0000)]
[macOS Debug WK1] fast/parser/adoption-agency-unload-iframe-4.html is a flaky timeout (always on iOS 10 Release WK1)
<https://webkit.org/b/172092>
Unreviewed test gardening.
See also Bug 169211 for a similar GTK WK1 timeout.
* platform/ios-wk1/TestExpectations:
- Mark as always timing out on all builds.
* platform/mac-wk1/TestExpectations:
- Mark flaky on Debug builds.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216842
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 10:41:40 +0000 (10:41 +0000)]
Fix unused lambdas in WebKit2
<https://webkit.org/b/172090>
Reviewed by Chris Dumez.
Fixes unused lambda warnings found with newer clang.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
- Use UNUSED_PARAM() to silence unused lambda warning since
'startTime' is used in Debug builds.
* NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::fuzzyMatchURLs):
- Remove unused 'this' from lambda capture.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- Use UNUSED_PARAM() to silence unused lambda warning since
'taskIdentifier' is used in Debug builds.
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
- Remove unused 'this' from lambda captures.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
- Remove unused 'fetchOptions' from lambda capture.
(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains):
- Remove unused 'this' from lambda capture.
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::forceRepaintIfNeeded):
- Remove unused 'this' from lambda capture.
* WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
- Remove unused 'this' from nested lambda captures.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216841
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Sun, 14 May 2017 08:18:51 +0000 (08:18 +0000)]
Build fix. Added a missing null check.
* public/v3/pages/analysis-task-page.js:
(AnalysisTaskConfiguratorPane.prototype.setTestGroups):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216840
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Sun, 14 May 2017 07:31:49 +0000 (07:31 +0000)]
Drop PassRefPtr class from WTF
https://bugs.webkit.org/show_bug.cgi?id=172091
Reviewed by Alex Christensen.
Source/WTF:
Drop PassRefPtr class from WTF as it is no longer used or needed.
Also drop RefPtr::release() for the same reasons.
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/CrossThreadCopier.cpp:
* wtf/CrossThreadCopier.h:
* wtf/Forward.h:
* wtf/PassRefPtr.h: Removed.
* wtf/RefPtr.h:
(WTF::refIfNotNull):
(WTF::derefIfNotNull):
(WTF::RefPtr::RefPtr):
(WTF::RefPtr::release): Deleted.
* wtf/SizeLimits.cpp:
* wtf/Vector.h:
Tools:
Drop API test coverage.
* TestWebKitAPI/Tests/WTF/Ref.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithPassRefPtr): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216839
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 06:05:17 +0000 (06:05 +0000)]
Unused lambda in JSWebKitSubtleCrypto::wrapKey()
<https://webkit.org/b/172087>
Reviewed by Chris Dumez.
Fixes the following warning with newer clang:
Source/WebCore/bindings/js/JSWebKitSubtleCryptoCustom.cpp:594:35: error: lambda capture 'keyFormat' is not used [-Werror,-Wunused-lambda-capture]
auto exportSuccessCallback = [keyFormat, algorithm, parameters, wrappingKey, wrapper](const Vector<uint8_t>& exportedKeyData) mutable {
^
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::JSWebKitSubtleCrypto::wrapKey): Remove unused lambda.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216838
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 05:37:52 +0000 (05:37 +0000)]
Unused lambda capture in JSContextGroupAddMarkingConstraint()
<https://webkit.org/b/172084>
Reviewed by Saam Barati.
Fixes the following warning with newer clang:
Source/JavaScriptCore/API/JSMarkingConstraintPrivate.cpp:78:11: error: lambda capture 'vm' is not used [-Werror,-Wunused-lambda-capture]
[&vm, constraintCallback, userData]
^
* API/JSMarkingConstraintPrivate.cpp:
(JSContextGroupAddMarkingConstraint): Remove unused lambda
capture for '&vm'.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216837
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Sun, 14 May 2017 05:27:18 +0000 (05:27 +0000)]
[MediaStream] deviceId constraint doesn't work with getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=171877
<rdar://problem/
31899730>
Reviewed by Jer Noble.
Source/WebCore:
Test: fast/mediastream/get-user-media-device-id.html
* Modules/mediastream/MediaConstraintsImpl.h:
(WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that
takes a const MediaConstraints&.
* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::~MediaDevices): m_deviceChangedToken is a std::optional<>.
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/MediaDevicesEnumerationRequest.cpp:
(WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return
NULL for the main frame so the origin matches that returned for a UserMediaRequest.
* Modules/mediastream/UserMediaController.h:
(WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used.
(WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on
constraints.
* Modules/mediastream/UserMediaRequest.h:
* platform/mediastream/MediaConstraints.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId.
(WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it
we have to hash the device ID before comparing, and because the DeviceId can't be
changed so it should never be added to the flattened constraints.
(WebCore::RealtimeMediaSource::supportsConstraints):
(WebCore::RealtimeMediaSource::applyConstraints):
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Implement.
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:
(WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused.
(WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused.
* platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device
id, not empty string.
(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints): Deleted.
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): Deleted.
* platform/mock/MockRealtimeMediaSourceCenter.h:
Source/WebKit2:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaConstraintsData>::encode): Encode deviceIDHashSalt.
(IPC::ArgumentCoder<MediaConstraintsData>::decode): Decode deviceIDHashSalt.
* UIProcess/UserMediaPermissionCheckProxy.cpp:
(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): Initialize
completion handler, frame ID, and security origins.
(WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): Complete by calling
completion handler because we now sometimes request access info before calling gUM.
(WebKit::UserMediaPermissionCheckProxy::invalidate): Clear completion handler.
* UIProcess/UserMediaPermissionCheckProxy.h:
* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::FrameAuthorizationState::FrameAuthorizationState): Take security origins, not
UserMediaPermissionRequestProxy, so it can be constructed with a UserMediaPermissionCheckProxy.
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual): Ditto. Clear has salt
when origins don't match.
(WebKit::UserMediaPermissionRequestManagerProxy::stateForRequest): Templatize.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): Fix typo.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Ditto.
Don't set state for empty UIDs. Pass hash salt to web process.
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
The device ID hash salt is now required to validate constraints, so get it first.
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Helper
method used to get the device ID hash salt.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Restructure
to use getUserMediaPermissionInfo.
(WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck): Deleted.
* UIProcess/UserMediaPermissionRequestManagerProxy.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted): Add device ID
hash salt parameter.
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userMediaAccessWasGranted): Ditto.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::createCaptureSource): Use new MediaConstraintsData
constructor.
Tools:
The device ID hash salt is now required for getUserMedia to check deviceId constraint, so
implement the "checkUserMediaPermission" callback.
* TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:
(TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack):
(TestWebKitAPI::checkUserMediaPermissionCallback):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm:
(-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
LayoutTests:
* fast/mediastream/get-user-media-device-id-expected.txt: Added.
* fast/mediastream/get-user-media-device-id.html: Added.
* fast/mediastream/apply-constraints-video-expected.txt: Updated.
* fast/mediastream/apply-constraints-video.html: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216836
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 05:21:12 +0000 (05:21 +0000)]
[JSC] config.rb fails when checking some clang versions
<https://webkit.org/b/172082>
Reviewed by Mark Lam.
* offlineasm/config.rb:
- Add support for quad-dotted version of Apple clang (800.0.12.1).
- Add support for checking open source clang version (5.0.0).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216835
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ddkilzer@apple.com [Sun, 14 May 2017 04:27:01 +0000 (04:27 +0000)]
TestExpectations: Remove last refereneces to Legacy Notifications
Unreviewed test gardening fixes these lint warnings:
LayoutTests/TestExpectations:1222 Path does not exist. fast/notifications/notifications-event-stop-propagation.html
LayoutTests/TestExpectations:1223 Path does not exist. fast/notifications/notifications-multi-events.html
* TestExpectations: Remove references to skipped tests. Legacy
Notification support was removed in r216641.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216834
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Sun, 14 May 2017 04:04:35 +0000 (04:04 +0000)]
Stop using RefPtr::release()
https://bugs.webkit.org/show_bug.cgi?id=172074
Reviewed by Geoffrey Garen.
Source/WebCore:
* css/parser/CSSPropertyParser.cpp:
(WebCore::FontVariantLigaturesParser::finalizeValue):
(WebCore::FontVariantNumericParser::finalizeValue):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeValue):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create):
* loader/archive/mhtml/MHTMLArchive.cpp:
(WebCore::MHTMLArchive::generateMHTMLData):
* loader/archive/mhtml/MHTMLArchive.h:
* loader/archive/mhtml/MHTMLParser.cpp:
(WebCore::MHTMLParser::parseArchiveWithHeader):
* platform/audio/ios/AudioFileReaderIOS.cpp:
(WebCore::AudioFileReader::createBus):
* platform/glib/SharedBufferGlib.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
(WebCore::CACFLayerTreeHost::create):
* platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::copyCairoImageSurface):
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::getImageData):
* platform/graphics/gtk/IconGtk.cpp:
(WebCore::Icon::createIconForFiles):
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFallbackForCharacters):
* platform/win/SharedBufferWin.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
Source/WebKit/win:
* WebFrame.cpp:
(WebFrame::loadPlainTextString):
(WebFrame::loadHTMLString):
* WebFramePolicyListener.cpp:
(WebFramePolicyListener::receivedPolicyDecision):
Source/WebKit2:
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::create):
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::createImageBacking):
* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createCairoSurface):
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp:
(WebKit::core):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsMHTMLData):
Source/WTF:
* wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatchAfter):
Tools:
* TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216833
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Sun, 14 May 2017 01:07:05 +0000 (01:07 +0000)]
Remove flaky expectation for LayoutTest media/media-controls-clone-crash.html.
https://bugs.webkit.org/show_bug.cgi?id=171978
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216830
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jfernandez@igalia.com [Sat, 13 May 2017 21:36:59 +0000 (21:36 +0000)]
[css-align] Implement the place-self shorthand
https://bugs.webkit.org/show_bug.cgi?id=168846
Reviewed by Zalan Bujtas.
Source/WebCore:
The CSS Box Alignment specification defines a new shorthand to set the
Content Alignment properties (align-self and justify-self) at the
same time.
This patch provides the implementation of the CSS parsing logic and the
required regression tests.
Test: css3/parse-place-self.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSProperties.json:
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumePlaceSelfShorthand):
(WebCore::CSSPropertyParser::parseShorthand):
* css/parser/CSSPropertyParser.h:
LayoutTests:
Regression tests for the new place-self alignment shorthand.
* css3/parse-place-self-expected.txt: Added.
* css3/parse-place-self.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216829
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 13 May 2017 20:32:59 +0000 (20:32 +0000)]
Unreviewed, rolling out r216808.
https://bugs.webkit.org/show_bug.cgi?id=172075
caused lldb to hang when debugging (Requested by smfr on
#webkit).
Reverted changeset:
"Use Mach exceptions instead of signals where possible"
https://bugs.webkit.org/show_bug.cgi?id=171865
http://trac.webkit.org/changeset/216808
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216827
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 13 May 2017 19:10:59 +0000 (19:10 +0000)]
Unreviewed, rolling out r216801.
https://bugs.webkit.org/show_bug.cgi?id=172072
Many memory corruption crashes on worker threads (Requested by
ap on #webkit).
Reverted changeset:
"WorkerRunLoop::Task::performTask() should check
!scriptController->isTerminatingExecution()."
https://bugs.webkit.org/show_bug.cgi?id=171775
http://trac.webkit.org/changeset/216801
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216826
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Sat, 13 May 2017 18:43:40 +0000 (18:43 +0000)]
AccessibilityRenderObject::textUnderElement needs to assert on unclean tree.
https://bugs.webkit.org/show_bug.cgi?id=172065
Reviewed by Simon Fraser.
r192103 changed the assert logic incorrectly. If the tree is dirty, regardless of the renderer's type,
TextIterator will end up forcing style update/layout on the render tree.
The original assert would have hit with bug 171546 prior to r216726.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216825
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sat, 13 May 2017 18:24:15 +0000 (18:24 +0000)]
event.clientX/clientY should be in layout viewport coordinates
https://bugs.webkit.org/show_bug.cgi?id=172018
Reviewed by Zalan Bujtas.
Source/WebCore:
Fix clientX and clientY on mouse events to be relative to the layout viewport, to match
getBoundingClientRect(), getClientRects() and fixed-position objects.
Also minor cleanup of MouseRelatedEvent to use initializers.
Test: fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
(WebCore::MouseRelatedEvent::init):
(WebCore::MouseRelatedEvent::initCoordinates):
(WebCore::contentsScrollOffset): Deleted.
* dom/MouseRelatedEvent.h:
LayoutTests:
* fast/events/clientXY-in-zoom-and-scroll.html:
* fast/visual-viewport/client-coordinates-relative-to-layout-viewport-expected.txt: Added.
* fast/visual-viewport/client-coordinates-relative-to-layout-viewport.html: Added.
* platform/ios/TestExpectations:
* platform/mac/fast/events/clientXY-in-zoom-and-scroll-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216824
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Sat, 13 May 2017 17:33:30 +0000 (17:33 +0000)]
Drop uses of PassRefPtr in WebKit/win
https://bugs.webkit.org/show_bug.cgi?id=172067
Reviewed by Yusuke Suzuki.
* DOMEventsClasses.cpp:
(DOMEvent::DOMEvent):
(DOMEvent::createInstance):
* DOMEventsClasses.h:
(DOMUIEvent::DOMUIEvent):
(DOMKeyboardEvent::DOMKeyboardEvent):
(DOMMouseEvent::DOMMouseEvent):
(DOMMutationEvent::DOMMutationEvent):
(DOMOverflowEvent::DOMOverflowEvent):
(DOMWheelEvent::DOMWheelEvent):
* MemoryStream.cpp:
(MemoryStream::MemoryStream):
(MemoryStream::createInstance):
* MemoryStream.h:
* Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::refresh):
(WebCore::PluginDatabase::add):
(WebCore::PluginDatabase::loadPersistentMetadataCache):
* Plugins/PluginDatabase.h:
* Plugins/PluginPackage.cpp:
(WebCore::PluginPackage::createPackage):
(WebCore::PluginPackage::createPackageFromCache):
* Plugins/PluginPackage.h:
* Plugins/PluginStream.h:
(WebCore::PluginStream::create):
* WebActionPropertyBag.cpp:
(WebActionPropertyBag::WebActionPropertyBag):
(WebActionPropertyBag::createInstance):
* WebActionPropertyBag.h:
* WebArchive.cpp:
(WebArchive::createInstance):
(WebArchive::WebArchive):
* WebArchive.h:
* WebBackForwardList.cpp:
(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::createInstance):
* WebBackForwardList.h:
* WebCoreSupport/EmbeddedWidget.cpp:
(EmbeddedWidget::create):
* WebCoreSupport/EmbeddedWidget.h:
* WebCoreSupport/WebChromeClient.h:
* WebFrame.cpp:
(WebFrame::loadData):
(WebFrame::createSubframeWithOwnerElement):
* WebFrame.h:
* WebFramePolicyListener.cpp:
(WebFramePolicyListener::WebFramePolicyListener):
(WebFramePolicyListener::createInstance):
* WebFramePolicyListener.h:
* WebGeolocationPolicyListener.cpp:
(WebGeolocationPolicyListener::createInstance):
(WebGeolocationPolicyListener::WebGeolocationPolicyListener):
* WebGeolocationPolicyListener.h:
* WebHistoryItem.cpp:
(WebHistoryItem::WebHistoryItem):
(WebHistoryItem::createInstance):
* WebHistoryItem.h:
* WebMutableURLRequest.cpp:
(WebMutableURLRequest::setFormData):
(WebMutableURLRequest::formData):
* WebMutableURLRequest.h:
* WebResource.cpp:
(WebResource::createInstance):
* WebResource.h:
* WebScriptWorld.cpp:
(WebScriptWorld::WebScriptWorld):
(WebScriptWorld::createInstance):
* WebScriptWorld.h:
* WebURLAuthenticationChallengeSender.cpp:
(WebURLAuthenticationChallengeSender::WebURLAuthenticationChallengeSender):
(WebURLAuthenticationChallengeSender::createInstance):
* WebURLAuthenticationChallengeSender.h:
* WebView.cpp:
(WebView::setFullScreenElement):
* WebView.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216823
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 13 May 2017 06:39:30 +0000 (06:39 +0000)]
[WebIDL] Remove need for custom binding for Worker constructor
https://bugs.webkit.org/show_bug.cgi?id=172050
Patch by Sam Weinig <sam@webkit.org> on 2017-05-12
Reviewed by Chris Dumez.
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWorkerCustom.cpp: Removed.
Remove JSWorkerCustom.cpp
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
* bindings/scripts/IDLAttributes.json:
Add RuntimeFlags as a new option for the ConstructorCallWith extended attribute.
* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/Worker.h:
Update order of arguments to appease the generator.
* workers/Worker.idl:
Add extended attributes for the constructor.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216819
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sat, 13 May 2017 05:41:28 +0000 (05:41 +0000)]
The rects returned by Element/Range.getClientRects() should not be rounded
https://bugs.webkit.org/show_bug.cgi?id=172057
Reviewed by Chris Dumez.
Source/WebCore:
Fix createDOMRectVector() to not expand the rects to integer boundaries (which
quad.enclosingBoundingBox() does), but to return rects with floating point
values. This matches Chrome and Firefox, and matches getBoundingClientRect(),
which does not integral snap.
* dom/DOMRect.cpp:
(WebCore::createDOMRectVector):
LayoutTests:
Fix tests that were sensitive to rounding. I had to mark fast/text/multiglyph-characters.html
as failing (webkit.org/b/172056).
* TestExpectations:
* fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html:
* fast/dom/Range/getClientRects-expected.txt:
* fast/dom/Range/getClientRects.html:
* fast/dom/Range/simple-line-layout-getclientrects-expected.html:
* fast/dom/Range/simple-line-layout-getclientrects.html:
* fast/visual-viewport/client-rects-relative-to-layout-viewport-expected.txt:
* platform/ios/TestExpectations:
* platform/ios/fast/multicol/client-rects-expected.txt:
* platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/ios/fast/multicol/client-rects-spanners-expected.txt:
* platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/ios/fast/transforms/bounding-rect-zoom-expected.txt:
* platform/mac/fast/multicol/client-rects-expected.txt:
* platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
* platform/mac/fast/multicol/client-rects-spanners-expected.txt:
* platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
* platform/mac/fast/transforms/bounding-rect-zoom-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216817
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Sat, 13 May 2017 05:26:11 +0000 (05:26 +0000)]
Drop uses of PassRefPtr in WebKit/mac
https://bugs.webkit.org/show_bug.cgi?id=172066
Reviewed by Sam Weinig.
Source/WebKit/ios:
Build fix.
* Misc/WebGeolocationProviderIOS.mm:
Source/WebKit/mac:
* History/WebBackForwardListInternal.h:
* History/WebHistoryItem.mm:
(kit):
(-[WebHistoryItem initWithWebCoreHistoryItem:]):
* History/WebHistoryItemInternal.h:
* Plugins/Hosted/HostedNetscapePluginStream.h:
(WebKit::HostedNetscapePluginStream::create):
* Plugins/Hosted/NetscapePluginHostManager.h:
* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::instantiatePlugin):
* Plugins/Hosted/NetscapePluginInstanceProxy.h:
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::PluginRequest::create):
(WebKit::NetscapePluginInstanceProxy::create):
(WebKit::NetscapePluginInstanceProxy::setManualStream):
* Plugins/Hosted/ProxyInstance.h:
(WebKit::ProxyInstance::create):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::ProxyInstance):
(WebKit::ProxyInstance::newRuntimeObject):
* Plugins/Hosted/ProxyRuntimeObject.h:
(WebKit::ProxyRuntimeObject::create):
* Plugins/Hosted/ProxyRuntimeObject.mm:
(WebKit::ProxyRuntimeObject::ProxyRuntimeObject):
* Plugins/Hosted/WebHostedNetscapePluginView.h:
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:]):
* Plugins/WebBaseNetscapePluginView.h:
* Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:]):
* Plugins/WebNetscapePluginStream.h:
(WebNetscapePluginStream::create):
* Plugins/WebNetscapePluginView.h:
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:]):
* WebCoreSupport/WebChromeClient.mm:
* WebCoreSupport/WebEditorClient.mm:
* WebCoreSupport/WebNotificationClient.mm:
(WebNotificationClient::requestPermission):
(-[WebNotificationPolicyListener initWithCallback:]):
* WebCoreSupport/WebOpenPanelResultListener.mm:
* WebCoreSupport/WebUserMediaClient.mm:
(WebUserMediaClient::requestUserMediaAccess):
(WebUserMediaClient::enumerateMediaDevices):
(-[WebUserMediaPolicyListener initWithUserMediaRequest:]):
(-[WebUserMediaPolicyCheckerListener initWithMediaDevicesEnumerationRequest:]):
* WebView/WebArchive.mm:
(-[WebArchivePrivate initWithCoreArchive:]):
(-[WebArchivePrivate setCoreArchive:]):
(-[WebArchive initWithData:]):
(-[WebArchive subframeArchives]):
(-[WebArchive _initWithCoreLegacyWebArchive:]):
* WebView/WebArchiveInternal.h:
* WebView/WebDataSource.mm:
(WebDataSourcePrivate::WebDataSourcePrivate):
(WebDataSourcePrivate::~WebDataSourcePrivate):
(-[WebDataSource _initWithDocumentLoader:]):
* WebView/WebDataSourceInternal.h:
* WebView/WebDeviceOrientation.mm:
(-[WebDeviceOrientation initWithCoreDeviceOrientation:]):
* WebView/WebDeviceOrientationInternal.h:
* WebView/WebFrame.mm:
(-[WebFrame _convertToDOMRange:]):
(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]):
* WebView/WebFrameInternal.h:
* WebView/WebFullScreenController.h:
* WebView/WebFullScreenController.mm:
(-[WebFullScreenController setElement:]):
* WebView/WebGeolocationPosition.mm:
(-[WebGeolocationPositionInternal initWithCoreGeolocationPosition:]):
(-[WebGeolocationPosition initWithGeolocationPosition:]):
* WebView/WebHTMLView.mm:
(currentKeyboardEvent):
* WebView/WebResource.mm:
* WebView/WebScriptWorld.mm:
(-[WebScriptWorld initWithWorld:]):
(+[WebScriptWorld standardWorld]):
(+[WebScriptWorld findOrCreateWorld:]):
* WebView/WebViewData.h:
(LayerFlushController::create):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216816
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 13 May 2017 04:59:35 +0000 (04:59 +0000)]
[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098
Reviewed by Saam Barati.
I just rebased the patch from <http://trac.webkit.org/changeset/203808>.
I ran Octane and JetStream locally on a MacBook Air and I wasn't able to
reproduce a regression. Let's land this again and see what the bots say.
* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/B3SparseCollection.h:
(JSC::B3::SparseCollection::packIndices):
* dfg/DFGAllocator.h: Removed.
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::packNodeIndices):
(JSC::DFG::Graph::addNodeToMapByIndex): Deleted.
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
(JSC::DFG::Graph::maxNodeCount):
(JSC::DFG::Graph::nodeAt):
* dfg/DFGLongLivedState.cpp: Removed.
* dfg/DFGLongLivedState.h: Removed.
* dfg/DFGNode.h:
* dfg/DFGNodeAllocator.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPlan.h:
* dfg/DFGWorklist.cpp:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216815
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Sat, 13 May 2017 03:03:37 +0000 (03:03 +0000)]
Elements should be inserted into a template element as its content's last child
https://bugs.webkit.org/show_bug.cgi?id=171373
<rdar://problem/
31862949>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Before this change, our HTML parser obeys the following premises:
1) A fostering child whose parent is a table should be inserted before its parent and under its grandparent.
2) When inserting into a template element, an element should be inserted into its content.
Let's walk through the example:
a) Before eventhandler takes place
template
table
svg <- parser
b) After eventhandler takes place
template
table
svg <- parser
c) after parsing svg
template
content
svg
(table)
table
Finally, in the example, the svg element will be inserted into the content of the template element while
having its next sibling point to the table element. However, the table element is actually under the
template element not its content.
This messy tree is constructed because the second premise is incompleted. It should be: When inserting into
a template element, an element should be inserted into its content as its last child.
Quoted from Step 3 of https://html.spec.whatwg.org/multipage/syntax.html#appropriate-place-for-inserting-a-node
A correct tree will then looks like:
template
content
svg
table
Tests: fast/dom/HTMLTemplateElement/insert-fostering-child-crash.html
fast/dom/HTMLTemplateElement/insert-fostering-child.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::insert):
By nullifying task.nextChild, it will force the parser to append the element as task.parent's last child.
LayoutTests:
* fast/dom/HTMLTemplateElement/insert-fostering-child-expected.txt: Added.
* fast/dom/HTMLTemplateElement/insert-fostering-child.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216813
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Sat, 13 May 2017 02:02:02 +0000 (02:02 +0000)]
Add Websites/browserbench.org
https://bugs.webkit.org/show_bug.cgi?id=172049
Rubber-stamped by Geoffrey Garen.
Added the current contents of browserbench.org.
* ARES-6/ARES-6.svg: Added.
* ARES-6/Air/README.md: Added.
* ARES-6/Air/airjs-tests.yaml: Added.
* ARES-6/Air/all.js: Added.
* ARES-6/Air/allocate_stack.js: Added.
* ARES-6/Air/arg.js: Added.
* ARES-6/Air/basic_block.js: Added.
* ARES-6/Air/benchmark.js: Added.
* ARES-6/Air/code.js: Added.
* ARES-6/Air/custom.js: Added.
* ARES-6/Air/frequented_block.js: Added.
* ARES-6/Air/insertion_set.js: Added.
* ARES-6/Air/inst.js: Added.
* ARES-6/Air/liveness.js: Added.
* ARES-6/Air/make_dist.sh: Added.
* ARES-6/Air/opcode.js: Added.
* ARES-6/Air/payload-airjs-ACLj8C.js: Added.
* ARES-6/Air/payload-gbemu-executeIteration.js: Added.
* ARES-6/Air/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
* ARES-6/Air/payload-typescript-scanIdentifier.js: Added.
* ARES-6/Air/reg.js: Added.
* ARES-6/Air/stack_slot.js: Added.
* ARES-6/Air/stress-test.js: Added.
* ARES-6/Air/strip-hash.rb: Added.
* ARES-6/Air/symbols.js: Added.
* ARES-6/Air/test.html: Added.
* ARES-6/Air/test.js: Added.
* ARES-6/Air/tmp.js: Added.
* ARES-6/Air/tmp_base.js: Added.
* ARES-6/Air/util.js: Added.
* ARES-6/Babylon/AUTHORS: Added.
* ARES-6/Babylon/air-blob.js: Added.
* ARES-6/Babylon/babylon-blob.js: Added.
* ARES-6/Babylon/basic-blob.js: Added.
* ARES-6/Babylon/benchmark.js: Added.
* ARES-6/Babylon/index.js: Added.
* ARES-6/Babylon/inspector-blob.js: Added.
* ARES-6/Basic/ast.js: Added.
* ARES-6/Basic/basic-tests.yaml: Added.
* ARES-6/Basic/basic.js: Added.
* ARES-6/Basic/benchmark.js: Added.
* ARES-6/Basic/caseless_map.js: Added.
* ARES-6/Basic/lexer.js: Added.
* ARES-6/Basic/number.js: Added.
* ARES-6/Basic/parser.js: Added.
* ARES-6/Basic/random.js: Added.
* ARES-6/Basic/state.js: Added.
* ARES-6/Basic/stress-test.js: Added.
* ARES-6/Basic/test.html: Added.
* ARES-6/Basic/test.js: Added.
* ARES-6/Basic/util.js: Added.
* ARES-6/about.html: Added.
* ARES-6/air_benchmark.js: Added.
* ARES-6/babylon_benchmark.js: Added.
* ARES-6/basic_benchmark.js: Added.
* ARES-6/cli.js: Added.
* ARES-6/driver.js: Added.
* ARES-6/glue.js: Added.
* ARES-6/index.html: Added.
* ARES-6/ml/benchmark.js: Added.
* ARES-6/ml/index.js: Added.
* ARES-6/ml_benchmark.js: Added.
* ARES-6/results.js: Added.
* ARES-6/stats.js: Added.
* ARES-6/styles.css: Added.
* ARES-6/swoop.svg: Added.
* JetStream/CDjsSetup.js: Added.
* JetStream/JetStream-Logo.png: Added.
* JetStream/JetStream-Logo@2x.png: Added.
* JetStream/JetStream.css: Added.
* JetStream/JetStreamDriver.js: Added.
* JetStream/LLVM-test-suite-LICENSE.txt: Added.
* JetStream/Octane/base.js: Added.
* JetStream/Octane/code-load.js: Added.
* JetStream/Octane2/base.js: Added.
* JetStream/Octane2/box2d.js: Added.
* JetStream/Octane2/code-load.js: Added.
* JetStream/Octane2/crypto.js: Added.
* JetStream/Octane2/deltablue.js: Added.
* JetStream/Octane2/earley-boyer.js: Added.
* JetStream/Octane2/gbemu-part1.js: Added.
* JetStream/Octane2/gbemu-part2.js: Added.
* JetStream/Octane2/mandreel.js: Added.
* JetStream/Octane2/navier-stokes.js: Added.
* JetStream/Octane2/pdfjs.js: Added.
* JetStream/Octane2/raytrace.js: Added.
* JetStream/Octane2/regexp.js: Added.
* JetStream/Octane2/richards.js: Added.
* JetStream/Octane2/run.js: Added.
* JetStream/Octane2/splay.js: Added.
* JetStream/Octane2/typescript-compiler.js: Added.
* JetStream/Octane2/typescript-input.js: Added.
* JetStream/Octane2/typescript.js: Added.
* JetStream/Octane2/zlib-data.js: Added.
* JetStream/Octane2/zlib.js: Added.
* JetStream/Octane2Setup.js: Added.
* JetStream/OctaneSetup.js: Added.
* JetStream/Reference.js: Added.
* JetStream/SimplePayload.js: Added.
* JetStream/SimpleSetup.js: Added.
* JetStream/SunSpiderPayload.js: Added.
* JetStream/SunSpiderSetup.js: Added.
* JetStream/Swoosh.png: Added.
* JetStream/Swoosh@2x.png: Added.
* JetStream/TestingSetup.js: Added.
* JetStream/cdjs/benchmark.js: Added.
* JetStream/cdjs/call_sign.js: Added.
* JetStream/cdjs/collision.js: Added.
* JetStream/cdjs/collision_detector.js: Added.
* JetStream/cdjs/constants.js: Added.
* JetStream/cdjs/motion.js: Added.
* JetStream/cdjs/red_black_tree.js: Added.
* JetStream/cdjs/reduce_collision_set.js: Added.
* JetStream/cdjs/simulator.js: Added.
* JetStream/cdjs/util.js: Added.
* JetStream/cdjs/vector_2d.js: Added.
* JetStream/cdjs/vector_3d.js: Added.
* JetStream/in-depth.html: Added.
* JetStream/index.html: Added.
* JetStream/simple/bigfib.cpp: Added.
* JetStream/simple/bigfib.cpp.js: Added.
* JetStream/simple/container.cpp: Added.
* JetStream/simple/container.cpp.js: Added.
* JetStream/simple/dry.c: Added.
* JetStream/simple/dry.c.js: Added.
* JetStream/simple/float-mm.c: Added.
* JetStream/simple/float-mm.c.js: Added.
* JetStream/simple/gcc-loops.cpp: Added.
* JetStream/simple/gcc-loops.cpp.js: Added.
* JetStream/simple/hash-map.js: Added.
* JetStream/simple/n-body.c: Added.
* JetStream/simple/n-body.c.js: Added.
* JetStream/simple/quicksort.c: Added.
* JetStream/simple/quicksort.c.js: Added.
* JetStream/simple/towers.c: Added.
* JetStream/simple/towers.c.js: Added.
* JetStream/sources/3d-cube.js: Added.
* JetStream/sources/3d-raytrace.js: Added.
* JetStream/sources/base64.js: Added.
* JetStream/sources/bigfib.cpp: Added.
* JetStream/sources/bigfib.cpp.js: Added.
* JetStream/sources/box2d.js: Added.
* JetStream/sources/cdjs-benchmark.js: Added.
* JetStream/sources/cdjs-call_sign.js: Added.
* JetStream/sources/cdjs-collision.js: Added.
* JetStream/sources/cdjs-collision_detector.js: Added.
* JetStream/sources/cdjs-constants.js: Added.
* JetStream/sources/cdjs-motion.js: Added.
* JetStream/sources/cdjs-red_black_tree.js: Added.
* JetStream/sources/cdjs-reduce_collision_set.js: Added.
* JetStream/sources/cdjs-simulator.js: Added.
* JetStream/sources/cdjs-util.js: Added.
* JetStream/sources/cdjs-vector_2d.js: Added.
* JetStream/sources/cdjs-vector_3d.js: Added.
* JetStream/sources/code-first-load-code-load.js: Added.
* JetStream/sources/code-multi-load-code-load.js: Added.
* JetStream/sources/container.cpp: Added.
* JetStream/sources/container.cpp.js: Added.
* JetStream/sources/crypto-aes.js: Added.
* JetStream/sources/crypto-md5.js: Added.
* JetStream/sources/crypto-sha1.js: Added.
* JetStream/sources/crypto.js: Added.
* JetStream/sources/date-format-tofte.js: Added.
* JetStream/sources/date-format-xparb.js: Added.
* JetStream/sources/deltablue.js: Added.
* JetStream/sources/dry.c: Added.
* JetStream/sources/dry.c.js: Added.
* JetStream/sources/earley-boyer.js: Added.
* JetStream/sources/float-mm.c: Added.
* JetStream/sources/float-mm.c.js: Added.
* JetStream/sources/gbemu-part1.js: Added.
* JetStream/sources/gbemu-part2.js: Added.
* JetStream/sources/gcc-loops.cpp: Added.
* JetStream/sources/gcc-loops.cpp.js: Added.
* JetStream/sources/hash-map.js: Added.
* JetStream/sources/mandreel.js: Added.
* JetStream/sources/n-body.c: Added.
* JetStream/sources/n-body.c.js: Added.
* JetStream/sources/n-body.js: Added.
* JetStream/sources/navier-stokes.js: Added.
* JetStream/sources/pdfjs.js: Added.
* JetStream/sources/quicksort.c: Added.
* JetStream/sources/quicksort.c.js: Added.
* JetStream/sources/raytrace.js: Added.
* JetStream/sources/regex-dna.js: Added.
* JetStream/sources/regexp.js: Added.
* JetStream/sources/richards.js: Added.
* JetStream/sources/splay.js: Added.
* JetStream/sources/tagcloud.js: Added.
* JetStream/sources/towers.c: Added.
* JetStream/sources/towers.c.js: Added.
* JetStream/sources/typescript-compiler.js: Added.
* JetStream/sources/typescript-input.js: Added.
* JetStream/sources/typescript.js: Added.
* JetStream/sources/zlib-data.js: Added.
* JetStream/sources/zlib.js: Added.
* JetStream/sunspider/3d-cube.js: Added.
* JetStream/sunspider/3d-raytrace.js: Added.
* JetStream/sunspider/base64.js: Added.
* JetStream/sunspider/crypto-aes.js: Added.
* JetStream/sunspider/crypto-md5.js: Added.
* JetStream/sunspider/crypto-sha1.js: Added.
* JetStream/sunspider/date-format-tofte.js: Added.
* JetStream/sunspider/date-format-xparb.js: Added.
* JetStream/sunspider/n-body.js: Added.
* JetStream/sunspider/regex-dna.js: Added.
* JetStream/sunspider/tagcloud.js: Added.
* MotionMark/about.html: Added.
* MotionMark/developer.html: Added.
* MotionMark/index.html: Added.
* MotionMark/resources/debug-runner/animometer.css: Added.
* MotionMark/resources/debug-runner/animometer.js: Added.
* MotionMark/resources/debug-runner/d3.min.js: Added.
* MotionMark/resources/debug-runner/graph.js: Added.
* MotionMark/resources/debug-runner/tests.js: Added.
* MotionMark/resources/extensions.js: Added.
* MotionMark/resources/runner/animometer.css: Added.
* MotionMark/resources/runner/animometer.js: Added.
* MotionMark/resources/runner/benchmark-runner.js: Added.
* MotionMark/resources/runner/crystal.svg: Added.
* MotionMark/resources/runner/lines.svg: Added.
* MotionMark/resources/runner/logo.svg: Added.
* MotionMark/resources/runner/tests.js: Added.
* MotionMark/resources/statistics.js: Added.
* MotionMark/resources/strings.js: Added.
* MotionMark/tests/3d/resources/webgl.js: Added.
* MotionMark/tests/3d/webgl.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-canvas-images.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-css-images.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-css-shapes.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-svg-images.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
* MotionMark/tests/bouncing-particles/bouncing-tagged-images.html: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-particles.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
* MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
* MotionMark/tests/bouncing-particles/resources/image1.jpg: Added.
* MotionMark/tests/bouncing-particles/resources/image2.jpg: Added.
* MotionMark/tests/bouncing-particles/resources/image3.jpg: Added.
* MotionMark/tests/bouncing-particles/resources/image4.jpg: Added.
* MotionMark/tests/bouncing-particles/resources/image5.jpg: Added.
* MotionMark/tests/dom/compositing-transforms.html: Added.
* MotionMark/tests/dom/focus.html: Added.
* MotionMark/tests/dom/leaves.html: Added.
* MotionMark/tests/dom/particles.html: Added.
* MotionMark/tests/dom/resources/compositing-transforms.js: Added.
* MotionMark/tests/dom/resources/dom-particles.js: Added.
* MotionMark/tests/dom/resources/focus.js: Added.
* MotionMark/tests/dom/resources/leaves.js: Added.
* MotionMark/tests/master/canvas-stage.html: Added.
* MotionMark/tests/master/focus.html: Added.
* MotionMark/tests/master/image-data.html: Added.
* MotionMark/tests/master/leaves.html: Added.
* MotionMark/tests/master/multiply.html: Added.
* MotionMark/tests/master/resources/canvas-stage.js: Added.
* MotionMark/tests/master/resources/canvas-tests.js: Added.
* MotionMark/tests/master/resources/compass.svg: Added.
* MotionMark/tests/master/resources/compass100.png: Added.
* MotionMark/tests/master/resources/console.svg: Added.
* MotionMark/tests/master/resources/console100.png: Added.
* MotionMark/tests/master/resources/contribute.svg: Added.
* MotionMark/tests/master/resources/contribute100.png: Added.
* MotionMark/tests/master/resources/debugger.svg: Added.
* MotionMark/tests/master/resources/debugger100.png: Added.
* MotionMark/tests/master/resources/focus.js: Added.
* MotionMark/tests/master/resources/image-data.js: Added.
* MotionMark/tests/master/resources/inspector.svg: Added.
* MotionMark/tests/master/resources/inspector100.png: Added.
* MotionMark/tests/master/resources/layout.svg: Added.
* MotionMark/tests/master/resources/layout100.png: Added.
* MotionMark/tests/master/resources/leaves.js: Added.
* MotionMark/tests/master/resources/multiply.js: Added.
* MotionMark/tests/master/resources/particles.js: Added.
* MotionMark/tests/master/resources/performance.svg: Added.
* MotionMark/tests/master/resources/performance100.png: Added.
* MotionMark/tests/master/resources/script.svg: Added.
* MotionMark/tests/master/resources/script100.png: Added.
* MotionMark/tests/master/resources/shortcuts.svg: Added.
* MotionMark/tests/master/resources/shortcuts100.png: Added.
* MotionMark/tests/master/resources/standards.svg: Added.
* MotionMark/tests/master/resources/standards100.png: Added.
* MotionMark/tests/master/resources/storage.svg: Added.
* MotionMark/tests/master/resources/storage100.png: Added.
* MotionMark/tests/master/resources/styles.svg: Added.
* MotionMark/tests/master/resources/styles100.png: Added.
* MotionMark/tests/master/resources/svg-particles.js: Added.
* MotionMark/tests/master/resources/text.js: Added.
* MotionMark/tests/master/resources/timeline.svg: Added.
* MotionMark/tests/master/resources/timeline100.png: Added.
* MotionMark/tests/master/svg-particles.html: Added.
* MotionMark/tests/master/text.html: Added.
* MotionMark/tests/resources/main.js: Added.
* MotionMark/tests/resources/math.js: Added.
* MotionMark/tests/resources/stage.css: Added.
* MotionMark/tests/resources/star.svg: Added.
* MotionMark/tests/resources/yin-yang.png: Added.
* MotionMark/tests/resources/yin-yang.svg: Added.
* MotionMark/tests/simple/resources/simple-canvas-paths.js: Added.
* MotionMark/tests/simple/resources/simple-canvas.js: Added.
* MotionMark/tests/simple/resources/tiled-canvas-image.js: Added.
* MotionMark/tests/simple/simple-canvas-paths.html: Added.
* MotionMark/tests/simple/tiled-canvas-image.html: Added.
* MotionMark/tests/template/resources/template-canvas.js: Added.
* MotionMark/tests/template/resources/template-css.js: Added.
* MotionMark/tests/template/resources/template-svg.js: Added.
* MotionMark/tests/template/template-canvas.html: Added.
* MotionMark/tests/template/template-css.html: Added.
* MotionMark/tests/template/template-svg.html: Added.
* MotionMark/version: Added.
* Speedometer/Full.html: Added.
* Speedometer/InteractiveRunner.html: Added.
* Speedometer/resources/benchmark-report.js: Added.
* Speedometer/resources/benchmark-runner.js: Added.
* Speedometer/resources/flightjs-example-app/LICENSE.md: Added.
* Speedometer/resources/flightjs-example-app/README.md: Added.
* Speedometer/resources/flightjs-example-app/app/boot/page.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_data/compose_box.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_data/mail_items.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_data/move_to.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/compose_box.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/folders.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/mail_controls.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/mail_items.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
* Speedometer/resources/flightjs-example-app/app/component_ui/with_select.js: Added.
* Speedometer/resources/flightjs-example-app/app/css/custom.css: Added.
* Speedometer/resources/flightjs-example-app/app/data.js: Added.
* Speedometer/resources/flightjs-example-app/app/templates.js: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
* Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/.gitignore: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/CHANGES: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/LICENSE: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/README.md: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/component.json: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/package.json: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/index.html: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
* Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/.travis.yml: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/advice.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/component.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/compose.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/index.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/logger.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/registry.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/lib/utils.js: Added.
* Speedometer/resources/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
* Speedometer/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
* Speedometer/resources/flightjs-example-app/components/jasmine-flight/README.md: Added.
* Speedometer/resources/flightjs-example-app/components/jasmine-flight/bower.json: Added.
* Speedometer/resources/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
* Speedometer/resources/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
* Speedometer/resources/flightjs-example-app/components/jquery/component.json: Added.
* Speedometer/resources/flightjs-example-app/components/jquery/composer.json: Added.
* Speedometer/resources/flightjs-example-app/components/jquery/jquery.js: Added.
* Speedometer/resources/flightjs-example-app/components/jquery/jquery.min.js: Added.
* Speedometer/resources/flightjs-example-app/components/mustache/mustache.js: Added.
* Speedometer/resources/flightjs-example-app/components/requirejs/require.js: Added.
* Speedometer/resources/flightjs-example-app/index.html: Added.
* Speedometer/resources/flightjs-example-app/karma.conf.js: Added.
* Speedometer/resources/flightjs-example-app/package.json: Added.
* Speedometer/resources/flightjs-example-app/requireMain.js: Added.
* Speedometer/resources/gauge.png: Added.
* Speedometer/resources/gauge@2x.png: Added.
* Speedometer/resources/logo.png: Added.
* Speedometer/resources/logo@2x.png: Added.
* Speedometer/resources/main.css: Added.
* Speedometer/resources/main.js: Added.
* Speedometer/resources/statistics.js: Added.
* Speedometer/resources/tests.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
* Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
* Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/index.html: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Added.
* Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/css/app.css: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/index.html: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js: Added.
* Speedometer/resources/todomvc/architecture-examples/jquery/readme.md: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/index.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/package.json: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
* Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower.json: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/index.html: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
* Speedometer/resources/todomvc/labs/architecture-examples/react/readme.md: Added.
* Speedometer/resources/todomvc/learn.json: Added.
* Speedometer/resources/todomvc/license.md: Added.
* Speedometer/resources/todomvc/readme.md: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
* Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added.
* index.html: Added.
* resources/ARES-6-Logo.png: Added.
* resources/ARES-6-Logo@2x.png: Added.
* resources/JetStream-Logo.png: Added.
* resources/JetStream-Logo@2x.png: Added.
* resources/MotionMark-Logo.png: Added.
* resources/MotionMark-Logo@2x.png: Added.
* resources/Speedometer-Logo.png: Added.
* resources/Speedometer-Logo@2x.png: Added.
* resources/main.css: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216811
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Sat, 13 May 2017 01:55:14 +0000 (01:55 +0000)]
Drop remaining uses of PassRefPtr in WebKit2/WebProcess
https://bugs.webkit.org/show_bug.cgi?id=172055
Reviewed by Alex Christensen.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:
(+[WKWebProcessPlugInScriptWorld normalWorld]):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(contextMenuItems):
* WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
(WKBundleScriptWorldNormalWorld):
* WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp:
(webkitScriptWorldCreate):
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::getOrCreate):
(WebKit::InjectedBundleRangeHandle::create):
(WebKit::InjectedBundleRangeHandle::coreRange):
(WebKit::InjectedBundleRangeHandle::renderedImage):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
(WebKit::InjectedBundle::createWebDataFromUint8Array):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
(WebKit::InjectedBundleBackForwardList::itemAtIndex):
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.h:
(WebKit::InjectedBundleBackForwardList::detach):
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
(WebKit::InjectedBundleBackForwardListItem::create):
(WebKit::InjectedBundleBackForwardListItem::InjectedBundleBackForwardListItem):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
(WebKit::InjectedBundleHitTestResult::nodeHandle):
(WebKit::InjectedBundleHitTestResult::urlElementHandle):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::InjectedBundleNavigationAction::create):
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
* WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
(WebKit::InjectedBundleScriptWorld::getOrCreate):
(WebKit::InjectedBundleScriptWorld::normalWorld):
* WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::create):
(WebKit::NetscapePlugin::NetscapePlugin):
(WebKit::NetscapePlugin::supportsSnapshotting):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PDF/PDFPluginAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
(WebKit::PDFPluginAnnotation::create):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
* WebProcess/Plugins/PDF/PDFPluginPasswordField.h:
* WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
(WebKit::PDFPluginPasswordField::createAnnotationElement):
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h:
* WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
(WebKit::PDFPluginTextAnnotation::createAnnotationElement):
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::worldMap):
(WebKit::WebUserMessageHandlerDescriptorProxy::create):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::create):
* WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPosition):
(WebKit::rangeAtWordBoundaryForPosition):
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216810
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Sat, 13 May 2017 01:33:13 +0000 (01:33 +0000)]
Rename WKContentExtension to WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=172053
<rdar://problem/
32141005>
Reviewed by Geoffrey Garen.
Source/WebCore:
Covered by existing API tests.
* English.lproj/Localizable.strings:
Source/WebKit2:
* Shared/API/APIObject.h:
* Shared/API/Cocoa/WebKit.h:
* Shared/API/c/WKDeprecatedFunctions.cpp:
(WKPageGroupAddUserContentFilter):
(WKPageGroupRemoveUserContentFilter):
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* Shared/WebCompiledContentExtension.cpp: Removed.
* Shared/WebCompiledContentExtension.h: Removed.
* Shared/WebCompiledContentExtensionData.cpp: Removed.
* Shared/WebCompiledContentExtensionData.h: Removed.
* Shared/WebCompiledContentRuleList.cpp: Copied from Source/WebKit2/Shared/WebCompiledContentExtension.cpp.
(WebKit::WebCompiledContentRuleList::create):
(WebKit::WebCompiledContentRuleList::WebCompiledContentRuleList):
(WebKit::WebCompiledContentRuleList::~WebCompiledContentRuleList):
(WebKit::WebCompiledContentRuleList::conditionsApplyOnlyToDomain):
(WebKit::WebCompiledContentRuleList::filtersWithoutConditionsBytecode):
(WebKit::WebCompiledContentRuleList::filtersWithoutConditionsBytecodeLength):
(WebKit::WebCompiledContentRuleList::filtersWithConditionsBytecode):
(WebKit::WebCompiledContentRuleList::filtersWithConditionsBytecodeLength):
(WebKit::WebCompiledContentRuleList::topURLFiltersBytecode):
(WebKit::WebCompiledContentRuleList::topURLFiltersBytecodeLength):
(WebKit::WebCompiledContentRuleList::actions):
(WebKit::WebCompiledContentRuleList::actionsLength):
(WebKit::WebCompiledContentExtension::create): Deleted.
(WebKit::WebCompiledContentExtension::WebCompiledContentExtension): Deleted.
(WebKit::WebCompiledContentExtension::~WebCompiledContentExtension): Deleted.
(WebKit::WebCompiledContentExtension::conditionsApplyOnlyToDomain): Deleted.
(WebKit::WebCompiledContentExtension::filtersWithoutConditionsBytecode): Deleted.
(WebKit::WebCompiledContentExtension::filtersWithoutConditionsBytecodeLength): Deleted.
(WebKit::WebCompiledContentExtension::filtersWithConditionsBytecode): Deleted.
(WebKit::WebCompiledContentExtension::filtersWithConditionsBytecodeLength): Deleted.
(WebKit::WebCompiledContentExtension::topURLFiltersBytecode): Deleted.
(WebKit::WebCompiledContentExtension::topURLFiltersBytecodeLength): Deleted.
(WebKit::WebCompiledContentExtension::actions): Deleted.
(WebKit::WebCompiledContentExtension::actionsLength): Deleted.
* Shared/WebCompiledContentRuleList.h: Copied from Source/WebKit2/Shared/WebCompiledContentExtension.h.
* Shared/WebCompiledContentRuleListData.cpp: Copied from Source/WebKit2/Shared/WebCompiledContentExtensionData.cpp.
(WebKit::WebCompiledContentRuleListData::encode):
(WebKit::WebCompiledContentRuleListData::decode):
(WebKit::WebCompiledContentExtensionData::encode): Deleted.
(WebKit::WebCompiledContentExtensionData::decode): Deleted.
* Shared/WebCompiledContentRuleListData.h: Copied from Source/WebKit2/Shared/WebCompiledContentExtensionData.h.
(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):
(WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): Deleted.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/APIContentExtension.cpp: Removed.
* UIProcess/API/APIContentExtension.h: Removed.
* UIProcess/API/APIContentExtensionStore.cpp: Removed.
* UIProcess/API/APIContentExtensionStore.h: Removed.
* UIProcess/API/APIContentRuleList.cpp: Copied from Source/WebKit2/UIProcess/API/APIContentExtension.cpp.
(API::ContentRuleList::ContentRuleList):
(API::ContentRuleList::~ContentRuleList):
(API::ContentExtension::ContentExtension): Deleted.
(API::ContentExtension::~ContentExtension): Deleted.
* UIProcess/API/APIContentRuleList.h: Copied from Source/WebKit2/UIProcess/API/APIContentExtension.h.
* UIProcess/API/APIContentRuleListStore.cpp: Copied from Source/WebKit2/UIProcess/API/APIContentExtensionStore.cpp.
(API::ContentRuleListStore::legacyDefaultStore):
(API::ContentRuleListStore::nonLegacyDdefaultStore):
(API::ContentRuleListStore::defaultStore):
(API::ContentRuleListStore::storeWithPath):
(API::ContentRuleListStore::ContentRuleListStore):
(API::ContentRuleListStore::~ContentRuleListStore):
(API::constructedPathPrefix):
(API::ContentRuleListMetaData::fileSize):
(API::encodeContentRuleListMetaData):
(API::decodeContentRuleListMetaData):
(API::openAndMapContentRuleList):
(API::compiledToFile):
(API::createExtension):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::synchronousRemoveAllContentRuleLists):
(API::ContentRuleListStore::invalidateContentRuleListVersion):
(API::ContentRuleListStore::getContentRuleListSource):
(API::contentRuleListStoreErrorCategory):
(API::ContentExtensionStore::defaultStore): Deleted.
(API::ContentExtensionStore::storeWithPath): Deleted.
(API::ContentExtensionStore::ContentExtensionStore): Deleted.
(API::ContentExtensionStore::~ContentExtensionStore): Deleted.
(API::ContentExtensionMetaData::fileSize): Deleted.
(API::encodeContentExtensionMetaData): Deleted.
(API::decodeContentExtensionMetaData): Deleted.
(API::openAndMapContentExtension): Deleted.
(API::ContentExtensionStore::lookupContentExtension): Deleted.
(API::ContentExtensionStore::getAvailableContentExtensionIdentifiers): Deleted.
(API::ContentExtensionStore::compileContentExtension): Deleted.
(API::ContentExtensionStore::removeContentExtension): Deleted.
(API::ContentExtensionStore::synchronousRemoveAllContentExtensions): Deleted.
(API::ContentExtensionStore::invalidateContentExtensionVersion): Deleted.
(API::ContentExtensionStore::getContentExtensionSource): Deleted.
(API::contentExtensionStoreErrorCategory): Deleted.
* UIProcess/API/APIContentRuleListStore.h: Copied from Source/WebKit2/UIProcess/API/APIContentExtensionStore.h.
(API::make_error_code):
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKPageGroup.cpp:
* UIProcess/API/C/WKUserContentControllerRef.cpp:
(WKUserContentControllerAddUserContentFilter):
(WKUserContentControllerRemoveAllUserContentFilters):
* UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:
(WKUserContentExtensionStoreGetTypeID):
* UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm:
(API::ContentRuleListStore::defaultStorePath):
(API::ContentExtensionStore::defaultStorePath): Deleted.
* UIProcess/API/Cocoa/WKContentExtension.h: Removed.
* UIProcess/API/Cocoa/WKContentExtension.mm: Removed.
* UIProcess/API/Cocoa/WKContentExtensionInternal.h: Removed.
* UIProcess/API/Cocoa/WKContentExtensionStore.h: Removed.
* UIProcess/API/Cocoa/WKContentExtensionStore.mm: Removed.
* UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h: Removed.
* UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h: Removed.
* UIProcess/API/Cocoa/WKContentRuleList.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.h.
* UIProcess/API/Cocoa/WKContentRuleList.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.mm.
(-[WKContentRuleList dealloc]):
(-[WKContentRuleList _apiObject]):
(-[WKContentRuleList identifier]):
(-[WKContentExtension dealloc]): Deleted.
(-[WKContentExtension _apiObject]): Deleted.
(-[WKContentExtension identifier]): Deleted.
* UIProcess/API/Cocoa/WKContentRuleListInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionInternal.h.
(WebKit::wrapper):
* UIProcess/API/Cocoa/WKContentRuleListStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.h.
* UIProcess/API/Cocoa/WKContentRuleListStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStore.mm.
(toWKErrorCode):
(-[WKContentRuleListStore dealloc]):
(+[WKContentRuleListStore defaultStore]):
(+[WKContentRuleListStore storeWithURL:]):
(-[WKContentRuleListStore compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:releasesArgument:]):
(-[WKContentRuleListStore lookUpContentRuleListForIdentifier:completionHandler:]):
(-[WKContentRuleListStore getAvailableContentRuleListIdentifiers:]):
(-[WKContentRuleListStore removeContentRuleListForIdentifier:completionHandler:]):
(-[WKContentRuleListStore _apiObject]):
(-[WKContentRuleListStore _removeAllContentRuleLists]):
(-[WKContentRuleListStore _invalidateContentRuleListVersionForIdentifier:]):
(-[WKContentRuleListStore _getContentRuleListSourceForIdentifier:completionHandler:]):
(-[WKContentRuleListStore _compileContentRuleListForIdentifier:encodedContentRuleList:completionHandler:]):
(-[WKContentExtensionStore dealloc]): Deleted.
(+[WKContentExtensionStore defaultStore]): Deleted.
(+[WKContentExtensionStore storeWithURL:]): Deleted.
(-[WKContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): Deleted.
(-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:releasesArgument:]): Deleted.
(-[WKContentExtensionStore lookUpContentExtensionForIdentifier:completionHandler:]): Deleted.
(-[WKContentExtensionStore getAvailableContentExtensionIdentifiers:]): Deleted.
(-[WKContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]): Deleted.
(-[WKContentExtensionStore _apiObject]): Deleted.
(-[WKContentExtensionStore _removeAllContentExtensions]): Deleted.
(-[WKContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]): Deleted.
(-[WKContentExtensionStore _getContentExtensionSourceForIdentifier:completionHandler:]): Deleted.
(-[WKContentExtensionStore _compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): Deleted.
* UIProcess/API/Cocoa/WKContentRuleListStoreInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStoreInternal.h.
(WebKit::wrapper):
* UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKContentExtensionStorePrivate.h.
* UIProcess/API/Cocoa/WKError.h:
* UIProcess/API/Cocoa/WKError.mm:
(localizedDescriptionForErrorCode):
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController addContentRuleList:]):
(-[WKUserContentController removeContentRuleList:]):
(-[WKUserContentController removeAllContentRuleLists]):
(-[WKUserContentController _addUserContentFilter:]):
(-[WKUserContentController _removeUserContentFilter:]):
(-[WKUserContentController _removeAllUserContentFilters]):
(-[WKUserContentController addContentExtension:]): Deleted.
(-[WKUserContentController removeContentExtension:]): Deleted.
(-[WKUserContentController removeAllContentExtensions]): Deleted.
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(toUserContentRuleListStoreError):
(+[_WKUserContentExtensionStore defaultStore]):
(+[_WKUserContentExtensionStore storeWithURL:]):
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _apiObject]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
(-[_WKUserContentExtensionStore _initWithWKContentRuleListStore:]):
(toUserContentExtensionStoreError): Deleted.
(-[_WKUserContentExtensionStore _initWithWKContentExtensionStore:]): Deleted.
* UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
* UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter _apiObject]):
(-[_WKUserContentFilter _initWithWKContentRuleList:]):
(-[_WKUserContentFilter _initWithWKContentExtension:]): Deleted.
* UIProcess/API/Cocoa/_WKUserContentFilterInternal.h:
* UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addContentRuleList):
(WebKit::WebUserContentControllerProxy::removeContentRuleList):
(WebKit::WebUserContentControllerProxy::removeAllContentRuleLists):
(WebKit::WebUserContentControllerProxy::addContentExtension): Deleted.
(WebKit::WebUserContentControllerProxy::removeContentExtension): Deleted.
(WebKit::WebUserContentControllerProxy::removeAllContentExtensions): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/WebPageGroup.cpp:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addContentRuleLists):
(WebKit::WebUserContentController::removeContentRuleList):
(WebKit::WebUserContentController::removeAllContentRuleLists):
(WebKit::WebUserContentController::addContentExtensions): Deleted.
(WebKit::WebUserContentController::removeContentExtension): Deleted.
(WebKit::WebUserContentController::removeAllContentExtensions): Deleted.
* WebProcess/UserContent/WebUserContentController.h:
* WebProcess/UserContent/WebUserContentController.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_backgroundCPULimit):
Tools:
* TestWebKitAPI/Tests/WebKit2Cocoa/WKContentExtensionStore.mm:
(WKContentRuleListStoreTest::SetUp):
(TEST_F):
(-[ContentRuleListDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(WKContentExtensionStoreTest::SetUp): Deleted.
(-[ContentExtensionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216809
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
keith_miller@apple.com [Sat, 13 May 2017 01:30:13 +0000 (01:30 +0000)]
Use Mach exceptions instead of signals where possible
https://bugs.webkit.org/show_bug.cgi?id=171865
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch adds some new JSC options. The first is an option that
enables or disables web assembly tier up. The second controls
whether or not we use mach exceptions (where available).
* API/tests/ExecutionTimeLimitTest.cpp:
(dispatchTermitateCallback):
(testExecutionTimeLimit):
* runtime/JSLock.cpp:
(JSC::JSLock::didAcquireLock):
* runtime/Options.cpp:
(JSC::overrideDefaults):
(JSC::Options::initialize):
* runtime/Options.h:
* runtime/VMTraps.cpp:
(JSC::SignalContext::SignalContext):
(JSC::SignalContext::adjustPCToPointToTrappingInstruction):
(JSC::installSignalHandler):
(JSC::VMTraps::SignalSender::send):
* tools/SigillCrashAnalyzer.cpp:
(JSC::SignalContext::SignalContext):
(JSC::SignalContext::dump):
(JSC::installCrashHandler):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunctions):
* wasm/WasmFaultSignalHandler.cpp:
(JSC::Wasm::trapHandler):
(JSC::Wasm::enableFastMemory):
* wasm/WasmMachineThreads.cpp:
(JSC::Wasm::resetInstructionCacheOnAllThreads):
Source/WTF:
This patch enables using mach exceptions on darwin. The way the
mach exception api works is that we create a mach port, which is
like a file descriptor. We then wait for a message to arrive on
that port in a thread. When another thread raises an exception (say
due to a bad memory access) the OS sends our thread a message. The
payload of that message is the register file of the crashing
thread. We then call our custom handlers that change the state as
needed. In order to restart the thread we send a payload back to
the OS with an updated register file along with a success message
header.
This patch also makes thread messages work without signals by
simply suspending the thread, and then running the message at that
time.
You can read more about mach exceptions here:
http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/exception.ps
and the Mach interface Generator (MiG) here:
http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps
* Configurations/WTF.xcconfig:
* WTF.xcodeproj/project.pbxproj:
* wtf/Platform.h:
* wtf/PlatformRegisters.h:
(WTF::registersFromUContext):
* wtf/StackBounds.h:
(WTF::StackBounds::StackBounds):
* wtf/ThreadHolder.cpp:
(WTF::ThreadHolder::~ThreadHolder):
* wtf/ThreadMessage.cpp:
(WTF::sendMessageUsingSignal):
(WTF::sendMessageUsingMach):
(WTF::deliverMessagesUsingMach):
(WTF::sendMessageScoped):
* wtf/ThreadMessage.h:
(WTF::sendMessage):
* wtf/Threading.h:
(WTF::Thread::machThread):
* wtf/mac/MachExceptions.defs: Copied from Source/WTF/wtf/ThreadMessage.h.
* wtf/threads/Signals.cpp:
(WTF::startMachExceptionHandlerThread):
(WTF::fromMachException):
(WTF::toMachMask):
(WTF::handleSignalsWithMach):
(WTF::setExceptionPorts):
(WTF::activeThreads):
(WTF::registerThreadForMachExceptionHandling):
(WTF::unregisterThreadForMachExceptionHandling):
(WTF::installSignalHandler):
(WTF::jscSignalHandler):
* wtf/threads/Signals.h:
Tools:
* TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:
(runThreadMessageTest):
(TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216808
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Sat, 13 May 2017 01:00:37 +0000 (01:00 +0000)]
Don't use LinkPresentation URL shortening if it's not available
https://bugs.webkit.org/show_bug.cgi?id=172064
<rdar://problem/
32169232>
Rubber-stamped by Wenson Hsieh.
* platform/mac/DragImageMac.mm:
(WebCore::LinkImageLayout::LinkImageLayout):
* platform/spi/cocoa/LinkPresentationSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216807
268f45cc-cd09-0410-ab3c-
d52691b4dbfc