Timeline
Nov 25, 2016:
- 4:17 PM Changeset in webkit [208978] by
-
- 2 edits in trunk/Tools
Fix compile warnings after r208415
https://bugs.webkit.org/show_bug.cgi?id=165061
Reviewed by Andy Estes.
- TestWebKitAPI/Tests/WTF/Time.cpp:
(TestWebKitAPI::TEST):
- 10:38 AM Changeset in webkit [208977] by
-
- 4 edits in trunk/Source/WebKit2
[GTK] Follow-up fixes to r208974
https://bugs.webkit.org/show_bug.cgi?id=164771
Unreviewed, implement Carlos's review feedback.
- UIProcess/API/gtk/WebKitNotification.cpp:
(webkit_notification_get_tag):
- UIProcess/API/gtk/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::withdrawAnyPreviousNotificationMatchingTag):
(WebKitNotificationProvider::show):
- UIProcess/API/gtk/WebKitNotificationProvider.h:
- 9:35 AM Changeset in webkit [208976] by
-
- 3 edits4 adds in trunk
[CSS Font Loading] FontFace.load() promises don't always fire
https://bugs.webkit.org/show_bug.cgi?id=165037
Reviewed by Simon Fraser.
Source/WebCore:
We currently handle web fonts in two phases. The first phase is building up
StyleRuleFontFace objects which reflect the style on the page. The second is creating
CSSFontFace objects from those StyleRuleFontFace objects. When script modifies the
style on the page, we can often update the CSSFontFace objects, but there are some
modifications which we don't know how to model. For these operations, we destroy the
CSSFontFace objects and rebuild them from the newly modified StyleRuleFontFace objects.
Normally, this is fine. However, with the CSS font loading API, the CSSFontFaces back
Javascript objects which will persist across the rebuilding step mentioned above. This
means that the FontFace objects need to adopt the new CSSFontFace objects and forget
the old CSSFontFace objects.
This gets a little tricky because the operation which caused the rebuild may actually
be a modification to the specific @font-face block which backs a Javascript FontFace
object. Because the CSSOM can be used to change the src: attribute of the FontFace
object, I decided in r201971 to clear the FontFace's promise in case an old load would
cause the promise to resolve. However, this would never happen because the old
CSSFontFace is unparented during the FontFace::adopt()ion of the new CSSFontFace.
Therefore, old loads may still complete, but the signal would never make it to the
FontFace and therefore would not cause the promise to resolve. In addition, clearing
the promise during a rebuild is problematic because that rebuild may be caused by
operations which have nothing to do with the specific FontFace object in question (so
the FontFace object should be observably uneffected.)
Because of the above reasons, this patch simply stops clearing the promise during the
rebuild phase.
Tests: fast/text/fontface-rebuild-during-loading.html
fast/text/fontface-rebuild-during-loading-2.html
- css/FontFace.cpp:
(WebCore::FontFace::adopt):
LayoutTests:
- fast/text/fontfaceset-rebuild-during-loading-2-expected.txt: Added.
- fast/text/fontfaceset-rebuild-during-loading-2.html: Added.
- 7:18 AM WebKitGTK/2.14.x edited by
- More patches to merge into 2.14.3 (diff)
- 6:59 AM Changeset in webkit [208975] by
-
- 2 edits in trunk/Source/WebCore
MemoryPressureHandler should only trigger synchronous GC on iOS
<https://webkit.org/b/165043>
<rdar://problem/29312684>
Reviewed by Sam Weinig.
On iOS we know that there is really only one web process in play at a time,
so it's okay to do a synchronous GC immediately in response to high memory pressure.
On other platforms, we may have tens or hundreds of web processes, and if they
all start doing full GCs at the same time, it can easily bring a system to its knees
if it's already under pressure.
Fix this by using garbageCollectSoon() on non-iOS platforms.
- page/MemoryRelease.cpp:
(WebCore::releaseCriticalMemory):
Nov 24, 2016:
- 12:10 PM Changeset in webkit [208974] by
-
- 8 edits in trunk
[GTK] Notifications API does not expose or respect the "tag" attribute
https://bugs.webkit.org/show_bug.cgi?id=164771
Reviewed by Gustavo Noronha Silva.
Source/WebKit2:
Expose a tag property on WebKitNotification. Ensure that any previous notification with the
same tag is closed when showing a new notification with that tag.
- UIProcess/API/gtk/WebKitNotification.cpp:
(webkit_notification_class_init):
(webkitNotificationCreate):
(webkit_notification_get_tag):
- UIProcess/API/gtk/WebKitNotification.h:
- UIProcess/API/gtk/WebKitNotificationProvider.cpp:
(WebKitNotificationProvider::withdrawAnyPreviousNotificationMatchingTag):
(WebKitNotificationProvider::show):
- UIProcess/API/gtk/WebKitNotificationProvider.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
Tools:
Verify that showing a notification with the same tag as another notification closes the
previous notification before the new notification is shown.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:
(testWebViewNotification):
- 7:08 AM Changeset in webkit [208973] by
-
- 3 edits in trunk/Source/WebCore
[css-grid] Convert grid representation into a class
https://bugs.webkit.org/show_bug.cgi?id=165042
Reviewed by Manuel Rego Casasnovas.
So far grids are represented as Vectors of Vectors. There are a couple of issues associated
to that decision. First or all, the source code in RenderGrid assumes the existence of that
data structure, meaning that we cannot eventually change it without changing a lot of
code. Apart from the coupling there is another issue, RenderGrid is full of methods to
access and manipulate that data structure.
Instead, it'd be much better to have a Grid class encapsulating both the data structures and
the methods required to access/manipulate it. Note that follow-up patches will move even
more data and procedures into this new class from the RenderGrid code.
No new tests required as this is a refactoring.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::Grid::ensureGridSize): Moved from RenderGrid.
(WebCore::RenderGrid::Grid::insert): Ditto.
(WebCore::RenderGrid::Grid::clear): Ditto.
(WebCore::RenderGrid::GridIterator::GridIterator):
(WebCore::RenderGrid::gridColumnCount): Use Grid's methods.
(WebCore::RenderGrid::gridRowCount): Ditto.
(WebCore::RenderGrid::placeItemsOnGrid): Use Grid's methods to insert children.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Ditto.
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Ditto.
(WebCore::RenderGrid::numTracks): Use Grid's methods.
(WebCore::RenderGrid::ensureGridSize): Deleted. Moved to Grid class.
(WebCore::RenderGrid::insertItemIntoGrid): Deleted. Moved to Grid class.
- rendering/RenderGrid.h:
- 5:35 AM Changeset in webkit [208972] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix GTK+ test /webkit2/WebKitWebContext/get-plugins after r208429.
Test plugin library was renamed as libTestNetscapePlugIn.so in r208429.
- TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:
(testWebContextGetPlugins): Update the library name.
- 4:54 AM Changeset in webkit [208971] by
-
- 12 edits in trunk/Source/WebCore
Remove unused bool return from Element::willRecalcStyle
https://bugs.webkit.org/show_bug.cgi?id=165059
Reviewed by Andreas Kling.
It is always true.
- dom/Element.cpp:
(WebCore::Element::willRecalcStyle):
- dom/Element.h:
- html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::willRecalcStyle):
- html/HTMLFrameSetElement.h:
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
- html/HTMLPlugInImageElement.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveComposedTree):
- svg/SVGElement.cpp:
(WebCore::SVGElement::willRecalcStyle):
- svg/SVGElement.h:
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::willRecalcStyle):
- svg/SVGUseElement.h:
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.