WebKit-https.git
19 months agoWebDriver: add support for test expectations
carlosgc@webkit.org [Wed, 17 Jan 2018 11:23:58 +0000 (11:23 +0000)]
WebDriver: add support for test expectations
https://bugs.webkit.org/show_bug.cgi?id=180420

Reviewed by Carlos Alberto Lopez Perez.

Tools:

Add support for parsing test expectations from a JSON file and mark tests on collection accordingly.

* Scripts/run-webdriver-tests: Get the retval from process_results().
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest): Install also py because pytest needs it.
* Scripts/webkitpy/webdriver_tests/pytest_runner.py:
(TestExpectationsMarker): Plugin to mark tests based on given expectations.
(TestExpectationsMarker.__init__): Initialize expectations.
(TestExpectationsMarker.pytest_collection_modifyitems): Mark tests if needed,
(run): Create and use TestExpectationsMarker plugin.
* Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:
(WebDriverSeleniumExecutor.run): Pass expectations to pytest_runner.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:
(WebDriverTestRunner.__init__): Create a TestExpectations and pass it to the runners.
(WebDriverTestRunner.run): Do not count results here.
(WebDriverTestRunner.process_results): Rename print_results() as process_results() since it now returns the
amount of failures. Printing the test summary while processing results will be made optional in a follow up
patch.
(WebDriverTestRunner.process_results.report): Return the amount of failures.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:
(WebDriverTestRunnerSelenium.__init__): Initialize _expectations.
(WebDriverTestRunnerSelenium.collect_tests): Do not include skipped tests.
(WebDriverTestRunnerSelenium.run): Stop returning the tests count.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
(WebDriverTestRunnerW3C.__init__): Initialize _expectations.
(WebDriverTestRunnerW3C.collect_tests): Do not include skipped tests.
(WebDriverTestRunnerW3C._scan_directory): Ditto.
(WebDriverTestRunnerW3C.run): Stop returning the tests count.
* Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:
(WebDriverW3CExecutor.run): Pass expectations to pytest_runner.

WebDriverTests:

Add initial test expectations. For now I'm only adding the W3C test expectations, selenium ones will be added in
a follow up patch.

* TestExpectations.json: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227064 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed WPE gardening. Mark some known unit test failures.
carlosgc@webkit.org [Wed, 17 Jan 2018 11:21:39 +0000 (11:21 +0000)]
Unreviewed WPE gardening. Mark some known unit test failures.

* TestWebKitAPI/glib/TestExpectations.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227063 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][WPE] Use the same subtest names in GTK and WPE unit tests
carlosgc@webkit.org [Wed, 17 Jan 2018 11:16:10 +0000 (11:16 +0000)]
[GTK][WPE] Use the same subtest names in GTK and WPE unit tests
https://bugs.webkit.org/show_bug.cgi?id=181724

Reviewed by Philippe Normand.

We currently use /webkit2/foo/bar for GTK and /wpe/foo/bar for WPE. Many of the tests are common, so there's no
reason to use different names. This way we can refer to the same test names for both and we can share the
expectations in the TestExpectations.json file.

* TestWebKitAPI/glib/TestExpectations.json:
* TestWebKitAPI/glib/WebKitGLib/TestMain.h: Use /webkit/foo/bar in GTK and WPE.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227062 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r226973/r226974): Four multimedia tests failing
philn@webkit.org [Wed, 17 Jan 2018 11:10:39 +0000 (11:10 +0000)]
REGRESSION(r226973/r226974): Four multimedia tests failing
https://bugs.webkit.org/show_bug.cgi?id=181696

Reviewed by Carlos Garcia Campos.

This patch reverts some of the changes of the above revisions so as to fix layout test failures.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Properly
prepare stalled event when an error was detected.
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats): Revert to previous version.
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
Emit progress event also when streaming but not when an error was
detected.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes const): use isLiveStream like everywhere else.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init): Revert to keep-alive FALSE by default.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227061 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Increase the slow timeout of GTK and WPE unit tests.
carlosgc@webkit.org [Wed, 17 Jan 2018 11:07:25 +0000 (11:07 +0000)]
Unreviewed. Increase the slow timeout of GTK and WPE unit tests.

We are using now a lower default timeout, so multiplying by 5 is no longer enough for some of the WTF
tests. Multiply by 10 so that we get the same slow timeout as before, 50.

* glib/api_test_runner.py:
(TestRunner._run_test_glib):
(TestRunner._run_google_test):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227060 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Update OptionsGTK.cmake and NEWS for 2.19.6 release.
carlosgc@webkit.org [Wed, 17 Jan 2018 10:36:59 +0000 (10:36 +0000)]
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.6 release.

.:

* Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

* gtk/NEWS: Add release notes for 2.19.6.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227058 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
carlosgc@webkit.org [Wed, 17 Jan 2018 10:06:28 +0000 (10:06 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Žan Doberšek.

Source/WebKit:

Add symbols detected by check-for-global-bss-symbols-in-webkigtk-libs to the version script.

* webkitglib-symbols.map:

Tools:

Add two scripts to be run by dist-check step when releasing. One is to detect symbols duplicated in
libjavascriptcoregtk and libwebkit2gtk that should be included to the version script. The other one is to ensure
all symbols listed in the script are present in the library.

* Scripts/check-for-global-bss-symbols-in-webkigtk-libs: Added.
(bss_symbols):
* Scripts/check-for-invalid-symbols-in-version-script: Added.
(script_symbols):
* Scripts/make-dist:
(Distcheck.build):
(Distcheck):
(Distcheck.check_symbols):
(Distcheck.check):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227057 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][WPE] Propagate the parameters when restarting glib api tests after a crash
carlosgc@webkit.org [Wed, 17 Jan 2018 10:04:14 +0000 (10:04 +0000)]
[GTK][WPE] Propagate the parameters when restarting glib api tests after a crash
https://bugs.webkit.org/show_bug.cgi?id=181722

Reviewed by Žan Doberšek.

I forgot to pass the parameters to run() when restarting.

* glib/glib_test_runner.py:
(GLibTestRunner.run):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227056 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Cairo] Move prepareForFilling(), prepareForStroking() code to CairoOperations
zandobersek@gmail.com [Wed, 17 Jan 2018 09:35:58 +0000 (09:35 +0000)]
[Cairo] Move prepareForFilling(), prepareForStroking() code to CairoOperations
https://bugs.webkit.org/show_bug.cgi?id=181721

Reviewed by Carlos Garcia Campos.

Move the prepareForFilling() and prepareForStroking() code off of the
PlatformContextCairo class and into static functions inside the
CairoOperations implementation files. The original methods weren't
called from any place other than the Cairo operations, and they only
operated with the cairo_t object that's stored in and retrievable from
the PlatformContextCairo object.

No new tests -- no change in behavior.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::reduceSourceByAlpha):
(WebCore::Cairo::prepareCairoContextSource):
(WebCore::Cairo::clipForPatternFilling):
(WebCore::Cairo::prepareForFilling):
(WebCore::Cairo::prepareForStroking):
(WebCore::Cairo::drawPathShadow):
(WebCore::Cairo::fillCurrentCairoPath):
(WebCore::Cairo::strokeRect):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::drawGlyphs):
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::reduceSourceByAlpha): Deleted.
(WebCore::prepareCairoContextSource): Deleted.
(WebCore::PlatformContextCairo::prepareForFilling): Deleted.
(WebCore::PlatformContextCairo::prepareForStroking): Deleted.
(WebCore::PlatformContextCairo::clipForPatternFilling): Deleted.
* platform/graphics/cairo/PlatformContextCairo.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUpdate web platform tests for Visual Viewport API
commit-queue@webkit.org [Wed, 17 Jan 2018 09:34:46 +0000 (09:34 +0000)]
Update web platform tests for Visual Viewport API
https://bugs.webkit.org/show_bug.cgi?id=181689

Patch by Ali Juma <ajuma@chromium.org> on 2018-01-17
Reviewed by Alex Christensen.

Rename the test directory from 'viewport' to 'visual-viewport', and update
viewport-resize-event-on-load-overflowing-page.html.

This corresponds to the following upstream commits:
1) https://github.com/w3c/web-platform-tests/commit/f878fee4df619e55c7fbfce1a2ff5e5d4d83a03b
2) https://github.com/w3c/web-platform-tests/commit/03a684d63e62d85cffed38bc942f468692d7d54f

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/viewport/w3c-import.log: Removed.
* web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc-expected.txt.
* web-platform-tests/visual-viewport/viewport-no-resize-event-on-overflow-recalc.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-no-resize-event-on-overflow-recalc.html.
* web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout-expected.txt.
* web-platform-tests/visual-viewport/viewport-read-size-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-causes-layout.html.
* web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout-expected.txt.
* web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-read-size-in-iframe-causes-layout.html.
* web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page-expected.txt.
* web-platform-tests/visual-viewport/viewport-resize-event-on-load-overflowing-page.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-resize-event-on-load-overflowing-page.html.
* web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize-expected.txt.
* web-platform-tests/visual-viewport/viewport-scrollbars-cause-resize.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-scrollbars-cause-resize.html.
* web-platform-tests/visual-viewport/viewport-type-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type-expected.txt.
* web-platform-tests/visual-viewport/viewport-type.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-type.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scale-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scale.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scale.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-scroll.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll.html.
* web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.
* web-platform-tests/visual-viewport/viewport-unscaled-size-iframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe.html.
* web-platform-tests/visual-viewport/viewport-unscaled-size.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size.html.
* web-platform-tests/visual-viewport/viewport_support.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/viewport/viewport_support.js.
* web-platform-tests/visual-viewport/w3c-import.log: Added.

LayoutTests:

* TestExpectations: Updated test path.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-scroll-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-scroll-iframe-expected.txt.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-expected.txt.
Updated expectation since tests in a directory named 'viewport' but not 'visual-viewport' get a flexible viewport on iOS.
* platform/ios/imported/w3c/web-platform-tests/visual-viewport/viewport-unscaled-size-iframe-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/web-platform-tests/viewport/viewport-unscaled-size-iframe-expected.txt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227054 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoDFG::Node::convertToConstant needs to clear the varargs flags
sbarati@apple.com [Wed, 17 Jan 2018 09:24:26 +0000 (09:24 +0000)]
DFG::Node::convertToConstant needs to clear the varargs flags
https://bugs.webkit.org/show_bug.cgi?id=181697
<rdar://problem/36497332>

Reviewed by Yusuke Suzuki.

JSTests:

* stress/dfg-node-convert-to-constant-must-clear-varargs-flags.js: Added.
(doIndexOf):
(bar):
(i.bar):

Source/JavaScriptCore:

* dfg/DFGNode.h:
(JSC::DFG::Node::convertToConstant):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227053 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoClear Caches volatile storage as a memory optimization.
commit-queue@webkit.org [Wed, 17 Jan 2018 09:22:35 +0000 (09:22 +0000)]
Clear Caches volatile storage as a memory optimization.
https://bugs.webkit.org/show_bug.cgi?id=181643

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-17
Reviewed by Chris Dumez.

clearMemoryRepresentation clears m_caches which exposes data potentially stored in m_volatileStorage.
Clearing m_volatileStorage allows releasing some memory.

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::clearMemoryRepresentation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227052 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Cairo] Use one-time ShadowBlur objects when performing shadowing
zandobersek@gmail.com [Wed, 17 Jan 2018 09:20:54 +0000 (09:20 +0000)]
[Cairo] Use one-time ShadowBlur objects when performing shadowing
https://bugs.webkit.org/show_bug.cgi?id=181720

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Don't maintain a ShadowBlur object in the PlatformContextCairo class.
Instead, use temporary ShadowBlur objects whenever shadowing is needed,
providing all the shadow state information to it and drawing shadow into
the given GraphicsContext object.

ShadowBlur constructors are cleaned up. The 'shadows ignored' argument
can now also be provided to the variant that accepts explicit shadow
attributes, but the argument is false by default.

In CairoOperations, the ShadowBlurUsage functionality is rolled into the
new ShadowState class. ShadowState parameter is now used for operations
that might need to perform shadow painting. Call sites are modified
accordingly.

Cairo::State::setShadowValues() and Cairo::State::clearShadow() are
removed, since the ShadowBlur object that was modified through those is
being removed from the PlatformContextCairo class. We still have to flip
the Y-axis of the shadow offset in GraphicsContext::setPlatformShadow()
when shadows are ignoring transformations.

No new tests -- no change in behavior.

* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::ShadowBlur):
* platform/graphics/ShadowBlur.h:
* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawPathShadow):
(WebCore::Cairo::drawGlyphsShadow):
(WebCore::Cairo::ShadowState::ShadowState):
(WebCore::Cairo::ShadowState::isVisible const):
(WebCore::Cairo::ShadowState::isRequired const):
(WebCore::Cairo::fillRect):
(WebCore::Cairo::fillRoundedRect):
(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::fillPath):
(WebCore::Cairo::strokeRect):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::drawGlyphs):
(WebCore::Cairo::drawNativeImage):
(WebCore::Cairo::State::setShadowValues): Deleted.
(WebCore::Cairo::State::clearShadow): Deleted.
(WebCore::Cairo::ShadowBlurUsage::ShadowBlurUsage): Deleted.
(WebCore::Cairo::ShadowBlurUsage::required const): Deleted.
* platform/graphics/cairo/CairoOperations.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::clearPlatformShadow):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
* platform/graphics/cairo/PlatformContextCairo.h:
(WebCore::PlatformContextCairo::shadowBlur): Deleted.
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame):

Source/WebKit:

* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::paint):
Adjust the PlatformContextCairo::drawSurfaceToContext() invocation.
* WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::convertCairoSurfaceToShareableBitmap): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227051 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoCanvasImageData: createImageData() parameter should not be nullable
zandobersek@gmail.com [Wed, 17 Jan 2018 08:59:01 +0000 (08:59 +0000)]
CanvasImageData: createImageData() parameter should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=181670

Reviewed by Sam Weinig.

Source/WebCore:

createImageData() method on the CanvasImageData interface should not
treat the ImageData parameter as nullable, but should instead reject any
null values with a TypeError, as demanded by the specification.

No new tests -- current tests covering createImageData(null) are updated
to properly cover new behavior of throwing a TypeError exception.

* html/canvas/CanvasImageData.idl:
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createImageData const):
* html/canvas/CanvasRenderingContext2DBase.h:

LayoutTests:

Update createImageData(null) tests that should now throw a TypeError.

* canvas/philip/tests/2d.imageData.create1.zero.html:
* fast/canvas/canvas-createImageData-expected.txt:
* fast/canvas/canvas-createImageData.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227050 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[CMake] Remove WebCoreDerivedSources library target
commit-queue@webkit.org [Wed, 17 Jan 2018 07:14:24 +0000 (07:14 +0000)]
[CMake] Remove WebCoreDerivedSources library target
https://bugs.webkit.org/show_bug.cgi?id=181664

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-01-16
Reviewed by Carlos Garcia Campos.

Source/WebCore:

After unified source build has been introduced, CMake Visual
Studio build suffers complicated unnecessary recompilation issues
because Visual Studio invokes scripts twice in both WebCore and
WebCoreDerivedSources projects (Bug 181117).

WebCoreDerivedSources library has been introduced in r198766 to
avoid command line length limit of CMake Ninja build on macOS.
Fortunately, unified source build has reduced the number of source
files to compile, WebCore doesn't need to be split anymore.

No new tests (No behavior change)

* CMakeLists.txt: Replaced WebCore_DERIVED_SOURCES with WebCore_SOURCES. Removed WebCoreDerivedSources library target.
Do not compile each JavaScript Builtins.cpp files because the unified source WebCoreJSBuiltins.cpp is already included.
* PlatformGTK.cmake: Replaced WebCore_DERIVED_SOURCES with WebCore_SOURCES.
* PlatformWin.cmake: Ditto.

Source/WebKit:

* CMakeLists.txt: Do not link WebCoreDerivedSources.
* PlatformGTK.cmake: Appended WebCore after WebCorePlatformGTK in WebKit_LIBRARIES.
* PlatformWin.cmake: Ditto.

Source/WebKitLegacy:

* PlatformWin.cmake: Do not link WebCoreDerivedSources.

Tools:

* TestWebKitAPI/PlatformWPE.cmake: Do not link WebCoreDerivedSources.
* TestWebKitAPI/PlatformWin.cmake: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227049 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMove Debug Test262, Release Test262 and Performance queues to Sierra
lingcherd_ho@apple.com [Wed, 17 Jan 2018 07:04:07 +0000 (07:04 +0000)]
Move Debug Test262, Release Test262 and Performance queues to Sierra
https://bugs.webkit.org/show_bug.cgi?id=181692

Unreviewed

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227048 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAllow dangerous disabling of poison
jfbastien@apple.com [Wed, 17 Jan 2018 05:40:40 +0000 (05:40 +0000)]
Allow dangerous disabling of poison
https://bugs.webkit.org/show_bug.cgi?id=181685
<rdar://problem/36546265>

Reviewed by Keith Miller.

Some tools such as leak detectors and such like to look at real
pointers, and poisoned ones confuse them. Add a JSC option to
disable poisoning, but log to the console when this is done.

* runtime/JSCPoison.cpp:
(JSC::initializePoison):
* runtime/Options.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227047 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoCan't scroll iframe after toggling it to display:none and back
simon.fraser@apple.com [Wed, 17 Jan 2018 01:34:42 +0000 (01:34 +0000)]
Can't scroll iframe after toggling it to display:none and back
https://bugs.webkit.org/show_bug.cgi?id=181708
rdar://problem/13234778

Reviewed by Tim Horton.

Source/WebCore:

Nothing updated the FrameView's set of scrollable areas when a subframe came back from display:none.
Mirror the existing virtual removeChild() by making addChild() virtual, and using it to mark
the FrameView's scrollable area set as dirty.

Test: tiled-drawing/scrolling/non-fast-region/non-fast-scrollable-region-hide-show-iframe.html

* page/FrameView.cpp:
(WebCore::FrameView::addChild):
* page/FrameView.h:
* platform/ScrollView.h:

LayoutTests:

* tiled-drawing/scrolling/non-fast-region/non-fast-scrollable-region-hide-show-iframe-expected.txt: Added.
* tiled-drawing/scrolling/non-fast-region/non-fast-scrollable-region-hide-show-iframe.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoSWServerWorker::m_contextConnectionIdentifier may get out of date
cdumez@apple.com [Wed, 17 Jan 2018 00:49:56 +0000 (00:49 +0000)]
SWServerWorker::m_contextConnectionIdentifier may get out of date
https://bugs.webkit.org/show_bug.cgi?id=181687
<rdar://problem/36548111>

Reviewed by Brady Eidson.

SWServerWorker::m_contextConnectionIdentifier may get out of date. This happens when the
context process crashes and is relaunched.

No new tests, added assertion in terminateWorkerInternal() that hits without this fix.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::terminateWorkerInternal):
(WebCore::SWServer::unregisterServiceWorkerClient):
* workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::setContextConnectionIdentifier):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227010 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoReset MediaSourcePrivateAVFObjC's m_sourceBufferWithSelectedVideo when the underlying...
jer.noble@apple.com [Wed, 17 Jan 2018 00:04:56 +0000 (00:04 +0000)]
Reset MediaSourcePrivateAVFObjC's m_sourceBufferWithSelectedVideo when the underlying SourceBufferPrivate is removed.
https://bugs.webkit.org/show_bug.cgi?id=181707
<rdar://problem/34809474>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-remove-unload-crash.html

* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer):

LayoutTests:

* media/media-source/media-source-remove-unload-crash-expected.txt: Added.
* media/media-source/media-source-remove-unload-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227009 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Canvas tab: typing a "space" in the QuickConsole shouldn't trigger...
mattbaker@apple.com [Tue, 16 Jan 2018 23:17:36 +0000 (23:17 +0000)]
Web Inspector: Canvas tab: typing a "space" in the QuickConsole shouldn't trigger a recording
https://bugs.webkit.org/show_bug.cgi?id=181706
<rdar://problem/36558221>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/CanvasOverviewContentView.js:
(WI.CanvasOverviewContentView):
(WI.CanvasOverviewContentView.prototype._handleSpace):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227008 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[WebAuthN] Implement dummy WebAuthN IDLs
jiewen_tan@apple.com [Tue, 16 Jan 2018 23:08:44 +0000 (23:08 +0000)]
[WebAuthN] Implement dummy WebAuthN IDLs
https://bugs.webkit.org/show_bug.cgi?id=181627
<rdar://problem/36459864>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/credential-management/credentialscontainer-create-basics.https-expected.txt:

Source/WebCore:

This patch implements dummy WebAuthN IDLs and connect them with Credential Management as well.
All implementations in this patch are subject to change when real implementations land. The
purpose here on the other hand is to have IDLs, bindings and implementations connected. This
patch should handle all IDLs that we need.

No tests.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/credentialmanagement/CredentialCreationOptions.h:
* Modules/credentialmanagement/CredentialCreationOptions.idl:
* Modules/credentialmanagement/CredentialRequestOptions.h:
* Modules/credentialmanagement/CredentialRequestOptions.idl:
* Modules/webauthn/AuthenticatorAssertionResponse.cpp: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp.
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):
(WebCore::AuthenticatorAssertionResponse::~AuthenticatorAssertionResponse):
(WebCore::AuthenticatorAssertionResponse::authenticatorData):
(WebCore::AuthenticatorAssertionResponse::signature):
(WebCore::AuthenticatorAssertionResponse::userHandle):
* Modules/webauthn/AuthenticatorAssertionResponse.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h.
* Modules/webauthn/AuthenticatorAssertionResponse.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Modules/webauthn/AuthenticatorAttestationResponse.cpp: Copied from Source/WebCore/Modules/credentialmanagement/CredentialCreationOptions.h.
(WebCore::AuthenticatorAttestationResponse::AuthenticatorAttestationResponse):
(WebCore::AuthenticatorAttestationResponse::~AuthenticatorAttestationResponse):
(WebCore::AuthenticatorAttestationResponse::attestationObject):
* Modules/webauthn/AuthenticatorAttestationResponse.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h.
* Modules/webauthn/AuthenticatorAttestationResponse.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Modules/webauthn/AuthenticatorResponse.cpp: Copied from Source/WebCore/Modules/credentialmanagement/CredentialCreationOptions.h.
(WebCore::AuthenticatorResponse::AuthenticatorResponse):
(WebCore::AuthenticatorResponse::~AuthenticatorResponse):
(WebCore::AuthenticatorResponse::clientDataJSON):
* Modules/webauthn/AuthenticatorResponse.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h.
* Modules/webauthn/AuthenticatorResponse.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Modules/webauthn/PublicKeyCredential.cpp:
(WebCore::PublicKeyCredential::rawId):
(WebCore::PublicKeyCredential::response):
(WebCore::PublicKeyCredential::getClientExtensionResults):
(WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):
* Modules/webauthn/PublicKeyCredential.h:
* Modules/webauthn/PublicKeyCredential.idl:
* Modules/webauthn/PublicKeyCredentialCreationOptions.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h.
* Modules/webauthn/PublicKeyCredentialCreationOptions.idl: Added.
* Modules/webauthn/PublicKeyCredentialDescriptor.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialCreationOptions.h.
* Modules/webauthn/PublicKeyCredentialDescriptor.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Modules/webauthn/PublicKeyCredentialRequestOptions.h: Copied from Source/WebCore/Modules/credentialmanagement/CredentialCreationOptions.h.
* Modules/webauthn/PublicKeyCredentialRequestOptions.idl: Copied from Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.h.
* Modules/webauthn/PublicKeyCredentialType.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Modules/webauthn/PublicKeyCredentialType.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Modify some tests to reflect the update.

* http/wpt/credential-management/credentialscontainer-create-basics.https-expected.txt:
* http/wpt/credential-management/credentialscontainer-create-basics.https.html:
* http/wpt/credential-management/credentialscontainer-get-basics.https-expected.txt:
* http/wpt/credential-management/credentialscontainer-get-basics.https.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227007 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAX: Do not trigger layout in updateBackingStore() unless it is safe to do so
zalan@apple.com [Tue, 16 Jan 2018 23:06:54 +0000 (23:06 +0000)]
AX: Do not trigger layout in updateBackingStore() unless it is safe to do so
https://bugs.webkit.org/show_bug.cgi?id=181703
<rdar://problem/36365706>

Reviewed by Ryosuke Niwa.

Document::isSafeToUpdateStyleOrLayout() can tell whether it is safe to run layout.

Unable to create test with WebInspector involved.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore):
* dom/Document.cpp:
(WebCore::Document::isSafeToUpdateStyleOrLayout const):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):
(WebCore::isSafeToUpdateStyleOrLayout): Deleted.
* dom/Document.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227006 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226962.
ryanhaddad@apple.com [Tue, 16 Jan 2018 22:52:47 +0000 (22:52 +0000)]
Unreviewed, rolling out r226962.

The LayoutTest added with this change is a flaky timeout.

Reverted changeset:

"Support for preconnect Link headers"
https://bugs.webkit.org/show_bug.cgi?id=181657
https://trac.webkit.org/changeset/226962

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226937.
ryanhaddad@apple.com [Tue, 16 Jan 2018 22:35:39 +0000 (22:35 +0000)]
Unreviewed, rolling out r226937.

Tests added with this change are failing due to a missing
exception check.

Reverted changeset:

"[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast
double to int32_t"
https://bugs.webkit.org/show_bug.cgi?id=181182
https://trac.webkit.org/changeset/226937

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227004 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Make Console's Execution Context picker stand out when it is non-default
commit-queue@webkit.org [Tue, 16 Jan 2018 22:26:26 +0000 (22:26 +0000)]
Web Inspector: Make Console's Execution Context picker stand out when it is non-default
https://bugs.webkit.org/show_bug.cgi?id=181628
<rdar://problem/36492044>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-16
Reviewed by Matt Baker.

* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component > .selector-arrows):
* UserInterface/Views/HierarchicalPathComponent.js:
(WI.HierarchicalPathComponent.prototype.set selectorArrows):
Switch to SVG element so we can style the arrows.

* UserInterface/Views/QuickConsole.css:
(.quick-console > .navigation-bar > .hierarchical-path .execution-context):
(.quick-console > .navigation-bar > .hierarchical-path .execution-context .separator):
(.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context):
(.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows):
Styles for the execution context picker. We hide the unused separator
and instead use margin so that the selected background and border don't
have an extra 7px on the right/end side.

* UserInterface/Views/QuickConsole.js:
(WI.QuickConsole.prototype._activeExecutionContextChanged):
Toggle the non-default class name on the path.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMerge sync and async code paths for getting context menus
achristensen@apple.com [Tue, 16 Jan 2018 21:58:34 +0000 (21:58 +0000)]
Merge sync and async code paths for getting context menus
https://bugs.webkit.org/show_bug.cgi?id=181423

Reviewed by Joseph Pecoraro.

What a mess.  We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation.
This makes it so there is just one.  At the API level we see if there is an asynchronous delegate to call, then synchronous.
There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous
case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything!

* UIProcess/API/APIContextMenuClient.h:
(API::ContextMenuClient::getContextMenuFromProposedMenu):
(API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageContextMenuClient):
* UIProcess/API/glib/WebKitContextMenuClient.cpp:
* UIProcess/WebContextMenuProxy.h:
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::show):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
* UIProcess/gtk/WebContextMenuProxyGtk.h:
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
(WebKit::WebContextMenuProxyMac::showContextMenu):
* UIProcess/wpe/WebContextMenuProxyWPE.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227001 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoText looks bad on some CSS spec pages
simon.fraser@apple.com [Tue, 16 Jan 2018 21:52:09 +0000 (21:52 +0000)]
Text looks bad on some CSS spec pages
https://bugs.webkit.org/show_bug.cgi?id=181700
rdar://problem/36552107

Reviewed by Tim Horton.

When making new tiles in a TileController, we failed to set their "supports antialiased layer text"
setting, so tile caches could end up with a mixture of layers that do and do not support
antialiased layer text.

No tests because the tiled drawing tests don't dump out tiles inside of tile caches.

* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::createTileLayer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227000 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Styles: pressing down key should select first item from completion...
nvasilyev@apple.com [Tue, 16 Jan 2018 20:54:04 +0000 (20:54 +0000)]
Web Inspector: Styles: pressing down key should select first item from completion list when focusing on empty value
https://bugs.webkit.org/show_bug.cgi?id=181633
<rdar://problem/36501797>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype._updateCompletions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226996 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Styles Redesign: Long value causes bad wrapping
nvasilyev@apple.com [Tue, 16 Jan 2018 20:31:54 +0000 (20:31 +0000)]
Web Inspector: Styles Redesign: Long value causes bad wrapping
https://bugs.webkit.org/show_bug.cgi?id=181618
<rdar://problem/36485175>

Reviewed by Joseph Pecoraro.

Wrap long values only when editing.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor .value.editing):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Styles Redesign: clicking on the white space after the property someti...
nvasilyev@apple.com [Tue, 16 Jan 2018 20:23:12 +0000 (20:23 +0000)]
Web Inspector: Styles Redesign: clicking on the white space after the property sometimes places a blank property at the wrong index
https://bugs.webkit.org/show_bug.cgi?id=179585
<rdar://problem/35490780>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
Layout call is needed to update data-property-index attributes on the property views.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226994 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r221292): svg/animations/animateTransform-pattern-transform.html crashes...
said@apple.com [Tue, 16 Jan 2018 20:21:28 +0000 (20:21 +0000)]
REGRESSION(r221292): svg/animations/animateTransform-pattern-transform.html crashes with security assertion
https://bugs.webkit.org/show_bug.cgi?id=179986

Reviewed by Simon Fraser.

Source/WebCore:

This patch reverts all or parts of the following changes-sets
    <http://trac.webkit.org/changeset/221292>
    <http://trac.webkit.org/changeset/197967>
    <http://trac.webkit.org/changeset/196670>

A JS statement like this:
    var item = text.x.animVal.getItem(0);

Creates the following C++ objects:
    SVGAnimatedListPropertyTearOff<SVGLengthListValues> for 'text.x'
    SVGListPropertyTearOff<SVGLengthListValues> for 'text.x.animVal'
    SVGPropertyTearOff<SVGLengthValue> for 'text.x.animVal.getItem(0)'

If 'item' changes, the attribute 'x' of the element '<text>' will change
as well. But this binding works only in one direction. If the attribute
'x' of the element '<text>' changes, e.g.:

    text.setAttribute('x', '10,20,30');

This will detach 'item' from the element <text> and any further changes
in 'item' won't affect the attribute 'x' of element <text>.

The one direction binding can only work if this chain of tear-off objects
is kept connected. This is implemented by RefCounted back pointers from
SVGPropertyTearOff and SVGListPropertyTearOff to SVGAnimatedListPropertyTearOff.

The security crashes and the memory leaks are happening because of the
raw forward pointers:
    -- SVGAnimatedListPropertyTearOff maintains raw pointers of type
       SVGListPropertyTearOff for m_baseVal and m_animVal
    -- The m_wrappers and m_animatedWrappers of SVGAnimatedListPropertyTearOff
       are vectors of raw pointer Vector<SVGLength*>

To control the life cycle of the raw pointers, SVGListPropertyTearOff and
SVGPropertyTearOff call SVGAnimatedListPropertyTearOff::propertyWillBeDeleted()
to notify it they are going to be deleted. In propertyWillBeDeleted(), we
clear the pointers so they are not used after being freed. This mechanism
has been error-prone and we've never got it 100% right.

The solution we need to adopt with SVG tear-off objects is the following:
    -- All the forward pointers should be weak pointers.
    -- All the back pointers should be ref pointers.

This solution may not look intuitive but it solves the bugs and keeps the
one direction binding. The forward weak pointers allows the tear-off
objects to go aways if no reference from JS exists. The back ref pointers
maintains the chain of objects and guarantees the correct binding.

* svg/SVGPathSegList.h:
* svg/SVGTransformList.h:
* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::baseVal):
(WebCore::SVGAnimatedListPropertyTearOff::animVal):
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
* svg/properties/SVGAnimatedProperty.h:
(WebCore::SVGAnimatedProperty::isAnimatedListTearOff const):
(WebCore::SVGAnimatedProperty::propertyWillBeDeleted): Deleted.
* svg/properties/SVGAnimatedPropertyTearOff.h:
* svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
* svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::initializeValuesAndWrappers):
(WebCore::SVGListProperty::getItemValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::replaceItemValuesAndWrappers):
(WebCore::SVGListProperty::removeItemValuesAndWrappers):
(WebCore::SVGListProperty::appendItemValuesAndWrappers):
(WebCore::SVGListProperty::createWeakPtr const):
* svg/properties/SVGListPropertyTearOff.h:
(WebCore::SVGListPropertyTearOff::removeItemFromList):
(WebCore::SVGListPropertyTearOff::~SVGListPropertyTearOff): Deleted.
* svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::createWeakPtr const):
(WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):

LayoutTests:

* svg/dom/SVGAnimatedListPropertyTearOff-leak.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226993 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Network Tab - Export HAR Context Menu not working
commit-queue@webkit.org [Tue, 16 Jan 2018 20:20:35 +0000 (20:20 +0000)]
Web Inspector: Network Tab - Export HAR Context Menu not working
https://bugs.webkit.org/show_bug.cgi?id=181694
<rdar://problem/36479197>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-16
Reviewed by Brian Burg.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
Ensure `this` works in the handler.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226992 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoDon't link WebKit target directly to JavaScriptCore
mcatanzaro@igalia.com [Tue, 16 Jan 2018 19:47:57 +0000 (19:47 +0000)]
Don't link WebKit target directly to JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=181688

Reviewed by Alex Christensen.

It's safer if we only link to the next lower-layered lib in the stack, so let's just link
directly to WebCore instead.

And WPE doesn't need to specify it twice.

* CMakeLists.txt:
* PlatformMac.cmake:
* PlatformWPE.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226991 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAVSampleBufferDisplayLayer should be flushed when application activates
eric.carlson@apple.com [Tue, 16 Jan 2018 19:46:40 +0000 (19:46 +0000)]
AVSampleBufferDisplayLayer should be flushed when application activates
https://bugs.webkit.org/show_bug.cgi?id=181623
<rdar://problem/36487738>

Reviewed by Darin Adler.

Source/WebCore:

No new tests, I wasn't able to reproduce it in a test.

* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::addApplicationStateChangeListener): New.
(WebCore::Document::removeApplicationStateChangeListener): Ditto.
(WebCore::Document::forEachApplicationStateChangeListener): Ditto.
* dom/Document.h:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Register for application state changes.
(WebCore::HTMLMediaElement::unregisterWithDocument): Unregister.
(WebCore::HTMLMediaElement::applicationWillResignActive): Pass through to the player.
(WebCore::HTMLMediaElement::applicationDidBecomeActive): Ditto.
* html/HTMLMediaElement.h:

* page/ApplicationStateChangeListener.h: Added.
(WebCore::ApplicationStateChangeListener::applicationWillResignActive):
(WebCore::ApplicationStateChangeListener::applicationDidBecomeActive):
* page/Page.cpp:
(WebCore::Page::forEachDocument):
(WebCore::Page::applicationWillResignActive):
(WebCore::Page::applicationDidEnterBackground):
(WebCore::Page::applicationWillEnterForeground):
(WebCore::Page::applicationDidBecomeActive):
* page/Page.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::applicationWillResignActive):
(WebCore::MediaPlayer::applicationDidBecomeActive):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::applicationWillResignActive):
(WebCore::MediaPlayerPrivateInterface::applicationDidBecomeActive):

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Switch
to release logging.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample): Split out of enqueueVideoSample.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample): Move code that updates
the display later to enqueueCorrectedVideoSample. Rearrange logic to the image painter sample
buffer has the correct timestamp.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layerErrorDidChange): Switch to release logging.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layerStatusDidChange): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive): f the display
layer is in the "failed" state, flush the renderer and update the display mode.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers): Switch to release logging.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::prepareToPlay): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVolume): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setMuted): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateReadyState) Ditto.:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateSampleTimes): Deleted.

Source/WebKit:

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationWillResignActive): Call page.
(WebKit::WebPage::applicationDidEnterBackground): Ditto, let it call libWebRTCProvider.
(WebKit::WebPage::applicationWillEnterForeground): Call page.
(WebKit::WebPage::applicationDidBecomeActive): Ditto, let it call libWebRTCProvider.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoPAL should link to JavaScriptCore rather than WTF
mcatanzaro@igalia.com [Tue, 16 Jan 2018 19:41:49 +0000 (19:41 +0000)]
PAL should link to JavaScriptCore rather than WTF
https://bugs.webkit.org/show_bug.cgi?id=181683

Reviewed by Konstantin Tokarev.

Source/WebCore:

Do not link directly to JavaScriptCore. Get it via PAL.

* CMakeLists.txt:

Source/WebCore/PAL:

Currently we are accidentally linking WTF into both libjavascriptcoregtk and libwebkit2gtk,
which could in theory cause problems similar to bug #179914. There are only two possible
solutions:

 - Ensure WTF always built as a shared library if JavaScriptCore is built as a shared
   library
 - Change PAL to link to JavaScriptCore instead of WTF

The problem here is caused by layer hopping. It can never be a problem if each library only
links to the next lowest-layered library.

The downside is this allows PAL to use JavaScriptCore symbols, which is not super desirable.
I came up with a hack yesterday for PAL to link to WTF usually, but link to JavaScriptCore
instead if ${JavaScriptCore_LIBRARY_TYPE} MATCHES "SHARED" AND ${WTF_LIBRARY_TYPE} MATCHES
"STATIC". But that is getting too complex and introduces more possibility for platform-
dependent build failures. Better to just accept that PAL will depend on JavaScriptCore.

Note: I'm not brave enough to update the XCode build. We can use that to enforce that no
JavaScriptCore symbols actually get used, I guess....

* pal/CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226989 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoAdd pop-up policy support in website policies.
commit-queue@webkit.org [Tue, 16 Jan 2018 19:12:43 +0000 (19:12 +0000)]
Add pop-up policy support in website policies.
https://bugs.webkit.org/show_bug.cgi?id=181544.
rdar://problem/30521400.

Patch by Zach Li <zachli@apple.com> on 2018-01-16
Reviewed by Alex Christensen.

Source/WebCore:

* loader/DocumentLoader.h:
Introduce pop-up policy getter and setter. Initialize
the policy as Default.
(WebCore::DocumentLoader::popUpPolicy const):
(WebCore::DocumentLoader::setPopUpPolicy):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::allowPopUp):
Pop-up policy specified on a per-page basis holds
precedence over the global policy. If no pop-up policy
is specified during navigation, global policy is used.

Source/WebKit:

* Shared/WebsitePoliciesData.cpp: Encode and decode
pop-up policy.
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
Apply the pop-up policy from website policies to the
document loader.

* Shared/WebsitePoliciesData.h:

* Shared/WebsitePopUpPolicy.h:
Added for declaring enum WebsitePopUpPolicy.

* UIProcess/API/APIWforebsitePolicies.cpp:
Include pop-up policy in website policies.
(API::WebsitePolicies::WebsitePolicies):
(API::WebsitePolicies::data):
* UIProcess/API/APIWebsitePolicies.h:

* UIProcess/API/C/WKWebsitePolicies.cpp:
Added C API to get and set pop-up policy on
website policies.
(WKWebsitePoliciesGetPopUpPolicy):
(WKWebsitePoliciesSetPopUpPolicy):
* UIProcess/API/C/WKWebsitePolicies.h:

* UIProcess/API/Cocoa/_WKWebsitePolicies.h:
Added Obj-C API to get and set pop-up policy
on website policies.
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies setPopUpPolicy:]):
(-[_WKWebsitePolicies popUpPolicy]):

* WebKit.xcodeproj/project.pbxproj:
Added WebsitePopUpPolicy.h.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Added pop-up-check.html.

* TestWebKitAPI/Tests/WebKit/pop-up-check.html: Added.

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[PopUpPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PopUpPoliciesDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226984 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Win] JSC compile error in runtime/DateConversion.cpp.
pvollan@apple.com [Tue, 16 Jan 2018 19:09:32 +0000 (19:09 +0000)]
[Win] JSC compile error in runtime/DateConversion.cpp.
https://bugs.webkit.org/show_bug.cgi?id=181690
<rdar://problem/36480409>

Reviewed by Brent Fulgham.

Add 'text/win' folder to list of forwarding headers directories.

* wtf/PlatformWin.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226983 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoCrash playing audio-only HLS stream via hls.js (MSE)
jer.noble@apple.com [Tue, 16 Jan 2018 19:04:22 +0000 (19:04 +0000)]
Crash playing audio-only HLS stream via hls.js (MSE)
https://bugs.webkit.org/show_bug.cgi?id=181691
<rdar://problem/32967295>

Reviewed by Eric Carlson.

Add a weak-link check to the block called by -[AVSampleBufferDisplayLayer requestMediaDataWhenReadyOnQueue:usingBlock:].

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226982 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoRename applyHorizontalScale/applyVerticalScale in SVG filters, and related cleanup
simon.fraser@apple.com [Tue, 16 Jan 2018 18:59:09 +0000 (18:59 +0000)]
Rename applyHorizontalScale/applyVerticalScale in SVG filters, and related cleanup
https://bugs.webkit.org/show_bug.cgi?id=181684

Reviewed by Alex Christensen.

Rename the confusing applyHorizontalScale/applyVerticalScale to scaledByFilterResolution(),
and have it take and return a FloatSize. Change callers to do math in terms of FloatSizes.

Add inflate(size) to each of the rect classes.

* platform/graphics/FloatRect.h:
(WebCore::FloatRect::inflate):
* platform/graphics/IntRect.h:
(WebCore::IntRect::inflate):
* platform/graphics/LayoutRect.h:
(WebCore::LayoutRect::inflate):
* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::platformApplySoftware):
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::determineAbsolutePaintRect):
(WebCore::FEDropShadow::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
(WebCore::FEGaussianBlur::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.h:
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::determineAbsolutePaintRect):
(WebCore::FEMorphology::platformApplySoftware):
* platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::determineAbsolutePaintRect):
(WebCore::FEOffset::platformApplySoftware):
* platform/graphics/filters/Filter.h:
(WebCore::Filter::setSourceImage):
(WebCore::Filter::scaledByFilterResolution const):
(WebCore::Filter::applyHorizontalScale const): Deleted.
(WebCore::Filter::applyVerticalScale const): Deleted.
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::outsetSizeForBlur):
* rendering/FilterEffectRenderer.h:
* svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::scaledByFilterResolution const):
(WebCore::SVGFilter::applyHorizontalScale const): Deleted.
(WebCore::SVGFilter::applyVerticalScale const): Deleted.
* svg/graphics/filters/SVGFilter.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226981 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoFix Mac CMake build after r222900
achristensen@apple.com [Tue, 16 Jan 2018 18:58:47 +0000 (18:58 +0000)]
Fix Mac CMake build after r222900

* MallocBench/MallocBench/CMakeLists.txt:
The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226980 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[CMake][Mac] Fix the build errors
achristensen@apple.com [Tue, 16 Jan 2018 18:55:09 +0000 (18:55 +0000)]
[CMake][Mac] Fix the build errors
https://bugs.webkit.org/show_bug.cgi?id=181665

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-01-16
Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No behavior change)

* CMakeLists.txt: Added Modules/paymentrequest/MerchantValidationEvent.idl to compile.
* PlatformMac.cmake: Added Modules/paymentrequest/MerchantValidationEvent.cpp to compile.
Added workers/service/context and Modules/applicationmanifest as forwarding header paths.

Source/WebKit:

* CMakeLists.txt: Added TouchBarMenuData.cpp and TouchBarMenuItemData.cpp to compile.
* PlatformMac.cmake: Added _WKApplicationManifest.mm, WKInspectorWKWebView.mm and WKInspectorWindow.mm to compile.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _webPageContentProcessCount]): Call WebProcessPool::serviceWorkerProxy() only if ENABLE(SERVICE_WORKER).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226979 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Attachment Support] Provide the `src` of an attachment to the UI delegate when an...
wenson_hsieh@apple.com [Tue, 16 Jan 2018 18:46:04 +0000 (18:46 +0000)]
[Attachment Support] Provide the `src` of an attachment to the UI delegate when an attachment is inserted
https://bugs.webkit.org/show_bug.cgi?id=181638
<rdar://problem/36508702>

Reviewed by Dan Bernstein.

Source/WebCore:

Adjust the `didInsertAttachment` codepath to additionally propagate the attachment element's `src`.
Additionally, fix an issue with insertion and removal client notifications wherein the client can receive
insertion calls without corresponding removal calls, or vice versa. This is an existing issue, but matters more
now because we actually need to access the attachment element for its `src` when propagating changes to the
client. See below for details.

Test: WKAttachmentTests.AttachmentUpdatesWhenInsertingRichMarkup

* dom/Document.h:
(WebCore::Document::attachmentElementsByIdentifier const):
* editing/Editor.cpp:
(WebCore::Editor::notifyClientOfAttachmentUpdates):
* page/EditorClient.h:
(WebCore::EditorClient::didInsertAttachment):
* page/Frame.cpp:
(WebCore::Frame::setDocument):

When a Frame's document changes, inform the client that the attachments in the previous document are going away.
For each attachment currently connected to the document, we have either (1) already informed the client that it
was inserted, or (2) the attachment is pending an insertion call to the client. If (1) is the case, then we'll
tell the client that the attachment is removed, which will balance out the earlier insertion call. If (2) is the
case, then we'll remove the previously inserted attachment identifier from the set of attachment identifiers
pending insertion, and the client won't be informed of insertions or removals.

Source/WebKit:

Add a `source` parameter to the `didInsertAttachment` codepath for notifying WebKit2 clients when attachment
elements are inserted into the document.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didInsertAttachment:withSource:]):
(-[WKWebView _didInsertAttachment:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/PageClientImplCocoa.h:
* UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::didInsertAttachment):
* UIProcess/PageClient.h:
(WebKit::PageClient::didInsertAttachment):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didInsertAttachment):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::didInsertAttachment):
* WebProcess/WebCoreSupport/WebEditorClient.h:

Tools:

Tweak an existing API test to check that the `src` of an attachment element inserted via script matches the
`source` provided to the UI delegate via -[WKUIDelegate _webView:didInsertAttachment:withSource:].

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[AttachmentUpdateObserver init]):
(-[AttachmentUpdateObserver sourceForIdentifier:]):
(-[AttachmentUpdateObserver _webView:didInsertAttachment:withSource:]):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectSourceForIdentifier):
(TestWebKitAPI::TEST):
(-[AttachmentUpdateObserver _webView:didInsertAttachment:]): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226977 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse traits for animation timing functions
commit-queue@webkit.org [Tue, 16 Jan 2018 18:45:45 +0000 (18:45 +0000)]
Use traits for animation timing functions
https://bugs.webkit.org/show_bug.cgi?id=181651

Patch by Antoine Quint <graouts@apple.com> on 2018-01-16
Reviewed by Dean Jackson.

Cleaning up Dean's previous patch as suggested by Darin's post-commit review comments. The
downcast function can match const automatically and it's a better style to put the * inside
the downcast call rather than outside.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTimingFunctionValue):
* platform/animation/TimingFunction.cpp:
(WebCore::operator<<):
(WebCore::TimingFunction::transformTime const):
* platform/animation/TimingFunction.h:
* platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::toCAMediaTimingFunction):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226976 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GStreamer] Live streaming cleanups
philn@webkit.org [Tue, 16 Jan 2018 16:01:20 +0000 (16:01 +0000)]
[GStreamer] Live streaming cleanups
https://bugs.webkit.org/show_bug.cgi?id=181672

Reviewed by Michael Catanzaro.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Switch to
streaming code path when no content-length was reported by the
http source element.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes const): Return early when streaming.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::responseReceived): Emit headers as
an element message, like souphttpsrc.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226974 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GStreamer] misc fixes and cleanups
philn@webkit.org [Tue, 16 Jan 2018 15:59:59 +0000 (15:59 +0000)]
[GStreamer] misc fixes and cleanups
https://bugs.webkit.org/show_bug.cgi?id=181647

Reviewed by Michael Catanzaro.

* platform/graphics/MediaPlayer.cpp:
(WebCore::convertEnumerationToString): New utility function to convert preload enum to string.
* platform/graphics/MediaPlayerEnums.h: Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load): Debug tweak
(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay): Ditto
(WebCore::MediaPlayerPrivateGStreamer::play): Ditto
(WebCore::MediaPlayerPrivateGStreamer::paused const): Ditto
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats): Prevent useless state update.
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Debug tweak.
(WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering): Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Remove useless handlesSyncMessage method.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::setMuted): Prevent useless state update.
(WebCore::MediaPlayerPrivateGStreamerBase::muted const): Debug tweak.
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement): Ditto.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init): Enable keepAlive by default like in souphttpsrc.
(webKitWebSrcStart): Debug tweak.
(webKitWebSrcQueryWithParent): Ditto.
(webKitWebSrcNeedData): Ditto.
(CachedResourceStreamingClient::responseReceived): Change appsrc
stream-type when we wan't seek. Also update caps like souphttpsrc
does.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Add forward declaration of MediaPlayer.
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
(WebCore::MediaSourceClientGStreamerMSE::append): Fix compilation warning.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agombmalloc should only be built in developer mode
mcatanzaro@igalia.com [Tue, 16 Jan 2018 15:34:07 +0000 (15:34 +0000)]
mbmalloc should only be built in developer mode
https://bugs.webkit.org/show_bug.cgi?id=181654

Reviewed by Carlos Garcia Campos.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226972 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoTest programs should only be built in developer mode
mcatanzaro@igalia.com [Tue, 16 Jan 2018 15:33:22 +0000 (15:33 +0000)]
Test programs should only be built in developer mode
https://bugs.webkit.org/show_bug.cgi?id=181653

Reviewed by Carlos Garcia Campos.

Build test programs only in developer mode, and fix code style.

* shell/CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226971 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Fix GTK unit tests execution in the bots after r226967.
carlosgc@webkit.org [Tue, 16 Jan 2018 14:18:40 +0000 (14:18 +0000)]
Unreviewed. Fix GTK unit tests execution in the bots after r226967.

I forgot to pass the environment to the GLibTestRunner and Xvfb was not used in the bots.

* glib/api_test_runner.py:
(TestRunner._run_test_glib): Pass env to GLibTestRunner.
* glib/glib_test_runner.py:
(GLibTestRunner.run): Use given env.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][WPE] Stop passing --verbose to run-api-tests from the bots
carlosgc@webkit.org [Tue, 16 Jan 2018 12:10:37 +0000 (12:10 +0000)]
[GTK][WPE] Stop passing --verbose to run-api-tests from the bots
https://bugs.webkit.org/show_bug.cgi?id=181676

Reviewed by Carlos Alberto Lopez Perez.

The option was removed in r226967.

* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunGtkAPITests):
(RunWPEAPITests):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226969 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. Temporarily bring back --verbose option of api_test_runner.py.
carlosgc@webkit.org [Tue, 16 Jan 2018 11:38:59 +0000 (11:38 +0000)]
Unreviewed. Temporarily bring back --verbose option of api_test_runner.py.

The bots are still passing that option and the step is failing because it was removed in r226967.

* glib/api_test_runner.py:
(add_options):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][WPE] Improve the way glib tests are run
commit-queue@webkit.org [Tue, 16 Jan 2018 10:42:49 +0000 (10:42 +0000)]
[GTK][WPE] Improve the way glib tests are run
https://bugs.webkit.org/show_bug.cgi?id=181674

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-01-16
Reviewed by Žan Doberšek.

Stop using gtester external program and use our own tester from python directly. This way we no longer need to
parse the tests output to get the results which is causing problems in WPE bot. We can now differentiate between
tests failing due to an expected assert in the test and unexpected crashes.
This also fixes a bug in previous code where we failed to properly detect tests timing out, because gtester was
not showing the subtest name in stdout in case of timeouts.
I've lowered the default timeout from 10 to 5, since we are now properly handling the timeout for every test
case. I've also removed the verbose option, since it was only used by gtester and we now always show the result
of every test case.

* glib/api_test_runner.py:
(TestRunner._run_test_glib): Use GLibTestRunner.
(TestRunner._run_google_test): Wrote tests timing out to stdout too.
(add_options):
* glib/glib_test_runner.py: Added.
(TestTimeout):
(Message):
(Message.__init__):
(Message.create):
(Message.create.read_unsigned):
(Message.create.read_double):
(Message.create.read_string):
(GLibTestRunner):
(GLibTestRunner.__init__):
(GLibTestRunner._process_data):
(GLibTestRunner._process_message):
(GLibTestRunner._read_from_pipe):
(GLibTestRunner._read_from_stderr):
(GLibTestRunner._start_timeout):
(GLibTestRunner._start_timeout._alarm_handler):
(GLibTestRunner._stop_timeout):
(GLibTestRunner._subtest_start):
(GLibTestRunner._subtest_message):
(GLibTestRunner._subtest_stderr):
(GLibTestRunner._subtest_end):
(GLibTestRunner.run):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[EME] Add layout test for the MSE playback of ClearKey encrypted audio and video
commit-queue@webkit.org [Tue, 16 Jan 2018 08:16:32 +0000 (08:16 +0000)]
[EME] Add layout test for the MSE playback of ClearKey encrypted audio and video
https://bugs.webkit.org/show_bug.cgi?id=181594

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-01-16
Reviewed by Xabier Rodriguez-Calvar.

Add new layout tests in order to test the playback of ClearKey encrypted content:
clearKey-cenc-audio-playback-mse : Tests the MSE playback of ClearKey encrypted audio track.
clearKey-cenc-video-playback-mse : Tests the MSE playback of ClearKey encrypted video track.

* media/content/encrypted/segments/AudioClearKeyCenc-seg-0.mp4: Added.
* media/content/encrypted/segments/AudioClearKeyCenc-seg-1.mp4: Added.
* media/content/encrypted/segments/AudioClearKeyCenc-seg-2.mp4: Added.
* media/content/encrypted/segments/AudioClearKeyCenc-seg-3.mp4: Added.
    These are a simple encrypted audio fragments used in MSE playback.
    They have been fragmented and encrypted with BENTO4. https://www.bento4.com/
    Use full-sample encryption because they are not NAL Structured.
* media/content/encrypted/segments/VideoClearKeyCenc-seg-1.mp4: Added.
* media/content/encrypted/segments/VideoClearKeyCenc-seg-2.mp4: Added.
* media/content/encrypted/segments/VideoClearKeyCenc-seg-3.mp4: Added.
    These are a simple encrypted video fragments used in MSE playback.
    They have been fragmented and encrypted with BENTO4. https://www.bento4.com/
    Use sub-sample encryption because they are NAL Structured.
* media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse-expected.txt: Added.
* media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html: Added.
* media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-expected.txt: Added.
* media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html: Added.
* media/encrypted-media/medias-enc.js:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:
    The test clearKey-cenc-audio-playback-mse crashes because the clearKey decryptor plugin doesn't
    support yet the Full-sample encryption, see bug 180080.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226966 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[WPE] Two clearkey tests failing since r226621
commit-queue@webkit.org [Tue, 16 Jan 2018 08:13:04 +0000 (08:13 +0000)]
[WPE] Two clearkey tests failing since r226621
https://bugs.webkit.org/show_bug.cgi?id=181532

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-01-16
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Whith a fake initData, we can have a pssh size nul, thus we should check it.
We saw this issue in the subtest "initData longer than 64Kb characters" in
the clearkey-generate-request-disallowed-input layout test.

* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::extractKeyidsLocationFromCencInitData):

LayoutTests:

* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin-expected.txt:
    Since r226621 initDataType "cenc" is supported in clearKey, so we should update the expected result of these tests.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[EME] some fixes in clearKey-encrypted-cenc-event LayoutTest
commit-queue@webkit.org [Tue, 16 Jan 2018 08:04:12 +0000 (08:04 +0000)]
[EME] some fixes in clearKey-encrypted-cenc-event LayoutTest
https://bugs.webkit.org/show_bug.cgi?id=181526

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-01-16
Reviewed by Xabier Rodriguez-Calvar.

Update the TestExpectation files as it was done with clearKey-message-cenc-event
LayoutTest, the test should be pass in all platforms except gtk and mac.
Use const or let instead of var in JS when it's possible.

* TestExpectations:
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html:
* media/media-source/media-source-loader-simple.js:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226964 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: TabBar redesign: add context menu to TabBar for toggling available...
mattbaker@apple.com [Tue, 16 Jan 2018 07:03:57 +0000 (07:03 +0000)]
Web Inspector: TabBar redesign: add context menu to TabBar for toggling available tabs
https://bugs.webkit.org/show_bug.cgi?id=181448
<rdar://problem/36383298>

Reviewed by Devin Rousso.

* UserInterface/Base/Main.js:
(WI.loaded):
(WI.contentLoaded):
Reorder production tab classes and default (open) tabs.
(WI.registerTabClass): Removed.
Not used.

* UserInterface/Base/Object.js:
Remove notification that is no longer used.

* UserInterface/Views/GeneralTabBarItem.js:
(WI.GeneralTabBarItem):
(WI.GeneralTabBarItem.prototype.set title):
(WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted.
Remove per-tab context menu (provided Close Tab and Close Other Tabs).

* UserInterface/Views/NewTabContentView.js:
(WI.NewTabContentView):

* UserInterface/Views/TabBar.js:
(WI.TabBar):
(WI.TabBar.prototype._handleContextMenu):

* UserInterface/Views/TabBrowser.js:
(WI.TabBrowser):
(WI.TabBrowser._handleNewTabContextMenu): Deleted.
No longer needed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226963 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoSupport for preconnect Link headers
yoav@yoav.ws [Tue, 16 Jan 2018 06:44:41 +0000 (06:44 +0000)]
Support for preconnect Link headers
https://bugs.webkit.org/show_bug.cgi?id=181657

Reviewed by Darin Adler.

Source/WebCore:

Move the preconnect functionality into its own function, and
also call this function when Link headers are processed.

Test: http/tests/preconnect/link-header-rel-preconnect-http.php

* loader/LinkLoader.cpp:
(WebCore::LinkLoader::loadLinksFromHeader): Call preconnect.
(WebCore::LinkLoader::preconnect): Preconnect to a host functionality moved here.
(WebCore::LinkLoader::preload): Renamed `preloadIfNeeded` to `preload`.
(WebCore::LinkLoader::loadLink): Call preconnect.
* loader/LinkLoader.h:

LayoutTests:

Add test to see Link preconnect headers trigger a connection.

* http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
* http/tests/preconnect/link-header-rel-preconnect-http.php: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226962 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed GTK layout test gardening
mcatanzaro@igalia.com [Tue, 16 Jan 2018 02:44:14 +0000 (02:44 +0000)]
Unreviewed GTK layout test gardening

* TestExpectations:
* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoΩUpdate the default hyperlink for Speedometer to Speedometer 2.0.
rniwa@webkit.org [Tue, 16 Jan 2018 02:36:48 +0000 (02:36 +0000)]
ΩUpdate the default hyperlink for Speedometer to Speedometer 2.0.

Rubber-stamped by Saam Barati.

* index.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226960 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, add Thibault to contributors.json
mcatanzaro@igalia.com [Tue, 16 Jan 2018 02:20:11 +0000 (02:20 +0000)]
Unreviewed, add Thibault to contributors.json

It's a bit weird to add someone here before their first contribution, but this affects
Bugzilla autocomplete, and that is serious business.

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226959 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoImprove use of ExportMacros
mcatanzaro@igalia.com [Mon, 15 Jan 2018 23:49:02 +0000 (23:49 +0000)]
Improve use of ExportMacros
https://bugs.webkit.org/show_bug.cgi?id=181652

Reviewed by Konstantin Tokarev.

Source/bmalloc:

Disable BEXPORT on Linux ports.

* bmalloc/BExport.h: Check for BUSE(EXPORT_MACROS).
* bmalloc/BPlatform.h: Add BUSE(EXPORT_MACROS) and define it on macOS and iOS.

Source/JavaScriptCore:

* API/JSBase.h: Update a comment.
* inspector/InspectorBackendDispatcher.h: Use a better, yet equivalent, WTF macro.
* runtime/JSExportMacros.h: Simplify the #defines in this file.

Source/WebCore:

Remove a comment.

* platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Remove a comment.

* pal/ExportMacros.h:

Source/WTF:

* wtf/ExportMacros.h: Simplify the #defines in this file.
* wtf/Platform.h: Remove unneeded define. Remove comment that expects all ports to
  eventually enable the export macros. WPE will never want these. We don't currently want
  them for GTK either, though how we link GTK has been in flux recently.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226958 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoimage-rendering should affect scaling of border-image
annulen@yandex.ru [Mon, 15 Jan 2018 22:56:24 +0000 (22:56 +0000)]
image-rendering should affect scaling of border-image
https://bugs.webkit.org/show_bug.cgi?id=169440

Reviewed by Michael Catanzaro.

Source/WebCore:

Test: fast/borders/border-image-pixelated.html

* rendering/style/NinePieceImage.cpp:
(WebCore::NinePieceImage::paint):

LayoutTests:

* fast/borders/border-image-pixelated-expected.html: Added.
* fast/borders/border-image-pixelated.html: Added.
* fast/borders/resources/border-image-pixelated.png: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226957 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoRemove makePoisonedUnique
jfbastien@apple.com [Mon, 15 Jan 2018 22:02:45 +0000 (22:02 +0000)]
Remove makePoisonedUnique
https://bugs.webkit.org/show_bug.cgi?id=181630
<rdar://problem/36498623>

Reviewed by Mark Lam.

Source/JavaScriptCore:

I added a conversion from std::unique_ptr, so we can just use
std::make_unique and it'll auto-poison when converted.

* bytecode/CodeBlock.h:
(JSC::CodeBlock::makePoisonedUnique): Deleted.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::makePoisonedUnique): Deleted.

Source/WTF:

I added a conversion from std::unique_ptr, so we can just use
std::make_unique and it'll auto-poison when converted.

* wtf/PoisonedUniquePtr.h:
(WTF::makePoisonedUnique): Deleted.

Tools:

Update tests.

* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago2.19.3 ACCELERATED_2D_CANVAS support is broken
tpopela@redhat.com [Mon, 15 Jan 2018 21:24:54 +0000 (21:24 +0000)]
2.19.3 ACCELERATED_2D_CANVAS support is broken
https://bugs.webkit.org/show_bug.cgi?id=180799

Reviewed by Michael Catanzaro.

* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::didDraw):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Curl] Enable HTTP/2
commit-queue@webkit.org [Mon, 15 Jan 2018 21:21:53 +0000 (21:21 +0000)]
[Curl] Enable HTTP/2
https://bugs.webkit.org/show_bug.cgi?id=181551

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-01-15
Reviewed by Michael Catanzaro.

Start supporting HTTP/2 protocol. The first step is just enabling the HTTP/2 on Curl backend.
Next step will be to enable multiplexing feature.

No new tests because we don't have HTTP/2 test backend yet.

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlContext::isHttp2Enabled const):
(WebCore::CurlHandle::enableHttp):
(WebCore::CurlHandle::enableHttpGetRequest):
(WebCore::CurlHandle::enableHttpHeadRequest):
(WebCore::CurlHandle::enableHttpPostRequest):
(WebCore::CurlHandle::enableHttpPutRequest):
(WebCore::CurlHandle::setHttpCustomRequest):
* platform/network/curl/CurlContext.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse a helper function for checked arithmetic in WebGL validation
dino@apple.com [Mon, 15 Jan 2018 20:43:39 +0000 (20:43 +0000)]
Use a helper function for checked arithmetic in WebGL validation
https://bugs.webkit.org/show_bug.cgi?id=181620
<rdar://problem/36485879>

Reviewed by Eric Carlson.

Eric recommended using a templated helper function to do
a common arithmetic check in WebGL validation.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):
* html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::checkedAddAndMultiply): New helper.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226953 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse traits for animation timing functions
dino@apple.com [Mon, 15 Jan 2018 19:16:03 +0000 (19:16 +0000)]
Use traits for animation timing functions
https://bugs.webkit.org/show_bug.cgi?id=181651
<rdar://problem/36525328>

Reviewed by Antoine Quint.

Use the type traits for TimingFunction classes, so
we can is<> and downcast<>.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTimingFunctionValue):
* platform/animation/TimingFunction.cpp:
(WebCore::TimingFunction::transformTime const):
* platform/animation/TimingFunction.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::animationHasStepsTimingFunction):
(WebCore::animationHasFramesTimingFunction):
* platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::toCAMediaTimingFunction):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226952 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoRealtimeMediaSource should be ThreadSafeRefCounted
commit-queue@webkit.org [Mon, 15 Jan 2018 17:54:00 +0000 (17:54 +0000)]
RealtimeMediaSource should be ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=181649

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-15
Reviewed by Eric Carlson.

Difficult to write a test as this is really racy.
RealtimeIncomingVideoSourceCocoa::OnFrame is taking a reference on a background thread
to send a task to the main thread.
This requires it to be thread safe ref counted.

* platform/mediastream/RealtimeMediaSource.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226951 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][JHBuild] Tools/gtk/install-dependencies: Package libxfont does not exist anymor...
aperez@igalia.com [Mon, 15 Jan 2018 17:36:15 +0000 (17:36 +0000)]
[GTK][JHBuild] Tools/gtk/install-dependencies: Package libxfont does not exist anymore in Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=181476

Reviewed by Michael Catanzaro.

Update to xorg-server 1.19.6 which depends on libxfont2, and change
the lists of packages to install libxfont2-devel (or equivalent).

* gtk/install-dependencies:
* gtk/jhbuild.modules:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226950 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed GTK gardening
philn@webkit.org [Mon, 15 Jan 2018 15:49:25 +0000 (15:49 +0000)]
Unreviewed GTK gardening

* platform/gtk/TestExpectations: Skip
media/media-fullscreen-pause-inline.html as advised by Eric
Carlson.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226949 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoPrevent useless MediaPlayer mute state notifications
philn@webkit.org [Mon, 15 Jan 2018 15:27:23 +0000 (15:27 +0000)]
Prevent useless MediaPlayer mute state notifications
https://bugs.webkit.org/show_bug.cgi?id=181646

Reviewed by Carlos Garcia Campos.

Source/WebCore:

On GTK port the mute change notification was triggering the test
runner to think the whole page mute state had changed and that
media elements were muted. The simplest solution is to propagate
the notification only if the state actually changed.

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::muteChanged): Propagate mute notification
only if the mute state actually changed.

LayoutTests:

Unflag tests depending on muted state and media session
restrictions, most of those are now passing.

* platform/gtk/TestExpectations:
* platform/gtk/media/video-controls-no-scripting-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226948 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GStreamer] Don't wait for draw condition variable when shutting down.
commit-queue@webkit.org [Mon, 15 Jan 2018 10:50:44 +0000 (10:50 +0000)]
[GStreamer] Don't wait for draw condition variable when shutting down.
https://bugs.webkit.org/show_bug.cgi?id=180978

Patch by Sebastian Dröge <sebastian@centricular.com> on 2018-01-15
Reviewed by Carlos Garcia Campos.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
By also waiting for the draw condition variable while shutting down,
it is possible that the GStreamer video sink is waiting for the main
thread to actually render the current frame, while at the same time
the main thread is waiting for the GStreamer video sink to shut down,
resulting in a deadlock.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoASSERTION FAILED: m_ptr under WebKit::CacheStorage::Caches::writeRecord
commit-queue@webkit.org [Mon, 15 Jan 2018 09:36:36 +0000 (09:36 +0000)]
ASSERTION FAILED: m_ptr under WebKit::CacheStorage::Caches::writeRecord
https://bugs.webkit.org/show_bug.cgi?id=181401
<rdar://problem/36379022>

Patch by Youenn Fablet <youenn@apple.com> on 2018-01-15
Reviewed by Darin Adler.

m_isInitialized is true but m_storage is set to nullptr when calling writeRecord.
The only case seems to be if:
- We are doing persistent storage
- We are traversing the storage to do the initialization. At that point m_storage is set to a correct value.
- clearMemoryRepresentation is called, thus setting m_storage to nullptr and m_isInitialized to false.
We fix this by making clearMemoryRepresentation a no-op if we are initializing the caches.
clearMemoryRepresentation is about cleaning the in-memory information of the caches and the memory representation is empty at init time.
Nullifying m_storage is a memory consumption optimization.

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::clearMemoryRepresentation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226946 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoREGRESSION(r226266): [GTK] RELEASE_ASSERT(reservedZoneSize >= minimumReservedZoneSize...
mcatanzaro@igalia.com [Mon, 15 Jan 2018 08:45:13 +0000 (08:45 +0000)]
REGRESSION(r226266): [GTK] RELEASE_ASSERT(reservedZoneSize >= minimumReservedZoneSize) in JSC::VM::updateStackLimits
https://bugs.webkit.org/show_bug.cgi?id=181438
<rdar://problem/36376724>

Reviewed by Carlos Garcia Campos.

.:

Build JSC as a shared library.

Stop using -fvisibility=hidden. This is a shame, but it is causing problems that I don't
know how to fix.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Roll out the functional changes of r226266. We'll keep the minor CMake library type setting
cleanup, but we have to switch back to building JSC only as a shared library, and we have to
get rid of the version script.

* PlatformGTK.cmake:
* javascriptcoregtk-symbols.map: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226945 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[GTK][WPE] Add support for unit test expectations
carlosgc@webkit.org [Mon, 15 Jan 2018 08:17:46 +0000 (08:17 +0000)]
[GTK][WPE] Add support for unit test expectations
https://bugs.webkit.org/show_bug.cgi?id=181589

Reviewed by Michael Catanzaro.

We currently have a way to skip tests by annotating them in the api test runner script. The main problem of this
approach is that we skip tests when they fail in the bots and we never notice if they stop failing, keeping the
tests skipped forever. This is indeed the case of several WebKit2 C API tests. Annotating skipped tests in the
script itself is not a good idea either.

This patch adds a generic TestExpectations class for simple tests based on tests with subtests, like our unit
tests, but also WebDriver tests. It parses a json file with the tests and subtests expectations and provides
convenient methods to query them.

* Scripts/run-gtk-tests:
(GtkTestRunner): Remove all Skipped and Slow tests marked here.
* Scripts/run-wpe-tests:
(WPETestRunner): Ditto.
* Scripts/webkitpy/common/test_expectations.py: Added.
(TestExpectations):
(TestExpectations.__init__):
(TestExpectations._port_name_for_expected):
(TestExpectations._expected_value):
(TestExpectations.skipped_tests):
(TestExpectations.skipped_subtests):
(TestExpectations._expectation_value):
(TestExpectations.is_slow):
(TestExpectations.get_expectation):
* Scripts/webkitpy/common/test_expectations_unittest.py: Added.
(MockTestExpectations):
(MockTestExpectations.__init__):
(MockTestExpectations.is_skip):
(ExpectationsTest):
(assert_exp):
(assert_not_exp):
(assert_bad_exp):
(assert_skip):
(test_basic):
(test_skip):
(test_flaky):
(test_build_type):
* TestWebKitAPI/glib/TestExpectations.json: Added.
* glib/api_test_runner.py:
(TestRunner): Remove SkippedTest implementation.
(TestRunner.__init__): Create a TestExpectations.
(TestRunner._test_cases_to_skip): Use TestExpectations to check skipped tests.
(TestRunner._should_run_test_program): Ditto.
(TestRunner._run_test_glib): Use TestExpectations to check if test suite is slow.
(TestRunner._run_test_glib.parse_line.set_test_result): Register also tests passing.
(TestRunner._run_google_test): Use TestExpectations to check if test cases is slow and register tests passing.
(TestRunner.run_tests): Check if actual result is the expected one and register also unexpected passes.
(TestRunner.run_tests.report): Helper to write report to stdout.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226944 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[macOS] [WK2] Unskip some consistently-passing tests
mmaxfield@apple.com [Sun, 14 Jan 2018 23:02:53 +0000 (23:02 +0000)]
[macOS] [WK2] Unskip some consistently-passing tests
https://bugs.webkit.org/show_bug.cgi?id=181226
<rdar://problem/23023848>

Reviewed by Simon Fraser.

According to the flakiness dashboard, these tests consistently pass now.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226943 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed. r226928 broke the CLOOP build. This patch fixes the CLOOP build.
sbarati@apple.com [Sun, 14 Jan 2018 19:43:39 +0000 (19:43 +0000)]
Unreviewed. r226928 broke the CLOOP build. This patch fixes the CLOOP build.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeExitSiteData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226942 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoExtend testing added in r226842
cdumez@apple.com [Sun, 14 Jan 2018 07:16:21 +0000 (07:16 +0000)]
Extend testing added in r226842
https://bugs.webkit.org/show_bug.cgi?id=181634

Reviewed by Darin Adler.

I have verified that the behavior is consistent with Chrome and Firefox.

* fast/dom/Window/window-opener-shadowing-expected.txt:
* fast/dom/Window/window-opener-shadowing.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoReplace all use of ConstExprPoisoned with Poisoned.
mark.lam@apple.com [Sun, 14 Jan 2018 06:11:55 +0000 (06:11 +0000)]
Replace all use of ConstExprPoisoned with Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=181542
<rdar://problem/36442138>

Reviewed by JF Bastien.

Source/JavaScriptCore:

1. All JSC poisons are now defined in JSCPoison.h.

2. Change all clients to use the new poison values via the POISON() macro.

3. The LLInt code has been updated to handle CodeBlock poison.  Some of this code
   uses the t5 temp register, which is not available on the Windows port.
   Fortunately, we don't currently do poisoning on the Windows port yet.  So,
   it will just work for now.

   When poisoning is enabled for the Windows port, this LLInt code will need a
   Windows specific implementation to workaround its lack of a t5 register.

* API/JSAPIWrapperObject.h:
* API/JSCallbackFunction.h:
* API/JSCallbackObject.h:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
* b3/B3LowerMacros.cpp:
* b3/testb3.cpp:
(JSC::B3::testInterpreter):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::instructions):
(JSC::CodeBlock::instructions const):
(JSC::CodeBlock::makePoisonedUnique):
* dfg/DFGOSRExitCompilerCommon.h:
(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
* jit/JIT.h:
* jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* parser/UnlinkedSourceCode.h:
* runtime/ArrayPrototype.h:
* runtime/CustomGetterSetter.h:
* runtime/DateInstance.h:
* runtime/InternalFunction.h:
* runtime/JSArrayBuffer.h:
* runtime/JSCPoison.cpp: Copied from Source/JavaScriptCore/runtime/JSCPoisonedPtr.cpp.
(JSC::initializePoison):
* runtime/JSCPoison.h:
(): Deleted.
* runtime/JSCPoisonedPtr.cpp: Removed.
* runtime/JSCPoisonedPtr.h: Removed.
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::makePoisonedUnique):
* runtime/JSScriptFetchParameters.h:
* runtime/JSScriptFetcher.h:
* runtime/NativeExecutable.h:
* runtime/StructureTransitionTable.h:
(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):
* runtime/WriteBarrier.h:
(JSC::WriteBarrier::poison):
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* wasm/js/JSWebAssemblyCodeBlock.cpp:
(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):
* wasm/js/JSWebAssemblyCodeBlock.h:
* wasm/js/JSWebAssemblyInstance.h:
* wasm/js/JSWebAssemblyMemory.h:
* wasm/js/JSWebAssemblyModule.h:
* wasm/js/JSWebAssemblyTable.h:
* wasm/js/WasmToJS.cpp:
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):
* wasm/js/WebAssemblyFunctionBase.h:
* wasm/js/WebAssemblyModuleRecord.h:
* wasm/js/WebAssemblyToJSCallee.h:
* wasm/js/WebAssemblyWrapperFunction.h:

Source/WTF:

1. Removed ConstExprPoisoned and its artifacts.

2. Consolidated Poisoned into PoisonedImpl.  PoisonedImpl is not more.

3. Changed all clients of ConstExprPoisoned to use Poisoned instead.

4. Worked around the GCC and Clang compiler bug that confuses an intptr_t&
   template arg with intptr_t.
   See use of std::enable_if_t<Other::isPoisoned> in Poisoned.h.

5. Removed ENABLE(MIXED_POISON) since we now have a workaround (3) that makes it
   possible to use the mixed poison code.

6. Also fixed broken implementation of comparison operators in Poisoned.

* wtf/Bag.h:
* wtf/DumbPtrTraits.h:
(WTF::DumbPtrTraits::poison):
* wtf/DumbValueTraits.h:
(WTF::DumbValueTraits::poison):
* wtf/Poisoned.h:
(WTF::Poisoned::Poisoned):
(WTF::Poisoned::operator== const):
(WTF::Poisoned::operator!= const):
(WTF::Poisoned::operator< const):
(WTF::Poisoned::operator<= const):
(WTF::Poisoned::operator> const):
(WTF::Poisoned::operator>= const):
(WTF::Poisoned::operator=):
(WTF::Poisoned::swap):
(WTF::swap):
(WTF::PoisonedPtrTraits::poison):
(WTF::PoisonedPtrTraits::swap):
(WTF::PoisonedValueTraits::poison):
(WTF::PoisonedValueTraits::swap):
(WTF::PoisonedImpl::PoisonedImpl): Deleted.
(WTF::PoisonedImpl::assertIsPoisoned const): Deleted.
(WTF::PoisonedImpl::assertIsNotPoisoned const): Deleted.
(WTF::PoisonedImpl::unpoisoned const): Deleted.
(WTF::PoisonedImpl::clear): Deleted.
(WTF::PoisonedImpl::operator* const): Deleted.
(WTF::PoisonedImpl::operator-> const): Deleted.
(WTF::PoisonedImpl::bits const): Deleted.
(WTF::PoisonedImpl::operator! const): Deleted.
(WTF::PoisonedImpl::operator bool const): Deleted.
(WTF::PoisonedImpl::operator== const): Deleted.
(WTF::PoisonedImpl::operator!= const): Deleted.
(WTF::PoisonedImpl::operator< const): Deleted.
(WTF::PoisonedImpl::operator<= const): Deleted.
(WTF::PoisonedImpl::operator> const): Deleted.
(WTF::PoisonedImpl::operator>= const): Deleted.
(WTF::PoisonedImpl::operator=): Deleted.
(WTF::PoisonedImpl::swap): Deleted.
(WTF::PoisonedImpl::exchange): Deleted.
(WTF::PoisonedImpl::poison): Deleted.
(WTF::PoisonedImpl::unpoison): Deleted.
(WTF::constExprPoisonRandom): Deleted.
(WTF::makeConstExprPoison): Deleted.
(WTF::ConstExprPoisonedPtrTraits::exchange): Deleted.
(WTF::ConstExprPoisonedPtrTraits::swap): Deleted.
(WTF::ConstExprPoisonedPtrTraits::unwrap): Deleted.
(WTF::ConstExprPoisonedValueTraits::exchange): Deleted.
(WTF::ConstExprPoisonedValueTraits::swap): Deleted.
(WTF::ConstExprPoisonedValueTraits::unwrap): Deleted.
* wtf/PoisonedUniquePtr.h:
(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::operator=):
* wtf/Ref.h:
* wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
* wtf/RefPtr.h:
* wtf/WTFAssertions.cpp:

Tools:

1. Converted tests to using new uintptr_t& poison type.
2. Added tests for Poisoned comparison operators.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: Removed.
* TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::initializeTestPoison): Deleted.
* TestWebKitAPI/Tests/WTF/PoisonedRef.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithRef):
* TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226940 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Styles Redesign: properties should never be semitransparent or crossed...
nvasilyev@apple.com [Sun, 14 Jan 2018 04:06:15 +0000 (04:06 +0000)]
Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing
https://bugs.webkit.org/show_bug.cgi?id=180793
<rdar://problem/36038813>

Reviewed by Devin Rousso.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor .value.editing):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *):
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value):
(.spreadsheet-style-declaration-editor .property.not-inherited .content > *):
* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._update):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226939 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agocheck-webkit-style: false positive for [whitespace/braces] with os_log format string
ddkilzer@apple.com [Sat, 13 Jan 2018 20:38:04 +0000 (20:38 +0000)]
check-webkit-style: false positive for [whitespace/braces] with os_log format string
<https://webkit.org/b/181606>

Reviewed by Darin Adler.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_spacing): Modify regular expression to ignore
os_log format strings like '%{public}'.
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_spacing_before_braces): Add os_log
format string test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226938 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
ticaiolima@gmail.com [Sat, 13 Jan 2018 15:16:23 +0000 (15:16 +0000)]
[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
https://bugs.webkit.org/show_bug.cgi?id=181182

Reviewed by Darin Adler.

JSTests:

* bigIntTests.yaml:
* stress/big-int-constructor.js:
* stress/big-int-prototype-to-string-cast-overflow.js: Added.
(assert):
(assertThrowRangeError):
* stress/number-prototype-to-string-cast-overflow.js: Added.
(assert):
(assertThrowRangeError):

Source/JavaScriptCore:

Casting double to integer is undefined behavior when the truncation
results into a value that doesn't fit into integer size, according C++
spec[1]. Thus, we are changing bigIntProtoFuncToString and
numberProtoFuncToString to remove these source of undefined behavior.

[1] - http://en.cppreference.com/w/cpp/language/implicit_conversion

* runtime/BigIntPrototype.cpp:
(JSC::bigIntProtoFuncToString):
* runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncToString):
(JSC::extractRadixFromArgs): Deleted.
(JSC::extractToStringRadixArgument): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226937 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMathML Lengths should take zoom level into account
commit-queue@webkit.org [Sat, 13 Jan 2018 12:07:52 +0000 (12:07 +0000)]
MathML Lengths should take zoom level into account
https://bugs.webkit.org/show_bug.cgi?id=180029

Patch by Minsheng Liu <lambda@liu.ms> on 2018-01-13
Reviewed by Frédéric Wang.

Source/WebCore:

The patch applies the effective zoom factor to physical units in toUserUnits().

Test: mathml/presentation/mspace-units-with-zoom.html

* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::toUserUnits):

LayoutTests:

Add a testcase for MathML lengths where zoom factor is set.

* mathml/presentation/mspace-units-with-zoom-expected.html: Added.
* mathml/presentation/mspace-units-with-zoom.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226936 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[macOS] API tests ChangeAttachmentDataUpdatesWithInPlaceDisplay and InPlaceVideoAttac...
wenson_hsieh@apple.com [Sat, 13 Jan 2018 05:30:57 +0000 (05:30 +0000)]
[macOS] API tests ChangeAttachmentDataUpdatesWithInPlaceDisplay and InPlaceVideoAttachmentInsertionWithinList are failing
https://bugs.webkit.org/show_bug.cgi?id=181626

Reviewed by Joseph Pecoraro.

Make the web view for WKAttachmentTests slightly bigger to avoid size clamping behavior introduced in r226915.
Additionally, write a new API test covering the change in r226915.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(webViewForTestingAttachments):
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226935 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoASSERTION FAILED: registration || isTerminating() in WebCore::SWServerWorker::skipWai...
cdumez@apple.com [Sat, 13 Jan 2018 04:09:43 +0000 (04:09 +0000)]
ASSERTION FAILED: registration || isTerminating() in WebCore::SWServerWorker::skipWaiting()
https://bugs.webkit.org/show_bug.cgi?id=181603
<rdar://problem/36476050>

Reviewed by Youenn Fablet.

No new tests, covered by existing tests that crash flakily.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::terminateWorkerInternal):
If the connection to the context process is gone, make sure we make the worker as terminated
so that it does not stay in Running state and in SWServer::m_runningOrTerminatingWorkers.

* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::~SWServerRegistration):
Add assertions to make sure none of the registration's workers are still running when
the registration is destroyed.

(WebCore::SWServerRegistration::updateRegistrationState):
Make sure registration workers that are overwritten are not still running.

* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::setState):
If a worker's state is set to redundant, make sure we also terminate it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226934 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, speculative build fix after r226899.
wenson_hsieh@apple.com [Sat, 13 Jan 2018 01:11:34 +0000 (01:11 +0000)]
Unreviewed, speculative build fix after r226899.

Add an empty implementation for PageClient::startDrag.

* UIProcess/PageClient.h:
(WebKit::PageClient::startDrag):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226933 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoTouch events not received with initial-scale=1 viewport
simon.fraser@apple.com [Sat, 13 Jan 2018 01:03:42 +0000 (01:03 +0000)]
Touch events not received with initial-scale=1 viewport
https://bugs.webkit.org/show_bug.cgi?id=181566
rdar://problem/36460221

Reviewed by Tim Horton.

Add a testcase for this touch event case.

* fast/events/touch/ios/target-taller-than-view-expected.txt: Added.
* fast/events/touch/ios/target-taller-than-view.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226932 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUnreviewed, rolling out r226927.
commit-queue@webkit.org [Sat, 13 Jan 2018 00:46:06 +0000 (00:46 +0000)]
Unreviewed, rolling out r226927.
https://bugs.webkit.org/show_bug.cgi?id=181621

Breaks 32-bit and iOS release for some reason that i don't
understand yet (Requested by dino on #webkit).

Reverted changeset:

"Use a helper function for checked arithmetic in WebGL
validation"
https://bugs.webkit.org/show_bug.cgi?id=181620
https://trac.webkit.org/changeset/226927

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226931 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoData URL fonts split in the middle of an alphabet cause random letters to disappear
mmaxfield@apple.com [Sat, 13 Jan 2018 00:45:26 +0000 (00:45 +0000)]
Data URL fonts split in the middle of an alphabet cause random letters to disappear
https://bugs.webkit.org/show_bug.cgi?id=175845
<rdar://problem/33996578>

Reviewed by Brent Fulgham.

Source/WebCore:

It is fairly common practice for a font foundry to split a font up into two files such that a semi-random
half of the alphabet is present in one of the files, and the other half is present in the other file. This
practice involves representing the files as data URLs, so as to minimize the time it takes to load them.

Because resource loading is asynchronous (even for data URLs), it is possible today to get a paint after
the first file is loaded but before the second file is loaded. Indeed, because of the way font fallback
works, we will never start loading the second file until a layout has occurred with the first font.

Because a site usually only uses this pattern for a handful of fonts, and I've never seen this pattern
being used for CJK fonts, it isn't very expensive to opportunistically decode these data URLs eagerly.
Using this method doesn't actually guarantee that the two fonts will load in between successive paints,
but it at least makes this much more likely. This patch implements this strategy, along with a size
threshold to make sure that we won't decode any super large data URLs when it isn't necessary.

Test: fast/text/font-load-data-partitioned-alphabet.html

* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):
* css/CSSFontSelector.h:
* platform/graphics/FontCascadeFonts.cpp:
(WebCore::opportunisticallyStartFontDataURLLoading):
(WebCore::FontCascadeFonts::glyphDataForVariant):
* platform/graphics/FontSelector.h:

LayoutTests:

Make sure that the requests for both fonts are sent before either of the responses are received.

* fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.
* fast/text/font-load-data-partitioned-alphabet.html: Added.
* platform/mac-wk1/fast/text/font-load-data-partitioned-alphabet-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoHistory state should be updated during client redirects with asynchronous policy...
achristensen@apple.com [Sat, 13 Jan 2018 00:39:34 +0000 (00:39 +0000)]
History state should be updated during client redirects with asynchronous policy decisions
https://bugs.webkit.org/show_bug.cgi?id=181358
<rdar://problem/35547689>

Reviewed by Andy Estes.

Source/WebCore:

When decidePolicyForNavigationAction is responded to asynchronously during a client redirect,
HistoryController::updateForRedirectWithLockedBackForwardList does not update the history because
the document loader has not been marked as a client redirect because the FrameLoader only looks
at its provisional document loader to mark it as a client redirect.  When decidePolicyForNavigationAction
is responded to asynchronously, though, the FrameLoader's provisional document loader has moved to
its policy document loader.  To get both asynchronous and synchronous cases, let's just mark the document
loader as a client redirect whether it's the provisional or policy document loader.

Covered by a new API test.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

Tools:

* TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:
(-[AsyncPolicyDecisionDelegate webView:didFinishNavigation:]):
(-[AsyncPolicyDecisionDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226929 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoMove ExitProfile to UnlinkedCodeBlock so it can be shared amongst CodeBlocks backed...
sbarati@apple.com [Sat, 13 Jan 2018 00:36:37 +0000 (00:36 +0000)]
Move ExitProfile to UnlinkedCodeBlock so it can be shared amongst CodeBlocks backed by the same UnlinkedCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=181545

Reviewed by Michael Saboff.

This patch follows the theme of putting optimization profiling information on
UnlinkedCodeBlock. This allows the unlinked code cache to remember OSR exit data.
This often leads to the first compile of a CodeBlock, backed by an UnlinkedCodeBlock
pulled from the code cache, making better compilation decisions, usually
resulting in fewer exits, and fewer recompilations.

This is a 1% Speedometer progression in my testing.

* bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<CodeBlock>::dumpProfilesForBytecodeOffset):
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):
* bytecode/CallLinkStatus.h:
* bytecode/CodeBlock.h:
(JSC::CodeBlock::addFrequentExitSite): Deleted.
(JSC::CodeBlock::hasExitSite const): Deleted.
(JSC::CodeBlock::exitProfile): Deleted.
* bytecode/DFGExitProfile.cpp:
(JSC::DFG::ExitProfile::add):
(JSC::DFG::QueryableExitProfile::initialize):
* bytecode/DFGExitProfile.h:
(JSC::DFG::ExitProfile::hasExitSite const):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
* bytecode/GetByIdStatus.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):
* bytecode/PutByIdStatus.h:
* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::hasExitSite const):
(JSC::UnlinkedCodeBlock::hasExitSite):
(JSC::UnlinkedCodeBlock::exitProfile):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::hasGlobalExitSite):
(JSC::DFG::Graph::hasExitSite):
* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGOSRExitBase.cpp:
(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226928 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoUse a helper function for checked arithmetic in WebGL validation
dino@apple.com [Sat, 13 Jan 2018 00:30:02 +0000 (00:30 +0000)]
Use a helper function for checked arithmetic in WebGL validation
https://bugs.webkit.org/show_bug.cgi?id=181620
<rdar://problem/36485879>

Reviewed by Eric Carlson.

Eric recommended using a templated helper function to do
a common arithmetic check in WebGL validation.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::checkedAddAndMultiply): New helper.
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):
* html/canvas/WebGLRenderingContextBase.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[iOS] Remove unneeded accessibility-related sandbox rules
bfulgham@apple.com [Sat, 13 Jan 2018 00:28:11 +0000 (00:28 +0000)]
[iOS] Remove unneeded accessibility-related sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=181619
<rdar://problem/36485356>

Reviewed by Eric Carlson.

Remove a number of sandbox exceptions that were in place for accessibility support. These are
not needed in the WebContent process, since Safari (not WebKit) handles the accessibility
interactions.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoPoisonedWriteBarrier
jfbastien@apple.com [Fri, 12 Jan 2018 23:47:58 +0000 (23:47 +0000)]
PoisonedWriteBarrier
https://bugs.webkit.org/show_bug.cgi?id=181599
<rdar://problem/36474351>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Allow poisoning of WriteBarrier objects, and use this for
WebAssembly because it is perf-neutral, at least on WasmBench on
my MBP. If it indeed is perf-neutral according to the bots, start
using it in more performance-sensitive places.

* heap/HandleTypes.h:
* heap/SlotVisitor.h:
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendHidden):
* runtime/JSCJSValue.h:
* runtime/JSCPoison.h:
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::setPrototypeWithoutTransition):
(JSC::Structure::setGlobalObject):
(JSC::Structure::setPreviousID):
* runtime/WriteBarrier.h:
(JSC::WriteBarrierBase::copyFrom):
(JSC::WriteBarrierBase::get const):
(JSC::WriteBarrierBase::operator* const):
(JSC::WriteBarrierBase::operator-> const):
(JSC::WriteBarrierBase::clear):
(JSC::WriteBarrierBase::slot):
(JSC::WriteBarrierBase::operator bool const):
(JSC::WriteBarrierBase::setWithoutWriteBarrier):
(JSC::WriteBarrierBase::unvalidatedGet const):
(JSC::operator==):
* runtime/WriteBarrierInlines.h:
(JSC::Traits>::set):
(JSC::Traits>::setMayBeNull):
(JSC::Traits>::setEarlyValue):
(JSC::DumbValueTraits<Unknown>>::set):
* wasm/WasmInstance.h:
* wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::finishCreation):
(JSC::JSWebAssemblyInstance::visitChildren):
(JSC::JSWebAssemblyInstance::create):
* wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::offsetOfPoisonedCallee):
* wasm/js/JSWebAssemblyMemory.h:
* wasm/js/JSWebAssemblyModule.h:
* wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):
(JSC::JSWebAssemblyTable::clearFunction):
* wasm/js/JSWebAssemblyTable.h:
* wasm/js/WasmToJS.cpp:
(JSC::Wasm::materializeImportJSCell):
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):
* wasm/js/WebAssemblyFunctionBase.h:
* wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):
* wasm/js/WebAssemblyModuleRecord.h:
* wasm/js/WebAssemblyToJSCallee.h:
* wasm/js/WebAssemblyWrapperFunction.h:

Source/WTF:

Supporting changes needed to allow poisoning of WriteBarrier
objects.

* WTF.xcodeproj/project.pbxproj:
* wtf/DumbPtrTraits.h:
* wtf/DumbValueTraits.h: Copied from Source/WTF/wtf/DumbPtrTraits.h.
(WTF::DumbValueTraits::exchange):
(WTF::DumbValueTraits::swap):
(WTF::DumbValueTraits::unwrap):
* wtf/Forward.h:
* wtf/Poisoned.h:
(WTF::ConstExprPoisonedValueTraits::exchange):
(WTF::ConstExprPoisonedValueTraits::swap):
(WTF::ConstExprPoisonedValueTraits::unwrap):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226920 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[Cocoa] CTFontCopyDefaultCascadeListForLanguages() can return nullptr
mmaxfield@apple.com [Fri, 12 Jan 2018 23:35:55 +0000 (23:35 +0000)]
[Cocoa] CTFontCopyDefaultCascadeListForLanguages() can return nullptr
https://bugs.webkit.org/show_bug.cgi?id=181615
<rdar://problem/36334637>

Reviewed by Jon Lee.

Speculative fix. We are getting crash reports saying that this call can return nullptr, and we
don't check for it.

No new tests because I couldn't find the specific input that causes it to return nullptr. (I
tried running this code with every 0, 1, and 2 length locale string, every weight value, and
every italic value, and couldn't get it to crash. I also inspected the code to figure out what
values would cause it to return nullptr, and I couldn't find anything other than if the system
has a totally busted font setup.)

* platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::SystemFontDatabase::computeCascadeList):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226919 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agowebkitpy: Refactor simulator code (Part 4)
jbedard@apple.com [Fri, 12 Jan 2018 23:29:04 +0000 (23:29 +0000)]
webkitpy: Refactor simulator code (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Reviewed by Aakash Jain.

Move new_simulated_device.py to simulated_device.py.

* Scripts/webkitpy/port/ios_simulator.py: Update import statement.
* Scripts/webkitpy/xcode/new_simulated_device.py: Removed.
* Scripts/webkitpy/xcode/new_simulated_device_unittest.py: Removed.
* Scripts/webkitpy/xcode/simulated_device.py: Copied from Tools/Scripts/webkitpy/xcode/new_simulated_device.py.
* Scripts/webkitpy/xcode/simulated_device_unittest.py: Copied from Tools/Scripts/webkitpy/xcode/new_simulated_device_unittest.py.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226918 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months ago[WebGL] Simulated vertexAttrib0 can sometimes cause OUT_OF_MEMORY errors
dino@apple.com [Fri, 12 Jan 2018 23:01:32 +0000 (23:01 +0000)]
[WebGL] Simulated vertexAttrib0 can sometimes cause OUT_OF_MEMORY errors
https://bugs.webkit.org/show_bug.cgi?id=181558
<rdar://problem/36189833>

Reviewed by Eric Carlson.

Source/WebCore:

Very large element indices in the ELEMENT_ARRAY_BUFFER meant that
our simulated vertexAttrib0 buffer might be too large. We need
to check for out-of-memory, but we can also detect some of the issues
earlier in our validation code. Additionally, make sure that we don't
accidentally cast an unsigned to a signed.

Test: fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::validateIndexArrayConservative): Update validation
code to look for overflow, rather than relying on looking for sign changes.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto.
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::drawArrays): Check that we were able to simulate.
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::validateSimulatedVertexAttrib0): Update validation code, and
use GC3Duint, since that's what the indicies are.
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0): Ditto.
(WebCore::WebGLRenderingContextBase::drawArraysInstanced): Check that we were able to simulate.
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
* html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

* fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt: Added.
* fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html: Added.
* platform/mac/TestExpectations: Test crashes on Sierra and earlier.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226916 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoLarge in-place attachment elements cause the document width to expand when inserted
wenson_hsieh@apple.com [Fri, 12 Jan 2018 22:00:52 +0000 (22:00 +0000)]
Large in-place attachment elements cause the document width to expand when inserted
https://bugs.webkit.org/show_bug.cgi?id=181614

Reviewed by Dan Bernstein.

Make in-place images and videos have a max-width of 100%, so that large attachments aren't inserted with full
display size, causing the document and viewport width to expand.

* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226915 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoWeb Inspector: Drop support for iOS 7 targets
commit-queue@webkit.org [Fri, 12 Jan 2018 21:47:07 +0000 (21:47 +0000)]
Web Inspector: Drop support for iOS 7 targets
https://bugs.webkit.org/show_bug.cgi?id=181549
<rdar://problem/36444813>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-01-12
Reviewed by Brian Burg.

* Versions/Inspector-iOS-7.0.json: Removed.
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Removed.
Remove protocol snapshot and generated commands for iOS 7.

* UserInterface/Base/Main.js:
* UserInterface/Controllers/BreakpointPopoverController.js:
(WI.BreakpointPopoverController.prototype._createPopoverContent):
* UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype._setBreakpoint):
* UserInterface/Controllers/SourceMapManager.js:
(WI.SourceMapManager.prototype._loadAndParseSourceMap):
* UserInterface/Models/Instrument.js:
(WI.Instrument.startLegacyTimelineAgent):
* UserInterface/Models/ResourceTimingData.js:
* UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.EventType.displayName):
* UserInterface/Models/SourceMapResource.js:
(WI.SourceMapResource.prototype.requestContentFromBackend):
* UserInterface/Protocol/CSSObserver.js:
(WI.CSSObserver.prototype.regionLayoutUpdated): Deleted.
* UserInterface/Protocol/RemoteObject.js:
(WI.RemoteObject.fromPayload):
Remove code that was only necessary to support iOS 7.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226914 268f45cc-cd09-0410-ab3c-d52691b4dbfc

19 months agoLogged JSON should escape "'s and \'s in strings.
krollin@apple.com [Fri, 12 Jan 2018 21:39:02 +0000 (21:39 +0000)]
Logged JSON should escape "'s and \'s in strings.
https://bugs.webkit.org/show_bug.cgi?id=181608

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests -- no new functionality, just changed logging. The
efficacy of the logging was verified by inspecting its output.

* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

Source/WebKit:

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::logCookieInformation const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226913 268f45cc-cd09-0410-ab3c-d52691b4dbfc