Timeline



Nov 27, 2015:

9:50 AM Changeset in webkit [192783] by beidson@apple.com
  • 21 edits
    1 add in trunk/Source

Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong.
https://bugs.webkit.org/show_bug.cgi?id=151627

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/indexeddb/IDBGetResult.cpp: Added.

(WebCore::IDBGetResult::dataFromBuffer):
(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::valueBuffer):
(WebCore::IDBGetResult::keyData):
(WebCore::IDBGetResult::primaryKeyData):
(WebCore::IDBGetResult::keyPath):
(WebCore::IDBGetResult::setValueBuffer):
(WebCore::IDBGetResult::setKeyData):
(WebCore::IDBGetResult::setPrimaryKeyData):
(WebCore::IDBGetResult::setKeyPath):
(WebCore::IDBGetResult::dataFromBuffer): Deleted.
(WebCore::IDBGetResult::isolatedCopy): Deleted.

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::setGetResult):

  • Modules/indexeddb/client/IDBCursorImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:

(WebCore::GetOperation::perform):

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryCursor.h:
  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::currentData):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):

  • platform/CrossThreadCopier.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::getRecordFromBackingStore):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<IDBGetResult>::encode):
(IPC::ArgumentCoder<IDBGetResult>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
8:54 AM Changeset in webkit [192782] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Remove the remaining uses of GMainLoopSource
https://bugs.webkit.org/show_bug.cgi?id=151632

Reviewed by Žan Doberšek.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(_WebKitWebViewBasePrivate::clearRedirectedWindowSoonTimerFired):
(webkitWebViewBaseClearRedirectedWindowSoon):
(webkitWebViewBaseEnterAcceleratedCompositingMode):

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:

(testWebViewSyncRequestOnMaxConns):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::TestRunner):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::timeoutSource):
(WTR::TestController::notifyDone):
(WTR::TestController::platformRunUntil):

6:16 AM Changeset in webkit [192781] by Csaba Osztrogonác
  • 4 edits in trunk

[cmake] Add testb3 to the build system
https://bugs.webkit.org/show_bug.cgi?id=151619

Reviewed by Gyuyoung Kim.

Source/JavaScriptCore:

  • shell/CMakeLists.txt:

Tools:

  • Scripts/build-jsc:
5:56 AM Changeset in webkit [192780] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[jhbuild] Fix pixman build with clang
https://bugs.webkit.org/show_bug.cgi?id=151441

Reviewed by Carlos Garcia Campos.

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
5:24 AM Changeset in webkit [192779] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Fix build warning in bignum.cc
https://bugs.webkit.org/show_bug.cgi?id=150797

Reviewed by Geoffrey Garen.

  • wtf/dtoa/bignum.cc:
5:01 AM Changeset in webkit [192778] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Use mark pragmas only if it is supported
https://bugs.webkit.org/show_bug.cgi?id=151621

Reviewed by Mark Lam.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
5:01 AM Changeset in webkit [192777] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the ENABLE(B3_JIT) build with GCC in B3Procedure.h
https://bugs.webkit.org/show_bug.cgi?id=151620

Reviewed by Mark Lam.

  • b3/B3Procedure.h:
4:59 AM Changeset in webkit [192776] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] Add new B3 source files to the build system
https://bugs.webkit.org/show_bug.cgi?id=151618

Reviewed by Gyuyoung Kim.

  • CMakeLists.txt:
12:37 AM Changeset in webkit [192775] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK] Do not use the WebCore garbage collector timer
https://bugs.webkit.org/show_bug.cgi?id=151623

Reviewed by Martin Robinson.

Now that garbage collector timers have been implemented in
JavaScriptCore for glib, we don't need to use another Timer in WebCore.

  • bindings/js/GCController.cpp:

(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNowIfNotDoneRecently):

Nov 26, 2015:

8:43 AM Changeset in webkit [192774] by ddkilzer@apple.com
  • 2 edits
    2 adds in trunk/Tools

Extract prependToEnvironmentVariableList
<http://webkit.org/b/151536>

Reviewed by Daniel Bates.

Tests: webkitdirs_unittest/appendToEnvironmentVariableList.pl

webkitdirs_unittest/prependToEnvironmentVariableList.pl

  • Scripts/webkitdirs.pm: Export appendToEnvironmentVariableList

and prependToEnvironmentVariableList.
(appendToEnvironmentVariableList): Simplify variable name.
Switch to use $Config{path_sep}.
(prependToEnvironmentVariableList): Add new method.
(setupMacWebKitEnvironment): Switch to use
prependToEnvironmentVariableList().
(setupIOSWebKitEnvironment): Ditto.

  • Scripts/webkitperl/webkitdirs_unittest/appendToEnvironmentVariableList.pl: Added.
  • Scripts/webkitperl/webkitdirs_unittest/prependToEnvironmentVariableList.pl: Added.
5:52 AM Changeset in webkit [192773] by Carlos Garcia Campos
  • 10 edits in trunk/Source/JavaScriptCore

[GLIB] Implement garbage collector timers
https://bugs.webkit.org/show_bug.cgi?id=151391

Reviewed by Žan Doberšek.

Add GLib implementation using GSource.

  • heap/EdenGCActivityCallback.cpp:
  • heap/FullGCActivityCallback.cpp:
  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::GCActivityCallback):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::cancelTimer):

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerDidFire):

  • heap/HeapTimer.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::IncrementalSweeper):
(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::cancelTimer):

  • heap/IncrementalSweeper.h:

Nov 25, 2015:

11:08 PM Changeset in webkit [192772] by aestes@apple.com
  • 5 edits
    3 adds in trunk

[Content Filtering] Crash in DocumentLoader::notifyFinished() when allowing a media document to load
https://bugs.webkit.org/show_bug.cgi?id=151433
rdar://problem/23506594

Reviewed by Alexey Proskuryakov.

Source/WebCore:

When the main resource of a media document commits, WebKit cancels its load since the plug-in or media engine
will do its own loading. If content filtering is enabled, and the filter waits allow the load until the entire
resource is downloaded, then ContentFilter will attempt to call DocumentLoader::notifyFinished() immediately
after delivering the buffered resource data to DocumentLoader. However, delivering the data will have nulled out
DocumentLoader's m_mainResource when the load was cancelled, leading to a crash in notifyFinished().

To resolve this, add a new Stopped state to ContentFilter. Set this state if DocumentLoader clears its main
resource or detaches from its frame. If ContentFilter is in the Stopped state after calling
DocumentLoader::dataReceived(), do not proceed to call DocumentLoader::notifyFinished().

Test: contentfiltering/allow-media-document.html

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::stopFilteringMainResource): Set m_state to Stopped. If m_mainResource is non-null,
removed ContentFilter as a client and set m_mainResource to null.
(WebCore::ContentFilter::notifyFinished): Stopped calling DocumentLoader::notifyFinished() if m_state is Stopped
after calling DocumentLoader::dataReceived().

  • loader/ContentFilter.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::detachFromFrame): Called ContentFilter::stopFilteringMainResource() instead of setting
m_contentFilter to null.
(WebCore::DocumentLoader::clearMainResource): Ditto.

LayoutTests:

  • contentfiltering/allow-media-document-expected.txt: Added.
  • contentfiltering/allow-media-document.html: Added.
  • contentfiltering/resources/test.mp4: Added.
12:53 PM Changeset in webkit [192771] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified
https://bugs.webkit.org/show_bug.cgi?id=151581

Reviewed by Timothy Hatcher.

Serialize all breakpoints to the "breakpoints" Setting in local storage
whenever any breakpoint model object is added, removed, or modified.

Remove the old listener that attempted to save breakpoints on the
pagehide event. It did not fire in important scenarios like exiting
the browser via Cmd-Q or killing the process via Ctrl-C / SIGKILL.

This is not expected to be a performance problem because most people
do not keep thousands of breakpoints active, and breakpoints are not
set very often. If it's a problem, we can mitigate it with coalescing.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WebInspector.DebuggerManager.prototype._saveBreakpoints):
(WebInspector.DebuggerManager.prototype._inspectorClosing): Deleted.

11:04 AM Changeset in webkit [192770] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Checks for buffer-overflows when reading characters from textRun
https://bugs.webkit.org/show_bug.cgi?id=151055
<rdar://problem/23251789>

Patch by Pranjal Jumde <pjumde@apple.com> on 2015-11-25
Reviewed by Myles C. Maxfield.

Source/WebCore:

Prevents an off by one error when adding the last font data to the GlyphBuffer.

  • Source/WebCore/platform/graphics/WidthIterator.cpp:
  • Source/WebCore/platform/graphics/FontCascade.cpp:

LayoutTests:

  • dom/html/level1/core/151055_asan.html:
  • dom/html/level1/core/151055_asan-expected.txt:
12:48 AM Changeset in webkit [192769] by aestes@apple.com
  • 25 edits
    1 copy
    2 adds in trunk

Teach MiniBrowser how to enable the mock content filter
https://bugs.webkit.org/show_bug.cgi?id=151540

Reviewed by Andreas Kling.

Source/WebCore:

Moved the implementation of MockContentFilterEnabler from TestWebKitAPI to here, renamed it to
WebMockContentFilterEnabler, and made it compatible with the legacy Objective-C runtime. Renamed Decision and
DecisionPoint to WebMockContentFilterDecision and WebMockContentFilterDecisionPoint, and changed them from enum
classes to CF_ENUMs so that they can be used by both C++ and Objective-C source files.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSMockContentFilterSettingsCustom.cpp:

(WebCore::JSMockContentFilterSettings::decisionPoint):
(WebCore::JSMockContentFilterSettings::setDecisionPoint):
(WebCore::toDecision):
(WebCore::JSMockContentFilterSettings::decision):
(WebCore::JSMockContentFilterSettings::setDecision):
(WebCore::JSMockContentFilterSettings::unblockRequestDecision):
(WebCore::JSMockContentFilterSettings::setUnblockRequestDecision):
(WebCore::toJSValue): Deleted.

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::willSendRequest):
(WebCore::MockContentFilter::responseReceived):
(WebCore::MockContentFilter::addData):
(WebCore::MockContentFilter::finishedAddingData):
(WebCore::MockContentFilter::unblockHandler):
(WebCore::MockContentFilter::maybeDetermineStatus):

  • testing/MockContentFilter.h:
  • testing/MockContentFilterEnabler.h: Added.
  • testing/MockContentFilterEnabler.mm: Added.

(-[WebMockContentFilterEnabler initWithDecision:decisionPoint:blockedString:]):
(-[WebMockContentFilterEnabler initWithCoder:]):
(-[WebMockContentFilterEnabler encodeWithCoder:]):
(-[WebMockContentFilterEnabler enable]):
(-[WebMockContentFilterEnabler dealloc]):
(+[WebMockContentFilterEnabler supportsSecureCoding]):
(-[WebMockContentFilterEnabler copyWithZone:]):

  • testing/MockContentFilterSettings.h:

(WebCore::MockContentFilterSettings::decisionPoint):
(WebCore::MockContentFilterSettings::setDecisionPoint):
(WebCore::MockContentFilterSettings::decision):
(WebCore::MockContentFilterSettings::setDecision):
(WebCore::MockContentFilterSettings::unblockRequestDecision):
(WebCore::MockContentFilterSettings::setUnblockRequestDecision):

Tools:

  • MiniBrowser/Configurations/Base.xcconfig: Added WebCoreTestSupport and WTF to HEADER_SEARCH_PATHS.
  • MiniBrowser/Configurations/MiniBrowser.xcconfig: Linked against libWebCoreTestSupport.
  • MiniBrowser/Configurations/MiniBrowserBundle.xcconfig: Ditto.
  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Added blocked-page.html.
  • MiniBrowser/MiniBrowserWebProcessPlugIn.m:

(-[MiniBrowserWebProcessPlugIn webProcessPlugIn:initializeWithObject:]): Observed the WebMockContentFilterEnabler key path.
(-[MiniBrowserWebProcessPlugIn dealloc]):
(-[MiniBrowserWebProcessPlugIn observeValueForKeyPath:ofObject:change:context:]): Stored the value in _contentFilterEnabler.

  • MiniBrowser/blocked-page.html: Added.
  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration): Created a _WKProcessPoolConfiguration with MiniBrowser.wkbundle as the injected bundle.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(+[BrowserWindowController contentFilteringBlockedString]): Returned an NSString containing blocked-page.html.

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]): Added [self _contentFilteringMenuItem] to the Settings menu.
(-[SettingsController validateMenuItem:]): Validated the new menu items. Disabled Decision and Decision Point items if filtering is disabled.
(-[SettingsController _contentFilteringMenuItem]): Returned a new Content Filtering menu item with a submenu.
(-[SettingsController toggleContentFilteringEnabled:]): Toggled ContentFilteringEnabledKey.
(-[SettingsController contentFilteringEnabled]): Returned value of ContentFilteringEnabledKey.
(-[SettingsController setContentFilteringDecision:]): Set ContentFilterDecisionKey and called -[BrowserAppDelegate didChangeSettings].
(-[SettingsController contentFilteringDecision]): Returned the value of ContentFilterDecisionKey as a WebMockContentFilterDecision.
Defaulted to WebMockContentFilterDecisionAllow if the value is invalid.
(-[SettingsController setContentFilteringDecisionPoint:]): Set ContentFilterDecisionPointKey and called -[BrowserAppDelegate didChangeSettings].
(-[SettingsController contentFilteringDecisionPoint]): Returned the value of ContentFilterDecisionPointKey as a WebMockContentFilterDecisionPoint.
Defaulted to WebMockContentFilterDecisionPointAfterWillSendRequest if the value is invalid.

  • MiniBrowser/mac/WK1BrowserWindowController.h:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController dealloc]):
(-[WK1BrowserWindowController didChangeSettings]): Created a WebMockContentFilterEnabler with the current settings and stored it in _contentFilterEnabler.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]): Created a WebMockContentFilterEnabler and set it as the object for the eponymous bundle parameter.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Linked against libWebCoreTestSupport.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:

(configurationWithContentFilterSettings): Converted to use WebMockContentFilterEnabler, WebMockContentFilterDecision, and WebMockContentFilterDecisionPoint.
(TEST): Ditto.
(downloadTest): Ditto.
(+[MockContentFilterEnabler supportsSecureCoding]): Deleted.
(-[MockContentFilterEnabler copyWithZone:]): Deleted.
(-[MockContentFilterEnabler initWithCoder:]): Deleted.
(-[MockContentFilterEnabler initWithDecision:decisionPoint:]): Deleted.
(-[MockContentFilterEnabler encodeWithCoder:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[ContentFilteringPlugIn webProcessPlugIn:initializeWithObject:]): Converted to use WebMockContentFilterEnabler.
(-[ContentFilteringPlugIn dealloc]): Ditto.
(-[ContentFilteringPlugIn observeValueForKeyPath:ofObject:change:context:]): Ditto.
(+[MockContentFilterEnabler supportsSecureCoding]): Deleted.
(-[MockContentFilterEnabler copyWithZone:]): Deleted.
(-[MockContentFilterEnabler initWithCoder:]): Deleted.
(-[MockContentFilterEnabler dealloc]): Deleted.
(-[MockContentFilterEnabler encodeWithCoder:]): Deleted.

Nov 24, 2015:

5:43 PM Changeset in webkit [192768] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk/Source/JavaScriptCore

[JSC] support Computed Property Names in destructuring Patterns
https://bugs.webkit.org/show_bug.cgi?id=151494

Patch by Caitlin Potter <caitp@igalia.com> on 2015-11-24
Reviewed by Saam Barati.

Add support for computed property names in destructuring BindingPatterns
and AssignmentPatterns.

Productions BindingProperty(1) and AssignmentProperty(2) allow for any valid
PropertName(3), including ComputedPropertyName(4)

1: http://tc39.github.io/ecma262/#prod-BindingProperty
2: http://tc39.github.io/ecma262/#prod-AssignmentProperty
3: http://tc39.github.io/ecma262/#prod-PropertyName
4: http://tc39.github.io/ecma262/#prod-ComputedPropertyName

  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::appendObjectPatternEntry):

  • parser/Nodes.h:

(JSC::ObjectPatternNode::appendEntry):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • tests/es6.yaml:
  • tests/es6/destructuring_assignment_computed_properties.js: Added.

(test):
(test.computeName):
(test.loadValue):
(test.out.get a):
(test.out.set a):
(test.out.get b):
(test.out.set b):
(test.out.get c):
(test.out.set c):
(test.get var):

4:20 PM Changeset in webkit [192767] by Gyuyoung Kim
  • 2 edits in trunk/Tools

REGRESSION(r192053): MiniBrowser doesn't exit when clicking on the close-window button
https://bugs.webkit.org/show_bug.cgi?id=151567

Reviewed by Darin Adler.

  • MiniBrowser/efl/main.c: Call window_close() instead of ewk_view_try_close().

(on_window_deletion):

1:37 PM Changeset in webkit [192766] by commit-queue@webkit.org
  • 5 edits
    3 deletes in trunk

Unreviewed, rolling out r192536, r192722, and r192743.
https://bugs.webkit.org/show_bug.cgi?id=151593

Still causing trouble. (Requested by kling on #webkit).

Reverted changesets:

"[JSC] JSPropertyNameEnumerator could be destructorless."
https://bugs.webkit.org/show_bug.cgi?id=151242
http://trac.webkit.org/changeset/192536

"REGRESSION(r192536): Null pointer dereference in
JSPropertyNameEnumerator::visitChildren()."
https://bugs.webkit.org/show_bug.cgi?id=151495
http://trac.webkit.org/changeset/192722

"REGRESSION(r192536): Null pointer dereference in
JSPropertyNameEnumerator::visitChildren()."
https://bugs.webkit.org/show_bug.cgi?id=151495
http://trac.webkit.org/changeset/192743

10:47 AM Changeset in webkit [192765] by calvaris@igalia.com
  • 12 edits
    2 adds in trunk

[Streams API] Implement pipeTo method in readable Stream
https://bugs.webkit.org/show_bug.cgi?id=151588

Reviewed by Darin Adler.

Source/WebCore:

Implemented pipeTo method according to the reference implementation in the spec as the spec is not written
yet. It can be found at https://github.com/whatwg/streams/blob/632b26a05f3106650b1ec91239ad5b012e6c64af/reference-implementation/lib/readable-stream.js#L75.

Tests: streams/pipe-to.html

streams/reference-implementation/brand-checks.html
streams/reference-implementation/pipe-through.html
streams/reference-implementation/pipe-to.html
streams/reference-implementation/pipe-to-options.html
streams/reference-implementation/readable-stream-templated

  • Modules/streams/ReadableStream.js:

(doPipe): Internal function of pipeTo.
(closeDest): Internal function of pipeTo.
(abortDest): Internal function of pipeTo.
(pipeTo): Implemented as per spec with some other internal functions as helpers.

LayoutTests:

Test "Piping to a writable stream that does not consume the writes fast enough exerts backpressure on the
source" was moved to its own file because it causes timing issues.

  • streams/reference-implementation/pipe-to.html: Moved "Piping to a writable stream that does not consume the

writes fast enough exerts backpressure on the source" test to its own file.

  • streams/pipe-to.html: Added with "Piping to a writable stream that does not consume the writes fast enough

exerts backpressure on the source" test.

  • streams/reference-implementation/brand-checks.html: Fixed issue with the creation of a ReadableStreamReader.
  • streams/pipe-to-expected.txt:
  • streams/reference-implementation/brand-checks-expected.txt:
  • streams/reference-implementation/pipe-through-expected.txt:
  • streams/reference-implementation/pipe-to-expected.txt:
  • streams/reference-implementation/pipe-to-options-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt: Expectations.
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations: Flagged pipe-to test because of webkit.org/b/147933.
10:22 AM Changeset in webkit [192764] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cmd-1 to Cmd-9 shortcuts should select tabs by ordinal
https://bugs.webkit.org/show_bug.cgi?id=151577

Reviewed by Timothy Hatcher.

The shortcuts only work if a tab at the specified ordinal exists.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

4:40 AM Changeset in webkit [192763] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r190983): Non-element, non-text nodes should not be distributed to slots
https://bugs.webkit.org/show_bug.cgi?id=151566
rdar://problem/23430177

Reviewed by Zalan Bujtas.

Source/WebCore:

We don't invalidate slot assignments except for text or element children. Fix by not
not assigning other nodes to slots as it is not useful.

Test: fast/html/details-comment-crash.html

  • dom/SlotAssignment.cpp:

(WebCore::slotNameFromSlotAttribute):
(WebCore::SlotAssignment::findAssignedSlot):
(WebCore::SlotAssignment::assignSlots):

LayoutTests:

  • fast/html/details-comment-crash-expected.html: Added.
  • fast/html/details-comment-crash.html: Added.
12:37 AM Changeset in webkit [192762] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Implement methods to get and set inner html.
https://bugs.webkit.org/show_bug.cgi?id=151569

Reviewed by Alex Christensen.

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::innerHTML):
(DOMHTMLElement::setInnerHTML):
(DOMHTMLElement::innerText):

12:01 AM Changeset in webkit [192761] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK] Use the network process unconditionally
https://bugs.webkit.org/show_bug.cgi?id=151541

Reviewed by Alex Christensen.

Source/WebKit2:

Make the shared secondary process model become multiple secondary
process model with a limit of 1 web process. Use the same options
when creating a context with legacy configuration (unit tests and
inspector proxy).

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_process_model):
(webkit_web_context_get_process_model):
(webkit_web_context_set_web_process_count_limit):
(webkit_web_context_get_web_process_count_limit):
(toWebKitProcessModel): Deleted.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors):
(WebKit::WebProcessPool::platformInitializeWebProcess):

Tools:

Fix TestInspectorServer test. Do not assume we already have the
title we want when the page has been loaded, since the title is
changed afterwards. So, check if the title has already been set,
and if not wait for it.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:

(openRemoteDebuggingSession):

Nov 23, 2015:

11:13 PM Changeset in webkit [192760] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Unreviewed, rolling out r192716 and r192717.
https://bugs.webkit.org/show_bug.cgi?id=151582

The patch was incorrect. We always need at least one data
point in each configuration (Requested by rniwa on #webkit).

Reverted changesets:

"Perf dashboard's should not include results more than 366
days old in JSON"
https://bugs.webkit.org/show_bug.cgi?id=151529
http://trac.webkit.org/changeset/192716

"Build fix for old version of PHP."
http://trac.webkit.org/changeset/192717

11:12 PM Changeset in webkit [192759] by BJ Burg
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the Mac CMake build after r192793.

  • PlatformMac.cmake:
7:30 PM Changeset in webkit [192758] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

Hardening against CSSSelector double frees
<http://webkit.org/b/56124>
<rdar://problem/9119036>

Reviewed by Antti Koivisto.

Add some security assertions to catch this issue if it ever
happens in Debug builds, and make changes in
CSSSelector::~CSSSelector() and
CSSSelectorList::deleteSelectors() to prevent obvious issues if
they're ever called twice in Release builds.

No new tests because we don't know how to reproduce this.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::CSSSelector): Initialize
m_destructorHasBeenCalled.

  • css/CSSSelector.h:

(WebCore::CSSSelector::m_destructorHasBeenCalled): Add bitfield.
(WebCore::CSSSelector::CSSSelector): Initialize
m_destructorHasBeenCalled.
(WebCore::CSSSelector::~CSSSelector): Add security assertion
that this is never called twice. Clear out any fields that
would have caused us to dereference an object twice.

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::deleteSelectors): Clear
m_selectorArray when freeing the memory to which it was
pointing. This prevents re-entrancy issues or calling this
method twice on the same thread. Also restructure the for()
loop to prevent calling CSSSelector::isLastInSelectorList()
after CSSSelector::~CSSSelector() has been called (via CRBug
241892).

6:53 PM Changeset in webkit [192757] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a keyboard shortcut to restore the default zoom level
https://bugs.webkit.org/show_bug.cgi?id=151237

Reviewed by Timothy Hatcher.

The Cmd-0 shortcut matches the keybindings of Safari and other browsers.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

6:49 PM Changeset in webkit [192756] by BJ Burg
  • 20 edits in trunk/Source

Web Inspector: inspector settings should not be shared between different inspection levels
https://bugs.webkit.org/show_bug.cgi?id=151151

Reviewed by Timothy Hatcher.

Source/WebCore:

InspectorController and InspectorFrontendClient should know how to compute their
inspection levels, so that this level can be exposed to the Inspector frontend for
preference disambiguation by inspection level.

  • A Page with normal web content has an inspection level of 0.
  • The first Web Inspector has an inspection level of 1.
  • The second Web Inspector that inspects the Inspector has an inspection level of 2.
  • And so forth...

For local frontend clients (WK1 and the ProtocolTestStub), the inspection level of
a Page computed as follows:

  • If the page's inspector controller has no frontend client, then the Page

is normal web content (level 0).

  • If the page's inspector controller has a frontend client, ask for its inspection level.

A frontend client looks at the inspection level reported by inspected page's inspector
controller and increments by one to account for the crossed inspection boundary.

No new tests, this is blocked by test infrastructure fixes (https://webkit.org/b/151573).

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::inspectionLevel): Added.
(WebCore::InspectorController::hasInspectorFrontendClient): Deleted.

  • inspector/InspectorController.h:
  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::canAttachWindow): Check inspectionLevel().
(WebCore::InspectorFrontendClientLocal::inspectionLevel): Added.

  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::inspectionLevel): Added.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate): Check inspectionLevel().

Source/WebInspectorUI:

It's really annoying to have shared settings between Inspector1 and Inspector2, because
they are not designed to respond to external changes to local storage keys. As a result,
the two inspectors seemingly have different settings while both are open, but the settings
clobber each other depending on which inspector is closed first. On the next inspector
being opened, it has settings that reflect whichever inspector closed last.

To fix this, alter the local storage key prefix to incude the inspection level when it is
greater than 1 (i.e., inspecting the inspector). The storage prefix becomes
"com.apple.WebInspector-${inspectionLevel}." in this case.
This is backwards-compatible for normal Inspector, who keeps the same storage prefix.

Alternate approaches that were considered and abandoned:

  • Use separate WKWebSiteDataStores for each inspection level. This API (as it currently is)

does not support multiple on-disk storage locations. We don't want to add an entirely new
Library directory for each inspector level, and sharing a single location doesn't fix the
shared-settings bug. Changing storage location would lose all existing Inspector settings.

  • Sync settings between multiple open Inspectors. This would be catastrophic, as changing

the active tab on one inspector would immediately propagate to the other open inspectors.

  • UserInterface/Models/Setting.js:

(WebInspector.Setting):

  • UserInterface/Protocol/InspectorFrontendHostStub.js:

(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.inspectionLevel):

Source/WebKit2:

In WebKit2, we already track the inspection level of WebPages in order to give inspectors
different page groups. Send the inspection level to WebInspectorUI WebProcess when
establishing a connection from the UIProcess. Use this number in the FrontendClient.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::inspectionLevel): Renamed from inspectorLevel to be consistent.
(WebKit::WebInspectorProxy::inspectorPageGroupIdentifier):
(WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::inspectorLevel): Deleted.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::updateInspectorWindowTitle):

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::establishConnection):

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.messages.in:
6:43 PM Changeset in webkit [192755] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: use Cmd-Option-L and Cmd-Option-R for toggling navigation and details sidebars
https://bugs.webkit.org/show_bug.cgi?id=151572

Reviewed by Timothy Hatcher.

The previous shortcuts were Cmd-0 and Cmd-Option-0, but these didn't match Safari's
sidebar shortcuts and conflict with Cmd-0 as the cross-browser way to reset page zoom.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

5:17 PM Changeset in webkit [192754] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r188206): [EFL] Missing to adjust scrollbar size to ewk_view_contents_size_get API test
https://bugs.webkit.org/show_bug.cgi?id=148735

Reviewed by Csaba Osztrogonác.

r189256 missed to adjust scrollbar size to other tests in ewk_view_contents_size_get() API test.
In this case we need to apply scrollbar size to both width and height unlike previous fix. Because
horizontal scrollbar is also shown since device pixel ratio(= 2.0) is adjusted.

  • UIProcess/API/efl/tests/test_ewk2_view.cpp:

(TEST_F):

3:51 PM Changeset in webkit [192753] by BJ Burg
  • 12 edits
    4 moves
    4 adds in trunk/Source

Web Inspector: RemoteInspector should track targets and connections for remote automation
https://bugs.webkit.org/show_bug.cgi?id=151042

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Refactor RemoteInspector so it can be used to send listings of different target types.
First, rename Debuggable to RemoteInspectionTarget, and pull things not specific to
remote inspection into the base class RemoteControllableTarget and its Connection class.

Add a new RemoteControllableTarget called RemoteAutomationTarget, used by UIProcess
to support remote UI automation via webinspectord. On the protocol side, this target
uses a new WIRTypeKey called WIRTypeAutomation to distiguish the listing from
Web and JavaScript listings and avoid inventing a new listing mechanism.

  • API/JSContextRef.cpp:

(JSGlobalContextGetDebuggerRunLoop):
(JSGlobalContextSetDebuggerRunLoop):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/InspectorFrontendChannel.h:
  • inspector/remote/RemoteAutomationTarget.cpp: Added.

(Inspector::RemoteAutomationTarget::setAutomationAllowed): Added.

  • inspector/remote/RemoteAutomationTarget.h: Added.
  • inspector/remote/RemoteConnectionToTarget.h: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.h.

(Inspector::RemoteTargetBlock::RemoteTargetBlock):
(Inspector::RemoteTargetBlock::~RemoteTargetBlock):
(Inspector::RemoteTargetBlock::operator=):
(Inspector::RemoteTargetBlock::operator()):

  • inspector/remote/RemoteConnectionToTarget.mm: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.mm.

(Inspector::RemoteTargetHandleRunSourceGlobal):
(Inspector::RemoteTargetQueueTaskOnGlobalQueue):
(Inspector::RemoteTargetInitializeGlobalQueue):
(Inspector::RemoteTargetHandleRunSourceWithInfo):
(Inspector::RemoteConnectionToTarget::RemoteConnectionToTarget):
(Inspector::RemoteConnectionToTarget::~RemoteConnectionToTarget):
(Inspector::RemoteConnectionToTarget::destination):
(Inspector::RemoteConnectionToTarget::connectionIdentifier):
(Inspector::RemoteConnectionToTarget::dispatchAsyncOnTarget):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::targetClosed):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::sendMessageToFrontend):
(Inspector::RemoteConnectionToTarget::setupRunLoop):
(Inspector::RemoteConnectionToTarget::teardownRunLoop):
(Inspector::RemoteConnectionToTarget::queueTaskOnPrivateRunLoop):

  • inspector/remote/RemoteControllableTarget.cpp: Added.

(Inspector::RemoteControllableTarget::~RemoteControllableTarget):
(Inspector::RemoteControllableTarget::init):
(Inspector::RemoteControllableTarget::update):

  • inspector/remote/RemoteControllableTarget.h: Added.
  • inspector/remote/RemoteInspectionTarget.cpp: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.cpp.

(Inspector::RemoteInspectionTarget::remoteControlAllowed):
(Inspector::RemoteInspectionTarget::setRemoteDebuggingAllowed):
(Inspector::RemoteInspectionTarget::pauseWaitingForAutomaticInspection):
(Inspector::RemoteInspectionTarget::unpauseForInitializedInspector):

  • inspector/remote/RemoteInspectionTarget.h: Renamed from Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggable.h.

(isType):

  • inspector/remote/RemoteInspector.h:

Code to manage Debuggables now works with RemoteControllableTargets and doesn't
care whether the target is for Inspection or Automation. Listing data with target-
and type-specific information are captured when clients call into RemoteInspector
since that's the easiest time to gather this information on the right thread.
Use the is<> / downcast<> machinery when we need a concrete Target type.

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::nextAvailableIdentifier):
(Inspector::RemoteInspector::registerTarget): renamed from registerDebuggable.
(Inspector::RemoteInspector::unregisterTarget): renamed from unregisterDebuggable.
(Inspector::RemoteInspector::updateTarget): renamed from updateDebuggable.
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::listingForTarget):
(Inspector::RemoteInspector::listingForInspectionTarget):
(Inspector::RemoteInspector::listingForAutomationTarget):
(Inspector::RemoteInspector::pushListingsNow):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedDidCloseMessage):
(Inspector::RemoteInspector::receivedGetListingMessage):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedConnectionDiedMessage):
(Inspector::RemoteInspector::RemoteInspector): Deleted.
(Inspector::RemoteInspector::registerDebuggable): Deleted.
(Inspector::RemoteInspector::unregisterDebuggable): Deleted.
(Inspector::RemoteInspector::updateDebuggable): Deleted.
(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate): Deleted.
(Inspector::RemoteInspector::sendMessageToRemoteFrontend): Deleted.
(Inspector::RemoteInspector::listingForDebuggable): Deleted.
(Inspector::RemoteInspector::pushListingNow): Deleted.
(Inspector::RemoteInspector::pushListingSoon): Deleted.

  • inspector/remote/RemoteInspectorConstants.h:
  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemote):
(JSC::JSGlobalObjectDebuggable::pauseWaitingForAutomaticInspection):
(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemoteFrontend): Deleted.

  • runtime/JSGlobalObjectDebuggable.h:

Source/WebCore:

Use the new RemoteControllableTarget API method names.

No new tests, no behavior change.

  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::connect):
(WebCore::PageDebuggable::dispatchMessageFromRemote):
(WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend): Deleted.

  • page/PageDebuggable.h:
3:12 PM Changeset in webkit [192752] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: Unskip all indexeddb/mozilla tests that pass.
https://bugs.webkit.org/show_bug.cgi?id=151568
Source/WebCore:

Reviewed by Alex Christensen.

No new tests (Lots of skipped existing tests now pass).

  • Modules/indexeddb/shared/IDBError.h:

LayoutTests:

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
2:10 PM Changeset in webkit [192751] by BJ Burg
  • 5 edits
    8 moves in trunk/Source/JavaScriptCore

Rename JavaScriptCore builtins files to match exposed object names
https://bugs.webkit.org/show_bug.cgi?id=151549

Reviewed by Youenn Fablet.

As a subtask of unifying code generation for WebCore and JSC builtins, we need to get rid of
differences between builtins filenames (e.g., Promise.prototype.js) and the name of the
generated Builtin object (PromisePrototype).

If we don't do this, then both build systems need special hacks to normalize the object name
from the file name. It's easier to just normalize the filename.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayIteratorPrototype.js: Renamed from Source/JavaScriptCore/builtins/ArrayIterator.prototype.js.
  • builtins/ArrayPrototype.js: Renamed from Source/JavaScriptCore/builtins/Array.prototype.js.
  • builtins/FunctionPrototype.js: Renamed from Source/JavaScriptCore/builtins/Function.prototype.js.
  • builtins/IteratorPrototype.js: Renamed from Source/JavaScriptCore/builtins/Iterator.prototype.js.
  • builtins/PromiseOperations.js: Renamed from Source/JavaScriptCore/builtins/Operations.Promise.js.
  • builtins/PromisePrototype.js: Renamed from Source/JavaScriptCore/builtins/Promise.prototype.js.
  • builtins/StringIteratorPrototype.js: Renamed from Source/JavaScriptCore/builtins/StringIterator.prototype.js.
  • builtins/TypedArrayPrototype.js: Renamed from Source/JavaScriptCore/builtins/TypedArray.prototype.js.
11:57 AM Changeset in webkit [192750] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Add WebCore namespace for generated bindings for supplemental method calls
https://bugs.webkit.org/show_bug.cgi?id=151431

Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2015-11-23
Reviewed by Alex Christensen.

Address build failures for generated supplemental method calls which are in the WebCore namespace.
The bindings are outside the WebCore namespace - so add WebCore namespace specifier where required.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateParametersCheck):

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4):

  • bindings/scripts/test/ObjC/DOMTestInterface.mm:

(-[DOMTestInterface supplementalStr1]):
(-[DOMTestInterface supplementalStr2]):
(-[DOMTestInterface setSupplementalStr2:]):
(-[DOMTestInterface supplementalStr3]):
(-[DOMTestInterface setSupplementalStr3:]):
(-[DOMTestInterface supplementalNode]):
(-[DOMTestInterface setSupplementalNode:]):
(-[DOMTestInterface builtinAttribute]):
(-[DOMTestInterface setBuiltinAttribute:]):
(-[DOMTestInterface supplementalMethod1]):
(-[DOMTestInterface supplementalMethod2:objArg:]):
(-[DOMTestInterface supplementalMethod3]):
(-[DOMTestInterface supplementalMethod4]):
(-[DOMTestInterface builtinFunction]):

11:48 AM Changeset in webkit [192749] by beidson@apple.com
  • 14 edits
    2 adds in trunk

Modern IDB: When a transaction is aborted, call onerror handlers for all in-progress requests.
https://bugs.webkit.org/show_bug.cgi?id=151550

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/abort-requests-cancelled.html

storage/indexeddb/modern/idbtransaction-objectstore-failures.html (with changes)
storage/indexeddb/modern/index-5.html (with changes)
Various (currently skipped) legacy IDB tests.

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::transaction):
(WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBClient::IDBDatabase::didStartTransaction):
(WebCore::IDBClient::IDBDatabase::willCommitTransaction):
(WebCore::IDBClient::IDBDatabase::didCommitTransaction):
(WebCore::IDBClient::IDBDatabase::willAbortTransaction):
(WebCore::IDBClient::IDBDatabase::didAbortTransaction):
(WebCore::IDBClient::IDBDatabase::didCommitOrAbortTransaction):

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::abort):
(WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBClient::IDBTransaction::didCreateObjectStoreOnServer):
(WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):
(WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
(WebCore::IDBClient::IDBTransaction::didDeleteObjectStoreOnServer):
(WebCore::IDBClient::IDBTransaction::didDeleteIndexOnServer):
(WebCore::IDBClient::IDBTransaction::immediateAbort): Deleted.
(WebCore::IDBClient::IDBTransaction::abortOnServer): Deleted.

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):

  • Modules/indexeddb/shared/IDBError.cpp:

(WebCore::idbErrorName):
(WebCore::idbErrorDescription):

  • Modules/indexeddb/shared/IDBError.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::loggingString):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

LayoutTests:

  • storage/indexeddb/modern/abort-requests-cancelled-expected.txt: Added.
  • storage/indexeddb/modern/abort-requests-cancelled.html: Added.
  • storage/indexeddb/modern/idbtransaction-objectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbtransaction-objectstore-failures.html:
  • storage/indexeddb/modern/index-5-expected.txt:
  • storage/indexeddb/modern/index-5.html:
11:41 AM Changeset in webkit [192748] by beidson@apple.com
  • 9 edits in trunk

Modern IDB: Unskip storage/indexeddb/mozilla/global-data.html.
https://bugs.webkit.org/show_bug.cgi?id=151557

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Unskipping existing test storage/indexeddb/mozilla/global-data.html).

  • Reworking some invalid ASSERTS
  • Actually opening pending open-database-requests after a version change transaction completes
  • Allow starting new transactions when the version change transaction has *started* finishing, but before it finishes finishing.
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::transaction):

  • Modules/indexeddb/client/IDBTransactionImpl.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::~MemoryObjectStore):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
10:39 AM Changeset in webkit [192747] by achristensen@apple.com
  • 4 edits in trunk

Fix crash in ~WebProcessPool when using Geolocation with useNetworkProcess=true
https://bugs.webkit.org/show_bug.cgi?id=151532

Reviewed by Benjamin Poulain.

Source/WebKit2:

  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::processPoolDestroyed):
(WebKit::WebGeolocationManagerProxy::processDidClose):
When a WebProcessPool is destroyed, only call stopUpdating if m_updateRequesters.clear()
stopped the updating, like we do in WebGeolocationManagerProxy::removeRequester.
Otherwise, call setEnableHighAccuracy if needed, also like we do in WebGeolocationManagerProxy::removeRequester.

Tools:

  • TestWebKitAPI/Tests/WebKit2/Geolocation.cpp:

(TestWebKitAPI::GeolocationTransitionToHighAccuracyStateTracker::eventsChanged):
(TestWebKitAPI::TEST):
(TestWebKitAPI::GeolocationTransitionToLowAccuracyStateTracker::eventsChanged):
(TestWebKitAPI::GeolocationTransitionToHighAccuracyStateTracker::GeolocationTransitionToHighAccuracyStateTracker): Deleted.
(TestWebKitAPI::GeolocationTransitionToLowAccuracyStateTracker::GeolocationTransitionToLowAccuracyStateTracker): Deleted.
Properly load about:blank in all WebViews to clean up. Without this change, we had a
Geolocation provider stopping after its state tracker was destroyed with its stack frame,
so it was calling a function on a test object that had gone out of scope.
Also, call WKContextSetUsesNetworkProcess(context, true) to show what crash this fixed,
but that will become the default soon and that call will be removed.

10:31 AM Changeset in webkit [192746] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

Remove DOMPromiseWithCallback
https://bugs.webkit.org/show_bug.cgi?id=151565

Reviewed by Eric Carlson.

DOMPromiseWithCallback is no longer used as WebCore JS built-ins are used to the cases where DOMPromiseWithCallback made sense.

No change in behavior.

  • Modules/mediastream/MediaDevices.h: Moved from DOMPromiseWithCallback to DOMPromise since the API is now called by JS built-ins.
  • bindings/js/JSDOMPromise.h:

(WebCore::DOMPromiseWithCallback::DOMPromiseWithCallback): Deleted.
(WebCore::DOMPromiseIteratorWithCallback::DOMPromiseIteratorWithCallback): Deleted.
(WebCore::Error>::resolve): Deleted.
(WebCore::Error>::reject): Deleted.
(WebCore::Error>::resolveEnd): Deleted.

9:00 AM Changeset in webkit [192745] by BJ Burg
  • 6 edits in trunk/Source

Web Inspector: when inspecting the inspector, add the inspection level to the title bar
https://bugs.webkit.org/show_bug.cgi?id=151555

Reviewed by Timothy Hatcher.

Source/WebCore:

  • English.lproj/Localizable.strings: add new localized string for alternate inspector title.

Source/WebInspectorUI:

Drive-by update to remove some localization strings that are no longer used.

  • Localizations/en.lproj/localizedStrings.js:

Source/WebKit2:

If the inspection level says we are inspecting an inspector, include the level
in the title bar to easily disambiguate it from the base level inspector.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::updateInspectorWindowTitle):

5:38 AM Changeset in webkit [192744] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] No need to assert the pipeline's bus presence in MediaPlayerPrivateGStreamerBase dtor
https://bugs.webkit.org/show_bug.cgi?id=151558

Reviewed by Carlos Garcia Campos.

In the MediaPlayerPrivateGStreamerBase destructor, there's some leftover code
that acquires a reference to the GStreamer pipeline's bus object and then
just asserts that it's not null. Not very useful, so remove it.

Also use nullptr to null out the m_player member.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):

4:44 AM Changeset in webkit [192743] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r192536): Null pointer dereference in JSPropertyNameEnumerator::visitChildren().
<https://webkit.org/b/151495>

Reviewed by Mark Lam

The test I added when fixing this bug the first time caught another bug when
run on 32-bit: jsString() can also cause GC, so we have to make sure that
JSPropertyNameEnumerator::m_propertyNames is null until after the array it
points to has been populated.

Test: property-name-enumerator-gc-151495.js

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::finishCreation):

4:09 AM WebKitGTK/2.10.x edited by mario@webkit.org
(diff)
3:25 AM Changeset in webkit [192742] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Unreviewed speculative buildfix after r192701.

  • PlatformMac.cmake:
1:03 AM Changeset in webkit [192741] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: freeSpace >= 0 in WebCore::RenderGrid::computeTrackSizesForDirection
https://bugs.webkit.org/show_bug.cgi?id=151254

Reviewed by Darin Adler.

Source/WebCore:

When in quirks mode, abnormally huge margins could lead to
negative computations of available logical sizes. We could add
an !document.inQuirksMode() check in the assertion but since
negative freeSpace values are valid (i.e. the condition is not
really part of the contract and everything will work as
expected) I've decided to simply remove it.

Test: fast/css-grid-layout/grid-quirks-mode-huge-margin-crash.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection): Deleted.

LayoutTests:

  • fast/css-grid-layout/grid-quirks-mode-huge-margin-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-quirks-mode-huge-margin-crash.html: Added.
12:49 AM Changeset in webkit [192740] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.11.2

WebKitGTK+ 2.11.2

12:47 AM Changeset in webkit [192739] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.2 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.11.2.
Note: See TracTimeline for information about the timeline view.