Timeline
Dec 18, 2016:
- 11:22 PM Changeset in webkit [209979] by
-
- 9 edits2 adds in trunk
WebAssembly: Implement the WebAssembly.compile and WebAssembly.validate
https://bugs.webkit.org/show_bug.cgi?id=165936
Reviewed by Mark Lam.
JSTests:
- wasm/js-api/Module-compile.js: Added.
(async.testPromiseAPI):
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
- wasm/js-api/validate.js: Added.
(assert.truthy.WebAssembly.validate.builder.WebAssembly):
Source/JavaScriptCore:
The APIs are documented here:
- https://github.com/WebAssembly/design/blob/master/JS.md#webassemblycompile
- https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyvalidate
- wasm/JSWebAssembly.cpp:
(JSC::webAssemblyCompileFunc):
(JSC::webAssemblyValidateFunc):
(JSC::JSWebAssembly::finishCreation):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::parseAndValidateModule):
(JSC::Wasm::Plan::run):
- wasm/WasmPlan.h:
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::getWasmBufferFromValue):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::constructJSWebAssemblyModule):
(JSC::callJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::createModule):
- wasm/js/WebAssemblyModuleConstructor.h:
- 10:29 PM Changeset in webkit [209978] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 5:40 PM Changeset in webkit [209977] by
-
- 10 edits in trunk/Source/WebCore
IndexedDB 2.0: Prefetch cursor records in the server.
https://bugs.webkit.org/show_bug.cgi?id=166014
Reviewed by Andy Estes.
No new tests (Covered by existing LayoutTests and PerformanceTests).
This patch implements the followng:
1 - After a backing store cursor completes a fetch in the server, it will schedule the next fetch
even before the client requests one. It will do this up to a limited number of prefetches.
2 - Once a client request to advance the cursor comes in, we'll work our way through prefetched
records instead of reading anything from disk, which might then cause us to continue prefetch.
3 - If any changes to the object store occur, it will throw away all previously fetched records
(There's room for future improvement here)
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::postDatabaseTask):
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch):
(WebCore::IDBServer::SQLiteIDBCursor::advance):
- Modules/indexeddb/server/SQLiteIDBCursor.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 5:14 PM Changeset in webkit [209976] by
-
- 7 edits2 adds in trunk
Changing text direction fires input events with null inputTypes and no data
https://bugs.webkit.org/show_bug.cgi?id=166007
<rdar://problem/29557205>
Reviewed by Sam Weinig.
Source/WebCore:
Adds support for the "formatSetInlineTextDirection" input type, triggered when using the context menu on Mac in
an editable area (for both plain and rich text cases) to change paragraph direction. To do this, we add cases
for EditActionSetWritingDirection in inputTypeNameForEditingAction and inputEventDataForEditingStyleAndAction.
When changing text direction for a plaintext editable element, we have logic in Editor::setBaseWritingDirection
that sets the focused element's dir attribute to the requested value (ltr or rtl). We add similar hooks here to
dispatch input events and handle preventing default.
Test: fast/events/before-input-events-prevent-text-direction.html
- editing/EditCommand.cpp:
(WebCore::inputTypeNameForEditingAction):
Handle the EditActionSetWritingDirection case.
- editing/Editor.cpp:
(WebCore::inputEventDataForEditingStyleAndAction):
(WebCore::Editor::applyParagraphStyle):
Include input event data when dispatching an input event here.
(WebCore::Editor::setBaseWritingDirection):
- testing/Internals.cpp:
(WebCore::Internals::setBaseWritingDirection):
- testing/Internals.h:
- testing/Internals.idl:
Introduce an internal testing support hook for setting base writing direction (the same codepath taken when
using the context menu to change paragraph direction). Currently, using testRunner.execCommand creates and
applies style with an additionalunicode-bidiattribute, and appears to also be intentionally disabled for
plaintext editable elements.
LayoutTests:
Verifies that changing text direction causes beforeinput and input events with appropriate inputType and data to
be dispatched, and that preventing this beforeinput event causes no change in text direction.
- fast/events/before-input-events-prevent-text-direction-expected.txt: Added.
- fast/events/before-input-events-prevent-text-direction.html: Added.
- 1:09 PM Changeset in webkit [209975] by
-
- 12 edits in trunk
Expose a way for MiniBrowser to simulate header and footer banners
https://bugs.webkit.org/show_bug.cgi?id=166005
Reviewed by Wenson Hsieh.
Source/WebKit2:
Expose testing SPI that allows a client to simulate the presence of header
and footer banners. These are simply plumbed through to set FrameView's
m_headerHeight and m_footerHeight.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setHeaderBannerHeightForTesting:]):
(-[WKWebView _setFooterBannerHeightForTesting:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHeaderBannerHeightForTesting):
(WebKit::WebPageProxy::setFooterBannerHeightForTesting):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setHeaderBannerHeightForTesting):
(WebKit::WebPage::setFooterBannerHeightForTesting):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add a MiniBrowser menu item and setting to toggle adding space for header and footer
banners. This only works in WebKit2.
We need to reset these on each navigation, since newly created FrameViews
don't re-fetch the header and footer height stored on Page.
Also fix the signature of webView:didFinishNavigation: to follow API changes,
as well as fixing webViewWebContentProcessDidTerminate:
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleReserveSpaceForBanners:]):
(-[SettingsController isSpaceReservedForBanners]):
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
(-[WK2BrowserWindowController webView:didFinishNavigation:]):
(-[WK2BrowserWindowController webViewWebContentProcessDidTerminate:]):
(-[WK2BrowserWindowController webView:didFinishLoadingNavigation:]): Deleted.
(-[WK2BrowserWindowController _webViewWebProcessDidCrash:]): Deleted.
- 11:04 AM Changeset in webkit [209974] by
-
- 4 edits in trunk/Source/JavaScriptCore
Rename finallyActionRegister to completionTypeRegister and only store int JSValues in it.
https://bugs.webkit.org/show_bug.cgi?id=165979
Reviewed by Saam Barati.
This patch makes it so that we only store int JSValues in the finallyActionRegister
thereby making type prediction on this register more successful for JITs. In so
doing, we are able to get some additional benefits:
- Renamed the following: FinallyRegistersScope => CompletionRecordScope finallyActionRegister => completionTypeRegister finallyReturnValueRegister => completionValueRegister
These new names are more in line with the ES spec, which describes these
values as the completion record and its type and value properties.
https://tc39.github.io/ecma262/#sec-completion-record-specification-type
- We now think of the Break and Continue jumpIDs as encodings of CompletionType (in our implementation of completion type). As a result, we only need one of each of the emitter methods for getting, setting, and compare-and-jump on the completion type. The code using these methods also reads much clearer now.
- Finally blocks' op_catch should now always pop the caught Exception object into the completionValueRegister instead of the completionTypeRegister (formerly finallyActionRegister).
Also removed the restoreScopeRegister() call in the IteratorClose catch block
because that is an implementation specific synthesized catch block, and we
can guarantee that it never needs to resolve any symbols from the scope. Hence,
there is no need to restore the scope register.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::allocateCompletionRecordRegisters):
(JSC::BytecodeGenerator::releaseCompletionRecordRegisters):
(JSC::BytecodeGenerator::emitJumpIfCompletionType):
(JSC::BytecodeGenerator::allocateFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::releaseFinallyRegisters): Deleted.
(JSC::BytecodeGenerator::emitCompareFinallyActionAndJumpIf): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::bytecodeOffsetToJumpID):
(JSC::FinallyJump::FinallyJump):
(JSC::FinallyContext::registerJump):
(JSC::BytecodeGenerator::CompletionRecordScope::CompletionRecordScope):
(JSC::BytecodeGenerator::CompletionRecordScope::~CompletionRecordScope):
(JSC::BytecodeGenerator::completionTypeRegister):
(JSC::BytecodeGenerator::completionValueRegister):
(JSC::BytecodeGenerator::emitSetCompletionType):
(JSC::BytecodeGenerator::emitSetCompletionValue):
(JSC::BytecodeGenerator::FinallyRegistersScope::FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::FinallyRegistersScope::~FinallyRegistersScope): Deleted.
(JSC::BytecodeGenerator::finallyActionRegister): Deleted.
(JSC::BytecodeGenerator::finallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyActionToJumpID): Deleted.
(JSC::BytecodeGenerator::emitSetFinallyReturnValueRegister): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNormalCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotJump): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotReturnCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfFinallyActionIsNotThrowCompletion): Deleted.
(JSC::BytecodeGenerator::emitJumpIfCompletionTypeIsThrow): Deleted.
(JSC::BytecodeGenerator::bytecodeOffsetToJumpID): Deleted.
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- 9:26 AM Changeset in webkit [209973] by
-
- 6 edits in trunk/LayoutTests
Rebaseline these tests after r209967, since they are now affected by status bar height.
- fast/viewport/ios/ipad/width-is-device-width-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
- fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:
- 12:11 AM Changeset in webkit [209972] by
-
- 8 edits in trunk/Tools
Fix iOS test results after r209967.
Subtracting out the status bar height was erroneously happening for all tests,
not just for flexible viewport tests.
Fix by plumbing WebViewSizingMode through resizeTo() and setWindowFrame().
- WebKitTestRunner/PlatformWebView.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
- WebKitTestRunner/efl/PlatformWebViewEfl.cpp:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformConfigureViewForTest):
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::resizeTo):
(WTR::PlatformWebView::setWindowFrame):
- 12:11 AM Changeset in webkit [209971] by
-
- 3 edits in trunk/Source/WebCore
Build fix: linking WebCore was failing: you can't export inline functions.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType):
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue):
- css/DeprecatedCSSOMPrimitiveValue.h:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue): Deleted.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue): Deleted.
Dec 17, 2016:
- 10:07 PM Changeset in webkit [209970] by
-
- 4 edits in trunk
[EFL] bump EFL version to 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=166004
Reviewed by Gyuyoung Kim.
.:
- Source/cmake/OptionsEfl.cmake: Use efl-1.18.4 instead of 1.18.1.
Tools:
- efl/jhbuild.modules: Use efl-1.18.4 instead of 1.18.1.
- 12:08 PM Changeset in webkit [209969] by
-
- 52 edits6 moves9 adds in trunk/Source
[CSS Values] Make separate wrapper classes for the deprecated CSS Values OM
https://bugs.webkit.org/show_bug.cgi?id=165968
Reviewed by Andreas Kling.
Source/WebCore:
This patch changes the CSS OM for values to use distinct wrapper
classes instead of cloning the existing classes. By actually wrapping
values instead of cloning, we are freed up to change our CSS value hierarchy
however we'd like (such as changing to match the new CSS Values OM that
is coming soon).
All of the CSS Values wrapper classes are prefixed with "DeprecatedCSSOM"
to reflect our desire (ultimately) to remove this API from our tree. We're
the only ones that support it, and it's not used on the Web, but it is part
of the WebKitLegacy API and might be used internally.
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/DOMWrapperWorld.h:
- bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
- bindings/js/JSCSSValueCustom.cpp:
(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):
(WebCore::JSDeprecatedCSSOMValueOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots): Deleted.
(WebCore::JSCSSValueOwner::finalize): Deleted.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
- css/CSSComputedStyleDeclaration.h:
- css/CSSGridLineNamesValue.cpp:
(WebCore::CSSGridLineNamesValue::cloneForCSSOM): Deleted.
- css/CSSGridLineNamesValue.h:
- css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cloneForCSSOM): Deleted.
- css/CSSImageSetValue.h:
- css/CSSImageValue.cpp:
(WebCore::CSSImageValue::createDeprecatedCSSOMWrapper):
(WebCore::CSSImageValue::cloneForCSSOM): Deleted.
- css/CSSImageValue.h:
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::createDeprecatedCSSOMPrimitiveWrapper):
(WebCore::CSSPrimitiveValue::cloneForCSSOM): Deleted.
- css/CSSPrimitiveValue.h:
- css/CSSPrimitiveValue.idl: Removed.
- css/CSSStyleDeclaration.h:
- css/CSSStyleDeclaration.idl:
- css/CSSValue.cpp:
(WebCore::CSSValue::traverseSubresources):
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::createDeprecatedCSSOMWrapper):
(): Deleted.
(WebCore::CSSValue::cloneForCSSOM): Deleted.
- css/CSSValue.h:
(WebCore::CSSValue::CSSValue):
(WebCore::CSSValue::setCssText): Deleted.
(WebCore::CSSValue::isCSSOMSafe): Deleted.
(WebCore::CSSValue::isSubtypeExposedToCSSOM): Deleted.
- css/CSSValue.idl: Removed.
- css/CSSValueList.cpp:
(WebCore::CSSValueList::cloneForCSSOM): Deleted.
- css/CSSValueList.h:
(WebCore::CSSValueList::separator):
- css/CSSValueList.idl: Removed.
- css/Counter.h:
- css/Counter.idl: Removed.
- css/DeprecatedCSSOMCounter.h: Added.
- css/DeprecatedCSSOMCounter.idl: Copied from Source/WebCore/css/Counter.idl.
- css/DeprecatedCSSOMPrimitiveValue.cpp: Added.
(WebCore::DeprecatedCSSOMPrimitiveValue::getCounterValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getRectValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getRGBColorValue):
- css/DeprecatedCSSOMPrimitiveValue.h: Added.
(WebCore::DeprecatedCSSOMPrimitiveValue::create):
(WebCore::DeprecatedCSSOMPrimitiveValue::equals):
(WebCore::DeprecatedCSSOMPrimitiveValue::cssValueType):
(WebCore::DeprecatedCSSOMPrimitiveValue::cssText):
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType):
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::stringValue):
(WebCore::DeprecatedCSSOMPrimitiveValue::DeprecatedCSSOMPrimitiveValue):
- css/DeprecatedCSSOMPrimitiveValue.idl: Copied from Source/WebCore/css/CSSPrimitiveValue.idl.
- css/DeprecatedCSSOMRGBColor.h: Added.
- css/DeprecatedCSSOMRGBColor.idl: Copied from Source/WebCore/css/RGBColor.idl.
- css/DeprecatedCSSOMRect.h: Added.
- css/DeprecatedCSSOMRect.idl: Copied from Source/WebCore/css/Rect.idl.
- css/DeprecatedCSSOMValue.cpp: Added.
(WebCore::compareCSSOMValues):
(WebCore::DeprecatedCSSOMValue::equals):
(WebCore::DeprecatedCSSOMValue::destroy):
(WebCore::DeprecatedCSSOMValue::cssValueType):
(WebCore::DeprecatedCSSOMValue::cssText):
- css/DeprecatedCSSOMValue.h: Added.
(WebCore::DeprecatedCSSOMValue::deref):
(WebCore::DeprecatedCSSOMValue::setCssText):
(WebCore::DeprecatedCSSOMValue::operator==):
(WebCore::DeprecatedCSSOMValue::isComplexValue):
(WebCore::DeprecatedCSSOMValue::isPrimitiveValue):
(WebCore::DeprecatedCSSOMValue::isValueList):
(WebCore::DeprecatedCSSOMValue::classType):
(WebCore::DeprecatedCSSOMValue::DeprecatedCSSOMValue):
(WebCore::DeprecatedCSSOMValue::~DeprecatedCSSOMValue):
(WebCore::DeprecatedCSSOMComplexValue::create):
(WebCore::DeprecatedCSSOMComplexValue::equals):
(WebCore::DeprecatedCSSOMComplexValue::cssText):
(WebCore::DeprecatedCSSOMComplexValue::cssValueType):
(WebCore::DeprecatedCSSOMComplexValue::DeprecatedCSSOMComplexValue):
- css/DeprecatedCSSOMValue.idl: Copied from Source/WebCore/css/CSSValue.idl.
- css/DeprecatedCSSOMValueList.cpp: Added.
(WebCore::DeprecatedCSSOMValueList::equals):
(WebCore::DeprecatedCSSOMValueList::cssText):
- css/DeprecatedCSSOMValueList.h: Added.
(WebCore::DeprecatedCSSOMValueList::create):
(WebCore::DeprecatedCSSOMValueList::cssValueType):
(WebCore::DeprecatedCSSOMValueList::length):
(WebCore::DeprecatedCSSOMValueList::item):
(WebCore::DeprecatedCSSOMValueList::DeprecatedCSSOMValueList):
- css/DeprecatedCSSOMValueList.idl: Copied from Source/WebCore/css/CSSValueList.idl.
- css/LengthRepeat.h:
- css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::wrapForDeprecatedCSSOM):
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
(WebCore::InlineCSSStyleDeclaration::didMutate):
(WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM): Deleted.
- css/PropertySetCSSStyleDeclaration.h:
- css/RGBColor.cpp:
(WebCore::RGBColor::red): Deleted.
(WebCore::RGBColor::green): Deleted.
(WebCore::RGBColor::blue): Deleted.
(WebCore::RGBColor::alpha): Deleted.
- css/RGBColor.h:
- css/RGBColor.idl: Removed.
- css/Rect.h:
(WebCore::RectBase::RectBase):
- css/Rect.idl: Removed.
- svg/SVGElement.cpp:
(WebCore::SVGElement::getPresentationAttribute):
- svg/SVGElement.h:
- svg/SVGElement.idl:
Source/WebKit/mac:
- DOM/DOMCSS.mm:
(kitClass):
- DOM/DOMCSSPrimitiveValue.mm:
(-[DOMCSSPrimitiveValue getCounterValue]):
(-[DOMCSSPrimitiveValue getRectValue]):
(kit):
- DOM/DOMCSSPrimitiveValueInternal.h:
- DOM/DOMCSSStyleDeclaration.mm:
- DOM/DOMCSSValue.mm:
(kit):
- DOM/DOMCSSValueInternal.h:
- DOM/DOMCSSValueList.mm:
- DOM/DOMCounter.mm:
(kit):
- DOM/DOMCounterInternal.h:
- DOM/DOMRGBColor.mm:
(kit):
- DOM/DOMRGBColorInternal.h:
- DOM/DOMRect.mm:
(kit):
- DOM/DOMRectInternal.h:
- DOM/DOMUtility.mm:
(createDOMWrapper):
Source/WebKit2:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapCSSValue):
(webkit_dom_css_value_constructor):
(webkit_dom_css_value_get_css_text):
(webkit_dom_css_value_set_css_text):
(webkit_dom_css_value_get_css_value_type):
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h:
- 11:32 AM Changeset in webkit [209968] by
-
- 9 edits3 deletes in trunk
Unreviewed, rollout r209860 OWR player shouldn't be selected for
normal video playback
Source/WebCore:
- platform/GStreamer.cmake:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::~MediaPlayerPrivateGStreamerOwr):
(WebCore::MediaPlayerPrivateGStreamerOwr::play):
(WebCore::MediaPlayerPrivateGStreamerOwr::pause):
(WebCore::MediaPlayerPrivateGStreamerOwr::load):
(WebCore::MediaPlayerPrivateGStreamerOwr::stop):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::setSize):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
- platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::createMutedRemoteSource):
- platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
- platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp: Removed.
- platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
- platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h: Removed.
LayoutTests:
- platform/gtk/TestExpectations:
- 11:18 AM Changeset in webkit [209967] by
-
- 46 edits2 adds in trunk
Visual viewports: bottom fixed elements disappear behind the keyboard
https://bugs.webkit.org/show_bug.cgi?id=165983
<rdar://problem/29409852>
Reviewed by Simon Fraser.
Source/WebKit2:
Accounts for input view bounds in WebPageProxy::computeCustomFixedPositionRect. To do this, we introduce and
pass unobscuredContentRectRespectingInputViewBounds along with the regular unobscuredContentRect (which does not
respect the obscuring keyboard rect). This unobscuredContentRectRespectingInputViewBounds is then used when
computing the origin of the updated layout viewport rect (and also, when we are _not_ below minimum scale),
Additionally, the size is computed using the (unconstrained) unobscured rect. This is because we previously
would use the document-constrained version of the unobscured rect, which caused the layout viewport to shrink
when approaching the max scroll extents of the document while the keyboard is up, since the unobscured rect
would spill out of the document rect. However, using this unconstrained rect's size also means that if the user
rubber-bands out of the document rect, we would end up pushing the layout viewport rect out of the document,
with no way of adjusting it back in without the user scrolling to push the layout viewport into back document
bounds. To address this, we move the layout rect to be within document bounds after computing its size and
location.
Added a new layout test: fast/visual-viewport/ios/fixed-element-on-bottom-with-keyboard.html, and also tweaked
fixed-caret-position-after-scroll.html to cover these changes.
- Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::operator<<):
- Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::unobscuredContentRectRespectingInputViewBounds):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateContentRectsWithState:]):
(-[WKWebView _inputViewBounds]):
Returns the current bounds of the input view. For testing purposes.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::unobscuredContentRectRespectingInputViewBounds):
- UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _computeUnobscuredContentRectRespectingInputViewBounds:unobscuredContentRect:inputViewBounds:scale:]):
Helper to compute the unobscured rect, accounting for the bounds of the current input view.
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView _didCommitLayerTree:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect):
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
Tools:
Add support for UIScriptController.inputViewBounds, which UI-side scripts may use to fetch the bounding rect of
the keyboard when it is up.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::inputViewBounds):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::inputViewBounds):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::viewRectForWindowRect):
Previously, we accounted for the status bar height by translating the entire web view down by the height of the
status bar. However, we did not shrink the height of the web view itself, which means that for tests which
involve scrolling past the end of the document, the bottom strip of the web view is out of bounds of the window.
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::setWindowFrame):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::inputViewBounds):
LayoutTests:
Tweaked fixed-caret-position-after-scroll.html to account for the keyboard height, and also added a new layout
test, fixed-element-on-bottom-with-keyboard.html, which checks that the layout viewport does not change before
and after showing the keyboard, and that scrolling past the end of the document does not bump the layout
viewport past document bounds.
The rest of the changes here involve rebaselining existing tests to account for the height of the web view no
longer being equal to the height of the window.
- editing/caret/ios/absolute-caret-position-after-scroll-expected.txt:
- editing/caret/ios/absolute-caret-position-after-scroll.html:
- editing/caret/ios/fixed-caret-position-after-scroll-expected.txt:
- editing/caret/ios/fixed-caret-position-after-scroll.html:
- editing/selection/ios/absolute-selection-after-scroll.html:
- editing/selection/ios/fixed-selection-after-scroll.html:
- fast/events/ios/keyboard-scrolling-distance-expected.txt:
- fast/events/ios/keyboard-should-not-trigger-resize-expected.txt:
- fast/events/ios/viewport-zooms-from-element-to-initial-scale-expected.txt:
- fast/forms/ios/accessory-bar-navigation-expected.txt:
- fast/forms/ios/focus-input-in-fixed-expected.txt:
- fast/forms/ios/focus-input-in-iframe-expected.txt:
- fast/forms/ios/focus-input-via-button-expected.txt:
- fast/forms/ios/focus-input-via-button-no-scaling-expected.txt:
- fast/forms/ios/focus-long-textarea-expected.txt:
- fast/forms/ios/zoom-after-input-tap-expected.txt:
- fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt:
- fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
- fast/viewport/ios/width-is-device-width-expected.txt:
- fast/visual-viewport/ios/fixed-element-on-bottom-with-keyboard-expected.txt: Added.
- fast/visual-viewport/ios/fixed-element-on-bottom-with-keyboard.html: Added.
- fast/visual-viewport/ios/zoomed-focus-in-fixed-expected.txt:
- platform/ios-simulator/fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt:
- platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
- platform/ios-simulator/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
- platform/ios-simulator/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
- platform/ios-simulator/fast/scrolling/ios/touch-stacking-expected.txt:
- scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt:
- scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
- 10:44 AM Changeset in webkit [209966] by
-
- 2 edits in trunk/Source/JavaScriptCore
WebAssembly: WasmB3IRGenerator uses WarmAny as a ValueRep but expects the incoming value to be a register
https://bugs.webkit.org/show_bug.cgi?id=165989
Reviewed by Mark Lam.
The input should be constrained to a register to match what
the patchpoint code expects.
- wasm/WasmB3IRGenerator.cpp:
- 10:13 AM Changeset in webkit [209965] by
-
- 2 edits in trunk/Source/WebCore
warning: the compiler can assume that the address of 'thisObject' will always evaluate to 'true' [-Waddress] in WebCore::JSHTMLDocument::getOwnPropertySlot
https://bugs.webkit.org/show_bug.cgi?id=165987
Reviewed by Mark Lam.
Work around the warning by passing the JSObject pointer this function receives directly to
ASSERT_GC_OBJECT_INHERITS, instead of casting it to a reference and then taking the address
of that, to avoid the -Waddress warning.
- bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::getOwnPropertySlot):
- 9:18 AM Changeset in webkit [209964] by
-
- 21 edits11 adds1 delete in trunk
Add implementation for navigator.requestMediaKeySystemAccess()
https://bugs.webkit.org/show_bug.cgi?id=165850
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/encrypted-media/mock-navigator-requestMediaKeySystemAccess.html
Add an implementation of NavigatorEME::requestMediaKeySystemAccess() as well as the CDM
object on which it depends.
- Modules/encryptedmedia/CDM.cpp: Added.
(WebCore::cdmFactories):
(WebCore::createCDMPrivateForKeySystem):
(WebCore::CDM::registerCDMFactory):
(WebCore::CDM::unregisterCDMFactory):
(WebCore::CDM::supportsKeySystem):
(WebCore::CDM::create):
(WebCore::CDM::CDM):
(WebCore::CDM::getSupportedConfiguration):
(WebCore::CDM::doSupportedConfigurationStep):
(WebCore::CDM::isPersistentType):
(WebCore::CDM::getSupportedCapabilitiesForAudioVideoType):
(WebCore::CDM::getConsentStatus):
- Modules/encryptedmedia/CDM.h: Added.
(WebCore::CDMFactory::~CDMFactory):
(WebCore::CDM::keySystem):
(WebCore::CDM::createWeakPtr):
- Modules/encryptedmedia/CDMPrivate.h: Added.
(WebCore::CDMPrivate::~CDMPrivate):
- Modules/encryptedmedia/NavigatorEME.cpp:
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
(WebCore::tryNextSupportedConfiguration):
- Modules/encryptedmedia/NavigatorEME.h:
- Modules/encryptedmedia/NavigatorEME.idl:
To aid in testing, a new Internals object is added, MockCDMFactory, which can be
controlled by LayoutTests to change the behavior of the Mock objects it creates.
- testing/Internals.cpp:
(WebCore::Internals::registerMockCDM):
- testing/Internals.h:
- testing/Internals.idl:
- testing/MockCDMFactory.cpp: Added.
(WebCore::MockCDMFactory::MockCDMFactory):
(WebCore::MockCDMFactory::~MockCDMFactory):
(WebCore::MockCDMFactory::unregister):
(WebCore::MockCDMFactory::supportsKeySystem):
(WebCore::MockCDMFactory::createCDM):
(WebCore::MockCDM::MockCDM):
(WebCore::MockCDM::supportsInitDataType):
(WebCore::MockCDM::supportsConfiguration):
(WebCore::MockCDM::supportsConfigurationWithRestrictions):
(WebCore::MockCDM::supportsSessionTypeWithConfiguration):
(WebCore::MockCDM::supportsRobustness):
(WebCore::MockCDM::distinctiveIdentifiersRequirement):
(WebCore::MockCDM::persistentStateRequirement):
(WebCore::MockCDM::distinctiveIdentifiersAreUniquePerOriginAndClearable):
- testing/MockCDMFactory.h: Added.
(WebCore::MockCDMFactory::create):
(WebCore::MockCDMFactory::supportedDataTypes):
(WebCore::MockCDMFactory::setSupportedDataTypes):
(WebCore::MockCDMFactory::supportedRobustness):
(WebCore::MockCDMFactory::setSupportedRobustness):
(WebCore::MockCDMFactory::distinctiveIdentifiersRequirement):
(WebCore::MockCDMFactory::setDistinctiveIdentifiersRequirement):
(WebCore::MockCDMFactory::persistentStateRequirement):
(WebCore::MockCDMFactory::setPersistentStateRequirement):
- testing/MockCDMFactory.idl: Added.
Move the MediaKeySessionType definition out of the MediaKeys.idl file and into its own.
Move the MediaKeysRequiriment definition out of the MediaKeySystemConfiguration.idl file
and into its own. Generally fix up the .idl files so that they properly work with their
implementation files.
- Modules/encryptedmedia/MediaKeySessionType.idl: Added.
- Modules/encryptedmedia/MediaKeySystemAccess.cpp:
(WebCore::MediaKeySystemAccess::create):
(WebCore::MediaKeySystemAccess::MediaKeySystemAccess):
(WebCore::MediaKeySystemAccess::keySystem): Deleted.
(WebCore::MediaKeySystemAccess::getConfiguration): Deleted.
- Modules/encryptedmedia/MediaKeySystemAccess.h:
(WebCore::MediaKeySystemAccess::keySystem):
(WebCore::MediaKeySystemAccess::getConfiguration):
(WebCore::MediaKeySystemAccess::create): Deleted.
- Modules/encryptedmedia/MediaKeySystemAccess.idl:
- Modules/encryptedmedia/MediaKeySystemConfiguration.h:
- Modules/encryptedmedia/MediaKeySystemConfiguration.idl:
- Modules/encryptedmedia/MediaKeySystemMediaCapability.idl:
- Modules/encryptedmedia/MediaKeys.idl:
- Modules/encryptedmedia/MediaKeysRequirement.idl: Added.
- Modules/encryptedmedia/MediaKeysRestrictions.h: Added.
- bindings/js/JSMediaKeySystemAccessCustom.cpp: Removed.
As some of these enums are referenced in the Internals project, they need to be exported
from WebCore correctly. Teach the code generator how to export the symbols generated by
enums.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateEnumerationHeaderContent):
Add new files to the project.
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- media/encrypted-media/mock-navigator-requestMediaKeySystemAccess-expected.txt: Added.
- media/encrypted-media/mock-navigator-requestMediaKeySystemAccess.html: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 9:14 AM Changeset in webkit [209963] by
-
- 2 edits in trunk/Source/JavaScriptCore
WebAssembly: Change a RELEASE_ASSERT_NOT_REACHED to a jit.breakpoint() for now to allow us to run some wasm benchmarks
https://bugs.webkit.org/show_bug.cgi?id=165990
Reviewed by Mark Lam.
- wasm/WasmBinding.cpp:
(JSC::Wasm::importStubGenerator):
- 8:42 AM Changeset in webkit [209962] by
-
- 4 edits2 deletes in trunk/Source/WebCore
Remove WebCore::Dictionary, which is now unused
https://bugs.webkit.org/show_bug.cgi?id=165988
Reviewed by Andreas Kling.
- CMakeLists.txt: Removed the files.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- bindings/js/Dictionary.cpp: Removed.
- bindings/js/Dictionary.h: Removed.
- bindings/js/JSBindingsAllInOne.cpp: Removed include of Dictionary.cpp.
- 2:33 AM Changeset in webkit [209961] by
-
- 3 edits5 adds in trunk
Cloned CachedResource should not have an empty response
https://bugs.webkit.org/show_bug.cgi?id=165947
Patch by Youenn Fablet <youenn@apple.com> on 2016-12-17
Reviewed by Sam Weinig.
Source/WebCore:
Test: http/tests/loading/reusing-cached-stylesheet-from-different-domain.html
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::setBodyDataFrom): Copying the response to the cloned resource.
Even though the issue is appearing for stylesheets only, it is safer to do that for all cloned ressources.
LayoutTests:
This new test is working as follow:
- A first frame is loaded. As part of it, it will load an absolute URL CSS stylesheet that contains a relative URL to import a CSS stylesheet.
This second stylesheet will make the background as green.
- Once done, a second frame is loaded (same HTML but from a different domain) with the same absolute URL CSS stylesheet.
The relative URL stylesheet should use the absolute URL of the CSS stylesheet as base.
If it is using the frame as base, the loaded CSS will change background to red.
- http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.php: Added.
- http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.html: Added.
- http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.php: Added.
- http/tests/loading/reusing-cached-stylesheet-from-different-domain-expected.html: Added.
- http/tests/loading/reusing-cached-stylesheet-from-different-domain.html: Added.