Timeline
Jul 17, 2017:
- 11:28 PM Changeset in webkit [219604] by
-
- 2 edits in trunk/Source/WebKit
Web Automation: link and partial link queries don't work if text link contains trailing or leading whitespaces
https://bugs.webkit.org/show_bug.cgi?id=174499
Reviewed by Brian Burg.
This is causing test test_Driver_Can_Get_Link_By_Link_Test_Ignoring_Trailing_Whitespace to fail.
- UIProcess/Automation/atoms/FindNodes.js:
(switch): Use normalize-space() in in the links xpath expressions.
- 10:57 PM Changeset in webkit [219603] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed fix to Mac CMake build after r219474.
- PlatformMac.cmake:
- 10:46 PM Changeset in webkit [219602] by
-
- 13 edits in trunk
[cmake] Set library types before their targets are created
https://bugs.webkit.org/show_bug.cgi?id=174600
Reviewed by Michael Catanzaro.
Since r219560 library targets are created before PlatformXXX.cmake
files are processed, however library type must be passed in
add_library() call and cannot be changed afterwards. Set these
variables in OptionsXXX.cmake.
.:
- CMakeLists.txt:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWin.cmake:
Source/WebCore:
No new tests needed.
- PlatformMac.cmake:
Source/WebKitLegacy:
- PlatformMac.cmake:
- PlatformWin.cmake:
Source/WTF:
- wtf/PlatformGTK.cmake:
- wtf/PlatformMac.cmake:
- 10:19 PM Changeset in webkit [219601] by
-
- 4 edits1 add in trunk/LayoutTests
Unreviewed GTK test gardening
- TestExpectations: Skip tests that are clearly intended to have Skip expectations.
- platform/gtk/TestExpectations:
- platform/gtk/crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt:
- 9:06 PM Changeset in webkit [219600] by
-
- 9 edits1 move in trunk/Source
Move USE_AVFOUNDATION definition on Windows to wtf/Platform.h
https://bugs.webkit.org/show_bug.cgi?id=174356
Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-07-17
Reviewed by Brent Fulgham.
Move the definition of USE_AVFOUNDATION on Windows to wtf/platform.h
Source/WebCore:
Rename WebCoreHeaderDetection.h to AVFoundationHeaderDetection.h
- AVFoundationSupport.py: Moved to Source/WTF/AVFoundationSupport.py.
- DerivedSources.make:
- PlatformWin.cmake:
- config.h:
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
- platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
Source/WTF:
Add a custom command to generate AVFoundationHeaderDetection.h, which
is renamed from WebCoreHeaderDetection.h
- AVFoundationSupport.py: Moved from Source/WebCore/AVFoundationSupport.py.
- wtf/Platform.h:
- wtf/PlatformWin.cmake:
- 8:52 PM Changeset in webkit [219599] by
-
- 15 edits1 add in trunk/Source
[WebIDL] Remove custom bindings that require non-caching JS strings
https://bugs.webkit.org/show_bug.cgi?id=174552
Patch by Sam Weinig <sam@webkit.org> on 2017-07-17
Reviewed by Darin Adler.
Source/WebCore:
Adds two new types, UncachedString and OwnedString (both of which
are simple structs that wrap a String) to communicate to the bindings
layer which function to use when converting to a JS string.
- bindings/IDLTypes.h:
(WebCore::IDLString::isNullValue):
Add overloads of isNullValue for UncachedString and OwnedString.
- bindings/js/JSDOMConvertStrings.h:
(WebCore::JSConverter<IDLDOMString>::convert):
(WebCore::JSConverter<IDLByteString>::convert):
(WebCore::JSConverter<IDLUSVString>::convert):
Add overloads of convert for UncachedString that uses JSC::jsString
and for OwnedString that uses JSC::jsOwnedString.
- bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::toDataURL): Deleted.
Remove custom binding for toDataURL.
- bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::retrieveResponse):
(WebCore::JSXMLHttpRequest::responseText): Deleted.
Remove custom binding for responseText. Replace the caller of the
binding function with a simple conversion that will do the same thing.
- bindings/js/StringAdaptors.h: Added.
Add UncachedString and OwnedString adaptors.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toDataURL):
Move quality conversion here, matching toBlob and the spec. Return a UncachedString
to instruct the bindings to use JSC::jsString and not JSC::jsStringWithCache.
(WebCore::HTMLCanvasElement::toBlob):
Use asNumber() rather than toNumber(), since we just checked that it is a number.
- html/HTMLCanvasElement.h:
Update header to account for returning an UncachedString.
- html/HTMLCanvasElement.idl:
Remove [Custom] and make the signature of toDataURL match the spec (and what we have been doing).
- inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::requestContent):
Update to account for UncachedString.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseText):
- xml/XMLHttpRequest.h:
Update responseText to return OwnedString. OwnedString instruct the bindings to
use JSC::jsOwnedString and not JSC::jsStringWithCache.
- xml/XMLHttpRequest.idl:
Remove [CustomGetter].
Source/WebKitLegacy/mac:
- DOM/DOMHTMLCanvasElement.mm:
(-[DOMHTMLCanvasElement toDataURL:]):
Update to account for implementation now returning an UncachedString.
- 8:35 PM Changeset in webkit [219598] by
-
- 5 edits9 copies5 moves8 adds5 deletes in trunk/LayoutTests/imported/w3c
Update WebIDL web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=174603
Reviewed by Sam Weinig.
Update WebIDL web-platform-tests from upstream 4c1301113.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants-expected.txt.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.html.
(test.):
(test):
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants-expected.txt.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-and-prototype.any-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-and-prototype.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-and-prototype.any.js: Added.
(test):
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-and-prototype.any.worker-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-and-prototype.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-expected.txt.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html.
(test):
(forEach):
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-expected.txt.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.js: Added.
(test):
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.worker-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-custom-bindings.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object-expected.txt: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.html: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.js: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker-expected.txt: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions.html:
- web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/w3c-import.log:
- web-platform-tests/WebIDL/ecmascript-binding/legacy-platform-object-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/legacy-platform-object.html: Added.
- web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log:
- 7:43 PM Changeset in webkit [219597] by
-
- 13 edits in trunk/Source
Cleanup: Use OptionSet to represent marker types
https://bugs.webkit.org/show_bug.cgi?id=174594
Reviewed by Darin Adler.
Remove class DocumentMarker::MarkerTypes that duplicates most of functionality of OptionSet
and use OptionSet directly to represent a set of marker types.
No functionality changed. So, no new tests.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::updateLayout):
- dom/DocumentMarker.h:
(WebCore::DocumentMarker::MarkerTypes::MarkerTypes): Deleted.
(WebCore::DocumentMarker::MarkerTypes::contains): Deleted.
(WebCore::DocumentMarker::MarkerTypes::intersects): Deleted.
(WebCore::DocumentMarker::MarkerTypes::operator==): Deleted.
(WebCore::DocumentMarker::MarkerTypes::add): Deleted.
(WebCore::DocumentMarker::MarkerTypes::remove): Deleted.
(WebCore::DocumentMarker::AllMarkers::AllMarkers): Deleted.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::possiblyHasMarkers):
(WebCore::DocumentMarkerController::detach):
(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::addMarker):
(WebCore::DocumentMarkerController::copyMarkers):
(WebCore::DocumentMarkerController::markersFor):
(WebCore::DocumentMarkerController::markersInRange):
(WebCore::DocumentMarkerController::removeMarkersFromList):
(WebCore::DocumentMarkerController::repaintMarkers):
(WebCore::DocumentMarkerController::shiftMarkers):
(DocumentMarkerController::setMarkersActive):
(DocumentMarkerController::hasMarkers):
(DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
Update code as needed.
- dom/DocumentMarkerController.h:
(WebCore::DocumentMarkerController::hasMarkers):
Update code as needed.
- editing/AlternativeTextController.cpp:
(WebCore::markerTypesForAutocorrection):
(WebCore::markerTypesForReplacement):
(WebCore::markerTypesForAppliedDictationAlternative):
Marked as inline and returns an OptionSet<DocumentMarker::MarkerType>. It is unnecessary to use NeverDestroyed
in these functions as constructing an OptionSet and copying/moving it is very efficient. Such operations are
effectively equivalent to an integral assignment and copy of an integral value, respectively.
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
(WebCore::AlternativeTextController::markCorrection):
Update code as needed.
- editing/AlternativeTextController.h: While I am here, remove some unnecessary #includes and group
forward declarations of structs.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Update code as needed.
- editing/Editor.cpp:
(WebCore::Editor::updateMarkersForWordsAffectedByEditing): Ditto.
- editing/SpellChecker.cpp:
(WebCore::SpellChecker::didCheckSucceed): Ditto.
- page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot): Ditto.
- testing/Internals.cpp:
(WebCore::markerTypesFrom): Ditto.
(WebCore::Internals::markerCountForNode): Ditto.
(WebCore::Internals::markerAt): Ditto.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition enclosingRangeWithDictationPhraseAlternatives:]): Update code as needed.
(-[WebVisiblePosition enclosingRangeWithCorrectionIndicator]): Ditto.
- 7:00 PM Changeset in webkit [219596] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: overlay page highlight doesn't disappear when a page is constantly updating
https://bugs.webkit.org/show_bug.cgi?id=174468
Reviewed by Simon Fraser.
Do not allow the PageOverlay to start another fade animation of the same type if one has
already started. As an example, if the PageOverlay is fading out, startFadeOutAnimation
should just return.
- page/PageOverlay.cpp:
(WebCore::PageOverlay::startFadeInAnimation):
(WebCore::PageOverlay::startFadeOutAnimation):
- 6:53 PM Changeset in webkit [219595] by
-
- 190 edits in trunk/Source
Improve use of NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=174348
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- heap/MachineStackMarker.cpp:
- wasm/WasmMemory.cpp:
Removed unneeded includes of NeverDestroyed.h in files that do not make use
of NeverDestroyed.
Source/WebCore:
- Modules/encryptedmedia/MediaKeySession.cpp: Removed unneeded include of
NeverDestroyed.h.
- Modules/encryptedmedia/legacy/LegacyCDM.cpp:
(WebCore::installedCDMFactories): Use makeNeverDestroyed and a lambda rather
than a separate boolean for initialization.
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:
(WebCore::clearKeyVM): Removed unneeded use of NeverDestroyed to hold a
RefPtr. Simple to just use leakRef instead.
- Modules/gamepad/GamepadManager.cpp: Added an include of NeverDestroyed.h.
- Modules/indexeddb/IDBTransaction.cpp: Removed unneeded include of
NeverDestroyed.h.
- Modules/indexeddb/server/MemoryObjectStore.cpp: Ditto.
- Modules/mediasession/MediaSessionManager.cpp: Moved include of
NeverDestroyed.h here ...
- Modules/mediasession/MediaSessionManager.h: ... from here.
- Modules/mediasource/MediaSourceRegistry.cpp: Moved include of
NeverDestroyed.h here ...
- Modules/mediasource/MediaSourceRegistry.h: ... from here.
- Modules/mediasource/SourceBuffer.cpp: Removed unneeded include of
NeverDestroyed.h.
- Modules/plugins/QuickTimePluginReplacement.h: Initialize
m_scriptObject in the class definition.
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::supportsMimeType): Use
makeNeverDestroyed and the HashSet constructor instead of a loop.
(WebCore::QuickTimePluginReplacement::supportsFileExtension): Ditto.
(WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Did a
slight cleanup of the initializers.
(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Added
a FIXME; unclear why there is code here at all.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole): Use
makeNeverDestroyed and the Vector constructor instead of using empty
vector checks and Vector::add. Use std::any_of rather than Vector::contains
since we now are matching against pointers.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateEnumerationImplementationContent): Use const NeverDestroyed.
- bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
- bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
Regenerated.
- css/CSSProperty.cpp:
(WebCore::borderDirections): Removed unnecesssary use of NeverDestroyed
for a global object that has a trivial destructor.
- css/ElementRuleCollector.cpp:
(WebCore::leftToRightDeclaration): Removed unneeded use of NeverDestroyed to hold a
Ref. Simple to just use leakRef instead. Also use a lambda instead of an explicit
isEmpty check each time this is called.
(WebCore::rightToLeftDeclaration): Ditto.
- css/makeprop.pl: Removed unneeded include of NeverDestroyed.h and the
uneeded global emptyShorthand. Constructing an empty StylePropertyShorthand
is no less efficient than copying a global empty one was.
- dom/CustomElementReactionQueue.cpp: Added an include of NeverDestroyed.h.
- dom/DOMImplementation.cpp: Removed unneeded include of NeverDestroyed.h.
- dom/InputEvent.cpp: Ditto.
- dom/Microtasks.cpp: Moved include of NeverDestroyed.h here ...
- dom/Microtasks.h: ... from here.
- dom/MutationObserver.cpp: Added an include of NeverDestroyed.h.
- dom/ScopedEventQueue.cpp: Moved include of NeverDestroyed.h here ...
- dom/ScopedEventQueue.h: ... from here. Added Forward.h.
- dom/ScriptElement.cpp:
(WebCore::isLegacySupportedJavaScriptLanguage): Use makeNeverDestroyed
and the HashSet constructor rather than an isEmpty check and a lot of
add function calls. Also removed comments that don't have value any more,
with dubious no longer relevant claims about the behavior of old web browsers.
The function that calls this one already has sufficient comments about why we
hope some day this function can be eliminated.
- dom/SecurityContext.cpp: Removed unneeded include of NeverDestroyed.h.
- dom/make_names.pl:
(printFactoryCppFile): Instead of using a "populate" function, use a function
that creates as HashMap. Then use const auto and makeNeverDestroyed.
(printWrapperFactoryCppFile): Ditto.
- editing/AlternativeTextController.cpp:
(WebCore::markerTypesForAutocorrection): Use makeNeverDestroyed
and the Vector constructor rather than an isEmpty check and a lot of
append function calls.
(WebCore::markerTypesForReplacement): Ditto.
(WebCore::markerTypesForAppliedDictationAlternative): Ditto.
- editing/EditingStyle.cpp:
(WebCore::htmlElementEquivalents): Use const auto, makeNeverDestroyed,
the Vector constructor, and new rather than make_unique. Changed return
type to use const pointers rather than unique_ptr with non-const type.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement): Updated
for the above change to htmlElementEquivalents.
(WebCore::htmlAttributeEquivalents): Same approach as above.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes): Ditto.
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Take
references instead of pointers.
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement): Updated
for the above.
- editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock): Use const auto, makeNeverDestroyed,
and the HashSet constructor rather than isEmpty and a lot of calls to add.
- editing/RemoveFormatCommand.cpp:
(WebCore::isElementForRemoveFormatCommand): Ditto.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::isProhibitedParagraphChild): Use const auto, makeNeverDestroyed,
and a lambda, rather than isEmpty and a lot of calls to add.
- html/Autofill.cpp:
(WebCore::fieldNameMap): Changed return type to be const. Use const auto,
makeNeverDestroyed, a lambda, and an array of values rather than isEmpty
and a lot of calls to add. Stopped doing the ConstructFromLiteral
optimization here. (Easy to add it back if that is a mistake.)
- html/HTMLObjectElement.cpp:
(WebCore::isRecognizedTagName): Use const auto, makeNeverDestroyed, and
a lambda rather than isEmpty.
- html/HTMLStyleElement.cpp: Added include of NeverDestroyed.h.
- html/HTMLVideoElement.cpp: Removed uneeded include of NeverDestroyed.h.
- html/InputType.cpp:
(WebCore::createInputTypeFactoryMap): Replaced the populate function
with this create function.
(WebCore::InputType::create): Use const auto and makeNeverDestroyed
istead of isEmpty. Also put the map right where it is used so it's
not initialized in code path where not needed.
- html/parser/HTMLParserIdioms.cpp: Removed uneeded include of
NeverDestroyed.h.
- inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::networkStateChanged):
Merged into a single line.
- loader/ContentFilter.cpp:
(WebCore::blockedPageURL): Use const auto and makeNeverDestroyed
rather than std::call_once. Since this is a URL and has a non-thread-safe
reference count, this was not thread safe before, so no need to use the
more roundabout and less efficient idiom for its thread safety.
- loader/CrossOriginAccessControl.cpp:
(WebCore::isOnAccessControlResponseHeaderWhitelist): Deleted.
- loader/CrossOriginAccessControl.h: Deleted unused function
isOnAccessControlResponseHeaderWhitelist.
- loader/EmptyClients.cpp: Use leakRef instead of NeverDestroyed<Ref>.
- loader/appcache/ApplicationCacheStorage.cpp: Removed unneeded include of
NeverDestroyed.h.
- page/CaptionUserPreferences.cpp: Ditto.
- page/DebugPageOverlays.cpp:
(WebCore::touchEventRegionColors): Changed the return type to const, since
the callers do not modify the map. Use const auto, makeNeverDestroyed, and
a lambda rather than isEmpty and repeated calls to add.
- page/MainFrame.cpp: Removed unneeded include of NeverDestroyed.h.
- page/MemoryRelease.cpp:
(WebCore::releaseMemory): Use a function directly instead of calling it
inside a lambda.
- page/NavigatorBase.cpp:
(WebCore::NavigatorBase::onLine): Updated to call
NetworkStateNotifier::singleton.
- page/Page.cpp:
(WebCore::allPages): Made this a function instead of a global to use the
normal idiom for such globals.
(WebCore::Page::forEachPage): Updated for change to allPages.
(WebCore::networkStateChanged): Ditto. Also removed a bit of unnecessary
churn by using const AtomicString& instead of AtomicString.
(WebCore::Page::Page): Moved initialization of most data members to the
class definition. Removed initialiation of allPages. Updated the use of
NetworkStateNotifier for its new slightly changed interface.
(WebCore::Page::~Page): Updated for change to allPages.
(WebCore::Page::clearPreviousItemFromAllPages): Ditto.
(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment): Ditto.
(WebCore::Page::refreshPlugins): Ditto.
- page/Page.h: Moved initialization of most data members here.
- page/PerformanceUserTiming.cpp: Removed many unneded includes.
(WebCore::restrictedMarkFunction): Use const auto, makeNeverDestroyed, and
a lambda instead of isEmpty. Also use an array rather than std::array and
got rid fo the unneeded use of anonymous namespace since this is fine in
the top level WebCore namespace.
(WebCore::clearPerformanceEntries): Tweaked coding style.
(WebCore::UserTiming::mark): Ditto.
(WebCore::UserTiming::findExistingMarkStartTime): Got rid of double hash
table lookup by using find instead of using contains followed by get.
removed unneeded explicit cast to double. Tweaked coding style.
(WebCore::convertToEntrySequence): Tweaked coding style.
(WebCore::getEntrySequenceByName): Deleted.
(WebCore::UserTiming::getMarks): Call get directly instead of getEntrySequenceByName.
(WebCore::UserTiming::getMeasures): Ditto.
- page/RuntimeEnabledFeatures.cpp: Moved include of NeverDestroyed.h here ...
- page/RuntimeEnabledFeatures.h: ... from here. Added Forward.h and Noncopyable.h.
- platform/LocalizedStrings.cpp: Removed unneeded include of NeverDestroyed.h.
- platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes): Added a missing const for a global
constant array.
(WebCore::initializeSupportedJavaScriptMIMETypes): Ditto.
(WebCore::initializeSupportedNonImageMimeTypes): Ditto.
(WebCore::typesForCommonExtension): Replaced the old mediaMIMETypeMap function
with this one. Moved the common media types array here since it's only used here.
Use const auto, makeNeverDestroyed, and a lambda instead of using an isEmpty check.
Iterate the array using a mdoern for loop. Use HashMap::ensure to avoid the
double hashing that the old code was doing. And moved the code to find an entry
in the map in here from the client functions.
(WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Updated to use the
typesForCommonExtension, and changed logic to use this first, and only call
getMIMETypeForExtension for extensions not in the map. This gives the same
result but should be slightly more efficient.
(WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): Updated to use the
typesForCommonExtension function. Comment about strategy is now in there.
(WebCore::initializeUnsupportedTextMIMETypes): Added a missing const for a global
constant array. Also started using ASCIILiteral.
- platform/MainThreadSharedTimer.cpp: Moved include of NeverDestroyed.h here ...
- platform/MainThreadSharedTimer.h: ... from here. Added Forward.h.
- platform/SchemeRegistry.cpp:
(WebCore::add): Added helper functions to keep code below simpler.
(WebCore::makeNeverDestroyedSchemeSet): Ditto.
(WebCore::allBuiltinSchemes): Use const auto, makeNeverDestroyed, a lambda,
and the helper functions above, rather than isEmpty.
(WebCore::builtinLocalURLSchemes): Use const auto, makeNeverDestroyed, and
the HashSet constructor instead of isEmpty and add calls. Also changed the
return type to be const.
(WebCore::localURLSchemes): Copy the map using assignment instead of an
isEmpty function and a loop with calls to add.
(WebCore::builtinSecureSchemes): Use const auto, makeNeverDestroyed, and
the Vector constructor rather than isEmpty, repeated calls to append,
and shrinkToFit.
(WebCore::secureSchemes): Use auto and makeNeverDestroyedSchemeSet rather
than isEmpty and repeated calls to add.
(WebCore::builtinSchemesWithUniqueOrigins): More of the same.
(WebCore::schemesWithUniqueOrigins): Ditto.
(WebCore::builtinEmptyDocumentSchemes): Ditto.
(WebCore::emptyDocumentSchemes): Ditto.
(WebCore::schemesForbiddenFromDomainRelaxation): Ditto.
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes): Ditto.
(WebCore::canDisplayOnlyIfCanRequestSchemes): Ditto.
(WebCore::builtinCORSEnabledSchemes): Ditto.
(WebCore::CORSEnabledSchemes): Ditto.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal): Replaced check for
empty string with check for null string, since that's slightly more efficient
for non-null, non-empty strings, and the hash table can handle empty strings
just fine.
(WebCore::SchemeRegistry::registerURLSchemeAsNoAccess): Added null check here.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsDisplayIsolated): Ditto.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsSecure): Ditto.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsEmptyDocument): Ditto.
(WebCore::SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument): Ditto.
(WebCore::SchemeRegistry::setDomainRelaxationForbiddenForURLScheme): Ditto.
(WebCore::SchemeRegistry::isDomainRelaxationForbiddenForURLScheme): Ditto.
(WebCore::SchemeRegistry::canDisplayOnlyIfCanRequest): Ditto.
(WebCore::SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsNotAllowingJavascriptURLs): Ditto.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNotAllowingJavascriptURLs): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing): Ditto.
(WebCore::SchemeRegistry::allowsLocalStorageAccessInPrivateBrowsing): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing): Ditto.
(WebCore::SchemeRegistry::allowsDatabaseAccessInPrivateBrowsing): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsCORSEnabled): Ditto.
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsCORSEnabled): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy): Ditto.
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy): Ditto.
(WebCore::SchemeRegistry::schemeShouldBypassContentSecurityPolicy): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsAlwaysRevalidated): Ditto.
(WebCore::SchemeRegistry::shouldAlwaysRevalidateURLScheme): Ditto.
(WebCore::SchemeRegistry::registerURLSchemeAsCachePartitioned): Ditto.
(WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme): Ditto.
(WebCore::SchemeRegistry::isUserExtensionScheme): Tweaked #if a bit.
(WebCore::SchemeRegistry::isBuiltinScheme): Added null check.
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::observedEventNames): Use const auto,
makeNeverDestroyed, and the Vector constructor rather than a call to size
and then append eacn time this funciton is called.
- platform/gamepad/cocoa/GameControllerGamepadProvider.h: Moved include of
NeverDestroyed.h from here ...
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm: ... to here.
- platform/gamepad/mac/HIDGamepadProvider.cpp: Moved include of
NeverDestroyed.h here ...
- platform/gamepad/mac/HIDGamepadProvider.h: ... from here.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::hasValidAverageCharWidth): Use const auto,
makeNeverDestroyed, and the HashSet constructor.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::transformColorSpace): Removed unneeded use of
NeverDestroyed<Vector<int>> here, instead using const std::array.
- platform/graphics/ImageBuffer.h: Changed platformTransformColorSpace to take
const std::array<uint8_t, 256>& instead of const Vector<int>&, since the whole
pointer of the argument is that it's a table to map bytes onto other bytes.
- platform/graphics/MediaPlaybackTarget.h: Removed unneeded include of
NeverDestroyed.h, unneeded unused noMediaPlaybackTargetContext function,
and unneeded include of MediaPlaybackTargetContext.h, forward declaring instead.
Made most functions in this class pure virtual instead of having default
implementations.
- platform/graphics/avfoundation/MediaPlaybackTargetMac.h: Added include
of MediaPlaybackTargetContext.h now that it was removed above.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList): Use const auto,
makeNeverDestroyed, and the HashSet constructor.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Reversed the sense
of the boolean logic here to make this simpler and easier to read.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::getSupportedTypes): Changed
the implementation here, which empties out the passed in hash set, to use
the clear function rather than assignment from a global empty hash set. Added
a FIXME because it seems peculiar that this would be considered OK.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsType): Used ? : to make
this a little more terse; I think it's clearer.
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::platformTransformColorSpace): Updated for change to
argument type.
- platform/graphics/cg/ImageDecoderCG.cpp: Removed unneeded include of
NeverDestroyed.h.
(WebCore::appendImageSourceOption): Streamlined code using auto with
adoptCF; there is no need to write out the type of the RetainPtr.
(WebCore::imageSourceOptions): Instead of NeverDestroyed<RetainPtr>, just use
const auto and leakRef.
(WebCore::imageSourceAsyncOptions): Ditto.
- platform/graphics/gtk/GdkCairoUtilities.cpp:
(WebCore::getDefaultCairoFontOptions): Instead of using LazyNeverDestroyed
on a pointer, just use a global pointer. There is no need to use any kind
of NeverDestroyed on a type with a trivial destructor such as a pointer.
- platform/graphics/ios/FontCacheIOS.mm:
(WebCore::platformFontWithFamilySpecialCase): Instead of using
NeverDestroyed<RetainPtr> just use a raw pointer global.
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::platformFontWithFamilySpecialCase): Ditto.
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::createFileTypesSet): Return the HashSet instead of adding to it.
Use Objective-C for/in syntax for an NSArray, not C++ for syntax, although
it seems the C++ syntax was working fine.
(WebCore::mimeCommonTypesCache): Fixed return type so we won't copy the
HashMap every time this function is called. Use const auto and makeNeverDestroyed
instead of using a boolean to do one time initialization.
(WebCore::mimeModernTypesCache): Ditto.
(WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks): Marked a
constant array const.
- platform/ios/Device.cpp:
(WebCore::deviceClass): Use a lambda to initialize a variable here instead
of using std::call_once. This function does not need to be thread safe.
(WebCore::deviceName): Use const NeverDestroyed instead of LazyNeverDestroyed
and std::call_once. This function does not need to be thread safe.
- platform/ios/DragImageIOS.mm: Make defaultLinkIndicatorOptions be a
constant instead of a variable.
(WebCore::cascadeForSystemFont): Added helper function.
(WebCore::createDragImageForLink): Use const auto and makeNeverDestroyed
instead of LazyNeverDestroyed and dispatch_once. This code does not need
to be thread safe since its arguments include, for example, a DOM element.
- platform/ios/LegacyTileLayerPool.h: Removed unneeded include of
NeverDestroyed.h.
- platform/ios/QuickLook.mm:
(WebCore::QLPreviewGetSupportedMIMETypesSet): Use a global raw pointer
instead of NeverDestroyed<RetainPtr<NSSet>>.
(WebCore::createQLPreviewProtocol): Deleted.
(WebCore::QLPreviewProtocol): Use a global raw pointer instead of
a NeverDestroyed<Vector<char>>. It's cleaner to use fastStrdup instead
of appending to an array, and less wasteful of memory too.
- platform/ios/WebCoreMotionManager.mm: Removed unneeded include of
NeverDestroyed.h.
- platform/ios/WebSQLiteDatabaseTrackerClient.h: Ditto.
- platform/mac/DragImageMac.mm: Ditto.
- platform/mediastream/CaptureDeviceManager.cpp: Ditto.
- platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: Ditto.
- platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::audioDevices): Use auto,
makeNeverDestroyed, and a lambda instead of checking size each time.
(WebCore::MockRealtimeMediaSource::videoDevices): Ditto.
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::mimeTypeCache): Use const auto, makeNeverDestroyed, and the
HashSet constructor instead of an explicit boolean to initialize.
- platform/network/BlobRegistryImpl.cpp:
(WebCore::blobUtilityQueue): Use a global with a raw reference instead
of a NeverDestroyed<Ref>.
- platform/network/NetworkStateNotifier.cpp:
(WebCore::NetworkStateNotifier::singleton): Renamed this from
networkStateNotifier. We must have missed this when we changed to use the
singleton idiom consistently. Also changed to use normal NeverDestroyed
rather than using LazyNeverDestroyed and call_once, because this is not
used from multiple threads and has no special thread safety requirements.
(WebCore::NetworkStateNotifier::NetworkStateNotifier): Moved the constructor
here and construct the timer. Before the timer was used only on the Mac
platform but now it is there for all platforms.
(WebCore::NetworkStateNotifier::onLine): Moved function here from the header.
It's a littlel less trivial than before because it now triggers a call to
updateState as needed.
(WebCore::NetworkStateNotifier::addListener): Renamed from
addNetworkStateChangeListener since there is only one kind of listener and
the old name was too wordy. Changed to call the new startObserving function,
and guaranteed to call it onlh once. The platform-specific logic for iOS is
now inside the iOS version of that function instead of here.
(WebCore::NetworkStateNotifier::updateState): Moved here now that it is the
same for all platforms. The actual state updating is done in a function named
updateStateWithoutNotifying, which is implemented for each platform.
(WebCore::NetworkStateNotifier::updateStateSoon): New function which takes
advantage of the timer to coalesce network state updates.
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying): Empty stub
version of this function.
(WebCore::NetworkStateNotifier::startObserving): Ditto.
(WebCore::NetworkStateNotifier::notifyNetworkStateChange): Deleted. Code from
this has moved into updateState.
- platform/network/NetworkStateNotifier.h: Greatly cut down what part of this
class is platform-specific.
- platform/network/ios/NetworkStateNotifierIOS.mm:
(-[WebNetworkStateObserver initWithBlock:]): Simplified this class so it
takes a block, rather than using a pointer to the C++ notifier and doing
WebThreadRun.
(-[WebNetworkStateObserver dealloc]): Ditto.
(-[WebNetworkStateObserver networkStateChanged:]): Ditto.
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):
This now calls isNetworkReachable.
(WebCore::NetworkStateNotifier::startObserving): Check the
Settings::shouldOptOutOfNetworkStateObservation function, and if it's OK
to observe, then create the observer. This code now takes care of the
WebThreadRun and calls updateStateSoon.
(WebCore::NetworkStateNotifier::NetworkStateNotifier): Deleted. The
constructor is now platform independent.
(WebCore::NetworkStateNotifier::~NetworkStateNotifier): Deleted. This
object is never destroyed so we should not write a destructor for it.
(WebCore::NetworkStateNotifier::registerObserverIfNecessary): Deleted.
Replaced by startObserving.
(WebCore::NetworkStateNotifier::onLine): Deleted. This function is now
platform-independent.
(WebCore::setOnLine): Deleted. The logic from this is now in
updateState and updateStateWithoutNotifying.
- platform/network/mac/NetworkStateNotifierMac.cpp:
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying): Renamed
this from updateState and tightened up the code a bit. Also changed
to not assume anything. If there is an error, we leave m_isOnLine alone.
Default behavior is now in the platform-independent code, and the default
is to treat things as on-line if updateStateWithoutNotifying was called
and it was never able to update the state even once.
(WebCore::NetworkStateNotifier::startObserving): Moved most of the code
from the constructor into this function.
(WebCore::NetworkStateNotifier::dynamicStoreCallback): Deleted. This is
now a lambda inside startObserving.
(WebCore::NetworkStateNotifier::networkStateChangeTimerFired): Deleted.
This function is now platform-independent and is named updateState.
- platform/network/win/NetworkStateNotifierWin.cpp:
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying): Renamed
from updateState and tightened the code up a bit. Also changed
to not assume anything. If there is an error, we leave m_isOnLine alone.
Default behavior is now in the platform-independent code, and the default
is to treat things as on-line if updateStateWithoutNotifying was called
and it was never able to update the state even once.
(WebCore::NetworkStateNotifier::addressChanged): Deleted.
This function is now platform-independent and is named updateState.
(WebCore::NetworkStateNotifier::addressChangeCallback): Renamed from
addrChangeCallback. Simplified by using the singleton function instead
of relying on the context pointer.
(WebCore::NetworkStateNotifier::startObserving): Moved most of the code
from the constructor here.
- platform/text/LocaleToScriptMappingDefault.cpp:
(WebCore::scriptNameToCode): Use makeNeverDestroyed.
(WebCore::localeToScriptCodeForFontSelection): Ditto.
- platform/text/ios/LocalizedDateCache.h: Moved include of
NeverDestroyed.h from here ...
- platform/text/ios/LocalizedDateCache.mm: ... to here.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderTheme::singleton): Use a theme that is never destroyed
rather than Ref that is never destroyed.
- platform/wpe/RenderThemeWPE.h: Use friend NeverDestroyed rather than
a create function since RenderTheme is no longer reference counted.
- rendering/RenderTheme.h: Made RenderTheme no longer reference counted.
- rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::create): Deleted.
(WebCore::RenderTheme::singleton): Use a theme that is never destroyed
rather than Ref that is never destroyed.
- rendering/RenderThemeGtk.h: Use friend NeverDestroyed rather than
a create function since RenderTheme is no longer reference counted.
- rendering/RenderThemeIOS.h: Ditto.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::create): Deleted.
(WebCore::RenderTheme::singleton): Use a theme that is never destroyed
rather than Ref that is never destroyed.
- rendering/RenderThemeMac.h: Use friend NeverDestroyed rather than
a create function since RenderTheme is no longer reference counted.
Also marked a lot of functions final rather than override and initialized
data members in the class deifnition.
- rendering/RenderThemeMac.mm: Moved some SPI interfaces to the top of the
file. They should really go into SPI headers.
(-[WebCoreRenderThemeNotificationObserver init]): Removed the theme argument
here because the theme is a singleton and we don't need a pointer to it.
Add the observer here instead of doing it in the caller.
(-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]): Call
platformColorsDidChange through the singleton rather than using a pointer.
(-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
Tightened up the code a bit by using CFAutorelease instead of using a
combination of NSMakeCollectable, autorelease, and a typecast to accomplish
the same thing.
(WebCore::RenderTheme::singleton): Use a theme that is never destroyed
rather than Ref that is never destroyed.
(WebCore::RenderThemeMac::create): Deleted.
(WebCore::RenderThemeMac::RenderThemeMac): Moved initialization into the
class definition and observing into the WebCoreRenderThemeNotificationObserver
init function.
(WebCore::RenderThemeMac::~RenderThemeMac): Deleted. No need for this since
the object will never be destroyed.
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType):
Removed an unnecessary conversion from C string literal to WTF::String and
then to NSString. Instead, just use an NSString literal.
- rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::create): Deleted.
(WebCore::RenderTheme::singleton): Use a theme that is never destroyed
rather than Ref that is never destroyed.
- rendering/RenderThemeWin.h: Use friend NeverDestroyed rather than
a create function since RenderTheme is no longer reference counted.
- rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies): Moved a global into
the code where it is used.
- svg/SVGAnimatedLength.cpp: Removed unneeded include of NeverDestroyed.h.
- svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isSupportedAttribute): Use const auto,
makeNeverDestroyed, a lambda, and the new HashSet::add overload instead of
an isEmpty check and lots of separate add function calls.
- svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::isSupportedAttribute): Ditto.
- svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute): Ditto.
- svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::isSupportedAttribute): Ditto.
- svg/SVGElement.cpp:
(WebCore::createAttributeNameToCSSPropertyIDMap): Replaced the populate
function with this create function.
(WebCore::createAttributeNameToAnimatedPropertyTypeMap): Ditto.
(WebCore::attributeNameToAnimatedPropertyTypeMap): Changed return type to
const reference. Use const auto and makeNeverDestroyed instead of using
isEmpty and a populate function.
(WebCore::createCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
More of the same.
(WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Ditto.
(WebCore::SVGElement::childShouldCreateRenderer): Use an array instead of
a HashSet since we are checking against only 3 or 4 values.
(WebCore::addQualifiedName): Deleted.
(WebCore::SVGElement::animatableAttributeForName): Use const auto,
makeNeverDestroyed, and a lambda to efficiently build the map in this function.
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName): Use const auto and
makeNeverDestroyed instead of using isEmpty and a populate function.
- svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::isSupportedAttribute): Use const auto,
makeNeverDestroyed, a lambda, and the new HashSet::add overload instead of
an isEmpty check and lots of separate add function calls.
- svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute): Ditto.
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::isSupportedAttribute): Ditto.
- svg/SVGGElement.cpp:
(WebCore::SVGGElement::isSupportedAttribute): Ditto.
- svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::isSupportedAttribute): Ditto.
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::isSupportedAttribute): Ditto.
- svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::isSupportedAttribute): Ditto.
- svg/SVGLangSpace.cpp:
(WebCore::addWithAndWithoutXMLPrefix): Added helper. Uses xmlAtom instead
of making our own NeverDestroyed local xmlPrefix.
(WebCore::SVGLangSpace::addSupportedAttributes): Rewrote to use helper.
- svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::isSupportedAttribute): Use const auto,
makeNeverDestroyed, a lambda, and the new HashSet::add overload instead of
an isEmpty check and lots of separate add function calls.
- svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::isSupportedAttribute): Ditto.
- svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::isSupportedAttribute): Ditto.
- svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::isSupportedAttribute): Ditto.
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::isSupportedAttribute): Ditto.
- svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::isSupportedAttribute): Ditto.
- svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::isSupportedAttribute): Ditto.
- svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::isSupportedAttribute): Ditto.
- svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::isSupportedAttribute): Ditto.
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::isSupportedAttribute): Ditto.
- testing/MockContentFilterSettings.h: Removed unneeded include of
NeverDestroyed.h.
- testing/MockGamepadProvider.cpp: Moved include of
NeverDestroyed.h here ...
- testing/MockGamepadProvider.h: ... from here.
- testing/MockPreviewLoaderClient.h: Removed unneeded include of
NeverDestroyed.h.
- workers/Worker.cpp:
(WebCore::allWorkers): Changed this from a global to a function.
(WebCore::Worker::networkStateChanged): Updated for above change and
made this a member function.
(WebCore::Worker::Worker): Updated for above change and
change to NetworkStateNotifier.
(WebCore::Worker::~Worker): Ditto.
- workers/Worker.h: Made networkStateChanged a static member instead of
a friend since that is a cleaner way to give it access to private member
functions.
- xml/XPathFunctions.cpp:
(WebCore::XPath::createFunctionMap): Use create instead of populate style.
(WebCore::XPath::Function::create): Use const auto and makeNeverDestroyed
instead of an isEmpty check.
- xml/XPathParser.cpp:
(WebCore::XPath::createAxisNamesMap): Use create instead of populate style.
(WebCore::XPath::parseAxisName): Use const auto and makeNeverDestroyed
instead of an isEmpty check.
Source/WebKit:
- DatabaseProcess/DatabaseProcess.h: Removed unneeded include of
NeverDestroyed.h.
- NetworkProcess/cache/NetworkCacheKey.cpp: Ditto.
- NetworkProcess/capture/NetworkCaptureManager.cpp: Moved include of
NeverDestroyed.h here ...
- NetworkProcess/capture/NetworkCaptureManager.h: ... from here.
- PluginProcess/PluginProcess.cpp: Moved include of NeverDestroyed.h
here ...
- PluginProcess/PluginProcess.h: ... from here.
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(isContainerClass): Removed trivial inefficient use of
LazyNeverDestroyed<HashSet> to check against two classes.
Instead wrote out the boolean expression.
- Shared/mac/SecItemShim.cpp: Removed unneeded include of
NeverDestroyed.h.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize): Call
installMemoryPressureHandler instead of WebMemoryPressureHandler::singleton.
- UIProcess/Gamepad/UIGamepadProvider.h: Removed unneeded include
of NeverDestroyed.h.
- UIProcess/Plugins/PluginProcessManager.cpp: Moved include of
NeverDestroyed.h here ...
- UIProcess/Plugins/PluginProcessManager.h: ... from here.
- UIProcess/WebInspectorProxy.cpp: Removed unneeded include
of NeverDestroyed.h.
- UIProcess/WebPageProxy.h: Added now-needed include of
MediaPlaybackTargetContext.h.
- UIProcess/WebPasteboardProxy.cpp: Moved include of
NeverDestroyed.h here ...
- UIProcess/WebPasteboardProxy.h: ... from here.
- UIProcess/ios/WebMemoryPressureHandlerIOS.h: Removed the
WebMemoryPressureHandler class from this header. Callers don't need to
know if there is a class. They simply indicate when it's time to install
the handler. Another way to put it is that this class had no functions
other than the singleton function.
- UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
(WebKit::installMemoryPressureHandler): Replaced the class with this function.
It creates a dispatch source and then resumes it. To avoid having the source
look like a leak, we keep it in a global variable.
- WebProcess/Gamepad/WebGamepadProvider.h: Include Forward.h instead of
NeverDestroyed.h.
- WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: Moved include of
NeverDestroyed.h here ...
- WebProcess/WebCoreSupport/WebPasteboardOverrides.h: ... from here.
- WebProcess/WebCoreSupport/WebPlatformStrategies.h: Removed unneeded
include of NeverDestroyed.h.
Source/WebKitLegacy:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
Simplify code by using a modern for loop and passing a function without wrapping
it in a lambda.
Source/WebKitLegacy/mac:
- Misc/WebStringTruncator.mm:
(+[WebStringTruncator centerTruncateString:toWidth:]): Replace
NeverDestroyed<RetainPtr> with just an NSFont * global.
- Plugins/Hosted/NetscapePluginHostManager.h: Removed unneeded include of
NeverDestroyed.h.
- Storage/WebDatabaseManager.mm: Ditto.
- WebCoreSupport/WebFrameNetworkingContext.mm: Ditto.
- WebCoreSupport/WebPlatformStrategies.mm: Ditto.
- WebView/WebView.mm: Removed unneeded include of NetworkStateNotifier.h.
(aeDescFromJSValue): Removed double hashing by using the return value from
add rather than calling contains before calling add.
Source/WTF:
- wtf/HashSet.h: Added an overload of HashSet::add that takes an initializer list of
const references. This is handy to add a bunch of values all at once. Later we can
consider optimizing to grow the hash table only once instead of deciding whether to
grow repeatedly as we add each value.
(WTF::copyToVector): Changed to use std::copy, removing 4 of the 6 lines of code here.
- wtf/MemoryPressureHandler.cpp: Include NeverDestroyed.h here ...
- wtf/MemoryPressureHandler.h: ... not here.
- wtf/NeverDestroyed.h: Added the ability to have a const NeverDestroyed.
Added a makeNeverDestroyed function that deduces the type from the argument.
With auto, this can be used to avoid writing out a long type twice.
- wtf/ThreadingPthreads.cpp: Removed unneeded include of NeverDestroyed.h.
- wtf/text/AtomicString.cpp: Ditto.
- 6:45 PM Changeset in webkit [219594] by
-
- 8 edits2 adds in trunk
Page using safe area constant properties jumps to correct layout after resize
https://bugs.webkit.org/show_bug.cgi?id=174598
<rdar://problem/33364275>
Reviewed by Simon Fraser.
Source/WebKit:
Test: fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dynamicViewportSizeUpdate):
Plumb unobscured safe area insets through in the dynamicViewportSizeUpdate,
like we do in VisibleContentRectUpdate (once again sad that these aren't
more similar), so that it will be correct in the during-rotation snapshot,
instead of only becoming correct in the first visible content rect update
post-rotation.
LayoutTests:
- fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation-expected.txt: Added.
- fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html: Added.
Add a test making sure that dynamic-viewport-update-based rotation
updates safe area insets when needed.
- 6:12 PM Changeset in webkit [219593] by
-
- 7 edits in tags/Safari-604.1.32.0.1/Source
Versioning.
- 5:51 PM Changeset in webkit [219592] by
-
- 1 copy in tags/Safari-604.1.32.0.1
New tag.
- 5:25 PM Changeset in webkit [219591] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION(r219298): imported/w3c/IndexedDB-private-browsing/idbfactory_open.html is crashing occassionaly (UniqueIDBDatabase being taken from the IDBServer set twice).
<rdar://problem/33294987> and https://bugs.webkit.org/show_bug.cgi?id=174354
Reviewed by Alex Christensen.
No new tests (Covered by existing tests).
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::postDatabaseTaskReply): Remove a now invalid ASSERT
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose): Add a RELEASE_ASSERT.
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore): Instead of an ad-hoc main thread dispatch, use the "schedule task reply" system
to keep dispatch ordering in tact.
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply): Remove a now invalid ASSERT
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): Only take the owning pointer if the object doesn't already own itself.
- 5:15 PM Changeset in webkit [219590] by
-
- 2 edits in trunk/Tools
Unreviewed, fix the iOS build.
I missed a spot when renaming -synchronouslyLoadHTML: to -synchronouslyLoadHTMLString:.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- 4:56 PM Changeset in webkit [219589] by
-
- 7 edits in branches/safari-604-branch/Source
Versioning.
- 4:56 PM Changeset in webkit [219588] by
-
- 3 edits in trunk/Source/WebKit
UserMediaPermissionRequestManagerProxy should not use WebCore::Timer
https://bugs.webkit.org/show_bug.cgi?id=174599
<rdar://problem/33362600>
Reviewed by Tim Horton.
UserMediaPermissionRequestManagerProxy should not use WebCore::Timer since it runs in the
UIProcess. Switch to using RunLoop::Timer instead.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- 4:55 PM Changeset in webkit [219587] by
-
- 3 edits in trunk/Source/WebKit
NETWORK_SESSION does not need didReceiveAuthenticationChallenge(uint64_t, uint64_t, const AuthenticationChallenge&)
https://bugs.webkit.org/show_bug.cgi?id=174595
Reviewed by Alex Christensen.
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
- Shared/Authentication/AuthenticationManager.h:
- 4:49 PM Changeset in webkit [219586] by
-
- 2 edits in trunk/LayoutTests
Fixed test expectations after r219518.
https://bugs.webkit.org/show_bug.cgi?id=174472
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:17 PM Changeset in webkit [219585] by
-
- 14 edits1 add in trunk
[iOS DnD] Web process uses too much memory when beginning a drag on a very large image
https://bugs.webkit.org/show_bug.cgi?id=174585
<rdar://problem/33302541>
Reviewed by Tim Horton.
Source/WebCore:
Currently, attempting to drag a very large image fails, either due to us telling CoreGraphics to create an image
buffer that is too large, or because the web process exceeds its memory limit and gets jetsamed. There are two
places where we can optimize our memory use during the drag initialization sequence, and this patch improves
both.
First, on iOS, we attempt to encode and send over a WebCore::Image in the PasteboardImage when writing to the
item providers upon starting a drag. Currently, this Image is only used in the drag and drop codepath, in
PlatformPasteboard::writeObjectRepresentations, to grab the size of the image being written for the purpose of
specifying estimated display size. Serializing and deserializing an Image calls into Image::nativeImage, which
attempts to draw the contents of the image into a buffer so that it can be shipped across to the UI process.
Instead, we can simply compute the size in the web process while we already have the Image, and simply send that
across. For copy/paste, this doesn't result in any behavior change, since we don't use the PasteboardImage's
image in the first place.
Secondly, when starting a drag, we try to allocate create an image buffer the size of the WebCore::Image for the
purpose of generating the drag preview. Instead, this patch establishes a limit on the size of this drag preview
image, such that if the Image's size is larger, we'll scale down the drag preview image to be the maximum
allowed size.
Test: DataInteractionTests.CanStartDragOnEnormousImage.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::writeImageToPasteboard):
- platform/Pasteboard.h:
- platform/graphics/GeometryUtilities.cpp:
(WebCore::sizeWithAreaAndAspectRatio):
Introduce a new helper function to compute a size with the given aspect ratio and area.
- platform/graphics/GeometryUtilities.h:
- platform/ios/DragImageIOS.mm:
(WebCore::createDragImageFromImage):
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::writeObjectRepresentations):
Source/WebKit:
Add IPC support for serializing/deserializing the size of an image written to the pasteboard. See WebCore
ChangeLogs for more details.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PasteboardImage>::encode):
(IPC::ArgumentCoder<PasteboardImage>::decode):
Tools:
Adds a new test verifying that we don't try to allocate any image buffer equal to the true size of the image
being dragged when initiating a drag.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/enormous.svg: Added.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.h:
Add a new -synchronouslyLoadHTMLString: helper that works like -synchronouslyLoadTestPage:, but takes markup.
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView synchronouslyLoadHTMLString:]):
- 4:12 PM Changeset in webkit [219584] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed attempt to fix Mac cmake build
- PlatformMac.cmake: Remove reference to file which is gone since r219025
- 4:06 PM Changeset in webkit [219583] by
-
- 1 copy in tags/Safari-604.1.32
Tag Safari-604.1.32.
- 3:56 PM Changeset in webkit [219582] by
-
- 5 edits in branches/safari-604-branch/Source
Cherry-pick r219423. rdar://problem/33337335
- 3:56 PM Changeset in webkit [219581] by
-
- 15 edits in branches/safari-604-branch
Cherry-pick r219413. rdar://problem/33337335
- 3:50 PM Changeset in webkit [219580] by
-
- 9 edits in trunk
[CMake] Include most CMake modules from WebKitCommon.cmake
https://bugs.webkit.org/show_bug.cgi?id=174546
Reviewed by Konstantin Tokarev.
.:
- CMakeLists.txt:
- Source/cmake/OptionsCommon.cmake:
- Source/cmake/WebKitCommon.cmake:
- Source/cmake/WebKitMacros.cmake:
Source/WebCore:
- WebCoreMacros.cmake:
Source/WebKit:
- CMakeLists.txt:
- 3:49 PM Changeset in webkit [219579] by
-
- 3 edits2 adds in trunk/LayoutTests
media element handle adding source immediately before src.
https://bugs.webkit.org/show_bug.cgi?id=174284
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-17
Reviewed by David Kilzer.
Adds missing -expected and tests to make sure resulting currentSrc is correct.
- TestExpectations:
- media/video-source-before-src-expected.txt: Added.
- media/video-source-before-src.html:
- 3:42 PM Changeset in webkit [219578] by
-
- 19 edits in trunk
[CMake] Macros in WebKitMacros.cmake should be prefixed with WEBKIT_ namespace
https://bugs.webkit.org/show_bug.cgi?id=174547
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
- CMakeLists.txt:
- shell/CMakeLists.txt:
Source/ThirdParty:
- brotli/CMakeLists.txt:
- woff2/CMakeLists.txt:
- xdgmime/CMakeLists.txt:
Source/WebCore:
- CMakeLists.txt:
- WebCoreMacros.cmake:
Source/WebKit:
- CMakeLists.txt:
Source/WebKitLegacy:
- CMakeLists.txt:
Tools:
- DumpRenderTree/PlatformWin.cmake:
- DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
- 3:40 PM Changeset in webkit [219577] by
-
- 3 edits in trunk/Tools
Update style checker to deal with "final"
https://bugs.webkit.org/show_bug.cgi?id=174528
Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-07-17
Reviewed by Alex Christensen.
check-webkit-style shouldn't complain about an open brace to start a
line after a function definition with "final" or "const final".
- Scripts/webkitpy/style/checkers/cpp.py:
(check_braces):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_brace_at_begin_of_line):
- 2:54 PM Changeset in webkit [219576] by
-
- 3 edits in trunk/LayoutTests
Fixed test expectations after r219518.
https://bugs.webkit.org/show_bug.cgi?id=174472
Unreviewed test gardening.
- platform/ios-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 2:43 PM Changeset in webkit [219575] by
-
- 7 edits in trunk/Source
Versioning.
- 2:32 PM Changeset in webkit [219574] by
-
- 1 copy in branches/safari-604-branch
New branch.
- 1:48 PM Changeset in webkit [219573] by
-
- 9 edits in trunk
Modernize content extension code
https://bugs.webkit.org/show_bug.cgi?id=174588
Reviewed by Sam Weinig.
Source/WebCore:
No change in behavior. Just use Ref instead of RefPtr where possible.
- contentextensions/ContentExtension.cpp:
(WebCore::ContentExtensions::ContentExtension::create):
- contentextensions/ContentExtension.h:
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
- contentextensions/ContentExtensionsBackend.h:
Source/WebKit:
- WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addContentRuleLists):
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter):
(TestWebKitAPI::testRequest):
(TestWebKitAPI::makeBackend):
(TestWebKitAPI::TEST_F):
- 1:39 PM Changeset in webkit [219572] by
-
- 2 edits in trunk/LayoutTests
fast/workers/worker-user-gesture.html crashes on iOS
https://bugs.webkit.org/show_bug.cgi?id=174592
Reviewed by Simon Fraser.
Make sure the tap/click event is fully processed before finishing the test by using
the promise returned by UIHelper.activateAt().
- fast/workers/worker-user-gesture.html:
- 1:24 PM Changeset in webkit [219571] by
-
- 4 edits2 adds in trunk
clientX/clientY on TouchEvent.touches are wrong
https://bugs.webkit.org/show_bug.cgi?id=174561
Source/WebCore:
rdar://problem/33336041
Reviewed by Tim Horton.
Do some refactoring so that WebKitAdditions code that computes Touch coordinates can use
the same code that MouseRelatedEvent uses.
There is no behavior change in this patch, but the test exercises a behavior change in
WebKitAdditions code.
Test: fast/events/touch/ios/touches-client-coords-after-zoom.html
- dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::init):
(WebCore::MouseRelatedEvent::frameViewFromDOMWindow):
(WebCore::MouseRelatedEvent::pagePointToClientPoint):
(WebCore::MouseRelatedEvent::pagePointToAbsolutePoint):
(WebCore::MouseRelatedEvent::initCoordinates):
(WebCore::MouseRelatedEvent::documentToAbsoluteScaleFactor):
(WebCore::MouseRelatedEvent::computePageLocation):
(WebCore::MouseRelatedEvent::locationInRootViewCoordinates):
(WebCore::MouseRelatedEvent::frameView): Deleted.
- dom/MouseRelatedEvent.h:
LayoutTests:
Reviewed by Tim Horton.
- fast/events/touch/ios/touches-client-coords-after-zoom-expected.txt: Added.
- fast/events/touch/ios/touches-client-coords-after-zoom.html: Added.
- 12:54 PM WebKitGTK/DependenciesPolicy edited by
- (diff)
- 12:53 PM Changeset in webkit [219570] by
-
- 1 copy in tags/Safari-604.1.31.3
Tag Safari-604.1.31.3.
- 12:22 PM Changeset in webkit [219569] by
-
- 5 edits in trunk/Source
Add video fullscreen transition logging.
https://bugs.webkit.org/show_bug.cgi?id=174474
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-17
Reviewed by Jer Noble.
Source/WebCore:
No new tests, because there is no functional change.
This change just adds logging.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitEnterFullscreen):
(WebCore::HTMLVideoElement::webkitExitFullscreen):
(WebCore::HTMLVideoElement::webkitSetPresentationMode):
Source/WebKit:
No functional change. Just adds logging.
- Platform/Logging.h:
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didEnterFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
(WebKit::WebVideoFullscreenManager::didCleanupFullscreen):
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced):
- 12:14 PM Changeset in webkit [219568] by
-
- 4 edits2 adds in trunk
click event does not dispatch to parent when child target stops hit testing after mousedown
https://bugs.webkit.org/show_bug.cgi?id=174564
<rdar://problem/33340234>
Reviewed by Simon Fraser.
Source/WebCore:
As per [1], if the mouse down node and the mouse release node differ, then we are supposed to
fire the click event at their common ancestor, if such node exists. This patch implements this
logic. This also aligns our behavior with Blink.
[1] https://w3c.github.io/uievents/#events-mouseevent-event-order
Test: fast/events/mouse-click-different-mouseDown-mouseUp-nodes.html
- page/EventHandler.cpp:
(WebCore::targetNodeForClickEvent):
LayoutTests:
Add layout test coverage.
- fast/events/mouse-click-different-mouseDown-mouseUp-nodes-expected.txt: Added.
- fast/events/mouse-click-different-mouseDown-mouseUp-nodes.html: Added.
- 12:10 PM Changeset in webkit [219567] by
-
- 8 edits2 adds in trunk
WKHTTPCookieStore observing only works on the default cookie store.
<rdar://problem/33330724> and https://bugs.webkit.org/show_bug.cgi?id=174580
Reviewed by Sam Weinig.
Source/WebCore:
Covered by new API tests.
startObservingCookieChanges and stopObservingCookieChanges are passed a NetworkStorageSession to observe.
On Mac/iOS, the passed-in storage session was ignored and the shared cookie storage was assumed.
Let's fix that.
Also, since using NSNotification based observing only works reliably for the shared cookie storage,
switch to direct CFHTTPCookieStorageRef observing.
- WebCore.xcodeproj/project.pbxproj:
- platform/network/NetworkStorageSession.h:
- platform/network/cocoa/CookieStorageObserver.h: Added.
- platform/network/cocoa/CookieStorageObserver.mm: Added.
(WebCore::cookiesChanged):
(WebCore::CookieStorageObserver::create):
(WebCore::CookieStorageObserver::CookieStorageObserver):
(WebCore::CookieStorageObserver::~CookieStorageObserver):
(WebCore::CookieStorageObserver::startObserving):
(WebCore::CookieStorageObserver::stopObserving):
(WebCore::CookieStorageObserver::cookiesDidChange):
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::cookieStorageObserver):
- platform/network/mac/CookieStorageMac.mm:
(WebCore::startObservingCookieChanges):
(WebCore::stopObservingCookieChanges):
(-[WebCookieStorageObjCAdapter notifyCookiesChangedOnMainThread]): Deleted.
(-[WebCookieStorageObjCAdapter cookiesChangedNotificationHandler:]): Deleted.
(-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]): Deleted.
(-[WebCookieStorageObjCAdapter stopListeningForCookieChangeNotifications]): Deleted.
- platform/spi/cf/CFNetworkSPI.h:
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:
(runTestWithWebsiteDataStore): Refactor the cookie observing test out so it can be
called for the default store, a non-persistent store, and a custom store.
(TEST):
- 11:30 AM Changeset in webkit [219566] by
-
- 11 edits2 adds in branches/safari-604.1.31-branch
Cherry-pick r219545. rdar://problem/33221110
- 11:18 AM Changeset in webkit [219565] by
-
- 4 edits1 move in trunk/Source/WebCore
[WebIDL] Rename JSCSSValueCustom.cpp to JSDeprecatedCSSOMValueCustom.cpp to match the underlying class
https://bugs.webkit.org/show_bug.cgi?id=174550
Patch by Sam Weinig <sam@webkit.org> on 2017-07-17
Reviewed by Brady Eidson.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSCSSValueCustom.cpp: Removed.
- bindings/js/JSDeprecatedCSSOMValueCustom.cpp: Renamed from bindings/js/JSCSSValueCustom.cpp.
Rename file and update references.
- 11:10 AM Changeset in webkit [219564] by
-
- 5 edits in trunk
REGRESSION: order of AirPlay and volume controls is inconsistent between <audio> and <video>
https://bugs.webkit.org/show_bug.cgi?id=174581
<rdar://problem/33297519>
Reviewed by Sam Weinig.
Source/WebCore:
We had an inconsistency between <audio> and <video> controls for the relative order of the
volume and AirPlay buttons. The <video> layout was correct (volume first and AirPlay after)
and the <audio> layout now is the same.
- Modules/modern-media-controls/controls/inline-media-controls.js:
(InlineMediaControls.prototype._rightContainerButtons):
LayoutTests:
Update the audio controls layout test to match the new expectations.
- media/modern-media-controls/audio/audio-controls-buttons-expected.txt:
- media/modern-media-controls/audio/audio-controls-buttons.html:
- 11:01 AM WebKitGTK/DependenciesPolicy edited by
- (diff)
- 10:56 AM Changeset in webkit [219563] by
-
- 2 edits in trunk/Tools
[Scripts] Fix missing variable warnings from svn-create-patch when there are untracked files
https://bugs.webkit.org/show_bug.cgi?id=174575
Reviewed by Brady Eidson.
- Scripts/svn-create-patch:
(findModificationType):
Add support for more status codes. C -> conflicted, ? -> untracked, ! -> missing. Give a
default value of "unknown".
(generateFileList):
Handle all the new modification types. Abort on conflicted, missing, and unknown. Log
for untracked, which matches our old behavior.
- 10:14 AM WebKitGTK/2.16.x edited by
- (diff)
- 9:38 AM Changeset in webkit [219562] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove custom defined RELEASE_ASSERT in DFGObjectAllocationSinkingPhase
https://bugs.webkit.org/show_bug.cgi?id=174584
Rubber stamped by Keith Miller.
I used it to diagnose a bug. The bug is now fixed. This custom
RELEASE_ASSERT is no longer needed.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- 8:30 AM Changeset in webkit [219561] by
-
- 2 edits in trunk/Source/JavaScriptCore
-Wformat-truncation warning in ConfigFile.cpp
https://bugs.webkit.org/show_bug.cgi?id=174506
Reviewed by Darin Adler.
Check if the JSC config filename would be truncated due to exceeding max path length. If so,
return ParseError.
- runtime/ConfigFile.cpp:
(JSC::ConfigFile::parse):
- 8:16 AM Changeset in webkit [219560] by
-
- 14 edits in trunk
[CMake] Create targets before WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS is called
https://bugs.webkit.org/show_bug.cgi?id=174557
Reviewed by Michael Catanzaro.
.:
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
- CMakeLists.txt:
Source/WebCore:
No new tests needed.
- CMakeLists.txt:
Source/WebCore/PAL:
No new tests needed.
- pal/CMakeLists.txt:
Source/WebKit:
- CMakeLists.txt:
Source/WebKitLegacy:
- CMakeLists.txt:
Source/WTF:
- wtf/CMakeLists.txt:
- 7:56 AM Changeset in webkit [219559] by
-
- 5 edits1 delete in trunk/Source/WebCore
Unreviewed, rolling out r219556.
Broke build without WebCrypto
Reverted changeset:
"[CMake] Clean up Web Crypto build targets"
https://bugs.webkit.org/show_bug.cgi?id=174253
http://trac.webkit.org/changeset/219556
- 5:55 AM Changeset in webkit [219558] by
-
- 5 edits2 adds in trunk
Media controls draw behind captions
https://bugs.webkit.org/show_bug.cgi?id=174579
<rdar://problem/33295427>
Reviewed by Dean Jackson.
Source/WebCore:
Ensure the captions container is added as a previous sibling to the controls container.
Test: media/modern-media-controls/media-controls/media-controls-display-above-captions.html
- Modules/modern-media-controls/media/media-controller.js:
(MediaController):
LayoutTests:
Add a new test that checks the order in which order the captions and controls containers appear
under the media shadow root.
- media/modern-media-controls/media-controls/media-controls-display-above-captions-expected.txt: Added.
- media/modern-media-controls/media-controls/media-controls-display-above-captions.html: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 5:10 AM Changeset in webkit [219557] by
-
- 2 edits in trunk/Tools
Add some missing build dependencies on Fedora
https://bugs.webkit.org/show_bug.cgi?id=174578
Unreviewed dependency update.
Patch by Charlie Turner <cturner@igalia.com> on 2017-07-17
- gtk/install-dependencies:
- 1:45 AM Changeset in webkit [219556] by
-
- 5 edits1 add in trunk/Source/WebCore
[CMake] Clean up Web Crypto build targets
https://bugs.webkit.org/show_bug.cgi?id=174253
Reviewed by Michael Catanzaro.
Gather the common WebCrypto source files in CMakeLists.txt, including them
in the build unconditionally and instead relying on ENABLE_SUBTLE_CRYPTO
build guards to exclude the code from compilation if the feature is disabled.
PlatformGTK.cmake, PlatformMac.cmake and PlatformWPE.cmake can then remove
duplicated build targets. PlatformMac.cmake still lists all the Mac-specific
Web Crypto build targets.
PlatformGTK.cmake and PlatformWPE.cmake now include GCrypt.cmake if the build
was configured to enable the use of libgcrypt. The new CMake file adds the
libgcrypt-specific Web Crypto build targets to the build if the feature was
enabled, and also sets up libgcrypt include directiories and libraries.
No new tests -- no change in behavior.
- CMakeLists.txt:
- PlatformGTK.cmake:
- PlatformMac.cmake:
- PlatformWPE.cmake:
- platform/GCrypt.cmake: Added.
- 12:03 AM Changeset in webkit [219555] by
-
- 2 edits in trunk/Source/WebKit
Web Automation: link and partial link queries don't work if the link contains formatting tags
https://bugs.webkit.org/show_bug.cgi?id=174498
Reviewed by Brian Burg.
So, for example, if we find links with text "Foo" and there's a link like <a href=""><bA>Foo</b></a> we fail
with no such element error. This causes test test_Link_With_Formatting_Tags to fail.
- UIProcess/Automation/atoms/FindNodes.js:
(switch): Use descendant-or-self::text() instead of just text() in the links xpath expressions.
- 12:01 AM Changeset in webkit [219554] by
-
- 3 edits in trunk/Source/WebKit
Web Automation: FindNodes should throw an error in case of invalid strategy
https://bugs.webkit.org/show_bug.cgi?id=174497
Reviewed by Brian Burg.
We are currently returning null or empty list. According to the spec in 12.2 Find Element and 12.3 Find
Elements, step 4: "If location strategy is not present as a keyword in the table of location strategies, return
error with error code invalid argument.".
https://www.w3.org/TR/webdriver/#find-element.
This is causing test test_should_throw_an_error_if_user_passes_in_invalid_by_when_find_elements to fail.
- UIProcess/Automation/atoms/FindNodes.js:
(switch): Throw an error in case of unknown strategy.
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidParameter exceptions.
Jul 16, 2017:
- 11:58 PM Changeset in webkit [219553] by
-
- 3 edits in trunk/Source/WebCore
-Wreorder warning caused by GraphicsContext3D cleanup
https://bugs.webkit.org/show_bug.cgi?id=174511
Reviewed by Carlos Garcia Campos.
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- 10:29 PM Changeset in webkit [219552] by
-
- 6 edits4 adds in trunk
Dismissing the captions panel using the mouse is too eager to remove the captions panel and media controls
https://bugs.webkit.org/show_bug.cgi?id=174571
<rdar://problem/33294968>
Patch by Antoine Quint <Antoine Quint> on 2017-07-16
Reviewed by Eric Carlson.
Source/WebCore:
We did several things wrong when dismissing the tracks panel:
- we did not check whether we were hosted in a shadow root when figuring if a click was on the tracks panel
- we did not check whether we clicked over the media when dismissing the tracks panel
- we did not check whether auto-hide was on before fading the media controls out when we clicked outside the media controls bounds
We now correctly account for all of those cases and implement the following behavior when clickng as the tracks
panel is presented:
- dismiss the panel if the click is outside of the panel
- dismiss the panel and the media controls if the click is outside the video and the media controls have auto-hide on (ie. media is playing)
- dismiss the panel and the media controls after the track selection animation is finished if a track is selected
Tests: media/modern-media-controls/tracks-panel/tracks-panel-up-click-outside-media-does-not-dimiss-media-controls-when-media-is-paused.html
media/modern-media-controls/tracks-panel/tracks-panel-up-click-over-media-does-not-dimiss-media-controls-when-media-is-playing.html
- Modules/modern-media-controls/controls/media-controls.js:
(MediaControls.prototype.hideTracksPanel): Only hide the media controls if we clicked outside of the media
controls bounds and if we have auto-hide on when idle (ie. the media is playing).
(MediaControls.prototype.isPointInControls): Add an option to specify whether the container should be
considered when checking if a point is contained within the media controls bounds.
- Modules/modern-media-controls/controls/tracks-panel.js:
(TracksPanel.prototype._handleMousedown):
(TracksPanel.prototype._isPointInTracksPanel): Correctly check whether the element that we started pressing
on is contained within the tracks panel, accounting for the case where we are presented within a shadow root
(ie. always when runing inside a Web page).
LayoutTests:
Adding a method to show the tracks panel for a given shadow root and adding new tests to check the correct
behavior when dismissing the tracks panel when clicking over the media element or outside the media element
when it's paused.
- media/modern-media-controls/resources/media-controls-utils.js:
(pressOnElement):
(pressAtPoint):
(showTracksPanel):
(finishMediaControlsTest): Deleted.
- media/modern-media-controls/tracks-panel/tracks-panel-up-click-outside-media-does-not-dimiss-media-controls-when-media-is-paused-expected.txt: Added.
- media/modern-media-controls/tracks-panel/tracks-panel-up-click-outside-media-does-not-dimiss-media-controls-when-media-is-paused.html: Added.
- media/modern-media-controls/tracks-panel/tracks-panel-up-click-over-media-does-not-dimiss-media-controls-when-media-is-playing-expected.txt: Added.
- media/modern-media-controls/tracks-panel/tracks-panel-up-click-over-media-does-not-dimiss-media-controls-when-media-is-playing.html: Added.
- platform/mac/TestExpectations:
- 7:10 PM Changeset in webkit [219551] by
-
- 6 edits2 adds in trunk
DisallowUserAgentShadowContent moves out of non-UA shadow roots
https://bugs.webkit.org/show_bug.cgi?id=165647
Patch by Ali Juma <ajuma@chromium.org> on 2017-07-16
Reviewed by Ryosuke Niwa.
Source/WebCore:
Make rect-based hit-testing include nodes in non-UA shadow trees when the
HitTestRequest has type DisallowUserAgentShadowContent.
Test: fast/dom/nodesFromRect/nodesFromRect-shadow.html
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
- testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
- testing/Internals.h:
LayoutTests:
- fast/dom/nodesFromRect/nodesFromRect-shadow-expected.txt: Added.
- fast/dom/nodesFromRect/nodesFromRect-shadow.html: Added.
- fast/dom/nodesFromRect/resources/nodesFromRect.js:
(check):
(checkShadowContent):
(nodesFromRectAsString):
- 6:43 PM Changeset in webkit [219550] by
-
- 5 edits in trunk
Crash when a WKHTTPCookieStore outlives its owning WKWebsiteDataStore.
<rdar://problem/33341730> and https://bugs.webkit.org/show_bug.cgi?id=174574
Reviewed by Tim Horton.
Source/WebKit:
Instead of holding a weak reference to its owning API::WebsiteDataStore,
API::HTTPCookieStore can hold a strong reference to the owner's implementation
WebKit::WebsiteDataStore.
- UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::HTTPCookieStore):
(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::setCookie):
(API::HTTPCookieStore::deleteCookie):
(API::HTTPCookieStore::registerObserver):
(API::HTTPCookieStore::unregisterObserver):
(API::HTTPCookieStore::cookieManagerDestroyed):
(API::HTTPCookieStore::registerForNewProcessPoolNotifications):
- UIProcess/API/APIHTTPCookieStore.h:
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:
(-[CookieNavigationDelegate webView:didFinishNavigation:]):
(TEST):
- 3:23 PM Changeset in webkit [219549] by
-
- 4 edits2 adds in trunk
Clicking edges of media control buttons changes visual state of button (pressed) but doesn't execute action
https://bugs.webkit.org/show_bug.cgi?id=174565
<rdar://problem/33294833>
Patch by Antoine Quint <Antoine Quint> on 2017-07-16
Reviewed by Dean Jackson.
Source/WebCore:
WebCore doesn't dispatch a "click" event to a parent element when a child that was the original target when
the "mousedown" occured is no longer hit-testing at the location where the mouse pointer is at when the "mouseup"
occurs (see webkit.org/b/174564). Since button icons, which are a <picture> element that is a child of the
<button> element for media controls buttons, shrink to 89% of their size when the ":active" pseudo-class matches,
clicking on the edges of the media controls buttons would not trigger the expected action.
Test: media/modern-media-controls/button/button-click-on-edges.html
- Modules/modern-media-controls/controls/button.css:
(button > picture):
LayoutTests:
Add a new test where we click on the edge of a button and check that we trigger the Button's
UI delegate. This test fails prior to this patch.
- media/modern-media-controls/button/button-click-on-edges-expected.txt: Added.
- media/modern-media-controls/button/button-click-on-edges.html: Added.
- platform/ios-simulator/TestExpectations:
- 2:36 PM Changeset in webkit [219548] by
-
- 11 edits in trunk/Source/WebCore
Make the decision for asynchronously decoding an image be in one place
https://bugs.webkit.org/show_bug.cgi?id=174479
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-07-16
Reviewed by Tim Horton.
Move all the logic of whether a large image should be asynchronously decoded
or not be in one place: RenderBoxModelObject::decodingModeForImageDraw().
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::addPendingImageDrawingClient): Fixing unrelated
spelling error.
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isIBooks):
(WebCore::IOSApplication::isIBooksStorytime):
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateFromSettings): Remove reading the setting
largeImageAsyncDecodingEnabled from this function because it will be read
by RenderBoxModelObject::decodingModeForImageDraw().
(WebCore::BitmapImage::dataChanged):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::shouldAnimate):
(WebCore::BitmapImage::canAnimate):
(WebCore::BitmapImage::canUseAsyncDecodingForLargeImages):
(WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages):
(WebCore::BitmapImage::canDestroyDecodedData):
(WebCore::BitmapImage::shouldUseAsyncDecodingForLargeImages): Deleted.
- platform/graphics/BitmapImage.h:
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::canUseAsyncDecoding): It is okay to keep the
decoded frame if canUseAsyncDecodingForLargeImages() is true by the setting
largeImageAsyncDecodingEnabled is false.
(WebCore::ImageSource::shouldUseAsyncDecoding): Deleted.
- platform/graphics/ImageSource.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::decodingModeForImageDraw): The plan is to
add a new Internal settings to force asynchronous image decoding regardless
of the image size and the settings.
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderBoxModelObject.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
- 7:28 AM Changeset in webkit [219547] by
-
- 7 edits in trunk
[CMake] Raise minimum CMake requirement
https://bugs.webkit.org/show_bug.cgi?id=174545
Reviewed by Konstantin Tokarev.
.:
- CMakeLists.txt:
- Source/cmake/OptionsCommon.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsJSCOnly.cmake:
Source/WebCore:
- WebCoreMacros.cmake:
- 5:51 AM Changeset in webkit [219546] by
-
- 2 edits in trunk/Tools
[GTK] Sort inspector GResource manifest to ensure reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=174540
Patch by Bernhard M. Wiedemann <bwiedemann@suse.de> on 2017-07-16
Reviewed by Michael Catanzaro.
- gtk/generate-inspector-gresource-manifest.py:
(get_filenames): sort list of input files