Timeline
Nov 23, 2016:
- 1:37 AM Changeset in webkit [208970] by
-
- 4 edits in trunk
Remove ENABLE_ASSEMBLER_WX_EXCLUSIVE code
https://bugs.webkit.org/show_bug.cgi?id=165027
Reviewed by Darin Adler.
.:
- Source/cmake/WebKitFeatures.cmake: Remove the ENABLE_ASSEMBLER_WX_EXCLUSIVE option.
Source/JavaScriptCore:
Remove the code guarded with ENABLE(ASSEMBLER_WX_EXCLUSIVE).
No port enables this and the guarded code doesn't build at all,
so it's safe to say it's abandoned.
- jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::ExecutableAllocator):
(JSC::ExecutableAllocator::reprotectRegion): Deleted.
Nov 22, 2016:
- 8:05 PM Changeset in webkit [208969] by
-
- 2 edits in trunk/Source/WebKit/mac
[Mac] In Legacy WebKit, pressing an arrow key in editable content doesn’t hide the mouse cursor
https://bugs.webkit.org/show_bug.cgi?id=165036
<rdar://problem/5708580>
Reviewed by Alexey Proskuryakov.
- WebView/WebHTMLView.mm:
(-[WebHTMLView performKeyEquivalent:]): Hide the cursor if WebCore handled the event,
similarly to what we do in -keyDown: and to what WKWebView does with all key events.
- 12:52 PM Changeset in webkit [208968] by
-
- 6 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in JSC profiler files.
https://bugs.webkit.org/show_bug.cgi?id=164971
Reviewed by Saam Barati.
- profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::addSequenceProperties):
- profiler/ProfilerCompilation.cpp:
(JSC::Profiler::Compilation::toJS):
- profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::toJS):
(JSC::Profiler::Database::toJSON):
- profiler/ProfilerOSRExitSite.cpp:
(JSC::Profiler::OSRExitSite::toJS):
- profiler/ProfilerOriginStack.cpp:
(JSC::Profiler::OriginStack::toJS):
- 12:13 PM Changeset in webkit [208967] by
-
- 6 edits2 adds in trunk
CrashTracer: [USER] com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::ExtensionStyleSheets::pageUserSheet + 14
https://bugs.webkit.org/show_bug.cgi?id=165030
Reviewed by Darin Adler.
Source/WebCore:
We failed to reset the style scope when an element was moved to a different document. This could lead to having dangling
document pointers in style scope and style resolver.
Test: fast/shadow-dom/shadow-host-move-to-different-document.html
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::didMoveToNewDocument):
Reset style scope.
- dom/ShadowRoot.h:
- style/StyleScope.cpp:
(WebCore::Style::Scope::resolver):
Some more assertions.
- style/StyleScope.h:
(WebCore::Style::Scope::document):
LayoutTests:
- fast/shadow-dom/shadow-host-move-to-different-document-expected.html: Added.
- fast/shadow-dom/shadow-host-move-to-different-document.html: Added.
- 11:16 AM Changeset in webkit [208966] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in JSONObject.cpp.
https://bugs.webkit.org/show_bug.cgi?id=165025
Reviewed by Saam Barati.
- runtime/JSONObject.cpp:
(JSC::gap):
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::stringify):
(JSC::Stringifier::toJSON):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):
(JSC::JSONProtoFuncParse):
(JSC::JSONProtoFuncStringify):
(JSC::JSONStringify):
- 10:43 AM Changeset in webkit [208965] by
-
- 2 edits in trunk/Source/WTF
One more tiny bit of follow-up.
- wtf/text/TextBreakIterator.cpp:
(WTF::numCharactersInGraphemeClusters): Removed unneeded always-true check.
- 10:35 AM Changeset in webkit [208964] by
-
- 2 edits in trunk/Source/WTF
Quick follow-up to previous patch.
- wtf/text/TextBreakIterator.cpp:
(WTF::numCharactersInGraphemeClusters): Removed incorrect assertion.
- 9:16 AM Changeset in webkit [208963] by
-
- 12 edits1 add in trunk
Make normal case fast in the input element limitString function
https://bugs.webkit.org/show_bug.cgi?id=165023
Reviewed by Dan Bernstein.
Source/WebCore:
When running Speedometer, the limitLength function was showing up as hot.
Fixed a couple obvious problems with that function's performance.
- html/TextFieldInputType.cpp:
(WebCore::isASCIILineBreak): Deleted. The isHTMLLineBreak function does
the same thing, but faster.
(WebCore::limitLength): Added a FIXME comment explaining that the function
isn't really a good idea. Don't call through to numCharactersInGraphemeClusters
at all for 8-bit strings since we don't allow CR or LF characters in the string
anyway, so there are no grapheme clusters more than a single code unit. Removed
optimization when the length is the string's length that String::left already does.
(WebCore::TextFieldInputType::sanitizeValue): Use isHTMLLineBreak instead of
isASCIILineBreak.
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent): Ditto.
- platform/LocalizedStrings.cpp: Use auto a lot more rather than writing out
RetainPtr.
(WebCore::truncatedStringForLookupMenuItem): Removed unneeded special case for
empty strings. Removed unneeded string with the ellipsis character in it, since
the makeString function already knows how to append a character to a string.
- rendering/RenderText.cpp:
(WebCore::mapLineBreakToIteratorMode): Updated for change to LineBreakIteratorMode.
- rendering/SimpleLineLayoutTextFragmentIterator.cpp:
(WebCore::SimpleLineLayout::TextFragmentIterator::nextBreakablePosition): Ditto.
Source/WTF:
- wtf/text/LineBreakIteratorPoolICU.h: Removed many unneeded includes.
Simplified the class a bit, removing some extra definitions.
(WTF::LineBreakIteratorPool::sharedPool): Use NeverDestroyed instead of new.
(WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword): Reimplemented in
a simpler way without using StringBuilder. Also updated for change to
LineBreakIteratorMode.
(WTF::LineBreakIteratorPool::put): Use uncheckedAppend since the code is
careful to only use the inline capacity in the vector.
- wtf/text/TextBreakIterator.cpp: Moved some includes in here from the header.
(WTF::mapLineIteratorModeToRules): Updated for change to LineBreakIteratorMode.
(WTF::openLineBreakIterator): Ditto.
(WTF::numGraphemeClusters): Added a fast path for all 8-bit strings; don't
use ICU for that case, even if there is a CR character in it.
(WTF::numCharactersInGraphemeClusters): Added a fast path for strings that are
short enough to entirely fit without even looking at the characters; that's a
case we likely hit all the time. Also added a fast path for all 8-bit strings.
- wtf/text/TextBreakIterator.h: Changed LineBreakIteratorMode to be an enum
class and not repeat UAX14 in the names of the modes. Initialize data members
in the class definition rather than the constructors.
Tools:
- TestWebKitAPI/CMakeLists.txt: Added TextBreakIterator.cpp.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
- TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp: Added.
Contains some tests for the numGraphemeClusters and
numCharactersInGraphemeClusters functions that I used to make sure
that the new fast paths I added work correctly.
- 6:34 AM Changeset in webkit [208962] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Isolate size of internal representation from actual grid size
https://bugs.webkit.org/show_bug.cgi?id=165006
Reviewed by Manuel Rego Casasnovas.
RenderGrid has an internal representation of a grid used to place grid items, compute grid
positions, run the track sizing algorithm etc. That data structure normally has exactly the
same size as the actual grid specified using the grid-template-xxx properties (or any other
shorthand). But in some cases, like for example when the grid is empty, the internal data
structure does not really match the actual grid. In the particular case of empty grids no
memory allocations are done to create a grid representation as it is not needed.
From now on both gridColumnCount() and gridRowCount() will always return the size of the
data structure representing the grid whereas the newly added numTracks() will always return
the actual size of the grid.
This is the first required step of the process of isolating the data used by the grid track
sizing algorithm from the actual internal state of the LayoutGrid object.
No new tests as this is just a code refactoring.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridColumnCount): Always return the number of columns of the internal
data structure to represent the grid.
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths): Use the actual size of the grid to
create the GridSizingData structure.
(WebCore::RenderGrid::placeItemsOnGrid): Use the actual size of the grid to create the
GridSizingData structure.
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::numTracks): New method which returns the actual size of the grid.
- rendering/RenderGrid.h:
- 3:14 AM Changeset in webkit [208961] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Fix introspection warning
https://bugs.webkit.org/show_bug.cgi?id=165026
Reviewed by Michael Catanzaro.
This fixes an introspection annotation for a new API added in r208532.
- WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
(webkit_web_page_class_init):
- 3:09 AM Changeset in webkit [208960] by
-
- 2 edits in trunk/Tools
Unreviewed, add myself as a WebKit committer.
- Scripts/webkitpy/common/config/contributors.json:
Nov 21, 2016:
- 11:49 PM Changeset in webkit [208959] by
-
- 24 edits2 moves1 add10 deletes in trunk/Source/WebKit2
[SOUP] Simplify custom protocols handler implementation
https://bugs.webkit.org/show_bug.cgi?id=164922
Reviewed by Michael Catanzaro.
We are using too many classes for this and also the C API that is not needed, because both GTK+ and EFL have
their own APIs and this is not used by WTR at all.
- PlatformEfl.cmake: Remove files from compilation.
- PlatformGTK.cmake: Ditto.
- Shared/API/c/WKBase.h:
- Shared/API/c/soup/WKBaseSoup.h: Removed.
- UIProcess/API/APICustomProtocolManagerClient.h: Added.
(API::CustomProtocolManagerClient::~CustomProtocolManagerClient):
(API::CustomProtocolManagerClient::startLoading):
(API::CustomProtocolManagerClient::stopLoading):
(API::CustomProtocolManagerClient::invalidate):
- UIProcess/API/C/WKAPICast.h:
- UIProcess/API/C/soup/WKAPICastSoup.h: Removed.
- UIProcess/API/C/soup/WKContextSoup.h: Removed.
- UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp: Removed.
- UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h: Removed.
- UIProcess/API/C/soup/WKSoupRequestManager.h: Removed.
- UIProcess/API/efl/ewk_context.cpp: Remove unneeded include.
- UIProcess/API/efl/ewk_url_scheme_request.cpp: Use CustomProtocolManagerProxy instead of WKSoupCustomProtocolRequestManagerRef.
(EwkUrlSchemeRequest::EwkUrlSchemeRequest):
(EwkUrlSchemeRequest::finish):
(EwkUrlSchemeRequest::invalidate):
- UIProcess/API/efl/ewk_url_scheme_request_private.h:
(EwkUrlSchemeRequest::create):
(EwkUrlSchemeRequest::manager):
- UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp: Added.
(attachCustomProtocolManagerClientToContext):
- UIProcess/API/gtk/WebKitCustomProtocolManagerClient.h: Renamed from Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.h.
- UIProcess/API/gtk/WebKitPrivate.h:
- UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Removed.
- UIProcess/API/gtk/WebKitRequestManagerClient.h: Removed.
- UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Use CustomProtocolManagerProxy instead of WebSoupCustomProtocolRequestManager.
(webkitURISchemeRequestCreate):
(webkitURISchemeRequestCancel):
(webkitURISchemeRequestGetManager):
(webkitURISchemeRequestInvalidate):
(webkitURISchemeRequestReadCallback):
(webkit_uri_scheme_request_finish_error):
- UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
(webkitWebContextDispose):
(webkit_web_context_register_uri_scheme):
(webkitWebContextStartLoadingCustomProtocol):
(webkitWebContextInvalidateCustomProtocolRequests):
- UIProcess/API/gtk/WebKitWebContextPrivate.h:
- UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
- UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
(WebKit::CustomProtocolManagerProxy::processDidClose):
- UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
(WebKit::CustomProtocolManagerProxy::processDidClose): Invalidate the client.
(WebKit::CustomProtocolManagerProxy::startLoading): Notify the client.
(WebKit::CustomProtocolManagerProxy::stopLoading): Ditto.
(WebKit::CustomProtocolManagerProxy::didReceiveResponse): Notify the network process.
(WebKit::CustomProtocolManagerProxy::didLoadData): Ditto.
(WebKit::CustomProtocolManagerProxy::didFailWithError): Ditto.
(WebKit::CustomProtocolManagerProxy::didFinishLoading): Ditto.
- UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: Removed.
- UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h: Removed.
- UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: Removed.
- UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h: Removed.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose): Notify the CustomProtocolManagerProxy.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::WebProcessPool): Initialize the CustomProtocolManagerClient and remove the all supplement.
(WebKit::WebProcessPool::setCustomProtocolManagerClient):
(WebKit::WebProcessPool::registerSchemeForCustomProtocol): In case of soup cache the given protocol.
(WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): In case of soup delete the given protocol from the cache.
- UIProcess/WebProcessPool.h:
- UIProcess/efl/RequestManagerClientEfl.cpp: Do not use the C API, but API::CustomProtocolManagerClient.
(WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
(WebKit::RequestManagerClientEfl::registerURLSchemeHandler):
- UIProcess/efl/RequestManagerClientEfl.h:
- UIProcess/efl/WebProcessPoolEfl.cpp:
- UIProcess/gtk/WebProcessPoolGtk.cpp:
- UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess): Use m_urlSchemesRegisteredForCustomProtocols to
build the list of custom protocols to send to the network process.
- 10:30 PM Changeset in webkit [208958] by
-
- 4 edits in trunk
Hasher::addCharacters() should be able to handle zero length strings.
https://bugs.webkit.org/show_bug.cgi?id=165024
Reviewed by Yusuke Suzuki.
Source/WTF:
Currently, it will fail to handle zero length strings if it has a pending
character. The fix is simply to return early if length is 0.
- wtf/Hasher.h:
(WTF::StringHasher::addCharacters):
Tools:
- TestWebKitAPI/Tests/WTF/StringHasher.cpp:
(TestWebKitAPI::TEST):
- 7:35 PM Changeset in webkit [208957] by
-
- 2 edits in trunk/Source/JavaScriptCore
Removed an extra space character at the end of line.
Not reviewed.
- runtime/JSCell.cpp:
(JSC::JSCell::toNumber):
- 6:05 PM Changeset in webkit [208956] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in FunctionConstructor.cpp.
https://bugs.webkit.org/show_bug.cgi?id=165011
Reviewed by Saam Barati.
- runtime/FunctionConstructor.cpp:
(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):
- 6:04 PM Changeset in webkit [208955] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in GetterSetter.cpp.
https://bugs.webkit.org/show_bug.cgi?id=165013
Reviewed by Saam Barati.
- runtime/GetterSetter.cpp:
(JSC::callGetter):
(JSC::callSetter):
- 5:57 PM Changeset in webkit [208954] by
-
- 2 edits in trunk/Source/WebCore
Disable #line markers in bison output on Windows
https://bugs.webkit.org/show_bug.cgi?id=164973
Reviewed by Darin Adler.
New bison versions since 3.0 have bug that causes unescaped paths
to be printed in #line directives. On Windows CMake passes absolute
paths to bison that have backslashes in them, leading to compiler
errors or warnings because of unrecognized escape sequences.
No new tests needed.
- css/makegrammar.pl:
- 4:18 PM EnvironmentVariables edited by
- (diff)
- 3:54 PM Changeset in webkit [208953] by
-
- 14 edits2 copies3 adds in trunk
Crash in com.apple.JavaScriptCore: WTF::ThreadSpecific<WTF::WTFThreadData, + 142
https://bugs.webkit.org/show_bug.cgi?id=164898
Reviewed by Darin Adler.
JSTests:
- stress/tagged-template-registry-key-collect.js: Added.
(shouldBe):
(tag):
(i.eval):
- stress/tagged-template-registry-key.js: Added.
(shouldBe):
(tag):
(a):
(b):
Source/JavaScriptCore:
The callsite object (JSArray) of tagged template literal is managed by WeakGCMap since
same tagged template literal need to return an identical object.
The problem is that we used TemplateRegistryKey as the key of the WeakGCMap. WeakGCMap
can prune its entries in the collector thread. At that time, this TemplateRegistryKey
is deallocated. Since it includes String (and then, StringImpl), we accidentally call
ref(), deref() and StringImpl::destroy() in the different thread from the main thread
while this TemplateRegistryKey is allocated in the main thread.
Instead, we use TemplateRegistryKey* as the key of WeakGCMap. Then, to keep its liveness
while the entry of the WeakGCMap is alive, the callsite object has the reference to
the JSTemplateRegistryKey. And it holds Ref<TemplateRegistryKey>.
And now we need to lookup WeakGCMap with TemplateRegistryKey*. To do so, we create
interning system for TemplateRegistryKey. It is similar to AtomicStringTable and
SymbolRegistry. TemplateRegistryKey is allocated from this table. This table atomize the
TemplateRegistryKey. So we can use the pointer comparison between TemplateRegistryKey.
It allows us to lookup the entry from WeakGCMap by TemplateRegistryKey*.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/BuiltinNames.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::addTemplateRegistryKeyConstant):
(JSC::BytecodeGenerator::emitGetTemplateObject):
- bytecompiler/BytecodeGenerator.h:
- runtime/JSGlobalObject.cpp:
(JSC::getTemplateObject):
- runtime/JSTemplateRegistryKey.cpp:
(JSC::JSTemplateRegistryKey::JSTemplateRegistryKey):
(JSC::JSTemplateRegistryKey::create):
- runtime/JSTemplateRegistryKey.h:
- runtime/TemplateRegistry.cpp:
(JSC::TemplateRegistry::getTemplateObject):
- runtime/TemplateRegistry.h:
- runtime/TemplateRegistryKey.cpp: Copied from Source/JavaScriptCore/runtime/TemplateRegistry.h.
(JSC::TemplateRegistryKey::~TemplateRegistryKey):
- runtime/TemplateRegistryKey.h:
(JSC::TemplateRegistryKey::calculateHash):
(JSC::TemplateRegistryKey::create):
(JSC::TemplateRegistryKey::TemplateRegistryKey):
- runtime/TemplateRegistryKeyTable.cpp: Added.
(JSC::TemplateRegistryKeyTranslator::hash):
(JSC::TemplateRegistryKeyTranslator::equal):
(JSC::TemplateRegistryKeyTranslator::translate):
(JSC::TemplateRegistryKeyTable::~TemplateRegistryKeyTable):
(JSC::TemplateRegistryKeyTable::createKey):
(JSC::TemplateRegistryKeyTable::unregister):
- runtime/TemplateRegistryKeyTable.h: Copied from Source/JavaScriptCore/runtime/JSTemplateRegistryKey.h.
(JSC::TemplateRegistryKeyTable::KeyHash::hash):
(JSC::TemplateRegistryKeyTable::KeyHash::equal):
- runtime/VM.h:
(JSC::VM::templateRegistryKeyTable):
- 3:24 PM Changeset in webkit [208952] by
-
- 5 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in runtime/Error* files.
https://bugs.webkit.org/show_bug.cgi?id=164998
Reviewed by Darin Adler.
- runtime/ErrorConstructor.cpp:
(JSC::Interpreter::constructWithErrorConstructor):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::create):
- runtime/ErrorInstance.h:
- runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
- 12:32 PM Changeset in webkit [208951] by
-
- 2 edits in trunk/Tools
[CMake] build fails after update to cmake 3.7
https://bugs.webkit.org/show_bug.cgi?id=165008
Reviewed by Dan Bernstein.
When we remove the CMake cache, we should remove both the
CMakeCache.txt file and the CMakeFiles directory.
See: https://gitlab.kitware.com/cmake/cmake/issues/14820
- Scripts/webkitdirs.pm:
(cmakeFilesPath):
(removeCMakeCache):
- 9:19 AM Changeset in webkit [208950] by
-
- 5 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in *Executable.cpp files.
https://bugs.webkit.org/show_bug.cgi?id=164996
Reviewed by Darin Adler.
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::create):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::prepareForExecutionImpl):
- 8:58 AM Changeset in webkit [208949] by
-
- 4 edits in trunk/Source
Fix Sierra CMake build after r208452
https://bugs.webkit.org/show_bug.cgi?id=164437
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebView updateMediaTouchBar]):
I haven't enabled VIDEO_PRESENTATION_MODE in the CMake build yet.
It's needed for playbackSessionInterface to exist.
Source/WebKit2:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateMediaTouchBar):
I haven't enabled VIDEO_PRESENTATION_MODE in the CMake build yet.
It's needed for WebPlaybackSessionInterfaceMac to exist.
- 8:25 AM Changeset in webkit [208948] by
-
- 3 edits in trunk/Source/WebCore
[cmake][OpenWebRTC] Move SDPProcessorScriptResource rules to common WebCore
https://bugs.webkit.org/show_bug.cgi?id=164937
Patch by Olivier Blin <Olivier Blin> on 2016-11-21
Reviewed by Youenn Fablet.
SDPProcessorScriptResource has been moved in common mediastream directory (bug 163940).
Since it is not specific to the GTK port, the matching cmake rules should be
moved out from PlatformGTK.cmake to the main WebCore CMakeLists.txt.
This is needed to build OpenWebRTC support in other ports, WPE in my case,
probably Mac, EFL and Qt as well.
This also fixes the path in SDP scripts dependencies, the old openwebrtc subdir
was still being used.
No new tests, build fix only
- CMakeLists.txt:
- PlatformGTK.cmake:
- 5:12 AM Changeset in webkit [208947] by
-
- 1 copy in releases/WebKitGTK/webkit-2.15.2
WebKitGTK+ 2.15.2
- 3:18 AM Changeset in webkit [208946] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.2 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.15.2.
- 2:04 AM Changeset in webkit [208945] by
-
- 7 edits in trunk/Source/WebCore
Add URL::hostAndPort()
https://bugs.webkit.org/show_bug.cgi?id=164907
Reviewed by Alex Christensen.
As a convenient way of getting the host and port (if any) as a string.
- html/URLUtils.h:
(WebCore::URLUtils<T>::host): Use URL::hostAndPort().
- page/Location.cpp:
(WebCore::Location::host): Ditto.
- platform/URL.cpp:
(WebCore::URL::hostAndPort): Return host:port or just host if there isn't a port.
- platform/URL.h:
- platform/network/CredentialStorage.cpp:
(WebCore::originStringFromURL): Use URL::hostAndPort().
- workers/WorkerLocation.cpp:
(WebCore::WorkerLocation::host): Ditto.
- 1:41 AM Changeset in webkit [208944] by
-
- 2 edits in trunk/Source/WebCore
[WebRTC][OpenWebRTC] parse turns urls
https://bugs.webkit.org/show_bug.cgi?id=164587
Reviewed by Alejandro G. Castro.
- platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
Hook turns servers between the RTCConfiguration and the underlying
OpenWebRTC layer.
- 1:39 AM Changeset in webkit [208943] by
-
- 3 edits in trunk/Source/WebCore
[Gstreamer] Add volume and mute support to the WebRTC mediaplayer
https://bugs.webkit.org/show_bug.cgi?id=153828
Reviewed by Darin Adler.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::setVolume): New implementation setting the OWR source volume property.
(WebCore::MediaPlayerPrivateGStreamerOwr::setMuted): New implementation setting the OWR source mute property.
(WebCore::MediaPlayerPrivateGStreamerOwr::maybeHandleChangeMutedState): Also set audio OWR source mute state depending on the track enabled state.
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged): chain to maybeHandleChangeMuteState.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
- 1:29 AM Changeset in webkit [208942] by
-
- 2 edits in trunk/Source/WebCore
[WebRTC][OpenWebRTC] RTP bundling support
https://bugs.webkit.org/show_bug.cgi?id=162333
Reviewed by Alejandro G. Castro.
Configure the OpenWebRTC transport agent bundle policy according
to the RTCConfiguration and pass the receive SSRCs over to
OpenWebRTC as well. Those are needed so the agent is aware of the
bundle layout.
- platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::updateReceiveConfiguration):
(WebCore::MediaEndpointOwr::updateSendConfiguration):
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):
- 1:24 AM Changeset in webkit [208941] by
-
- 3 edits in trunk/Source/WebKit2
Remove m_customProtocolManagerProxy from WebProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=164908
Reviewed by Andreas Kling.
Since the network process is mandatory, the custom protocol manager proxy of WebProcessProxy is unused and can
be removed.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::WebProcessProxy):
- UIProcess/WebProcessProxy.h:
- 12:09 AM Changeset in webkit [208940] by
-
- 2 edits3 adds1 delete in trunk/Tools
[GTK][WebRTC] Switch to downstream OpenWebRTC and more recent GStreamer
https://bugs.webkit.org/show_bug.cgi?id=164817
Reviewed by Alejandro G. Castro.
This is temporary, hopefully. The OpenWebRTC patches will/should
be soon reviewed and upstream but meanwhile it makes sense to use
the Igalia downstream fork so that the WebRTC testing is easier.
Recent GStreamer patches are also needed for RTP bundling support
and RTP retransmission fixes.
- gtk/jhbuild.modules:
- gtk/openwebrtc.modules: Removed.
- gtk/patches/gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch: Added.
- gtk/patches/gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch: Added.
- gtk/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Added.
Nov 20, 2016:
- 10:22 PM Changeset in webkit [208939] by
-
- 20 edits in trunk
[EncryptedMedia] Make EME API runtime-enabled
https://bugs.webkit.org/show_bug.cgi?id=164927
Reviewed by Jer Noble.
Source/JavaScriptCore:
- runtime/CommonIdentifiers.h: Add the necessary identifiers.
Source/WebCore:
Update the EME API IDL definitions to use the EnabledAtRuntime
attribute on the relevant interfaces, attributes and operations.
EncryptedMediaAPI is used as the attribute value.
The corresponding getter, setter and member boolean are added to
the RuntimeEnabledFeatures class.
- Modules/encryptedmedia/MediaKeyMessageEvent.idl:
- Modules/encryptedmedia/MediaKeySession.idl:
- Modules/encryptedmedia/MediaKeyStatusMap.idl:
- Modules/encryptedmedia/MediaKeySystemAccess.idl:
- Modules/encryptedmedia/MediaKeys.idl:
- Modules/encryptedmedia/NavigatorEME.idl:
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setEncryptedMediaAPIEnabled):
(WebCore::RuntimeEnabledFeatures::encryptedMediaAPIEnabled):
- html/HTMLMediaElement.idl:
- html/MediaEncryptedEvent.idl:
Source/WebKit2:
Add the new EncryptedMediaAPI preference. Set the same feature
flag on the shared RuntimeEnabledFeatures object to the
corresponding value that's stored in the WebPreferencesStore.
InjectedBundle::overrideBoolPreferenceForTestRunner() does the
same when the 'WebKitEncryptedMediaAPIEnabled' preference is
overridden in WKTR for testing purposes.
- Shared/WebPreferencesDefinitions.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
Enable the EME API via the WKTR InjectedBundle whenever testing
commences. This does not have any effect unless the EME feature
is enabled at compile-time, but it's still added to match other
features and for future use.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setEncryptedMediaAPIEnabled):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- 8:38 PM Changeset in webkit [208938] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r208606?): LayoutTest fast/mediastream/enumerating-crash.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=164715
<rdar://problem/29277180>
Reviewed by Alexey Proskuryakov.
No new tests, fixes an existing test crash.
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::contextDestroyed): Call base class method before clearing m_controller
because it nullifies the security context.
- 5:34 PM Changeset in webkit [208937] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in ConstructData.cpp.
https://bugs.webkit.org/show_bug.cgi?id=164976
Reviewed by Darin Adler.
- runtime/ConstructData.cpp:
(JSC::construct):
- 5:33 PM Changeset in webkit [208936] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in CommonSlowPaths.cpp/h.
https://bugs.webkit.org/show_bug.cgi?id=164975
Reviewed by Darin Adler.
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::opIn):
- 5:31 PM Changeset in webkit [208935] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix exception scope verification failures in DateConstructor.cpp and DatePrototype.cpp.
https://bugs.webkit.org/show_bug.cgi?id=164995
Reviewed by Darin Adler.
- runtime/DateConstructor.cpp:
(JSC::millisecondsFromComponents):
(JSC::constructDate):
- runtime/DatePrototype.cpp:
(JSC::dateProtoFuncToPrimitiveSymbol):
- 4:57 PM Changeset in webkit [208934] by
-
- 1 edit6 adds in trunk/LayoutTests
Add iOS text selection tests - long press clear and multi line selection tests
https://bugs.webkit.org/show_bug.cgi?id=164899
Patch by Megan Gardner <Megan Gardner> on 2016-11-20
Reviewed by Darin Adler.
Test for clearing a selection after a long press.
Test for checking multi-line select, both increasing and decreasing, using the left selection.
Test for checking multi-line select, both increasing and decreasing, using the right selection.
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text-expected.txt: Added.
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html: Added.
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt: Added.
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html: Added.
- fast/events/touch/ios/long-press-to-select-and-tap-to-clear-expected.txt: Added.
- fast/events/touch/ios/long-press-to-select-and-tap-to-clear.html: Added.
- 9:43 AM WebKitGTK/2.14.x edited by
- (diff)
- 12:58 AM Changeset in webkit [208933] by
-
- 8 edits in trunk
[JSC] speed up parsing of async functions
https://bugs.webkit.org/show_bug.cgi?id=164808
Reviewed by Yusuke Suzuki.
JSTests:
Add tests for line terminator following "async" keyword in async
function syntax.
- stress/async-await-syntax.js:
(shouldBe):
Source/JavaScriptCore:
Minor adjustments to Parser in order to mitigate slowdown with async
function parsing enabled:
- Tokenize "async" as a keyword
- Perform less branching in various areas of the Parser
- parser/Keywords.table:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::maybeParseAsyncFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::createResolveAndUseVariable):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
- parser/Parser.h:
(JSC::isAnyContextualKeyword):
(JSC::isIdentifierOrAnyContextualKeyword):
(JSC::isSafeContextualKeyword):
(JSC::Parser::matchSpecIdentifier):
- parser/ParserTokens.h:
- runtime/CommonIdentifiers.h:
Nov 19, 2016:
- 7:29 PM Changeset in webkit [208932] by
-
- 4 edits in trunk/JSTests
op_mod-* JSC tests needs a longer timeout too.
https://bugs.webkit.org/show_bug.cgi?id=164994
Reviewed by Yusuke Suzuki.
- stress/op_mod-ConstVar.js:
- stress/op_mod-VarConst.js:
- stress/op_mod-VarVar.js:
- 4:38 PM Changeset in webkit [208931] by
-
- 12 edits in trunk/Source/WebKit2
Salt network cache hashes
https://bugs.webkit.org/show_bug.cgi?id=164924
Reviewed by Alex Christensen.
To enhance privacy make cache content unidentifiable from file names alone.
This is done by generating a unique persistent salt for each cache instance.
It is used when computing hashes used in file names.
The patch also replaces plain text partition directory names with salted hashes.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::makeCacheKey):
(WebKit::NetworkCache::makeCacheKey): Deleted.
- NetworkProcess/cache/NetworkCache.h:
Increment cache version.
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::BlobStorage):
(WebKit::NetworkCache::BlobStorage::add):
(WebKit::NetworkCache::BlobStorage::get):
Use salt for blob content hash.
- NetworkProcess/cache/NetworkCacheBlobStorage.h:
- NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::computeSHA1):
For simplicity all SHA1s are now salted.
(WebKit::NetworkCache::makeSalt):
(WebKit::NetworkCache::readOrMakeSalt):
Read salt if it exists, generate and persist it otherwise.
- NetworkProcess/cache/NetworkCacheData.h:
- NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::Key):
Remove the "No partition" string and just empty.
That was only needed to have a directory name of some sort.
(WebKit::NetworkCache::Key::computeHash):
Use salt for key hash.
(WebKit::NetworkCache::Key::computePartitionHash):
Separate hash for partition.
- NetworkProcess/cache/NetworkCacheKey.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::makeSubresourcesKey):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::makeSaltFilePath):
(WebKit::NetworkCache::Storage::open):
Cache can't be opened if we can't read or persist a salt.
(WebKit::NetworkCache::traverseRecordsFiles):
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::recordDirectoryPathForKey):
Use the partition hash in the directory name instead of a plain text name.
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::Storage::readRecord):
(WebKit::NetworkCache::Storage::encodeRecord):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
- NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::salt):
- 1:22 PM Changeset in webkit [208930] by
-
- 15 edits in trunk
Update HTML form validation messages
https://bugs.webkit.org/show_bug.cgi?id=164957
<rdar://problem/29338669>
Reviewed by Darin Adler.
Source/WebCore:
Update HTML form validation messages as per recent feedback:
- Drop the "Please".
- Drop the period at the end.
- Drop the "if you want to proceed" that was used only for the checkbox.
No new tests, rebaselined existing tests.
- English.lproj/Localizable.strings:
- platform/LocalizedStrings.cpp:
(WebCore::validationMessageValueMissingText):
(WebCore::validationMessageValueMissingForCheckboxText):
(WebCore::validationMessageValueMissingForFileText):
(WebCore::validationMessageValueMissingForRadioText):
(WebCore::validationMessageValueMissingForSelectText):
(WebCore::validationMessageTypeMismatchText):
(WebCore::validationMessageTypeMismatchForEmailText):
(WebCore::validationMessageTypeMismatchForURLText):
(WebCore::validationMessagePatternMismatchText):
(WebCore::validationMessageTooShortText):
(WebCore::validationMessageTooLongText):
(WebCore::validationMessageRangeUnderflowText):
(WebCore::validationMessageRangeOverflowText):
(WebCore::validationMessageStepMismatchText):
(WebCore::validationMessageBadInputForNumberText):
LayoutTests:
Rebaseline existing tests.
- fast/forms/number/number-validation-message-expected.txt:
- fast/forms/number/number-validation-message.html:
- fast/forms/validation-custom-message-expected.txt:
- fast/forms/validation-custom-message.html:
- fast/forms/validation-messages-expected.txt:
- fast/forms/validation-messages.html:
- fast/forms/validationMessage-expected.txt:
- 1:12 PM Changeset in webkit [208929] by
-
- 12 edits9 adds in trunk
AX: [ATK] Implement selection interface and states for elements supporting aria-selected and for menu roles
https://bugs.webkit.org/show_bug.cgi?id=164865
Reviewed by Chris Fleizach.
Source/WebCore:
Implement AtkSelection and support ATK_STATE_SELECTABLE and ATK_STATE_SELECTED
for elements supporting aria-selected and for menu-related roles. Also enable the
equivalent support for the Mac because NSAccessibilitySelectedChildrenAttribute is
included as supported on the same roles.
In addition, fix several bugs discovered along the way: Call isSelected() on role
tab, because tab supports aria-selected; not aria-checked. Correct ATK mapping
of ListBoxRole and ListBoxOptionRole for combobox descendants. Always defer to
WebCore for inclusion/exclusion decisions related to elements with an explicit
ARIA role.
Tests: accessibility/aria-combobox-hierarchy.html
accessibility/aria-selected-menu-items.html
accessibility/aria-selected.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::selectedTabItem):
(WebCore::AccessibilityNodeObject::canSetSelectedAttribute):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isDescendantOfRole):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::canHaveSelectedChildren):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isSelected):
(WebCore::AccessibilityRenderObject::canHaveSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
- accessibility/AccessibilityRenderObject.h:
- accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
- accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(webkitAccessibleSelectionGetSelectionCount):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
(getInterfaceMaskFromObject):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
New tests for the added support. In addition, update the expectations for
aria-combobox.html to reflect the corrected ATK mapping of ListBoxRole for
combobox descendants.
- accessibility/aria-combobox-expected.txt: Updated.
- accessibility/aria-combobox-hierarchy.html: Added.
- accessibility/aria-selected-menu-items.html: Added.
- accessibility/aria-selected.html: Added.
- platform/gtk/accessibility/aria-combobox-hierarchy-expected.txt: Added.
- platform/gtk/accessibility/aria-selected-expected.txt: Added.
- platform/gtk/accessibility/aria-selected-menu-items-expected.txt: Added.
- platform/mac/accessibility/aria-combobox-hierarchy-expected.txt: Added.
- platform/mac/accessibility/aria-selected-expected.txt: Added.
- platform/mac/accessibility/aria-selected-menu-items-expected.txt: Added.
- 1:04 PM Changeset in webkit [208928] by
-
- 2 edits in trunk/Tools
Fix the Mac and iOS bulds.
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _stableStateOverride]):
(-[TestRunnerWKWebView _setStableStateOverride:]):
- 11:34 AM Changeset in webkit [208927] by
-
- 46 edits in trunk
[iOS WK2] When zoomed in and panning on pages with fixed bars, parts of the bars are sometimes missing
https://bugs.webkit.org/show_bug.cgi?id=164855
Reviewed by Sam Weinig.
Source/WebCore:
During UI-process panning and zooming, we send visible rect updates to the web process
with inStableState=false, and don't update GraphicsLayers until we get into a stable state.
This causes a problem where the web process has a stale notion of where the GraphicsLayers
for position:fixed elements are, but is then told to update tiling coverage with an up-to-date
visible rect. The existing "sync layer positions" path isn't useful to fix this, because it
breaks the relationship between the GraphicsLayer positions and their FixedPositionViewportConstraints
in the scrolling tree.
To address this, add the notion of an Optional<> approximatePosition on GraphicsLayers. This is used
only by the coverageRect computation code path, and is cleared by a setPosition(). ApproximatePositions
are pushed onto GraphicsLayers via the syncViewportConstrainedLayerPositions() code path (renamed to
reconcileViewportConstrainedLayerPositions).
This allows us to remmove "viewportIsStable" from GraphicsLayer flushing, and FrameView.
SetOrSyncScrollingLayerPosition is made into an enum class.
Tested by scrollingcoordinator/ios/non-stable-viewport-scroll.html
- page/FrameView.cpp:
(WebCore::FrameView::reset):
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::reconcileViewportConstrainedLayerPositions):
(WebCore::AsyncScrollingCoordinator::syncViewportConstrainedLayerPositions): Deleted.
- page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::ScheduledScrollUpdate::ScheduledScrollUpdate):
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::operator<<):
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::reconcileScrollingState):
(WebCore::ScrollingCoordinator::reconcileViewportConstrainedLayerPositions):
(WebCore::ScrollingCoordinator::syncViewportConstrainedLayerPositions): Deleted.
- page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::reconcileLayerPositionForViewportRect):
(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect): Deleted.
- page/scrolling/ScrollingStateFixedNode.h:
- page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::reconcileLayerPositionForViewportRect):
(WebCore::ScrollingStateNode::syncLayerPositionForViewportRect): Deleted.
- page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):
(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect): Deleted.
- page/scrolling/ScrollingStateStickyNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
- page/scrolling/ScrollingTree.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
- page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
- page/scrolling/ios/ScrollingTreeIOS.h:
- page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setPosition):
(WebCore::GraphicsLayer::approximatePosition):
(WebCore::GraphicsLayer::setApproximatePosition):
(WebCore::GraphicsLayer::flushCompositingState):
(WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::flushCompositingState):
(WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects): No longer bail for viewportConstained layers when the viewport is unstable.
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
- platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::CommitState::CommitState): Deleted.
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
Source/WebKit/win:
Remove the "inStableState" parameter from flushCompositingState() etc.
- WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::flushPendingLayerChanges):
- WebView.cpp:
(WebView::flushPendingGraphicsLayerChanges):
Source/WebKit2:
During UI-process panning and zooming, we send visible rect updates to the web process
with inStableState=false, and don't update GraphicsLayers until we get into a stable state.
This causes a problem where the web process has a stale notion of where the GraphicsLayers
for position:fixed elements are, but is then told to update tiling coverage with an up-to-date
visible rect. The existing "sync layer positions" path isn't useful to fix this, because it
breaks the relationship between the GraphicsLayer positions and their FixedPositionViewportConstraints
in the scrolling tree.
To address this, add the notion of an Optional<> approximatePosition on GraphicsLayers. This is used
only by the coverageRect computation code path, and is cleared by a setPosition(). ApproximatePositions
are pushed onto GraphicsLayers via the syncViewportConstrainedLayerPositions() code path (renamed to
reconcileViewportConstrainedLayerPositions).
Tested by scrollingcoordinator/ios/non-stable-viewport-scroll.html
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
- UIProcess/Scrolling/RemoteScrollingTree.h:
- WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
- WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects): Always push the custom fixed position rect down, but send
ScrollingLayerPositionAction::SetApproximate if the state is not stable.
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
- 11:02 AM Changeset in webkit [208926] by
-
- 18 edits2 adds in trunk
Make it possible to test non-stable-state scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=164905
Reviewed by Dan Bernstein.
Source/WebKit2:
Make it possible for an iOS layout test to force every visible rect update
from the UI process to the web process to be in a non-stable state. This emulates
what happens during panning and zooming interactions, and allows us to test the
scrolling and layer trees in these transient states.
This is done by adding a testing property on WKWebView, _stableStateOverride, whose
getters and setters are overridden in TestRunnerWKWebView. When non-nil, we _updateVisibleContentRectAfterScrollInView
consults the NSNumber's boolValue and uses it to override the stable state.
To facilitate this kind of testing, also add immediateScrollToOffset() and
immediateZoomToScale() to UIScriptController. Finally, add doAfterPresentationUpdate()
which provides a callback that fires after one trip to the web process and back.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateVisibleContentRectAfterScrollInView:]):
(-[WKWebView _stableStateOverride]):
(-[WKWebView _setStableStateOverride:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
Make it possible for an iOS layout test to force every visible rect update
from the UI process to the web process to be in a non-stable state. This emulates
what happens during panning and zooming interactions, and allows us to test the
scrolling and layer trees in these transient states.
This is done by adding a testing property on WKWebView, _stableStateOverride, whose
getters and setters are overridden in TestRunnerWKWebView. When non-nil, we _updateVisibleContentRectAfterScrollInView
consults the NSNumber's boolValue and uses it to override the stable state.
To facilitate this kind of testing, also add immediateScrollToOffset() and
immediateZoomToScale() to UIScriptController. Finally, add doAfterPresentationUpdate()
which provides a callback that fires after one trip to the web process and back.
Add code generation support for optional boolean attributes in IDL.
Align CodeGeneratorDumpRenderTree.pm and CodeGeneratorTestRunner.pm.
- DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm:
(_generateImplementationFile):
(_platformTypeConstructor):
(_returnExpression):
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::doAfterPresentationUpdate):
(WTR::contentOffsetBoundedInValidRange):
(WTR::UIScriptController::scrollToOffset):
(WTR::UIScriptController::immediateScrollToOffset):
(WTR::UIScriptController::immediateZoomToScale):
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::doAfterPresentationUpdate):
- TestRunnerShared/Bindings/JSWrappable.h:
(WTR::JSValueMakeBooleanOrNull):
(WTR::JSValueToNullableBoolean):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::immediateScrollToOffset):
(WTR::UIScriptController::immediateZoomToScale):
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:
(_classRefGetter):
(_platformTypeConstructor):
(_returnExpression):
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView dealloc]):
(-[TestRunnerWKWebView _stableStateOverride]):
(-[TestRunnerWKWebView _setStableStateOverride:]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::doAsyncTask):
(WTR::UIScriptController::doAfterPresentationUpdate):
(WTR::UIScriptController::zoomToScale):
(WTR::UIScriptController::immediateScrollToOffset):
(WTR::UIScriptController::immediateZoomToScale):
(WTR::UIScriptController::stableStateOverride):
(WTR::UIScriptController::setStableStateOverride):
- WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::doAfterPresentationUpdate):
LayoutTests:
- scrollingcoordinator/ios/non-stable-viewport-scroll-expected.txt: Added.
- scrollingcoordinator/ios/non-stable-viewport-scroll.html: Added.
- 9:39 AM Changeset in webkit [208925] by
-
- 6 edits in trunk
Add --timeoutMultiplier option to allow some tests more time to run.
https://bugs.webkit.org/show_bug.cgi?id=164951
Reviewed by Yusuke Suzuki.
JSTests:
Extended the timeout for these tests by 50% more because they run quite slow on
low-end machines.
- stress/op_div-ConstVar.js:
- stress/op_div-VarConst.js:
- stress/op_div-VarVar.js:
Source/JavaScriptCore:
- jsc.cpp:
(timeoutThreadMain):
- Modified to factor in a timeout multiplier that can adjust the timeout duration.
(startTimeoutThreadIfNeeded):
- Moved the code that starts the timeout thread here from main() so that we can
call it after command line args have been parsed instead.
(main):
- Deleted old timeout thread starting code.
(CommandLine::parseArguments):
- Added parsing of the --timeoutMultiplier option.
(jscmain):
- Start the timeout thread if needed after we've parsed the command line args.
- 12:08 AM Changeset in webkit [208924] by
-
- 11 edits2 adds in trunk
AX: [ATK] Expose aria-busy via ATK_STATE_BUSY
https://bugs.webkit.org/show_bug.cgi?id=164909
Reviewed by Chris Fleizach.
Source/WebCore:
Expose aria-busy via ATK_STATE_BUSY. Also rename ariaLiveRegionBusy()
to isBusy() because in ARIA 1.1 aria-busy is no longer limited to live
regions.
Test: accessibility/aria-busy.html
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isBusy):
(WebCore::AccessibilityObject::ariaLiveRegionBusy): Deleted.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isBusy):
(WebCore::AccessibilityRenderObject::ariaLiveRegionBusy): Deleted.
- accessibility/AccessibilityRenderObject.h:
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
Tools:
Implement boolAttributeValue() for ATK so we can test AXElementBusy.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::boolAttributeValue):
LayoutTests:
- accessibility/aria-busy-expected.txt: Added.
- accessibility/aria-busy.html: Added.
- 12:03 AM Changeset in webkit [208923] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix missing exception checks in JSC inspector files.
https://bugs.webkit.org/show_bug.cgi?id=164959
Reviewed by Saam Barati.
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):
- inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):
- 12:02 AM Changeset in webkit [208922] by
-
- 4 edits7 adds in trunk
REGRESSION(r200964): Tab focus navigation is broken on results.en.voyages-sncf.com
https://bugs.webkit.org/show_bug.cgi?id=164888
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was caused by FocusNavigationScope::parentInScope incorrectly returning nullptr when moving out of
a user agent shadow tree of a SVG use element. Fixed the bug by explicitly checking against the focus scope's
root node or its slot element. Also removed a superfluous early return when the parent node is a focus scope.
Tests: fast/shadow-dom/focus-navigation-out-of-slot.html
fast/shadow-dom/focus-navigation-passes-shadow-host.html
fast/shadow-dom/focus-navigation-passes-svg-use-element.html
- page/FocusController.cpp:
(WebCore::FocusNavigationScope::parentInScope):
LayoutTests:
Add regression tests for moving the focus across a shadow tree and a SVG use element
and the one that moves out of a slot element.
- fast/shadow-dom/focus-navigation-out-of-slot-expected.txt: Added.
- fast/shadow-dom/focus-navigation-out-of-slot.html: Added.
- fast/shadow-dom/focus-navigation-passes-shadow-host-expected.txt: Added.
- fast/shadow-dom/focus-navigation-passes-shadow-host.html: Added.
- fast/shadow-dom/focus-navigation-passes-svg-use-element-expected.txt: Added.
- fast/shadow-dom/focus-navigation-passes-svg-use-element.html: Added.
- platform/ios-simulator/TestExpectations: Skip the newly added tests on iOS.