Timeline



Nov 25, 2016:

4:17 PM Changeset in webkit [208978] by Csaba Osztrogonác
  • 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 Michael Catanzaro
  • 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 mmaxfield@apple.com
  • 3 edits
    4 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 Andres Gomez
More patches to merge into 2.14.3 (diff)
6:59 AM Changeset in webkit [208975] by akling@apple.com
  • 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 Michael Catanzaro
  • 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 svillar@igalia.com
  • 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 Carlos Garcia Campos
  • 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 Antti Koivisto
  • 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 zandobersek@gmail.com
  • 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 mitz@apple.com
  • 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 mark.lam@apple.com
  • 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 Antti Koivisto
  • 6 edits
    2 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 mark.lam@apple.com
  • 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 Darin Adler
  • 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 Darin Adler
  • 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 Darin Adler
  • 12 edits
    1 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 svillar@igalia.com
  • 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 svillar@igalia.com
  • 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 tpopela@redhat.com
  • 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 Carlos Garcia Campos
  • 24 edits
    2 moves
    1 add
    10 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 mark.lam@apple.com
  • 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 mark.lam@apple.com
  • 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 mark.lam@apple.com
  • 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 mark.lam@apple.com
  • 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 Konstantin Tokarev
  • 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 clopez@igalia.com
(diff)
3:54 PM Changeset in webkit [208953] by Yusuke Suzuki
  • 14 edits
    2 copies
    3 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 mark.lam@apple.com
  • 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 clopez@igalia.com
  • 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 mark.lam@apple.com
  • 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 achristensen@apple.com
  • 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 commit-queue@webkit.org
  • 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 Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.15.2

WebKitGTK+ 2.15.2

3:18 AM Changeset in webkit [208946] by Carlos Garcia Campos
  • 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 Carlos Garcia Campos
  • 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 Philippe Normand
  • 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 Philippe Normand
  • 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 Philippe Normand
  • 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 Carlos Garcia Campos
  • 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 Philippe Normand
  • 2 edits
    3 adds
    1 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.
Note: See TracTimeline for information about the timeline view.