Timeline



Feb 14, 2014:

11:41 PM Changeset in webkit [164158] by akling@apple.com
  • 22 edits in trunk/Source/WebCore

CTTE: WorkerGlobalScope is always owned by a WorkerThread.
<https://webkit.org/b/128834>

Codify this by storing the owner thread as a WorkerThread& and making
thread() return a reference.

This exposed a couple of unnecessary assertions.

Reviewed by Anders Carlsson.

  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::webkitNotifications):

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):

  • inspector/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):

  • inspector/WorkerInspectorController.cpp:
  • inspector/WorkerRuntimeAgent.cpp:

(WebCore::WorkerRuntimeAgent::pauseWorkerGlobalScope):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeRequestFromCache):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
(WebCore::DedicatedWorkerGlobalScope::postMessage):
(WebCore::DedicatedWorkerGlobalScope::importScripts):
(WebCore::DedicatedWorkerGlobalScope::thread):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):

  • workers/SharedWorkerGlobalScope.cpp:

(WebCore::SharedWorkerGlobalScope::create):
(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::thread):

  • workers/SharedWorkerGlobalScope.h:
  • workers/SharedWorkerThread.cpp:

(WebCore::SharedWorkerThread::createWorkerGlobalScope):

  • workers/WorkerGlobalScope.cpp:

(WebCore::CloseWorkerGlobalScopeTask::performTask):
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::logExceptionToConsole):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::WorkerGlobalScope::isContextThread):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::thread):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::MessageWorkerGlobalScopeTask::performTask):
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):

9:45 PM Changeset in webkit [164157] by rniwa@webkit.org
  • 3 edits in trunk/PerformanceTests

Improve the appearance of DYEBench
https://bugs.webkit.org/show_bug.cgi?id=128866

Reviewed by Antti Koivisto.

Add a div that shows progress during the test. Also show 95th percentile,
and use a table instead of pre to show results.

  • DoYouEvenBench/Full.html:

(.addResult): Added. Shows results in a table.
(benchmarkClient.willRunTest): Added to show the progress bar.
(benchmarkClient.didRunTest):
(benchmarkClient.didRunSuites):
(benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js

  • DoYouEvenBench/resources/benchmark-runner.js:

(BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
weren't correctly parsed. We were treating top as left and bottom as top somehow.
(BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.

8:52 PM Changeset in webkit [164156] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

setSelectionRange shouldn't trigger a synchronous layout to check focusability when text field is already focused
https://bugs.webkit.org/show_bug.cgi?id=128804

Reviewed by Enrica Casucci.

Don't trigger a synchronous layout at the beginning of setSelectionRange if the element is already focused
since we don't have to check the size of render box in that case.

We should be able to get rid of this synchronous layout entirely once we fix https://webkit.org/b/128797
but that's somewhat risky behavioral change so we'll do that in a separate patch.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectAll): Fixed the bug where selectAll selects the entire document even if the text
form contol is focused if the selection is none (i.e. not anchored to any node).

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange): Only update the layout if the element is not focused
already. Also pass in DoNotSetFocus option to setSelection since we already have the focus in that case.

8:33 PM Changeset in webkit [164155] by rniwa@webkit.org
  • 1 edit
    2 copies in trunk/LayoutTests

Add back pre-r164154 results to platform/mac-mountainlion.

  • platform/mac-mountainlion/fast/forms/search-styled-expected.png: Copied from LayoutTests/platform/mac/fast/forms/search-styled-expected.png.
  • platform/mac-mountainlion/fast/forms/search-styled-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-styled-expected.txt.
8:28 PM Changeset in webkit [164154] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

Mac rebaseline after r164145.

  • platform/mac/fast/forms/search-styled-expected.png:
  • platform/mac/fast/forms/search-styled-expected.txt:
7:56 PM Changeset in webkit [164153] by rniwa@webkit.org
  • 7 edits in trunk/LayoutTests

Windows rebaselines after dependency updates.

  • platform/win/fast/css/first-letter-block-form-controls-crash-expected.txt:
  • platform/win/fast/css/relative-position-replaced-in-table-display-crash-expected.txt:
  • platform/win/fast/forms/access-key-for-all-elements-expected.txt:
  • platform/win/fast/forms/form-associated-element-crash3-expected.txt:
  • platform/win/fast/forms/search-styled-expected.txt:
  • platform/win/fast/multicol/renderer-positioned-assert-crash-expected.txt:
7:45 PM Changeset in webkit [164152] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Control tints don't update inside WebViews
https://bugs.webkit.org/show_bug.cgi?id=128862

Reviewed by Ryosuke Niwa.

  • WebView/WebView.mm:

(-[WebView _windowChangedKeyState]):
Call [super _windowChangedKeyState].

7:06 PM Changeset in webkit [164151] by Joseph Pecoraro
  • 9 edits in trunk/Source/JavaScriptCore

Web Inspector: CRASH when debugger closes while paused and remote inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=127757

Reviewed by Timothy Hatcher.

The problem was that the lifetime of the InspectorController and all agents
was tied to the remote inspector session. So, if a remote inspector was
disconnected while in the nested run loop, everything would get torn
down and when execution continued out of the nested runloop we would be
back in the original call stack of destroyed objects.

This patch changes the lifetime of the InspectorController and agents to
the JSGlobalObject. This way the agents are always alive, just the
frontend and backend channels are destroyed and recreated each remote
inspector session. This matches the agent lifetime for WebCore agents.
We can also later take advantage of the agents being alive before
and between inspector debug sessions to stash exception messages to
pass on to a debugger if a debugger is connected later.

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
Cleaner initialization of agents. Easier to follow.

(Inspector::JSGlobalObjectInspectorController::disconnectFrontend):
Move InjectedScript disconnection only once the global object is destroyed.
This way if a developer has attached once and included an injected script,
we will keep it around with any state it might want to remember until
the global object is destroyed.

(Inspector::JSGlobalObjectInspectorController::globalObjectDestroyed):
Disconnect agents and injected scripts when the global object is destroyed.

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::disconnect):
Now that the injected script manager is reused between remote
inspector sessions, don't clear the pointer on disconnect calls.
We now only call this once when the global object is getting
destroyed anyways so it doesn't matter. But if we wanted to call
disconnect multiple times, e.g. once per session, we could.

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::dispatchFunctionToListeners):
If the only listener was removed during the nested runloop, then when
we dispatch an event after the nested runloop the listener list will
be empty. Instead of asserting, just pass by an empty list.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::inspectorController):
Tie the inspector controller lifetime to the JSGlobalObject.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::init):
Create the inspector controller, and eagerly signal teardown
in destruction.

  • runtime/JSGlobalObjectDebuggable.h:
  • runtime/JSGlobalObjectDebuggable.cpp:

(JSC::JSGlobalObjectDebuggable::connect):
(JSC::JSGlobalObjectDebuggable::disconnect):
(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemoteFrontend):
Simplify by using the inspector controller on JSGlobalObject.

6:52 PM Changeset in webkit [164150] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Another build fix after r164149.

  • Scripts/webkitpy/port/port_testcase.py:

(test_apache_config_file_name_for_platform):

6:50 PM Changeset in webkit [164149] by rniwa@webkit.org
  • 3 edits
    1 move in trunk

Build fix after r164148.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port._apache_config_file_name_for_platform):

LayoutTests:

  • http/conf/apache2-httpd.conf: Removed.
  • http/conf/apache2.2-httpd.conf: Copied from LayoutTests/http/conf/apache2-httpd.conf.
6:33 PM Changeset in webkit [164148] by rniwa@webkit.org
  • 3 edits
    1 add in trunk

run-webkit-tests doesn't work with Apache 2.4
https://bugs.webkit.org/show_bug.cgi?id=128861

Reviewed by Andreas Kling.

Tools:

Use apache<version>-httpd.conf like we do on Fedora and Debian.

  • Scripts/webkitpy/port/base.py:

(Port._apache_config_file_name_for_platform):

LayoutTests:

  • http/conf/apache2.4-httpd.conf: Added.
5:27 PM Changeset in webkit [164147] by mhahnenberg@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

-[JSManagedValue value] needs to be protected by the API lock
https://bugs.webkit.org/show_bug.cgi?id=128857

Reviewed by Mark Lam.

  • API/APICast.h:

(toRef): Added an ASSERT so that we can detect these sorts of errors earlier. On 32-bit, toRef
can allocate objects so we need to be holding the lock.

  • API/APIShims.h: Removed outdated comments.
  • API/JSManagedValue.mm: Added RefPtr<JSLock> to JSManagedValue.

(-[JSManagedValue initWithValue:]): Initialize the m_lock field.
(-[JSManagedValue value]): Lock the JSLock, check the VM*, return nil if invalid, take the APIEntryShim otherwise.

  • runtime/JSLock.cpp: Bug fix in JSLock. We were assuming that the VM was always non-null in JSLock::lock.

(JSC::JSLock::lock):

5:06 PM Changeset in webkit [164146] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Add SPI for monitoring web process crashes
https://bugs.webkit.org/show_bug.cgi?id=128851

Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::processDidCrash):

4:59 PM Changeset in webkit [164145] by mitz@apple.com
  • 4 edits
    3 deletes in trunk

REGRESSION (r157443): Search fields with a non-white background don’t have a round bezel
https://bugs.webkit.org/show_bug.cgi?id=126295

Reviewed by Ryosuke Niwa.

Source/WebCore:

Reverted r157443 and improved comment.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::isControlStyled):

LayoutTests:

Reverted r157443.

  • fast/forms/search/search-field-background-color-expected.txt: Removed.
  • fast/forms/search/search-field-background-color.html: Removed.
  • platform/efl/fast/forms/search: Removed.
  • platform/efl/fast/forms/search/search-field-background-color-expected.png: Removed.
  • platform/efl/fast/forms/search/search-size-with-decorations-expected.png: Removed.
  • platform/efl/fast/forms/search/search-size-with-decorations-expected.txt: Removed.
  • platform/mac/fast/forms/search-styled-expected.txt:
4:54 PM Changeset in webkit [164144] by BJ Burg
  • 5 edits
    2 adds in trunk/Source

Web Replay: AtomicString replay input names should be stored in a thread-local table
https://bugs.webkit.org/show_bug.cgi?id=128829

Reviewed by Andreas Kling.

Similar to how DOM event names are frequently-used AtomicStrings, replay input
names are also checked in many places as a "type tag". This patch puts all known
input names into a class held by ThreadGlobalData and adds the shortcut inputTypes()
so that replay input types can be referenced with inputTypes.InputName().

  • WebCore.xcodeproj/project.pbxproj:
  • platform/ThreadGlobalData.cpp: Add inputTypes() shortcut.

(WebCore::ThreadGlobalData::ThreadGlobalData):

  • platform/ThreadGlobalData.h: Add inputTypes() shortcut.

(WebCore::ThreadGlobalData::inputTypes):

  • replay/ReplayInputTypes.cpp: Added.

(WebCore::ReplayInputTypes::ReplayInputTypes):

  • replay/ReplayInputTypes.h: Added.

(WebCore::inputTypes): The input names are provided by per-framework macros that
are generated by the replay inputs code generator.

4:51 PM Changeset in webkit [164143] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Activate CSS Region Tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=128854

Reviewed by Simon Fraser.

  • platform/win/TestExpectations: Activate CSS Region tests, turning off a

few failures.

4:48 PM Changeset in webkit [164142] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk

Add support for specced event handlers to HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=128292

Reviewed by Andreas Kling.

Source/WebCore:

Test: media/media-event-listeners.html

Add explicit event listener IDL attributes to HTMLMediaElement.

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:

LayoutTests:

  • media/media-event-listeners-expected.txt: Added.
  • media/media-event-listeners.html: Added.
4:04 PM Changeset in webkit [164141] by Brent Fulgham
  • 9 edits in trunk

[Win] Make tests more consistent with Mac platform
https://bugs.webkit.org/show_bug.cgi?id=128848

Reviewed by Simon Fraser.

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl: Add access to the

mock scrollbar and screen font substitution features.

  • WebPreferenceKeysPrivate.h: Ditto
  • WebPreferences.cpp: Ditto

(WebPreferences::mockScrollbarsEnabled):
(WebPreferences::setMockScrollbarsEnabled):
(WebPreferences::screenFontSubstitutionEnabled):
(WebPreferences::setScreenFontSubstitutionEnabled):

  • WebPreferences.h: Ditto
  • WebView.cpp:

(WebView::notifyPreferencesChanged): Ditto

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetDefaultsToConsistentValues): Turn CSS regions on,
turn mock scrollbars on, and allow screen font
substitution.

4:01 PM Changeset in webkit [164140] by rniwa@webkit.org
  • 7 edits in trunk/LayoutTests

Mac rebaseline after r164127.

  • platform/mac/media/audio-controls-rendering-expected.txt:
  • platform/mac/media/controls-after-reload-expected.txt:
  • platform/mac/media/controls-strict-expected.txt:
  • platform/mac/media/controls-styling-strict-expected.txt:
  • platform/mac/media/controls-without-preload-expected.txt:
  • platform/mac/media/video-no-audio-expected.txt:
3:29 PM Changeset in webkit [164139] by oliver@apple.com
  • 23 edits
    12 adds in trunk

Implement a few more Array prototype functions in JS
https://bugs.webkit.org/show_bug.cgi?id=128788

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

Remove a pile of awful C++, and rewrite in simple JS.

Needed to make a few other changes to get fully builtins
behavior to more accurately match a host function's.

  • builtins/Array.prototype.js:

(every):
(forEach):
(filter):
(map):
(some):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::BuiltinExecutables):
(JSC::BuiltinExecutables::createBuiltinExecutable):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitPutByVal):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitExpressionInfo):

  • interpreter/Interpreter.cpp:

(JSC::GetStackTraceFunctor::operator()):

  • parser/Nodes.h:

(JSC::FunctionBodyNode::overrideName):

  • profiler/LegacyProfiler.cpp:

(JSC::createCallIdentifierFromFunctionImp):

  • runtime/ArrayPrototype.cpp:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::deleteProperty):

  • runtime/JSFunction.h:

Source/WebCore:

Minor change to ensure that the inspector is treating builtins
as host functions.

Tests: js/regress/array-prototype-filter.html

js/regress/array-prototype-forEach.html
js/regress/array-prototype-map.html
js/regress/array-prototype-some.html

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

Make sure we treat builtins as regular host functions

LayoutTests:

Add performance tests, and update a couple of profiler tests as
we unavoidably show the call out to some of the builtin methods.

  • fast/profiler/built-in-function-calls-anonymous-expected.txt:
  • fast/profiler/built-in-function-calls-user-defined-function-expected.txt:
  • js/dom/array-foreach-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/dom/array-some-expected.txt:
  • js/regress/array-prototype-filter-expected.txt: Added.
  • js/regress/array-prototype-filter.html: Added.
  • js/regress/array-prototype-forEach-expected.txt: Added.
  • js/regress/array-prototype-forEach.html: Added.
  • js/regress/array-prototype-map-expected.txt: Added.
  • js/regress/array-prototype-map.html: Added.
  • js/regress/array-prototype-some-expected.txt: Added.
  • js/regress/array-prototype-some.html: Added.
  • js/regress/script-tests/array-prototype-filter.js: Added.

(test1):
(test2):
(test3):

  • js/regress/script-tests/array-prototype-forEach.js: Added.

(test1):
(test2):
(test3):

  • js/regress/script-tests/array-prototype-map.js: Added.

(test1):
(test2):
(test3):

  • js/regress/script-tests/array-prototype-some.js: Added.

(test1):
(test2):
(test3):

3:15 PM Changeset in webkit [164138] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

Add SPI for authentication
https://bugs.webkit.org/show_bug.cgi?id=128847

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
(WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):

3:09 PM Changeset in webkit [164137] by mhahnenberg@apple.com
  • 2 edits in trunk/Tools

Save ARGV in a local to avoid repeated lookups

Rubber stamped by Joseph Pecoraro.

  • jsc-cli/jsc-cli/CLIInstance.m:

(-[CLIInstance didReceiveArguments:atOffset:withLength:]):

2:44 PM Changeset in webkit [164136] by mhahnenberg@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

ASSERT(isValidAllocation(bytes)) when ObjC API creates custom errors
https://bugs.webkit.org/show_bug.cgi?id=128840

Reviewed by Joseph Pecoraro.

We need to add APIEntryShims around places where we allocate errors in JSC.
Also converted some of the createTypeError call sites to use ASCIILiteral.

  • API/JSValue.mm:

(valueToArray):
(valueToDictionary):

  • API/ObjCCallbackFunction.mm:

(JSC::objCCallbackFunctionCallAsConstructor):
(JSC::ObjCCallbackFunctionImpl::call):

  • API/tests/testapi.mm:
2:30 PM Changeset in webkit [164135] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Margin tiles are not created for the top and left sides when there is a < 1.0
scale factor
https://bugs.webkit.org/show_bug.cgi?id=128842

Reviewed by Simon Fraser.

floor the result of the computation whenever we have a negative origin, to ensure
that we are rounding 'up' to a larger number of tiles.

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::getTileIndexRangeForRect):

2:28 PM Changeset in webkit [164134] by mhahnenberg@apple.com
  • 7 edits in trunk/Tools

jsc-cli should allow scripts to access argv
https://bugs.webkit.org/show_bug.cgi?id=127486

Reviewed by Oliver Hunt.

  • jsc-cli/jsc-cli.xcodeproj/project.pbxproj:
  • jsc-cli/jsc-cli/CLIInstance.h:
  • jsc-cli/jsc-cli/CLIInstance.m:

(-[CLIInstance init]):
(-[CLIInstance loadFile:]):
(-[CLIInstance didReceiveArguments:atOffset:withLength:]):

  • jsc-cli/jsc-cli/JSRunLoopThread.h:
  • jsc-cli/jsc-cli/JSRunLoopThread.m:

(-[JSRunLoopThread initWithContext:]):
(-[JSRunLoopThread loadFile:]):
(-[JSRunLoopThread start]):

  • jsc-cli/jsc-cli/main.m:

(printUsage):
(main):

2:27 PM Changeset in webkit [164133] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

setSelection should not synchronously trigger layout
https://bugs.webkit.org/show_bug.cgi?id=128797

Reviewed by Antti Koivisto.

Only update the appearance and reveal selection when the style and the layout is already up to date.
Otherwise, do so in performPostLayoutTasks.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelection): Set m_pendingSelectionUpdate and synchronously update caret rect
if we don't need to update style or layout.
(WebCore::updateSelectionByUpdatingLayoutOrStyle): Added. Used by FrameSelection member functions to
trigger layout or style recalc whichever is needed.
(WebCore::FrameSelection::updateAndRevealSelection): Extracted from setSelection.
(WebCore::FrameSelection::absoluteCaretBounds): Call updateSelectionByUpdatingLayoutOrStyle since caret rect
is no longer updated synchronously in setSelection.
(WebCore::FrameSelection::recomputeCaretRect): Don't assert that visibleStart().absoluteCaretBounds() is
equal to m_absCaretBounds since selection may no longer be caret at this point.
(WebCore::FrameSelection::setCaretVisibility): Call updateSelectionByUpdatingLayoutOrStyle since we're
synchronously calling into updateAppearance here. In the future, we should make this asynchronous as well.
(WebCore::FrameSelection::selectionBounds): Call updateSelectionByUpdatingLayoutOrStyle since selection bounds
could be outdated. This code only triggering style recalc was presumably a bug.

  • editing/FrameSelection.h:
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks): Update selection's appearance and scroll to reveal selection
as needed.

2:09 PM Changeset in webkit [164132] by andersca@apple.com
  • 11 edits in trunk/Source/WebKit2

Add WKBackForwardListDidChangeNotification
https://bugs.webkit.org/show_bug.cgi?id=128839

Reviewed by Dan Bernstein.

Also, make LoaderClient::didChangeBackForwardList take a Vector of WebBackForwardListItems
instead of a pointer to a Vector of API::Objects.

  • Shared/API/Cocoa/WKFoundation.h:
  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::didChangeBackForwardList):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/Cocoa/WKBackForwardList.h:
  • UIProcess/API/Cocoa/WKBackForwardList.mm:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::LoaderClient::didChangeBackForwardList):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::goToItem):
(WebKit::WebBackForwardList::clear):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeBackForwardList):

  • UIProcess/WebPageProxy.h:
1:29 PM Changeset in webkit [164131] by akling@apple.com
  • 63 edits
    3 deletes in trunk

Purge remaining ENABLE(SHADOW_DOM) cruft.
<https://webkit.org/b/128827>

Source/WebCore:

Remove the remaining 8.8 million lines of Shadow DOM code to align
with goals for intent to ship 60fps on mobile in 2014.

Reviewed by Antti Koivisto.

Tools:

Reviewed by Antti Koivisto.

  • DumpRenderTree/gtk/DumpRenderTree.cpp:

(resetDefaultsToConsistentValues):

  • Scripts/webkitperl/FeatureList.pm:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

1:21 PM Changeset in webkit [164130] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MediaControls][iOS] Embedded YouTube does not show a 'paused' button state after starting
https://bugs.webkit.org/show_bug.cgi?id=128755

Reviewed by Eric Carlson.

Don't rely on "canPlay()", instead, take the information directly from the event itself. I.e., when
handling the 'play' event, switch mode to playing, and vice versa for the 'pause' event.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePlay):
(Controller.prototype.handlePause):
(Controller.prototype.updatePlaying):
(Controller.prototype.setPlaying):

1:19 PM Changeset in webkit [164129] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MediaControls][iOS] Start playback button is visible when playing embedded YouTube
https://bugs.webkit.org/show_bug.cgi?id=128754

Reviewed by Eric Carlson.

Update shouldHaveStartPlaybackButton to match the behavior of the plugin proxy.

Add a accessor to determine whether playback has been requested:

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::userGestureRequired):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:

Update the logic of shouldHaveStartPlaybackButton.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.shouldHaveStartPlaybackButton):

1:17 PM Changeset in webkit [164128] by mhahnenberg@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Baseline JIT should have a fast path to bypass the write barrier on op_enter
https://bugs.webkit.org/show_bug.cgi?id=128832

Reviewed by Filip Pizlo.

  • jit/JIT.h: Removed some random commented out functions.h
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_enter):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier):

1:15 PM Changeset in webkit [164127] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[MediaControls] Add support for a loading progress meter
https://bugs.webkit.org/show_bug.cgi?id=128651

Reviewed by Eric Carlson.

Draw the loaded ranges underneath the timeline slider. Use a -webkit-canvas()
CSS function to allow the track of the slider to reflect the current state of
the video's loadedTimeRanges property.

Since -webkit-canvas() will share a backing store with all other CSS images using
the same identifier, use a monotonically increasing identifier to uniquely identify the timeline on a per-document basis.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-timeline):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller): Call updateProgress().
(Controller.prototype.createControls): Set up the canvas style and identifier.
(Controller.prototype.handleLoadStart): Call updateProgress().
(Controller.prototype.handleStalled): Ditto.
(Controller.prototype.handleReadyStateChange): Ditto.
(Controller.prototype.handleDurationChange): Ditto.
(Controller.prototype.handleProgress): Ditto.
(Controller.prototype.progressFillStyle): Added an easily overridable method

to determine the fill color of the progress bar.

(Controller.prototype.updateProgress): Draw the loadedTimeRanges into the timeline slider.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.progressFillStyle): Override.

1:13 PM Changeset in webkit [164126] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Always enable AVKit in WK2
https://bugs.webkit.org/show_bug.cgi?id=128686

Reviewed by Simon Fraser.

Enable AVKit in iOS WK2 by default. This enables <video> element full screen in WK2.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

1:00 PM Changeset in webkit [164125] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

Clean up JSDOMStringMap::deleteProperty
https://bugs.webkit.org/show_bug.cgi?id=128801

Reviewed by Geoffrey Garen.

Follow up on my cleaning of JSDOMStringMapCustom, this time for deletion.

Previously, we would query for the name, then call deleteItem() if the name was
found. Instead, everything is moved to deleteItem which then return if the deletion
is successful or not.

By using convertPropertyNameToAttributeName, we can use Element::hasAttribute() directly
to find if the attribute exists or not. If it exists, we remove it.

Theoretically we could have a single pass over the attributes to find->delete but this
code is not hot enough to justify anything fancy at this point.

Finally, we no longer check for isValidPropertyName() on deletion. JSDOMStringMapCustom
was the last client of DatasetDOMStringMap::deleteItem() and it could not call deleteItem()
with invalid name since the name would have failed DatasetDOMStringMap::contains().
The spec does not specify any name checking either for deletion so we are safe just ignoring
invalid input.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::deleteProperty):

  • dom/DatasetDOMStringMap.cpp:

(WebCore::DatasetDOMStringMap::deleteItem):

  • dom/DatasetDOMStringMap.h:
12:59 PM Changeset in webkit [164124] by benjamin@webkit.org
  • 4 edits in trunk/Source

Improve the performance on mobile of FTPDirectoryDocument
https://bugs.webkit.org/show_bug.cgi?id=128778

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-14
Reviewed by Antti Koivisto.

Source/WebCore:

Little cleanup.

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::processFilesizeString):
(WebCore::wasLastDayOfMonth):
(WebCore::processFileDateString):
(WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):

Source/WTF:

  • wtf/text/WTFString.h:

(WTF::String::endsWith): add a missing overload.

12:58 PM Changeset in webkit [164123] by benjamin@webkit.org
  • 6 edits in trunk/Source/WebCore

Do not attempt to synchronize attributes when no Simple Selector could match an animatable attribute
https://bugs.webkit.org/show_bug.cgi?id=128728

Reviewed by Andreas Kling.

In most cases, we don't even need to test for the flag animatedSVGAttributesNotDirty.
If the selector filter could never match an animatable attribute, there is no point in testing for one.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::canMatchStyleAttribute):
Skip the second test when the local name is equal to canonicalLocalName. That is the common case.

(WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):

  • svg/SVGElement.cpp:

(WebCore::addQualifiedName):
(WebCore::SVGElement::animatableAttributeForName):
(WebCore::SVGElement::isAnimatableAttribute):
(WebCore::SVGElement::filterOutAnimatableAttribute):

  • svg/SVGElement.h:
  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::filterOutAnimatableAttribute):

  • svg/SVGScriptElement.h:

Move the list of animatable attribute to a static function available in Release.
Selector matching is a lot more flexible than normal name matching. Since the local name must
always match, it is used as a key to get the full QualifiedName to compare to the selector.

Separating the list of animatable attributes between Selectors and SVGElement::isAnimatableAttribute
would be error prone. Instead, SVGElement::isAnimatableAttribute() is modified to use
SVGElement::animatableAttributeForName so that the two never get out of sync.

Since SVGScriptElement has one additional restriction to isAnimatableAttribute(), the function
filterOutAnimatableAttribute() is added to remove a qualified name from the complete list of animatable attributes.
This ensure SVGElement::animatableAttributeForName() always has the complete list, and subclasses of SVGElement
can only remove QualifiedNames, not add them.

12:57 PM Changeset in webkit [164122] by Lucas Forschler
  • 3 edits
    3 copies in tags/Safari-538.16.6

Merged r164119.

12:56 PM Changeset in webkit [164121] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Add WKContentObservation support when dispatching synthetic mouse events
https://bugs.webkit.org/show_bug.cgi?id=128715

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-14
Reviewed by Darin Adler.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleTap):

12:53 PM Changeset in webkit [164120] by benjamin@webkit.org
  • 6 edits in trunk/Source/WebKit2

<rdar://problem/15994340> WK2: Cannot scroll to the bottom of the page when the keyboard is on the screen
https://bugs.webkit.org/show_bug.cgi?id=128710

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-14
Reviewed by Enrica Casucci.

WKView/WKWebView needs to adapt the UIScrollView insets to leave some space for the keyboard.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView dealloc]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKWebView _keyboardWillChangeFrame:]):
(-[WKWebView _keyboardDidChangeFrame:]):
(-[WKWebView _keyboardWillShow:]):
(-[WKWebView _keyboardWillHide:]):

  • UIProcess/API/ios/WKContentView.h:
  • UIProcess/API/ios/WKContentView.mm:

(-[WKContentView isAssistingNode]):

  • UIProcess/API/ios/WKInteractionView.h:
  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView dealloc]):
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
(-[WKView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKView _keyboardWillChangeFrame:]):
(-[WKView _keyboardDidChangeFrame:]):
(-[WKView _keyboardWillShow:]):
(-[WKView _keyboardWillHide:]):

12:51 PM Changeset in webkit [164119] by fpizlo@apple.com
  • 3 edits
    3 adds in trunk

Don't optimize variadic closure calls
https://bugs.webkit.org/show_bug.cgi?id=128835

Source/JavaScriptCore:

Reviewed by Gavin Barraclough.

Read the check that had been in JITStubs.cpp, back in the day. This code came
from the DFG and the DFG didn't need these checks.

  • jit/JITOperations.cpp:

LayoutTests:

Reviewed by Gavin Barraclough.

Add a test that covers both the performance and correctness of this case.

  • js/regress/script-tests/variadic-closure-call.js: Added.

(foo.bar):
(foo):

  • js/regress/variadic-closure-call-expected.txt: Added.
  • js/regress/variadic-closure-call.html: Added.
12:47 PM Changeset in webkit [164118] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Make code generation of the unoptimized pseudo classes separate
https://bugs.webkit.org/show_bug.cgi?id=128704

Reviewed by Andreas Kling.

Mapping the unoptimized selectors when generating the code was useful for debugging
but those cases are so common that looping over unoptimizedPseudoCheckers was more
costly than anticipated.

This patch moves the unoptimized pseudo selector in their own array to simplify code generation.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

12:34 PM Changeset in webkit [164117] by graouts@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: color wheel should support Retina displays
https://bugs.webkit.org/show_bug.cgi?id=124355

Reviewed by Timothy Hatcher.

Take into account the devicePixelRatio in order to draw the color wheel
with as many colors as we can draw with the current DPI and to correctly
convert from page coordinates to canvas coordinates when dealing with
mouse events.

12:28 PM Changeset in webkit [164116] by Lucas Forschler
  • 3 edits in tags/Safari-538.16.6/Source/JavaScriptCore

Merged r164063.

12:08 PM Changeset in webkit [164115] by mmaxfield@apple.com
  • 10 edits
    2 adds in trunk

Implement text-decoration-skip: auto
https://bugs.webkit.org/show_bug.cgi?id=128786

Reviewed by Dean Jackson.

http://lists.w3.org/Archives/Public/www-style/2014Feb/0485.html
We are updating the initial value of text-decoration-skip to a new value, "auto".
On Mac + iOS, this will have the same behavior as "skip".

Source/WebCore:

Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-default.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationSkipFlagsToCSSValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseTextDecorationSkip):

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::valueToDecorationSkip):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:

LayoutTests:

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-default-expected.txt: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-default.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt:
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html:
12:04 PM QtWebKitBuildBots edited by kadam@inf.u-szeged.hu
(diff)
11:49 AM Changeset in webkit [164114] by Lucas Forschler
  • 5 edits in tags/Safari-538.16.6/Source

Versioning.

11:47 AM Changeset in webkit [164113] by Lucas Forschler
  • 1 copy in tags/Safari-538.16.6

New Tag.

11:38 AM Changeset in webkit [164112] by mitz@apple.com
  • 8 edits in trunk/Source/WebKit2

Stop using PLATFORM(MAC) in WebKit2/PluginProcess except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128802

Reviewed by Darin Adler.

  • PluginProcess/PluginControllerProxy.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).

(WebKit::PluginControllerProxy::PluginControllerProxy):
(WebKit::PluginControllerProxy::paint):

  • PluginProcess/PluginControllerProxy.h: Ditto.
  • PluginProcess/PluginControllerProxy.messages.in: Ditto.
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::PluginProcess): Ditto.
(WebKit::PluginProcess::netscapePluginModule): Added && !PLATFORM(IOS) around Mac-specific
quirk.
(WebKit::PluginProcess::createWebProcessConnection): Changed PLATFORM(MAC) to OS(DARWIN)
around use of Mach-based IPC.

  • PluginProcess/PluginProcess.h: Changed PLATFORM(MAC) to PLATFORM(COCOA), and to

USE(APPKIT) around override of stopRunLoop, which is implemented using AppKit.

  • PluginProcess/PluginProcess.messages.in: Removed PLATFORM(MAC) guard around

SetProcessSuppressionEnabled. Changed it to PLATFORM(COCOA) around SetQOS.

  • PluginProcess/WebProcessConnection.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).

(WebKit::WebProcessConnection::createPluginInternal):
(WebKit::WebProcessConnection::createPlugin):

11:26 AM Changeset in webkit [164111] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Add -[WKWebView estimatedProgress]
https://bugs.webkit.org/show_bug.cgi?id=128830

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView estimatedProgress]):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::willChangeEstimatedProgress):
(WebKit::NavigationState::didChangeEstimatedProgress):

11:13 AM Changeset in webkit [164110] by Simon Fraser
  • 14 edits in trunk/Source

Give ScrollingTree(State)Nodes a reference to another layer, which is used for moving overflow:scroll contents around
https://bugs.webkit.org/show_bug.cgi?id=128790

Reviewed by Beth Dakin.

Have scrolling tree nodes and state nodes track another layer, the
"scrolled contents layer", for accelerated overflow:scroll.

When making ScrollingTreeScrollingNodes for overflow:scroll, the node's
layer will point to the composited element's primary layer, and its
scrolledContentsLayer to the layer that gets moved around by scrolling.

Do some other cleanup on AsyncScrollingCoordinator, removing
functions that just called through to nodes.

Source/WebCore:

  • WebCore.exp.in:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::updateScrollingNode):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
  • page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:

(WebCore::ScrollingTreeScrollingNodeIOS::updateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):

Source/WebKit2:

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

10:59 AM Changeset in webkit [164109] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add -[WKWebView _handle]
https://bugs.webkit.org/show_bug.cgi?id=128828

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _handle]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
10:31 AM Changeset in webkit [164108] by Brent Fulgham
  • 3 edits in trunk/LayoutTests

Unreviewed test correction to get bots green.

  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt: Don't

snapshot final pixel location, since these seems to be somewhat dependent
on the test machine.

  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html: Ditto
9:52 AM Changeset in webkit [164107] by Chris Fleizach
  • 5 edits
    2 adds in trunk

AX: WebKit needs heuristics to differentiate lists used for layout from semantic data lists, similar to the heuristics for layout tables versus data tables.
https://bugs.webkit.org/show_bug.cgi?id=122320

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Many authors use lists for layout, rather than presenting data. Exposing these kinds of lists to accessibility users
makes the web harder to process and listen, while degrading the importance of real lists.

This introduces heuristics to filter out layout lists with the following:

  1. If it's a named list, like ol or aria=list, then it's a list. 1a. Unless the list has no children, then it's not a list.
  2. If it displays visible list markers, it's a list.
  3. If it does not display list markers and has only one child, it's not a list.
  4. If it does not have any listitem children, it's not a list.
  5. Otherwise it's a list (for now).

Test: accessibility/list-detection.html

  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::roleValue):

  • accessibility/AccessibilityList.h:

LayoutTests:

  • accessibility/aria-roles.html:
  • accessibility/list-detection-expected.txt: Added.
  • accessibility/list-detection.html: Added.
9:51 AM Changeset in webkit [164106] by b.long@cablelabs.com
  • 8 edits in trunk/Source/WebCore

Use AtomicString arguments in TrackPrivateBaseClient callbacks
https://bugs.webkit.org/show_bug.cgi?id=128765

Reviewed by Eric Carlson.

No new tests because this doesn't change functionality.

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::idChanged):
(WebCore::AudioTrack::labelChanged):
(WebCore::AudioTrack::languageChanged):

  • html/track/AudioTrack.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::InbandTextTrack):
(WebCore::InbandTextTrack::idChanged):
(WebCore::InbandTextTrack::labelChanged):
(WebCore::InbandTextTrack::languageChanged):

  • html/track/InbandTextTrack.h:
  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::idChanged):
(WebCore::VideoTrack::labelChanged):
(WebCore::VideoTrack::languageChanged):

  • html/track/VideoTrack.h:
  • platform/graphics/TrackPrivateBase.h:
9:48 AM Changeset in webkit [164105] by Brent Fulgham
  • 12 edits
    37 adds in trunk

Create some latched scrolling tests.
https://bugs.webkit.org/show_bug.cgi?id=127606
<rdar://problem/15911348>

Reviewed by Simon Fraser.

Tools:

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]): Update to recognize
the new "mouseScrollByX:andY:withWheel:andMomentumPhases:" selector.
(+[EventSendingController webScriptNameForSelector:]): Ditto.
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]): Implement
the new wheel event sender.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: Add declaration

of new mouseScrollByWithWheelAndMomentumPhases method.

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Added

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Add stub for iOS.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveMessageFromInjectedBundle): Handle the new
mouseScrollByWithWheelAndMomentumPhases message.
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Handle the
new mouseScrollByWithWheelAndMomentumPhases.

  • WebKitTestRunner/efl/EventSenderProxyEfl.cpp:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Provide stub that
relays to the standard mouse wheel handler.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Provide implementation
of mouse wheel gesture method.

LayoutTests:

Add a series of tests to cover desired behavior with wheel events (including momentum).
This behavior is specific to the Mac platform, so is limited to the platform/mac and
platform/mac-wk2 directories.

  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select.html: Added.
  • platform/mac/fast/scrolling: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-div.html: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-select.html: Added.
9:41 AM Changeset in webkit [164104] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: comparePositions(newEnd, newStart) >= 0 in WebCore::ApplyStyleCommand::updateStartEnd
https://bugs.webkit.org/show_bug.cgi?id=121791

Patch by Renata Hodovan <rhodovan.u-szeged@partner.samsung.com> on 2014-02-14
Reviewed by Darin Adler.

Source/WebCore:

If WebCore::ApplyStyleCommand::applyBlockStyle() creates a TextIterator for a range
that has an element with ReplacedElement rendering object, then a ',' is emitted in the
constructor of TextIterator. Due to this comma the end of the run range can be at the
wrong position, what makes the assertion fire. This situation can be handled the same
way in TextIterator::rangeFromLocationAndLength() as we do in case of the emitted '\n's.

Test: editing/execCommand/remove-formatting-from-iframe-in-button.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::rangeFromLocationAndLength):

LayoutTests:

  • editing/execCommand/remove-formatting-from-iframe-in-button-expected.txt: Added.
  • editing/execCommand/remove-formatting-from-iframe-in-button.html: Added.
9:35 AM Changeset in webkit [164103] by abucur@adobe.com
  • 3 edits
    2 adds in trunk

[CSS Regions] visibility: hidden on a region should hide its content
https://bugs.webkit.org/show_bug.cgi?id=128814

Reviewed by Mihnea Ovidenie.

Source/WebCore:

The patch properly checks that the content of a region layer should be painted before actually
calling the paint function (for example, when visibility: hidden is specified on a region, its
content should be hidden).

Test: fast/regions/visibility-hidden.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

LayoutTests:

Add a test that verifies visibility: hidden on a region hides the content of
the flow thread.

  • fast/regions/visibility-hidden-expected.html: Added.
  • fast/regions/visibility-hidden.html: Added.
9:11 AM Changeset in webkit [164102] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[ASan] Disable JSStack::sanitizeStack() to avoid false-positive stack-buffer-overflow errors
<http://webkit.org/b/128819>

Reviewed by Filip Pizlo.

  • interpreter/JSStack.cpp:

(JSC::JSStack::sanitizeStack): When building with the clang
address sanitizer, don't sanitize the stack since it will
trigger false-positive stack-buffer-overflow errors. Disabling
this only results in a performance penalty, not a correctness
penalty.

6:02 AM WebKitGTK/SpeedUpBuild edited by Andres Gomez
More details for icecc compilation (diff)
5:58 AM WebKitGTK/SpeedUpBuild edited by Andres Gomez
Added more details about icecc compilation (diff)
5:57 AM Changeset in webkit [164101] by g.czajkowski@samsung.com
  • 6 edits in trunk/LayoutTests

Refactoring design-mode-spellcheck-off.html to use asynchronous spellchecking
https://bugs.webkit.org/show_bug.cgi?id=127770

Reviewed by Ryosuke Niwa.

Enable asynchronous spellchecking in design-mode-spellcheck-off.html.

Due to js-test-pre.js adds some HTML elements inside the BODY, the misspelled
phrase was moved into separated div element. It allows to check spelling marker
on desired element instead of whole body.

It turned out that the test does not underline "asdf" as misspelled although
spellcheck attribute is on. To force spellchecking, the caret needs to be moved
out of the misspelled word. To be more reliable, the test now contains two test
cases in 'desingMode=on' when spellcheck attribute is off and on.

  • editing/spelling/design-mode-spellcheck-off-expected.txt:
  • editing/spelling/design-mode-spellcheck-off.html:
  • platform/gtk-wk2/TestExpectations:
  • platform/gtk/TestExpectations:

Skip the test for GTK.

  • platform/win/TestExpectations:

Add failing test expectation.

4:26 AM Changeset in webkit [164100] by g.czajkowski@samsung.com
  • 6 edits in trunk/LayoutTests

Use asynchronous spellchecking in spelling-hasspellingmarker.js
https://bugs.webkit.org/show_bug.cgi?id=128526

Reviewed by Ryosuke Niwa.

Refactoring spelling-hasspellingmarker.js to use asynchronous spellchecking.
In addition, adds some bits for non-DumpRenderTree users.

  • editing/spelling/script-tests/spelling-hasspellingmarker.js:

(addContainer): creates a new div element based on given markup.
(typeMisspelling): types 'zz' to the element.
(verifySpellingMarkers): calls shouldBecomeEqual to verify spelling markers.
(tests): contains test cases.
(done): invokes next test cases if any, otherwise calls finishJSTest().

  • editing/spelling/spelling-hasspellingmarker-expected.txt:

Update baseline.

  • editing/spelling/spelling-hasspellingmarker.html:

Include editing.js due to the test started using typeCharacterCommand().

  • platform/gtk-wk2/TestExpectations:
  • platform/gtk/TestExpectations:

Skip spelling-hasspellingmarker.html for GTK (wk1 and wk2).

3:52 AM Changeset in webkit [164099] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Follow-up fix after r164036.

Patch by László Langó <llango.u-szeged@partner.samsung.com> on 2014-02-14
Reviewed by Csaba Osztrogonác.

  • dom/Document.cpp:

(WebCore::Document::create):

3:38 AM Changeset in webkit [164098] by commit-queue@webkit.org
  • 3 edits in trunk

Unreviewed, rolling out r164090.
http://trac.webkit.org/changeset/164090
https://bugs.webkit.org/show_bug.cgi?id=128807

It broke the EFL build (Requested by Ossy on #webkit).

  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsEfl.cmake:
3:14 AM Changeset in webkit [164097] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

(try)append and insert operations don't need new operator for PODs
https://bugs.webkit.org/show_bug.cgi?id=128185

Patch by Wojciech Bielawski <w.bielawski@samsung.com> on 2014-02-14
Reviewed by Darin Adler.

Vector's methods use VectorCopier to copy data.
VectorCopier for PODs exteded to be used with different types. For different types placement new copy approach is applied. For the same types memcpy is applied.

  • wtf/Vector.h:

(WTF::OverflowHandler>::append): use VectorCopier to copy data.
(WTF::OverflowHandler>::tryAppend): use VectorCopier to copy data.
(WTF::OverflowHandler>::insert): use VectorCopier to copy data.

3:10 AM Changeset in webkit [164096] by mario.prada@samsung.com
  • 2 edits
    2 deletes in trunk/Source/JavaScriptCore

Cleaning the JSStaticScopeObject files left behind after renaming their objects to JSNameScope
https://bugs.webkit.org/show_bug.cgi?id=127595

Patch by Andres Gomez <Andres Gomez> on 2014-02-14
Reviewed by Mario Sanchez Prada.

JSStaticScopeObject was renamed to JSNameScope and removed long
ago but the files were left behind empty and the CMake compilation
in need of its existance. Now, we are definitely getting rid of
them.

  • CMakeLists.txt:
  • runtime/JSStaticScopeObject.cpp: Removed.
  • runtime/JSStaticScopeObject.h: Removed.
1:47 AM Changeset in webkit [164095] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Update Windows test expectations.

js/regress/emscripten-memops.html is timing out, not failing.

  • platform/win/TestExpectations:

Feb 13, 2014:

10:04 PM Changeset in webkit [164094] by mitz@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit2

[Cocoa] Expose the bundle form client
https://bugs.webkit.org/show_bug.cgi?id=128792

Reviewed by Anders Carlsson.

  • WebKit2.xcodeproj/project.pbxproj: Added new file.
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added.
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(didFocusTextField): Implemented this WKBundlePageFormClient callback by calling the form
delegate.
(setUpFormClient): Added. Initializes the form client with the above function.
(-[WKWebProcessPlugInBrowserContextController _formDelegate]): Added this getter.
(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added. Initializes or
clears the form client.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

Declared _formDelegate property.

10:03 PM Changeset in webkit [164093] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

[Cocoa] Add a way to get the page from a frame in the injected bundle
https://bugs.webkit.org/show_bug.cgi?id=128791

Reviewed by Anders Carlsson.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _browserContextController]): Added.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Declared

_browserContextController property.

9:37 PM Changeset in webkit [164092] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Kill some of the last vestiges of the C++ interpreter's PICs
https://bugs.webkit.org/show_bug.cgi?id=128796

Reviewed by Michael Saboff.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printGetByIdOp):
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfo):

  • bytecode/Opcode.h:

(JSC::padOpcodeName):

  • bytecode/PolymorphicAccessStructureList.h:

(JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::PolymorphicStubInfo):
(JSC::PolymorphicAccessStructureList::PolymorphicStubInfo::set):
(JSC::PolymorphicAccessStructureList::PolymorphicAccessStructureList):
(JSC::PolymorphicAccessStructureList::visitWeak):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::visitWeakReferences):

  • bytecode/StructureStubInfo.h:

(JSC::isGetByIdAccess):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/Repatch.cpp:

(JSC::getPolymorphicStructureList):
(JSC::tryBuildGetByIDList):

  • llint/LowLevelInterpreter.asm:
8:03 PM Changeset in webkit [164091] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[MSE] Move PublicURLManager shutdown logic so ActiveDOMObjects associated with public URLs won't leak.
https://bugs.webkit.org/show_bug.cgi?id=128532

Patch by Byungseon Shin <sun.shin@lge.com> on 2014-02-13
Reviewed by Jer Noble.

This fixes a leak of DOM objects by breaking the circular reference
between Document, PublicURLManager, and MediaSource.
Instead of clearing PublicURLManager at destruction-time,
which is delayed indefinitely because of the circular reference,
clear the PublicURLManager during ActiveDOMObject::stop().

Frome Blink r151890 by <acolwell@chromium.org>
<https://src.chromium.org/viewvc/blink?view=rev&revision=151890>

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::publicURLManager):

  • html/DOMURL.h:
  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::create):
(WebCore::PublicURLManager::PublicURLManager):
(WebCore::PublicURLManager::registerURL):
(WebCore::PublicURLManager::stop):

  • html/PublicURLManager.h:
7:35 PM Changeset in webkit [164090] by Martin Robinson
  • 3 edits in trunk

[GTK] [CMake] JavaScriptCore crashes in JSC::eval
https://bugs.webkit.org/show_bug.cgi?id=128434

Extend a fix for EFL to all ports that use GCC. Also include further fixes
that were applied only to the autotools build.

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsCommon.cmake: Add -fno-omit-frame-pointer to all ports as well

as -fno-tree-dce, which is necessary for GTK+.

  • Source/cmake/OptionsEfl.cmake: The GCC flag additions are now in the common options file.
6:42 PM Changeset in webkit [164089] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The JSContainerConvertor and ObjcContainerConvertor need to protect JSValueRefs. Part 2.
<https://webkit.org/b/128764>

Reviewed by Mark Hahnenberg.

toJS() is the wrong cast function to use. We need to use toJSForGC() instead.
Also we need to acquire the JSLock to prevent concurrent accesses to the
Strong handle list.

  • API/JSValue.mm:

(JSContainerConvertor::add):
(containerValueToObject):
(ObjcContainerConvertor::add):
(objectToValue):

6:36 PM Changeset in webkit [164088] by mhahnenberg@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSManagedValue::dealloc modifies NSMapTable while iterating it
https://bugs.webkit.org/show_bug.cgi?id=128713

Reviewed by Geoffrey Garen.

Having to write a test for this revealed a bug in how addManagedReference:withOwner:
actually notifies JSManagedValues of new owners.

  • API/JSManagedValue.mm:

(-[JSManagedValue dealloc]):

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addManagedReference:withOwner:]):
(-[JSVirtualMachine removeManagedReference:withOwner:]):

  • API/tests/testapi.mm:

(testObjectiveCAPI):

6:32 PM Changeset in webkit [164087] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix build.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentsLength):

6:25 PM Changeset in webkit [164086] by roger_fong@apple.com
  • 2 edits in trunk/LayoutTests

[Windows] Unreviewed gardening of some timing out tests.
https://bugs.webkit.org/show_bug.cgi?id=128789.

  • platform/win/TestExpectations:
6:04 PM Changeset in webkit [164085] by rniwa@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Speculative Release build fix after r164077.

  • API/JSValue.mm:
5:59 PM Changeset in webkit [164084] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

Remove position:sticky runtime flag
https://bugs.webkit.org/show_bug.cgi?id=128774

Reviewed by Simon Fraser.

Rollout of r128663

No new tests are necessary because there is no behavior change.

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSParserMode.h:
  • dom/Document.cpp:
  • dom/Document.h:
  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/Settings.h:
5:53 PM Changeset in webkit [164083] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add -[WKWebView stopLoading:]
https://bugs.webkit.org/show_bug.cgi?id=128784

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView stopLoading:]):

5:49 PM Changeset in webkit [164082] by dfarler@apple.com
  • 2 edits in trunk/Tools

DumpRenderTree fails to build: Perl support module building for OS X but linking for the simulator
https://bugs.webkit.org/show_bug.cgi?id=128780

Reviewed by Simon Fraser.

  • DumpRenderTree/ios/PerlSupport/IPhoneSimulatorNotification/Makefile.PL:

Use xcrun -find clang instead of `xcrun --sdk $ENV{SDKROOT} -find clang,
which will pick up SDKROOT=iphonesimulator from building the Xcode aggregate target.

5:44 PM Changeset in webkit [164081] by rniwa@webkit.org
  • 12 edits
    25 deletes in trunk

Unreviewed, rolling out r164073 and r164080.
http://trac.webkit.org/changeset/164073
http://trac.webkit.org/changeset/164080
https://bugs.webkit.org/show_bug.cgi?id=128781

Broke Mac builds (Requested by rniwa on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2014-02-13

Tools:

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/efl/EventSenderProxyEfl.cpp:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
  • WebKitTestRunner/mac/EventSenderProxy.mm:

LayoutTests:

  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler-expected.txt: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler.html: Removed.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select.html: Removed.
  • platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-div-latched-div.html: Removed.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe.html: Removed.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html: Removed.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html: Removed.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe.html: Removed.
  • platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt: Removed.
  • platform/mac/fast/scrolling/scroll-select-latched-select.html: Removed.
5:30 PM Changeset in webkit [164080] by Brent Fulgham
  • 2 edits in trunk/Tools

Unreviewed build fix for Mountain Lion.

  • DumpRenderTree/mac/EventSendingController.mm: Provide definition

for kCGScrollWheelEventScrollPhase if it isn't found in the
system headers.

5:24 PM Changeset in webkit [164079] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Add -[WKWebView activeURL]
https://bugs.webkit.org/show_bug.cgi?id=128777

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView activeURL]):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::willChangeActiveURL):
(WebKit::NavigationState::didChangeActiveURL):

5:17 PM Changeset in webkit [164078] by zoltan@webkit.org
  • 6 edits
    1 add in trunk/PerformanceTests

[CSS Shapes] Add performance test for complex polygon with shape-margin
https://bugs.webkit.org/show_bug.cgi?id=128769

Reviewed by Ryosuke Niwa.

This patch modifies the logic of createShapeOutsideTest to accept multiple
CSS properties from the test. The patch adds performance test for complex
polygon shape (self intersecting at multiple places) case, moreover we
apply shape-margin on the polygon also.

  • Layout/Shapes/ShapeOutsideContentBox.html:
  • Layout/Shapes/ShapeOutsideInset.html:
  • Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
  • Layout/Shapes/ShapeOutsideRaster.html:
  • Layout/Shapes/ShapeOutsideSimplePolygon.html:
  • Layout/Shapes/resources/shapes.js:
5:06 PM Changeset in webkit [164077] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The JSContainerConvertor and ObjcContainerConvertor need to protect JSValueRefs.
<https://webkit.org/b/128764>

Reviewed by Mark Hahnenberg.

Added a vector of Strong<Unknown> references in the 2 containers, and append
the newly created JSValues to those vectors. This will keep all those JS objects
alive for the duration of the conversion.

  • API/JSValue.mm:

(JSContainerConvertor::add):
(ObjcContainerConvertor::add):

4:35 PM Changeset in webkit [164076] by Gustavo Noronha Silva
  • 7 edits
    1 add in trunk

[GTK][CMake] Generate GObject DOM bindings .symbols files
https://bugs.webkit.org/show_bug.cgi?id=126210

Reviewed by Martin Robinson.

.:

  • Source/PlatformGTK.cmake: add checking DOM bindings API as a dependency

for documentation generation.

Source/WebCore:

No new tests. Build change only.

  • CMakeLists.txt: list Quota module files and IDLs even if the feature

is disabled, for GTK, since we rely on that for our DOM bindings.

  • PlatformGTK.cmake: add a new target to check for DOM symbols API by

running the new python script.

  • bindings/gobject/GNUmakefile.am: call the new python script instead

of using a custom rule.

Tools:

  • gtk/check-gdom-symbols: Added. Checks symbols compatibility.

(should_update_symbols_file):

4:30 PM Changeset in webkit [164075] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

text-decoration-skip: ink skips randomly when using SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=128709

Reviewed by Simon Fraser.

Source/WebCore:

This patch simply disables skipping underlines being used with SVG fonts.
It's a stopgap until we can support skipping properly with SVG fonts.

Test: svg/custom/svg-fonts-skip-ink.html

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont):

  • platform/graphics/mac/FontMac.mm:

(WebCore::Font::dashesForIntersectionsWithRect):

LayoutTests:

This text checks that some text without descenders in an SVG font renders the same with and
without text-decoration-skip: ink.

  • svg/custom/svg-fonts-skip-ink-expected.html: Added.
  • svg/custom/svg-fonts-skip-ink.html: Added.
4:22 PM Changeset in webkit [164074] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Added GetMyArgumentsLength to FTL
https://bugs.webkit.org/show_bug.cgi?id=128758

Patch by Matthew Mirman <mmirman@apple.com> on 2014-02-13
Reviewed by Filip Pizlo.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentsLength):

  • tests/stress/ftl-getmyargumentslength.js: Added.

(foo):

4:22 PM Changeset in webkit [164073] by Brent Fulgham
  • 12 edits
    37 adds in trunk

Create some latched scrolling tests.
https://bugs.webkit.org/show_bug.cgi?id=127606
<rdar://problem/15911348>

Reviewed by Simon Fraser.

Tools:

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]): Update to recognize
the new "mouseScrollByX:andY:withWheel:andMomentumPhases:" selector.
(+[EventSendingController webScriptNameForSelector:]): Ditto.
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]): Implement
the new wheel event sender.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: Add declaration

of new mouseScrollByWithWheelAndMomentumPhases method.

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Added

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Add stub for iOS.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveMessageFromInjectedBundle): Handle the new
mouseScrollByWithWheelAndMomentumPhases message.
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Handle the
new mouseScrollByWithWheelAndMomentumPhases.

  • WebKitTestRunner/efl/EventSenderProxyEfl.cpp:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Provide stub that
relays to the standard mouse wheel handler.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Provide implementation
of mouse wheel gesture method.

LayoutTests:

Add a series of tests to cover desired behavior with wheel events (including momentum).
This behavior is specific to the Mac platform, so is limited to the platform/mac and
platform/mac-wk2 directories.

  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-div.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-div-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-iframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-iframe-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-mainframe.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select-with-handler.html: Added.
  • platform/mac-wk2/tiled-drawing/fast-scroll-select-latched-select.html: Added.
  • platform/mac/fast/scrolling: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-div.html: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-div-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-mainframe.html: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt: Added.
  • platform/mac/fast/scrolling/scroll-select-latched-select.html: Added.
4:22 PM Changeset in webkit [164072] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

Fix the iOS build after <http://trac.webkit.org/changeset/164064

  • wtf/Platform.h:
3:57 PM Changeset in webkit [164071] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, roll out http://trac.webkit.org/changeset/164066.

It broke tests and it was just plain wrong.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeForStubInfo):

  • runtime/Structure.h:

(JSC::Structure::takesSlowPathInDFGForImpureProperty):

3:41 PM Changeset in webkit [164070] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix.

Fixed typo.

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::run):

3:35 PM Changeset in webkit [164069] by msaboff@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Change FTL stack check to use VM's stackLimit
https://bugs.webkit.org/show_bug.cgi?id=128561

Reviewed by Filip Pizlo.

Changes FTL function entry to check the call frame register against the FTL
specific stack limit (VM::m_ftlStackLimit) and throw an exception if the
stack limit has been exceeded. Updated the exception handling code to have
a second entry that will unroll the current frame to the caller, since that
is where the exception should be processed.

  • ftl/FTLCompile.cpp:

(JSC::FTL::fixFunctionBasedOnStackMaps):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):

  • ftl/FTLState.h:
  • runtime/VM.h:

(JSC::VM::addressOfFTLStackLimit):

3:34 PM Changeset in webkit [164068] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the ARM build when HAVE_ARM_NEON_INTRINSICS is enabled

Add !HAVE(ARM_NEON_INTRINSICS)-guard around file-level inline function arithmeticSoftware to
avoid an unused function compiler warning when building with ARM Neon intrinsics.

  • platform/graphics/filters/FEComposite.cpp:
3:33 PM Changeset in webkit [164067] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add -[WKWebView goToBackForwardListItem:]
https://bugs.webkit.org/show_bug.cgi?id=128773

Reviewed by Andreas Kling.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView goToBackForwardListItem:]):

3:31 PM Changeset in webkit [164066] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

GetByIdStatus shouldn't call takesSlowPathInDFGForImpureProperty() for self accesses, and calling that method should never assert about anything
https://bugs.webkit.org/show_bug.cgi?id=128772

Reviewed by Mark Hahnenberg.

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeForStubInfo):

  • runtime/Structure.h:

(JSC::Structure::takesSlowPathInDFGForImpureProperty):

3:28 PM Changeset in webkit [164065] by zoltan@webkit.org
  • 1 edit
    2 adds in trunk/PerformanceTests

[CSS Shapes] Add performance test for raster shape
https://bugs.webkit.org/show_bug.cgi?id=128746

Reviewed by Ryosuke Niwa.

This patch adds performance testing for image valued shape-outside.
The test is skipped by default for now.

  • Layout/Shapes/ShapeOutsideRaster.html: Added.
  • Layout/Shapes/resources/shape.gif: Added.
3:17 PM Changeset in webkit [164064] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

[iOS] Disable HAVE_ARM_NEON_INTRINSICS

For now, disable HAVE_ARM_NEON_INTRINSICS when building for iOS. We want
to audit the applicable code before we enable this define.

  • wtf/Platform.h:
3:07 PM Changeset in webkit [164063] by mhahnenberg@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add some RELEASE_ASSERTs to catch JSLock bugs earlier
https://bugs.webkit.org/show_bug.cgi?id=128762

Reviewed by Mark Lam.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • runtime/JSLock.cpp:

(JSC::JSLock::DropAllLocks::DropAllLocks):

3:04 PM Changeset in webkit [164062] by beidson@apple.com
  • 5 edits in trunk

IDB: Three tests crash the DatabaseProcess under ~KeyedDecoder
https://bugs.webkit.org/show_bug.cgi?id=128763

Reviewed by Anders Carlsson.

Source/WebCore:

No new tests (Covered by three existing tests)

  • platform/KeyedCoding.h:

(WebCore::KeyedEncoder::encodeObjects): If the array is empty we still have to begin() and end() it.

LayoutTests:

  • platform/mac-wk2/TestExpectations: One test passes, one passes with expectation changes, and the third is now a text failure.
  • storage/indexeddb/key-type-array-expected.txt:
3:02 PM Changeset in webkit [164061] by commit-queue@webkit.org
  • 11 edits in trunk

[css3-text] Support -webkit-text-decoration-skip: objects
https://bugs.webkit.org/show_bug.cgi?id=128723

Patch by Yuki Sekiguchi <yuki.sekiguchi@access-company.com> on 2014-02-13
Reviewed by Dean Jackson.

Source/WebCore:

Implemented 'objects' value of text-decoration-skip.
http://www.w3.org/TR/2013/CR-css-text-decor-3-20130801/#text-decoration-skip

This is initial value and same behavior without
ENABLE_CSS3_TEXT_DECORATION_SKIP_INK flag. Threfore, this patch only
added parser code and constant for 'objects'.

Changed the initial value of text-decoration-skip.

The current implementation parses 'none', but the rendering code is
not match the spec, so this patch added FIXME to the rendering code.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationSkipFlagsToCSSValue):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseTextDecorationSkip):

  • css/CSSValueKeywords.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::valueToDecorationSkip):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:

LayoutTests:

Added 'objects' value to the current test case.
Added getComputedStyle() test to test renderTextDecorationSkipFlagsToCSSValue() code.

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt:
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html:
2:59 PM Changeset in webkit [164060] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix ARM NEON build following <http://trac.webkit.org/changeset/164058>
(https://bugs.webkit.org/show_bug.cgi?id=128767)

I inadvertently didn't include header NEONHelpers.h, which defines WebCore::loadRGBA8AsFloat().

  • platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
2:46 PM Changeset in webkit [164059] by fpizlo@apple.com
  • 38 edits
    11 adds in trunk/Source

Hoist and combine array bounds checks
https://bugs.webkit.org/show_bug.cgi?id=125433

Source/JavaScriptCore:

Reviewed by Mark Hahnenberg.

This adds a phase for reasoning about overflow checks and array bounds checks. It's
block-local, and removes both overflow checks and bounds checks in one go.

This also improves reasoning about commutative operations, and CSE between
CheckOverflow and Unchecked arithmetic.

This strangely uncovered a DFG backend bug where we were trying to extract an int32
from a constant even when that constant was just simply a number. I fixed that bug.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::set):

  • dfg/DFGArgumentsSimplificationPhase.cpp:

(JSC::DFG::ArgumentsSimplificationPhase::run):

  • dfg/DFGArithMode.h:

(JSC::DFG::subsumes):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::pureCSE):
(JSC::DFG::CSEPhase::int32ToDoubleCSE):
(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGEdge.cpp:

(JSC::DFG::Edge::dump):

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::sanitized):
(JSC::DFG::Edge::hash):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::valueOfInt32Constant):

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertConstant):

  • dfg/DFGIntegerCheckCombiningPhase.cpp: Added.

(JSC::DFG::IntegerCheckCombiningPhase::IntegerCheckCombiningPhase):
(JSC::DFG::IntegerCheckCombiningPhase::run):
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):
(JSC::DFG::IntegerCheckCombiningPhase::rangeKeyAndAddend):
(JSC::DFG::IntegerCheckCombiningPhase::isValid):
(JSC::DFG::IntegerCheckCombiningPhase::insertAdd):
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):
(JSC::DFG::performIntegerCheckCombining):

  • dfg/DFGIntegerCheckCombiningPhase.h: Added.
  • dfg/DFGNode.h:

(JSC::DFG::Node::willHaveCodeGenOrOSR):

  • dfg/DFGNodeType.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileAdd):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::handleCommutativity):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionFalse):

  • runtime/Identifier.h:
  • runtime/Intrinsic.h:
  • runtime/JSObject.h:
  • tests/stress/get-by-id-untyped.js: Added.

(foo):

  • tests/stress/inverted-additive-subsumption.js: Added.

(foo):

  • tests/stress/redundant-add-overflow-checks.js: Added.

(foo):

  • tests/stress/redundant-array-bounds-checks-addition-skip-first.js: Added.

(foo):
(arraycmp):

  • tests/stress/redundant-array-bounds-checks-addition.js: Added.

(foo):
(arraycmp):

  • tests/stress/redundant-array-bounds-checks-unchecked-addition.js: Added.

(foo):
(arraycmp):

  • tests/stress/redundant-array-bounds-checks.js: Added.

(foo):
(arraycmp):

  • tests/stress/tricky-array-bounds-checks.js: Added.

(foo):
(arraycmp):

Source/WTF:

Reviewed by Mark Hahnenberg.

  • GNUmakefile.list.am:
  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/HashMethod.h: Added.

(WTF::HashMethod::operator()):

2:45 PM Changeset in webkit [164058] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Write FEComposite::computeArithmeticPixelsNeon() in terms of loadRGBA8AsFloat()
https://bugs.webkit.org/show_bug.cgi?id=128767

Reviewed by Dean Jackson.

This patch was inspired by Gabor Rapcsanyi's work in <https://bugs.webkit.org/show_bug.cgi?id=90669>.

Currently we duplicate code in FEComposite::computeArithmeticPixelsNeon() to read pixel data.
Instead we should use the convenience function WebCore::loadRGBA8AsFloat. This also resolves
an uninitialized variable compiler warning in the existing code.

  • platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:

(WebCore::FEComposite::computeArithmeticPixelsNeon):

2:34 PM Changeset in webkit [164057] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL should be OK with compact_unwind in a data section
https://bugs.webkit.org/show_bug.cgi?id=128756

Reviewed by Mark Hahnenberg.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateCodeSection):
(JSC::FTL::mmAllocateDataSection):

2:18 PM Changeset in webkit [164056] by graouts@webkit.org
  • 3 edits in trunk/Tools

Unreviewed. changing my email address.

2:13 PM Changeset in webkit [164055] by timothy@apple.com
  • 1 edit in trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp

Attempt to fix LevelDB builds.

2:13 PM Changeset in webkit [164054] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Make WKWebViewConfigurationPrivate.h private
https://bugs.webkit.org/show_bug.cgi?id=128761

Reviewed by Tim Horton.

  • WebKit2.xcodeproj/project.pbxproj:
1:55 PM Changeset in webkit [164053] by mmaxfield@apple.com
  • 19 edits
    2 adds in trunk

During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected
https://bugs.webkit.org/show_bug.cgi?id=128688

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds a field, m_needsPositionStyleConversion, to StyledMarkupAccumulator.

Also, renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

Test: editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::createMarkupInternal):

  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences shouldConvertPositionStyleOnCopy]):
(-[WebPreferences setShouldConvertPositionStyleOnCopy:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Renames the ConvertPositionStyleOnCopy setting to ShouldConvertPositionStyleOnCopy

  • Shared/WebPreferencesStore.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetShouldConvertPositionStyleOnCopy):
(WKPreferencesGetShouldConvertPositionStyleOnCopy):

  • UIProcess/API/C/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

Performs a copy of the contents of a particular div, rather than the entire body. Makes sure that
no position:fixed -> position:absolute conversion occurs.

  • editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt:
  • editing/pasteboard/copy-paste-converts-sticky-and-fixed.html:
  • editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy-expected.txt: Added.
  • editing/pasteboard/copy-paste-doesnt-convert-sticky-and-fixed-during-partial-copy.html: Added.
1:38 PM Changeset in webkit [164052] by BJ Burg
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid should support editing tables with arbitrary columns
https://bugs.webkit.org/show_bug.cgi?id=128619

Reviewed by Timothy Hatcher.

The data grid editing code should work with any columns, but was previously
hardcoded with the column identifiers used by DOMStorageView. This patch
makes the editing code work with any column identifiers. It also fixes some
bugs in previous/next navigation during data entry.

  • UserInterface/DOMStorageContentView.css: Highlight missing keys and values.

(.content-view.dom-storage > .data-grid tr.missing-value td.value-column):
(.content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column):

  • UserInterface/DOMStorageContentView.js: Don't blow away the entire table

whenever the backend notifies us of an update to the storage object. This
caused the editing state to be destroyed when values were entered interactively.

(WebInspector.DOMStorageContentView.prototype.reset): Inline the callback
passed to DOMStorageObject.getEntries().
(WebInspector.DOMStorageContentView.prototype.itemsCleared):
(WebInspector.DOMStorageContentView.prototype.itemAdded): Request a sort
of the table rows after backend tells us about item additions or updates.

(WebInspector.DOMStorageContentView.prototype.itemUpdated): Request a sort
of the table rows after backend tells us about item additions or updates.

(WebInspector.DOMStorageContentView.prototype._sortDataGrid): Use DataGrid's
built-in sorting function.

(WebInspector.DOMStorageContentView.prototype._deleteCallback):
(WebInspector.DOMStorageContentView.prototype._editingCallback): Don't force
recreation of the entire table whenever editing finishes. Perform most
of the error checking and editing logic here, including when to insert a
new placeholder row, and when to commit the entered values to DOM storage.

  • UserInterface/DOMStorageObject.js: Keep track of the DOM storage entries

in the model so we can detect duplicate entries. Remove unused id arguments.

(WebInspector.DOMStorageObject):
(WebInspector.DOMStorageObject.prototype.get entries):
(WebInspector.DOMStorageObject.prototype.itemsCleared):
(WebInspector.DOMStorageObject.prototype.itemRemoved):
(WebInspector.DOMStorageObject.prototype.set this):
(WebInspector.DOMStorageObject.prototype.itemAdded):
(WebInspector.DOMStorageObject.prototype.set var):
(WebInspector.DOMStorageObject.prototype.itemUpdated):

  • UserInterface/DataGrid.js:

(.sortDataGrid):
(WebInspector.DataGrid.createSortableDataGrid): Use the built-in DataGrid
sortNodes() implementation.
(WebInspector.DataGrid.prototype._startEditingNodeAtColumnIndex): Renamed
from _startEditingColumnOfDataGridNode. It's easier to understand the navigation
code when presented in terms of adjusting column indexes rather than identifiers.

(WebInspector.DataGrid.prototype._startEditing):
(WebInspector.DataGrid.prototype.determineNextCell): Added. Decides which
column and row to edit next and whether the table can be sorted before the
next cell edit begins.

(WebInspector.DataGrid.prototype.moveToNextCell): Added. Wrapper method for
the above which handles sorting and beginning the next cell edit.

(WebInspector.DataGrid.prototype._editingCommitted): Use better helper methods.
(WebInspector.DataGrid.prototype._editingCancelled): Add an assert.
(WebInspector.DataGrid.prototype.get sortColumnIdentifier): Shorten.
(WebInspector.DataGrid.prototype.addPlaceholderNode):
(WebInspector.DataGrid.prototype.removeChild):
(WebInspector.DataGrid.prototype.):
(WebInspector.DataGrid.prototype.sortNodes): Remove unecessary copying
of all nodes into a separate array. Defer sorting if the user is in the
middle of editing a cell. Make placeholder nodes always sort to the bottom
regardless of the sort column identifier and sort direction.

(WebInspector.DataGridNode.prototype._attach):
(WebInspector.PlaceholderDataGridNode): Renamed from CreationDataGridNode.
(WebInspector.PlaceholderDataGridNode.prototype.makeNormal):

  • UserInterface/StorageManager.js: Don't pass unused id argument.

(WebInspector.StorageManager.prototype.itemRemoved):
(WebInspector.StorageManager.prototype.itemAdded):
(WebInspector.StorageManager.prototype.itemUpdated):

1:37 PM Changeset in webkit [164051] by timothy@apple.com
  • 11 edits in trunk/Source

Enable inspection of recently used IndexedDB databases.

https://bugs.webkit.org/show_bug.cgi?id=128687

Reviewed by Brady Eidson & Joseph Pecoraro.

Source/WebCore:

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::getDatabaseNames):

  • Modules/indexeddb/IDBFactoryBackendInterface.h:
  • Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:

(WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):

  • Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:

Fix up the arguments passed to getDatabaseNames.

  • WebCore.xcodeproj/project.pbxproj:

Make DOMStringList.h private so WebKit2 can use it.

  • inspector/InspectorIndexedDBAgent.cpp:

Modernize the loops and remove some PLATFORM(COCOA) ifdefs to
compile the code.

  • inspector/protocol/IndexedDB.json: Use number for version to

allow larger values instead of clamping to int.

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:

(WebKit::sharedRecentDatabaseNameMap):
(WebKit::combinedSecurityOriginIdentifier):
(WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
(WebKit::WebIDBFactoryBackend::getDatabaseNames):
(WebKit::WebIDBFactoryBackend::open):
(WebKit::WebIDBFactoryBackend::deleteDatabase):
Keep track of recently used database names per security-origin pair.
Implement getDatabaseNames to return the recently used names.

  • WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

Fix up the arguments passed to getDatabaseNames.

1:26 PM Changeset in webkit [164050] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • UIProcess/API/Cocoa/WKWebView.mm:

(layoutMilestones):

1:14 PM Changeset in webkit [164049] by andersca@apple.com
  • 6 edits
    1 copy in trunk/Source/WebKit2

Add rendering progress events SPI
https://bugs.webkit.org/show_bug.cgi?id=128752

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _observedRenderingProgressEvents]):
(layoutMilestones):
(-[WKWebView _setObservedRenderingProgressEvents:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

(NS_OPTIONS):

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::renderingProgressEvents):
(WebKit::NavigationState::LoaderClient::didLayout):

  • WebKit2.xcodeproj/project.pbxproj:
12:46 PM Changeset in webkit [164048] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: long script names should be have text-overflow:ellipsis in probe details sidebar
https://bugs.webkit.org/show_bug.cgi?id=128550

Reviewed by Timothy Hatcher.

Make the link element 'display: block', place it after the floated icons,
and set the appropriate CSS overflow properties.

  • UserInterface/ProbeDetailsSidebarPanel.css:

(.details-section.probe-set .options > a.go-to-link):

  • UserInterface/ProbeSetDetailsSection.js:

(WebInspector.ProbeSetDetailsSection):

12:45 PM Changeset in webkit [164047] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Copying (createMarkup) wrapping text results in space between wrapped lines stripped.
https://bugs.webkit.org/show_bug.cgi?id=63233

Source/WebCore:

The problem is StyledMarkupAccumulator uses renderedText and the space at
the end of the text has been stripped when the tag after the text was wrapped.

Patch by Chang Shu <cshu@webkit.org> on 2014-02-13
Reviewed by Ryosuke Niwa.

Test: editing/pasteboard/copy-text-with-wrapped-tag.html

  • editing/TextIterator.cpp:

(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::handleTextBox):

  • editing/TextIterator.h:

Check the special case when the iterator runs over a range that is followed by a non-text box.
In this case, the possible last space has been collapsed and needs to be restored.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::renderedText):
Check if the range is followed by more nodes and pass this information to the constructed TextIterator.

LayoutTests:

Patch by Chang Shu <cshu@webkit.org> on 2014-02-13
Reviewed by Ryosuke Niwa.

The problem is StyledMarkupAccumulator uses renderedText and the space at
the end of the text has been stripped when the tag after the text was wrapped.

  • editing/pasteboard/copy-text-with-wrapped-tag-expected.txt: Added.
  • editing/pasteboard/copy-text-with-wrapped-tag.html: Added.
12:31 PM Changeset in webkit [164046] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Gaps for text-decoration-skip: ink are calculated assuming the glyph orientation is the same as the run orientation
https://bugs.webkit.org/show_bug.cgi?id=128718

Reviewed by Darin Adler.

Source/WebCore:

This is a stop-gap patch to make underlines in CJK text not look terrible. A long-term fix is to refactor
showGlyphsWithAdvances to move rotation logic into a common place that the text-decoration-skip: ink code
can use.

Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-orientation-upright.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

LayoutTests:

This test draws text that has descenders that would be skipped over if the glyph orientation was the same
as the run orientation. However, it uses text-orientation: upright to make those two orientations not equal.
It then compares this to no skipping at all.

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-orientation-upright-expected.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-orientation-upright.html: Added.
12:04 PM Changeset in webkit [164045] by Lucas Forschler
  • 2 edits in tags/Safari-538.16.5/Source/WebKit2

Merged r164031.

11:50 AM Changeset in webkit [164044] by Lucas Forschler
  • 5 edits in tags/Safari-538.16.5/Source

Versioning.

11:47 AM Changeset in webkit [164043] by Lucas Forschler
  • 1 copy in tags/Safari-538.16.5

New Tag.

11:32 AM Changeset in webkit [164042] by ap@apple.com
  • 5 edits in trunk

[Mac] Add a WebKit1 SPI to get WebCrypto master key from a client
https://bugs.webkit.org/show_bug.cgi?id=128725

Reviewed by Anders Carlsson.

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::wrapCryptoKey):
(WebChromeClient::unwrapCryptoKey):

  • WebView/WebUIDelegatePrivate.h:

Looks like UIDelegate is the closest we have to a reasonable place.

Tools:

  • DumpRenderTree/mac/UIDelegate.mm: (-[UIDelegate webCryptoMasterKeyForWebView:]):

Use the SPI to specify a key.

10:56 AM Changeset in webkit [164041] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

IDB: TestExpectations cleanup

Unreviewed.

  • platform/mac-wk2/TestExpectations: More tests pass than fail, so only list failures.
10:52 AM Changeset in webkit [164040] by beidson@apple.com
  • 5 edits in trunk/LayoutTests

IDB: TestExpectations batch - HTTP tests

Unreviewed.

  • http/tests/security/cross-origin-indexeddb-allowed-expected.txt:
  • http/tests/security/cross-origin-indexeddb-expected.txt:
  • http/tests/security/resources/cross-origin-iframe-for-indexeddb.html:
  • platform/mac-wk2/TestExpectations: Two of the http tests are worker tests. They remain skipped. The other three pass with test updates.
10:45 AM Changeset in webkit [164039] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CStack Branch: VM::currentReturnThunkPC appears to be unused and should be removed
https://bugs.webkit.org/show_bug.cgi?id=127205

Reviewed by Geoffrey Garen.

Removed ununsed references to VM::currentReturnThunkPC.

  • jit/ThunkGenerators.cpp:

(JSC::arityFixup):

  • runtime/VM.h:
10:39 AM Changeset in webkit [164038] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

InsertIntoTextNodeCommand should get Settings from the Frame.
<https://webkit.org/b/128678>

EditCommands have a frame() accessor that returns a reference,
so there's no need to go through Document.

Reviewed by Anders Carlsson.

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply):

10:36 AM Changeset in webkit [164037] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/mac

iOS build fix.

  • WebView/WebView.mm:

(+[WebView registerForMemoryNotifications]):

10:31 AM Changeset in webkit [164036] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Document should be constructable
https://bugs.webkit.org/show_bug.cgi?id=115643

Patch by László Langó <llango.u-szeged@partner.samsung.com> on 2014-02-13
Reviewed by Darin Adler.

Source/WebCore:

http://www.w3.org/TR/2014/WD-dom-20140204/#interface-document
Make Document constructable so that one can do "new Document"
instead of "document.implementation.createHTMLDocument()".

Test: fast/dom/Document/document-constructor.html

  • dom/Document.cpp:

(WebCore::Document::create):
(WebCore::Document::origin):

  • dom/Document.h:
  • dom/Document.idl:

LayoutTests:

  • fast/dom/Document/document-constructor-expected.txt: Added.
  • fast/dom/Document/document-constructor.html: Added.
  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
10:07 AM Changeset in webkit [164035] by commit-queue@webkit.org
  • 24 edits
    2 moves in trunk

[CSS Grid Layout] Rename named areas property
https://bugs.webkit.org/show_bug.cgi?id=127990

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-02-13
Reviewed by Sergio Villar Senin.

From Blink r165891 by <Manuel Rego Casasnovas>

The property 'grid-template' has been renamed to 'grid-template-areas'
in the last two versions of the spec.

Source/WebCore:

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSGridTemplateAreasValue.cpp: Renamed from Source/WebCore/css/CSSGridTemplateValue.cpp.

(WebCore::CSSGridTemplateAreasValue::CSSGridTemplateAreasValue):
(WebCore::stringForPosition):
(WebCore::CSSGridTemplateAreasValue::customCSSText):

  • css/CSSGridTemplateAreasValue.h: Renamed from Source/WebCore/css/CSSGridTemplateValue.h.

(WebCore::CSSGridTemplateAreasValue::create):
(WebCore::CSSGridTemplateAreasValue::~CSSGridTemplateAreasValue):
(WebCore::CSSGridTemplateAreasValue::gridAreaMap):
(WebCore::CSSGridTemplateAreasValue::rowCount):
(WebCore::CSSGridTemplateAreasValue::columnCount):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTemplateAreas):

  • css/CSSParser.h:
  • css/CSSPropertyNames.in:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isGridTemplateAreasValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

Source/WebInspectorUI:

  • Tools/PrettyPrinting/css.js:
  • UserInterface/External/CodeMirror/css.js:

LayoutTests:

  • fast/css-grid-layout/grid-item-area-get-set.html:
  • fast/css-grid-layout/grid-item-column-row-get-set.html:
  • fast/css-grid-layout/grid-item-end-after-get-set.html:
  • fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
  • fast/css-grid-layout/grid-item-start-before-get-set.html:
  • fast/css-grid-layout/grid-template-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-get-set.html:
10:06 AM Changeset in webkit [164034] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove the last remnants of Maemo support
https://bugs.webkit.org/show_bug.cgi?id=85238

Patch by Adrian Bunk <bunk@stusta.de> on 2014-02-13
Reviewed by Ryosuke Niwa.

  • plugins/npapi.h:
10:05 AM Changeset in webkit [164033] by beidson@apple.com
  • 8 edits in trunk/LayoutTests

IDB: TestExpectations batch - "transaction-abort.html to versionchangerequest-activedomobject.html”

Unreviewed.

  • platform/mac-wk2/TestExpectations:
  • storage/indexeddb/transaction-active-flag-expected.txt:
  • storage/indexeddb/transaction-after-close-expected.txt:
  • storage/indexeddb/transaction-read-only-expected.txt:
  • storage/indexeddb/transaction-storeNames-required-expected.txt:
  • storage/indexeddb/version-change-abort-expected.txt:
  • storage/indexeddb/version-change-exclusive-expected.txt:
10:00 AM Changeset in webkit [164032] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Code cleanup: remove gcc<4.7 guards.
https://bugs.webkit.org/show_bug.cgi?id=128729

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2014-02-13
Reviewed by Anders Carlsson.

Remove GCC_VERSION_AT_LEAST guards when it checks for pre-4.7 versions,
as WK does not compile with earlier gcc versions.

Source/JavaScriptCore:

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::cacheFlush):

  • interpreter/StackVisitor.cpp:

(JSC::printif):

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/Platform.h:
9:30 AM Changeset in webkit [164031] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Disable XPC for plug-ins that need executable heap
https://bugs.webkit.org/show_bug.cgi?id=128744
<rdar://problem/15962958>

Reviewed by Dan Bernstein.

When switching to XPC for plug-ins, we accidentally broke the "feature"
where plug-ins can ask for the heap to be executable.

This breaks Silverlight, so just disable XPC for any plug-ins that need this.
<rdar://problem/16059483> tracks fixing this in the XPC service.

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
Only return true for 32-bit plug-ins, since we don't know any 64-bit plug-ins
that require this feature.

(WebKit::PluginProcessProxy::platformGetLaunchOptions):
Set launchOptions.useXPC to false if launchOptions.executableHeap is true.

9:24 AM Changeset in webkit [164030] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: fast/workers/use-machine-stack.html hits Heap::isMarked(cell) assertion
https://bugs.webkit.org/show_bug.cgi?id=128745

8:22 AM Changeset in webkit [164029] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[EFL] Add or remove expectations for some media layout tests
https://bugs.webkit.org/show_bug.cgi?id=128535

Unreviewed EFL layout tests gardening

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2014-02-13

  • platform/efl/TestExpectations:
  • platform/efl-wk1/TestExpectations:
5:25 AM Changeset in webkit [164028] by ryuan.choi@samsung.com
  • 5 edits in trunk/Source/WebKit/efl

[EFL][WK1] Do not include libsoup header in the public headers
https://bugs.webkit.org/show_bug.cgi?id=128701

Reviewed by Gyuyoung Kim.

Although ewebkit used libsoup internally, it's not good for EFL developers
to use it.
Instead, we should provide some wrapper APIs like ewk_network_proxy_uri_set
for future changes.

  • ewk/ewk_network.cpp: Removed soup related header,APIs and comments.

(ewk_network_tls_ca_certificates_path_set):

  • ewk/ewk_network.h: Ditto.
  • ewk/ewk_view.cpp: Ditto.
  • ewk/ewk_view.h: Ditto.
5:20 AM Changeset in webkit [164027] by ChangSeok Oh
  • 3 edits in trunk/LayoutTests

Unreviewed GTK gardening.

Removed unexpected pass tests from TextExpections

  • platform/gtk-wk2/TestExpectations:
  • platform/gtk/TestExpectations:
4:58 AM Changeset in webkit [164026] by ChangSeok Oh
  • 9 edits in trunk/Source/WebCore

Support ANGLE_instanced_arrays for GLES backend.
https://bugs.webkit.org/show_bug.cgi?id=128579

Reviewed by Dean Jackson.

Add some APIs to Extensions3D to support ANGLE_instanced_arrays for GLES backend.
At the same time, drawArraysInstanced, drawElementsInstanced and vertexAttribDivisor
are moved from GC3DOpenGL.cpp to GC3DOpenGLCommon.cpp since they could be shareable
through Extensions3D.

Covered by fast/canvas/webgl/angle-instanced-arrays.html

  • platform/graphics/Extensions3D.h:
  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::drawArraysInstanced):
(WebCore::Extensions3DOpenGL::drawElementsInstanced):
(WebCore::Extensions3DOpenGL::vertexAttribDivisor):

  • platform/graphics/opengl/Extensions3DOpenGL.h:
  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:

(WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
(WebCore::Extensions3DOpenGLES::drawArraysInstanced):
(WebCore::Extensions3DOpenGLES::drawElementsInstanced):
(WebCore::Extensions3DOpenGLES::vertexAttribDivisor):
(WebCore::Extensions3DOpenGLES::supportsExtension):

  • platform/graphics/opengl/Extensions3DOpenGLES.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::drawArraysInstanced):
(WebCore::GraphicsContext3D::drawElementsInstanced):
(WebCore::GraphicsContext3D::vertexAttribDivisor):

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
4:35 AM Changeset in webkit [164025] by Michał Pakuła vel Rutka
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed EFL gardening

Add test expectations for failing tests.

  • platform/efl-wk2/TestExpectations:
  • platform/efl/TestExpectations:
  • platform/efl/mathml/presentation/mspace-children-expected.txt: Added EFL expectation after r163626.
3:28 AM Changeset in webkit [164024] by calvaris@igalia.com
  • 51 edits
    2 adds in trunk

[GTK] MEDIA_CONTROLS_SCRIPT support
https://bugs.webkit.org/show_bug.cgi?id=123097

Reviewed by Jer Noble.

.:

Part of the Autotools and CMake structure to build the media
controls script.

  • Source/autotools/SetupWebKitFeatures.m4: Activated the media

controls script by default.

  • Source/cmake/OptionsGTK.cmake: Activated the media controls

script by default.

  • Source/cmake/WebKitFeatures.cmake: Created the option to

activate the controls script.

  • Source/cmakeconfig.h.cmake: Created the define template the the

media controls script.

Source/WebCore:

WebKitGTK+ multimedia controls are now managed from Javascript
code. Apple controls are kept as common code and GTK+ ones are
subclassed for the specific behavior.

Both CMake and Autotools build support is provided.

  • CMakeLists.txt: Added support to build the media controls

script and their associated files.

  • GNUmakefile.am: Added support to generate the C++ code from the

Javascript.

  • GNUmakefile.list.am: Added the media controls script associated

files.

  • Modules/mediacontrols/MediaControlsHost.cpp:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:

(WebCore::MediaControlsHost::supportsFullscreen): Added attribute
to know if the element supports fullscreen.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleWrapperMouseOut):
(Controller.prototype.updatePlaying): Use clear and
resetHideControlsTimer.
(Controller.prototype.clearHideControlsTimer): Added.
(Controller.prototype.resetHideControlsTimer): Added.

  • Modules/mediacontrols/mediaControlsGtk.js: Added.

(createControls): Calls ControllerGtk.
(ControllerGtk): Calls the superclass.
(contains): Defines a function to know if an object is contained
in an array.
(ControllerGtk.prototype.inheritFrom): Copies the method of the
superclass that are not reimplemented in the subclass.
(ControllerGtk.prototype.createControls): Calls the superclass and
create the remaining needed elements.
(ControllerGtk.prototype.configureInlineControls): Configures the
controls.
(ControllerGtk.prototype.setStatusHidden): Redefined empty.
(ControllerGtk.prototype.updateTime): Writes the duration and
current position. As it was so far, current time also includes
duration. If current time is bigger than 0 we show that.
(ControllerGtk.prototype.showCurrentTime): Shows current time and
hides duration label (that is included in current time).
(ControllerGtk.prototype.handlePlay): Calls the superclass and
force showing the current time.
(ControllerGtk.prototype.handleTimeUpdate): Always update the
time.
(ControllerGtk.prototype.handleMuteButtonMouseOver): Shows the
volume slider.
(ControllerGtk.prototype.handleVolumeBoxMouseOut): Hides the
volume slider.
(ControllerGtk.prototype.addControls): Adds the enclosure instead
of the panel directly. Panel is, of course, part of the enclosure.
(ControllerGtk.prototype.updateReadyState): Shows the fullscreen
button only if fullscreen is supported. Sets the volume in up or
down mode depending on its position in the document. Updates the
volume.
(ControllerGtk.prototype.setControlsType): Creates the controls it
they were not created before. Unlike Apple ones, WebKitGTK+
fullscreen and inline controls are the same.
(ControllerGtk.prototype.updatePlaying): Calls the superclass and
shows the controls if not playing.
(ControllerGtk.prototype.handleCaptionButtonClicked): Redefined
empty. To be coherent with volume, that also shows a popup, this
is handled with mouseover instead of click.
(ControllerGtk.prototype.buildCaptionMenu): Calls the superclass
to build the menu, sets some listeners, centers the popup with the
captions button, keeps the current height and sets the style to 0,
which is needed to animate it.
(ControllerGtk.prototype.destroyCaptionMenu): Hides the caption menu.
(ControllerGtk.prototype.showCaptionMenu): Resets the height to
its original. We don't animate it with CSS because we would need
to specify a height in the style and we don't know it in advance.
(ControllerGtk.prototype.hideCaptionMenu): Sets height to 0.
(ControllerGtk.prototype.captionMenuTransitionEnd): When the
captions menu transtition ends, it is destroyed.
(ControllerGtk.prototype.handleCaptionButtonMouseOver): Creates
the caption menu and shows it.
(ControllerGtk.prototype.handleCaptionButtonMouseOut): Hides the
captions menu.
(ControllerGtk.prototype.handleCaptionMouseOut): Hides the
captions menu.

  • PlatformGTK.cmake: Added WebCore to the target link libraries

and initialized the variables needed at CMakelists.txt

  • css/mediaControlsGtk.css:

(audio::-webkit-media-controls-panel)
(video::-webkit-media-controls-panel): Added transtion based on opacity.
(video::-webkit-media-controls-panel): Set video opacity to 0.
(video::-webkit-media-controls-panel.paused): Set video opacity to 1.
(audio::-webkit-media-controls-panel div.mute-box): Set the same
style as the mute button to preserve the layout.
(audio::-webkit-media-controls-panel div.mute-box.hidden): Sets
the display to none.
(audio::-webkit-media-controls-mute-button)
(video::-webkit-media-controls-mute-button): Removed the outline
and the margin that is managed by the mute box now.
(audio::-webkit-media-controls-play-button)
(video::-webkit-media-controls-play-button): Removed the outline.
(audio::-webkit-media-controls-time-remaining-display)
(video::-webkit-media-controls-time-remaining-display): Removed
the display.
(audio::-webkit-media-controls-current-time-display)
(video::-webkit-media-controls-current-time-display): Added the
display block.
(video::-webkit-media-controls-time-remaining-display): Set
display none.
(video::-webkit-media-controls-time-remaining-display.show): Set
display block.
(video::-webkit-media-controls-time-remaining-display.hidden): Set
display none.
(audio::-webkit-media-controls-timeline)
(video::-webkit-media-controls-timeline): Removed outline.
(audio::-webkit-media-controls-volume-slider-container)
(video::-webkit-media-controls-volume-slider-container): Set
overflow hidden and set a transition by height.
(video::-webkit-media-controls-volume-slider-container.hidden):
Set height 0.
(video::-webkit-media-controls-volume-slider-container.down): Set
bottom to be below the panel. Changed the border radius and
transition accordingly.
(video::-webkit-media-controls-panel .hidden.down): Sets default
bottom as 0.
(audio::-webkit-media-controls-volume-slider)
(video::-webkit-media-controls-volume-slider): Removed the outline.
(audio::-webkit-media-controls-toggle-closed-captions-button)
(video::-webkit-media-controls-toggle-closed-captions-button):
Removed the background that is painted from C++ and removed the
outline.
(video::-webkit-media-controls-closed-captions-container):
(video::-webkit-media-controls-closed-captions-container h3):
(video::-webkit-media-controls-closed-captions-container ul):
(video::-webkit-media-controls-closed-captions-container li):
(video::-webkit-media-controls-closed-captions-container li.selected): Changed
the style to make it more coherent with the rest of the controls.
(audio::-webkit-media-controls-fullscreen-button)
(video::-webkit-media-controls-fullscreen-button): Removed the outline.
(audio::-webkit-media-controls-panel button.hidden): Sets the
display to none.

  • html/HTMLMediaElement.cpp: UserAgentScripts.h is not needed here

and build cmake build would need for changes to get this compiled.

  • platform/gtk/RenderThemeGtk.cpp:

(WebCore::nodeHasPseudo): Added. Checks if a node has a certain
pseudo.
(WebCore::nodeHasClass): Added. Checks if a node has a certain
class.
(WebCore::supportsFocus): Removed some element types as outline is
now handled in CSS.
(WebCore::RenderThemeGtk::paintMediaPlayButton): Checks if the
play button has the class paused to show the play icon instead of
the pause one.
(WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
Added. Paints the captions icon.
(WebCore::RenderThemeGtk::mediaControlsScript): Added. Loads the
bundled scripts.

  • platform/gtk/RenderThemeGtk.h: Added the mediaControlsScript

method and declared the redefinition of the method to play the
captions icon.

LayoutTests:

Tests infrastructure for the media controls script.

  • media/click-volume-bar-not-pausing.html:
  • media/media-volume-slider-rendered-normal.html:
  • media/video-controls-captions-trackmenu-hide-on-click-outside.html:
  • media/video-volume-slider.html: Fixed.
  • platform/gtk-wk2/TestExpectations: Tests flagged.
  • platform/gtk/TestExpectations: Changed tests flags.
  • platform/gtk/accessibility/media-element-expected.txt:
  • platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt:
  • platform/gtk/fast/layers/video-layer-expected.txt: Rebaseline.
  • platform/gtk/fullscreen/video-controls-override-expected.txt: Added.
  • platform/gtk/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
  • platform/gtk/media/audio-controls-rendering-expected.png:
  • platform/gtk/media/audio-controls-rendering-expected.txt:
  • platform/gtk/media/audio-repaint-expected.txt:
  • platform/gtk/media/controls-after-reload-expected.png:
  • platform/gtk/media/controls-after-reload-expected.txt:
  • platform/gtk/media/controls-strict-expected.png:
  • platform/gtk/media/controls-strict-expected.txt:
  • platform/gtk/media/controls-styling-strict-expected.png:
  • platform/gtk/media/controls-styling-strict-expected.txt:
  • platform/gtk/media/controls-without-preload-expected.png:
  • platform/gtk/media/controls-without-preload-expected.txt:
  • platform/gtk/media/video-controls-rendering-expected.png:
  • platform/gtk/media/video-controls-rendering-expected.txt:
  • platform/gtk/media/video-display-toggle-expected.png:
  • platform/gtk/media/video-display-toggle-expected.txt:
  • platform/gtk/media/video-empty-source-expected.txt:
  • platform/gtk/media/video-no-audio-expected.png:
  • platform/gtk/media/video-no-audio-expected.txt:
  • platform/gtk/media/video-volume-slider-expected.png:
  • platform/gtk/media/video-volume-slider-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.png:
  • platform/gtk/media/video-zoom-controls-expected.txt:

Rebaseline.

12:42 AM Changeset in webkit [164023] by svillar@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Moved myself to the list of reviewers.

  • Scripts/webkitpy/common/config/contributors.json:
12:39 AM Changeset in webkit [164022] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:36 AM Changeset in webkit [164021] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Speculative build fix after r163998.

  • DumpRenderTree/ios/PerlSupport/Makefile:
12:36 AM Changeset in webkit [164020] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.18

New tag.

Note: See TracTimeline for information about the timeline view.