Timeline



May 11, 2017:

11:58 PM Changeset in webkit [216736] by Manuel Rego Casasnovas
  • 12 edits
    6 adds in trunk/LayoutTests

[selectors4] :focus-within tests using shadow DOM don't pass on WK1
https://bugs.webkit.org/show_bug.cgi?id=170935

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

The issue has been fixed modifying the tests upstream:
https://github.com/w3c/web-platform-tests/pull/5594

This patch updates "selectors4" Test Suite with the last changes
from WPT repository.
This means that this issue is fixed and at the same time some new tests
are being imported.
Two of the new imported tests are failing due to bug #47182,
anyway the -expected.txt files with FAIL messages are added.

  • resources/import-expectations.json:
  • web-platform-tests/css/selectors4/focus-display-none-001-expected.txt: Added.
  • web-platform-tests/css/selectors4/focus-display-none-001.html: Added.
  • web-platform-tests/css/selectors4/focus-within-009-expected.txt:
  • web-platform-tests/css/selectors4/focus-within-009.html:
  • web-platform-tests/css/selectors4/focus-within-010-expected.html: Added.
  • web-platform-tests/css/selectors4/focus-within-010.html: Added.
  • web-platform-tests/css/selectors4/focus-within-display-none-001-expected.txt: Added.
  • web-platform-tests/css/selectors4/focus-within-display-none-001.html: Added.
  • web-platform-tests/css/selectors4/focus-within-shadow-001.html:
  • web-platform-tests/css/selectors4/focus-within-shadow-002.html:
  • web-platform-tests/css/selectors4/focus-within-shadow-003.html:
  • web-platform-tests/css/selectors4/focus-within-shadow-004.html:
  • web-platform-tests/css/selectors4/focus-within-shadow-005.html:
  • web-platform-tests/css/selectors4/w3c-import.log:

LayoutTests:

  • platform/mac-wk1/TestExpectations: Remove tests as they're passing now.
11:32 PM Changeset in webkit [216735] by commit-queue@webkit.org
  • 2 edits
    1 copy
    68 adds
    5 deletes in trunk/PerformanceTests

Speedometer: Update the Ember.js TodoMVC to a more recent version
https://bugs.webkit.org/show_bug.cgi?id=171342

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Update the Ember TodoMVC app in Speedometer to latest

  • Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.css: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/assets/vendor.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/crossdomain.xml: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/app.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/router.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/readme.md: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/robots.txt: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.bowerrc: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.editorconfig: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.ember-cli: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.gitignore: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.jshintrc: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.travis.yml: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/.watchmanconfig: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/README.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/app.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-item.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/components/todo-list.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/active.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/application.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/controllers/completed.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/gt.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/helpers/pluralize.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/instance-initializers/global.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/models/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/resolver.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/router.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/routes/application.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/styles/app.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/active.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/application.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/completed.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-item.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/components/todo-list.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/templates/index.hbs: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/bower.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/config/environment.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/ember-cli-build.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/crossdomain.xml: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/public/robots.txt: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/testem.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/.jshintrc: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/destroy-app.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/module-for-acceptance.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/resolver.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/helpers/start-app.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/integration/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/test-helper.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/tests/unit/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/source/vendor/index.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/test.html: Removed.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Added.
11:05 PM Changeset in webkit [216734] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Computing optionalDefArgWidth in CheckSpecial should not consider Scratch roles
https://bugs.webkit.org/show_bug.cgi?id=171962

Reviewed by Filip Pizlo.

The purpose of getting the result width is to get the width of
the result of the arithmetic. It does not care about that the
Check happens to define scratches.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::forEachArg):

  • b3/testb3.cpp:

(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul64):
(JSC::B3::testCheckMulFold):
(JSC::B3::testCheckMulFoldFail):
(JSC::B3::testCheckMulArgumentAliasing64):
(JSC::B3::testCheckMulArgumentAliasing32):
(JSC::B3::testCheckMul64SShr):

11:04 PM Changeset in webkit [216733] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

isValidForm for SimpleAddr should use ptr() instead of tmp()
https://bugs.webkit.org/show_bug.cgi?id=171992

Reviewed by Filip Pizlo.

Arg::tmp() asserts that its kind is Tmp. Inst::isValidForm for
SimpleAddr was using Arg::tmp() instead of ptr() to check
if the address Tmp isGP(). It should be using Arg::ptr() instead
of Arg::tmp() since Arg::ptr() is designed for SimpleAddr.

This patch also fixes an incorrect assertion in the ARM64
macro assembler. We were asserting various atomic ops were
only over 32/64 bit operations. However, the code was properly handling
8/16/32/64 bit ops. I changed the assertion to reflect what is
actually going on.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::ldar):
(JSC::ARM64Assembler::ldxr):
(JSC::ARM64Assembler::ldaxr):
(JSC::ARM64Assembler::stxr):
(JSC::ARM64Assembler::stlr):
(JSC::ARM64Assembler::stlxr):

  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::testLoadAcq42):
(JSC::B3::testStoreRelAddLoadAcq32):
(JSC::B3::testStoreRelAddLoadAcq8):
(JSC::B3::testStoreRelAddFenceLoadAcq8):
(JSC::B3::testStoreRelAddLoadAcq16):
(JSC::B3::testStoreRelAddLoadAcq64):
(JSC::B3::testAtomicWeakCAS):
(JSC::B3::testAtomicStrongCAS):
(JSC::B3::testAtomicXchg):

10:50 PM Changeset in webkit [216732] by commit-queue@webkit.org
  • 1 edit
    38 adds in trunk/PerformanceTests

Speedometer: Add a React + Redux TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171329

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds React and Redux TodoMVC implementation for Speedometer

  • Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.d43d2909.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.946269ff.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/yarn.lock: Added.
10:21 PM Changeset in webkit [216731] by Yusuke Suzuki
  • 8 edits
    1 copy
    1 move
    1 add in trunk/Source/WTF

[Win] Implement memoryFootprint for Windows
https://bugs.webkit.org/show_bug.cgi?id=171693

Reviewed by Alex Christensen.

This patch implements memoryFootprint for Windows. In Windows, we calculate the size
of private working set. This can be done by enumerating private pages in working set.

And we also split MemoryFootprint.cpp to cocoa, linux, and win versions.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/MallocPtr.h:

(WTF::MallocPtr::operator*):
(WTF::MallocPtr::operator->):

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformMac.cmake:
  • wtf/PlatformWin.cmake:
  • wtf/cocoa/MemoryFootprintCocoa.cpp: Copied from Source/WTF/wtf/MemoryFootprint.cpp.

(WTF::memoryFootprint):

  • wtf/linux/MemoryFootprintLinux.cpp: Renamed from Source/WTF/wtf/MemoryFootprint.cpp.

(WTF::forEachLine):
(WTF::memoryFootprint):

  • wtf/win/MemoryFootprintWin.cpp: Added.

(WTF::memoryFootprint):

10:02 PM Changeset in webkit [216730] by Chris Dumez
  • 12 edits in trunk/Source

Drop remaining uses of PassRefPtr in WebCore
https://bugs.webkit.org/show_bug.cgi?id=172013

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::createRootObject):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptControllerMac.mm:
  • bridge/objc/WebScriptObject.mm:

(WebCore::createJSWrapper):
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject _setOriginRootObject:andRootObject:]):
(-[WebScriptObject _initWithJSObject:originRootObject:rootObject:]):

  • bridge/objc/WebScriptObjectPrivate.h:

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.h:
  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
(WebKit::NetscapePluginInstanceProxy::createBindingsInstance):

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(-[WebHostedNetscapePluginView createPluginBindingsInstance:]):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::bindingInstance):

9:32 PM Changeset in webkit [216729] by matthew_hanson@apple.com
  • 7 edits in branches/safari-604.1.21-branch/Source

Versioning.

8:55 PM Changeset in webkit [216728] by Alan Bujtas
  • 8 edits
    2 adds in trunk

RenderImageResource::hasImage is redundant and RenderImageResourceStyleImage's override is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=172010
<rdar://problem/31086735>

Reviewed by Simon Fraser.

Source/WebCore:

RenderImageResourceStyleImage::hasImage() always returns true even when ::cachedImage()
returns nullptr (e.g. image is pending).
Remove it and use cachedImage() instead.

Test: fast/images/missing-content-image-crash.html

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::didAttachRenderers):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
(WebCore::RenderImage::isShowingMissingOrImageError):
(WebCore::RenderImage::hasNonBitmapImage):
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
(WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):

  • rendering/RenderImageResource.h:

(WebCore::RenderImageResource::cachedImage):
(WebCore::RenderImageResource::hasImage): Deleted.

  • rendering/RenderImageResourceStyleImage.h:
  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::paint):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::hasSingleSecurityOrigin):
(WebCore::SVGImageElement::didAttachRenderers):

LayoutTests:

  • fast/images/missing-content-image-crash-expected.txt: Added.
  • fast/images/missing-content-image-crash.html: Added.
8:41 PM Changeset in webkit [216727] by commit-queue@webkit.org
  • 1 edit
    31 adds in trunk/PerformanceTests

Speedometer: Add an ES2015 (Babel + Webpack) TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171452

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds ES2015 Babel + Webpack TodoMVC implem

  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.73bcc5d3c1d07180f0e3.js.map: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.112bf70a7f3deebf1f93.js.map: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.efaa3e0e20077c8e7471.js.map: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.73bcc5d3c1d07180f0e3.css.map: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.efaa3e0e20077c8e7471.css.map: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Added.
8:18 PM Changeset in webkit [216726] by Alan Bujtas
  • 7 edits
    2 adds in trunk

AX: Defer text changes until after the tree is clean if needed.
https://bugs.webkit.org/show_bug.cgi?id=171546
<rdar://problem/31934942>

Reviewed by Simon Fraser.

Source/WebCore:

While updating an accessibility object state, we might
trigger unintentional style updates. This style update could
end up destroying renderes that are still referenced by functions
on the callstack.
To avoid that, defer such changes and let AXObjectCache operate on a clean tree.

Test: accessibility/crash-when-render-tree-is-not-clean.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::labelChanged):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::deferRecomputeIsIgnored):
(WebCore::AXObjectCache::deferTextChangedIfNeeded):
(WebCore::AXObjectCache::recomputeDeferredIsIgnored): Deleted.
(WebCore::AXObjectCache::deferTextChanged): Deleted.

  • accessibility/AXObjectCache.h: Decouple different type of changes.

(WebCore::AXObjectCache::deferRecomputeIsIgnored):
(WebCore::AXObjectCache::deferTextChangedIfNeeded):
(WebCore::AXObjectCache::recomputeDeferredIsIgnored): Deleted.
(WebCore::AXObjectCache::deferTextChanged): Deleted.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::deleteLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::createAndAppendRootInlineBox):

  • rendering/RenderText.cpp:

(WebCore::RenderText::setText):

LayoutTests:

  • accessibility/crash-when-render-tree-is-not-clean-expected.txt: Added.
  • accessibility/crash-when-render-tree-is-not-clean.html: Added.
8:16 PM Changeset in webkit [216725] by commit-queue@webkit.org
  • 7 edits
    5 moves
    2 adds in trunk

Tools:
Allow WPT server to serve specific WebKit test
https://bugs.webkit.org/show_bug.cgi?id=171479

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adding a new mount point to WPT server.
It points to LayoutTests/http/wpt folder and is triggered on "/WebKit" urls.

Updating the webkitpy infrastructure to launch WPT server and do test url mapping for LayoutTests/wpt tests.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.init):
(Manager._is_http_test):
(Manager._needs_web_platform_test):
(Manager._run_tests):
(Manager._is_web_platform_test): Deleted.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:

(build_routes):
(main):

  • Scripts/webkitpy/port/driver.py:

(Driver):
(Driver.is_webkit_specific_web_platform_test):
(Driver.test_to_uri):
(Driver._command_from_driver_input):

LayoutTests:
Allow WPT server to serve specific WebKit tests
https://bugs.webkit.org/show_bug.cgi?id=171479

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Moving tests to ensure they are correctly runned.

  • http/wpt/fetch/fetch-as-blob-expected.txt: Renamed from LayoutTests/http/tests/fetch/fetch-as-blob-expected.txt.
  • http/wpt/fetch/fetch-as-blob-worker-expected.txt: Renamed from LayoutTests/http/tests/fetch/fetch-as-blob-worker-expected.txt.
  • http/wpt/fetch/fetch-as-blob-worker.html: Renamed from LayoutTests/http/tests/fetch/fetch-as-blob-worker.html.
  • http/wpt/fetch/fetch-as-blob.html: Renamed from LayoutTests/http/tests/fetch/fetch-as-blob.html.
  • http/wpt/fetch/fetch-as-blob.js: Renamed from LayoutTests/http/tests/fetch/fetch-as-blob.js.

(promise_test):

8:14 PM Changeset in webkit [216724] by Chris Dumez
  • 23 edits in trunk/Source/WebCore

Drop remaining uses of PassRefPtr under platform/
https://bugs.webkit.org/show_bug.cgi?id=172007

Reviewed by Geoffrey Garen.

  • platform/graphics/wpe/ImageWPE.cpp:

(WebCore::Image::loadPlatformResource):

  • platform/ios/LegacyTileGrid.h:
  • platform/ios/LegacyTileGrid.mm:

(WebCore::LegacyTileGrid::tileForIndex):
(WebCore::LegacyTileGrid::tileForPoint):

  • platform/ios/LegacyTileGridTile.h:

(WebCore::LegacyTileGridTile::create):

  • platform/mediastream/RTCIceCandidateDescriptor.cpp:

(WebCore::RTCIceCandidateDescriptor::create):

  • platform/mediastream/RTCIceCandidateDescriptor.h:
  • platform/mediastream/RTCPeerConnectionHandlerClient.h:
  • platform/mediastream/RTCSessionDescriptionDescriptor.cpp:

(WebCore::RTCSessionDescriptionDescriptor::create):

  • platform/mediastream/RTCSessionDescriptionDescriptor.h:
  • platform/mediastream/RTCSessionDescriptionRequest.h:

(WebCore::RTCSessionDescriptionRequest::extraData):
(WebCore::RTCSessionDescriptionRequest::setExtraData):

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:

(WebCore::RealtimeMediaSourceCenterOwr::firstSource):

  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
  • platform/mock/DeviceOrientationClientMock.cpp:

(WebCore::DeviceOrientationClientMock::setOrientation):

  • platform/mock/DeviceOrientationClientMock.h:
  • platform/mock/GeolocationClientMock.cpp:

(WebCore::GeolocationClientMock::setPosition):

  • platform/mock/GeolocationClientMock.h:
  • platform/mock/RTCNotifiersMock.cpp:

(WebCore::SessionRequestNotifier::SessionRequestNotifier):
(WebCore::SessionRequestNotifier::fire):
(WebCore::VoidRequestNotifier::VoidRequestNotifier):

  • platform/mock/RTCNotifiersMock.h:
  • platform/mock/TimerEventBasedMock.h:

(WebCore::TimerEventBasedMock::removeEvent):
(WebCore::TimerEvent::TimerEvent):
(WebCore::TimerEvent::timerFired):

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockSourceBufferPrivateHasAudio):
(WebCore::MockSourceBufferPrivateHasVideo):

  • platform/wpe/RenderThemeWPE.h:
8:00 PM Changeset in webkit [216723] by rniwa@webkit.org
  • 1 edit
    22 adds in trunk/PerformanceTests

Speedometer: Add an Inferno TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171411

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds a Inferno implem of TodoMVC to Speedometer

  • Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Added.
7:57 PM Changeset in webkit [216722] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE] Stop using PassRefPtr in platform/graphics/wpe
https://bugs.webkit.org/show_bug.cgi?id=171977

Unreviewed build fix after r216702.

  • platform/graphics/wpe/ImageWPE.cpp:

(WebCore::Image::loadPlatformResource):

7:55 PM Changeset in webkit [216721] by rniwa@webkit.org
  • 1 edit
    50 adds in trunk/PerformanceTests

Speedometer: Add an Angular 2 (4.x) TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171343

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Add a TodoMVC Angular 2 (4.x) implem for the benchmark

  • Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/README.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.b342d102ba4a53bf2002.bundle.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/main.779eb2f1ddbe23ac61c7.bundle.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.2d45a4c73c85e24fe474.bundle.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.b4be818cb6d8028f9192.bundle.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.e2e-spec.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/e2e/app.po.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/e2e/tsconfig.e2e.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/assets/.gitkeep: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Added.
7:54 PM Changeset in webkit [216720] by rniwa@webkit.org
  • 1 edit
    28 adds in trunk/PerformanceTests

Speedometer: Add a Vue.js TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171325

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds a Vue.js TodoMVC implementation to Speedometer

  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.677b45842d9f8b96e5b23c18969233b7.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.b0e835874bc8949670d1.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.84b2b4fceb74ab1f91f3.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.a52517c5aa98e7fbea2e.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Added.
7:53 PM Changeset in webkit [216719] by rniwa@webkit.org
  • 8 edits
    8 adds
    2 deletes in trunk/PerformanceTests

Speedometer: Update the vanilla JavaScript TodoMVC implem to a more recent version
https://bugs.webkit.org/show_bug.cgi?id=171306

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Update vanilla JS TodoMVC implementation to the latest.

  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js:
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Added.
7:52 PM Changeset in webkit [216718] by rniwa@webkit.org
  • 1 edit
    22 adds in trunk/PerformanceTests

Speedometer: Add an ES2015 TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171448

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds ES2015 TodoMVC implementation for Speedometer

  • Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Added.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Added.
7:50 PM Changeset in webkit [216717] by rniwa@webkit.org
  • 1 edit
    16 adds in trunk/PerformanceTests

Speedometer: Add an Elm TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171464

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Speedometer: Add Elm TodoMVC implementation

  • Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Added.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Added.
7:46 PM Changeset in webkit [216716] by rniwa@webkit.org
  • 8 edits
    15 adds
    2 deletes in trunk/PerformanceTests

Speedometer: Update the Backbone.js implementation to a more recent library version
https://bugs.webkit.org/show_bug.cgi?id=171305

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Updates the Backbone.js TodoMVC implementation to latest

  • Speedometer/resources/todomvc/architecture-examples/backbone/bower.json: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/backbone/index.html:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js:
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Added.
7:45 PM Changeset in webkit [216715] by rniwa@webkit.org
  • 1 edit
    22 adds in trunk/PerformanceTests

Speedometer: Add a Preact.js TodoMVC implementation
https://bugs.webkit.org/show_bug.cgi?id=171323

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Adds Preact.js TodoMVC implementation to Speedometer

  • Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/README.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Added.
7:13 PM Changeset in webkit [216714] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-604.1.21.1

Tag Safari-604.1.21.1.

5:55 PM Changeset in webkit [216713] by commit-queue@webkit.org
  • 4 edits
    17 adds
    2 deletes in trunk/PerformanceTests

Speedometer: Update the jQuery implementation to a more recent library version
https://bugs.webkit.org/show_bug.cgi?id=171308

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Updates the jQuery implementation of TodoMVC to a more recent version

  • Speedometer/resources/todomvc/architecture-examples/jquery/bower.json: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
  • Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js:
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/jquery/readme.md:
5:52 PM Changeset in webkit [216712] by commit-queue@webkit.org
  • 23 edits
    3 adds in trunk

[iOS] Unset active media capture source when stopped capturing
https://bugs.webkit.org/show_bug.cgi?id=171815
<rdar://problem/32117885>

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-11
Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/ios/mediastream/getUserMedia-single-capture.html

Introducing SingleSourceFactory template class to be used by capture factories for iOS.
This class ensures that only one source is active at a time.
Update all capture sources accordingly.
Ensure sources are no longer considered as active sources when being destroyed.
Add support for mock sources and introducing m_isProducingData for them as well.

Update WebRTC outgoing source classes to handle the case of replaced track and resetting the enabled/mute
state according the new source.

Update the way we handle timestamps for audio data. We now consider that we read/write as a flow.
This allows smooth audio track replacing.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::~AVAudioCaptureSource):
(WebCore::AVAudioCaptureSourceFactory::setActiveSource): Deleted.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSourceFactory::setActiveSource): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSourceFactory::setActiveSource): Deleted.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::setSource):
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSource::pullAudioData):

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::setSource):
(WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged):
(WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::mockAudioCaptureSourceFactory):
(WebCore::MockRealtimeAudioSource::factory):
(WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource):
(WebCore::MockRealtimeAudioSource::startProducingData):
(WebCore::MockRealtimeAudioSource::stopProducingData):

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::mockVideoCaptureSourceFactory):
(WebCore::MockRealtimeVideoSource::factory):
(WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource):
(WebCore::MockRealtimeVideoSource::startProducingData):
(WebCore::MockRealtimeVideoSource::stopProducingData):

  • platform/mock/MockRealtimeVideoSource.h:

(WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): Deleted.

LayoutTests:

Improving the existing tests for better reliability and debugability.
Updating tests to use less webkitAudioContext.

  • platform/ios/mediastream/getUserMedia-single-capture-expected.txt: Added.
  • platform/ios/mediastream/getUserMedia-single-capture.html: Added.
  • webrtc/audio-peer-connection-webaudio.html:
  • webrtc/audio-replace-track-expected.txt:
  • webrtc/audio-replace-track.html:
  • webrtc/peer-connection-audio-mute.html:
  • webrtc/peer-connection-audio-mute2.html:
  • webrtc/peer-connection-remote-audio-mute.html:
  • webrtc/peer-connection-remote-audio-mute2.html:
  • webrtc/routines.js:
  • webrtc/video-replace-track-expected.txt:
  • webrtc/video-replace-track.html:
5:49 PM Changeset in webkit [216711] by beidson@apple.com
  • 7 edits in trunk

[WKWebsiteDataStore removeDataOfTypes:...] doesn't work for IndexedDB if the data store has a custom IDB path.
<rdar://problem/30612463> and https://bugs.webkit.org/show_bug.cgi?id=171994

Reviewed by Andy Estes.
Informal review by Maureen Daum.

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::deleteWebsiteData): Instead of accessing the m_idbServers set directly, make

the method call that creates the server on demand.

(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): Ditto.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureDatabaseProcessAndWebsiteDataStore): Not only create the DatabaseProcess if necessary,

but also notify it about the passed-in WebsiteDataStore.

(WebKit::WebProcessPool::getDatabaseProcessConnection):
(WebKit::WebProcessPool::ensureDatabaseProcess): Deleted.

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToDatabaseProcessRelaunchingIfNecessary):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::databaseProcessParameters):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

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

Modern Media Controls shouldn't be an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=172004
<rdar://problem/32146522>

Reviewed by Simon Fraser.

This is either always on or always off, so shouldn't
show up in an Experimental Features menu.

  • Shared/WebPreferencesDefinitions.h: Move ModernMediaControlsEnabled

to a normal preference.

5:43 PM Changeset in webkit [216709] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build

  • platform/spi/mac/NSSpellCheckerSPI.h:
5:15 PM Changeset in webkit [216708] by commit-queue@webkit.org
  • 1 edit
    23 copies
    1 move
    50 adds
    9 deletes in trunk/PerformanceTests

Speedometer: Update the Flight.js implementation to a more recent library version
https://bugs.webkit.org/show_bug.cgi?id=171471

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Speedometer: Update FlightJS TodoMVC implementation

  • Speedometer/resources/todomvc/dependency-examples/flight/.gitignore: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/.jshintrc: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/app/js/main.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/app/js/store.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower.json: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/stats.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/data/todos.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/app.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/js/utils.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/stats.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/app/templates/todo.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/index.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Added.
  • Speedometer/resources/todomvc/dependency-examples/flight/karma.conf.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/package.json: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/readme.md: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/.jshintrc: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Removed.
  • Speedometer/resources/todomvc/dependency-examples/flight/test/test-main.js: Removed.
5:13 PM Changeset in webkit [216707] by Matt Lewis
  • 10 edits in trunk

Unreviewed, rolling out r216677.

Patch caused layout test crashes.

Reverted changeset:

"WorkerThread::stop() should call
scheduleExecutionTermination() last."
https://bugs.webkit.org/show_bug.cgi?id=171775
http://trac.webkit.org/changeset/216677

5:12 PM Changeset in webkit [216706] by commit-queue@webkit.org
  • 8 edits
    18 adds
    4 deletes in trunk/PerformanceTests

Speedometer: Update the AngularJS implementation to a more recent library version
https://bugs.webkit.org/show_bug.cgi?id=171307

Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-11
Reviewed by Ryosuke Niwa.

Updates the AngularJS implementation of TodoMVC to 1.4.x

  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower.json: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/index.html:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Added.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
  • Speedometer/resources/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/test/package.json: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Added.
5:04 PM Changeset in webkit [216705] by commit-queue@webkit.org
  • 11 edits in trunk

[CMake] Add HAVE check for regex.h
https://bugs.webkit.org/show_bug.cgi?id=171950

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-11
Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/JavaScriptCore:

  • runtime/ConfigFile.cpp:

(JSC::ConfigFile::parse):

Source/ThirdParty:

  • gtest/include/gtest/internal/gtest-port.h:

Source/WebCore:

No new tests. No change in behavior.

  • WebCorePrefix.h:
  • testing/js/WebCoreTestSupportPrefix.h:

Source/WTF:

  • wtf/Platform.h:
4:55 PM Changeset in webkit [216704] by timothy_horton@apple.com
  • 8 edits in trunk/Source

Mail spins launching spell checker when typing
https://bugs.webkit.org/show_bug.cgi?id=171986
<rdar://problem/26305327>

Reviewed by Beth Dakin.

  • platform/spi/mac/NSSpellCheckerSPI.h:
  • WebView/WebView.mm:

(-[WebView setEditable:]):
Asynchronously pre-warm the spell checker when a WebView becomes editable.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setEditable:]):

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

(WebKit::WebViewImpl::didBecomeEditable):
(WebKit::WebViewImpl::startObservingFontPanel): Deleted.
Asynchronously pre-warm the spell checker when a WKWebView becomes editable.

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

Remove the code for old syncing script configuration in BuildbotSyncer
https://bugs.webkit.org/show_bug.cgi?id=171963

Reviewed by Chris Dumez.

Removed the code for specifying {"root": ~}, {"rootOptions": [~]}, and {"rootsExcluding": [~]} in buildbot
properties in the syncing script's configurations since they are no longer used after r215061.

Also removed the support for using "arguments" as an alias to "properties", and updated the tests accordingly.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer._parseRepositoryGroup): Removed the unused code.
(BuildbotSyncer._validateAndMergeConfig): Just allow string values in properties.
(BuildbotSyncer._validateAndMergeProperties): Deleted.

  • unit-tests/buildbot-syncer-tests.js:

(sampleiOSConfig): Use "properties" instead of "arguments" to specify the buildbot properties.
(sampleiOSConfigWithExpansions): Ditto.

4:40 PM Changeset in webkit [216702] by Chris Dumez
  • 121 edits in trunk/Source

Stop using PassRefPtr in platform/graphics
https://bugs.webkit.org/show_bug.cgi?id=171977

Reviewed by Alex Christensen.

Source/WebCore:

Stop using PassRefPtr in platform/graphics.

  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::image):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::brokenImage):
(WebCore::CachedImage::image):
(WebCore::CachedImage::imageForRenderer):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::addImageToResources):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::paintPanScrollIcon):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawCrossfade):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::nullImage):

  • platform/graphics/Image.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::createResourceLoader):

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

(WebCore::Pattern::create):
(WebCore::Pattern::Pattern):

  • platform/graphics/Pattern.h:
  • platform/graphics/PlatformTextTrack.h:

(WebCore::PlatformTextTrack::create):
(WebCore::PlatformTextTrack::createOutOfBand):
(WebCore::PlatformTextTrack::captionMenuOffItem):
(WebCore::PlatformTextTrack::captionMenuAutomaticItem):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:

(WebCore::InbandMetadataTextTrackPrivateAVF::create):
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings):

  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionOptionAVFObjC::create):
(WebCore::MediaSelectionGroupAVFObjC::create):
(WebCore::MediaSelectionGroupAVFObjC::updateOptions):

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

(WebCore::InbandTextTrackPrivateAVCF::create):

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:

(WebCore::InbandTextTrackPrivateLegacyAVCF::create):

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

(WebCore::WebCoreAVCFResourceLoader::create):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage):

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

(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):

  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:

(WebCore::InbandTextTrackPrivateAVFObjC::create):

  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:

(WebCore::InbandTextTrackPrivateLegacyAVFObjC::create):

  • platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:

(WebCore::OutOfBandTextTrackPrivateAVF::create):

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

(WebCore::WebCoreAVFResourceLoader::create):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createPlatformCALayer):
(WebCore::GraphicsLayerCA::createPlatformCAAnimation):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::replicatedLayerRoot):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createKeyframeAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):

  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(PlatformCAAnimationCocoa::create):
(PlatformCAAnimationCocoa::copy):

  • platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::create):
(WebCore::CACFLayerTreeHost::addPendingAnimatedLayer):

  • platform/graphics/ca/win/CACFLayerTreeHost.h:
  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(PlatformCAAnimationWin::create):
(PlatformCAAnimationWin::copy):

  • platform/graphics/ca/win/PlatformCAAnimationWin.h:
  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::addAnimationForKey):

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:

(WebCore::WKCACFViewLayerTreeHost::create):

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern):

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::clipForPatternFilling):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern):

  • platform/graphics/filters/FEDiffuseLighting.cpp:

(WebCore::FEDiffuseLighting::FEDiffuseLighting):
(WebCore::FEDiffuseLighting::create):
(WebCore::FEDiffuseLighting::lightSource):

  • platform/graphics/filters/FEDiffuseLighting.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::FELighting):
(WebCore::FELighting::drawLighting):

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FESpecularLighting.cpp:

(WebCore::FESpecularLighting::FESpecularLighting):
(WebCore::FESpecularLighting::create):
(WebCore::FESpecularLighting::lightSource):

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

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::ReferenceFilterOperation::setFilterEffect):
(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::BlurFilterOperation::blend):
(WebCore::DropShadowFilterOperation::blend):

  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::blend):
(WebCore::PassthroughFilterOperation::create):
(WebCore::ReferenceFilterOperation::create):

  • platform/graphics/gpu/Texture.cpp:

(WebCore::Texture::create):

  • platform/graphics/gpu/Texture.h:
  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/ImageGStreamer.h:

(WebCore::ImageGStreamer::createImage):
(WebCore::ImageGStreamer::image):

  • platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:

(WebCore::InbandMetadataTextTrackPrivateGStreamer::create):
(WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:

(WebCore::InbandTextTrackPrivateGStreamer::create):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::enqueueSample):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.h:
  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::loadImageFromGResource):
(WebCore::loadResourceSharedBuffer):
(WebCore::loadMissingImageIconFromTheme):
(WebCore::Image::loadPlatformResource):

  • platform/graphics/harfbuzz/HarfBuzzFace.cpp:

(WebCore::FaceCacheEntry::create):

  • platform/graphics/harfbuzz/HarfBuzzFace.h:

(WebCore::HarfBuzzFace::create):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::Image::loadPlatformResource):

  • platform/graphics/opentype/OpenTypeMathData.h:

(WebCore::OpenTypeMathData::create):

  • platform/graphics/texmap/BitmapTexture.h:

(WebCore::BitmapTexture::applyFilters):

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::applyFilters):

  • platform/graphics/texmap/BitmapTextureGL.h:

(WebCore::BitmapTextureGL::FilterInfo::FilterInfo):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):

  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::TextureMapper::acquireTextureFromPool):

  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::createTexture):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::setBackingStore):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:

(WebCore::TextureMapperTiledBackingStore::create):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::syncImageBacking):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:

(WebCore::CoordinatedImageBacking::create):
(WebCore::CoordinatedImageBacking::CoordinatedImageBacking):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
  • platform/graphics/win/ImageWin.cpp:

(WebCore::Image::loadPlatformResource):

  • platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:

(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):

  • platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
  • platform/graphics/win/PatternDirect2D.cpp:

(WebCore::Pattern::createPlatformPattern):

  • platform/graphics/win/SharedGDIObject.h:

(WebCore::SharedGDIObject::create):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):

  • rendering/RenderImageResource.cpp:

(WebCore::RenderImageResource::image):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::drawPlatformResizerImage):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute):
(WebCore::SVGFEDiffuseLightingElement::build):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::setFilterEffectAttribute):
(WebCore::SVGFESpecularLightingElement::build):

  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::imageForRenderer):

Source/WebKit/win:

Build fix.

  • FullscreenVideoController.cpp:

(FullscreenVideoController::enterFullscreen):

  • WebKitDLL.cpp:

(loadResourceIntoBuffer):

Source/WebKit2:

Build fix.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
(WebKit::CoordinatedGraphicsScene::removeBackingStoreIfNeeded):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Cursor>::decode):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::createImageBackingIfNeeded):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:

(WebKit::GraphicsLayerCARemote::createPlatformCALayer):
(WebKit::GraphicsLayerCARemote::createPlatformCAAnimation):

  • WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::copy):

4:34 PM Changeset in webkit [216701] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r216217): lldb_webkit.py no longer prints out a WTFString, StringImpl needs to handle StringImplShape change
https://bugs.webkit.org/show_bug.cgi?id=171989

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-11
Reviewed by Brian Burg.

  • lldb/lldb_webkit.py:

(WTFStringImplProvider.get_data8):
(WTFStringImplProvider.get_data16):
m_data8 and m_data16 are now part of the superclass StringImplShape
instead of directly in StringImpl. So first get the shape by getting
index 0, and the data properties are the same offset within that.

4:33 PM Changeset in webkit [216700] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Annotate Ref::ptr() with RETURNS_NONNULL
https://bugs.webkit.org/show_bug.cgi?id=171996

Reviewed by Andreas Kling.

Annotate Ref::ptr() with RETURNS_NONNULL as it can never return null.

  • wtf/Ref.h:

(WTF::Ref::ptr): Deleted.

4:05 PM Changeset in webkit [216699] by fpizlo@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

Callers of JSString::unsafeView() should check exceptions
https://bugs.webkit.org/show_bug.cgi?id=171995

Reviewed by Mark Lam.

unsafeView() can throw OOME. So, callers of unsafeView() should check for exceptions before trying
to access the view.

Also, I made the functions surrounding unsafeView() take ExecState* not ExecState&, to comply with
the rest of JSC.

  • dfg/DFGOperations.cpp:
  • jsc.cpp:

(printInternal):
(functionDebug):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncJoin):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorFuncCompare):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncJoin):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncParseFloat):

  • runtime/JSONObject.cpp:

(JSC::JSONProtoFuncParse):

  • runtime/JSString.cpp:

(JSC::JSString::getPrimitiveNumber):
(JSC::JSString::toNumber):

  • runtime/JSString.h:

(JSC::JSString::getIndex):
(JSC::JSRopeString::unsafeView):
(JSC::JSRopeString::viewWithUnderlyingString):
(JSC::JSString::unsafeView):
(JSC::JSString::viewWithUnderlyingString):

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::appendWithoutSideEffects):
(JSC::JSStringJoiner::append):

  • runtime/ParseInt.h:

(JSC::toStringView):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncRepeatCharacter):
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncNormalize):

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

Data loss when saving a PDF form where only radio buttons/checkboxes were modified
https://bugs.webkit.org/show_bug.cgi?id=171991
<rdar://problem/32115945>

Reviewed by Andy Estes.

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

(-[WKPDFLayerControllerDelegate didChangeAnnotationState]):
Mark the PDF as dirty (so we re-encode it when asked to save) if annotations
that only PDFKit knows about change.

3:31 PM Changeset in webkit [216697] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168937

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:45 PM Changeset in webkit [216696] by Joseph Pecoraro
  • 29 edits
    21 deletes in trunk

Remove Vibration API
https://bugs.webkit.org/show_bug.cgi?id=171766

Rubber-stamped by Alexey Proskuryakov.

.:

  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

  • features.json:

Mark the Vibration API as removed.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • Modules/vibration/NavigatorVibration.cpp: Removed.
  • Modules/vibration/NavigatorVibration.h: Removed.
  • Modules/vibration/NavigatorVibration.idl: Removed.
  • Modules/vibration/Vibration.cpp: Removed.
  • Modules/vibration/Vibration.h: Removed.
  • Modules/vibration/VibrationClient.h: Removed.
  • testing/Internals.cpp:

(WebCore::Internals::isVibrating): Deleted.

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

Source/WebKit2:

  • CMakeLists.txt:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageGetVibration): Deleted.

  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/C/WKVibration.cpp: Removed.
  • UIProcess/API/C/WKVibration.h: Removed.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_weakPtrFactory):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::vibration): Deleted.

  • UIProcess/WebVibrationProvider.cpp: Removed.
  • UIProcess/WebVibrationProvider.h: Removed.
  • UIProcess/WebVibrationProxy.cpp: Removed.
  • UIProcess/WebVibrationProxy.h: Removed.
  • UIProcess/WebVibrationProxy.messages.in: Removed.
  • WebProcess/WebCoreSupport/WebVibrationClient.cpp: Removed.
  • WebProcess/WebCoreSupport/WebVibrationClient.h: Removed.
  • WebProcess/WebPage/WebPage.cpp:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • vibration/cancelVibration-after-pagevisibility-changed-to-hidden-expected.txt: Removed.
  • vibration/cancelVibration-after-pagevisibility-changed-to-hidden.html: Removed.
  • vibration/cancelVibration-during-pattern-vibrating-expected.txt: Removed.
  • vibration/cancelVibration-during-pattern-vibrating.html: Removed.
  • vibration/navigator-vibration-expected.txt: Removed.
  • vibration/navigator-vibration.html: Removed.
2:39 PM Changeset in webkit [216695] by dino@apple.com
  • 18 edits
    2 adds
    1 delete in trunk

WebGLRenderingContext should implement WebGLRenderingContextBase
https://bugs.webkit.org/show_bug.cgi?id=171961
<rdar://problem/32124920>

Reviewed by Sam Weinig.

Source/WebCore:

WebGLRenderingContext and WebGL2RenderingContext are both
defined to "implement" WebGLRenderingContextBase. However, we
were doing it via inheritance, which meant that some things
were not visible on the WebGLRenderingContext prototype.

Test: fast/canvas/webgl/constants-on-interface.html

  • WebCore.xcodeproj/project.pbxproj: Move the Custom.cpp files

out of the GC-only area now they have real content.

  • bindings/js/JSDocumentCustom.cpp: Handle the fact that we

don't use the base class from the bindings, so we need to
translate WebGL1 and WebGL2 contexts into the right JS classes.
(WebCore::JSDocument::getCSSCanvasContext):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):

  • bindings/js/JSWebGL2RenderingContextCustom.cpp: Implement the

custom methods. In this case, we don't yet expose any
extensions for WebGL 2.
(WebCore::toJS):
(WebCore::JSWebGL2RenderingContext::getExtension):

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp: Removed.
  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::toJS):
(WebCore::JSWebGLRenderingContext::getExtension):

  • html/canvas/WebGL2RenderingContext.h: Make some things public.
  • html/canvas/WebGLRenderingContext.h: Ditto.
  • html/canvas/WebGL2RenderingContext.idl: Use implements.
  • html/canvas/WebGLRenderingContext.idl: Ditto.
  • testing/Internals.cpp: This now takes a WebGLRenderingContext.

(WebCore::Internals::simulateWebGLContextChanged):

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

LayoutTests:

New test to make sure constants from WebGLRenderingContextBase are
visible on the WebGLRenderingContext prototype.

Also, fix up some existing tests that were expecting to see
instances of WebGLRenderingContextBase.

  • fast/canvas/webgl/constants-on-interface-expected.txt: Added.
  • fast/canvas/webgl/constants-on-interface.html: Added.
  • fast/canvas/webgl/gl-object-get-calls-expected.txt:
  • fast/canvas/webgl/null-object-behaviour-expected.txt:
  • fast/canvas/webgl/texImageTest-expected.txt:
1:58 PM Changeset in webkit [216694] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Fixed typo errors in TestExpectations.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:55 PM Changeset in webkit [216693] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Fixed typo errors in TestExpectations.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:52 PM Changeset in webkit [216692] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: "Elements > Styles - Rules" rule and media query headers should be left aligned
https://bugs.webkit.org/show_bug.cgi?id=171954
<rdar://problem/31961976>

Reviewed by Matt Baker.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section > .header):
(.style-declaration-section.locked > .header > .locked-icon):
(.style-declaration-section > .header > .icon):
(.style-declaration-section > .header > textarea):
(.style-declaration-section.invalid-selector > .header > .icon):
(body[dir=ltr] .style-declaration-section > .header): Deleted.
(body[dir=rtl] .style-declaration-section > .header): Deleted.
(body[dir=ltr] .style-declaration-section.locked > .header > .locked-icon): Deleted.
(body[dir=rtl] .style-declaration-section.locked > .header > .locked-icon): Deleted.
(body[dir=ltr] .style-declaration-section > .header > .icon): Deleted.
(body[dir=rtl] .style-declaration-section > .header > .icon): Deleted.
(body[dir=ltr] .style-declaration-section > .header > textarea): Deleted.
(body[dir=rtl] .style-declaration-section > .header > textarea): Deleted.
Remove RTL rules.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
Set dir="ltr" so selector's textareas work correctly.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules):

1:30 PM Changeset in webkit [216691] by aestes@apple.com
  • 5 edits in trunk/Source

Fix a spelling mistake in ApplePayErrorCode
https://bugs.webkit.org/show_bug.cgi?id=171981
<rdar://problem/32136567>

Reviewed by Beth Dakin.

Source/WebCore:

  • Modules/applepay/ApplePayError.idl:
  • Modules/applepay/PaymentRequest.h:

Source/WebKit2:

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentErrorCode):
(WebKit::toPKPaymentAuthorizationStatus):

1:04 PM Changeset in webkit [216690] by wilander@apple.com
  • 7 edits
    1 add in trunk/Source

Resource Load Statistics: Enable configuration through preferences
https://bugs.webkit.org/show_bug.cgi?id=171949
<rdar://problem/31894518>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. Just an added setter.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setReducedTimestampResolution):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:

Added ResourceLoadStatisticsTimeToLiveUserInteraction,
ResourceLoadStatisticsTimeToLiveCookiePartitionFree, and
ResourceLoadStatisticsReducedTimestampResolution.

  • UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm: Added.

(WebKit::WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded):

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):

Now calls WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded().

  • WebKit2.xcodeproj/project.pbxproj:
12:59 PM Changeset in webkit [216689] by fpizlo@apple.com
  • 6 edits
    4 adds in trunk/Source/JavaScriptCore

Offer SPI to notify clients that GC has happened
https://bugs.webkit.org/show_bug.cgi?id=171980

Reviewed by Geoffrey Garen.

Sometimes when you're programming with weak references, it's most convenient if the GC tells
you when it finishes. This adds exactly such an API. This API is called at the *flip*: the
moment when the GC knows for sure which objects are dead and has definitely not allocated any
new objects or executed any JS code. The finalization part of the flip, which is where this
callback gets called, runs on the "main" thread - i.e. some thread that is attempting to
execute JS code and holds the JS lock. This will usually run as a side-effect of some
allocation or from the runloop.

This means, for example, that if you implemented a vector of weak references and registered a
callback to prune the vector of null weak references, then aside from the callback, nobody
would ever see a null weak reference in the vector.

  • API/JSHeapFinalizerPrivate.cpp: Added.

(JSContextGroupAddHeapFinalizer):
(JSContextGroupRemoveHeapFinalizer):

  • API/JSHeapFinalizerPrivate.h: Added.
  • API/tests/testapi.c:

(heapFinalizer):
(testMarkingConstraintsAndHeapFinalizers):
(main):
(testMarkingConstraints): Deleted.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/Heap.cpp:

(JSC::Heap::finalize):
(JSC::Heap::addHeapFinalizerCallback):
(JSC::Heap::removeHeapFinalizerCallback):

  • heap/Heap.h:
  • heap/HeapFinalizerCallback.cpp: Added.

(JSC::HeapFinalizerCallback::dump):

  • heap/HeapFinalizerCallback.h: Added.

(JSC::HeapFinalizerCallback::HeapFinalizerCallback):
(JSC::HeapFinalizerCallback::operator==):
(JSC::HeapFinalizerCallback::operator!=):
(JSC::HeapFinalizerCallback::operator bool):
(JSC::HeapFinalizerCallback::run):

11:49 AM Changeset in webkit [216688] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Unify hasTouchScrollableOverflow/needsCompositedScrolling concepts
https://bugs.webkit.org/show_bug.cgi?id=171974

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-11
Reviewed by Simon Fraser.

This commit moves the following pattern in a single RenderLayer::usesAcceleratedScrolling function:
#if PLATFORM(IOS)
...hasTouchScrollableOverflow()...
#else
...needsCompositedScrolling()...
#endif

No new tests, behavior unchanged.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::usesAcceleratedScrolling): Introduce helper function.

  • rendering/RenderLayer.h: Declare the function.
  • rendering/RenderLayerBacking.cpp:

(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling): Use the new function.
(WebCore::RenderLayerBacking::updateConfiguration): Ditto.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::useCoordinatedScrollingForLayer): Ditto.

11:38 AM Changeset in webkit [216687] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/html/webappapis/timers/negative-settimeout.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170699

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:32 AM Changeset in webkit [216686] by commit-queue@webkit.org
  • 9 edits in trunk

[Readable Streams API] Implement ReadableStreamBYOBReader cancel()
https://bugs.webkit.org/show_bug.cgi?id=171919

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-11
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:

Source/WebCore:

Implemented ReadableStreamBYOBReader cancel() method.

Added tests checking cancel().

  • Modules/streams/ReadableStreamBYOBReader.js:

(cancel): Implemented.

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamError): Updated to support ReadableStreamBYOBReader case.

LayoutTests:

Added test cases to check cancel() behaviour.

  • streams/readable-stream-byob-reader-expected.txt: Updated.
  • streams/readable-stream-byob-reader.js: Updated.
11:18 AM Changeset in webkit [216685] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked media/media-controls-clone-crash.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171978

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:01 AM Changeset in webkit [216684] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSWeakCreate/Retain/Release should take a JSContextGroupRef and not a JSContextRef
https://bugs.webkit.org/show_bug.cgi?id=171979

Reviewed by Mark Lam.

Functions that don't execute arbitrary JS but just need access to the VM should take a
JSContextGroupRef, not a JSContextRef.

  • API/JSWeakPrivate.cpp:

(JSWeakCreate):
(JSWeakRetain):
(JSWeakRelease):

  • API/JSWeakPrivate.h:
  • API/tests/testapi.c:

(testMarkingConstraints):

10:55 AM Changeset in webkit [216683] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Stop using PassRefPtr in WebGPU code
https://bugs.webkit.org/show_bug.cgi?id=171965

Reviewed by Alex Christensen.

Stop using PassRefPtr in WebGPU code.

  • html/canvas/WebGPUDrawable.cpp:

(WebCore::WebGPUDrawable::WebGPUDrawable):

  • html/canvas/WebGPURenderingContext.cpp:

(WebCore::WebGPURenderingContext::create):
(WebCore::WebGPURenderingContext::WebGPURenderingContext):

  • html/canvas/WebGPURenderingContext.h:
  • html/canvas/WebGPUTexture.cpp:

(WebCore::WebGPUTexture::createFromDrawableTexture):
(WebCore::WebGPUTexture::WebGPUTexture):

  • html/canvas/WebGPUTexture.h:
10:31 AM Changeset in webkit [216682] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Name WebRTC Threads
https://bugs.webkit.org/show_bug.cgi?id=171975

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-11
Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::LibWebRTCAudioModule): Setting audio module thread name.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::initializePeerConnectionFactoryAndThreads): Setting signaling and networking thread names.

10:14 AM Changeset in webkit [216681] by Matt Baker
  • 7 edits in trunk

Web Inspector: Error trying to delete DOM breakpoints from the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=171970
<rdar://problem/32129262>

Reviewed by Brian Burg.

Source/WebInspectorUI:

In the Debugger sidebar, DOM breakpoints can be cleared from a DOM node
in two ways: by using the DOM node tree element's context menu, or by
pressing the delete key while the element is selected. Each method used
a different code path, and the latter had an error which caused it to fail.

Add a removeDOMBreakpointsForNode method to DOMDebuggerManager to make
the operation convenient, and call it from both event handlers.

  • UserInterface/Controllers/DOMBreakpointTreeController.js:

(WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
Use convenience method.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpointsForNode):
Helper function for removing all of a node's breakpoints.

  • UserInterface/Views/DOMNodeTreeElement.js:

(WebInspector.DOMNodeTreeElement.prototype.ondelete):
Use convenience method.

LayoutTests:

Add test for DOMDebuggerManager.prototype.removeDOMBreakpointsForNode.

  • inspector/dom-debugger/dom-breakpoints-expected.txt:
  • inspector/dom-debugger/dom-breakpoints.html:
9:31 AM Changeset in webkit [216680] by pvollan@apple.com
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/media/track-in-band-hls-metadata-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167749

Reviewed by Eric Carlson.

Revert parts of r216588. The position of the 'canplaythrough' event in the event sequence
is not always the same, causing flakiness. Stop listening to the 'canplaythrough' event,
this was introduced in r216588.

  • http/tests/media/track-in-band-hls-metadata-crash-expected.txt:
  • http/tests/media/track-in-band-hls-metadata-crash.html:
9:29 AM Changeset in webkit [216679] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

Stop using PassRefPtr in platform/audio
https://bugs.webkit.org/show_bug.cgi?id=171966

Reviewed by Ryosuke Niwa.

Stop using PassRefPtr in platform/audio.

  • platform/audio/AudioBus.h:

(WebCore::AudioBus::AudioBus):

  • platform/audio/AudioFileReader.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):

  • platform/audio/HRTFDatabaseLoader.h:
  • platform/audio/HRTFKernel.cpp:

(WebCore::HRTFKernel::createInterpolatedKernel):

  • platform/audio/HRTFKernel.h:

(WebCore::HRTFKernel::create):

  • platform/audio/glib/AudioBusGLib.cpp:

(WebCore::AudioBus::loadPlatformResource):

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):

  • platform/audio/ios/AudioFileReaderIOS.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):

  • platform/audio/ios/AudioFileReaderIOS.h:
  • platform/audio/mac/AudioBusMac.mm:

(WebCore::AudioBus::loadPlatformResource):

  • platform/audio/mac/AudioFileReaderMac.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):

  • platform/audio/mac/AudioFileReaderMac.h:
9:29 AM Changeset in webkit [216678] by clopez@igalia.com
  • 5 edits in trunk/Tools

Add WPE release bots
https://bugs.webkit.org/show_bug.cgi?id=171973

Reviewed by Žan Doberšek.

This adds a WPE Release Build bot (64-bit) and a WPE Release Test bot.
It also adds a new WPE buildbot category.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(InstallWpeDependencies):
(appendCustomBuildFlags):
(Factory.init):
(loadBuilderConfig):

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/templates/root.html:
8:26 AM Changeset in webkit [216677] by mark.lam@apple.com
  • 10 edits in trunk

WorkerThread::stop() should call scheduleExecutionTermination() last.
https://bugs.webkit.org/show_bug.cgi?id=171775
<rdar://problem/30975761>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Increased the number of frames captured in VM::nativeStackTraceOfLastThrow()
from 25 to 100. From experience, I found that 25 is sometimes not sufficient
for our debugging needs.

Also added VM::throwingThread() to track which thread an exception was thrown in.
This may be useful if the client is entering the VM from different threads.

  • runtime/ExceptionScope.cpp:

(JSC::ExceptionScope::unexpectedExceptionMessage):
(JSC::ExceptionScope::releaseAssertIsTerminatedExecutionException):

  • runtime/ExceptionScope.h:

(JSC::ExceptionScope::exception):
(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

(JSC::VM::throwingThread):
(JSC::VM::clearException):

Source/WebCore:

Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate
JS execution first, followed by posting a cleanup task to the worker, and lastly,
it invokes terminate() on the WorkerRunLoop.

As a result, before run loop is terminate, the worker thread may observe the
TerminatedExecutionException in JS code, bail out, see another JS task to run,
re-enters the VM to run said JS code, and fails with an assertion due to the
TerminatedExecutionException still being pending on VM entry.

WorkerRunLoop::Task::performTask() already has a check to only allow a task to
run if and only if !runLoop.terminated() and the task is not a clean up task.
We'll fix the above race by ensuring that having WorkerThread::stop() terminate
the run loop before it scheduleExecutionTermination() which throws the
TerminatedExecutionException. This way, by the time JS code unwinds out of the
VM due to the TerminatedExecutionException, runLoop.terminated() is guaranteed
to be true and thereby prevents re-entry into the VM.

This issue is covered by an existing test that I just unskipped in TestExpectations.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::callFunction):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):

LayoutTests:

6:33 AM Changeset in webkit [216676] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of tests failing after r216450.

  • platform/gtk/TestExpectations:
5:54 AM Changeset in webkit [216675] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove notifications guards from GTK API layer
https://bugs.webkit.org/show_bug.cgi?id=170014

Reviewed by Michael Catanzaro.

ENABLE_NOTIFICATIONS in the GTK port is a private option and
disabling it is unsupported, hence remove its guards from the GTK API
layer.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):

2:09 AM Changeset in webkit [216674] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.17.2

WebKitGTK+ 2.17.2

1:34 AM Changeset in webkit [216673] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.2 release.

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.17.2.
12:56 AM Changeset in webkit [216672] by jfbastien@apple.com
  • 3 edits
    1 add in trunk

WebAssembly: stop supporting 0xD
https://bugs.webkit.org/show_bug.cgi?id=168788
<rdar://problem/31880922>

Reviewed by Saam Barati.

JSTests:

Test that only version 1 is supported.

  • wasm/js-api/version.js: Added.

Source/JavaScriptCore:

Only version 1 is supported by other browsers, and there shouldn't
be any 0xD binaries in the wild anymore.

  • wasm/WasmModuleParser.cpp:
12:56 AM Changeset in webkit [216671] by commit-queue@webkit.org
  • 1 edit
    18 adds in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add new GTK+ icons for resources in large sizes (32px @ 1x/2x)
https://bugs.webkit.org/show_bug.cgi?id=155802
<rdar://problem/25320686>

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-11
Reviewed by Carlos Garcia Campos.

Add more free icons for the Web Inspector in GTK+.

12:55 AM Changeset in webkit [216670] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit2

[GTK] JavaScript prompt uses title of page to be loaded rather than title of current page
https://bugs.webkit.org/show_bug.cgi?id=152690

Reviewed by Michael Catanzaro.

webkit_web_view_get_uri() returns the page to be loaded, use
internal api for this.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewCreateJavaScriptDialog):

12:35 AM Changeset in webkit [216669] by Chris Dumez
  • 8 edits
    1 delete in trunk/Source/WebCore

Drop custom bindings code for HTMLFormControlsCollection's named property getter
https://bugs.webkit.org/show_bug.cgi?id=171964

Reviewed by Sam Weinig.

Drop custom bindings code for HTMLFormControlsCollection's named property getter as
we are able to generate it.

No new tests, no expected Web-facing behavior change.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateNamedGetter):

  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::namedItemOrItems):

  • html/HTMLFormControlsCollection.h:
  • html/HTMLFormControlsCollection.idl:
12:27 AM Changeset in webkit [216668] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r216530. rdar://problem/32080319

12:27 AM Changeset in webkit [216667] by jmarcell@apple.com
  • 11 edits in branches/safari-604.1.21-branch/Source

Cherry-pick r216477. rdar://problem/32058957

12:27 AM Changeset in webkit [216666] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebKit2

Cherry-pick r216475. rdar://problem/32041569

12:27 AM Changeset in webkit [216665] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r216471. rdar://problem/31132092

12:27 AM Changeset in webkit [216664] by jmarcell@apple.com
  • 16 edits in branches/safari-604.1.21-branch/Source

Cherry-pick r216463. rdar://problem/32041545

12:27 AM Changeset in webkit [216663] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r216455. rdar://problem/32053243

12:27 AM Changeset in webkit [216662] by jmarcell@apple.com
  • 8 edits in branches/safari-604.1.21-branch/Source

Cherry-pick r216446. rdar://problem/31848689

12:27 AM Changeset in webkit [216661] by jmarcell@apple.com
  • 3 edits in branches/safari-604.1.21-branch/Source/WebKit2

Cherry-pick r216442. rdar://problem/32051789

12:27 AM Changeset in webkit [216660] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch/Source

Cherry-pick r216436. rdar://problem/32041544

12:27 AM Changeset in webkit [216659] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.1.21-branch

Cherry-pick r216331. rdar://problem/31122612

12:27 AM Changeset in webkit [216658] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.1.21-branch

Cherry-pick r216307. rdar://problem/31955660

12:27 AM Changeset in webkit [216657] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch

Cherry-pick r216292. rdar://problem/32027327

12:27 AM Changeset in webkit [216656] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Source/WebCore

Cherry-pick r216285. rdar://problem/32041544

12:27 AM Changeset in webkit [216655] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/Tools

Cherry-pick r216272. rdar://problem/32027327

12:27 AM Changeset in webkit [216654] by jmarcell@apple.com
  • 4 edits in branches/safari-604.1.21-branch

Cherry-pick r216258. rdar://problem/32017975

12:27 AM Changeset in webkit [216653] by jmarcell@apple.com
  • 2 edits in branches/safari-604.1.21-branch/LayoutTests

Cherry-pick r216252. rdar://problem/32040952

May 10, 2017:

9:53 PM Changeset in webkit [216652] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Null deref in WebPage::dictionaryPopupInfoForRange
https://bugs.webkit.org/show_bug.cgi?id=171959
<rdar://problem/20886282>

Reviewed by Beth Dakin.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):
Speculative fix for non-reproducible crash when the startContainer of
the range is in an anonymous node.

9:23 PM Changeset in webkit [216651] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Another build fix after r215633 to make the bar graphs render even when the confidence intervals aren't available.

  • public/v3/components/bar-graph-group.js:

(BarGraphGroup.prototype._computeRange):

9:22 PM Changeset in webkit [216650] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[MediaStream] CoreAudioCaptureSource claims to never be muted
https://bugs.webkit.org/show_bug.cgi?id=171946
<rdar://problem/32111991>

Reviewed by Jer Noble.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::stopProducingData): Set m_muted to true.

9:06 PM Changeset in webkit [216649] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r215633.

  • public/v3/models/test-group.js:

(TestGroup.prototype._computeRequestedCommitSets):
(TestGroup.prototype.requestsForCommitSet):

7:58 PM Changeset in webkit [216648] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.3.1

Tag Safari-603.3.1.

7:32 PM Changeset in webkit [216647] by rniwa@webkit.org
  • 12 edits
    2 adds in trunk/Websites/perf.webkit.org

Add API to upload a patched build for a custom A/B testing
https://bugs.webkit.org/show_bug.cgi?id=171956

Reviewed by Chris Dumez.

Added /api/upload-root to upload a root file, the build product of a patch associated with a commit set.

Extracted more functions out of privileged-api/upload-file.php to uploaded-file-helpers.php to share code
with /api/upload-root.php.

  • public/api/upload-root.php: Added.

(main):
(compute_commit_set_items_to_update): Find the list of commit set items to associate this root with.
A root can be associated with multiple repositories and there fore commit set items; e.g. if a software
is built from multiple repositories and there is a patch associated with one of them, the built product
must be associated with all those repositories.

  • public/include/build-requests-fetcher.php:

(BuildRequestsFetcher::fetch_commits_for_set_if_needed): Include the root file is there is one.

  • public/include/json-header.php:

(validate_arguments): Added the support for validating json string.
(verify_slave): Return the slave ID found.

  • public/include/uploaded-file-helpers.php:

(validate_uploaded_file): Extracted from /privileged-api/upload-file to be shared with /api/upload-root.
(query_total_file_size): Ditto.
(create_uploaded_file_from_form_data): Ditto.
(upload_file_in_transaction): Ditto. Takes a lambda to do the extra work inside the transaction.

  • public/privileged-api/upload-file.php:

(main):

  • public/v3/models/build-request.js:

(BuildRequest.constructBuildRequestsFromData): Resolve the rootFIle of each commit set item.

  • public/v3/models/commit-set.js:

(CommitSet): Added _repositoryToRootMap and _allRootFiles as instance variables.
(CommitSet.prototype.updateSingleton): Added. Previously, each commit set's states never changed after
its creation. After this patch, each item can be newly associated with a root so we must update its
_repositoryToRootMap and _allRootFiles. For simplicity, we update all states.
(CommitSet.prototype._updateFromObject): Extracted from the constructor.
(CommitSet.prototype.allRootFiles): Added. Includes custom roots and roots created for patches.
(CommitSet.prototype.rootForRepository): Added.
(CommitSet.prototype.equals): Fixed the bug that we were comparing _repositoryToPatchMap to
_repositoryToCommitMap, and added a check for _repositoryToRootMap.

  • public/v3/models/test-group.js:

(TestGroup.prototype.task): Added.
(TestGroup.createWithTask):
(TestGroup.createWithCustomConfiguration):
(TestGroup.createAndRefetchTestGroups):
(TestGroup._fetchTestGroupsForTask): Deleted. Now fetchForTask takes a boolean argument: ignoreCache.
(TestGroup.findAllByTask): Added.
(TestGroup.fetchForTask): Renamed from fetchByTask.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage.prototype._fetchRelatedInfoForTaskId):

  • server-tests/api-build-requests-tests.js:
  • server-tests/api-upload-root-tests.js: Added. Added tests for /api/upload-root.

(makeReport): Added.
(addSlaveAndCreateRootFile): Added.
(createTestGroupWihPatch): Added.

  • server-tests/privileged-api-create-test-group-tests.js:
  • server-tests/resources/mock-data.js:

(MockData.sharedRepositoryId): Added.
(MockData.addMockData): Added "Shared" repository along with commits.

7:26 PM Changeset in webkit [216646] by rniwa@webkit.org
  • 1 edit
    1 add
    1 delete in trunk/Websites/perf.webkit.org

Rename server-tests/api-update-triggerable.js to server-tests/api-update-triggerable-tests.js
https://bugs.webkit.org/show_bug.cgi?id=171905

Reviewed by Chris Dumez.

  • server-tests/api-update-triggerable-tests.js: Renamed from server-tests/api-update-triggerable.js.
6:51 PM Changeset in webkit [216645] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput()
https://bugs.webkit.org/show_bug.cgi?id=171711

Reviewed by Youenn Fablet.

Before iterating over the channels in either the WebAudioBufferList or the AudioBus, ensure
we don't walk over the end of either by only iterating over the minimum length of either.
Also, when the internal format of WebAudioSourceProviderAVFObjC changes, notify the
MediaStreamAudioSourceNode that the number of channels and sample rate have changed.

  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):

5:56 PM Changeset in webkit [216644] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked fast/animation/request-animation-frame-time-unit.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171957

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:33 PM Changeset in webkit [216643] by aestes@apple.com
  • 8 edits in trunk

REGRESSION (r167845): ASSERT(!m_renderView.needsLayout()) in svg/custom/bug79798.html
https://bugs.webkit.org/show_bug.cgi?id=132297

Reviewed by Simon Fraser.

Source/WebCore:

We don't know why m_renderView needs layout in this case, but we know that we don't need to
assert if the client hasn't set the ScrollableInnerFrameTrigger compositing trigger.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):

LayoutTests:

  • http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation-expected.txt:
  • http/tests/navigation/resources/keyboard-events-test.js:

(runTest):

  • platform/ios-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
5:32 PM Changeset in webkit [216642] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r216630.

This change caused assertion failures with webrtc LayoutTests.

Reverted changeset:

"RELEASE_ASSERT at
WebAudioSourceProviderAVFObjC::provideInput()"
https://bugs.webkit.org/show_bug.cgi?id=171711
http://trac.webkit.org/changeset/216630

5:29 PM Changeset in webkit [216641] by weinig@apple.com
  • 63 edits
    11 deletes in trunk

Remove support for legacy Notifications
https://bugs.webkit.org/show_bug.cgi?id=171487

Reviewed by Jon Lee.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove files.

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

  • DerivedSources.make:

Remove IDL files.

  • Modules/notifications/DOMWindowNotifications.cpp: Removed.
  • Modules/notifications/DOMWindowNotifications.h: Removed.
  • Modules/notifications/DOMWindowNotifications.idl: Removed.
  • Modules/notifications/NotificationCenter.cpp: Removed.
  • Modules/notifications/NotificationCenter.h: Removed.
  • Modules/notifications/NotificationCenter.idl: Removed.
  • Modules/notifications/NotificationClient.h:
  • Modules/notifications/NotificationController.cpp:
  • Modules/notifications/NotificationController.h:
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp: Removed.
  • Modules/notifications/WorkerGlobalScopeNotifications.h: Removed.
  • Modules/notifications/WorkerGlobalScopeNotifications.idl: Removed.
  • Modules/notifications/Notification.idl:
  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • dom/EventTargetFactory.in:
  • page/DOMWindow.cpp:
  • workers/WorkerThread.h:

Remove code legacy Notification code. Replace use of NotificationCenter with direct
calls to the NotificationClient.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:
  • WebView/WebNotification.mm:
  • WebView/WebNotificationInternal.h:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _notificationIDForTesting:]):
Remove legacy notification specific code.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::WebChromeClient):

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
  • WebCoreSupport/WebDesktopNotificationsDelegate.h:

Remove legacy notification specific code.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebProcessCreationParameters.cpp:
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebProcess.cpp:

Remove legacy notification specific code.

Source/WTF:

  • wtf/FeatureDefines.h:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Tools:

  • DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp:

(DRTDesktopNotificationPresenter::checkNotificationPermission):

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Remove use and definition of ENABLE_LEGACY_NOTIFICATIONS.

LayoutTests:

  • Remove fast/notifications/. It was skipped on all platforms and use legacy Notifications API.
  • Remove http/notifications/legacy. It tested the legacy API.
  • Update two tests in fast/history to use the non-legacy API to test page cache + notifications.
  • Update TestExpectations for removals.
  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • fast/history/page-cache-notification-non-suspendable.html:
  • fast/history/page-cache-notification-suspendable.html:
  • fast/notifications: Removed.
  • fast/notifications/notification-after-close-expected.txt: Removed.
  • fast/notifications/notification-after-close.html: Removed.
  • fast/notifications/notification-permisssion-deletable-expected.txt: Removed.
  • fast/notifications/notification-permisssion-deletable.html: Removed.
  • fast/notifications/notifications-cancel-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-cancel-request-permission.html: Removed.
  • fast/notifications/notifications-check-permission-expected.txt: Removed.
  • fast/notifications/notifications-check-permission.html: Removed.
  • fast/notifications/notifications-click-event-expected.txt: Removed.
  • fast/notifications/notifications-click-event-focus-expected.txt: Removed.
  • fast/notifications/notifications-click-event-focus.html: Removed.
  • fast/notifications/notifications-click-event.html: Removed.
  • fast/notifications/notifications-constructor-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-request-permission.html: Removed.
  • fast/notifications/notifications-constructor-with-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-with-permission.html: Removed.
  • fast/notifications/notifications-constructor-without-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-without-permission.html: Removed.
  • fast/notifications/notifications-display-close-events-expected.txt: Removed.
  • fast/notifications/notifications-display-close-events.html: Removed.
  • fast/notifications/notifications-document-close-crash-expected.txt: Removed.
  • fast/notifications/notifications-document-close-crash.html: Removed.
  • fast/notifications/notifications-event-stop-propagation-expected.txt: Removed.
  • fast/notifications/notifications-event-stop-propagation.html: Removed.
  • fast/notifications/notifications-multi-events-expected.txt: Removed.
  • fast/notifications/notifications-multi-events.html: Removed.
  • fast/notifications/notifications-no-icon-expected.txt: Removed.
  • fast/notifications/notifications-no-icon.html: Removed.
  • fast/notifications/notifications-permission-expected.txt: Removed.
  • fast/notifications/notifications-permission.html: Removed.
  • fast/notifications/notifications-replace-expected.txt: Removed.
  • fast/notifications/notifications-replace.html: Removed.
  • fast/notifications/notifications-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-request-permission-optional-expected.txt: Removed.
  • fast/notifications/notifications-request-permission-optional.html: Removed.
  • fast/notifications/notifications-request-permission.html: Removed.
  • fast/notifications/notifications-rtl-expected.txt: Removed.
  • fast/notifications/notifications-rtl.html: Removed.
  • fast/notifications/notifications-sandbox-permission-expected.txt: Removed.
  • fast/notifications/notifications-sandbox-permission.html: Removed.
  • fast/notifications/notifications-window-close-crash-expected.txt: Removed.
  • fast/notifications/notifications-window-close-crash.html: Removed.
  • fast/notifications/notifications-with-permission-expected.txt: Removed.
  • fast/notifications/notifications-with-permission.html: Removed.
  • fast/notifications/notifications-without-permission-expected.txt: Removed.
  • fast/notifications/notifications-without-permission.html: Removed.
  • fast/notifications/request-notification-permission-while-reloading-expected.txt: Removed.
  • fast/notifications/request-notification-permission-while-reloading.html: Removed.
  • fast/notifications/resources: Removed.
  • fast/notifications/resources/notifications-cancel-request-permission.html: Removed.
  • fast/notifications/resources/notifications-iframe.html: Removed.
  • http/tests/notifications/legacy: Removed.
  • http/tests/notifications/legacy/double-show-expected.txt: Removed.
  • http/tests/notifications/legacy/double-show.html: Removed.
  • http/tests/notifications/legacy/events-expected.txt: Removed.
  • http/tests/notifications/legacy/events.html: Removed.
  • http/tests/notifications/legacy/notification-request-permission-then-navigate-expected.txt: Removed.
  • http/tests/notifications/legacy/notification-request-permission-then-navigate.html: Removed.
  • http/tests/notifications/legacy/request-expected.txt: Removed.
  • http/tests/notifications/legacy/request-no-callback-expected.txt: Removed.
  • http/tests/notifications/legacy/request-no-callback.html: Removed.
  • http/tests/notifications/legacy/request.html: Removed.
  • http/tests/notifications/legacy/resources: Removed.
  • http/tests/notifications/legacy/resources/notify-opener-done.html: Removed.
  • http/tests/notifications/legacy/resources/request-permission-then-navigate.html: Removed.
  • http/tests/notifications/legacy/show-expected.txt: Removed.
  • http/tests/notifications/legacy/show.html: Removed.
  • http/tests/notifications/legacy/window-show-on-click-expected.txt: Removed.
  • http/tests/notifications/legacy/window-show-on-click.html: Removed.
5:25 PM Changeset in webkit [216640] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=169876

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:20 PM Changeset in webkit [216639] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/protocol/inspector-backend-invocation-return-value.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168146

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:48 PM Changeset in webkit [216638] by mark.lam@apple.com
  • 10 edits in trunk

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

"Some worker tests are failing". (Requested by mlam on #webkit).

Reverted changeset:

"WorkerThread::stop() should call
scheduleExecutionTermination() last."
https://bugs.webkit.org/show_bug.cgi?id=171775
http://trac.webkit.org/changeset/216635

Patch by Commit Queue <commit-queue@webkit.org> on 2017-05-10

4:43 PM Changeset in webkit [216637] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash in JavaScriptCore GC when using JSC on dispatch queues (thread_get_state returns NULL stack pointer).
https://bugs.webkit.org/show_bug.cgi?id=160337
<rdar://problem/27611733>

Not reviewed.

Updated a comment per Geoff's suggestion.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStack):

4:39 PM Changeset in webkit [216636] by matthew_hanson@apple.com
  • 8 edits in branches/safari-603-branch/Source

Cherry-pick r214320. rdar://problem/32057095

4:22 PM Changeset in webkit [216635] by mark.lam@apple.com
  • 10 edits in trunk

WorkerThread::stop() should call scheduleExecutionTermination() last.
https://bugs.webkit.org/show_bug.cgi?id=171775
<rdar://problem/30975761>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Increased the number of frames captured in VM::nativeStackTraceOfLastThrow()
from 25 to 100. From experience, I found that 25 is sometimes not sufficient
for our debugging needs.

Also added VM::throwingThread() to track which thread an exception was thrown in.
This may be useful if the client is entering the VM from different threads.

  • runtime/ExceptionScope.cpp:

(JSC::ExceptionScope::unexpectedExceptionMessage):
(JSC::ExceptionScope::releaseAssertIsTerminatedExecutionException):

  • runtime/ExceptionScope.h:

(JSC::ExceptionScope::exception):
(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

(JSC::VM::throwingThread):
(JSC::VM::clearException):

Source/WebCore:

Currently, WorkerThread::stop() calls scheduleExecutionTermination() to terminate
JS execution first, followed by posting a cleanup task to the worker, and lastly,
it invokes terminate() on the WorkerRunLoop.

As a result, before run loop is terminate, the worker thread may observe the
TerminatedExecutionException in JS code, bail out, see another JS task to run,
re-enters the VM to run said JS code, and fails with an assertion due to the
TerminatedExecutionException still being pending on VM entry.

WorkerRunLoop::Task::performTask() already has a check to only allow a task to
run if and only if !runLoop.terminated() and the task is not a clean up task.
We'll fix the above race by ensuring that having WorkerThread::stop() terminate
the run loop before it scheduleExecutionTermination() which throws the
TerminatedExecutionException. This way, by the time JS code unwinds out of the
VM due to the TerminatedExecutionException, runLoop.terminated() is guaranteed
to be true and thereby prevents re-entry into the VM.

This issue is covered by an existing test that I just unskipped in TestExpectations.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::callFunction):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):

LayoutTests:

4:05 PM Changeset in webkit [216634] by timothy_horton@apple.com
  • 12 edits in trunk

Add an experimental feature flag for viewport-fit
https://bugs.webkit.org/show_bug.cgi?id=171948
<rdar://problem/31995518>

Reviewed by Simon Fraser.

  • Shared/WebPreferencesDefinitions.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Add an experimental feature flag.

  • dom/ViewportArguments.cpp:

(WebCore::setViewportFeature):

  • page/Settings.in:

Disable parsing of viewport-fit if the experimental feature is disabled.

  • fast/css/variables/constants/ios/safe-area-inset-set-expected.html:
  • fast/css/variables/constants/ios/safe-area-inset-set.html:
  • fast/viewport/ios/viewport-fit-auto.html:
  • fast/viewport/ios/viewport-fit-contain.html:
  • fast/viewport/ios/viewport-fit-cover.html:
3:57 PM Changeset in webkit [216633] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked fast/hidpi/filters-and-image-buffer-resolution.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171951

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:25 PM Changeset in webkit [216632] by Chris Dumez
  • 19 edits in trunk/Source

Simplify relationship between Attr and Element now that Attr is childless
https://bugs.webkit.org/show_bug.cgi?id=171909

Reviewed by Ryosuke Niwa.

Source/WebCore:

Simplify relationship between Attr and Element now that Attr is childless
after r216259.

No new tests, no Web facing behavior change.

  • dom/Attr.cpp:

(WebCore::Attr::setValue):
Attr::setValue() was only called by Element::setAttributeInternal() to make sure
we updated the Attr node's Text child. However, now that Attr has no Text child,
Element no longer needs to update the Attr node's value.
Attr::setValueForBindings() was thus renamed to setValue(). Its implementation
was also simplified by calling Element::setAttribute() on its ownerElement, if
it has one, instead of duplicating a bunch of code from Element::setAttributeInternal().

(WebCore::Attr::setNodeValue):
Call setValue() instead of setValueForBindings() now that it has been renamed.

  • dom/Attr.h:
  • dom/Attr.idl:

Rename valueForBindings / setValueForBindings to value / setValue.

  • dom/Document.h:

Split shouldInvalidateNodeListAndCollectionCaches() into 2 methods, one taking an Attr name
and another that does not. There are now 2 calls sites instead of one, so we no longer need
to branch in this function.

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
Drop code calling Attr::setValue() on the Attr node since Attr::setValue() was only
duplicating logic from Element::setAttributeInternal() after r216259. There is nothing
on Attr that needs updating when an element attribute gets updated.

(WebCore::Element::attributeChanged):
Call the new invalidateNodeListAndCollectionCachesInAncestorsForAttribute(). This
is the only call site that passes an attribute name.

  • dom/Node.cpp:

(WebCore::Document::shouldInvalidateNodeListAndCollectionCaches):
(WebCore::Document::shouldInvalidateNodeListAndCollectionCachesForAttribute):
Split into 2 to avoid branching, as explained above.

(WebCore::Node::invalidateNodeListAndCollectionCachesInAncestors):
(WebCore::Node::invalidateNodeListAndCollectionCachesInAncestorsForAttribute):

  • invalidateNodeListAndCollectionCachesInAncestors() used to invalidate childNodeLists if the Node was an attribute node. Drop this as this is no longer needed as of r216259.
  • After the change to Attr::setValue(), call sites for invalidateNodeListAndCollectionCachesInAncestors() either had no parameters, or both parameters present and non-null. There is therefore no longer any need to handle having an attrName but no attributeOwnerElement. To make this obvious, I split this into 2 methods: invalidateNodeListAndCollectionCachesInAncestors() and invalidateNodeListAndCollectionCachesInAncestorsForAttribute(attrName). We no longer need the attributeOwnerElement parameter as it was only used to exit early.
  • dom/Node.h:

Source/WebKit/mac:

Build fix.

  • DOM/DOMAttr.mm:

(-[DOMAttr value]):
(-[DOMAttr setValue:]):

3:23 PM Changeset in webkit [216631] by Antti Koivisto
  • 6 edits
    2 adds in trunk

REGRESSION (r207372) Visibility property is not inherited when used in an animation
https://bugs.webkit.org/show_bug.cgi?id=171883
<rdar://problem/32086550>

Reviewed by Simon Fraser.

Source/WebCore:

The problem here is that our animation code is tied to renderers. We don't have renderers during
the initial style resolution so animations are not applied yet. When constructing renderers we set
their style to the initial animated style but this step can't implement inheritance.

Normally this is invisible as the first animation frame will immediately inherit the style correctly.
However in this case the animation is discrete and the first frame is the same as the initial state.
With r207372 we optimize the descendant style change away.

This patch fixes the problem by tracking that the renderer has initial animated style and inheriting
it to descendants during next style resolution even if it doesn't change.

Test: animations/animation-initial-inheritance.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitialAnimatedStyle):
(WebCore::RenderElement::setHasInitialAnimatedStyle):

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):

Set a bit on renderer indicating it has initial animated style.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

Return at least 'Inherit' for style change when updating renderer with initial animated style.

LayoutTests:

  • animations/animation-initial-inheritance-expected.html: Added.
  • animations/animation-initial-inheritance.html: Added.
3:03 PM Changeset in webkit [216630] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput()
https://bugs.webkit.org/show_bug.cgi?id=171711

Reviewed by Youenn Fablet.

Before iterating over the channels in either the WebAudioBufferList or the AudioBus, ensure
we don't walk over the end of either by only iterating over the minimum length of either.
Also, when the internal format of WebAudioSourceProviderAVFObjC changes, notify the
MediaStreamAudioSourceNode that the number of channels and sample rate have changed.

  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):

3:01 PM Changeset in webkit [216629] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: in Timelines > JavaScript & Events, digits for timer and animation frame number are not localized
https://bugs.webkit.org/show_bug.cgi?id=171818

Reviewed by Joseph Pecoraro.

These numbers need to be formatted with %d, not %s.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/ScriptTimelineRecord.js:

(WebInspector.ScriptTimelineRecord.EventType.displayName):

2:59 PM Changeset in webkit [216628] by BJ Burg
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: remove dead code for switching Toolbar display options
https://bugs.webkit.org/show_bug.cgi?id=170738

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Views/ButtonToolbarItem.css:

(.toolbar .item.button > .glyph):
(.toolbar .item.button > .label):
(.toolbar.icon-and-label-vertical .item.button): Deleted.
(.toolbar.icon-and-label-horizontal .item.button): Deleted.
(.toolbar.small-size .item.button > .glyph): Deleted.
(.toolbar.label-only .item.button > .glyph): Deleted.
(.toolbar.label-only .item.activate.button.activated > .label): Deleted.
(.toolbar.icon-and-label-horizontal .item.button > .label): Deleted.
(.toolbar.icon-only .item.button > .label): Deleted.

  • UserInterface/Views/ControlToolbarItem.css:

(.toolbar .item.control):
(.toolbar:matches(.icon-and-label-horizontal, .icon-only) .item.control): Deleted.

  • UserInterface/Views/DashboardContainerView.css:

(.toolbar .dashboard-container):
(.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container): Deleted.
(.toolbar.label-only .dashboard-container,): Deleted.
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
(.toolbar.label-only .dashboard-container .advance-arrow): Deleted.
(body[dir=ltr] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.
(body[dir=rtl] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.

  • UserInterface/Views/DefaultDashboardView.css:

(.toolbar .dashboard.default > .item):
(.toolbar.label-only .dashboard.default > .item,): Deleted.
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item): Deleted.

  • UserInterface/Views/ReplayDashboardView.css:

(.toolbar .dashboard.replay .item.button > .glyph):
(.toolbar.label-only .dashboard.replay .item.button > .glyph): Deleted.

  • UserInterface/Views/Toolbar.css:

(.toolbar .control-section):
(.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section): Deleted.

  • UserInterface/Views/Toolbar.js:

(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.layout):
(WebInspector.Toolbar.prototype.get displayMode): Deleted.
(WebInspector.Toolbar.prototype.set displayMode): Deleted.
(WebInspector.Toolbar.prototype.get sizeMode): Deleted.
(WebInspector.Toolbar.prototype.set sizeMode): Deleted.
(WebInspector.Toolbar.prototype._handleContextMenuEvent): Deleted.
(WebInspector.Toolbar.prototype._changeDisplayMode): Deleted.
(WebInspector.Toolbar.prototype._toggleSmallIcons): Deleted.

2:59 PM Changeset in webkit [216627] by matthew_hanson@apple.com
  • 1 edit in branches/safari-603-branch/Source/WebCore/ChangeLog

Fix order of merge from r212528. rdar://problem/31153819

2:59 PM Changeset in webkit [216626] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Fix order of merge from r212528

2:57 PM Changeset in webkit [216625] by fpizlo@apple.com
  • 2 edits in trunk/Source/WebCore

GCController.cpp's collect() should be Async
https://bugs.webkit.org/show_bug.cgi?id=171708

Reviewed by Saam Barati and Geoffrey Garen.

No new tests because no change in behavior.

This is one step towards not requesting sync GCs in WebCore. I'm landing this incrementally to
make bisecting super easy.

This is a ~7% JetStream iOS "regression", because JetStream has a bug where it allows trunk
to sneakily hide GC work between when JetStream measures time. After this change, we are no
longer trying to be sneaky.

  • bindings/js/GCController.cpp:

(WebCore::collect):

2:34 PM Changeset in webkit [216624] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked transitions/extra-transition.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171947

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:31 PM Changeset in webkit [216623] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CoreAudioCaptureSource reports 3 or 5 channel audio output; actually only mono
https://bugs.webkit.org/show_bug.cgi?id=171940

Reviewed by Eric Carlson.

Asking for the Input VPIO stream format will return the internal mic format, before processing. Instead
ask for the input bus's output format, which is post processing, which will return the correct number
of channels (one).

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):

2:23 PM Changeset in webkit [216622] by matthew_hanson@apple.com
  • 23 edits in branches/safari-603-branch/Source

Additional ENABLE_STREAMS cleanup

2:23 PM Changeset in webkit [216621] by matthew_hanson@apple.com
  • 46 edits in branches/safari-603-branch

Cherry-pick r215429. rdar://problem/32057106

2:23 PM Changeset in webkit [216620] by matthew_hanson@apple.com
  • 10 edits in branches/safari-603-branch

Cherry-pick r215250. rdar://problem/32057106

2:14 PM Changeset in webkit [216619] by Ryan Haddad
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r216591.

This change broke an internal build.

Reverted changeset:

"REGRESSION (r207372) Visibility property is not inherited
when used in an animation"
https://bugs.webkit.org/show_bug.cgi?id=171883
http://trac.webkit.org/changeset/216591

2:11 PM Changeset in webkit [216618] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, remove TestExpectation for a test that was removed in r216259.

  • platform/mac/TestExpectations:
2:02 PM Changeset in webkit [216617] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked perf/class-list-remove.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171945

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:52 PM Changeset in webkit [216616] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Include headers in WebKit.h
https://bugs.webkit.org/show_bug.cgi?id=171943

Reviewed by Dan Bernstein.

  • Shared/API/Cocoa/WebKit.h:
1:50 PM Changeset in webkit [216615] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Drop custom bindings code now window.open()
https://bugs.webkit.org/show_bug.cgi?id=171933

Reviewed by Geoffrey Garen.

Drop custom bindings code now window.open() as it is not doing anything special.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open): Deleted.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

1:44 PM Changeset in webkit [216614] by aestes@apple.com
  • 3 edits in trunk/LayoutTests

r216599 accidentally included two copies of the new layout test and expected result
https://bugs.webkit.org/show_bug.cgi?id=171938

Unreviewed.

  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation-expected.txt:
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html:
1:41 PM Changeset in webkit [216613] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=171880

Unreviewed test gardening.

This test times out on ios-simulator because it relies on eventSender.keyDown.

  • platform/ios/TestExpectations:
1:29 PM Changeset in webkit [216612] by timothy_horton@apple.com
  • 16 edits in trunk/Source/WebKit2

Disable block selection for dynamic selection granularity
https://bugs.webkit.org/show_bug.cgi?id=171908
<rdar://problem/32098024>

Reviewed by Enrica Casucci.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsBlockSelection]):
(-[WKWebViewConfiguration _setAllowsBlockSelection:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Add a private configuration parameter to re-enable block selection.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _allowsBlockSelection]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

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

(WebKit::PageClientImpl::allowsBlockSelection):

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

Plumb allowsBlockSelection through from WKWebViewConfiguration to WebPage.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView useSelectionAssistantWithGranularity:]):
(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingKeyboard]):
(toUIWebSelectionMode): Deleted.
(-[WKContentView useSelectionAssistantWithMode:]): Deleted.
Stop needlessly converting to UIWebSelectionMode.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::shouldSwitchToBlockModeForHandle):
Don't switch to block selection unless allowsBlockSelection is set.

1:26 PM Changeset in webkit [216611] by timothy_horton@apple.com
  • 16 edits in trunk

Add an experimental feature flag for constant properties
https://bugs.webkit.org/show_bug.cgi?id=171913
<rdar://problem/31995518>

Reviewed by Ryosuke Niwa.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeCustomPropertyValue):

  • css/parser/CSSParserMode.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseValueStart):

  • css/parser/CSSVariableParser.cpp:

(WebCore::classifyBlock):
(WebCore::isValidVariableReference):
(WebCore::isValidConstantReference):
(WebCore::classifyVariableRange):
(WebCore::CSSVariableParser::containsValidVariableReferences):
(WebCore::CSSVariableParser::parseDeclarationValue):

  • css/parser/CSSVariableParser.h:

Plumb the experimental feature flag down into CSSVariableParser by way
of CSSParserContext.

  • page/Settings.in:
  • Shared/WebPreferencesDefinitions.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Add an experimental feature flag.

  • fast/css/variables/constants/invalid-constant-name-fallback.html:
  • fast/css/variables/constants/ios/safe-area-inset-set.html:
  • fast/css/variables/constants/safe-area-inset-cannot-override.html:
  • fast/css/variables/constants/safe-area-inset-zero.html:
1:16 PM Changeset in webkit [216610] by dino@apple.com
  • 2 edits in trunk/Source/WebKit2

Disable WebGL2 by default
https://bugs.webkit.org/show_bug.cgi?id=171894
<rdar://problem/32089917>

Reviewed by Tim Horton.

Some WASM and WebGL2 content is failing because it
detects our WebGL2RenderingContext, but doesn't realise
that we don't implement enough of it to be useful.

  • Shared/WebPreferencesDefinitions.h:
1:07 PM Changeset in webkit [216609] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked media/track/track-cue-rendering-on-resize.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171939

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:07 PM Changeset in webkit [216608] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash in JavaScriptCore GC when using JSC on dispatch queues (thread_get_state returns NULL stack pointer).
https://bugs.webkit.org/show_bug.cgi?id=160337
<rdar://problem/27611733>

Reviewed by Filip Pizlo and Geoffrey Garen.

This is a workaround for <rdar://problem/27607384>. During thread initialization,
for some target platforms, thread state is momentarily set to 0 before being
filled in with the target thread's real register values. As a result, there's
a race condition that may result in us getting a null stackPointer during a GC scan.
This issue may manifest with workqueue threads where the OS may choose to recycle
a thread for an expired task.

The workaround is simply to indicate that there's nothing to copy and return.
This is correct because we will only ever observe a null pointer during thread
initialization. Hence, by definition, there's nothing there that we need to scan
yet, and therefore, nothing that needs to be copied.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStack):

12:52 PM Changeset in webkit [216607] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r206960): Possible null pointer dereference under DOMSelection::getRangeAt()
https://bugs.webkit.org/show_bug.cgi?id=171925
<rdar://problem/29931223>

Reviewed by Wenson Hsieh.

We have evidence that selection().firstRange() can return null in DOMSelection::getRangeAt().
When this happens, we now throw an INDEX_SIZE_ERR instead of dereferencing it.

I believe this can happen if the VisibleSelection is orphaned but not none, because
rangeCount() only checks for isNone() but VisibleSelection::firstRange() can return null
if isNoneOrOrphaned().

No new tests, I do not know how to reproduce.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt):

12:41 PM Changeset in webkit [216606] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All tests as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171937

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:34 PM Changeset in webkit [216605] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:29 PM Changeset in webkit [216604] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171935

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:24 PM Changeset in webkit [216603] by mrajca@apple.com
  • 2 edits in trunk/Source/WebCore

DumpRenderTree crashed in com.apple.WebCore: std::optional<WTF::MediaTime>::operator-> + 71 :: CRASHING TEST: fullscreen/video-controls-timeline.html
https://bugs.webkit.org/show_bug.cgi?id=171932

Reviewed by Eric Carlson.

Explicitly initialize m_playbackWithoutUserGesture to "None".

  • html/HTMLMediaElement.h:
11:53 AM Changeset in webkit [216602] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Copy to clipboard fails via InspectorFrontendHostStub
https://bugs.webkit.org/show_bug.cgi?id=171907

Patch by Ross Kirsling <Ross Kirsling> on 2017-05-10
Reviewed by Joseph Pecoraro.

  • UserInterface/Base/InspectorFrontendHostStub.js:

(WebInspector.InspectorFrontendHostStub.prototype.copyText):
Actually make a text selection before attempting to copy to clipboard.

11:43 AM Changeset in webkit [216601] by matthew_hanson@apple.com
  • 11 edits
    7 adds in branches/safari-603-branch

Cherry-pick r216352. rdar://problem/32057098

11:43 AM Changeset in webkit [216600] by matthew_hanson@apple.com
  • 16 edits
    6 adds in branches/safari-603-branch

Cherry-pick r211379. rdar://problem/32057099

11:30 AM Changeset in webkit [216599] by aestes@apple.com
  • 8 edits
    2 adds in trunk

Keyboard input suppression should extend to subframes
https://bugs.webkit.org/show_bug.cgi?id=171880
<rdar://problem/31201793>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html

  • dom/EventDispatcher.cpp:

(WebCore::shouldSuppressEventDispatchInDOM): Changed to call shouldSuppressKeyboardInput()
on the main frame's loader.

  • editing/Editor.cpp:

(WebCore::Editor::shouldInsertText): Ditto.

LayoutTests:

  • http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:
  • http/tests/navigation/keyboard-events-during-provisional-navigation.html:
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation-expected.txt: Copied from LayoutTests/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt.
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html: Copied from LayoutTests/http/tests/navigation/keyboard-events-during-provisional-navigation.html.
  • http/tests/navigation/resources/keyboard-events-after-navigation.html:
  • http/tests/navigation/resources/keyboard-events-test.js:

(runTest):
(waitForProvisionalNavigation.xhr.onreadystatechange):
(waitForProvisionalNavigation):

11:22 AM Changeset in webkit [216598] by jfbastien@apple.com
  • 3 edits
    1 add in trunk/JSTests

WebAssemby: builder doesn't do Memory section maximum correctly
https://bugs.webkit.org/show_bug.cgi?id=171931

Reviewed by Keith Miller.

  • wasm/Builder.js:

(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/Builder_WebAssemblyBinary.js:

(const.emitters.Memory):

  • wasm/function-tests/memory-grow-invalid.js: Added.
11:15 AM Changeset in webkit [216597] by jfbastien@apple.com
  • 19 edits
    4 copies
    3 adds in trunk

WebAssembly: support name section
JSTests:

https://bugs.webkit.org/show_bug.cgi?id=171263

Reviewed by Keith Miller.

  • wasm/function-tests/nameSection.js: Added.

(const.compile):

  • wasm/function-tests/nameSection.wasm: Added.
  • wasm/function-tests/stack-trace.js: Update format

Source/JavaScriptCore:

https://bugs.webkit.org/show_bug.cgi?id=171263

Reviewed by Keith Miller.

The name section is an optional custom section in the WebAssembly
spec. At least when debugging, developers expect to be able to use
this section to obtain intelligible stack traces, otherwise we
just number the wasm functions which is somewhat painful.

This patch parses this section, dropping its content eagerly on
error, and if there is a name section then backtraces use their
value instead of numbers. Otherwise we stick to numbers as before.

Note that the format of name sections changed in mid-February:

https://github.com/WebAssembly/design/pull/984

And binaryen was only updated in early March:

https://github.com/WebAssembly/binaryen/pull/933

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • interpreter/Interpreter.cpp:

(JSC::GetStackTraceFunctor::operator()):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::readNonInlinedFrame):
(JSC::StackVisitor::Frame::functionName):

  • interpreter/StackVisitor.h:

(JSC::StackVisitor::Frame::wasmFunctionIndexOrName):

  • runtime/StackFrame.cpp:

(JSC::StackFrame::functionName):

  • runtime/StackFrame.h:

(JSC::StackFrame::StackFrame):
(JSC::StackFrame::wasm):

  • wasm/WasmBBQPlanInlines.h:

(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmCallee.cpp:

(JSC::Wasm::Callee::Callee):

  • wasm/WasmCallee.h:

(JSC::Wasm::Callee::create):
(JSC::Wasm::Callee::indexOrName):

  • wasm/WasmFormat.cpp:

(JSC::Wasm::makeString):

  • wasm/WasmFormat.h:

(JSC::Wasm::isValidExternalKind):
(JSC::Wasm::isValidNameType):
(JSC::Wasm::NameSection::get):

  • wasm/WasmIndexOrName.cpp: Copied from Source/JavaScriptCore/wasm/WasmCallee.cpp.

(JSC::Wasm::IndexOrName::IndexOrName):
(JSC::Wasm::makeString):

  • wasm/WasmIndexOrName.h: Copied from Source/JavaScriptCore/wasm/WasmFormat.cpp.
  • wasm/WasmModuleInformation.h:
  • wasm/WasmModuleParser.cpp:
  • wasm/WasmName.h: Copied from Source/JavaScriptCore/wasm/WasmCallee.cpp.
  • wasm/WasmNameSectionParser.cpp: Added.
  • wasm/WasmNameSectionParser.h: Copied from Source/JavaScriptCore/wasm/WasmCallee.cpp.

(JSC::Wasm::NameSectionParser::NameSectionParser):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::consumeUTF8String):

10:30 AM Changeset in webkit [216596] by Matt Lewis
  • 26 edits
    2 deletes in trunk

Unreviewed, rolling out r216563.

Revision caused 2 api failures

Reverted changeset:

"[MediaStream] deviceId constraint doesn't work with
getUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=171877
http://trac.webkit.org/changeset/216563

10:29 AM Changeset in webkit [216595] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r215102. rdar://problem/32057110

10:16 AM Changeset in webkit [216594] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-idl.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171930

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:00 AM Changeset in webkit [216593] by fpizlo@apple.com
  • 3 edits
    3 adds in trunk

Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
https://bugs.webkit.org/show_bug.cgi?id=171801

Reviewed by Michael Saboff.

JSTests:

These tests used to crash. The prefix and postfix tests cover different paths, except
postfix-ignored goes down the same path as prefix due to an optimization.

  • stress/for-in-postfix-ignored-index.js: Added.

(foo):

  • stress/for-in-postfix-index.js: Added.

(foo):

  • stress/for-in-prefix-index.js: Added.

(foo):

Source/JavaScriptCore:

This was a goofy oversight. The for-in optimization relies on the bytecode generator
to detect when the loop's index variable gets mutated. We forgot to have the hooks for
detecting this in prefix and postfix operations (++i and i++).

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):

9:57 AM Changeset in webkit [216592] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Refactor ScrollingCoordinator::setSynchronousScrollingReasons to accept a FrameView
https://bugs.webkit.org/show_bug.cgi?id=171923

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-10
Reviewed by Simon Fraser.

Currently ScrollingCoordinator::setSynchronousScrollingReasons implementations assumes
SynchronousScrollingReasons apply to the main frame. This commit allows to specify
a FrameView in order to prepare support for fast scrolling of frames.

No new tests, no behavior changes.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons): Use the FrameView to
find the state node.
(WebCore::AsyncScrollingCoordinator::updateScrollLayerPosition): Rename this function
updateMainFrameScrollLayerPosition and use the specified FrameView.

  • page/scrolling/AsyncScrollingCoordinator.h: Add FrameView parameter.
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons): Remove the const since
AsyncScrollingCoordinator uses scrollLayerForFrameView. Pass the frameView to
setSynchronousScrollingReasons.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons): Add FrameView parameter.

9:50 AM Changeset in webkit [216591] by Antti Koivisto
  • 6 edits
    2 adds in trunk

REGRESSION (r207372) Visibility property is not inherited when used in an animation
https://bugs.webkit.org/show_bug.cgi?id=171883
<rdar://problem/32086550>

Reviewed by Simon Fraser.

Source/WebCore:

The problem here is that our animation code is tied to renderers. We don't have renderers during
the initial style resolution so animations are not applied yet. When constructing renderers we set
their style to the initial animated style but this step can't implement inheritance.

Normally this is invisible as the first animation frame will immediately inherit the style correctly.
However in this case the animation is discrete and the first frame is the same as the initial state.
With r207372 we optimize the descendant style change away.

This patch fixes the problem by tracking that the renderer has initial animated style and inheriting
it to descendants during next style resolution even if it doesn't change.

Test: animations/animation-initial-inheritance.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitialAnimatedStyle):
(WebCore::RenderElement::setHasInitialAnimatedStyle):

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):

Set a bit on renderer indicating it has initial animated style.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

Return at least 'Inherit' for style change when updating renderer with initial animated style.

LayoutTests:

  • animations/animation-initial-inheritance-expected.html: Added.
  • animations/animation-initial-inheritance.html: Added.
9:44 AM Changeset in webkit [216590] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Remove inadvertant change to ScrollView.h that was included in r216589.

Unreviewed build fix.

  • platform/ScrollView.h:

(WebCore::ScrollView::children):

9:34 AM Changeset in webkit [216589] by matthew_hanson@apple.com
  • 14 edits
    3 adds in branches/safari-603-branch

Cherry-pick r216279. rdar://problem/31967829

9:29 AM Changeset in webkit [216588] by pvollan@apple.com
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/media/track-in-band-hls-metadata-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=167749

Reviewed by Eric Carlson.

This is a speculative fix of the test. I have not been able to reproduce the timeout.
When the test times out, the 'addtrack' event is never received. In case the event
was dispatched before we added the event listener, the event listener is added before
the video source is set. In case the test will continue to time out, a couple of
error event callbacks have been added to get more information. Also, video playback
will begin when the 'canplaythrough' event is received.

  • http/tests/media/track-in-band-hls-metadata-crash-expected.txt:
  • http/tests/media/track-in-band-hls-metadata-crash.html:
9:08 AM Changeset in webkit [216587] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r216131. rdar://problem/31967895

9:06 AM Changeset in webkit [216586] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Tiny cleanup in Font::DerivedFonts
https://bugs.webkit.org/show_bug.cgi?id=171893

Reviewed by Jon Lee.

This variable was written to but never read.

No new tests because there is no behavior change.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::font):

  • platform/graphics/Font.cpp:

(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::smallCapsFont):
(WebCore::Font::noSynthesizableFeaturesFont):
(WebCore::Font::emphasisMarkFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::DerivedFonts::~DerivedFonts): Deleted.

  • platform/graphics/Font.h:

(WebCore::Font::DerivedFonts::DerivedFonts): Deleted.

7:50 AM Changeset in webkit [216585] by Michael Catanzaro
  • 4 edits in trunk

Remove user agent quirk for Slack
https://bugs.webkit.org/show_bug.cgi?id=171869

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The user agent quirk for Slack does not seem to be necessary anymore. I am able to use Slack
without difficulty using our default user agent.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Remove the corresponding test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

7:46 AM Changeset in webkit [216584] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit2

[GTK] HTTP authentication dialog should focus on first input field
https://bugs.webkit.org/show_bug.cgi?id=151349

Reviewed by Michael Catanzaro.

Setting focus on a widget before it's mapped does nothing. Move
the call to the right place.

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(webkitAuthenticationDialogInitialize):
(webkitAuthenticationDialogMap):

7:31 AM Changeset in webkit [216583] by commit-queue@webkit.org
  • 2 edits in trunk

[Win] Specify source file type when preprocessing IDL files
https://bugs.webkit.org/show_bug.cgi?id=171864

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-10
Reviewed by Alex Christensen.

  • Source/cmake/OptionsCommon.cmake:
7:26 AM Changeset in webkit [216582] by Michael Catanzaro
  • 5 edits in trunk/Source

[GTK] -Wmissing-field-initializers triggered by RemoteInspectorServer.cpp:128
https://bugs.webkit.org/show_bug.cgi?id=171273

Reviewed by Carlos Garcia Campos.

Source/JavaScriptCore:

  • inspector/remote/glib/RemoteInspectorGlib.cpp:
  • inspector/remote/glib/RemoteInspectorServer.cpp:

Source/WebKit2:

  • UIProcess/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::RemoteInspectorClient):

7:05 AM Changeset in webkit [216581] by hyungwook.lee@navercorp.com
  • 2 edits in trunk/Source/WebCore

[GTK] Fix compile warnings in CryptoKeyECGCrypt.cpp
https://bugs.webkit.org/show_bug.cgi?id=171851

Reviewed by Alex Christensen.

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:

(WebCore::curveSize):
(WebCore::curveName):
(WebCore::uncompressedPointSizeForCurve):
(WebCore::uncompressedFieldElementSizeForCurve):

7:01 AM Changeset in webkit [216580] by commit-queue@webkit.org
  • 3 edits
    4 deletes in trunk

Remove some last remnants of the EFL port
https://bugs.webkit.org/show_bug.cgi?id=171922

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-05-10
Reviewed by Antonio Gomes.

The EFL port is no more.

.:

  • Source/PlatformEfl.cmake: Removed.

Source/JavaScriptCore:

  • PlatformEfl.cmake: Removed.
  • shell/PlatformEfl.cmake: Removed.

Source/WTF:

  • wtf/PlatformEfl.cmake: Removed.
5:35 AM Changeset in webkit [216579] by commit-queue@webkit.org
  • 399 edits
    2 adds
    9 deletes in trunk

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

Broke the GTK+ build with Wayland enabled (Requested by KaL on
#webkit).

Reverted changeset:

"[GTK] Bump GTK+ and its dependencies in jhbuild"
https://bugs.webkit.org/show_bug.cgi?id=171918
http://trac.webkit.org/changeset/216578

4:53 AM Changeset in webkit [216578] by Carlos Garcia Campos
  • 399 edits
    9 adds
    2 deletes in trunk

[GTK] Bump GTK+ and its dependencies in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=171918

Reviewed by Carlos Alberto Lopez Perez.

Tools:

  • WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:

(WTR::initializeGtkSettings):

  • gtk/jhbuild.modules:
  • gtk/patches/gtk+-configure-fix-detecting-CUPS-2.x.patch: Removed.
  • gtk/patches/librsvg-2.36.1-bump-up-config.guess-to-support-aarch64.patch: Removed.

LayoutTests:

Rebaseline tests for new GTK+ versin.

  • platform/gtk/css1/box_properties/acid_test-expected.txt:
  • platform/gtk/css2.1/20110323/replaced-elements-001-expected.png:
  • platform/gtk/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/gtk/css2.1/t09-c5526c-display-00-e-expected.png:
  • platform/gtk/css2.1/t09-c5526c-display-00-e-expected.txt:
  • platform/gtk/css3/flexbox/button-expected.png:
  • platform/gtk/css3/flexbox/button-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/html/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/html/css3-modsel-70-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/xhtml/css3-modsel-70-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-161-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-161-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-19b-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-19b-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-23-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-23-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-25-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-25-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-69-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-69-expected.txt:
  • platform/gtk/css3/selectors3/xml/css3-modsel-70-expected.png:
  • platform/gtk/css3/selectors3/xml/css3-modsel-70-expected.txt:
  • platform/gtk/editing/pasteboard/4641033-expected.png:
  • platform/gtk/editing/pasteboard/4641033-expected.txt:
  • platform/gtk/editing/pasteboard/4944770-1-expected.png:
  • platform/gtk/editing/pasteboard/4944770-1-expected.txt:
  • platform/gtk/editing/pasteboard/4944770-2-expected.png:
  • platform/gtk/editing/pasteboard/4944770-2-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.png:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.png:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.png:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4397952-expected.png:
  • platform/gtk/editing/selection/4397952-expected.txt:
  • platform/gtk/editing/selection/5240265-expected.png:
  • platform/gtk/editing/selection/5240265-expected.txt:
  • platform/gtk/editing/selection/caret-before-select-expected.png:
  • platform/gtk/editing/selection/caret-before-select-expected.txt:
  • platform/gtk/editing/selection/replaced-boundaries-3-expected.png:
  • platform/gtk/editing/selection/replaced-boundaries-3-expected.txt:
  • platform/gtk/editing/selection/select-box-expected.png:
  • platform/gtk/editing/selection/select-box-expected.txt:
  • platform/gtk/editing/selection/select-element-paragraph-boundary-expected.png:
  • platform/gtk/editing/selection/select-element-paragraph-boundary-expected.txt:
  • platform/gtk/editing/selection/selection-button-text-expected.png:
  • platform/gtk/editing/selection/selection-button-text-expected.txt:
  • platform/gtk/fast/block/basic/011-expected.png:
  • platform/gtk/fast/block/basic/011-expected.txt:
  • platform/gtk/fast/block/float/float-avoidance-expected.png:
  • platform/gtk/fast/block/float/float-avoidance-expected.txt:
  • platform/gtk/fast/block/margin-collapse/103-expected.png:
  • platform/gtk/fast/block/margin-collapse/103-expected.txt:
  • platform/gtk/fast/block/positioning/inline-block-relposition-expected.png:
  • platform/gtk/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/gtk/fast/box-sizing/percentage-height-expected.png:
  • platform/gtk/fast/box-sizing/percentage-height-expected.txt:
  • platform/gtk/fast/css/continuationCrash-expected.png:
  • platform/gtk/fast/css/continuationCrash-expected.txt:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.png:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/gtk/fast/css/input-search-padding-expected.png:
  • platform/gtk/fast/css/input-search-padding-expected.txt:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.png:
  • platform/gtk/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.png:
  • platform/gtk/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/gtk/fast/css/rtl-ordering-expected.png:
  • platform/gtk/fast/css/rtl-ordering-expected.txt:
  • platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.png:
  • platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.png:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/css/text-transform-select-expected.png:
  • platform/gtk/fast/css/text-transform-select-expected.txt:
  • platform/gtk/fast/dom/HTMLInputElement/input-slider-update-expected.png:
  • platform/gtk/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.png:
  • platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.png:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.png:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.png:
  • platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/gtk/fast/forms/001-expected.png:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/forms/003-expected.png:
  • platform/gtk/fast/forms/003-expected.txt:
  • platform/gtk/fast/forms/004-expected.png:
  • platform/gtk/fast/forms/004-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.png:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/forms/basic-inputs-expected.png:
  • platform/gtk/fast/forms/basic-inputs-expected.txt:
  • platform/gtk/fast/forms/basic-selects-expected.png:
  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/blankbuttons-expected.png:
  • platform/gtk/fast/forms/blankbuttons-expected.txt:
  • platform/gtk/fast/forms/box-shadow-override-expected.png:
  • platform/gtk/fast/forms/box-shadow-override-expected.txt:
  • platform/gtk/fast/forms/button-align-expected.png:
  • platform/gtk/fast/forms/button-align-expected.txt:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.png:
  • platform/gtk/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/gtk/fast/forms/button-default-title-expected.png:
  • platform/gtk/fast/forms/button-default-title-expected.txt:
  • platform/gtk/fast/forms/button-generated-content-expected.png:
  • platform/gtk/fast/forms/button-generated-content-expected.txt:
  • platform/gtk/fast/forms/button-inner-block-reuse-expected.png:
  • platform/gtk/fast/forms/button-inner-block-reuse-expected.txt:
  • platform/gtk/fast/forms/button-positioned-expected.png:
  • platform/gtk/fast/forms/button-positioned-expected.txt:
  • platform/gtk/fast/forms/button-sizes-expected.png:
  • platform/gtk/fast/forms/button-sizes-expected.txt:
  • platform/gtk/fast/forms/button-style-color-expected.png:
  • platform/gtk/fast/forms/button-style-color-expected.txt:
  • platform/gtk/fast/forms/button-table-styles-expected.png:
  • platform/gtk/fast/forms/button-table-styles-expected.txt:
  • platform/gtk/fast/forms/button-text-transform-expected.png:
  • platform/gtk/fast/forms/button-text-transform-expected.txt:
  • platform/gtk/fast/forms/button-white-space-expected.png:
  • platform/gtk/fast/forms/button-white-space-expected.txt:
  • platform/gtk/fast/forms/control-clip-expected.png:
  • platform/gtk/fast/forms/control-clip-expected.txt:
  • platform/gtk/fast/forms/control-clip-overflow-expected.png:
  • platform/gtk/fast/forms/control-clip-overflow-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.png:
  • platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
  • platform/gtk/fast/forms/file/file-input-direction-expected.png:
  • platform/gtk/fast/forms/file/file-input-direction-expected.txt:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.png:
  • platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.png:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/formmove-expected.png:
  • platform/gtk/fast/forms/formmove-expected.txt:
  • platform/gtk/fast/forms/formmove2-expected.png:
  • platform/gtk/fast/forms/formmove2-expected.txt:
  • platform/gtk/fast/forms/formmove3-expected.png:
  • platform/gtk/fast/forms/formmove3-expected.txt:
  • platform/gtk/fast/forms/indeterminate-expected.png:
  • platform/gtk/fast/forms/indeterminate-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.png:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-button-sizes-expected.png:
  • platform/gtk/fast/forms/input-button-sizes-expected.txt:
  • platform/gtk/fast/forms/input-first-letter-expected.png:
  • platform/gtk/fast/forms/input-first-letter-expected.txt:
  • platform/gtk/fast/forms/input-number-click-expected.txt: Added.
  • platform/gtk/fast/forms/input-value-expected.png:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.png:
  • platform/gtk/fast/forms/menulist-deselect-update-expected.txt:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.png:
  • platform/gtk/fast/forms/menulist-narrow-width-expected.txt:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.png:
  • platform/gtk/fast/forms/menulist-no-overflow-expected.txt:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.png:
  • platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.png:
  • platform/gtk/fast/forms/menulist-separator-painting-expected.txt:
  • platform/gtk/fast/forms/menulist-style-color-expected.png:
  • platform/gtk/fast/forms/menulist-style-color-expected.txt:
  • platform/gtk/fast/forms/menulist-width-change-expected.png:
  • platform/gtk/fast/forms/menulist-width-change-expected.txt:
  • platform/gtk/fast/forms/number/number-appearance-rtl-expected.png:
  • platform/gtk/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/gtk/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png:
  • platform/gtk/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/gtk/fast/forms/number/number-appearance-spinbutton-layer-expected.png:
  • platform/gtk/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/gtk/fast/forms/number/number-spinbutton-change-and-input-events-expected.txt: Added.
  • platform/gtk/fast/forms/number/number-spinbutton-click-in-iframe-expected.txt: Added.
  • platform/gtk/fast/forms/number/number-spinbutton-gets-disabled-or-readonly-expected.txt: Added.
  • platform/gtk/fast/forms/option-script-expected.png:
  • platform/gtk/fast/forms/option-script-expected.txt:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.png:
  • platform/gtk/fast/forms/option-strip-whitespace-expected.txt:
  • platform/gtk/fast/forms/option-text-clip-expected.png:
  • platform/gtk/fast/forms/option-text-clip-expected.txt:
  • platform/gtk/fast/forms/placeholder-position-expected.png:
  • platform/gtk/fast/forms/placeholder-position-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.png:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/range/input-appearance-range-expected.png:
  • platform/gtk/fast/forms/range/input-appearance-range-expected.txt:
  • platform/gtk/fast/forms/range/slider-padding-expected.png:
  • platform/gtk/fast/forms/range/slider-padding-expected.txt:
  • platform/gtk/fast/forms/range/slider-thumb-shared-style-expected.png:
  • platform/gtk/fast/forms/range/slider-thumb-shared-style-expected.txt:
  • platform/gtk/fast/forms/range/slider-transformed-expected.txt:
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.png:
  • platform/gtk/fast/forms/range/thumbslider-no-parent-slider-expected.txt:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.png:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.png:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/gtk/fast/forms/search-input-rtl-expected.png:
  • platform/gtk/fast/forms/search-input-rtl-expected.txt: Added.
  • platform/gtk/fast/forms/search-rtl-expected.png:
  • platform/gtk/fast/forms/search-rtl-expected.txt:
  • platform/gtk/fast/forms/search-styled-expected.png:
  • platform/gtk/fast/forms/search-styled-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.png:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/searchfield-heights-expected.png:
  • platform/gtk/fast/forms/searchfield-heights-expected.txt:
  • platform/gtk/fast/forms/select-align-expected.png:
  • platform/gtk/fast/forms/select-align-expected.txt:
  • platform/gtk/fast/forms/select-background-none-expected.png:
  • platform/gtk/fast/forms/select-background-none-expected.txt:
  • platform/gtk/fast/forms/select-baseline-expected.png:
  • platform/gtk/fast/forms/select-baseline-expected.txt:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.png:
  • platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.png:
  • platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.png:
  • platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
  • platform/gtk/fast/forms/select-element-focus-ring-expected.png: Added.
  • platform/gtk/fast/forms/select-element-focus-ring-expected.txt:
  • platform/gtk/fast/forms/select-initial-position-expected.png:
  • platform/gtk/fast/forms/select-initial-position-expected.txt:
  • platform/gtk/fast/forms/select-non-native-rendering-direction-expected.png: Added.
  • platform/gtk/fast/forms/select-non-native-rendering-direction-expected.txt: Added.
  • platform/gtk/fast/forms/select-selected-expected.png:
  • platform/gtk/fast/forms/select-selected-expected.txt:
  • platform/gtk/fast/forms/select-style-expected.png:
  • platform/gtk/fast/forms/select-style-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.png:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.png:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/select/optgroup-rendering-expected.png:
  • platform/gtk/fast/forms/select/optgroup-rendering-expected.txt:
  • platform/gtk/fast/forms/selectlist-minsize-expected.png:
  • platform/gtk/fast/forms/selectlist-minsize-expected.txt:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.png:
  • platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.png:
  • platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
  • platform/gtk/fast/forms/validation-message-appearance-expected.png:
  • platform/gtk/fast/forms/validation-message-appearance-expected.txt:
  • platform/gtk/fast/html/details-replace-summary-child-expected.png:
  • platform/gtk/fast/html/details-replace-summary-child-expected.txt:
  • platform/gtk/fast/html/details-replace-text-expected.png:
  • platform/gtk/fast/html/details-replace-text-expected.txt:
  • platform/gtk/fast/html/keygen-expected.png:
  • platform/gtk/fast/html/keygen-expected.txt:
  • platform/gtk/fast/inline/positionedLifetime-expected.png:
  • platform/gtk/fast/inline/positionedLifetime-expected.txt:
  • platform/gtk/fast/invalid/014-expected.png:
  • platform/gtk/fast/invalid/014-expected.txt:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
  • platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.png:
  • platform/gtk/fast/overflow/scrollRevealButton-expected.txt:
  • platform/gtk/fast/parser/bad-xml-slash-expected.png:
  • platform/gtk/fast/parser/bad-xml-slash-expected.txt:
  • platform/gtk/fast/parser/document-write-option-expected.png:
  • platform/gtk/fast/parser/document-write-option-expected.txt:
  • platform/gtk/fast/repaint/search-field-cancel-expected.png:
  • platform/gtk/fast/repaint/search-field-cancel-expected.txt:
  • platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png:
  • platform/gtk/fast/repaint/slider-thumb-drag-release-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.png:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.png:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/gtk/fast/replaced/three-selects-break-expected.png:
  • platform/gtk/fast/replaced/three-selects-break-expected.txt:
  • platform/gtk/fast/replaced/width100percent-button-expected.png:
  • platform/gtk/fast/replaced/width100percent-button-expected.txt:
  • platform/gtk/fast/replaced/width100percent-menulist-expected.png:
  • platform/gtk/fast/replaced/width100percent-menulist-expected.txt:
  • platform/gtk/fast/replaced/width100percent-searchfield-expected.png:
  • platform/gtk/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/gtk/fast/scrolling/overflow-scrollable-after-back-expected.txt: Added.
  • platform/gtk/fast/table/append-cells2-expected.png:
  • platform/gtk/fast/table/append-cells2-expected.txt:
  • platform/gtk/fast/table/remove-td-display-none-expected.png:
  • platform/gtk/fast/table/remove-td-display-none-expected.txt:
  • platform/gtk/fast/text/international/bidi-menulist-expected.png:
  • platform/gtk/fast/text/international/bidi-menulist-expected.txt:
  • platform/gtk/fast/text/international/hindi-spacing-expected.png:
  • platform/gtk/fast/text/international/hindi-spacing-expected.txt:
  • platform/gtk/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png:
  • platform/gtk/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.png:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/fast/text/whitespace/normal-after-nowrap-breaking-expected.png:
  • platform/gtk/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.png:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/gtk/svg/custom/foreign-object-skew-expected.png:
  • platform/gtk/svg/custom/foreign-object-skew-expected.txt:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.png:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug29326-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug68912-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/gtk/tables/mozilla/core/margins-expected.png:
  • platform/gtk/tables/mozilla/core/margins-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.png:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.png:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/core/captions1-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/core/captions2-expected.png:
  • platform/gtk/tables/mozilla_expected_failures/core/captions2-expected.txt:
  • platform/gtk/transforms/2d/zoom-menulist-expected.png:
  • platform/gtk/transforms/2d/zoom-menulist-expected.txt:
3:04 AM Changeset in webkit [216577] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Win] Set CMake args in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=171436

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-10
Reviewed by Per Arne Vollan.

  • Scripts/build-webkit:
1:16 AM Changeset in webkit [216576] by commit-queue@webkit.org
  • 11 edits
    1 add
    3 deletes in trunk/Tools

ImageDiff: Add CG implementation for new ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=170608

Reviewed Alex Christensen.

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-05-10

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/win/ImageDiffCairo.cpp: Removed.
  • DumpRenderTree/win/ImageDiffWin.cpp: Removed.
  • ImageDiff/CMakeLists.txt:
  • ImageDiff/Cairo.cmake:
  • ImageDiff/ImageDiff.cpp:

(main):

  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
  • ImageDiff/PlatformImage.cpp:
  • ImageDiff/PlatformImage.h:
  • ImageDiff/cairo/PlatformImageCairo.cpp:
  • ImageDiff/cg/ImageDiff.cpp: Removed.
  • ImageDiff/cg/PlatformImageCG.cpp: Added.

(ImageDiff::PlatformImage::createFromStdin):
(ImageDiff::PlatformImage::createFromDiffData):
(ImageDiff::PlatformImage::PlatformImage):
(ImageDiff::PlatformImage::~PlatformImage):
(ImageDiff::PlatformImage::width):
(ImageDiff::PlatformImage::height):
(ImageDiff::PlatformImage::rowBytes):
(ImageDiff::PlatformImage::hasAlpha):
(ImageDiff::PlatformImage::pixels):
(ImageDiff::PlatformImage::writeAsPNGToStdout):

1:04 AM Changeset in webkit [216575] by zandobersek@gmail.com
  • 8 edits in trunk

Enable FTL JIT by default on AArch64
https://bugs.webkit.org/show_bug.cgi?id=144039

Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake: Set FTL as enabled by default

when targeting either WTF_CPU_X86_64 or WTF_CPU_ARM64.

Tools:

  • Scripts/build-jsc: Enable the FTL JIT option by default on ARM64.
  • Scripts/run-jsc-stress-tests: Unmark the ARM64 and Linux combination

as an unsupported FTL platform.

  • Scripts/webkitdirs.pm:

(isARM64): Returns 1 if the determined architecture is 'arm64'.

  • Scripts/webkitperl/FeatureList.pm: Enable FTL_JIT and WEBASSEMBLY on ARM64.
12:42 AM Changeset in webkit [216574] by svillar@igalia.com
  • 6 edits in trunk

[css-grid] Remove Blink-specific code for handling orthogonal grid items
https://bugs.webkit.org/show_bug.cgi?id=171807

Reviewed by Darin Adler.

Source/WebCore:

This code was added in r203252 as part of a patch improving the handling of
{min|max}-content with orthogonal flows. The original code came from Blink which performs a
pre-layout of orthogonal boxes in FrameView. That is not true in the case of WebKit so we do
not need this code at all. Actually it was causing incorrect renderings in some tests.

I'm also removing an invalid return statement just after another return.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild):

LayoutTests:

Updated the expectations. They should now be compatible with Firefox and Chrome.

  • fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html:
  • fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html:
  • fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html:
12:40 AM Changeset in webkit [216573] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216443. rdar://problem/31971375

12:40 AM Changeset in webkit [216572] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216159. rdar://problem/31971329

12:40 AM Changeset in webkit [216571] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216104. rdar://problem/32057088

12:40 AM Changeset in webkit [216570] by jmarcell@apple.com
  • 6 edits
    1 add in branches/safari-603-branch

Cherry-pick r215748. rdar://problem/31971413

12:40 AM Changeset in webkit [216569] by jmarcell@apple.com
  • 4 edits
    2 adds in branches/safari-603-branch

Cherry-pick r215197. rdar://problem/31971401

12:40 AM Changeset in webkit [216568] by jmarcell@apple.com
  • 7 edits
    5 adds in branches/safari-603-branch

Cherry-pick r214375. rdar://problem/32057082

12:40 AM Changeset in webkit [216567] by jmarcell@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r213727. rdar://problem/32086123

12:22 AM Changeset in webkit [216566] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[Win] StaticStringImpl in HTMLNames.cpp aren't constructed
https://bugs.webkit.org/show_bug.cgi?id=171800

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-10
Reviewed by Yusuke Suzuki.

Global variables of StaticStringImpl in HTMLNames.cpp aren't
constructed on Windows since Bug 171586. It seems that
reinterpret_cast prevents constexpr's compile time initialization
in VC++.

  • wtf/text/StringImpl.h:

(WTF::StringImplShape::StringImplShape): Added const char* and
const char16_t* members in the union. Do not use reinterpret_cast
in constexpr constructors.

May 9, 2017:

10:51 PM Changeset in webkit [216565] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • platform/wpe/WidgetWPE.cpp:

(WebCore::Widget::paint): Add the missing SecurityOriginPaintPolicy parameter.

10:28 PM Changeset in webkit [216564] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Provide resource load error reason text in details sidebar
https://bugs.webkit.org/show_bug.cgi?id=171901
<rdar://problem/29850995>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-09
Reviewed by Brian Burg.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):

  • UserInterface/Models/Resource.js:

(WebInspector.Resource):
(WebInspector.Resource.prototype.get failureReasonText):
(WebInspector.Resource.prototype.markAsFailed):

  • UserInterface/Protocol/NetworkObserver.js:

(WebInspector.NetworkObserver.prototype.loadingFailed):
Include the error text we got from the backend. In most cases this should
be a localized error description.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshErrorReason):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
Include an Error field alongside the status code section when there was an error.

9:42 PM Changeset in webkit [216563] by eric.carlson@apple.com
  • 26 edits
    2 adds in trunk

[MediaStream] deviceId constraint doesn't work with getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=171877
<rdar://problem/31899730>

Reviewed by Jer Noble.

Source/WebCore:

Test: fast/mediastream/get-user-media-device-id.html

  • Modules/mediastream/MediaConstraintsImpl.h:

(WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that
takes a const MediaConstraints&.

  • Modules/mediastream/MediaDevicesEnumerationRequest.cpp:

(WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return
NULL for the main frame so the origin matches that returned for a UserMediaRequest.

  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used.
(WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on
constraints.

  • Modules/mediastream/UserMediaRequest.h:
  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId.
(WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it
we have to hash the device ID before comparing, and because the DeviceId can't be
changed so it should never be added to the flattened constraints.

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:

(WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused.
(WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused.

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device
id, not empty string.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaConstraintsData>::encode): Encode deviceIDHashSalt.
(IPC::ArgumentCoder<MediaConstraintsData>::decode): Decode deviceIDHashSalt.

  • UIProcess/UserMediaPermissionCheckProxy.cpp:

(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): Initialize
completion handler, frame ID, and security origins.
(WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): Complete by calling
completion handler because we now sometimes request access info before calling gUM.
(WebKit::UserMediaPermissionCheckProxy::invalidate): Clear completion handler.

  • UIProcess/UserMediaPermissionCheckProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::FrameAuthorizationState::FrameAuthorizationState): Take security origins, not
UserMediaPermissionRequestProxy, so it can be constructed with a UserMediaPermissionCheckProxy.
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual): Ditto. Clear has salt
when origins don't match.
(WebKit::UserMediaPermissionRequestManagerProxy::stateForRequest): Templatize.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): Fix typo.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Ditto.
Don't set state for empty UIDs. Pass hash salt to web process.
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
The device ID hash salt is now required to validate constraints, so get it first.
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Helper
method used to get the device ID hash salt.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Restructure
to use getUserMediaPermissionInfo.
(WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted): Add device ID
hash salt parameter.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted): Ditto.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::createCaptureSource): Use new MediaConstraintsData
constructor.

LayoutTests:

  • fast/mediastream/get-user-media-device-id-expected.txt: Added.
  • fast/mediastream/get-user-media-device-id.html: Added.
7:30 PM Changeset in webkit [216562] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

[GTK][Win] Web Inspector: Cann't open "Quick Open" dialog by pressing Ctrl+Shift+O
https://bugs.webkit.org/show_bug.cgi?id=171798

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-09
Reviewed by Michael Catanzaro.

PC can't input the shortcut keys Command+Shift+O and Command+P.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Use CommandOrControl instead of Command.

6:01 PM Changeset in webkit [216561] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSInjectedScriptHost should get a copy of the boundArgs
https://bugs.webkit.org/show_bug.cgi?id=171897

Reviewed by Joseph Pecoraro.

The boundArgs array is very special - it cannot be mutated in any way. So, it makes sense
for the inspector to get a copy of it.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):

  • runtime/JSBoundFunction.cpp:

(JSC::JSBoundFunction::boundArgsCopy):

  • runtime/JSBoundFunction.h:

(JSC::JSBoundFunction::boundArgs):

5:33 PM Changeset in webkit [216560] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Mark webrtc/libwebrtc/release-while-setting-local-description.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171899

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:21 PM Changeset in webkit [216559] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Video fullscreen window level should be below status bar.
https://bugs.webkit.org/show_bug.cgi?id=171892
rdar://problem/31771707

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-09
Reviewed by Jer Noble.

No new tests because it only affects platform window level.

Move the fullscreen window below the status bar, but above the input field window level.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen):

5:13 PM WebKitGTK/2.16.x edited by Michael Catanzaro
Propose r215166 to make Gentoo happy (diff)
5:03 PM Changeset in webkit [216558] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unindent some code in Watchdog::shouldTerminate().
https://bugs.webkit.org/show_bug.cgi?id=171896

Rubber stamped by Keith Miller.

I should have done this before I landed r213107, but I forgot. Unindenting it now.

  • runtime/Watchdog.cpp:

(JSC::Watchdog::shouldTerminate):

4:27 PM Changeset in webkit [216557] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Mark webrtc/audio-replace-track.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171895

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:19 PM Changeset in webkit [216556] by Jonathan Bedard
  • 8 edits in trunk/Tools

webkitpy: Remove unneeded crash log retrieval, refactor Darwin crash retrieval
https://bugs.webkit.org/show_bug.cgi?id=170857
<rdar://problem/31635373>

Reviewed by Aakash Jain.

Since LayoutTestRelay has been removed, iOS Simulators and Macs can use the same
code to search for crash logs.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort._get_crash_log): Moved from MacPort.

  • Scripts/webkitpy/port/darwin_testcase.py:

(DarwinTest.test_get_crash_log): Moved from MacTest.

  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort._get_crash_log): Implement pass-through for iOS device, since iOS
devices must search for crash-logs remotely.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort._get_crash_log): Deleted.

  • Scripts/webkitpy/port/ios_simulator_unittest.py:

(IOSSimulatorTest.test_get_crash_log): Deleted.

  • Scripts/webkitpy/port/mac.py:

(MacPort._get_crash_log): Moved to DarwinPort

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_get_crash_log): Moved to DarwinTest.

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

Buffer media in NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=171834
<rdar://problem/31485485>

Patch by Alex Christensen <achristensen@webkit.org> on 2017-05-09
Reviewed by Jer Noble.

I have measured a significant CPU usage reduction when buffering media data in the NetworkProcess,
especially on arm64 processors. Buffering data in the NetworkProcess introduces no additional data
copies after r215686, and it reduces the number of messages sent from the NetworkProcess to the WebProcess,
each of which must also be forwarded to mediaserverd by AVFoundation. This reduces the number of messages
from thousands per second to a maximum of 20 per second. This adds 1/20 second additional latency in
media loading, which will probably not be noticed by most users. This also adds the possibility of large
allocations when decoding IPC messages in the WebProcess, and if that becomes the source of crashes we can
add a maximum buffered amount in addition to a maximum buffered time, but we are likely not to receive
so much data in 1/20 second to have problems allocating the buffer.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime):
Buffer data in the NetworkProcess for up to 50ms before sending it to the WebProcess in one message.
This value is used in NetworkResourceLoader::didReceiveBuffer to append to m_bufferedData instead of
sending the small chunks immediately.

4:00 PM Changeset in webkit [216554] by dino@apple.com
  • 3 edits in trunk/Source/WebKit/win

Fix Windows build.

  • Plugins/PluginView.h:
  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::paint):

3:53 PM Changeset in webkit [216553] by weinig@apple.com
  • 14 edits
    9 adds in trunk

LayoutTests/imported/w3c:
Implement Subresource Integrity (SRI)
https://bugs.webkit.org/show_bug.cgi?id=148363
<rdar://problem/18945879>

Reviewed by Youenn Fablet.

  • web-platform-tests/fetch/api/basic/integrity-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:

Update results now that integrity is implemented.

Source/WebCore:
Implement Subresource Integrity (SRI) [Part 2 - Fetch]
https://bugs.webkit.org/show_bug.cgi?id=148363
<rdar://problem/18945879>

Reviewed by Youenn Fablet.

Tests: http/tests/subresource-integrity/sri-fetch-worker.html

http/tests/subresource-integrity/sri-fetch.html

  • loader/FetchOptions.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::isolatedCopy):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions):
Add integrity metadata to the fetch options, and fix the implementation of
ThreadableLoaderOptions::isolatedCopy to work correctly (it was missing isolated
copy derivedCachedDataTypesToRetrieve).

  • Modules/fetch/FetchRequest.cpp:

(WebCore::buildOptions):
(WebCore::FetchRequest::initializeOptions):

  • Modules/fetch/FetchRequest.h:

Switch to using the integrity metadata on the fetchOptions, removing the need to
store them directly on the internal request.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::DocumentThreadableLoader::reportIntegrityMetadataError):

  • loader/DocumentThreadableLoader.h:

Add a new flag, m_delayCallbacksForIntegrityCheck, which is used when integrity metadata
is present, so we can implement the 'wait' concept from the fetch spec, and delay informing
the clients until we have validated the integrity metadata.

LayoutTests:
Implement Subresource Integrity (SRI)
https://bugs.webkit.org/show_bug.cgi?id=148363
<rdar://problem/18945879>

Reviewed by Youenn Fablet.

Add tests for Subresource Integrity for Fetch based off the ones from Web
Platform Tests. Additional tests for more CORS combinations have been added.

  • http/tests/subresource-integrity/resources/crossorigin-anon-resource.txt: Added.
  • http/tests/subresource-integrity/resources/crossorigin-creds-resource.txt: Added.
  • http/tests/subresource-integrity/resources/crossorigin-ineligible-resource.txt: Added.
  • http/tests/subresource-integrity/resources/resource.txt: Added.
  • http/tests/subresource-integrity/sri-fetch-expected.txt: Added.
  • http/tests/subresource-integrity/sri-fetch-worker-expected.txt: Added.
  • http/tests/subresource-integrity/sri-fetch-worker.html: Added.
  • http/tests/subresource-integrity/sri-fetch.html: Added.
  • http/tests/subresource-integrity/sri-fetch.js: Added.
3:52 PM Changeset in webkit [216552] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked webrtc/captureCanvas-webrtc.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170870

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:38 PM Changeset in webkit [216551] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Cap the number of FTL compilation threads on iOS to 2
https://bugs.webkit.org/show_bug.cgi?id=171887

Reviewed by Filip Pizlo.

Set an iOS specific max of 2 threads.

  • runtime/Options.h:
3:35 PM Changeset in webkit [216550] by commit-queue@webkit.org
  • 25 edits
    2 deletes in trunk

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

Caused a test failure (Requested by eric_carlson on #webkit).

Reverted changeset:

"[MediaStream] deviceId constraint doesn't work with
getUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=171877
http://trac.webkit.org/changeset/216545

3:30 PM Changeset in webkit [216549] by Alan Bujtas
  • 6 edits
    2 adds in trunk

resetFlowThreadContainingBlockAndChildInfoIncludingDescendants should not ignore RenderElement subtrees.
https://bugs.webkit.org/show_bug.cgi?id=171873
<rdar://problem/32004954>

Reviewed by Simon Fraser.

Source/WebCore:

Normally a RenderBlock's parent is another RenderBlock, but In some cases (e.g. tables) a RenderBlock can
have a non-RenderBlock(RenderBox) ancestor.
While updating the flow thread state on a subtree, we should descent into subtrees with RenderElement
roots and not just RenderBlocks so that we clear the state on the entire subtree.

Test: fast/multicol/crash-when-column-inside-table.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants):

  • rendering/RenderBlock.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants):

  • rendering/RenderElement.h:

LayoutTests:

  • fast/multicol/crash-when-column-inside-table-expected.txt: Added.
  • fast/multicol/crash-when-column-inside-table.html: Added.
3:28 PM Changeset in webkit [216548] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[iOS Simulator] Flaky failure LayoutTest/webrtc/libwebrtc/release-while-setting-local-description.html
https://bugs.webkit.org/show_bug.cgi?id=171742

Reviewed by Youenn Fablet.

Silence the console messages for unhandled rejections in this test.

  • webrtc/libwebrtc/release-while-setting-local-description-expected.txt:
  • webrtc/libwebrtc/release-while-setting-local-description.html:
3:27 PM Changeset in webkit [216547] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Heap::heap() should behave gracefully for null pointers
https://bugs.webkit.org/show_bug.cgi?id=171888
<rdar://problem/32005315>

Reviewed by Mark Lam.

Some callers of Heap::heap() can pass a null cell and they will behave gracefully if we
return a null Heap. So, let's do that.

This fixes a crash and it does not hurt performance. I'm seeing a possible 0.5% regression
with 74% probability. That's a neutral result by our usual 95% standard.

  • heap/HeapInlines.h:

(JSC::Heap::heap):

3:18 PM Changeset in webkit [216546] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Assertion failed: Cannot select item with unexpected parent bar. (at NavigationBar.js:132)
https://bugs.webkit.org/show_bug.cgi?id=171885

Reviewed by Matt Baker.

This new assertion revealed a real misuse of the NavigationBar API.

  • UserInterface/Views/NavigationBar.js:

(WebInspector.NavigationBar.prototype.set selectedNavigationItem):
Improve this to be an assertion so it can be paused at using the debugger.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.prototype._changeViewMode):
We need to set a NavigationItem as the selected item, not its identifier.
Look up the corresponding item for the identifier that we received (the view mode).

3:06 PM Changeset in webkit [216545] by eric.carlson@apple.com
  • 25 edits
    2 adds in trunk

[MediaStream] deviceId constraint doesn't work with getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=171877
<rdar://problem/31899730>

Reviewed by Jer Noble.

Source/WebCore:

Test: fast/mediastream/get-user-media-device-id.html

  • Modules/mediastream/MediaConstraintsImpl.h:

(WebCore::MediaConstraintsData::MediaConstraintsData): Add a constructor that
takes a const MediaConstraints&.

  • Modules/mediastream/MediaDevicesEnumerationRequest.cpp:

(WebCore::MediaDevicesEnumerationRequest::topLevelDocumentOrigin): Don't return
NULL for the main frame so the origin matches that returned for a UserMediaRequest.

  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::setDeviceIDHashSalt): Deleted, not used.
(WebCore::UserMediaController::deviceIDHashSalt): Deleted, not used.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow): Add device ID hash salt parameter, set it on
constraints.

  • Modules/mediastream/UserMediaRequest.h:
  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): ASSERT if called for DeviceId.
(WebCore::RealtimeMediaSource::selectSettings): Special case DeviceId because it
we have to hash the device ID before comparing, and because the DeviceId can't be
changed so it should never be added to the flattened constraints.

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:

(WebCore::RealtimeMediaSourceSupportedConstraints::nameForConstraint): Deleted, unused.
(WebCore::RealtimeMediaSourceSupportedConstraints::constraintFromName): Deleted, unused.

  • platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints): Pass device
id, not empty string.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaConstraintsData>::encode): Encode deviceIDHashSalt.
(IPC::ArgumentCoder<MediaConstraintsData>::decode): Decode deviceIDHashSalt.

  • UIProcess/UserMediaPermissionCheckProxy.cpp:

(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): Initialize
completion handler, frame ID, and security origins.
(WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): Complete by calling
completion handler because we now sometimes request access info before calling gUM.
(WebKit::UserMediaPermissionCheckProxy::invalidate): Clear completion handler.

  • UIProcess/UserMediaPermissionCheckProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::FrameAuthorizationState::FrameAuthorizationState): Take security origins, not
UserMediaPermissionRequestProxy, so it can be constructed with a UserMediaPermissionCheckProxy.
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual): Ditto. Clear has salt
when origins don't match.
(WebKit::UserMediaPermissionRequestManagerProxy::stateForRequest): Templatize.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): Fix typo.
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Ditto.
Don't set state for empty UIDs. Pass hash salt to web process.
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
The device ID hash salt is now required to validate constraints, so get it first.
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Helper
method used to get the device ID hash salt.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Restructure
to use getUserMediaPermissionInfo.
(WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted): Add device ID
hash salt parameter.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted): Ditto.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::createCaptureSource): Use new MediaConstraintsData
constructor.

LayoutTests:

  • fast/mediastream/get-user-media-device-id-expected.txt: Added.
  • fast/mediastream/get-user-media-device-id.html: Added.
2:52 PM Changeset in webkit [216544] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Modern Media Controls] Localized strings aren't loaded
https://bugs.webkit.org/show_bug.cgi?id=171884

Patch by Antoine Quint <Antoine Quint> on 2017-05-09
Reviewed by Dean Jackson.

Remove the extraneous file extension in the file name.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsScript):

2:49 PM Changeset in webkit [216543] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Marked multiple test flaky.
https://bugs.webkit.org/show_bug.cgi?id=171886

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:40 PM Changeset in webkit [216542] by Chris Dumez
  • 8 edits
    3 adds in trunk

Introduce DocumentAndElementEventHandlers IDL interface
https://bugs.webkit.org/show_bug.cgi?id=171879

Reviewed by Simon Fraser and Ryosuke Niwa.

Source/WebCore:

Introduce DocumentAndElementEventHandlers IDL interface:

This avoids duplication between Document.idl and Element.idl.

Also mark oncopy / oncut / onpaste EventHandlers as enumerable to match
the specification.

Test: fast/events/DocumentAndElementEventHandlers.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.idl:
  • dom/DocumentAndElementEventHandlers.idl: Added.
  • dom/Element.idl:

LayoutTests:

  • fast/events/DocumentAndElementEventHandlers-expected.txt: Added.
  • fast/events/DocumentAndElementEventHandlers.html: Added.

Add layout test coverage.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline now that those event handlers are enumerable.

2:35 PM Changeset in webkit [216541] by dino@apple.com
  • 29 edits
    5 adds in trunk

Restrict SVG filters to accessible security origins
https://bugs.webkit.org/show_bug.cgi?id=118689
<rdar://problem/27362159>

Reviewed by Brent Fulgham.

Source/WebCore:

Certain SVG filters should only be allowed to operate
on content that is has SecurityOrigin access to. Implement
this by including a flag in PaintInfo and LayerPaintingInfo,
and have RenderWidget make sure the documents have acceptable
SecurityOrigins as it goes to paint.

This could be used as the first step in a "safe painting"
strategy, allowing some content to be rendered into a
canvas or via the element() CSS function... but it is only
a small first step.

Test: http/tests/css/filters-on-iframes.html

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::paint):

  • platform/ScrollView.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::paint):

  • platform/Scrollbar.h:
  • platform/Widget.h:
  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::shouldBeRestrictedBySecurityOrigin):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::hasFilterThatShouldBeRestrictedBySecurityOrigin):

  • platform/graphics/filters/FilterOperations.h:
  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):

  • rendering/FilterEffectRenderer.h:
  • rendering/PaintInfo.h:

(WebCore::PaintInfo::PaintInfo):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):

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

(WebCore::RenderScrollbar::paint):

  • rendering/RenderScrollbar.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents):

Source/WebKit2:

Update parameter lists.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::paint):

  • WebProcess/Plugins/PluginView.h:

LayoutTests:

Add a test that shows safe frames, unsafe frames, and
then a safe frame that itself has an unsafe frame, to
show that the security requirements are being forwarded
down the tree.

  • http/tests/css/filters-on-iframes-expected.html: Added.
  • http/tests/css/filters-on-iframes.html: Added.
  • http/tests/css/resources/blank.html: Added.
  • http/tests/css/resources/references-external.html: Added.
  • http/tests/css/resources/solid-red.html: Added.
2:21 PM Changeset in webkit [216540] by Chris Dumez
  • 9 edits
    2 adds in trunk

Move onanimation* EventHandlers to GlobalEventHandlers
https://bugs.webkit.org/show_bug.cgi?id=171874

Reviewed by Simon Fraser.

Source/WebCore:

Move onanimation* EventHandlers to GlobalEventHandlers to match the specification:

We previously have those on Window and Element only. Firefox complies with the
specification.

Test: fast/css/onanimation-eventhandlers.html

  • dom/Element.idl:
  • dom/GlobalEventHandlers.idl:
  • page/DOMWindow.idl:

LayoutTests:

  • fast/css/onanimation-eventhandlers-expected.txt: Added.
  • fast/css/onanimation-eventhandlers.html: Added.

Add layout test coverage.

  • fast/dom/event-handler-attributes-expected.txt:
  • fast/dom/event-handler-attributes.html:
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline existing tests to reflect behavior change.

2:04 PM Changeset in webkit [216539] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Fixed a typo in expectations file.
https://bugs.webkit.org/show_bug.cgi?id=162710

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [216538] by Jon Davis
  • 3 edits in trunk/PerformanceTests

[ARES6] Improved the running test indicator
https://bugs.webkit.org/show_bug.cgi?id=171400

Running tests show a triangle before the test title and the titles are white.

Reviewed by Joseph Pecoraro.

  • ARES-6/index.html:
  • ARES-6/styles.css:

(.test .running):
(.test .running:before):
(.test .indicator): Deleted.
(.test .indicator.running): Deleted.
(@keyframes test-running): Deleted.

1:58 PM Changeset in webkit [216537] by commit-queue@webkit.org
  • 9 edits
    2 copies
    20 adds in trunk

Refresh webrtc WPT tests
https://bugs.webkit.org/show_bug.cgi?id=171878

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-09
Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/webrtc/OWNERS:
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt: Added.
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html: Added.
  • web-platform-tests/webrtc/RTCDataChannel-id-expected.txt: Added.
  • web-platform-tests/webrtc/RTCDataChannel-id.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-constructor-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-constructor.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-idl-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-idl.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html: Added.
  • web-platform-tests/webrtc/datachannel-idlharness-expected.txt: Added.
  • web-platform-tests/webrtc/datachannel-idlharness.html: Added.
  • web-platform-tests/webrtc/getstats-expected.txt: Added.
  • web-platform-tests/webrtc/getstats.html: Added.
  • web-platform-tests/webrtc/interfaces-expected.txt: Added.
  • web-platform-tests/webrtc/interfaces.html: Added.
  • web-platform-tests/webrtc/no-media-call.html:
  • web-platform-tests/webrtc/promises-call.html:
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt:
  • web-platform-tests/webrtc/simplecall.html:
  • web-platform-tests/webrtc/w3c-import.log:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html

imported/w3c/web-platform-tests/webrtc/RTCDataChannel-id.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-constructor.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-createDataChannel.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-idl.html
imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html
imported/w3c/web-platform-tests/webrtc/datachannel-idlharness.html
imported/w3c/web-platform-tests/webrtc/getstats.html
imported/w3c/web-platform-tests/webrtc/interfaces.html

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createDataChannel): exiting early if libwebrtc is not creating a data channel.

1:48 PM Changeset in webkit [216536] by jfernandez@igalia.com
  • 16 edits in trunk

space-evenly misbehaves with flexbox
https://bugs.webkit.org/show_bug.cgi?id=170445

Reviewed by David Hyatt.

Source/WebCore:

The CSS Box Alignment specification defines the <content-distribution>
set as some of the allowed values for the Content Distribution
properties, align-content and justify-content. The 'space-evenly' value
is not among the ones allowed for these properties according to the CSS
Flexible Box specification.

The CSS Flexbible box specification states that it must follow the CSS
Box Alignment specification, so this new value must be considered as
part of an upgraded level of the spec, which should be implemented
eventually.

Since we have already shipped an implementation of the new CSS Box
Alignment values for CSS Grid Layout, we need to implement it for
Flexbox as well.

No new tests, but several new test cases added.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::initialJustifyContentOffset):
(WebCore::justifyContentSpaceBetweenChildren):
(WebCore::initialAlignContentOffset):
(WebCore::alignContentSpaceBetweenChildren):

LayoutTests:

Added test cases for the 'space-evenly' value for align-content and justify-content.

  • css3/flexbox/alignContent-applies-with-flexWrap-wrap-with-single-line-expected.txt:
  • css3/flexbox/alignContent-applies-with-flexWrap-wrap-with-single-line.html:
  • css3/flexbox/css-properties-expected.txt:
  • css3/flexbox/css-properties.html:
  • css3/flexbox/flex-justify-content-expected.txt:
  • css3/flexbox/flex-justify-content.html:
  • css3/flexbox/multiline-align-content-expected.txt:
  • css3/flexbox/multiline-align-content-horizontal-column-expected.txt:
  • css3/flexbox/multiline-align-content-horizontal-column.html:
  • css3/flexbox/multiline-align-content.html:
  • css3/flexbox/resources/flexbox.css:

(.align-content-space-around):
(.justify-content-space-around):

  • css3/flexbox/true-centering-expected.txt:
  • css3/flexbox/true-centering.html:
1:24 PM Changeset in webkit [216535] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

Avoid -Wformat warnings in RenderLayerCompositor.cpp and RenderLayerBacking.cpp
https://bugs.webkit.org/show_bug.cgi?id=171875

Reviewed by Simon Fraser.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

1:01 PM Changeset in webkit [216534] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop custom bindings code for Window.location setter
https://bugs.webkit.org/show_bug.cgi?id=171846

Reviewed by Sam Weinig.

Drop custom bindings code for Window.location setter as the custom code was merely needed
to address a very old Mac widget that has long been fixed (rdar://problem/5695330).

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setLocation): Deleted.
Drop custom code.

  • page/DOMWindow.idl:

Align Window.location with https://html.spec.whatwg.org/#the-window-object:

  • Mark property as readonly.
  • Add [PutsForward=href] IDL extended attribute.

Also, we need to mark the atribute as nullable as this reflects our current implementation.
We currently return null if the associated Window does not have a frame. This does not match
the specification and we should update our implementation in the future to never return null.

12:27 PM Changeset in webkit [216533] by Ryan Haddad
  • 8 edits
    1 add in branches/safari-603-branch/Tools

Merge r213654. rdar://problem/32074957

12:15 PM Changeset in webkit [216532] by Matt Lewis
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r216508.

The layout test enabled in this change is failing on Sierra.

Reverted changeset:

"Invalid MediaSource duration value should throw TyperError
instead of InvalidStateError"
https://bugs.webkit.org/show_bug.cgi?id=171653
http://trac.webkit.org/changeset/216508

11:44 AM Changeset in webkit [216531] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=171823

Reviewed by Carlos Alberto Lopez Perez.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::UserAgentQuirks::firefoxRevisionString):

11:42 AM Changeset in webkit [216530] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

RealtimeOutgoingAudioSource is crashing when given data with more than two channels
https://bugs.webkit.org/show_bug.cgi?id=171868

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-09
Reviewed by Eric Carlson.

Manual testing.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::libwebrtcAudioFormat): Capping the number of channels to 2.
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):

11:34 AM Changeset in webkit [216529] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked media/element-containing-pip-video-going-into-fullscreen.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=162710

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:07 AM Changeset in webkit [216528] by Jonathan Bedard
  • 3 edits in trunk/Tools

build ImageDiff with host SDK from Make
https://bugs.webkit.org/show_bug.cgi?id=171835

Reviewed by Alexey Proskuryakov.

ImageDiff should be built for the default SDK and default architecture when
the SDKROOT is set to either iOS device or iOS simulator. Check the
DO_NOT_BUILD_IMAGE_DIFF flag to skip the ImageDiff build.

  • ImageDiff/Makefile: Use Mac SDK when building for iOS Simulator or iOS device.
  • Makefile: Do not build ImageDiff if the DO_NOT_BUILD_IMAGE_DIFF flag is set.
11:05 AM Changeset in webkit [216527] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216431. rdar://problem/31971208

11:05 AM Changeset in webkit [216526] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/JavaScriptCore

Cherry-pick r216309. rdar://problem/31971364

11:05 AM Changeset in webkit [216525] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216120. rdar://problem/31970955

11:05 AM Changeset in webkit [216524] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216096. rdar://problem/31971264

11:05 AM Changeset in webkit [216523] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216023. rdar://problem/31971371

11:05 AM Changeset in webkit [216522] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Cherry-pick r215971. rdar://problem/31971140

11:05 AM Changeset in webkit [216521] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-603-branch

Cherry-pick r215596. rdar://problem/31971150

11:05 AM Changeset in webkit [216520] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r215528. rdar://problem/31971331

11:05 AM Changeset in webkit [216519] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-603-branch

Cherry-pick r215351. rdar://problem/31631922

11:04 AM Changeset in webkit [216518] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Cherry-pick r214554. rdar://problem/31971164

11:02 AM Changeset in webkit [216517] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

font-stretch: normal selects expanded fonts instead of condensed fonts
https://bugs.webkit.org/show_bug.cgi?id=171838
<rdar://problem/31005481>

Reviewed by Jon Lee.

Source/WebCore:

CSS Fonts level 3 says: "If the value of ‘font-stretch’ is ‘normal’ or one of the condensed
values, narrower width values are checked first, then wider values."

CSS Fonts level 4 erroneously was incompatible with this, but was updated in
https://github.com/w3c/csswg-drafts/commit/4559389d183bbaaf3321af5ba1c924caa7c488bb
to be consistent with this.

Now, CSS Fonts level 4 states: "If the desired stretch value is less than or equal to100,
stretch values below the desired stretch value are checked in descending order followed by
stretch values above the desired stretch value in ascending order"

Test: fast/text/font-width-100.html

  • platform/graphics/FontSelectionAlgorithm.cpp:

LayoutTests:

  • fast/text/font-width-100-expected.html: Added.
  • fast/text/font-width-100.html: Added.
10:56 AM Changeset in webkit [216516] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.21-branch/Source

Versioning.

10:36 AM Changeset in webkit [216515] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Mark storage/indexeddb/modern/idbtransaction-objectstore-failures.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171862

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:34 AM Changeset in webkit [216514] by Matt Lewis
  • 2 edits in trunk/Tools

Unreviewed, adding myself to contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
10:15 AM Changeset in webkit [216513] by commit-queue@webkit.org
  • 15 edits
    5 adds in trunk

[Readable Streams API] Enable creation of ReadableStreamBYOBReader
https://bugs.webkit.org/show_bug.cgi?id=171665

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-09
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:

Updated expectations.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:

Source/WebCore:

Enabled the creation of ReadableStreamBYOBReader.

Test: streams/readable-stream-byob-reader.html

  • CMakeLists.txt: Updated to support ReadableStreamBYOBReader.
  • DerivedSources.cpp: Updated to support ReadableStreamBYOBReader.
  • DerivedSources.make: Updated to support ReadableStreamBYOBReader.
  • Modules/streams/ReadableByteStreamInternals.js: Updated to support ReadableStreamBYOBReader.

(privateInitializeReadableStreamBYOBReader):
(isReadableStreamBYOBReader):

  • Modules/streams/ReadableStream.js: Updated to support ReadableStreamBYOBReader.

(getReader):

  • Modules/streams/ReadableStreamBYOBReader.idl: Added.
  • Modules/streams/ReadableStreamBYOBReader.js: Added.

(cancel): To be implemented.
(read): To be implemented.
(releaseLock): To be implemented.
(closed): To be implemented.

  • WebCore.xcodeproj/project.pbxproj: Updated to support ReadableStreamBYOBReader.
  • bindings/js/JSDOMGlobalObject.cpp: Updated to support ReadableStreamBYOBReader.

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp: Updated to support ReadableStreamBYOBReader.

(WebCore::constructJSReadableStreamReaderGeneric):
(WebCore::constructJSReadableStreamDefaultReader):
(WebCore::constructJSReadableStreamBYOBReader):
(WebCore::JSBuiltinReadableStreamBYOBReaderPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamBYOBReaderPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h: Updated to support ReadableStreamBYOBReader.
  • bindings/js/WebCoreBuiltinNames.h: Updated to support ReadableStreamBYOBReader.

LayoutTests:

Added test to check the creation of ReadableStreamBYOBReader. Also check
that created object has the right methods and properties.

  • streams/readable-stream-byob-reader-expected.txt: Added.
  • streams/readable-stream-byob-reader.html: Added.
  • streams/readable-stream-byob-reader.js: Added.
10:11 AM Changeset in webkit [216512] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Force StaticStringImpl constructor to use the constexpr versions of StringImplShape constructors.
https://bugs.webkit.org/show_bug.cgi?id=171861

Reviewed by Yusuke Suzuki.

This is strictly necessary for correctness of the StaticStringImpl implementation.
We force the constructor selection by adding an extra dummy argument to the
constexpr versions of the StringImplShape constructors to disambiguate them from
the non-constexpr versions.

  • wtf/text/StringImpl.h:

(WTF::StringImplShape::StringImplShape):
(WTF::StringImpl::StaticStringImpl::StaticStringImpl):

10:10 AM Changeset in webkit [216511] by commit-queue@webkit.org
  • 36 edits in trunk

Print more properties in the output of scrolling trees
https://bugs.webkit.org/show_bug.cgi?id=171858

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-09
Reviewed by Simon Fraser.

Source/WebCore:

No new tests, no behavior changes.

  • page/scrolling/ScrollingCoordinator.cpp: Implement << operator to print ScrollableAreaParameters.

(WebCore::operator<<):

  • page/scrolling/ScrollingCoordinator.h: Declare new << operator.
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp: Print new properties.

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateScrollingNode.cpp: ditto.

(WebCore::ScrollingStateScrollingNode::dumpProperties):

  • page/scrolling/ScrollingTreeScrollingNode.cpp: ditto.

(WebCore::ScrollingTreeScrollingNode::dumpProperties):

LayoutTests:

Update text expectations to include new properties.

  • fast/scrolling/ios/remove-scrolling-role-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
  • tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt:
  • tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
9:51 AM Changeset in webkit [216510] by Chris Dumez
  • 9 edits
    2 adds in trunk

ontransitionend eventHandler should be in GlobalEventHandlers
https://bugs.webkit.org/show_bug.cgi?id=171836

Reviewed by Ryosuke Niwa.

Source/WebCore:

ontransitionend eventHandler should be in GlobalEventHandlers:

WebKit currently has in on Window and Element only. Firefox matches the specification.

Test: fast/css/ontransitionend-eventhandler.html

  • dom/Element.idl:
  • dom/GlobalEventHandlers.idl:
  • page/DOMWindow.idl:

LayoutTests:

  • fast/css/ontransitionend-eventhandler-expected.txt: Added.
  • fast/css/ontransitionend-eventhandler.html: Added.

Add layout test coverage.

  • fast/dom/event-handler-attributes-expected.txt:
  • fast/dom/event-handler-attributes.html:
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline existing tests to reflect behavior change.

9:00 AM Changeset in webkit [216509] by nael.ouedraogo@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

MediaSource.readyState should use an IDL enum
https://bugs.webkit.org/show_bug.cgi?id=171672

Reviewed by Eric Carlson and Chris Dumez.

MediaSource.readyState should use an IDL enum as per specification
(https://www.w3.org/TR/2016/CR-media-source-20160503/#idl-def-ReadyState).

No new tests required since no behavior change.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::toString):
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::setPrivateAndOpen):
(WebCore::MediaSource::buffered):
(WebCore::MediaSource::setReadyState):
(WebCore::MediaSource::streamEndedWithError):
(WebCore::MediaSource::isOpen):
(WebCore::MediaSource::isClosed):
(WebCore::MediaSource::isEnded):
(WebCore::MediaSource::detachFromElement):
(WebCore::MediaSource::openIfInEndedState):
(WebCore::MediaSource::stop):
(WebCore::MediaSource::onReadyStateChange):

  • Modules/mediasource/MediaSource.h:
  • Modules/mediasource/MediaSource.idl:
8:58 AM Changeset in webkit [216508] by nael.ouedraogo@crf.canon.fr
  • 5 edits
    2 adds in trunk

Invalid MediaSource duration value should throw TyperError instead of InvalidStateError
https://bugs.webkit.org/show_bug.cgi?id=171653

Reviewed by Youenn Fablet.

Modify MediaSource::setDuration to throw a TypeError when duration value is invalid as per MSE specification
(https://www.w3.org/TR/2016/REC-media-source-20161117/#dom-mediasource-duration).

Update expectation of corresponding WPT test.

Source/WebCore:

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::setDuration):
(WebCore::MediaSource::setDurationInternal):

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Added.
8:06 AM Changeset in webkit [216507] by Yusuke Suzuki
  • 3 edits in trunk/Source/WebCore

Unreviewed, update binding-tests results
https://bugs.webkit.org/show_bug.cgi?id=166752

  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
8:04 AM Changeset in webkit [216506] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Update DocumentOrShadowRoot.idl to match specifications
https://bugs.webkit.org/show_bug.cgi?id=171845

Reviewed by Ryosuke Niwa.

Update DocumentOrShadowRoot.idl to match specifications:

No Web-facing behavior change. Things that do not match the specification were merely
annotated with FIXME comments.

  • dom/Document.idl:
  • dom/DocumentOrShadowRoot.idl:
7:53 AM Changeset in webkit [216505] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: ImageDiff not building with make
https://bugs.webkit.org/show_bug.cgi?id=171788

Reviewed by Alex Christensen.

  • Makefile: Build ImageDiff for all platforms.
7:50 AM Changeset in webkit [216504] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[Win] ImageDiff isn't built since Bug 168945
https://bugs.webkit.org/show_bug.cgi?id=171847

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-09
Reviewed by Alex Christensen.

  • CMakeLists.txt: Add 'ImageDiff' sub-directory to build if WIN32.
  • ImageDiff/ImageDiff.cpp: Include some header files to fix compilation errors.
  • ImageDiff/PlatformWin.cmake: Define USE_CAIRO if WinCairo port.
6:00 AM Changeset in webkit [216503] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix macOS ports using ApplePay
https://bugs.webkit.org/show_bug.cgi?id=166752

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

5:38 AM Changeset in webkit [216502] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[Coordinated Graphics] Debug Visuals don't hide
https://bugs.webkit.org/show_bug.cgi?id=162704

Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-05-09
Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
showDebugBorders() and showRepaintCounter() of CoordinatedGraphicsLayer should reflect
the "show" argument to the layer state.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

(WebCore::DebugVisuals::DebugVisuals):
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
To set the debug visuals of a layer, the visibility flags of the borders and the repaint
counters as well as the border width and color are needed. Thus a new bundle struct
DebugVisuals and its change flag debugVisualsChanged have been introduced in order to
send the information at once.

Source/WebKit2:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
(IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
(IPC::ArgumentCoder<DebugVisuals>::encode):
(IPC::ArgumentCoder<DebugVisuals>::decode):
The encoder and decoder for DebugVisuals have been added.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):
Update the debug visuals of a layer according to the DebugVisuals information
if the debugVisualsChanged flag is set to true.

5:17 AM Changeset in webkit [216501] by Yusuke Suzuki
  • 59 edits
    2 copies
    1 move
    4 adds in trunk

Handle IDLPromise<> properly
https://bugs.webkit.org/show_bug.cgi?id=166752

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

Add JSPromise::resolve static function.
This applies Promise.resolve() conversion to a given value.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::promiseResolveFunction):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::resolve):

  • runtime/JSPromise.h:

Source/WebCore:

This patch implements WebIDL Promise type conversion. According to the spec,
Promise takes a value and convert it to Promise by using Promise.resolve function.
We implement JSPromise::resolve in JSC and use it in JSDOMConvertPromise.

In conversion phase, we just convert the value to JSC::JSPromise* and hold it in
PromiseRejectionEvent. On the other hand, In this patch, we newly introduce a new
type DOMPromise and use it in RejectedPromiseTracker. And we also rename the previous
DOMPromise to DOMPromiseDeferred since it is corresponding to JSPromiseDeferred.
DOMPromise is DOMGuarded object. So it is strongly referenced from ScriptExecutionContext
and it is weakly referenced from the object itself. This is important since Strong<JSPromise>
reference in C++ object that has a wrapper (in this case, PromiseRejectionEvent) easily causes
cyclic reference. We hold it as DOMPromise instead of Strong<JSPromise> in RejectedPromiseTracker
to break the cyclic reference edge with weak reference.

In the meantime, we still use JSC::Strong<> in PromiseRejectionEvent. It leaks memory if promise
refers the wrapper object of PromiseRejectionEvent. CustomEvent also has the same problem.
This is a general problem that attribute any can create cyclic reference. And they should be
fixed in a different patch.

Currently, we do not take the following approach. e.g. There is C++ object that represents Promise.
And its wrapper object is JSPromise thing. When exposing the C++ object, it will be converted to a
wrapper object. We do not take this approach because PromiseRejectionEvent can take user-provided promise.
For example, users can create PromiseRejectionEvent in a form
new PromiseRejectionEvent("...", { promise: promise }). In this case, event.promise === promise
is required. And this is not suitable for the above C++ object model.

Large part of this patch is mechanical one to replace DOMPromise with DOMPromiseDeferred.

  • CMakeLists.txt:
  • Modules/applepay/ApplePaySession.cpp:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeySystemAccess.h:
  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/NavigatorEME.h:
  • Modules/fetch/DOMWindowFetch.h:
  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyConsumer.h:
  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::replaceTrack):
(WebCore::MediaEndpointPeerConnection::replaceTrackTask):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::applyConstraints):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescription):
(WebCore::PeerConnectionBackend::setRemoteDescription):
(WebCore::PeerConnectionBackend::addIceCandidate):

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::endOfIceCandidates):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
(WebCore::RTCPeerConnection::enqueueReplaceTrackTask):
(WebCore::RTCPeerConnection::replaceTrack):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::UserMediaRequest):

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::replaceTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/streams/ReadableStreamSource.h:

(WebCore::ReadableStreamSource::start):
(WebCore::ReadableStreamSource::pull):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::addReaction):
(WebCore::AudioContext::setState):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):

  • Modules/webaudio/AudioContext.h:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h:
  • bindings/js/CachedModuleScriptLoaderClient.h:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSCustomElementRegistryCustom.cpp:
  • bindings/js/JSDOMConvertPromise.h:

(WebCore::Converter<IDLPromise<T>>::convert):
(WebCore::JSConverter<IDLPromise<T>>::convert):

  • bindings/js/JSDOMExceptionHandling.cpp:
  • bindings/js/JSDOMGlobalObject.cpp:
  • bindings/js/JSDOMGuardedObject.h:
  • bindings/js/JSDOMPromise.h:

(WebCore::DOMPromise::create):
(WebCore::DOMPromise::promise):
(WebCore::DOMPromise::DOMPromise):
(WebCore::DeferredPromise::create): Deleted.
(WebCore::DeferredPromise::resolve): Deleted.
(WebCore::DeferredPromise::resolveWithNewlyCreated): Deleted.
(WebCore::DeferredPromise::reject): Deleted.
(WebCore::DeferredPromise::resolveWithCallback): Deleted.
(WebCore::DeferredPromise::rejectWithCallback): Deleted.
(WebCore::DeferredPromise::DeferredPromise): Deleted.
(WebCore::DeferredPromise::deferred): Deleted.
(WebCore::DOMPromiseBase::DOMPromiseBase): Deleted.
(WebCore::DOMPromiseBase::operator=): Deleted.
(WebCore::DOMPromiseBase::reject): Deleted.
(WebCore::DOMPromiseBase::rejectType): Deleted.
(WebCore::DOMPromiseBase::promise): Deleted.
(WebCore::DOMPromise::resolve): Deleted.
(WebCore::DOMPromise<void>::resolve): Deleted.
(WebCore::callPromiseFunction): Deleted.
(WebCore::bindingPromiseFunctionAdapter): Deleted.

  • bindings/js/JSDOMPromiseDeferred.cpp: Renamed from Source/WebCore/bindings/js/JSDOMPromise.cpp.

(WebCore::DeferredPromise::promise):
(WebCore::DeferredPromise::callFunction):
(WebCore::DeferredPromise::reject):
(WebCore::rejectPromiseWithExceptionIfAny):
(WebCore::createDeferredPromise):
(WebCore::createRejectedPromiseWithTypeError):
(WebCore::parseAsJSON):
(WebCore::fulfillPromiseWithJSON):
(WebCore::fulfillPromiseWithArrayBuffer):

  • bindings/js/JSDOMPromiseDeferred.h: Copied from Source/WebCore/bindings/js/JSDOMPromise.h.

(WebCore::DeferredPromise::create):
(WebCore::DeferredPromise::resolve):
(WebCore::DeferredPromise::resolveWithNewlyCreated):
(WebCore::DeferredPromise::reject):
(WebCore::DeferredPromise::resolveWithCallback):
(WebCore::DeferredPromise::rejectWithCallback):
(WebCore::DeferredPromise::DeferredPromise):
(WebCore::DeferredPromise::deferred):
(WebCore::DOMPromiseDeferredBase::DOMPromiseDeferredBase):
(WebCore::DOMPromiseDeferredBase::operator=):
(WebCore::DOMPromiseDeferredBase::reject):
(WebCore::DOMPromiseDeferredBase::rejectType):
(WebCore::DOMPromiseDeferredBase::promise):
(WebCore::DOMPromiseDeferred::resolve):
(WebCore::DOMPromiseDeferred<void>::resolve):
(WebCore::callPromiseFunction):
(WebCore::bindingPromiseFunctionAdapter):

  • bindings/js/JSSubtleCryptoCustom.cpp:
  • bindings/js/JSWebGPUCommandBufferCustom.cpp:
  • bindings/js/JSWebKitSubtleCryptoCustom.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: Added.

(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):
(WebCore::JSTestPromiseRejectionEventPrototype::create):
(WebCore::JSTestPromiseRejectionEventPrototype::createStructure):
(WebCore::JSTestPromiseRejectionEventPrototype::JSTestPromiseRejectionEventPrototype):
(WebCore::JSTestPromiseRejectionEventConstructor::construct):
(WebCore::JSTestPromiseRejectionEventConstructor::prototypeForStructure):
(WebCore::JSTestPromiseRejectionEventConstructor::initializeProperties):
(WebCore::JSTestPromiseRejectionEventPrototype::finishCreation):
(WebCore::JSTestPromiseRejectionEvent::JSTestPromiseRejectionEvent):
(WebCore::JSTestPromiseRejectionEvent::finishCreation):
(WebCore::JSTestPromiseRejectionEvent::createPrototype):
(WebCore::JSTestPromiseRejectionEvent::prototype):
(WebCore::BindingCaller<JSTestPromiseRejectionEvent>::castForAttribute):
(WebCore::jsTestPromiseRejectionEventPromise):
(WebCore::jsTestPromiseRejectionEventPromiseGetter):
(WebCore::jsTestPromiseRejectionEventReason):
(WebCore::jsTestPromiseRejectionEventReasonGetter):
(WebCore::jsTestPromiseRejectionEventConstructor):
(WebCore::setJSTestPromiseRejectionEventConstructor):
(WebCore::JSTestPromiseRejectionEvent::getConstructor):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h: Added.

(WebCore::JSTestPromiseRejectionEvent::create):
(WebCore::JSTestPromiseRejectionEvent::createStructure):
(WebCore::JSTestPromiseRejectionEvent::wrapped):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/TestPromiseRejectionEvent.idl: Copied from Source/WebCore/bindings/js/CachedModuleScriptLoaderClient.h.
  • css/FontFace.h:
  • css/FontFaceSet.h:
  • dom/CustomElementRegistry.h:
  • dom/PromiseRejectionEvent.h:
  • dom/RejectedPromiseTracker.cpp:

(WebCore::UnhandledPromise::UnhandledPromise):
(WebCore::UnhandledPromise::callStack):
(WebCore::UnhandledPromise::promise):
(WebCore::RejectedPromiseTracker::promiseRejected):
(WebCore::RejectedPromiseTracker::promiseHandled):
(WebCore::RejectedPromiseTracker::reportUnhandledRejections):
(WebCore::RejectedPromiseTracker::reportRejectionHandled):
(WebCore::RejectedPromise::RejectedPromise): Deleted.
(WebCore::RejectedPromise::globalObject): Deleted.
(WebCore::RejectedPromise::promise): Deleted.

  • dom/RejectedPromiseTracker.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::rejectPendingPlayPromises):
(WebCore::HTMLMediaElement::resolvePendingPlayPromises):
(WebCore::HTMLMediaElement::play):

  • html/HTMLMediaElement.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:
  • testing/Internals.h:

LayoutTests:

  • js/dom/promise-rejection-event-should-follow-webidl-promise-conversion-rule-expected.txt: Added.
  • js/dom/promise-rejection-event-should-follow-webidl-promise-conversion-rule.html: Added.
5:03 AM Changeset in webkit [216500] by zandobersek@gmail.com
  • 1 edit
    3007 adds in trunk/LayoutTests

Unreviewed. Landing the WPE layout test baselines.

Baseline filenames are omitted for brevity.

  • platform/wpe/TestExpectations: Added.
  • platform/wpe/animations/: Added.
  • platform/wpe/css1/: Added.
  • platform/wpe/css2.1/: Added.
  • platform/wpe/css3/: Added.
  • platform/wpe/fast/: Added.
  • platform/wpe/ietestcenter/: Added.
  • platform/wpe/js/: Added.
  • platform/wpe/scrollbars/: Added.
  • platform/wpe/security/: Added.
  • platform/wpe/sputnik/: Added.
  • platform/wpe/tables/: Added.
  • platform/wpe/transforms/: Added.
  • platform/wpe/transitions/: Added.
4:14 AM Changeset in webkit [216499] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.14.7

WebKitGTK+ 2.14.7

4:09 AM Changeset in webkit [216498] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.14.7 release.

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.14.7.
4:07 AM Changeset in webkit [216497] by zandobersek@gmail.com
  • 95 edits
    130 adds in trunk

Upstream the WPE port
https://bugs.webkit.org/show_bug.cgi?id=171110

Reviewed by Alex Christensen.

.:

webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html

  • CMakeLists.txt: Add the WPE port identifier.
  • Source/cmake/FindLibGBM.cmake: Added.
  • Source/cmake/FindWPEBackend-mesa.cmake: Added.
  • Source/cmake/FindWPEBackend.cmake: Added.
  • Source/cmake/OptionsWPE.cmake: Added.

Source/JavaScriptCore:

  • PlatformWPE.cmake: Added.
  • shell/PlatformWPE.cmake: Added.

Source/ThirdParty/ANGLE:

  • include/EGL/eglplatform.h:

Allow building WPE on platforms that don't provide X11 libraries.

Source/WebCore:

webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html

Existing files mostly changed to properly use PLATFORM(WPE) build guards.
In-file changes removed from this ChangeLog entry for brevity.

  • CMakeLists.txt:
  • PlatformWPE.cmake: Added.
  • accessibility/AccessibilityObject.h:
  • accessibility/wpe/AXObjectCacheWPE.cpp: Added.
  • accessibility/wpe/AccessibilityObjectWPE.cpp: Copied from Source/WebCore/platform/audio/glib/AudioBusGLib.cpp.
  • config.h:
  • crypto/keys/CryptoKeyEC.h:
  • crypto/keys/CryptoKeyRSA.h:
  • editing/Editor.cpp:
  • editing/Editor.h:
  • editing/wpe/EditorWPE.cpp: Added.
  • page/EventHandler.cpp:
  • page/wpe/EventHandlerWPE.cpp: Added.
  • platform/Cursor.h:
  • platform/DragData.h:
  • platform/DragImage.h:
  • platform/FileSystem.h:
  • platform/MainThreadSharedTimer.cpp:
  • platform/MainThreadSharedTimer.h:
  • platform/Pasteboard.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/SchemeRegistry.cpp:
  • platform/Widget.h:
  • platform/audio/glib/AudioBusGLib.cpp:
  • platform/glib/FileSystemGlib.cpp:
  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/GLContext.cpp:
  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/OpenGLESShims.h:
  • platform/graphics/PlatformDisplay.cpp:
  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/egl/GLContextEGL.cpp:
  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/egl/GLContextEGLWPE.cpp: Copied from Source/WebCore/platform/audio/glib/AudioBusGLib.cpp.
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
  • platform/graphics/wpe/IconWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/graphics/wpe/ImageWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/graphics/wpe/PlatformDisplayWPE.cpp: Added.
  • platform/graphics/wpe/PlatformDisplayWPE.h: Added.
  • platform/wpe/CursorWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/LocalizedStringsWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/PasteboardWPE.cpp: Added.
  • platform/wpe/PlatformKeyboardEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/PlatformPasteboardWPE.cpp: Added.
  • platform/wpe/PlatformScreenWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/RenderThemeWPE.cpp: Copied from Source/WebKit2/Shared/NativeWebWheelEvent.h.
  • platform/wpe/RenderThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/ScrollbarThemeWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/ScrollbarThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/SoundWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/ThemeWPE.cpp: Added.
  • platform/wpe/ThemeWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • platform/wpe/WidgetWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.

Source/WebCore/PAL:

  • pal/PlatformWPE.cmake: Added.

Source/WebKit2:

webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html

Existing files changed to properly use PLATFORM(WPE) build guards or other
WPE-specific additions (e.g. pasteboard support).
In-file changes removed from this ChangeLog entry for brevity.

  • Platform/IPC/glib/GSocketMonitor.cpp:
  • PlatformWPE.cmake: Added.
  • Scripts/generate-forwarding-headers.pl:
  • Shared/API/c/WKBase.h:
  • Shared/API/c/wpe/WKBaseWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • Shared/API/c/wpe/WebKit.h: Added.
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/DrawingAreaInfo.h:
  • Shared/NativeWebKeyboardEvent.h:
  • Shared/NativeWebMouseEvent.h:
  • Shared/NativeWebTouchEvent.h:
  • Shared/NativeWebWheelEvent.h:
  • Shared/WebCoreArgumentCoders.cpp:
  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPreferencesDefinitions.h:
  • Shared/wpe/NativeWebKeyboardEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • Shared/wpe/NativeWebMouseEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • Shared/wpe/NativeWebTouchEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • Shared/wpe/NativeWebWheelEventWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • Shared/wpe/ProcessExecutablePathWPE.cpp: Added.
  • Shared/wpe/WebEventFactory.cpp: Added.
  • Shared/wpe/WebEventFactory.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/wpe/WKAPICastWPE.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/C/wpe/WKView.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/C/wpe/WKView.h: Copied from Source/WebKit2/Shared/NativeWebWheelEvent.h.
  • UIProcess/API/wpe/CompositingManagerProxy.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/wpe/CompositingManagerProxy.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/wpe/CompositingManagerProxy.messages.in: Added.
  • UIProcess/API/wpe/DrawingAreaProxyWPE.cpp: Added.
  • UIProcess/API/wpe/DrawingAreaProxyWPE.h: Copied from Source/WebKit2/Shared/NativeWebWheelEvent.h.
  • UIProcess/API/wpe/PageClientImpl.cpp: Added.
  • UIProcess/API/wpe/PageClientImpl.h: Added.
  • UIProcess/API/wpe/ScrollGestureController.cpp: Added.
  • UIProcess/API/wpe/ScrollGestureController.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/wpe/WPEView.cpp: Added.
  • UIProcess/API/wpe/WPEView.h: Added.
  • UIProcess/API/wpe/WPEViewClient.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/wpe/WPEViewClient.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml: Added.
  • UIProcess/ChildProcessProxy.cpp:
  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp: Added.
  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/wpe/TextCheckerWPE.cpp: Added.
  • UIProcess/wpe/WebInspectorProxyWPE.cpp: Added.
  • UIProcess/wpe/WebPageProxyWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/wpe/WebPasteboardProxyWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • UIProcess/wpe/WebPreferencesWPE.cpp: Copied from Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h.
  • UIProcess/wpe/WebProcessPoolWPE.cpp: Added.
  • WebKit2.xcodeproj/project.pbxproj:
  • WebKit2Prefix.h:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebCoreSupport/wpe/WebContextMenuClientWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: Added.
  • WebProcess/WebCoreSupport/wpe/WebPopupMenuWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/DrawingArea.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/wpe/CompositingManager.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebPage/wpe/CompositingManager.h: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebPage/wpe/DrawingAreaWPE.cpp: Added.
  • WebProcess/WebPage/wpe/DrawingAreaWPE.h: Added.
  • WebProcess/WebPage/wpe/WebInspectorUIWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebPage/wpe/WebInspectorWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebProcess/WebPage/wpe/WebPageWPE.cpp: Copied from Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h.
  • WebProcess/wpe/WebProcessMainWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • wpe/wpe-webkit.pc.in: Added.

Source/WTF:

  • wtf/Platform.h:
  • wtf/PlatformWPE.cmake: Added.
  • wtf/glib/RunLoopSourcePriority.h:

Tools:

webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html

Add WPE support to various tooling scripts, TestWebKitAPI and WebKitTestRunner.
In-file changes removed from this ChangeLog entry for brevity.

  • BuildSlaveSupport/built-product-archive:
  • BuildSlaveSupport/test-result-archive:
  • CMakeLists.txt:
  • ImageDiff/PlatformWPE.cmake: Added.
  • Scripts/build-dumprendertree:
  • Scripts/build-webkit:
  • Scripts/build-webkittestrunner:
  • Scripts/update-webkit-libs-jhbuild:
  • Scripts/update-webkitwpe-libs: Added.
  • Scripts/webkitdirs.pm:
  • Scripts/webkitperl/FeatureList.pm:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:
  • Scripts/webkitpy/port/factory.py:
  • Scripts/webkitpy/port/wpe.py: Added.
  • TestWebKitAPI/PlatformWPE.cmake: Added.
  • TestWebKitAPI/wpe/InjectedBundleControllerWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp: Added.
  • TestWebKitAPI/wpe/main.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp: Added.
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp: Added.
  • WebKitTestRunner/InjectedBundle/wpe/ActivateFontsWPE.cpp: Added.
  • WebKitTestRunner/InjectedBundle/wpe/InjectedBundleWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • WebKitTestRunner/PlatformWPE.cmake: Added.
  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp: Added.
  • WebKitTestRunner/wpe/HeadlessViewBackend.cpp: Added.
  • WebKitTestRunner/wpe/HeadlessViewBackend.h: Copied from Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h.
  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: Added.
  • WebKitTestRunner/wpe/TestControllerWPE.cpp: Added.
  • WebKitTestRunner/wpe/main.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h.
  • jhbuild/jhbuild-wrapper:
  • wpe/generate-inspector-gresource-manifest.py: Added.
  • wpe/jhbuild.modules: Added.
  • wpe/jhbuildrc: Added.
  • wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Added.
  • wpe/patches/fontconfig-C-11-requires-a-space-between-literal-and-identifier.patch: Added.
  • wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Added.
  • wpe/patches/gdate-suppress-string-format-literal-warning.patch: Added.
  • wpe/patches/glib-warning-fix.patch: Added.
  • wpe/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Added.
  • wpe/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Added.
  • wpe/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Added.
  • wpe/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Added.
  • wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Added.
3:21 AM Changeset in webkit [216496] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r216343 - [GTK] Cannot sign in with new Google sign-in page
https://bugs.webkit.org/show_bug.cgi?id=171770

Reviewed by Carlos Garcia Campos.

Google's new authentication page does not work with the Firefox user
agent that's required to make various Google websites work. Special-case
accounts.google.com so that it receives our standard user agent.

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle):
(WebCore::urlRequiresFirefoxBrowser):

3:21 AM Changeset in webkit [216495] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14

Merge r216139 - YouTube user agent quirk breaks new YouTube
https://bugs.webkit.org/show_bug.cgi?id=171603

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Our user agent quirk to make YouTube 360 work breaks the new YouTube UI, causing it to
attempt to use the obsolete custom elements v0 API. WebKit only supports the v1 API. We
have to remove this quirk.

Note this does not affect Safari as Apple ports don't use our user agent quirks.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Remove the YouTube quirk test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

3:11 AM Changeset in webkit [216494] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r215613 - Do not paint the border of the box if the dirty region does not intersect with border area
https://bugs.webkit.org/show_bug.cgi?id=170988

Reviewed by Simon Fraser.

No new tests, since there is no change in behavior.

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::ellipseContainsPoint):
Checks if a point is within an ellipse.

  • platform/graphics/GeometryUtilities.h:

Replace header-guards with #pragma once.

  • platform/graphics/RoundedRect.cpp:

(WebCore::RoundedRect::contains):
Implemented to know the dirty rectangle intersects with rounded rectangle or not.

  • platform/graphics/RoundedRect.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):
When typing in decorated text box, the dirty rect generated only for the
inside of the text box, not for the decorations. So we can avoid the
calculations to draw borders if the inner border totally covers the
target surface. It will optimize the rendering process since we don't
have to render border decorations whenever we type somethings in side of
the text input element.

3:00 AM Changeset in webkit [216493] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r216240 - [GStreamer] Do not report more errors after the first one
https://bugs.webkit.org/show_bug.cgi?id=171722

Reviewed by Xabier Rodriguez-Calvar.

We can receive several error messages for the same error from different elements. That's not expected by the
media source selection algorithm implementation. I don't know if didn't happen with previous versions of GST,
but since the upgrade to 1.10.4 several tests are failing because of this.

Fixes: media/video-error-does-not-exist.html

media/video-load-networkState.html
media/video-source-error.html
media/video-source-none-supported.html
media/video-source-moved.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Return early also when an error already occured.

2:59 AM Changeset in webkit [216492] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r216239 - [GStreamer] Fix handling of gst errors in MediaPlayerPrivateGStreamer::handleMessage
https://bugs.webkit.org/show_bug.cgi?id=171721

Reviewed by Xabier Rodriguez-Calvar.

We are checking the GError only comparing the code, and ignoring the domain in some cases. Use g_error_matches()
in those cases instead of only checking the code.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

2:58 AM Changeset in webkit [216491] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r216067 - [GStreamer] Dailymotion live stream videos don't play
https://bugs.webkit.org/show_bug.cgi?id=170767

Reviewed by Sergio Villar Senin.

The video shows a message saying that an error occurred and nothing is played. There are actually several
problems with dailymotion. The main issue is that URLs are redirected by the server, and GStreamer needs to
know the redirected URL. Once GStreamer knows the redirected URL the error message no longer appears, the video
starts but it always stops after a few seconds. This is because the source receives an early EOS while still
downloading the fragments. The reason of the early EOS is because dailymotion sends a wrong Content-Length header,
something that is expected to happen and we correctly handle that case when receiving the data, by updating the
size accordingly if the bytes received are longer than the expected content length. This particular case
doesn't work well with GStreamer automatic EOS handling, which is the default. At some point, GStreamer detects
that the bytes received are at least the expected ones and emits a GST_EVENT_EOS that the GstUriDownloader
handles finishing the download early. We should always disable automatic EOS, since we know when EOS actually
happens and we already call gst_app_src_end_of_stream(). This patch also emits a GST_EVENT_CUSTOM_DOWNSTREAM_STICKY
event to let GStreamer know about the HTTP headers sent and received.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Disable automatic EOS.
(webKitWebSrcGetProperty): Return the redirected URL in case of redirection.
(webKitWebSrcStart): Pass the ResourceRequest to the stream clients.
(webKitWebSrcQueryWithParent): Set the redirected URL in the query in case of redirection.
(webKitWebSrcSetUri): Clear also the redirected URL when setting a new URI.
(StreamingClient::StreamingClient): Use GRefPtr for the source and initialize the request too.
(StreamingClient::~StreamingClient): Remove explicit unref.
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived): Initialize the redirected URL in case of redirection. Create and push
the HTTP headers event.
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(ResourceHandleStreamingClient::ResourceHandleStreamingClient):
(ResourceHandleStreamingClient::didFail):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

2:58 AM Changeset in webkit [216490] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r212349 - [GStreamer] Implement MediaPlayerPrivate::hasSingleSecurityOrigin()
https://bugs.webkit.org/show_bug.cgi?id=168322

Reviewed by Žan Doberšek.

It currently returns true unconditionally. Add resolved-location property to WebKitWebSourceGStreamer to track
the resolved url returned by the server and use that from MediaPlayerPrivate to check if there was a cross
origin redirection.

Fixes: http/tests/security/canvas-remote-read-remote-video-redirect.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::hasSingleSecurityOrigin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcFinalize):
(webKitWebSrcGetProperty):
(webKitWebSrcStart):
(webKitWebSrcQueryWithParent):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri):
(StreamingClient::handleResponseReceived):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

2:58 AM Changeset in webkit [216489] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r216065 - [GTK] Crash at WebCore::ResourceHandle::clearClient() when streaming live video from dailymotion
https://bugs.webkit.org/show_bug.cgi?id=169725

Reviewed by Michael Catanzaro.

Make ResourceHandleStreamingClient refcounted and add an invalidate method to do the cleanup in the networking
thread while keeping a reference.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcStop): Call invalidate before reseting client pointer.
(webKitWebSrcStart): Ditto.
(ResourceHandleStreamingClient::ResourceHandleStreamingClient): Remove all cleanup code after the run loop run call.
(ResourceHandleStreamingClient::~ResourceHandleStreamingClient): Just detach the thread.
(ResourceHandleStreamingClient::invalidate): Schedule a task on the networking thread to clean up and fiish the
run loop, protecting this.
(ResourceHandleStreamingClient::setDefersLoading): Protect this.
(ResourceHandleStreamingClient::didReceiveResponse): Do nothing if client was invalidated.
(ResourceHandleStreamingClient::didReceiveBuffer): Ditto.
(ResourceHandleStreamingClient::didFinishLoading): Ditto.

2:41 AM Changeset in webkit [216488] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix property names in ScrollingTreeScrollingNode::dumpProperties
https://bugs.webkit.org/show_bug.cgi?id=171848

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-09
Reviewed by Gyuyoung Kim.

No new tests, this function is only used for debugging purpose.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::dumpProperties):

2:40 AM Changeset in webkit [216487] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r215102 - REGRESSION(r204512): WebSocket errors with "Failed to send WebSocket frame." if too much data is sent
https://bugs.webkit.org/show_bug.cgi?id=170463

Reviewed by Michael Catanzaro.

This only reproduces when using WebSockets to communicate with an external server.
When communicating with a local server, CFWriteStreamWrite succeeds too reliably, so
CFWriteStreamCanAcceptBytes returns true, when sometimes it doesn't when communicating
across the real internet.

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::platformSendInternal):

  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::SocketStreamHandleImpl::platformSendInternal):
Returning std::nullopt means there was an error, which is not true when the socket stream
is in a state where it cannot be written to because it is actively communicating.
Returning 0 means 0 new bytes were sent, so we will try again later.

2:00 AM Changeset in webkit [216486] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.16.2

WebKitGTK+ 2.16.2

1:59 AM Changeset in webkit [216485] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.16.2 release.

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.16.2.
12:46 AM Changeset in webkit [216484] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.16/Source

Merge r216483 - [GTK] Building Webkit2Gtk without OpenGL fails.
https://bugs.webkit.org/show_bug.cgi?id=170959

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

Source/WebKit2:

  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager):

12:45 AM Changeset in webkit [216483] by Carlos Garcia Campos
  • 6 edits in trunk/Source

[GTK] Building Webkit2Gtk without OpenGL fails.
https://bugs.webkit.org/show_bug.cgi?id=170959

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

Source/WebKit2:

  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager):

12:37 AM Changeset in webkit [216482] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[AppleWin] CaptureDeviceManager.cpp: error C2813: #import is not supported with /MP
https://bugs.webkit.org/show_bug.cgi?id=171849

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-09
Reviewed by Per Arne Vollan.

  • platform/mediastream/CaptureDeviceManager.cpp: Replaced #import with #include.
12:15 AM Changeset in webkit [216481] by sbarati@apple.com
  • 10 edits
    2 adds in trunk/Source/JavaScriptCore

CallLinkInfos belonging to Wasm->JS stubs need to be informed when we clearCode() from all Executables
https://bugs.webkit.org/show_bug.cgi?id=171707
<rdar://problem/31891649>

Reviewed by Filip Pizlo.

This patch fixes a bug where a Wasm->JS IC call stub would go stale
and point into a CodeBlock no longer owned by any executable. The
problematic scenario is this:

  1. We generate the call IC which has a branch on a callee check. This callee owns the Executable in question. If the branch succeeds, it will call code belonging to a particular CodeBlock associated with that Executable.
  1. Heap::deleteAllCodeBlocks is called. This leads the Executable to clear its various CodeBlock references.
  1. Wasm has no idea this happened, so now it has stale ICs that point into code from a CodeBlock no longer belonging to an Executable.

This patch fixes the bug by informing all JSWebAssemblyCodeBlocks to unlink
their CallLinkInfo when Heap::deleteAllCodeBlocks is called.

We track all JSWebAssemblyCodeBlocks by creating a new subspace for them.
This allows us to quickly iterate over the live JSWebAssemblyCodeBlocks in the
heap.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/Heap.cpp:

(JSC::Heap::deleteAllCodeBlocks):

  • heap/Subspace.h:
  • heap/SubspaceInlines.h:

(JSC::Subspace::forEachLiveCell):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::clearJSCallICs):

  • wasm/js/JSWebAssemblyCodeBlock.h:

(JSC::JSWebAssemblyCodeBlock::createStructure): Deleted.
(JSC::JSWebAssemblyCodeBlock::functionImportCount): Deleted.
(JSC::JSWebAssemblyCodeBlock::module): Deleted.
(JSC::JSWebAssemblyCodeBlock::jsEntrypointCalleeFromFunctionIndexSpace): Deleted.
(JSC::JSWebAssemblyCodeBlock::wasmEntrypointLoadLocationFromFunctionIndexSpace): Deleted.
(JSC::JSWebAssemblyCodeBlock::wasmToJsCallStubForImport): Deleted.
(JSC::JSWebAssemblyCodeBlock::offsetOfImportWasmToJSStub): Deleted.
(JSC::JSWebAssemblyCodeBlock::codeBlock): Deleted.
(JSC::JSWebAssemblyCodeBlock::offsetOfImportStubs): Deleted.
(JSC::JSWebAssemblyCodeBlock::allocationSize): Deleted.
(JSC::JSWebAssemblyCodeBlock::importWasmToJSStub): Deleted.

  • wasm/js/JSWebAssemblyCodeBlockSubspace.cpp: Added.

(JSC::JSWebAssemblyCodeBlockSubspace::JSWebAssemblyCodeBlockSubspace):
(JSC::JSWebAssemblyCodeBlockSubspace::~JSWebAssemblyCodeBlockSubspace):
(JSC::JSWebAssemblyCodeBlockSubspace::finishSweep):
(JSC::JSWebAssemblyCodeBlockSubspace::destroy):

  • wasm/js/JSWebAssemblyCodeBlockSubspace.h: Added.

May 8, 2017:

11:33 PM Changeset in webkit [216480] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216443 - Search events should not fire synchronously for search type input elements with incremental attribute set
https://bugs.webkit.org/show_bug.cgi?id=171376
<rdar://problem/31863296>

Reviewed by Chris Dumez.

Source/WebCore:

For some reasons, we fire search events immediately for search type input elements with incremental
attribute set only when the length of the input equals to zero. This behaviour should be prevented
as event listeners in the middle might perform unexpectedly.

Test: fast/forms/search/search-incremental-crash.html

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::startSearchEventTimer):

LayoutTests:

  • fast/forms/search/search-incremental-crash-expected.txt: Added.
  • fast/forms/search/search-incremental-crash.html: Added.
11:14 PM Changeset in webkit [216479] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Refactor / Clean up DOMWindow.idl
https://bugs.webkit.org/show_bug.cgi?id=171843

Reviewed by Ryosuke Niwa.

Refactor / Clean up DOMWindow.idl to match the specification more closely:

No expected Web-facing change. Things that do not match the specification
have been annotated with FIXME comments.

  • page/DOMWindow.idl:
10:25 PM Changeset in webkit [216478] by commit-queue@webkit.org
  • 43 edits in trunk

Simplify ScrollingStateNode::scrollingStateTreeAsText
https://bugs.webkit.org/show_bug.cgi?id=171802

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-08
Reviewed by Simon Fraser.

Source/WebCore:

The following simplifications are performed:

  • Rely on TextStream's internal value to manage indentation.
  • Use TextStream::dumpProperty and << to print simple properties.
  • Try and use TextStream::GroupScope for groups.

No new tests, only minor format changes in the dumped tree.

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::dumpProperties):

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::dumpProperties):
(WebCore::ScrollingStateNode::dump):
(WebCore::ScrollingStateNode::scrollingStateTreeAsText):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp:

(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::dumpProperties):

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::dumpProperties):

  • page/scrolling/ScrollingStateStickyNode.h:

LayoutTests:

Update references due to minor format changes in text ouput of scrolling state trees.

  • fast/scrolling/ios/remove-scrolling-role-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-in-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • tiled-drawing/scrolling/frames/fixed-inside-frame-expected.txt:
  • tiled-drawing/scrolling/frames/remove-coordinated-frame-expected.txt:
  • tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
10:14 PM Changeset in webkit [216477] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Follow-up to bug 171710: use more references and reject if either audio or video source creation is failing
https://bugs.webkit.org/show_bug.cgi?id=171824

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Alex Christensen.

Source/WebCore:

Refactoring to use more references.
Only behavioral change is the rejection of the getUserMedia promise if either audio or video source creation is
failing. Previously, if audio source creation was failing, the promise would still resolve if video source was
sucessfully created.

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::audioFactory):
(WebCore::RealtimeMediaSourceCenter::videoFactory):
(WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::defaultAudioFactory): Deleted.
(WebCore::RealtimeMediaSourceCenter::defaultVideoFactory): Deleted.
(WebCore::RealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager): Deleted.
(WebCore::RealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager): Deleted.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenterMac::bestSourcesForTypeAndConstraints):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory):
(WebCore::RealtimeMediaSourceCenterMac::defaultVideoFactory):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenterMac::defaultVideoCaptureDeviceManager):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::defaultAudioFactory):
(WebCore::MockRealtimeMediaSourceCenter::defaultVideoFactory):
(WebCore::MockRealtimeMediaSourceCenter::defaultAudioCaptureDeviceManager):
(WebCore::MockRealtimeMediaSourceCenter::defaultVideoCaptureDeviceManager):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebKit2:

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

9:02 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:59 PM Changeset in webkit [216476] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed GTK expectations gardening

  • platform/gtk/TestExpectations:
  • webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav:
8:45 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:44 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:31 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:25 PM WebKitGTK/Gardening/Calendar/2016Logs created by Michael Catanzaro
8:24 PM Changeset in webkit [216475] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r213564): Flash video playback failures
https://bugs.webkit.org/show_bug.cgi?id=171840
<rdar://problem/32041569>

Reviewed by Alexey Proskuryakov.

The sandbox restrictions added in r213564 to prevent access to unused iokit properties
blocked some items needed for Flash video playback. This change relaxes the sandbox
to allow this software to run properly.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
8:16 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:46 PM Changeset in webkit [216474] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop [CEReactions] from CharacterData operations
https://bugs.webkit.org/show_bug.cgi?id=171813

Reviewed by Ryosuke Niwa.

Drop [CEReactions] from CharacterData operations to match the DOM specification:

I believe WebKit had this because Attr used to have Text child nodes. Therefore, modifying
those Text child nodes via the CharacterData API could modify the value of an attribute,
requiring us to run attributeChangedCallback for Custom Elements. However, as of
<https://trac.webkit.org/r216259>, Attr can no longer have Text child nodes.

I have also verified that Blink does not have [CEReactions] for those methods.

No new tests, no expected Web-facing behavior change.

  • dom/CharacterData.idl:
7:22 PM Changeset in webkit [216473] by achristensen@apple.com
  • 43 edits in trunk/Source/WebKit2

Reduce PassRefPtr use in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=171831

Reviewed by Chris Dumez.

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupCreateWithIdentifier):

  • UIProcess/GenericCallback.h:

(WebKit::GenericCallback::create):
(WebKit::CallbackMap::put):

  • UIProcess/StatisticsRequest.cpp:

(WebKit::StatisticsRequest::StatisticsRequest):

  • UIProcess/StatisticsRequest.h:

(WebKit::StatisticsRequest::create):

  • UIProcess/TextChecker.h:
  • UIProcess/TextCheckerCompletion.cpp:

(WebKit::TextCheckerCompletion::create):

  • UIProcess/TextCheckerCompletion.h:
  • UIProcess/WebColorPicker.h:

(WebKit::WebColorPicker::create):

  • UIProcess/WebConnectionToWebProcess.cpp:

(WebKit::WebConnectionToWebProcess::create):

  • UIProcess/WebConnectionToWebProcess.h:
  • UIProcess/WebContextInjectedBundleClient.cpp:

(WebKit::WebContextInjectedBundleClient::getInjectedBundleInitializationUserData):

  • UIProcess/WebContextInjectedBundleClient.h:
  • UIProcess/WebContextMenuListenerProxy.h:

(WebKit::WebContextMenuListenerProxy::create):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::create):

  • UIProcess/WebCookieManagerProxy.h:
  • UIProcess/WebEditCommandProxy.h:

(WebKit::WebEditCommandProxy::create):

  • UIProcess/WebFormSubmissionListenerProxy.h:

(WebKit::WebFormSubmissionListenerProxy::create):

  • UIProcess/WebFrameListenerProxy.h:
  • UIProcess/WebFrameProxy.h:

(WebKit::WebFrameProxy::create):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::create):

  • UIProcess/WebFullScreenManagerProxy.h:
  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::create):

  • UIProcess/WebGeolocationManagerProxy.h:
  • UIProcess/WebIconDatabase.cpp:

(WebKit::WebIconDatabase::create):
(WebKit::WebIconDatabase::iconDataForPageURL):

  • UIProcess/WebIconDatabase.h:
  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::create):

  • UIProcess/WebMediaSessionFocusManager.h:
  • UIProcess/WebOpenPanelResultListenerProxy.h:

(WebKit::WebOpenPanelResultListenerProxy::create):

  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::create):

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

(WebKit::WebPageProxy::forceRepaint):
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::callAfterNextPresentationUpdate):

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

(WebKit::TextChecker::requestCheckingOfString):

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::requestCheckingOfString):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(-[WKPrintingView _drawPreview:]):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::loadURL):
(WebKit::NetscapePlugin::manualStreamDidReceiveResponse):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::NetscapePluginStream):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.h:

(WebKit::NetscapePluginStream::create):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFormData):

7:00 PM Changeset in webkit [216472] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove black background from video layer while in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=171816

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-08
Reviewed by Eric Carlson.

No new tests because no new behavior in DOM.

This changes the background of the video layer to clear when it goes into fullscreen
and back to black when it returns to inline to better facilitate fullsceen animations.

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

(WebCore::VideoFullscreenLayerManager::setVideoLayer):
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer):

6:53 PM Changeset in webkit [216471] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebCore

The Incomplete asynchronously decoded image frame should be decoded every time it's drawn
https://bugs.webkit.org/show_bug.cgi?id=170836

Reviewed by Tim Horton.

The asynchronously decoded image frames has to be cached to prevent flickering,
but we have to keep requesting new decoding for the incomplete frame every time
it's drawn. This is to avoid drawing an incomplete image frame even after all
its encoded data is received.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex):
(WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex):

6:45 PM Changeset in webkit [216470] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Guard DragController::cleanupAfterSystemDrag to only clear drag state on Mac
https://bugs.webkit.org/show_bug.cgi?id=171771
<rdar://problem/32019149>

Reviewed by Tim Horton.

The call to dragEnded here seems to have been added because a client could override Mac WK1
WebUIDelegate methods to cause this cleanup to never be performed. Since this limitation only
applies to Mac, guard it as such.

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::cleanupAfterSystemDrag):

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

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

"It regressed JetStream on iOS by 7%" (Requested by saamyjoon
on #webkit).

Reverted changeset:

"GCController.cpp's collect() should be Async"
https://bugs.webkit.org/show_bug.cgi?id=171708
http://trac.webkit.org/changeset/216262

6:35 PM Changeset in webkit [216468] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

testWasmBoundsCheck and testCallFunctionWithHellaArguments is broken in testb3
https://bugs.webkit.org/show_bug.cgi?id=171392
<rdar://problem/31872222>

Reviewed by Keith Miller.

This patch fixes two bugs. The first one is:
Inside testb3, we were using the wrong WasmBoundsCheckValue constructor.
Everything compiled OK because of implicit casting in C. I've changed one
of the constructors to take arguments in a different order so we don't
run into this problem again.

The second bug was that Air::ShufflePair::inst was assuming that a move
from BigImm to its destination is always valid. This is not the case.
For example, the store, Move BigImm, Addr is not allowed. I refactored
the code to be correct by emitting more than one instruction when needeed.

When testing my changes, I ran ARM64 testb3 both in debug and
release. I ran into many pre-existing failures. I've opened
a new bug to fix those here: https://bugs.webkit.org/show_bug.cgi?id=171826

  • b3/B3WasmBoundsCheckValue.cpp:

(JSC::B3::WasmBoundsCheckValue::WasmBoundsCheckValue):

  • b3/B3WasmBoundsCheckValue.h:
  • b3/air/AirEmitShuffle.cpp:

(JSC::B3::Air::ShufflePair::insts):
(JSC::B3::Air::ShufflePair::inst): Deleted.

  • b3/air/AirEmitShuffle.h:
  • b3/air/AirLowerMacros.cpp:

(JSC::B3::Air::lowerMacros):

  • b3/testb3.cpp:

(JSC::B3::testLoadAcq42):
(JSC::B3::testStoreRelAddLoadAcq32):
(JSC::B3::testStoreRelAddLoadAcq8):
(JSC::B3::testStoreRelAddFenceLoadAcq8):
(JSC::B3::testStoreRelAddLoadAcq16):
(JSC::B3::testStoreRelAddLoadAcq64):
(JSC::B3::testSimplePatchpointWithOuputClobbersGPArgs):
(JSC::B3::testCheckMul):
(JSC::B3::testCheckMulMemory):
(JSC::B3::testCheckMul64):
(JSC::B3::testCheckMulFold):
(JSC::B3::testCheckMulFoldFail):
(JSC::B3::testCheckMulArgumentAliasing64):
(JSC::B3::testCheckMulArgumentAliasing32):
(JSC::B3::testCheckMul64SShr):
(JSC::B3::testCallFunctionWithHellaArguments):
(JSC::B3::functionWithHellaArguments2):
(JSC::B3::testCallFunctionWithHellaArguments2):
(JSC::B3::functionWithHellaArguments3):
(JSC::B3::testCallFunctionWithHellaArguments3):
(JSC::B3::testSpillDefSmallerThanUse):
(JSC::B3::testLateRegister):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled2):
(JSC::B3::testMoveConstants):
(JSC::B3::testAtomicWeakCAS):
(JSC::B3::testAtomicStrongCAS):
(JSC::B3::testAtomicXchg):
(JSC::B3::testWasmBoundsCheck):
(JSC::B3::run):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):

5:32 PM Changeset in webkit [216467] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marked http/tests/security/storage-blocking-loosened-plugin.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=171837

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-08

  • platform/mac-wk2/TestExpectations:
5:16 PM Changeset in webkit [216466] by Chris Dumez
  • 16 edits
    2 adds in trunk

Move offsetParent / offsetLeft / offsetTop / offsetWidth / offsetHeight from Element to HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=171829

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Re-sync Web-Platform-Test after:

  • web-platform-tests/cssom-view/offsetParent_element_test.html:

Source/WebCore:

Move offsetParent / offsetLeft / offsetTop / offsetWidth / offsetHeight from Element to HTMLElement,
as per the specification:

Both Firefox and Chrome match the specification and also do not have the corresponding API on
SVGElement.

Bug tracking the similar move in Blink (completed over 1 year ago):

Note that for the inner SVG elements like <rect> and <circle> these attributes were returning 0,
because those aren't part of the CSS box model. They did return correct values for the <svg>
element itself, however.

Test: fast/css/htmlelement-offset-properties.html

  • dom/Element.idl:
  • Drop offset* attributes, now that they are on HTMLElement.
  • html/HTMLElement.idl:
  • Resync HTMLElement.idl with the specification: https://html.spec.whatwg.org/#htmlelement No behavior change besides what's indicated in the Changelog above. Things that do not match the spec have been annotated with FIXME comments.
  • Add offset* attributes that used to be on Element.

LayoutTests:

  • fast/css/htmlelement-offset-properties-expected.txt:
  • fast/css/htmlelement-offset-properties.html:

Add layout test coverage.

  • editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html:
  • fast/css-grid-layout/grid-item-display.html:
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • mathml/presentation/menclose-notation-no-overlap-expected.txt:
  • mathml/presentation/menclose-notation-no-overlap.html:
  • platform/mac/inspector/model/remote-object-expected.txt:
  • svg/dynamic-updates/resources/SVGTestCase.js:

(clickAt):

  • svg/text/inline-text-destroy-attributes-crash.xhtml:

Use getClientBoundingRect() instead of offset* properties for non-HTML elements.

4:41 PM Changeset in webkit [216465] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: box model labels have bad alignment
https://bugs.webkit.org/show_bug.cgi?id=171817

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/BoxModelDetailsSectionRow.css:

(.details-section .row.box-model .label):
(body[dir=ltr] .details-section .row.box-model .label):
(body[dir=rtl] .details-section .row.box-model .label):
We can't just use a mirrored leading margin because all the
text here is center-aligned. Just hardcode a reasonable value.

4:39 PM Changeset in webkit [216464] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/XMLHttpRequest/timeout-multiple-fetches.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=169637

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-08

  • platform/ios-wk2/TestExpectations:
4:31 PM Changeset in webkit [216463] by commit-queue@webkit.org
  • 16 edits in trunk/Source

Add support for reading and writing settings from UIProcess audio capture
https://bugs.webkit.org/show_bug.cgi?id=171633

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Eric Carlson.

Source/WebCore:

Covered by manual testing and existing test sets.

Moving success/failure callbacks for applyConstraints.
Making main RealtimeMediaSource::applyConstraints virtual so that WebProcess source proxies can implement it by
doing an IPC call directly. Doing so for UIProcess CoreAudioCaptureSource.

Adding support for volume to CoreAudioCaptureSource by applying gain post-capturing.
Adding support for toggling echo cancellation in CoreAudioCaptureSource.
Adding support to change echo cancellation and sample rate by scheduling a reconfiguration of the audio unit.
To do so, we stop producing data, delete the audio unit and restart producing data.
Removing CoreAudioCaptureSource::supportedConstraints as it is redundant with
RealtimeMediaSourceSettings::supportedConstraints.

Setting sample rate only to the following values: 8000, 16000, 32000, 44100, 48000.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::applyConstraints):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::applyConstraints):

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::applyConstraints):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceSettings.h:

(WebCore::RealtimeMediaSourceSettings::supportedConstraints):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::processMicrophoneSamples):
(WebCore::CoreAudioCaptureSource::cleanupAudioUnit):
(WebCore::CoreAudioCaptureSource::createAudioUnit):
(WebCore::CoreAudioCaptureSource::configureAudioUnit):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::capabilities):
(WebCore::CoreAudioCaptureSource::settings):
(WebCore::CoreAudioCaptureSource::applySampleRate):
(WebCore::CoreAudioCaptureSource::applyEchoCancellation):
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration):
(WebCore::CoreAudioCaptureSource::cleanupAudioUnits): Deleted.
(WebCore::CoreAudioCaptureSource::setupAudioUnits): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:

Source/WebKit2:

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::setSettings):
(WebKit::UserMediaCaptureManager::Source::applyConstraintsSucceeded):
(WebKit::UserMediaCaptureManager::Source::applyConstraintsFailed):
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::sourceSettingsChanged):
(WebKit::UserMediaCaptureManager::applyConstraints):
(WebKit::UserMediaCaptureManager::applyConstraintsSucceeded):
(WebKit::UserMediaCaptureManager::applyConstraintsFailed):
(WebKit::UserMediaCaptureManager::Source::setMuted): Deleted.
(WebKit::UserMediaCaptureManager::Source::setEnabled): Deleted.

  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
4:15 PM Changeset in webkit [216462] by Jonathan Bedard
  • 5 edits in trunk

Implement PlatformWebView::windowSnapshotImage and createBitmapContextFromWebView for iOS devices
https://bugs.webkit.org/show_bug.cgi?id=169421
<rdar://problem/30950171>

Reviewed by Tim Horton.

Tools:

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView): Implement for IOSurface.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage): Use snapshot API for device.

LayoutTests:

  • platform/ios-device/TestExpectations: Mark compositing tests as failures, this

is due to a bug tracked in https://bugs.webkit.org/show_bug.cgi?id=170772.

4:12 PM Changeset in webkit [216461] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Request/Response toggles not working
https://bugs.webkit.org/show_bug.cgi?id=171833
<rdar://problem/31341637>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-08
Reviewed by Brian Burg.

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
If the new components being set were shallowly equal, then they wouldn't
actually be updated even if ultimately they are different. In this case
the Path Components with values "request" / "response" would not update
between different resources because the path components had equivalent
simple values. Provide a different discriminator (comparisonData) which
can be an object so these path components compare as necessarily different.

  • UserInterface/Views/HeapSnapshotClusterContentView.js:

(WebInspector.HeapSnapshotClusterContentView.createPathComponent):
(WebInspector.HeapSnapshotClusterContentView):

  • UserInterface/Views/ResourceClusterContentView.js:

(WebInspector.ResourceClusterContentView.createPathComponent):
(WebInspector.ResourceClusterContentView):
(WebInspector.ResourceClusterContentView.prototype._resourceTypeDidChange):

  • UserInterface/Views/SVGImageResourceClusterContentView.js:

(WebInspector.SVGImageResourceClusterContentView):

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.createPathComponent):
(WebInspector.ScriptClusterTimelineView):
Provide comparisonData for path components cases that would need it.

3:51 PM Changeset in webkit [216460] by fpizlo@apple.com
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

Expose a function to get proxy targets
https://bugs.webkit.org/show_bug.cgi?id=171797
<rdar://problem/32027549>

Reviewed by Mark Lam.

This exposes a new private API function, JSObjectGetProxyTarget(), that gets the target of a
proxy. It works with both ProxyObject and JSProxy, but it's primarily intended for use with
JSProxy.

  • API/JSObjectRef.cpp:

(JSObjectGetProxyTarget):

  • API/JSObjectRefPrivate.h:
  • API/tests/JSObjectGetProxyTargetTest.cpp: Added.

(testJSObjectGetProxyTarget):

  • API/tests/JSObjectGetProxyTargetTest.h: Added.
  • API/tests/testapi.c:

(main):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/ProxyObject.h:
  • shell/PlatformWin.cmake:
3:24 PM Changeset in webkit [216459] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
https://bugs.webkit.org/show_bug.cgi?id=171786
<rdar://problem/32051023>

Reviewed by Saam Barati.

JSTests:

  • stress/bug-171786.js: Added.

Source/JavaScriptCore:

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::dumpBytecode):

  • Fix BytecodeDumper to dump op_throw_static_error correctly. Previously, it was expecting op1 to always be a constant. r206870 changed it to take a variable string as well.
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • Fix the bug.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • Move the Phantom of op1 after the ThrowStaticError node, because technically, the ThrowStaticError represents op_throw_static_error, and op_throw_static_error uses op1. In practice, this probably doesn't matter, but let's have the code accurately communicate the behavior we're expecting.
3:17 PM Changeset in webkit [216458] by Chris Dumez
  • 7 edits
    2 adds in trunk

Drop non-standard document.implementation.createCSSStyleSheet() API
https://bugs.webkit.org/show_bug.cgi?id=171825

Reviewed by Simon Fraser.

Source/WebCore:

Drop non-standard document.implementation.createCSSStyleSheet() API.

This was never-implemented by Firefox and they actually rejected implementing it:

  • Drop non-standard document.implementation.createCSSStyleSheet() API

Blink dropped this API back in 2014 after getting UseCounter data showing this was not used:

The API is not useful in its current state because even though
document.implementation.createCSSStyleSheet() allows you to create a stylesheet, there is
currently no way to associate it with the document.

Test: fast/css/DOMImplementation.createCSSStyleSheet-obsolete.html

  • dom/DOMImplementation.idl:

LayoutTests:

  • fast/css/DOMImplementation.createCSSStyleSheet-obsolete-expected.txt:
  • fast/css/DOMImplementation.createCSSStyleSheet-obsolete.html:

Add layout test coverage.

  • fast/dom/StyleSheet/gc-parent-rule-expected.txt:
  • fast/dom/StyleSheet/gc-parent-rule.html:
  • fast/dom/StyleSheet/gc-parent-stylesheet-expected.txt:
  • fast/dom/StyleSheet/gc-parent-stylesheet.html:

Add utility functions to construct a CSSStyleSheet object and use it instead
of document.implementation.createCSSStyleSheet().

3:16 PM Changeset in webkit [216457] by jdiggs@igalia.com
  • 7 edits in trunk

AX: don't expose empty roledescription
https://bugs.webkit.org/show_bug.cgi?id=163647

Reviewed by Chris Fleizach.

Source/WebCore:

If the value of aria-roledescription is empty or contains only whitespace
characters, ignore the value. Also strip out leading or trailing whitespace
characters in the value.

No new tests: We already had coverage for an empty aria-roledescription value.
That test was updated to reflect the new behavior. New test cases were added
to cover a value that contains only whitespace characters, and a value with
leading and trailing whitespace characters.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::roleDescription):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

LayoutTests:

  • accessibility/aria-roledescription-expected.txt: New test cases, updated expectations.
  • accessibility/aria-roledescription.html: New test cases, updated expectations.
  • platform/gtk/accessibility/aria-roledescription-expected.txt: New test cases, updated expectations.
3:15 PM Changeset in webkit [216456] by Chris Dumez
  • 8 edits
    2 moves
    2 adds in trunk

Drop non-standard Element.scrollByLines() / scrollByPages()
https://bugs.webkit.org/show_bug.cgi?id=171820

Reviewed by Simon Fraser.

Source/WebCore:

Drop non-standard Element.scrollByLines() / scrollByPages().

Those were added a very long time ago (https://trac.webkit.org/changeset/7901/webkit)
for Safari RSS but does not seem to be used anymore.

Blink has already dropped it without issue back in 2014:

Their UseCounter data showed no usage:

Test: fast/css/element-scrollByLines-scrollByPages-obsolete.html

  • dom/Element.idl:

Source/WebInspectorUI:

Drop non-standard Element.scrollByLines() / scrollByPages() from
WebInspector code.

  • UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

  • LayoutTests/fast/css/element-scrollByLines-scrollByPages-obsolete-expected.txt:
  • LayoutTests/fast/css/element-scrollByLines-scrollByPages-obsolete.html:

Add layout test coverage.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • fast/events/scroll-event-does-not-bubble.html:
  • fast/layers/scroll-overflow-no-layer-expected.txt: Renamed from LayoutTests/fast/layers/scrollByLines-overflow-no-layer-expected.txt.
  • fast/layers/scroll-overflow-no-layer.html: Renamed from LayoutTests/fast/layers/scrollByLines-overflow-no-layer.html.

Update existing tests to stop relying on the API.

3:12 PM Changeset in webkit [216455] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

CoreAudioSharedUnit should own its configuration parameters
https://bugs.webkit.org/show_bug.cgi?id=171812

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Eric Carlson.

Covered by manual tests.

Add sampleRate, volume and echoCancellation parameters to the shared audio unit.
Set default values when creating the shared audio unit and use those for the creation of new sources.
Add support for volume.
Add support for disabling echo cancellation.
Check valid sample rates when trying to apply a sample rate.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::volume):
(WebCore::CoreAudioSharedUnit::sampleRate):
(WebCore::CoreAudioSharedUnit::enableEchoCancellation):
(WebCore::CoreAudioSharedUnit::setVolume):
(WebCore::CoreAudioSharedUnit::setSampleRate):
(WebCore::CoreAudioSharedUnit::setEnableEchoCancellation):
(WebCore::CoreAudioSharedUnit::CoreAudioSharedUnit):
(WebCore::CoreAudioSharedUnit::setupAudioUnits):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::applySampleRate):
(WebCore::CoreAudioCaptureSource::applyEchoCancellation):

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
2:51 PM Changeset in webkit [216454] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marked http/tests/websocket/tests/hybi/workers/close.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=171830

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-08

  • platform/ios-wk2/TestExpectations:
2:50 PM Changeset in webkit [216453] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/status-label/status-label-font.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=171828

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:51 PM Changeset in webkit [216452] by jdiggs@igalia.com
  • 5 edits in trunk

AX: Setting aria-orientation="horizontal" on a listbox is being overridden on the Mac
https://bugs.webkit.org/show_bug.cgi?id=171821

Reviewed by Chris Fleizach.

Source/WebCore:

The Mac's AccessibilityObject wrapper was unconditionally returning vertical
as the orientation of listbox. Removing this override causes the author-specified
value to be exposed, with the default/implicit orientation continuing to be vertical.

No new tests. We already have coverage for the default/implicit orientation on a
listbox. A new test case was added to aria-orientation.html so that we would have
coverage for aria-orientation="horizontal" on a listbox.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/aria-orientation-expected.txt: New test case.
  • accessibility/aria-orientation.html: New test case.
1:49 PM Changeset in webkit [216451] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Make it easy to dynamically show/hide a SettingsView
https://bugs.webkit.org/show_bug.cgi?id=171765
<rdar://problem/32031280>

Reviewed by Brian Burg.

This patch adds SettingsTabContentView.prototype.setSettingsViewVisible,
for dynamically showing/hiding a child view (and its NavigationBar item).
The following new behavior is relevant when more that one child SettingsView
exist in the Settings tab:

  • Hiding the selected view will cause a new view to become selected. The previous visible view is selected, if it exists. Otherwise the next visible view is used.
  • Showing a view when no views are selected cause the view to be selected.

As the Settings tab currently has only one child view, the behavior above
was tested by adding a handful of vanilla SettingsView objects to the tab
and toggling their visibility.

  • UserInterface/Views/NavigationBar.js:

Simplify overloaded parameter navigationItemOrIdentifierOrIndex, which
is used in a few places and is always an instance of NavigationItem.

(WebInspector.NavigationBar):
(WebInspector.NavigationBar.prototype.removeNavigationItem):
(WebInspector.NavigationBar.prototype.get selectedNavigationItem):
(WebInspector.NavigationBar.prototype.set selectedNavigationItem):
(WebInspector.NavigationBar.prototype.findNavigationItem):
Lookup a navigation item by its identifier.
(WebInspector.NavigationBar.prototype._findNavigationItem): Deleted.
Replaced overloaded private method with new public method.

  • UserInterface/Views/NavigationItem.js:

Cleanup.
(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get identifier):
(WebInspector.NavigationItem.prototype.get element):
(WebInspector.NavigationItem.prototype.get minimumWidth):
(WebInspector.NavigationItem.prototype.get parentNavigationBar):

  • UserInterface/Views/SettingsTabContentView.css:

Use visibility: hidden instead of display: none when hiding the
NavigationBar, so that the selected view's top position stays the same.

(.content-view.settings):
(.content-view.settings .navigation-bar.invisible):

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView):
Switch to an array of SettingsViews instead of a map. Fast lookup isn't
a concern due to the small number of items, and having indices simplifies
traversing the previous/next items in setSettingsViewVisible.

(WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
Rename page to settingsView.
(WebInspector.SettingsTabContentView.prototype.addSettingsView):
(WebInspector.SettingsTabContentView.prototype.setSettingsViewVisible):
Shows/hides the specified view. Hiding the selected SettingsView will
cause another visible view to become selected, if one exists.

(WebInspector.SettingsTabContentView.prototype._updateNavigationBarVisibility):
Helper for updating navigation bar visibility after making a change
to the navigation items.

(WebInspector.SettingsTabContentView.prototype._navigationItemSelected):

1:36 PM Changeset in webkit [216450] by commit-queue@webkit.org
  • 9 edits in trunk

[CG] To decode an image frame asynchronously, pass the native size of the image to CGImageSourceCreateThumbnailAtIndex() if it's smaller than the sizeForDrawing
https://bugs.webkit.org/show_bug.cgi?id=170864
Source/WebCore:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-08
Reviewed by Simon Fraser.

Tests: Existing tests were modified to test this patch.

The maxPixelSize was omitted when calling CGImageSourceCreateThumbnailAtIndex()
for the nativeSize image or when areaOf(nativeSize) < areaOf(sizeForDrawing).
The assumption was if we don't pass maxPixelSize, CG will create an image with the
nativeSize regardless how big this size is. It turns out this is wrong. CG has an
optimization to return a scaled down image if areaOf(nativeSize) is greater than
some maximum value.

This is not what we want for asynchronously image decoding. We want the decoded
frame to have the size we ask for, not some scaled down frame. The fix is to pass
always maxPixelSize to CGImageSourceCreateThumbnailAtIndex(). maxPixelSize will be
equal to maxDimension(sizeForDrawing) if sizeForDrawing is valid it is less than
maxDimension(nativeSize). Otherwise it will be equal to maxDimension(nativeSize).

  • platform/graphics/DecodingOptions.h:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::appendImageSourceOption):
(WebCore::appendImageSourceOptions):
(WebCore::imageSourceAsyncOptions):
(WebCore::ImageDecoder::createFrameImageAtIndex):

LayoutTests:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-08
Reviewed by Simon Fraser.

  • fast/images/async-image-background-image-repeated-expected.html:
  • fast/images/async-image-background-image-repeated.html:
  • fast/images/resources/sprite-sheet-red-green-blue.png:
  • fast/images/sprite-sheet-image-draw-expected.html:
  • fast/images/sprite-sheet-image-draw.html:

Change the sprite image to be 200x33100 instead of 200x2100 and use it in drawing.
If the maxPixelSize is not passed to CGImageSourceCreateThumbnailAtIndex(), the
decoded farme of this image will be 30x5000 pixels (15% of the original size).

1:25 PM Changeset in webkit [216449] by Beth Dakin
  • 13 edits in trunk

WebKit should default to using sRGB with NSColor conversion instead of device
color space
https://bugs.webkit.org/show_bug.cgi?id=171745
-and corresponding-
rdar://problem/28314183

Reviewed by Tim Horton.

Source/WebCore:

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeRGBAFromNSColor):
(WebCore::nsColor):

LayoutTests:

  • editing/mac/attributed-string/anchor-element-expected.txt:
  • editing/mac/attributed-string/basic-expected.txt:
  • editing/mac/attributed-string/comment-cdata-section-expected.txt:
  • editing/mac/attributed-string/font-size-expected.txt:
  • editing/mac/attributed-string/font-style-variant-effect-expected.txt:
  • editing/mac/attributed-string/font-weight-expected.txt:
  • editing/mac/attributed-string/letter-spacing-expected.txt:
  • editing/mac/attributed-string/text-decorations-expected.txt:
  • editing/mac/attributed-string/vertical-align-expected.txt:
1:11 PM Changeset in webkit [216448] by achristensen@apple.com
  • 33 edits in trunk/Source

Reduce PassRefPtr use
https://bugs.webkit.org/show_bug.cgi?id=171809

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::createCompatibleLayerOrTakeFromPool):

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::TileGrid):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::create):
(PlatformCALayerCocoa::clone):
(PlatformCALayerCocoa::animationForKey):
(PlatformCALayerCocoa::createCompatibleLayer):

Source/WebKit2:

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::setInitializationReply):

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::destroyPlugin):
(WebKit::WebProcessConnection::createPlugin):

  • PluginProcess/WebProcessConnection.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runOpenPanel):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerUndoStep):

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::getOrCreate):

  • WebProcess/WebPage/VisitedLinkTableController.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::hitTest):
(WebKit::WebFrame::createSelectionSnapshot):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebOpenPanelResultListener.cpp:

(WebKit::WebOpenPanelResultListener::create):
(WebKit::WebOpenPanelResultListener::WebOpenPanelResultListener):

  • WebProcess/WebPage/WebOpenPanelResultListener.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::unapplyEditCommand):
(WebKit::WebPage::reapplyEditCommand):

  • WebProcess/WebPage/WebPageGroupProxy.cpp:

(WebKit::WebPageGroupProxy::create):

  • WebProcess/WebPage/WebPageGroupProxy.h:
  • WebProcess/WebPage/WebUndoStep.cpp:

(WebKit::WebUndoStep::create):

  • WebProcess/WebPage/WebUndoStep.h:

(WebKit::WebUndoStep::step):
(WebKit::WebUndoStep::WebUndoStep):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::clone):
(WebKit::PlatformCALayerRemote::animationForKey):
(WebKit::PlatformCALayerRemote::createCompatibleLayer):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::clone):

1:07 PM Changeset in webkit [216447] by Jonathan Bedard
  • 3 edits in trunk/Tools

buildbot: Cleanup simulators after running tests
https://bugs.webkit.org/show_bug.cgi?id=171679

Reviewed by Aakash Jain.

simctl is partitioned for each user. Since kill-old-processes
is run as root, we need to specify the buildbot user when tearing
down simulators between steps.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(KillOldProcesses): Pass buildbot user to kill-old-processes.

  • BuildSlaveSupport/kill-old-processes:

(main): Specify the user for simctl if one has been provided.

1:03 PM Changeset in webkit [216446] by jer.noble@apple.com
  • 8 edits in trunk/Source

[Mac] Audio capture fails when shouldCaptureAudioInUIProcess is set.
https://bugs.webkit.org/show_bug.cgi?id=171710

Reviewed by Eric Carlson.

Source/WebCore:

Both the shouldCaptureAudioInUIProcess setting and useAVFoundationAudioCapture setting were trying to set
the audio factory for RealtimeMediaSourceCenter, and were stomping on each others' changes. Change the way
the useAVFoundationAudioCapture works so that it only affects the defaultAudioFactory, allowing that default
to be overridden by the shuoldCaptureAudioInUIProcess setting when it calls setAudioFactory().

  • page/Settings.cpp:

(WebCore::Settings::setUseAVFoundationAudioCapture):

  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::audioFactory):
(WebCore::RealtimeMediaSourceCenter::videoFactory):
(WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::audioFactory): Deleted.
(WebCore::RealtimeMediaSourceCenter::videoFactory): Deleted.
(WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): Deleted.
(WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): Deleted.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture):
(WebCore::RealtimeMediaSourceCenterMac::singleton):
(WebCore::RealtimeMediaSourceCenter::platformCenter):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:

Source/WebKit2:

RealtimeMediaSourceCenterMac's setUseAVFoundationAudioCapture() is now accessed via a singleton.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs):

12:57 PM Changeset in webkit [216445] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

[macOS] com.macromedia.Flash Player ESR.plugin.sb is installed outside of PlugInSandboxProfiles
https://bugs.webkit.org/show_bug.cgi?id=171774

Reviewed by Dan Bernstein.

  • WebKit2.xcodeproj/project.pbxproj:
12:50 PM Changeset in webkit [216444] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Speculative Windows build fix after r216428.
https://bugs.webkit.org/show_bug.cgi?id=171776

Not reviewed.

  • wtf/StackTrace.h:
12:17 PM Changeset in webkit [216443] by jiewen_tan@apple.com
  • 3 edits
    2 adds in trunk

Search events should not fire synchronously for search type input elements with incremental attribute set
https://bugs.webkit.org/show_bug.cgi?id=171376
<rdar://problem/31863296>

Reviewed by Chris Dumez.

Source/WebCore:

For some reasons, we fire search events immediately for search type input elements with incremental
attribute set only when the length of the input equals to zero. This behaviour should be prevented
as event listeners in the middle might perform unexpectedly.

Test: fast/forms/search/search-incremental-crash.html

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::startSearchEventTimer):

LayoutTests:

  • fast/forms/search/search-incremental-crash-expected.txt: Added.
  • fast/forms/search/search-incremental-crash.html: Added.
11:58 AM Changeset in webkit [216442] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Clean UserMediaCaptureManager::capabilities return value
https://bugs.webkit.org/show_bug.cgi?id=171808

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Eric Carlson.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::capabilities):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
11:40 AM Changeset in webkit [216441] by matthew_hanson@apple.com
  • 1 copy in branches/safari-604.1.21-branch

New Branch.

11:38 AM Changeset in webkit [216440] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Text overlaps on http://www.duden.de/rechtschreibung/Acre
https://bugs.webkit.org/show_bug.cgi?id=171796
<rdar://problem/31036028>

Reviewed by Simon Fraser.

Source/WebCore:

Simple line layout pre-measures space using the primary font,
even if the space glyph requires a fallback font (and even if the string does not have a space in it at all).
When this width gets cached (see WidthCache) we might end up using it later during normal line layout and
it could produce incorrect layout.
This patch removes the space width caching from Simple line layout, since Font already caches it.

Test: fast/text/simple-line-layout-fallback-space-glyph.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

LayoutTests:

  • fast/text/simple-line-layout-fallback-space-glyph-expected.html: Added.
  • fast/text/simple-line-layout-fallback-space-glyph.html: Added.
11:28 AM Changeset in webkit [216439] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Refactor ImageInputType::width() / height() for clarity
https://bugs.webkit.org/show_bug.cgi?id=171810

Reviewed by Zalan Bujtas.

Refactor ImageInputType::width() / height() for clarity.

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):

11:19 AM Changeset in webkit [216438] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Bail out of simple line layout when hyphen needs a fallback font.
https://bugs.webkit.org/show_bug.cgi?id=171811

Reviewed by Antti Koivisto.

With hyphen: auto is set, we don't know if the hypen string is going to be used, until
after we started laying out the content and figured that the text overflows the line.
However it's too late to bail out of simple line layout at this point, so let's just
pre-check if the hyphen string needs a fallback font.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

11:13 AM Changeset in webkit [216437] by clopez@igalia.com
  • 2 edits in trunk/Tools

REGRESSION(r216179): [GTK] Script install-dependencies misses liborc
https://bugs.webkit.org/show_bug.cgi?id=171681

Reviewed by Carlos Garcia Campos.

  • gtk/install-dependencies:
10:39 AM Changeset in webkit [216436] by commit-queue@webkit.org
  • 4 edits in trunk/Source

TURNS gathering is not working properly
https://bugs.webkit.org/show_bug.cgi?id=171747

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/base/openssladapter.cc: Adding support for SNI in case of TLS ice candidate gathering.

Source/WebCore:

Covered by manual tests.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::configurationFromMediaEndpointConfiguration): Reveting TURNS ice server skipping.

10:39 AM Changeset in webkit [216435] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216431 - ComposedTreeIterator does not traverse all slotted children if the traversal root is a slot element.
https://bugs.webkit.org/show_bug.cgi?id=171375
<rdar://problem/31863184>

Reviewed by Zalan Bujtas.

Source/WebCore:

We were hitting an assert when using details element with a flow thread. The root cause for this turned
out to be that we only traversed the first slotted child if the traversal root was a slot element.

Test: fast/html/details-flow-thread.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::traverseNextLeavingContext):

Try to traverse to the next slotted child before testing if we at the end of the current context.

LayoutTests:

  • fast/html/details-flow-thread-expected.txt: Added.
  • fast/html/details-flow-thread.html: Added.
  • fast/shadow-dom/composed-tree-slots-expected.txt:
  • fast/shadow-dom/composed-tree-slots.html:

Expand the test so it also prints out slot subtrees using slots as traversal roots.

10:37 AM Changeset in webkit [216434] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.16

Merge r215614 - [cmake] WTF target should not have wtf and subdirectries in public interface
https://bugs.webkit.org/show_bug.cgi?id=171115

Reviewed by Michael Catanzaro.

In r209665 WEBCORE_FRAMEWORK macro started to export INCLUDE_DIRECTORIES of
targets as their public interface, so that linked targets can use them
implicitly without copying directory lists around. This matches existing
practice for all targets except WTF, headers from which are always included
with full path starting from "<wtf/...".

Since r209665 it became possible to include headers from wtf or its
subdirectories in CMake builds without using "<wtf/..." path. It should
not be allowed.

.:

  • Source/cmake/WebKitMacros.cmake: Support xxx_PRIVATE_HEADERS

CMake variables.

Source/WebCore:

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Fix

incorrect include of WTF header.

Source/WTF:

  • wtf/CMakeLists.txt: WTF/wtf and its sudirectories should not be in

public include paths of WTF target.

10:36 AM Changeset in webkit [216433] by Michael Catanzaro
  • 7 edits
    2 deletes in trunk

Unreviewed, rolling out r216419.

Broke 70 layout tests on GTK bot

Reverted changeset:

"Ensure clean tree before AX cache update."
https://bugs.webkit.org/show_bug.cgi?id=171546
http://trac.webkit.org/changeset/216419

10:31 AM Changeset in webkit [216432] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

CoreAudioCaptureSource should not modify its shared unit if already started/stopped
https://bugs.webkit.org/show_bug.cgi?id=171804

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-08
Reviewed by Jer Noble.

Manual testing only since CoreAudioSharedUnit is not mocked.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::startProducingData): Exit early if source is already started.
(WebCore::CoreAudioCaptureSource::stopProducingData): Exit early if source is already stopped.

10:20 AM Changeset in webkit [216431] by Antti Koivisto
  • 5 edits
    2 adds in trunk

ComposedTreeIterator does not traverse all slotted children if the traversal root is a slot element.
https://bugs.webkit.org/show_bug.cgi?id=171375
<rdar://problem/31863184>

Reviewed by Zalan Bujtas.

Source/WebCore:

We were hitting an assert when using details element with a flow thread. The root cause for this turned
out to be that we only traversed the first slotted child if the traversal root was a slot element.

Test: fast/html/details-flow-thread.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::traverseNextLeavingContext):

Try to traverse to the next slotted child before testing if we at the end of the current context.

LayoutTests:

  • fast/html/details-flow-thread-expected.txt: Added.
  • fast/html/details-flow-thread.html: Added.
  • fast/shadow-dom/composed-tree-slots-expected.txt:
  • fast/shadow-dom/composed-tree-slots.html:

Expand the test so it also prints out slot subtrees using slots as traversal roots.

10:06 AM Changeset in webkit [216430] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: don't just emit extended offset adds for patch
https://bugs.webkit.org/show_bug.cgi?id=171799

Reviewed by Mark Lam.

It isn't necessary to restrict.

  • b3/air/AirLowerStackArgs.cpp:

(JSC::B3::Air::lowerStackArgs):

9:59 AM WebKitGTK/2.16.x edited by Carlos Garcia Campos
(diff)
9:58 AM Changeset in webkit [216429] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/JavaScriptCore

Merge r214969 - Do not use BLX for immediates (ARM-32)

https://bugs.webkit.org/show_bug.cgi?id=170351

Patch by Guilherme Iscaro <iscaro@profusion.mobi> on 2017-04-05
Reviewed by Mark Lam.

Currently the offline asm generator for 32-bit ARM code translates the
'call' meta-instruction (which may be found in LowLevelInterpreter.asm
and friends) to the ARM's BLX instrunction. The BLX instruction may be
used for labels (immediates) and registers and one side effect of BLX
is that it may switch the processor's instruction set.
A 'BLX register' instruction will change/remain the processor state to
ARM if the register_bit[0] is set to 0 or change/remain to Thumb if
register_bit[0] is set to 1. However, a 'BLX label' instruction will
always switch the processor state. It switches ARM to thumb and vice-versa.
This behaviour is unwanted, since the C++ code and the offlineasm generated code
are both compiled using the same instruction set, thus a instruction
set change will likely produce a crash. In order to fix the problem the
BL instruction can be used for labels. It will branch just like BLX,
but it won't change the instruction set. It's important to note that
Darwin is not affected by this problem, thus to minimize the impact of
this change the BL instruction will only be used on non-darwin targets.

BLX reference: http://infocenter.arm.com/help/topic/com.arm.doc.dui0489i/CIHBJCDC.html?resultof=%22%62%6c%78%22%20

  • offlineasm/arm.rb:
9:56 AM Changeset in webkit [216428] by mark.lam@apple.com
  • 63 edits in trunk/Source

Introduce ExceptionScope::assertNoException() and releaseAssertNoException().
https://bugs.webkit.org/show_bug.cgi?id=171776

Reviewed by Keith Miller.

Source/JavaScriptCore:

Instead of ASSERT(!scope.exception()), we can now do scope.assertNoException().
Ditto for RELEASE_ASSERT and scope.releaseAssertNoException().

The advantage of using ExceptionScope::assertNoException() and
releaseAssertNoException() is that if the assertion fails, these utility
functions will print the stack trace for where the unexpected exception is
detected as well as where the unexpected exception was thrown from. This makes
it much easier to debug the source of unhandled exceptions.

  • debugger/Debugger.cpp:

(JSC::Debugger::pauseIfNeeded):

  • dfg/DFGOperations.cpp:
  • interpreter/Interpreter.cpp:

(JSC::eval):
(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::debug):

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::functionsOnStack):

  • jsc.cpp:

(GlobalObject::moduleLoaderResolve):
(GlobalObject::moduleLoaderFetch):
(functionGenerateHeapSnapshot):
(functionSamplingProfilerStackTraces):
(box):
(runWithScripts):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::finishCreation):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::tryInitializeSpeciesWatchpoint):

  • runtime/Completion.cpp:

(JSC::rejectPromise):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedToString):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

  • runtime/ExceptionScope.cpp:

(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/ExceptionScope.h:

(JSC::ExceptionScope::assertNoException):
(JSC::ExceptionScope::releaseAssertNoException):
(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/GenericArgumentsInlines.h:

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

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::createCollator):
(JSC::IntlCollator::resolvedOptions):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::resolvedOptions):
(JSC::IntlDateTimeFormat::format):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::createNumberFormat):
(JSC::IntlNumberFormat::resolvedOptions):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncHostPromiseRejectionTracker):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::getOwnPropertySlot):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):

  • runtime/JSObject.cpp:

(JSC::JSObject::ordinaryToPrimitive):

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):
(JSC::objectConstructorDefineProperty):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncHasOwnProperty):

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectDefineProperty):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::nameFromCallee):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncRepeatCharacter):

  • runtime/TemplateRegistry.cpp:

(JSC::TemplateRegistry::getTemplateObject):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

(JSC::VM::nativeStackTraceOfLastThrow):
(JSC::VM::clearException):

  • wasm/WasmB3IRGenerator.cpp:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):

Source/WebCore:

No new tests because there's no behavior change in functionality. We're only
refactoring the code to use the new assertion utility function.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::installReplacement):

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::getJSArrayFromJSON):
(WebCore::getStringFromJSON):
(WebCore::getBooleanFromJSON):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::whenDefined):

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::propagateExceptionSlowPath):
(WebCore::throwNotSupportedError):
(WebCore::throwInvalidStateError):
(WebCore::throwSecurityError):
(WebCore::throwDOMSyntaxError):
(WebCore::throwDataCloneError):
(WebCore::throwIndexSizeError):
(WebCore::throwTypeMismatchError):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::makeThisTypeErrorForBuiltins):
(WebCore::makeGetterTypeErrorForBuiltins):

  • bindings/js/JSDOMGlobalObjectTask.cpp:
  • bindings/js/JSDOMPromise.h:

(WebCore::callPromiseFunction):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowMicrotaskCallback::call):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::~JSMainThreadExecState):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::ReadableStreamDefaultController::isControlledReadableStreamLocked):

  • bindings/js/ReadableStreamDefaultController.h:

(WebCore::ReadableStreamDefaultController::enqueue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readTerminal):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateSerializerFunction):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNode::serialize):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::serialize):

  • bindings/scripts/test/JS/JSTestSerialization.cpp:

(WebCore::JSTestSerialization::serialize):

  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:

(WebCore::JSTestSerializationInherit::serialize):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:

(WebCore::JSTestSerializationInheritFinal::serialize):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getTypeFlags):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):

Source/WTF:

  1. Add an option to skip some number of top frames when capturing the StackTrace.
  2. Add an option to use an indentation string when dumping the StackTrace.
  • wtf/StackTrace.cpp:

(WTF::StackTrace::captureStackTrace):
(WTF::StackTrace::dump):

  • wtf/StackTrace.h:
9:55 AM Changeset in webkit [216427] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ test /webkit2/WebKitConsoleMessage/network-error after r215556.

Glib uses now Unicode quotes in error messages.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp:

(testWebKitConsoleMessageNetworkError):

9:50 AM Changeset in webkit [216426] by Chris Dumez
  • 37 edits
    3 adds in trunk

Move 'style' from Element to HTMLElement / SVGElement and make it settable
https://bugs.webkit.org/show_bug.cgi?id=171795

Reviewed by Alex Christensen.

Source/WebCore:

Move 'style' from Element to HTMLElement / SVGElement and make it settable
as per:

Both Firefox and Chrome already match the specification (both for the
property location and having it settable).

Test: fast/css/Element-style.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ElementCSSInlineStyle.idl: Added.
  • css/PropertySetCSSStyleDeclaration.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::ensureCSSStyleDeclaration):
(WebCore::MutableStyleProperties::ensureInlineCSSStyleDeclaration):

  • css/StyleProperties.h:
  • dom/Attr.cpp:

(WebCore::Attr::style):

  • dom/Document.cpp:

(WebCore::Document::createCSSStyleDeclaration):

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

(WebCore::StyledElement::cssomStyle):

  • dom/StyledElement.h:
  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToElement):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):

  • html/HTMLElement.idl:
  • html/ImageInputType.cpp:

(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):
Fix bug that was found by fast/forms/input-width-height-attributes-without-renderer-loaded-image.html.
That test relied on setting HTMLElement.style which did not work until now. Call updateLayout()
*before* doing the renderer check.

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::getInlineStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::asInspectorStyleSheet):
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::create):
(WebCore::InspectorStyle::InspectorStyle):
(WebCore::InspectorStyle::extractSourceData):
(WebCore::InspectorStyle::setText):
(WebCore::InspectorStyleSheet::inspectorStyleForId):
(WebCore::InspectorStyleSheetForInlineStyle::create):
(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
(WebCore::InspectorStyleSheetForInlineStyle::didModifyElementAttribute):
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
(WebCore::InspectorStyleSheetForInlineStyle::ensureParsedDataReady):
(WebCore::InspectorStyleSheetForInlineStyle::inlineStyle):

  • inspector/InspectorStyleSheet.h:
  • svg/SVGElement.idl:

Source/WebKit/mac:

Build fix.

  • DOM/DOMElement.mm:

(-[DOMElement style]):

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::shouldApplyStyle):

  • WebView/WebFrame.mm:

(-[WebFrame _typingStyle]):

Source/WebKit2:

Build fix.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldApplyStyle):

LayoutTests:

  • accessibility/roles-exposed.html:

Add null check for element.style.

  • fast/css/Element-style-expected.txt: Added.
  • fast/css/Element-style.html: Added.

Add layout test coverage.

  • fast/forms/input-width-height-attributes-without-renderer-loaded-image-expected.txt:

Rebaseline test that was setting HTMLElement.style which was a no-op until this patch. Now that it actually
does something, the input element actually looses its renderer. This found a bug which I fixed in this
patch.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline as property enumeration order has changed.

9:43 AM Changeset in webkit [216425] by jdiggs@igalia.com
  • 7 edits
    2 adds
    3 deletes in trunk

AX: Propagate aria-readonly to grid descendants
https://bugs.webkit.org/show_bug.cgi?id=171189

Reviewed by Chris Fleizach.

Source/WebCore:

Propagate aria-readonly to grid descendants if the property is not
explicitly set on the descendant.

Test: accessibility/gtk/aria-readonly-propagated.html

Additional test cases also added to accessibility/aria-readonly.html

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::ariaReadOnlyValue):

  • accessibility/AccessibilityARIAGridCell.h:
  • accessibility/AccessibilityObject.h:

LayoutTests:

Add new test cases to aria-readonly.html. In addition, because the platform-specific
test expectations seem due to how platforms treat whitespace from the test file, hide
the test cases after the test is run so that there are no extraneous characters and
a single expectations file can be shared.

  • accessibility/aria-readonly-expected.txt: Updated.
  • accessibility/aria-readonly.html: Updated.
  • accessibility/gtk/aria-readonly-propagated-expected.txt: Added.
  • accessibility/gtk/aria-readonly-propagated.html: Added.
  • platform/mac-elcapitan/accessibility/aria-readonly-expected.txt: Removed.
  • platform/mac/accessibility/aria-readonly-expected.txt: Removed.
  • platform/win/accessibility/aria-readonly-expected.txt: Removed.
9:42 AM Changeset in webkit [216424] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Tools

Merge r216423 - Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/javascript-dialogs after r215404.

Sending down+up keys is no longer enough to simulate a real user interaction after r215404, the key events now
should be handled by the web process to be considered a user interaction. So, add an input to the HTML and send
characters to the input. Also fix typo in the function name.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewJavaScriptDialogs):

9:40 AM Changeset in webkit [216423] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/javascript-dialogs after r215404.

Sending down+up keys is no longer enough to simulate a real user interaction after r215404, the key events now
should be handled by the web process to be considered a user interaction. So, add an input to the HTML and send
characters to the input. Also fix typo in the function name.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewJavaScriptDialogs):

8:58 AM Changeset in webkit [216422] by Carlos Garcia Campos
  • 1 edit
    1 add in releases/WebKitGTK/webkit-2.16/LayoutTests

Unreviewed GTK+ gardening. Rebaseline fast/repaint/mutate-non-visible.html.

  • platform/gtk/fast/repaint/mutate-non-visible-expected.txt: Added.
8:55 AM Changeset in webkit [216421] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/LayoutTests

Unreviewed. Skip hls tests crashing with GST 1.8.

  • platform/gtk/TestExpectations:
8:47 AM Changeset in webkit [216420] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216307 - Renderers being destroyed should not be added to AX's deferred list.
https://bugs.webkit.org/show_bug.cgi?id=171768
<rdar://problem/31955660>

Reviewed by Simon Fraser.

Source/WebCore:

In certain cases, when custom scrollbars are present, while destroying the scrollbars' block parent, we

  • first remove the block from the AX's deferred list (AXObjectCache::remove)
  • destroy the render layer that owns the custom scrollbars (RenderLayer::destroyLayer)
  • detach the scrollbars from the parent (block) (RenderObject::removeFromParent)
    • clean up the block's lines (RenderBlock::deleteLines)
      • push the block back to the AX's deferred list (AXObjectCache::recomputeDeferredIsIgnored)

At this point no one will remove the current block from AX's deferred list.

Test: accessibility/crash-when-renderers-are-added-back-to-deferred-list.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::recomputeDeferredIsIgnored):
(WebCore::AXObjectCache::deferTextChanged):

LayoutTests:

  • accessibility/crash-when-renderers-are-added-back-to-deferred-list-expected.txt: Added.
  • accessibility/crash-when-renderers-are-added-back-to-deferred-list.html: Added.
8:33 AM Changeset in webkit [216419] by Alan Bujtas
  • 7 edits
    2 adds in trunk

Ensure clean tree before AX cache update.
https://bugs.webkit.org/show_bug.cgi?id=171546
<rdar://problem/31934942>

Source/WebCore:

While updating an accessibility object state, we might
perform unintentional style updates. This style update could
end up destroying renderes that are still referenced by function calls
on the callstack.
To avoid that, AXObjectCache should operate on a clean tree only.

Reviewed by Chris Fleizach.

Test: accessibility/crash-when-render-tree-is-not-clean.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::checkedStateChanged):
(WebCore::AXObjectCache::selectedChildrenChanged):
(WebCore::AXObjectCache::handleAriaExpandedChange):
(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::handleAriaModalChange):
(WebCore::AXObjectCache::labelChanged):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::checkedStateChanged):
(WebCore::AXObjectCache::handleActiveDescendantChanged):
(WebCore::AXObjectCache::handleAriaExpandedChange):
(WebCore::AXObjectCache::handleAriaRoleChanged):
(WebCore::AXObjectCache::handleAriaModalChange):
(WebCore::AXObjectCache::handleAttributeChanged):
(WebCore::AXObjectCache::selectedChildrenChanged):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/crash-when-render-tree-is-not-clean.html: Added.
8:26 AM Changeset in webkit [216418] by mmaxfield@apple.com
  • 18 edits
    194 adds in trunk

Unprefix unicode-bidi CSS values
https://bugs.webkit.org/show_bug.cgi?id=171761

Reviewed by Simon Fraser.

Source/WebCore:

Create new values which parse to the same internal state as the
prefixed values.

Tests: fast/text/bidi-unprefix.html

imported/w3c/i18n/bidi/bidi-embed-001.html
imported/w3c/i18n/bidi/bidi-embed-002.html
imported/w3c/i18n/bidi/bidi-embed-003.html
imported/w3c/i18n/bidi/bidi-embed-004.html
imported/w3c/i18n/bidi/bidi-embed-005.html
imported/w3c/i18n/bidi/bidi-embed-006.html
imported/w3c/i18n/bidi/bidi-embed-007.html
imported/w3c/i18n/bidi/bidi-embed-008.html
imported/w3c/i18n/bidi/bidi-embed-009.html
imported/w3c/i18n/bidi/bidi-embed-010.html
imported/w3c/i18n/bidi/bidi-embed-011.html
imported/w3c/i18n/bidi/bidi-isolate-001.html
imported/w3c/i18n/bidi/bidi-isolate-002.html
imported/w3c/i18n/bidi/bidi-isolate-003.html
imported/w3c/i18n/bidi/bidi-isolate-004.html
imported/w3c/i18n/bidi/bidi-isolate-005.html
imported/w3c/i18n/bidi/bidi-isolate-006.html
imported/w3c/i18n/bidi/bidi-isolate-007.html
imported/w3c/i18n/bidi/bidi-isolate-008.html
imported/w3c/i18n/bidi/bidi-isolate-009.html
imported/w3c/i18n/bidi/bidi-isolate-010.html
imported/w3c/i18n/bidi/bidi-isolate-011.html
imported/w3c/i18n/bidi/bidi-isolate-override-001.html
imported/w3c/i18n/bidi/bidi-isolate-override-002.html
imported/w3c/i18n/bidi/bidi-isolate-override-003.html
imported/w3c/i18n/bidi/bidi-isolate-override-004.html
imported/w3c/i18n/bidi/bidi-isolate-override-005.html
imported/w3c/i18n/bidi/bidi-isolate-override-006.html
imported/w3c/i18n/bidi/bidi-isolate-override-007.html
imported/w3c/i18n/bidi/bidi-isolate-override-008.html
imported/w3c/i18n/bidi/bidi-isolate-override-009.html
imported/w3c/i18n/bidi/bidi-isolate-override-010.html
imported/w3c/i18n/bidi/bidi-isolate-override-011.html
imported/w3c/i18n/bidi/bidi-isolate-override-012.html
imported/w3c/i18n/bidi/bidi-normal-001.html
imported/w3c/i18n/bidi/bidi-normal-002.html
imported/w3c/i18n/bidi/bidi-normal-003.html
imported/w3c/i18n/bidi/bidi-normal-004.html
imported/w3c/i18n/bidi/bidi-normal-005.html
imported/w3c/i18n/bidi/bidi-normal-006.html
imported/w3c/i18n/bidi/bidi-normal-007.html
imported/w3c/i18n/bidi/bidi-normal-008.html
imported/w3c/i18n/bidi/bidi-normal-009.html
imported/w3c/i18n/bidi/bidi-normal-010.html
imported/w3c/i18n/bidi/bidi-normal-011.html
imported/w3c/i18n/bidi/bidi-override-001.html
imported/w3c/i18n/bidi/bidi-override-002.html
imported/w3c/i18n/bidi/bidi-override-003.html
imported/w3c/i18n/bidi/bidi-override-004.html
imported/w3c/i18n/bidi/bidi-override-005.html
imported/w3c/i18n/bidi/bidi-override-006.html
imported/w3c/i18n/bidi/bidi-override-007.html
imported/w3c/i18n/bidi/bidi-override-008.html
imported/w3c/i18n/bidi/bidi-override-009.html
imported/w3c/i18n/bidi/bidi-override-010.html
imported/w3c/i18n/bidi/bidi-override-011.html
imported/w3c/i18n/bidi/bidi-override-012.html
imported/w3c/i18n/bidi/bidi-plaintext-001.html
imported/w3c/i18n/bidi/bidi-plaintext-003.html
imported/w3c/i18n/bidi/bidi-plaintext-005.html
imported/w3c/i18n/bidi/bidi-plaintext-006.html
imported/w3c/i18n/bidi/bidi-plaintext-007.html
imported/w3c/i18n/bidi/bidi-plaintext-008.html
imported/w3c/i18n/bidi/bidi-plaintext-009.html
imported/w3c/i18n/bidi/bidi-plaintext-010.html
imported/w3c/i18n/bidi/bidi-plaintext-011.html
imported/w3c/i18n/bidi/bidi-table-001.html
imported/w3c/i18n/bidi/bidi-unset-001.html
imported/w3c/i18n/bidi/bidi-unset-002.html
imported/w3c/i18n/bidi/bidi-unset-003.html
imported/w3c/i18n/bidi/bidi-unset-004.html
imported/w3c/i18n/bidi/bidi-unset-005.html
imported/w3c/i18n/bidi/bidi-unset-006.html
imported/w3c/i18n/bidi/bidi-unset-007.html
imported/w3c/i18n/bidi/bidi-unset-008.html
imported/w3c/i18n/bidi/bidi-unset-009.html
imported/w3c/i18n/bidi/bidi-unset-010.html
imported/w3c/i18n/bidi/block-embed-001.html
imported/w3c/i18n/bidi/block-embed-002.html
imported/w3c/i18n/bidi/block-embed-003.html
imported/w3c/i18n/bidi/block-override-001.html
imported/w3c/i18n/bidi/block-override-002.html
imported/w3c/i18n/bidi/block-override-003.html
imported/w3c/i18n/bidi/block-override-004.html
imported/w3c/i18n/bidi/block-override-isolate-001.html
imported/w3c/i18n/bidi/block-override-isolate-002.html
imported/w3c/i18n/bidi/block-override-isolate-003.html
imported/w3c/i18n/bidi/block-override-isolate-004.html
imported/w3c/i18n/bidi/block-plaintext-001.html
imported/w3c/i18n/bidi/block-plaintext-002.html
imported/w3c/i18n/bidi/block-plaintext-003.html
imported/w3c/i18n/bidi/block-plaintext-004.html
imported/w3c/i18n/bidi/block-plaintext-005.html
imported/w3c/i18n/bidi/block-plaintext-006.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EUnicodeBidi):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/html.css:

(bdi, output):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • html/HTMLElement.cpp:

(WebCore::unicodeBidiAttributeForDirAuto):

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

Import W3C's internationalization tests from
https://www.w3.org/International/tests/repo/results/writing-modes-bidi

  • fast/css/default-bidi-css-rules-expected.txt: Updating expected results.
  • fast/css/default-bidi-css-rules.html: Ditto.
  • fast/css/unicode-bidi-computed-value-expected.txt: Ditto.
  • fast/css/unicode-bidi-computed-value.html: Ditto.
  • fast/text/bidi-unprefix-expected.txt: Added. Test unprefixing.
  • fast/text/bidi-unprefix.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-embed-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-012-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-isolate-override-012.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-normal-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-012-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-override-012.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-010.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-011-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-plaintext-011.html: Added.
  • imported/w3c/i18n/bidi/bidi-table-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-table-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-001-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-001.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-002-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-002.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-003-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-003.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-004-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-004.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-005-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-005.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-006-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-006.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-007-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-007.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-008-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-008.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-009-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-009.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-010-expected.html: Added.
  • imported/w3c/i18n/bidi/bidi-unset-010.html: Added.
  • imported/w3c/i18n/bidi/block-embed-001-expected.html: Added.
  • imported/w3c/i18n/bidi/block-embed-001.html: Added.
  • imported/w3c/i18n/bidi/block-embed-002-expected.html: Added.
  • imported/w3c/i18n/bidi/block-embed-002.html: Added.
  • imported/w3c/i18n/bidi/block-embed-003-expected.html: Added.
  • imported/w3c/i18n/bidi/block-embed-003.html: Added.
  • imported/w3c/i18n/bidi/block-override-001-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-001.html: Added.
  • imported/w3c/i18n/bidi/block-override-002-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-002.html: Added.
  • imported/w3c/i18n/bidi/block-override-003-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-003.html: Added.
  • imported/w3c/i18n/bidi/block-override-004-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-004.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-001-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-001.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-002-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-002.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-003-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-003.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-004-expected.html: Added.
  • imported/w3c/i18n/bidi/block-override-isolate-004.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-001-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-001.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-002-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-002.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-003-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-003.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-004-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-004.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-005-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-005.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-006-expected.html: Added.
  • imported/w3c/i18n/bidi/block-plaintext-006.html: Added.
  • imported/w3c/i18n/bidi/resources/sileot-webfont.woff: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
7:24 AM Changeset in webkit [216417] by Carlos Garcia Campos
  • 26 edits
    5 adds in releases/WebKitGTK/webkit-2.16

Merge r216294 - Restrict SVG filters to accessible security origins
https://bugs.webkit.org/show_bug.cgi?id=118689
<rdar://problem/27362159>

Reviewed by Brent Fulgham.

Source/WebCore:

Certain SVG filters should only be allowed to operate
on content that is has SecurityOrigin access to. Implement
this by including a flag in PaintInfo and LayerPaintingInfo,
and have RenderWidget make sure the documents have acceptable
SecurityOrigins as it goes to paint.

This could be used as the first step in a "safe painting"
strategy, allowing some content to be rendered into a
canvas or via the element() CSS function... but it is only
a small first step.

Test: http/tests/css/filters-on-iframes.html

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::paint):

  • platform/ScrollView.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::paint):

  • platform/Scrollbar.h:
  • platform/Widget.h:
  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::shouldBeRestrictedBySecurityOrigin):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::hasFilterThatShouldBeRestrictedBySecurityOrigin):

  • platform/graphics/filters/FilterOperations.h:
  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):

  • rendering/FilterEffectRenderer.h:
  • rendering/PaintInfo.h:

(WebCore::PaintInfo::PaintInfo):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):

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

(WebCore::RenderScrollbar::paint):

  • rendering/RenderScrollbar.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paintContents):

Source/WebKit2:

Update parameter lists.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::paint):

  • WebProcess/Plugins/PluginView.h:

LayoutTests:

Add a test that shows safe frames, unsafe frames, and
then a safe frame that itself has an unsafe frame, to
show that the security requirements are being forwarded
down the tree.

  • http/tests/css/filters-on-iframes-expected.html: Added.
  • http/tests/css/filters-on-iframes.html: Added.
  • http/tests/css/resources/blank.html: Added.
  • http/tests/css/resources/references-external.html: Added.
  • http/tests/css/resources/solid-red.html: Added.
7:06 AM Changeset in webkit [216416] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216253 - ASSERTION FAILED: !frame().document()->inRenderTreeUpdate() in WebCore::FrameView::layout(bool)
https://bugs.webkit.org/show_bug.cgi?id=171717

Reviewed by Brent Fulgham.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkCompleted):

Don't allow frame load to complete in the middle of a render tree update. Instead delay the check.

7:05 AM Changeset in webkit [216415] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

Merge r216246 - DRT's setAudioResultCallback() and IDBRequest::setResult() need to acquire the JSLock.
https://bugs.webkit.org/show_bug.cgi?id=171716
<rdar://problem/30878027>

Reviewed by Saam Barati.

Source/WebCore:

No new tests. This issue was caught by existing tests.

IDBRequest::setResult() needs to acquire the JSLock before calling toJS() (which
does JS conversion and therefore, potentially JS allocations).

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

Tools:

setAudioResultCallback() needs to acquire the JSLock before calling toJS() (which
does JS conversion and therefore, potentially JS allocations) and accessing
methods of internal JS data structures (which may do JS invocation, etc).

  • DumpRenderTree/TestRunner.cpp:

(setAudioResultCallback):

7:03 AM Changeset in webkit [216414] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Tools

Merge r216241 - [GTK] TestController timeout source callback should return G_SOURCE_REMOVE
https://bugs.webkit.org/show_bug.cgi?id=171724

Reviewed by Michael Catanzaro.

It's currently returning CONTINUE which causes it to be called again even if the run loop has been stopped.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::timeoutSource):

6:59 AM Changeset in webkit [216413] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216240 - [GStreamer] Do not report more errors after the first one
https://bugs.webkit.org/show_bug.cgi?id=171722

Reviewed by Xabier Rodriguez-Calvar.

We can receive several error messages for the same error from different elements. That's not expected by the
media source selection algorithm implementation. I don't know if didn't happen with previous versions of GST,
but since the upgrade to 1.10.4 several tests are failing because of this.

Fixes: media/video-error-does-not-exist.html

media/video-load-networkState.html
media/video-source-error.html
media/video-source-none-supported.html
media/video-source-moved.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Return early also when an error already occured.

6:58 AM Changeset in webkit [216412] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216239 - [GStreamer] Fix handling of gst errors in MediaPlayerPrivateGStreamer::handleMessage
https://bugs.webkit.org/show_bug.cgi?id=171721

Reviewed by Xabier Rodriguez-Calvar.

We are checking the GError only comparing the code, and ignoring the domain in some cases. Use g_error_matches()
in those cases instead of only checking the code.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

6:54 AM Changeset in webkit [216411] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216204 - REGRESSION (Safari 10.1): When 'transition' contains -ms-transform, transform-origin is also transitioned
https://bugs.webkit.org/show_bug.cgi?id=171250
<rdar://problem/31827243>

Reviewed by Geoffrey Garen.

Source/WebCore:

We were mapping unknown properties to 'all' animation. With this patch we ignore them instead.
The patch also implements roundtripping of unknown properties via CSSOM, matching Blink and Gecko.

Test: transitions/transition-unknown-property-ignore.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTransitionPropertyValue):

Return the correct name for unknown properties.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationProperty):

Map any unknown property to AnimateUnknownProperty mode instead of falling back to the default of AnimateAll.
Save the unknown property name so we can roundtrip it properly.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):

Ignore AnimateUnknownProperty like AnimateNone.

  • platform/animation/Animation.h:

(WebCore::Animation::unknownProperty):
(WebCore::Animation::setUnknownProperty):

LayoutTests:

  • transitions/transition-unknown-property-ignore-expected.txt: Added.
  • transitions/transition-unknown-property-ignore.html: Added.
  • transitions/transitions-parsing-expected.txt:
  • transitions/transitions-parsing.html:

Update the roundtrip expectations for unknown properties. The new results match Blink and Gecko.

6:44 AM Changeset in webkit [216410] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216196 - Should never hit layout while updating the render tree.
https://bugs.webkit.org/show_bug.cgi?id=171643

Reviewed by Antti Koivisto.

Laying out a half-baked render tree is not a great idea. Especially considering
that layout (sadly) can mutate the render tree.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

6:40 AM Changeset in webkit [216409] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216188 - REGRESSION(STP): rgb() with calc() containing variables doesn't work
https://bugs.webkit.org/show_bug.cgi?id=169939

Reviewed by Zalan Bujtas.

Source/WebCore:

Added new test in fast/css/variables.

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseValue):
Treat floats in calcs as integers when we can.

LayoutTests:

  • fast/css/variables/calc-float-to-int-expected.html: Added.
  • fast/css/variables/calc-float-to-int.html: Added.
6:39 AM Changeset in webkit [216408] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.16

Merge r216187 - Fix compilation with ICU 59.1
https://bugs.webkit.org/show_bug.cgi?id=171612

Reviewed by Mark Lam.

ICU 59.1 has broken source compatibility. Now it defines UChar as
char16_t, which does not allow automatic type conversion from unsigned
short in C++ code.

Source/JavaScriptCore:

  • API/JSStringRef.cpp:

(JSStringCreateWithCharacters):
(JSStringCreateWithCharactersNoCopy):
(JSStringGetCharactersPtr):

  • runtime/DateConversion.cpp:

(JSC::formatDateTime):

Source/WebKit2:

  • Shared/API/c/WKString.cpp:

(WKStringGetCharacters):

Tools:

  • TestRunnerShared/UIScriptContext/UIScriptContext.cpp:

(UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback):

6:33 AM Changeset in webkit [216407] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216159 - SearchInputType could end up with a mismatched renderer.
https://bugs.webkit.org/show_bug.cgi?id=171547
<rdar://problem/31935047>

Reviewed by Antti Koivisto.

Source/WebCore:

Normally we've got the correct renderer by the time we call into SearchInputType.
However, since HTMLInputElement::updateType() eagerly updates the type while the associated renderers are done lazily
(so we don't get them updated until after the next tree update), we could actually end up
with a mismatched renderer (e.g. through form submission).

Test: fast/forms/change-input-type-and-submit-form-crash.html

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::addSearchResult):
(WebCore::SearchInputType::didSetValueByUserEdit):

LayoutTests:

  • fast/forms/change-input-type-and-submit-form-crash-expected.txt: Added.
  • fast/forms/change-input-type-and-submit-form-crash.html: Added.
6:32 AM Changeset in webkit [216406] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Tools

Merge r216350 - [GTK] Cannot sign in with new Google sign-in page
https://bugs.webkit.org/show_bug.cgi?id=171770

Unreviewed. This just adds a test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

6:32 AM Changeset in webkit [216405] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216343 - [GTK] Cannot sign in with new Google sign-in page
https://bugs.webkit.org/show_bug.cgi?id=171770

Reviewed by Carlos Garcia Campos.

Google's new authentication page does not work with the Firefox user
agent that's required to make various Google websites work. Special-case
accounts.google.com so that it receives our standard user agent.

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle):
(WebCore::urlRequiresFirefoxBrowser):

6:32 AM Changeset in webkit [216404] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

Merge r216139 - YouTube user agent quirk breaks new YouTube
https://bugs.webkit.org/show_bug.cgi?id=171603

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Our user agent quirk to make YouTube 360 work breaks the new YouTube UI, causing it to
attempt to use the obsolete custom elements v0 API. WebKit only supports the v1 API. We
have to remove this quirk.

Note this does not affect Safari as Apple ports don't use our user agent quirks.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Remove the YouTube quirk test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

6:22 AM Changeset in webkit [216403] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216131 - RenderSearchField should not use isTextField() in SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT
https://bugs.webkit.org/show_bug.cgi?id=171608

Reviewed by Simon Fraser.

isTextField() is true for any generic single line text control.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isSearchField):

  • rendering/RenderSearchField.h:
6:14 AM Changeset in webkit [216402] by Carlos Garcia Campos
  • 7 edits
    8 adds in releases/WebKitGTK/webkit-2.16/LayoutTests

Merge r216126 - Detach frame from document when entering page cache
https://bugs.webkit.org/show_bug.cgi?id=166774
<rdar://problem/29904368>

Reviewed by Chris Dumez.

  • TestExpectations: Unskip tests.
  • fast/history/page-cache-after-window-open-expected.txt: Update expected result.
  • fast/history/page-cache-after-window-open.html: Ditto.
  • fast/history/page-cache-with-opener-expected.txt: Ditto.
  • fast/history/page-cache-with-opener.html: Update test given its new expected behavior.
  • fast/history/resources/page-cache-window-with-opener.html: Ditto.
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow-expected.txt: Added.
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html: Added.
6:10 AM Changeset in webkit [216401] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216120 - Abandon the current load once the provisional loader detaches from the frame
https://bugs.webkit.org/show_bug.cgi?id=171577
<rdar://problem/31581227>

Source/WebCore:

Reviewed by Brent Fulgham and Brady Eidson.

We detach all child frames as part of setting our document loader to the provisional
document loader when committing a load for a frame. Detaching child frames invokes
the unload event handler on the child frames that can run arbitrary JavaScript script.
Among other things, such script can initiate a new load in the frame whose current
load is being committed. We should stop processing the current load as soon as we
detect that updating our document loader has started a new provisional load.

Test: fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted):

LayoutTests:

Reviewed by Brent Fulgham.

  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-expected.txt: Added.
  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html: Added.
6:05 AM Changeset in webkit [216400] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216067 - [GStreamer] Dailymotion live stream videos don't play
https://bugs.webkit.org/show_bug.cgi?id=170767

Reviewed by Sergio Villar Senin.

The video shows a message saying that an error occurred and nothing is played. There are actually several
problems with dailymotion. The main issue is that URLs are redirected by the server, and GStreamer needs to
know the redirected URL. Once GStreamer knows the redirected URL the error message no longer appears, the video
starts but it always stops after a few seconds. This is because the source receives an early EOS while still
downloading the fragments. The reason of the early EOS is because dailymotion sends a wrong Content-Length header,
something that is expected to happen and we correctly handle that case when receiving the data, by updating the
size accordingly if the bytes received are longer than the expected content length. This particular case
doesn't work well with GStreamer automatic EOS handling, which is the default. At some point, GStreamer detects
that the bytes received are at least the expected ones and emits a GST_EVENT_EOS that the GstUriDownloader
handles finishing the download early. We should always disable automatic EOS, since we know when EOS actually
happens and we already call gst_app_src_end_of_stream(). This patch also emits a GST_EVENT_CUSTOM_DOWNSTREAM_STICKY
event to let GStreamer know about the HTTP headers sent and received.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Disable automatic EOS.
(webKitWebSrcGetProperty): Return the redirected URL in case of redirection.
(webKitWebSrcStart): Pass the ResourceRequest to the stream clients.
(webKitWebSrcQueryWithParent): Set the redirected URL in the query in case of redirection.
(webKitWebSrcSetUri): Clear also the redirected URL when setting a new URI.
(StreamingClient::StreamingClient): Use GRefPtr for the source and initialize the request too.
(StreamingClient::~StreamingClient): Remove explicit unref.
(StreamingClient::createReadBuffer):
(StreamingClient::handleResponseReceived): Initialize the redirected URL in case of redirection. Create and push
the HTTP headers event.
(StreamingClient::handleDataReceived):
(StreamingClient::handleNotifyFinished):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(ResourceHandleStreamingClient::ResourceHandleStreamingClient):
(ResourceHandleStreamingClient::didFail):
(ResourceHandleStreamingClient::wasBlocked):
(ResourceHandleStreamingClient::cannotShowURL):

6:05 AM Changeset in webkit [216399] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216065 - [GTK] Crash at WebCore::ResourceHandle::clearClient() when streaming live video from dailymotion
https://bugs.webkit.org/show_bug.cgi?id=169725

Reviewed by Michael Catanzaro.

Make ResourceHandleStreamingClient refcounted and add an invalidate method to do the cleanup in the networking
thread while keeping a reference.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcStop): Call invalidate before reseting client pointer.
(webKitWebSrcStart): Ditto.
(ResourceHandleStreamingClient::ResourceHandleStreamingClient): Remove all cleanup code after the run loop run call.
(ResourceHandleStreamingClient::~ResourceHandleStreamingClient): Just detach the thread.
(ResourceHandleStreamingClient::invalidate): Schedule a task on the networking thread to clean up and fiish the
run loop, protecting this.
(ResourceHandleStreamingClient::setDefersLoading): Protect this.
(ResourceHandleStreamingClient::didReceiveResponse): Do nothing if client was invalidated.
(ResourceHandleStreamingClient::didReceiveBuffer): Ditto.
(ResourceHandleStreamingClient::didFinishLoading): Ditto.

5:56 AM Changeset in webkit [216398] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216046 - Documents created using DOMParser.parseFromString should inherit their context document's origin / URL
https://bugs.webkit.org/show_bug.cgi?id=171499

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline web-platform-tests now that more checks are passing.

  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
  • web-platform-tests/domparsing/DOMParser-parseFromString-xml-expected.txt:

Source/WebCore:

Documents created using DOMParser.parseFromString should inherit their context document's
origin / URL:

Test: fast/dom/domparser-parsefromstring-origin.html

  • xml/DOMParser.cpp:

(WebCore::DOMParser::parseFromString):

LayoutTests:

Add layout test coverage. I have verified that this test passes in both Firefox and Chrome.

  • fast/dom/domparser-parsefromstring-origin-expected.txt: Added.
  • fast/dom/domparser-parsefromstring-origin.html: Added.
5:53 AM Changeset in webkit [216397] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216023 - Do not dispatch SVG load event in frameless documents
https://bugs.webkit.org/show_bug.cgi?id=171505
<rdar://problem/31799776>

Reviewed by Andreas Kling.

Source/WebCore:

We should not dispatch SVG load events in frameless documents. <https://trac.webkit.org/changeset/173028/webkit>
took care of most load events but forgot the SVG load event.

Test: fast/dom/domparser-parsefromstring-svg-load-event.html

  • dom/Document.cpp:

(WebCore::Document::implicitClose):

LayoutTests:

Add layout test coverage. I have verified that this test passes on both Firefox and Chrome.

  • fast/dom/domparser-parsefromstring-svg-load-event-expected.txt: Added.
  • fast/dom/domparser-parsefromstring-svg-load-event.html: Added.
5:45 AM Changeset in webkit [216396] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215976 - iBooks text can overlap, sometimes columns are shifted splitting words.
https://bugs.webkit.org/show_bug.cgi?id=171472
<rdar://problem/31096037>

Reviewed by Antti Koivisto.

Source/WebCore:

Instead of just checking if the glyph is taller than the line, we need to ensure that both the
ascent and the descent have enough space (this is for -webkit-line-box-contain: glyph).

Test: fast/text/simple-line-layout-glyph-overflows-line.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForText): compute the available space for the ascent/descent
and check them against the ceil-ed(see FontCascade::floatWidthForSimpleText) glyph min/max y.

LayoutTests:

  • fast/text/simple-line-layout-glyph-overflows-line-expected.html: Added.
  • fast/text/simple-line-layout-glyph-overflows-line.html: Added.
5:42 AM Changeset in webkit [216395] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215971 - Crash under WebCore::AccessibilityRenderObject::handleAriaExpandedChanged().
https://bugs.webkit.org/show_bug.cgi?id=171427
Source/WebCore:

rdar://problem/31863417

Reviewed by Brent Fulgham.

The AccessibilityRenderObject object might delete itself in handleAriaExpandedChanged() under the call
to the parentObject() method. This will cause a crash when accessing the object later in this method.
Protect the current object while executing arbitrary event code.

Test: accessibility/accessibility-crash-setattribute.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):

LayoutTests:

Reviewed by Brent Fulgham.

  • accessibility/accessibility-crash-setattribute-expected.txt: Added.
  • accessibility/accessibility-crash-setattribute.html: Added.
5:40 AM Changeset in webkit [216394] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215957 - App crashing: Dispatch queue: com.apple.root.user-interactive-qos / vBoxConvolve / WebCore::FEGaussianBlur::platformApplySoftware()
https://bugs.webkit.org/show_bug.cgi?id=171461
<rdar://problem/30534722>

Reviewed by Eric Carlson.

Source/WebCore:

We're getting reports of crashes in this function, caused by null or empty data being
passed to vImage. Guard against this, in a way that will ASSERT in debug builds if
anyone comes across it.

Test: css3/filters/blur-various-radii.html

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::accelerateBoxBlur): Return early if things don't look good.

LayoutTests:

Test a bunch of blurs a frame at a time.

  • css3/filters/blur-various-radii-expected.html: Added.
  • css3/filters/blur-various-radii.html: Added.
5:38 AM Changeset in webkit [216393] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.16

Merge r215940 - URLSearchParams should be reflective
https://bugs.webkit.org/show_bug.cgi?id=171345

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Merge https://github.com/w3c/web-platform-tests/pull/5736 to gain test
coverage.

  • web-platform-tests/url/urlsearchparams-constructor-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor.html:

Source/WebCore:

There was a bug in our implementation of [1] where we would replace
'+' with 0x20 *after* URL-decoding the string, instead of *before*.
This was causing us to replace URL-encoded '+' characters with 0x20.

[1] https://url.spec.whatwg.org/#concept-urlencoded-parser

No new tests, updated existing test.

  • platform/URLParser.cpp:
5:35 AM Changeset in webkit [216392] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.16/Source/bmalloc

Merge r215909 - bmalloc scavenger should know what page classes are allocating
https://bugs.webkit.org/show_bug.cgi?id=171384

Reviewed by Geoffrey Garen.

This change replaces m_isAllocatingPages with a per page class flag to track which page
classes are currently allocating. When scavenging, we skip page classes that are actively
allocating and come back to them on a subsequent pass. This reduces the amount of time it
takes for scavenger to free up pages as well as the total time it takes to handle all
page classes.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::concurrentScavenge):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeSmallPages):
(bmalloc::Heap::scavengeLargeObjects):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::deallocateLarge):

  • bmalloc/Heap.h:

(bmalloc::Heap::takeRequestedScavengerThreadQOSClass): Deleted.

  • bmalloc/VMHeap.h:

(bmalloc::VMHeap::deallocateSmallPage):

  • bmalloc/bmalloc.h:

(bmalloc::api::scavenge):

5:32 AM Changeset in webkit [216391] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215874 - Repeated layouts in Mail due to viewport units being used with auto-sizing
https://bugs.webkit.org/show_bug.cgi?id=171371
<rdar://problem/28780084>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: css3/viewport-percentage-lengths/vh-auto-size.html

Auto-sizing code would adjust the size of the view in the beginning of layout(). This would
end up invalidating style for elements that use vh units and we would perform main layout
with unclean style. This would result in endless layout loops and hit assert on debug.

  • page/FrameView.cpp:

(WebCore::FrameView::availableContentSizeChanged):

Ensure we heve clean style after resize if we are in pre-layout.

LayoutTests:

  • css3/viewport-percentage-lengths/vh-auto-size-expected.html: Added.
  • css3/viewport-percentage-lengths/vh-auto-size.html: Added.
5:30 AM Changeset in webkit [216390] by Carlos Garcia Campos
  • 2 edits
    1 add
    2 deletes in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r216356 - [GTK] Web Inspector: Add new GTK+ icon for timeline recording stopwatch
https://bugs.webkit.org/show_bug.cgi?id=154088

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-08
Reviewed by Carlos Garcia Campos.

Add a free icon and remove some unused ones for the Web Inspector
in GTK+.

  • UserInterface/Images/gtk/Stopwatch.png: Removed.
  • UserInterface/Images/gtk/Stopwatch.svg: Added.
  • UserInterface/Images/gtk/Stopwatch@2x.png: Removed.
  • UserInterface/Views/TimelineIcons.css:

(body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Deleted.

5:30 AM Changeset in webkit [216389] by Carlos Garcia Campos
  • 1 edit
    1 delete in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r216064 - [GTK] Web Inspector: Remove GTK+ icon FontVariantSmallCaps.svg
https://bugs.webkit.org/show_bug.cgi?id=171542

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-02
Reviewed by Carlos Garcia Campos.

This image is not used and Apple's one was removed in Bug 148720.

  • UserInterface/Images/gtk/FontVariantSmallCaps.svg: Removed.
5:30 AM Changeset in webkit [216388] by Carlos Garcia Campos
  • 1 edit
    2 deletes in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r216063 - [GTK] Web Inspector: Remove GTK+ icons AnimationPlayStatePaused.svg and AnimationPlayStateRunning.svg
https://bugs.webkit.org/show_bug.cgi?id=171540

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-02
Reviewed by Carlos Garcia Campos.

These images aren't used since r204152 (Bug 160566). Instead,
Plus13.svg and Minus.svg are used.

  • UserInterface/Images/gtk/BreakpointActionAdd.svg: Removed.
  • UserInterface/Images/gtk/BreakpointActionRemove.svg: Removed.
5:30 AM Changeset in webkit [216387] by Carlos Garcia Campos
  • 2 edits
    6 adds
    14 deletes in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r215869 - [GTK] Web Inspector: Add new GTK+ icons for instrument icons
https://bugs.webkit.org/show_bug.cgi?id=153892
<rdar://problem/24510460>

Patch by Fujii Hironori <Fujii Hironori> on 2017-04-27
Reviewed by Joseph Pecoraro.

Add more free icons from art-libre symbolic and removed some
unused ones for the Web Inspector in GTK+.

  • UserInterface/Images/gtk/Colors.png: Removed.
  • UserInterface/Images/gtk/Colors@2x.png: Removed.
  • UserInterface/Images/gtk/ColorsLarge.png: Removed.
  • UserInterface/Images/gtk/ColorsLarge@2x.png: Removed.
  • UserInterface/Images/gtk/Frames.png: Removed.
  • UserInterface/Images/gtk/Frames@2x.png: Removed.
  • UserInterface/Images/gtk/HeapAllocationsInstrument.svg: Added.
  • UserInterface/Images/gtk/LayoutInstrument.svg: Added.
  • UserInterface/Images/gtk/MemoryInstrument.svg: Added.
  • UserInterface/Images/gtk/Network.png: Removed.
  • UserInterface/Images/gtk/Network@2x.png: Removed.
  • UserInterface/Images/gtk/NetworkInstrument.svg: Added.
  • UserInterface/Images/gtk/NetworkLarge.png: Removed.
  • UserInterface/Images/gtk/NetworkLarge@2x.png: Removed.
  • UserInterface/Images/gtk/RenderingFramesInstrument.svg: Added.
  • UserInterface/Images/gtk/Script.png: Removed.
  • UserInterface/Images/gtk/Script@2x.png: Removed.
  • UserInterface/Images/gtk/ScriptLarge.png: Removed.
  • UserInterface/Images/gtk/ScriptLarge@2x.png: Removed.
  • UserInterface/Images/gtk/ScriptsInstrument.svg: Added.
  • UserInterface/Views/TimelineIcons.css:

(body:not(.mac-platform, .windows-platform) .network-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .network-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .layout-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .layout-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .script-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .script-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .memory-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .heap-allocations-icon .icon): Deleted.

4:50 AM Changeset in webkit [216386] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r215868 - [GTK] Web Inspector: gtk/NavigationItemCurleyBraces.svg is licensed under NonCommercial CC
https://bugs.webkit.org/show_bug.cgi?id=170902

Patch by Fujii Hironori <Fujii Hironori> on 2017-04-27
Reviewed by Michael Catanzaro.

  • UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:

Replaced with new one created by me.

4:50 AM Changeset in webkit [216385] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r215867 - [GTK] Web Inspector: some SVG images are specified 'currentColor' incorrectly
https://bugs.webkit.org/show_bug.cgi?id=170977

Patch by Fujii Hironori <Fujii Hironori> on 2017-04-27
Reviewed by Michael Catanzaro.

The keyword 'currentColor' is specifed manually in Bug 150602.
But, some SVG images are specified incorrectly.

  • UserInterface/Images/gtk/NavigationItemTypes.svg: Do not stroke

with currentColor, but fill.

  • UserInterface/Images/gtk/UpDownArrows.svg: Ditto.
4:20 AM Changeset in webkit [216384] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215861 - Text gets cut off when bailing out of simple line layout with widows.
https://bugs.webkit.org/show_bug.cgi?id=171370
<rdar://problem/31563414>

Reviewed by Antti Koivisto.

Source/WebCore:

Normal line layout requires an extra layout to handle widows. See RenderBlockFlow::relayoutToAvoidWidows.

Test: fast/multicol/simple-line-layout-widows-when-switching-over-to-normal-line-layout.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::ensureLineBoxes):

LayoutTests:

  • fast/multicol/simple-line-layout-widows-when-switching-over-to-normal-line-layout-expected.html: Added.
  • fast/multicol/simple-line-layout-widows-when-switching-over-to-normal-line-layout.html: Added.
4:07 AM Changeset in webkit [216383] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215805 - Forced page break on :after triggers infinite loop in column balancing
https://bugs.webkit.org/show_bug.cgi?id=171309
rdar://problem/26285884

Reviewed by David Hyatt.

Source/WebCore:

Stop trying to balance the columns when the forced page breaks >= the number of
columns even when this number is 1. Content will always overflow to the next page.
see https://chromium.googlesource.com/chromium/src/+/fbbebf38cefb2712c912581eccb046ef363ec84e%5E%21/#F2

Test: fast/multicol/infinite-loop-when-forced-break.html

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::calculateBalancedHeight):

LayoutTests:

  • fast/multicol/infinite-loop-when-forced-break-expected.txt: Added.
  • fast/multicol/infinite-loop-when-forced-break.html: Added.
4:03 AM Changeset in webkit [216382] by Carlos Garcia Campos
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.16

Merge r215790 - REGRESSION(206450): WebKit2PlatformMouseEvent m_modifierFlags not set
https://bugs.webkit.org/show_bug.cgi?id=171297
<rdar://problem/31530719>

Reviewed by Geoffrey Garen.

Source/WebKit2:

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

Tools:

  • TestWebKitAPI/PlatformWebView.h:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/EventModifiers.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::mouseDidMoveOverElement):
(TestWebKitAPI::setClients):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/mac/PlatformWebViewMac.mm:

(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):

4:01 AM Changeset in webkit [216381] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215787 - Relax the event firing ASSERT for Attr changes
https://bugs.webkit.org/show_bug.cgi?id=171236
<rdar://problem/30516349>

Reviewed by Dean Jackson.

Source/WebCore:

The assertions added in Bug 167318 were overly strict, and trigger for valid behavior.
Relax the assertion preventing event dispatch for the case of Attr elements at the
end of childrenChanged.

Test: fast/dom/HTMLLinkElement/event-while-removing-attribute.html

  • dom/Attr.cpp:

(WebCore::Attr::childrenChanged):

LayoutTests:

  • fast/dom/HTMLLinkElement/event-while-removing-attribute-expected.txt: Added.
  • fast/dom/HTMLLinkElement/event-while-removing-attribute.html: Added.
3:57 AM Changeset in webkit [216380] by Carlos Garcia Campos
  • 6 edits
    3 adds in releases/WebKitGTK/webkit-2.16

Merge r215784 - Limit allowed size of document.title to avoid locking WebKit clients
https://bugs.webkit.org/show_bug.cgi?id=165113
<rdar://problem/28324389>

Reviewed by Darin Adler.

Source/WebKit/mac:

When a web application attempts to set an extremely long title, truncate the
title to a more reasonable size.

We do this at at the presentation layer, rather than in the DOM, so that we do
not affect script function. Instead, we merely limit display to a level that is
reasonable for normal GUI widgets. Anything else needs to be truncated in the UI
layer, so it is a waste of effort to send across IPC.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidReceiveTitle):

Source/WebKit2:

When a web application attempts to set an extremely long title, truncate the
title to a more reasonable size.

We do this at at the presentation layer, rather than in the DOM, so that we do
not affect script function. Instead, we merely limit display to a level that is
reasonable for normal GUI widgets. Anything else needs to be truncated in the UI
layer, so it is a waste of effort to send across IPC.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new files.
  • TestWebKitAPI/Tests/WebKit2/LimitTitleSize.cpp: Added.
  • TestWebKitAPI/Tests/WebKit2/set-long-title.html: Added.
  • TestWebKitAPI/Tests/mac/LimitTitleSize.mm: Added.
3:38 AM Changeset in webkit [216379] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.16

Merge r215736 - Content-Disposition header filename is ignored when 'download' attribute is specified in HTML
https://bugs.webkit.org/show_bug.cgi?id=171239
<rdar://problem/31789855>

Reviewed by Alex Christensen.

Source/WebCore:

Add isAttachmentWithFilename() utility method to ResourceResponse to implement:

Test: http/tests/download/anchor-download-attribute-content-disposition.html

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::isAttachmentWithFilename):

  • platform/network/ResourceResponseBase.h:

Source/WebKit2:

Content-Disposition header filename is ignored when 'download' attribute is specified in HTML.
This is not as per HTML specification:

Content-Disposition header filename is supposed to override the value of the download attribute.

Firefox and Chrome follow the specification.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveResponse):

LayoutTests:

  • http/tests/security/anchor-download-allow-sameorigin.html:

Stop using attachment.php as resource for this download attribute test because attachment.php
returns a Content-Disposition header with a filename. Given the behavior change in this patch,
this resource is no longer suitable for testing the download attribute.

  • http/tests/download/anchor-download-attribute-content-disposition-expected.txt: Added.
  • http/tests/download/anchor-download-attribute-content-disposition.html: Added.
  • http/tests/download/resources/content-disposition-pass.php: Added.

Add layout test coverage.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:

Skip new test on platforms where the download attribute is not supported.

3:23 AM Changeset in webkit [216378] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.16

Merge r215660 - REGRESSION(r205374): <li> content inside <ul> should mid-word wrap when word-break: break-word is present.
https://bugs.webkit.org/show_bug.cgi?id=171108
<rdar://problem/30271747>

Reviewed by Dan Bernstein.

Source/WebCore:

This patch ensures that we search for mid-word breaks when a zero sized element has been committed on the line
unless it's an image or some other replaced element with special properties (e.g. list-style: inside).

Tests: fast/replaced/ul-li-word-break-break-word.html

fast/replaced/zero-width-image-force-linebreak.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleReplaced):
(WebCore::BreakingContext::handleText): This matches pre-r205374 behaviour, but it's explicit about whether a
replaced width has already been committed on the current line.

  • rendering/line/LineWidth.cpp:

(WebCore::LineWidth::commit):

  • rendering/line/LineWidth.h:

(WebCore::LineWidth::hasCommittedReplaced):
(WebCore::LineWidth::addUncommittedReplacedWidth): These 2 last functions were removed with r205374 (and now I am adding them back).

LayoutTests:

  • fast/replaced/ul-li-word-break-break-word-expected.html: Added.
  • fast/replaced/ul-li-word-break-break-word.html: Added.
  • fast/replaced/zero-width-image-force-linebreak-expected.html: Added.
  • fast/replaced/zero-width-image-force-linebreak.html: Added.
3:17 AM Changeset in webkit [216377] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/LayoutTests

Unreviewed. Fix expectations of fast/events/drag-and-drop-link-containing-block.html.

  • platform/gtk/TestExpectations:
3:17 AM Changeset in webkit [216376] by Carlos Garcia Campos
  • 24 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215648 - Regression(r206240): XMLSerializer.serializeToString() does not properly escape '<' / '>' in attribute values
https://bugs.webkit.org/show_bug.cgi?id=171132
<rdar://problem/31426752>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Re-sync web-platform-tests/domparsing from upstream.

  • web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
  • web-platform-tests/domparsing/DOMParser-parseFromString-xml-doctype.html:
  • web-platform-tests/domparsing/DOMParser-parseFromString-xml.html:
  • web-platform-tests/domparsing/XMLSerializer-serializeToString.html:
  • web-platform-tests/domparsing/createContextualFragment.html:
  • web-platform-tests/domparsing/innerhtml-01.xhtml:
  • web-platform-tests/domparsing/innerhtml-03.xhtml:
  • web-platform-tests/domparsing/innerhtml-04.html:
  • web-platform-tests/domparsing/innerhtml-05.xhtml:
  • web-platform-tests/domparsing/innerhtml-06.html:
  • web-platform-tests/domparsing/innerhtml-07.html:
  • web-platform-tests/domparsing/insert-adjacent.html:
  • web-platform-tests/domparsing/insert_adjacent_html-xhtml.xhtml:
  • web-platform-tests/domparsing/insert_adjacent_html.html:
  • web-platform-tests/domparsing/outerhtml-01.html:
  • web-platform-tests/domparsing/outerhtml-02.html:
  • web-platform-tests/domparsing/style_attribute_html.html:
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/domparsing/xml-serialization.xhtml:

Source/WebCore:

Use XMLSerialization [1] in MarkupAccumulator::appendAttribute() when inXMLFragmentSerialization()
returns true, even if the node's associated document is an HTML document. When XMLSerializer.serializeToString()
is called on a Node, we want XML serialization, even if the node comes from an HTML document.

[1] https://w3c.github.io/DOM-Parsing/#dfn-xml-serialization

Test: fast/dom/XMLSerializer-serializeToString-entities.html

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendAttributeValue):
(WebCore::MarkupAccumulator::appendAttribute):

  • editing/MarkupAccumulator.h:

LayoutTests:

Add layout test coverage. This test is passing in both Firefox and Chrome.

  • fast/dom/XMLSerializer-serializeToString-entities-expected.txt: Added.
  • fast/dom/XMLSerializer-serializeToString-entities.html: Added.
3:11 AM Changeset in webkit [216375] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215632 - Validate vImage arguments
https://bugs.webkit.org/show_bug.cgi?id=171109
Source/WebCore:

rdar://problem/30236606

Patch by Per Arne Vollan <pvollan@apple.com> on 2017-04-21
Reviewed by Brent Fulgham.

When writing data to a canvas context, clip the source rectangle to the data rectangle
to make sure we will not attempt to read data outside of the buffer.

Test: fast/canvas/canvas-crash.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::putImageData):

LayoutTests:

Patch by Per Arne Vollan <pvollan@apple.com> on 2017-04-21
Reviewed by Brent Fulgham.

  • fast/canvas/canvas-crash-expected.txt: Added.
  • fast/canvas/canvas-crash.html: Added.
2:36 AM Changeset in webkit [216374] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests.

  • platform/gtk/TestExpectations:
2:22 AM Changeset in webkit [216373] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215613 - Do not paint the border of the box if the dirty region does not intersect with border area
https://bugs.webkit.org/show_bug.cgi?id=170988

Reviewed by Simon Fraser.

No new tests, since there is no change in behavior.

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::ellipseContainsPoint):
Checks if a point is within an ellipse.

  • platform/graphics/GeometryUtilities.h:

Replace header-guards with #pragma once.

  • platform/graphics/RoundedRect.cpp:

(WebCore::RoundedRect::contains):
Implemented to know the dirty rectangle intersects with rounded rectangle or not.

  • platform/graphics/RoundedRect.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBorder):
When typing in decorated text box, the dirty rect generated only for the
inside of the text box, not for the decorations. So we can avoid the
calculations to draw borders if the inner border totally covers the
target surface. It will optimize the rendering process since we don't
have to render border decorations whenever we type somethings in side of
the text input element.

2:10 AM Changeset in webkit [216372] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215581 - Inline anchor elements cannot be dragged when starting the drag from a block descendant
https://bugs.webkit.org/show_bug.cgi?id=171062
<rdar://problem/31697835>

Reviewed by Tim Horton.

Source/WebCore:

Tweaks DragController::draggableElement to traverse the DOM instead of the render tree when finding a draggable
element. This prevents us from skipping elements that are in the DOM ancestor chain, but appear as siblings to
the hit-tested node's renderer in the render tree.

There was also previously a check to ensure that we skip anonymous RenderObjects while traversing up the chain,
but this is no longer necessary fter this change, since all the elements we traverse in the DOM should have
renderers that are not anonymous.

Test: fast/events/drag-and-drop-link-containing-block.html

  • page/DragController.cpp:

(WebCore::DragController::draggableElement):

LayoutTests:

Adds a new test on WK1 Mac to verify that link dragging succeeds when the link's anchor element is inline and
the drag is started from a block element under the link.

  • fast/events/drag-and-drop-link-containing-block-expected.txt: Added.
  • fast/events/drag-and-drop-link-containing-block.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Skip the test on iOS and Mac WK2.

2:04 AM Changeset in webkit [216371] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r215567 - Fix assertions in webProcessProxyFromConnection
https://bugs.webkit.org/show_bug.cgi?id=171025
<rdar://problem/31184073>

Patch by Alex Christensen <achristensen@webkit.org> on 2017-04-20
Reviewed by Brady Eidson.

  • UIProcess/WebProcessPool.cpp:

(WebKit::webProcessProxyFromConnection):
If we have a Connection, then we have a valid process attached to that connection,
unless it's a Connection to a different type of child process.
Calling ChildProcessProxy::connection on other web processes that are in State::Launching,
then we get an assertion. Luckily, ChildProcessProxy::hasConnection was introduced in r210861
for this reason.

2:00 AM Changeset in webkit [216370] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215535 - Parsing large XML strings fails
https://bugs.webkit.org/show_bug.cgi?id=170999
<rdar://problem/17336267>

Reviewed by Brady Eidson.

Source/WebCore:

Test: fast/dom/xml-large.html

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLParserContext::createStringParser):
(WebCore::XMLParserContext::createMemoryParser):
Allow huge XML strings. They work fine in Chrome and Firefox.

LayoutTests:

  • fast/dom/xml-large-expected.txt: Added.
  • fast/dom/xml-large.html: Added.
1:58 AM Changeset in webkit [216369] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215528 - ASAN Crash running LayoutTests/inspector/worker tests
https://bugs.webkit.org/show_bug.cgi?id=170967
<rdar://problem/31256437>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-19
Reviewed by Alex Christensen.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal):
Make the MessagingProxy thread safe ref counted. Since it used to
delete itself, turn this into a ref (implicit on construction)
and deref (replacing delete this).

(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
When dispatching have the lambda implicitly ref/deref with the
lambda to keep the proxy alive while a lambda is queued.

1:56 AM Changeset in webkit [216368] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215513 - Remove bogus assert for :not.
https://bugs.webkit.org/show_bug.cgi?id=170995
<rdar://problem/29693115>

Reviewed by Zalan Bujtas.

  • css/parser/CSSSelectorParser.cpp:
1:55 AM Changeset in webkit [216367] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r215508 - [GTK] WebKitAutocleanups.h regression in v2.16.1 release
https://bugs.webkit.org/show_bug.cgi?id=170987

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-04-19
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitAutocleanups.h: Remove stray semicolon.
1:54 AM Changeset in webkit [216366] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215507 - Avoid repaints for invisible animations on tumblr.com/search/aww
https://bugs.webkit.org/show_bug.cgi?id=170986
<rdar://problem/28644580>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/repaint/mutate-non-visible.html

  • rendering/style/RenderStyle.cpp:

(WebCore::requiresPainting):
(WebCore::RenderStyle::changeRequiresRepaint):

If an element is invisible it does not require repaint even if something else changes.

LayoutTests:

  • fast/repaint/mutate-non-visible-expected.txt: Added.
  • fast/repaint/mutate-non-visible.html: Added.
1:51 AM Changeset in webkit [216365] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215487 - JSEventListener::m_isolatedWorld should be a Ref
https://bugs.webkit.org/show_bug.cgi?id=170910
<rdar://problem/30470332>

Reviewed by Alex Christensen.

Since m_isolatedWorld should never be nullptr, change the implementation of m_isolatedWorld
from a RefPtr to a Ref, and adjust the various call sites to support this change.

This should help us catch any changes that permit the isolatedWorld to be set to nullptr.

No new tests since there should be no change in behavior.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::initializeJSFunction):
(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::cast):
(WebCore::JSEventListener::isolatedWorld):
(WebCore::JSEventListener::jsFunction):

1:47 AM Changeset in webkit [216364] by Carlos Garcia Campos
  • 15 edits
    4 adds in releases/WebKitGTK/webkit-2.16

Merge r215486 - Correct handling of isolatedWorld in event handling
https://bugs.webkit.org/show_bug.cgi?id=65589
<rdar://problem/24097804>

Reviewed by Geoffrey Garen.

Source/WebCore:

This patch was inspired by Adam's original patch as well as the
following Blink change:
https://src.chromium.org/viewvc/blink?revision=152377&view=revision

Thread isolatedWorld state through event handling logic.

Tests: fast/dom/event-attrs-isolated-world.html

http/tests/security/isolatedWorld/onclick-attribute.html

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::initializeJSFunction):
(WebCore::JSEventListener::world):
(WebCore::eventHandlerAttribute):
(WebCore::setEventHandlerAttribute):
(WebCore::windowEventHandlerAttribute):
(WebCore::setWindowEventHandlerAttribute):
(WebCore::documentEventHandlerAttribute):
(WebCore::setDocumentEventHandlerAttribute):

  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • dom/Document.cpp:

(WebCore::Document::setWindowAttributeEventListener):
(WebCore::Document::getWindowAttributeEventListener):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::setAttributeEventListener):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::attributeEventListener):

  • dom/EventTarget.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::ReplacementFragment):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::parseAttribute):

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::parseAttribute):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::parseAttribute):

LayoutTests:

This following test cases are from the following Blink change:
https://src.chromium.org/viewvc/blink?revision=152377&view=revision

  • fast/dom/event-attrs-isolated-world-expected.txt: Added.
  • fast/dom/event-attrs-isolated-world.html: Added.
  • http/tests/security/isolatedWorld/onclick-attribute-expected.txt: Added.
  • http/tests/security/isolatedWorld/onclick-attribute.html: Added.
1:24 AM Changeset in webkit [216363] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.16/Source/JavaScriptCore

Merge r215516 - r211670 broke double to int conversion.
https://bugs.webkit.org/show_bug.cgi?id=170961

Reviewed by Mark Lam.

In this patch, we take a template parameter way.
While it reduces duplicate code, it effectively produces
optimized code for operationToInt32SensibleSlow,
and fixes kraken pbkdf2 regression on Linux.

And this patch also fixes undefined behavior by changing
int32_t to uint32_t. If exp is 31, missingOne is 1 << 31,
INT32_MIN. Thus missingOne - 1 will cause int32_t overflow,
and it is an undefined behavior.

  • runtime/MathCommon.cpp:

(JSC::operationToInt32SensibleSlow):

  • runtime/MathCommon.h:

(JSC::toInt32Internal):
(JSC::toInt32):

1:24 AM Changeset in webkit [216362] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215482 - r211670 broke double to int conversion.
https://bugs.webkit.org/show_bug.cgi?id=170961
<rdar://problem/31687696>

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/double-to-int32.js: Added.
  • stress/to-int32-sensible2.js: Added.

Source/JavaScriptCore:

This is because operationToInt32SensibleSlow() assumes that left shifts of greater
than 31 bits on an 31-bit value will produce a 0. However, the spec says that
"if the value of the right operand is negative or is greater or equal to the
number of bits in the promoted left operand, the behavior is undefined."
See http://en.cppreference.com/w/cpp/language/operator_arithmetic#Bitwise_shift_operators.

This patch fixes this by restoring the check to prevent a shift of greater than
31 bits. It also consolidates the optimization in operationToInt32SensibleSlow()
back into toInt32() so that we don't have 2 copies of the same code with only a
slight variation.

JSC benchmarks shows that performance is neutral with this patch.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):

  • runtime/MathCommon.cpp:

(JSC::operationToInt32SensibleSlow): Deleted.

  • runtime/MathCommon.h:

(JSC::toInt32):

1:02 AM Changeset in webkit [216361] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215465 - Break Document::m_associatedFormControls reference cycle.
<https://webkit.org/b/170946>

Reviewed by Antti Koivisto.

There was a race between didAssociateFormControls() and didAssociateFormControlsTimerFired()
where detaching Document from its frame between the two would lead to an unbreakable reference
cycle between Document and its form elements.

Solve this by clearing the set of associated form elements in removedLastRef(), where we clear
all the other strong smart pointers to elements.

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):

1:02 AM Changeset in webkit [216360] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.16

Merge r215404 - CMD+R / CMD+Q is considered as user interaction and beforeunload alert is shown
https://bugs.webkit.org/show_bug.cgi?id=169995
<rdar://problem/23798897>

Reviewed by Sam Weinig.

Source/WebCore:

Any key event was considered as user interaction with the page, which meant that they
would allow beforeunload alerts to be shown even when they do not represent actual
user interaction (e.g CMD+R / CMD+Q / CMD+T keyboard shortcuts).

To address the issue, we now only treat as user interaction with the page key events
that are actually handled by the page (i.e. handled by JS, typed into a field, ...).

Tests: fast/events/beforeunload-alert-handled-keydown.html

fast/events/beforeunload-alert-unhandled-keydown.html

  • dom/Document.h:

(WebCore::Document::setUserDidInteractWithPage):
(WebCore::Document::userDidInteractWithPage):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator):

  • loader/FrameLoader.cpp:

(WebCore::shouldAskForNavigationConfirmation):

  • page/EventHandler.cpp:

(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::internalKeyEvent):

  • page/EventHandler.h:

LayoutTests:

Add layout test coverage.

  • fast/events/beforeunload-alert-handled-keydown-expected.txt: Added.
  • fast/events/beforeunload-alert-handled-keydown.html: Added.
  • fast/events/beforeunload-alert-unhandled-keydown-expected.txt: Added.
  • fast/events/beforeunload-alert-unhandled-keydown.html: Added.
12:56 AM Changeset in webkit [216359] by jcraig@apple.com
  • 2 edits
    2 adds in trunk/Websites/webkit.org

2017-05-08 James Craig <jcraig@apple.com>

More demo files for prefers-reduced-motion post
https://bugs.webkit.org/show_bug.cgi?id=170663

Unreviewed.

  • blog-files/prefers-reduced-motion/jaws.gif: Added.
  • blog-files/prefers-reduced-motion/jaws.jpg: Added.
  • blog-files/prefers-reduced-motion/prm.htm: New animated GIF example.
12:33 AM Changeset in webkit [216358] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r214939 - [GTK+] PNG animations that should run once are not played at all
https://bugs.webkit.org/show_bug.cgi?id=170499

Reviewed by Carlos Garcia Campos.

The repetition count reported bu the PNGImageDecoder is wrong. It's returning m_playCount - 1, which
means 0 for the animations that need to be played once. Change it to return an appropriate value.

Covered by existent tests.

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::repetitionCount):

  • platform/image-decoders/png/PNGImageDecoder.h:
12:32 AM Changeset in webkit [216357] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215375 - text-align start / end failure in table cells
https://bugs.webkit.org/show_bug.cgi?id=141417
<rdar://problem/31051672>

Reviewed by Antti Koivisto.

Source/WebCore:

Apply "text-align: center" on th elements when parent's computed value for the 'text-align' property
is its initial value, unless it is explicitly set.

Test: fast/table/center-th-when-parent-has-initial-text-align.html

  • css/CSSProperties.json:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialTextAlign):
(WebCore::StyleBuilderCustom::applyValueTextAlign):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::applyProperty):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasExplicitlySetTextAlign):
(WebCore::RenderStyle::setHasExplicitlySetTextAlign):
(WebCore::RenderStyle::NonInheritedFlags::hasExplicitlySetTextAlign):
(WebCore::RenderStyle::NonInheritedFlags::setHasExplicitlySetTextAlign):

LayoutTests:

  • fast/table/center-th-when-parent-has-initial-text-align-expected.html: Added.
  • fast/table/center-th-when-parent-has-initial-text-align.html: Added.
12:11 AM Changeset in webkit [216356] by commit-queue@webkit.org
  • 2 edits
    1 add
    2 deletes in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add new GTK+ icon for timeline recording stopwatch
https://bugs.webkit.org/show_bug.cgi?id=154088

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-08
Reviewed by Carlos Garcia Campos.

Add a free icon and remove some unused ones for the Web Inspector
in GTK+.

  • UserInterface/Images/gtk/Stopwatch.png: Removed.
  • UserInterface/Images/gtk/Stopwatch.svg: Added.
  • UserInterface/Images/gtk/Stopwatch@2x.png: Removed.
  • UserInterface/Views/TimelineIcons.css:

(body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Deleted.

12:06 AM Changeset in webkit [216355] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215352 - Large negative animation-delays may not work depending on machine uptime
https://bugs.webkit.org/show_bug.cgi?id=166962
<rdar://problem/30091526>

Reviewed by Tim Horton.

Source/WebCore:

If you set a really negative animation delay, it would cause
AnimationBase::m_startTime to become negative, because the delay
value was "bigger" than monotonicallyIncreasingTime.

However, the state machine was using -1 to mean that the start time
hadn't yet been set. Classic cmarrin!

Replace all the special values with std::optional, and use nullopt
to mean the value doesn't exist yet.

Test: animations/large-negative-delay.html

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::getTimeToNextEvent):
(WebCore::AnimationBase::freezeAtTime):
(WebCore::AnimationBase::getElapsedTime):

  • page/animation/AnimationBase.h: Use std::optional.

(WebCore::AnimationBase::paused):

LayoutTests:

  • animations/large-negative-delay-expected.txt: Added.
  • animations/large-negative-delay.html: Added.

May 7, 2017:

10:31 PM Changeset in webkit [216354] by commit-queue@webkit.org
  • 365 edits in trunk/LayoutTests/imported/w3c

Regenerate w3c-import.log files after r215670
https://bugs.webkit.org/show_bug.cgi?id=171210

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-07
Reviewed by Chris Dumez.

Updating all w3c-import.log files of web-platform-tests.
Fixing some import expectations.
Fixing some tests to match the current import revision, only syntatic changes (meta annotations and links to resources).

  • resources/import-expectations.json:
  • web-platform-tests/WebCryptoAPI/OWNERS:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js: meta annotation changes.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js: Ditto for all crypto tests.
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_AES-KW.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_HMAC.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_AES-KW.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_HMAC.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js:
  • web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js:
  • web-platform-tests/WebCryptoAPI/tools/generate.py:
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js:
  • web-platform-tests/css/css-grid-1/grid-layout-properties.html:
  • web-platform-tests/css/selectors4/focus-within-009.html:
  • web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
  • web-platform-tests/domparsing/createContextualFragment.html:
  • web-platform-tests/domparsing/innerhtml-01.xhtml:
  • web-platform-tests/domparsing/innerhtml-03.xhtml:
  • web-platform-tests/domparsing/innerhtml-04.html:
  • web-platform-tests/domparsing/innerhtml-05.xhtml:
  • web-platform-tests/domparsing/innerhtml-06.html:
  • web-platform-tests/domparsing/innerhtml-07.html:
  • web-platform-tests/domparsing/insert-adjacent.html:
  • web-platform-tests/domparsing/insert_adjacent_html.html:
  • web-platform-tests/domparsing/outerhtml-01.html:
  • web-platform-tests/domparsing/outerhtml-02.html:
  • web-platform-tests/domparsing/xml-serialization.xhtml:
5:01 PM Changeset in webkit [216353] by commit-queue@webkit.org
  • 7 edits in trunk

Set the Response.blob() type based on the content-type header value.
https://bugs.webkit.org/show_bug.cgi?id=170849

Patch by Ben Kelly <ben@wanderview.com> on 2017-05-07
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-consume-expected.txt:

Source/WebCore:

There are two problems to fix here:

  1. Currently the FetchResponse class only called updateContentType()

when first created even though all the headers were not available. This
patch calls updateContentType() again after the headers are populated.

  1. The fetch design requires propagating the normalized blob

type to FetchBodyConsumer as well. Currently this is only done if
Response.blob() is called after the body is completely loaded. If
we hit the consumeOnceLoadingFinished() path, then the type is not
passed. This is similar to what was happening in bug 171489 with
ReadableStream bodies. This patch sets the type on the
FetchBodyConsumer in consumeOnceLoadingFinished() as well.

Theses changes allow WebKit to pass the "Consume response's body: from
fetch to blob" case in the WPT response-consume.html test.

Test: http://w3c-test.org/fetch/api/response/response-consume.html

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveResponse): Modified to
call FetchBodyOwner::updateContentType() after filling m_headers.
(WebCore::FetchBody::consumeOnceLoadingFinished): Call
FetchBodyConsumer::setContentType() when being consumed as
a blob.

  • Modules/fetch/FetchBody.h: Modify consumeOnceLoadingFinished()

to take the content type string.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::consumeOnceLoadingFinished): Pass
the content type string down to FetchBody so it can be
propagated to the FetchBodyConsumer.

2:23 PM Changeset in webkit [216352] by Simon Fraser
  • 11 edits
    6 adds in trunk

[iOS] REGRESSION (r209409): getBoundingClientRect is wrong for fixed-position elements in resize/orientationchange
https://bugs.webkit.org/show_bug.cgi?id=171140
Source/WebCore:

Reviewed by Sam Weinig.

WebPage::dynamicViewportSizeUpdate() is called during rotation, and does a layout which needs to have
an up-to-date layout viewport, since the layout viewport state is detectable in orientationchange and
resize events via fetching the client rect of fixed elements. Normally we send in the layout viewport
from the UI process, but in this case we need to compute one in the web process. So factor code
into FrameView to do the computation, called from both places.

Tests: fast/events/ios/rotation/layout-viewport-during-rotation.html

fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html

  • page/FrameView.cpp:

(WebCore::FrameView::computeUpdatedLayoutViewportRect):

  • page/FrameView.h:

Source/WebKit2:

rdar://problem/31765167

Reviewed by Sam Weinig.

WebPage::dynamicViewportSizeUpdate() is called during rotation, and does a layout which needs to have
an up-to-date layout viewport, since the layout viewport state is detectable in orientationchange and
resize events via fetching the client rect of fixed elements. Normally we send in the layout viewport
from the UI process, but in this case we need to compute one in the web process. So factor code
into FrameView to do the computation, called from both places.

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

(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computeCustomFixedPositionRect):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

LayoutTests:

Reviewed by Sam Weinig.

Tests that fetch the dimensions of a fixed element in resize and orientationchange handlers,
which is a proxy for reading the layout viewport.

  • fast/events/ios/rotation/layout-viewport-during-rotation-expected.txt: Added.
  • fast/events/ios/rotation/layout-viewport-during-rotation.html: Added.
  • fast/events/ios/rotation/layout-viewport-during-safari-type-rotation-expected.txt: Added.
  • fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html: Added.
  • fast/events/ios/rotation/resources/rotation-utils.js: Added.

(stringFromRect):
(accumulateLog):
(logFixedObject):
(logFixedAndViewports):
(doTest):

1:02 PM Changeset in webkit [216351] by Chris Dumez
  • 35 edits in trunk/Source/WebCore

Drop remaining uses of PassRefPtr in editing code
https://bugs.webkit.org/show_bug.cgi?id=171787

Reviewed by Darin Adler.

Drop remaining uses of PassRefPtr in editing code.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::timerFired):

  • editing/ApplyStyleCommand.cpp:

(WebCore::toIdentifier):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::didApplyCommand):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::Editor::shouldInsertFragment):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::willWriteSelectionToPasteboard):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::isSelectionUngrammatical):
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
(WebCore::Editor::markMisspellingsOrBadGrammar):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::changeBackToReplacedString):

  • editing/Editor.h:
  • editing/EditorCommand.cpp:

(WebCore::executeInsertFragment):
(WebCore::Editor::command):
(WebCore::Editor::Command::Command):

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::formatRange):

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentIntoBlockquote):
(WebCore::IndentOutdentCommand::outdentParagraph):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::mergeWithNeighboringLists):
(WebCore::InsertListCommand::doApplyForSingleParagraph):
(WebCore::InsertListCommand::unlistifyParagraph):
(WebCore::InsertListCommand::listifyParagraph):

  • editing/InsertListCommand.h:
  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::InsertTextCommand):

  • editing/InsertTextCommand.h:

(WebCore::InsertTextCommand::createWithMarkerSupplier):

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::MoveSelectionCommand):

  • editing/MoveSelectionCommand.h:

(WebCore::MoveSelectionCommand::create):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::removeNodePreservingChildren):
(WebCore::ReplacementFragment::removeNode):
(WebCore::ReplacementFragment::insertNodeBefore):
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
(WebCore::ReplacementFragment::removeUnrenderedNodes):
(WebCore::ReplacementFragment::removeInterchangeNodes):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):
(WebCore::removeHeadContents):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::insertAsListItems):

  • editing/ReplaceSelectionCommand.h:
  • editing/SpellChecker.cpp:

(WebCore::SpellCheckRequest::SpellCheckRequest):
(WebCore::SpellCheckRequest::create):
(WebCore::SpellChecker::canCheckAsynchronously):
(WebCore::SpellChecker::isCheckable):
(WebCore::SpellChecker::requestCheckingFor):
(WebCore::SpellChecker::invokeRequest):
(WebCore::SpellChecker::enqueueRequest):
(WebCore::SpellChecker::didCheck):

  • editing/SpellChecker.h:

(WebCore::SpellCheckRequest::checkingRange):
(WebCore::SpellCheckRequest::paragraphRange):

  • editing/TextCheckingHelper.cpp:

(WebCore::expandToParagraphBoundary):
(WebCore::TextCheckingParagraph::TextCheckingParagraph):
(WebCore::TextCheckingParagraph::expandRangeToNextEnd):
(WebCore::TextCheckingParagraph::rangeLength):
(WebCore::TextCheckingParagraph::paragraphRange):
(WebCore::TextCheckingParagraph::subrange):
(WebCore::TextCheckingParagraph::offsetTo):
(WebCore::TextCheckingParagraph::offsetAsRange):
(WebCore::TextCheckingParagraph::text):
(WebCore::TextCheckingParagraph::checkingStart):
(WebCore::TextCheckingParagraph::checkingEnd):
(WebCore::TextCheckingParagraph::checkingLength):
(WebCore::TextCheckingHelper::TextCheckingHelper):
(WebCore::TextCheckingHelper::findFirstMisspelling):
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::findFirstGrammarDetail):
(WebCore::TextCheckingHelper::findFirstBadGrammar):
(WebCore::TextCheckingHelper::isUngrammatical):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
(WebCore::TextCheckingHelper::unifiedTextCheckerEnabled):

  • editing/TextCheckingHelper.h:
  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::typingAddedToOpenCommand):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::replaceSelectionWithAttributedString):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::pasteWithPasteboard):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::pasteWithPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):

  • editing/win/EditorWin.cpp:

(WebCore::Editor::pasteWithPasteboard):
(WebCore::createFragmentFromPlatformData):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):

12:59 PM Changeset in webkit [216350] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Cannot sign in with new Google sign-in page
https://bugs.webkit.org/show_bug.cgi?id=171770

Unreviewed. This just adds a test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

12:10 PM Changeset in webkit [216349] by commit-queue@webkit.org
  • 13 edits in trunk

[MediaStream] r216197 caused some webrtc tests to fail
https://bugs.webkit.org/show_bug.cgi?id=171728

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-07
Reviewed by Eric Carlson.

Source/WebCore:

Covered by existing tests.

Rename MediaStream::endStream to MediaStream::endCaptureTracks and only stopping capture tracks.
Using it when Document is asked to stop media capture.

Adding the ability to have only one active capture source at a time in a WebProcess.
This is done by keeping in its related factory the active capture source.
When a new source is created and started, it replaces the active capture source which becomes muted.
Using that mechanism for iOS.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::endCaptureTracks):
(WebCore::MediaStream::endStream): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::isCaptureTrack):

  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture):

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSourceFactory::setActiveSource):
(WebCore::AVAudioCaptureSource::setupCaptureSession):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSourceFactory::setActiveSource):
(WebCore::AVVideoCaptureSource::setupCaptureSession):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSourceFactory::setActiveSource):
(WebCore::CoreAudioSharedUnit::startProducingData):

Source/WebKit2:

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willEnableMediaStreamInPage): Removing muting streams of the page requesting
additional capture streams. This is now done in the WebProcess.

LayoutTests:

  • platform/ios-wk2/TestExpectations:
11:03 AM Changeset in webkit [216348] by timothy_horton@apple.com
  • 27 edits
    3 adds in trunk/Source

Clean up some WebProcessProxy, WebPage, and message handler includes
https://bugs.webkit.org/show_bug.cgi?id=171791

Reviewed by Sam Weinig.

This is worth another ~10% off WebKit2 clean build time on Mac.
This time, the most impactful change is the removal of
UserMediaPermissionRequestManager.h from WebPage.h, which completely
eradicates JSC's VM.h (which is enormous) from WebPage.h (at least on Mac).

  • Scripts/webkit/messages.py:

(headers_for_type):
Stop specializing CompositionUnderline now that it has its own file.

  • Shared/API/c/WKDeprecatedFunctions.cpp:
  • Shared/WebCoreArgumentCoders.cpp:
  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:
  • UIProcess/HiddenPageThrottlingAutoIncreasesCounter.h: Added.
  • UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/PerActivityStateCPUUsageSampler.cpp:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::toWebCore):

  • UIProcess/VisibleWebPageCounter.h: Added.
  • UIProcess/VisitedLinkStore.h:
  • UIProcess/WebPageGroup.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessLifetimeTracker.cpp:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:

Remove WebPageProxy and forward-declare a whole bunch of things.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted):
(WebKit::WebPage::userMediaAccessWasDenied):
(WebKit::WebPage::didCompleteMediaDeviceEnumeration):
(WebKit::WebPage::grantUserMediaDeviceSandboxExtensions):
(WebKit::WebPage::revokeUserMediaDeviceSandboxExtensions):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::userMediaPermissionRequestManager):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:
  • WebProcess/WebPage/ios/WebPageIOS.mm:
  • WebProcess/WebPage/mac/RemoteLayerTreeContext.h:

(WebKit::RemoteLayerTreeContext::deviceScaleFactor): Deleted.
(WebKit::RemoteLayerTreeContext::layerHostingMode): Deleted.

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::deviceScaleFactor):
(WebKit::RemoteLayerTreeContext::layerHostingMode):

  • WebCore.xcodeproj/project.pbxproj:
  • editing/CompositionUnderline.h: Added.

(WebCore::CompositionUnderline::CompositionUnderline):

  • editing/Editor.h:

(WebCore::CompositionUnderline::CompositionUnderline): Deleted.
Move CompositionUnderline out of Editor.h, so that other files can
include that without Editor.h (which is quite large). Also, modernize it slightly.

3:24 AM Changeset in webkit [216347] by commit-queue@webkit.org
  • 20 edits
    24 adds in trunk

Implement Subresource Integrity (SRI)
https://bugs.webkit.org/show_bug.cgi?id=148363
LayoutTests/imported/w3c:

Patch by Sam Weinig <sam@webkit.org> on 2017-05-07
Reviewed by Daniel Bates.

  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:

Update results now that we support the reflected 'integrity' property.

Source/WebCore:

<rdar://problem/18945879>

Patch by Sam Weinig <sam@webkit.org> on 2017-05-07
Reviewed by Daniel Bates.

Tests: http/tests/subresource-integrity/sri-disabled-with-setting.html

http/tests/subresource-integrity/sri-enabled-with-setting.html
http/tests/subresource-integrity/sri-script-cors.html
http/tests/subresource-integrity/sri-style-cors.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::create):
(WebCore::LoadableClassicScript::notifyFinished):

  • dom/LoadableClassicScript.h:
  • dom/LoadableScript.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
Store integrity metadata in the script fetcher so it can be passed to
the checked when script load finishes.

  • html/HTMLAttributeNames.in:

Add 'integrity'.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):
When requesting a stylesheet, cache the integrity metadata so it can
be used when the load completes (accessing the attribute at load completion
time is incorrect, as a script might have changed the attributes value since
the request was made).

(WebCore::HTMLLinkElement::setCSSStyleSheet):
Add an integrity check using the cached integrity metadata when a load
finishes.

  • html/HTMLLinkElement.h:

Add cached integrity metadata member.

  • html/HTMLLinkElement.idl:
  • html/HTMLScriptElement.idl:

Add integrity property.

  • html/parser/HTMLParserIdioms.h:

(WebCore::isNotHTMLSpace):
Templatize isNotHTMLSpace so it can work for both UChar and LChar.

  • loader/ResourceCryptographicDigest.cpp:

(WebCore::parseCryptographicDigestImpl):
(WebCore::parseEncodedCryptographicDigestImpl):
(WebCore::parseEncodedCryptographicDigest):
(WebCore::decodeEncodedResourceCryptographicDigest):

  • loader/ResourceCryptographicDigest.h:

Add concept of an encoded digest to more closely model the spec so that hashes
that match the grammar but are invalid (say, mixing base64 and base64URL) make
it through the algorithm longer, and don't cause us to load something that should
be blocked.

  • loader/SubresourceIntegrity.cpp: Added.
  • loader/SubresourceIntegrity.h: Added.

Add implementation of Subresource Integrity metadata validation allowing
for a CachedResource and integrity metadata to be passed for validation.

  • page/Settings.in:

Add setting for Subresource Integrity, defaulted to enabled.

LayoutTests:

<rdar://problem/18945879>

Patch by Sam Weinig <sam@webkit.org> on 2017-05-07
Reviewed by Daniel Bates.

Add tests for Subresource Integrity based off the ones from Web
Platform Tests. They have been changed to:

  • Split <link> and <script> testing.
  • Add additional tests:
    • Integrity hashes using base64URL encoding.
    • Integrity hashes using mixed base64 and base64URL encoding.
    • Integrity metadata that does not conform to the grammar at all.
    • Multiple valid, but only one matching, integrity hashes.
    • Non-matching integrity hash with options.
  • Run one at a time, so console output is consistent.

We can/should upstream these changes, but this avoids the possibility that
an update of the imported web-platform-tests could cause these tests to fail.

Also adds tests that show the Subresource Integrity setting works correctly.

  • http/tests/subresource-integrity: Added.
  • http/tests/subresource-integrity/.htaccess: Added.
  • http/tests/subresource-integrity/resources: Added.
  • http/tests/subresource-integrity/resources/alternate.css: Added.
  • http/tests/subresource-integrity/resources/crossorigin-anon-script.js: Added.
  • http/tests/subresource-integrity/resources/crossorigin-anon-style.css: Added.
  • http/tests/subresource-integrity/resources/crossorigin-creds-script.js: Added.
  • http/tests/subresource-integrity/resources/crossorigin-creds-style.css: Added.
  • http/tests/subresource-integrity/resources/crossorigin-ineligible-script.js: Added.
  • http/tests/subresource-integrity/resources/crossorigin-ineligible-style.css: Added.
  • http/tests/subresource-integrity/resources/matching-digest.js: Added.
  • http/tests/subresource-integrity/resources/non-matching-digest.js: Added.
  • http/tests/subresource-integrity/resources/sri-utilities.js: Added.
  • http/tests/subresource-integrity/resources/style.css: Added.
  • http/tests/subresource-integrity/sri-disabled-with-setting-expected.txt: Added.
  • http/tests/subresource-integrity/sri-disabled-with-setting.html: Added.
  • http/tests/subresource-integrity/sri-enabled-with-setting-expected.txt: Added.
  • http/tests/subresource-integrity/sri-enabled-with-setting.html: Added.
  • http/tests/subresource-integrity/sri-script-expected.txt: Added.
  • http/tests/subresource-integrity/sri-script.html: Added.
  • http/tests/subresource-integrity/sri-style-expected.txt: Added.
  • http/tests/subresource-integrity/sri-style.html: Added.
2:56 AM Changeset in webkit [216346] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r215347 - Don't invalidate composition for style changes in non-composited layers
https://bugs.webkit.org/show_bug.cgi?id=170805
<rdar://problem/31606185>

Reviewed by Simon Fraser.

Source/WebCore:

Test: compositing/updates/animation-non-composited.html

In most cases they can't affect composition. Composition updates are expensive, this can
save a lot of work (tumblr.com animations hit this at the moment).

  • rendering/RenderElement.h:

(WebCore::RenderElement::createsGroup):
(WebCore::RenderElement::createsGroupForStyle):

Factor to a static function so we can test style directly.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerStyleChanged):
(WebCore::RenderLayerCompositor::styleChangeMayAffectIndirectCompositingReasons):

Test if style change might cause compositing change that can't be determined without compositing update.

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • compositing/updates/animation-non-composited-expected.txt: Added.
  • compositing/updates/animation-non-composited.html: Added.
2:45 AM Changeset in webkit [216345] by Carlos Garcia Campos
  • 26 edits
    4 adds
    2 deletes in releases/WebKitGTK/webkit-2.16

Merge r215315 - QuotaExceededError when saving to localStorage in private mode.
https://bugs.webkit.org/show_bug.cgi?id=157010

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing test).

LocalStorage in private browsing is now effectively SessionStorage.
It's ephemeral, per-tab, and copied over to tabs window.open()'ed from the current.

  • loader/EmptyClients.cpp:

(WebCore::EmptyStorageNamespaceProvider::createEphemeralLocalStorageNamespace):

  • page/Chrome.cpp:

(WebCore::Chrome::createWindow):

  • page/Page.cpp:

(WebCore::Page::ephemeralLocalStorage):
(WebCore::Page::setEphemeralLocalStorage):

  • page/Page.h:
  • page/SecurityOriginData.h:
  • storage/Storage.cpp:

(WebCore::Storage::length):
(WebCore::Storage::key):
(WebCore::Storage::getItem):
(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):
(WebCore::Storage::contains):
(WebCore::Storage::isDisabledByPrivateBrowsing): Deleted.

  • storage/StorageMap.h:
  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

  • storage/StorageNamespaceProvider.h:
  • storage/StorageType.h:

(WebCore::isLocalStorage):
(WebCore::isPersistentLocalStorage):

Source/WebKit:

  • Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):

  • Storage/StorageNamespaceImpl.h:
  • Storage/WebStorageNamespaceProvider.cpp:

(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):

  • Storage/WebStorageNamespaceProvider.h:

Source/WebKit2:

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):

  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::ephemeralLocalStorageArea):
(WebKit::StorageNamespaceImpl::copy):

  • WebProcess/Storage/StorageNamespaceImpl.h:
  • WebProcess/Storage/WebStorageNamespaceProvider.cpp:

(WebKit::WebStorageNamespaceProvider::createEphemeralLocalStorageNamespace):

  • WebProcess/Storage/WebStorageNamespaceProvider.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
  • storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
  • storage/domstorage/localstorage/private-browsing-affects-storage.html:
  • storage/domstorage/localstorage/resources/private-browsing-1.html: Added.
  • storage/domstorage/localstorage/resources/private-browsing-2.html: Added.
  • storage/domstorage/localstorage/resources/private-browsing-3.html: Added.
  • storage/domstorage/localstorage/resources/private-browsing-storage-2.html: Added.
  • storage/domstorage/sessionstorage/private-browsing-affects-storage-expected.txt: Removed.
  • storage/domstorage/sessionstorage/private-browsing-affects-storage.html: Removed.
2:44 AM Changeset in webkit [216344] by Carlos Garcia Campos
  • 14 edits
    1 copy in releases/WebKitGTK/webkit-2.16/Source

Merge r214680 - Clean up the "StorageType" enum.
https://bugs.webkit.org/show_bug.cgi?id=170349

Reviewed by Tim Horton.

Source/WebCore:

  • Make this enum into an enum class
  • Add a new type specific for "transient local storage"

No new tests (No behavior change).

  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):

  • inspector/InspectorInstrumentation.h:
  • loader/EmptyClients.cpp:
  • storage/Storage.cpp:

(WebCore::Storage::isDisabledByPrivateBrowsing):

  • storage/StorageArea.h:

(): Deleted.

  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • storage/StorageType.h:

(WebCore::isLocalStorage):

Source/WebKit:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::dispatchStorageEvent):

  • Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::~StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::close):

Source/WebKit2:

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):

2:29 AM Changeset in webkit [216343] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Cannot sign in with new Google sign-in page
https://bugs.webkit.org/show_bug.cgi?id=171770

Reviewed by Carlos Garcia Campos.

Google's new authentication page does not work with the Firefox user
agent that's required to make various Google websites work. Special-case
accounts.google.com so that it receives our standard user agent.

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle):
(WebCore::urlRequiresFirefoxBrowser):

Note: See TracTimeline for information about the timeline view.