⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Feb 26, 2015:

11:26 PM Changeset in webkit [180732] by fpizlo@apple.com
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

Unreviewed, roll out r180723. It broke a bunch of tests.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::constLocal):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstDeclNode::emitCodeSingle):

  • tests/stress/const-arguments.js: Removed.
11:04 PM Changeset in webkit [180731] by bshafiei@apple.com
  • 5 edits in branches/safari-600.4.10-branch/Source

Versioning.

11:03 PM Changeset in webkit [180730] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.4.10.5

New tag.

10:56 PM Changeset in webkit [180729] by bshafiei@apple.com
  • 6 edits in branches/safari-600.1.4.15-branch

Merge patch for r180129, r180133. rdar://problem/19870998

10:44 PM Changeset in webkit [180728] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch

Merged r180087. rdar://problem/19871068

10:06 PM Changeset in webkit [180727] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix after r180717.

  • Modules/webdatabase/DatabaseThread.cpp: (WebCore::DatabaseUnpauseTask::doPerformTask):
9:51 PM Changeset in webkit [180726] by rniwa@webkit.org
  • 8 edits in trunk

isEditablePosition and related functions shouldn't move position out of table
https://bugs.webkit.org/show_bug.cgi?id=129200

Reviewed by Darin Adler.

Source/WebCore:

This patch removes the legacy editing position for elements display: table in its computed style.
Previously, we used (table, 0) and (table, !0) to denote positions immediately before and after
such an element for historical reasons. This forced us to update the style tree before computing
the editability of a position because we have to check the editability of the position outside
the element with display: table if the position was using such a legacy editing position.
e.g. if a table was not editable (contenteditable=false), the position before the table (table, 0)
should still be considered editable if the parent node of the table was editable.

This patch replaces such a legacy editing position by using modern position types:
PositionIsBeforeAnchor and PositionIsAfterAnchor.

No new tests since there should be no change in the user perceived editing operations.

  • dom/Position.cpp:

(WebCore::Position::previous): Setup the node and the offset correctly when the original position's
type is PositionIsBeforeAnchor. Also return a position before or after node when the node we found
is "atomic" (e.g. input, img, br, etc...) or it's a table. This avoids creating a legacy editing
position inside a table.
(WebCore::Position::next): Ditto.
(WebCore::Position::atStartOfTree): Use atFirstEditingPositionForNode, which takes care of all types
of positions.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::downstream): Return a position before a node instead of a legacy editing position
for an atomic element or a table element as done in the equivalent code in Position::upstream.
(WebCore::Position::isCandidate): Don't treat a position inside a table to be a candidate. e.g.
(table, 1) when there are more than two children of the table.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::operator Position): PositionIterator internally uses legacy editing
positions. So convert it to a modern position by returning a position before or after a table here.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::formatSelection): Check that the unsplittable element we found
is actually empty before executing the simple code path for an empty unsplittable element. Without
this check, block formatting a table element will fail.

  • editing/htmlediting.cpp:

(WebCore::isEditablePosition): Use containerNode instead of deprecatedNode because the editability
of a position before or after an element is determined by its parent, not the element itself.
(WebCore::isAtUnsplittableElement): Ditto.
(WebCore::isRichlyEditablePosition): Ditto. Removed the code that moved the starting node out of
an element with display: table. This is the code removal for which this patch was made.
(WebCore::editableRootForPosition): Ditto.

LayoutTests:

Rebaselined a test. There is no visual difference.

  • platform/mac/editing/inserting/5058163-1-expected.txt:
9:32 PM Changeset in webkit [180725] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a subtle blue background for selected console messages
https://bugs.webkit.org/show_bug.cgi?id=142073

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.css:

(.console-item.selected::after):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-error-level + .console-item):
(.console-error-level .section .header .title):
(.console-warning-level):
(.console-warning-level + .console-item):

9:27 PM Changeset in webkit [180724] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More test expectation updates.

  • platform/win/TestExpectations:
9:12 PM Changeset in webkit [180723] by fpizlo@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

BytecodeGenerator::constLocal() behaves identically to BytecodeGenerator::local() for the purposes of its one caller
https://bugs.webkit.org/show_bug.cgi?id=142071

Rubber stamped by Benjamin Poulain.

The only behavioral differences between constLocal() and local() are:

  • constLocal() doesn't have a special case for "this" that overrides other checks like the shouldOptimizeLocals() check. But the one user of constLocal() is for the "const x" expression, and "const this" doesn't parse.
  • constLocal() won't createArgumentsIfNecessary() for "arguments". But it's harmless if it does, since its one user assigns to the local.

So, we can remove constLocal() and make its one caller use local() instead.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::constLocal): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstDeclNode::emitCodeSingle):

  • tests/stress/const-arguments.js: Added.

(foo):
(check):

8:11 PM Changeset in webkit [180722] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Colored console messages apply text color to object tree properties
https://bugs.webkit.org/show_bug.cgi?id=142051

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-26
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree):
Default the color to black within Object Tree and Object Preview views.

8:08 PM Changeset in webkit [180721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clear Log on Reload clears some logs that were after reload
https://bugs.webkit.org/show_bug.cgi?id=142070

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-26
Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
We can bail after calling clearLog, since that will already start
a new session for us.

(WebInspector.LogContentView.prototype._clearLog):
Don't trigger a backend clear messages, since that will cause us to
clear messages received between the request and response.

6:07 PM Changeset in webkit [180720] by timothy_horton@apple.com
  • 16 edits
    6 adds in trunk

Implement <attachment> element appearance on Mac
https://bugs.webkit.org/show_bug.cgi?id=142023

Reviewed by Dean Jackson.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/html.css:

(attachment):

  • platform/ThemeTypes.h:

Add a new -webkit-appearance value, attachment.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFile):
Let the renderer know when the file changes (so it can relayout and repaint).

(WebCore::HTMLAttachmentElement::filePath):
(WebCore::HTMLAttachmentElement::fileName):

  • html/HTMLAttachmentElement.h:

Handy acccessors for the full path and the name of the file.

  • platform/spi/mac/IconServicesSPI.h: Added.
  • platform/spi/mac/LaunchServicesSPI.h: Added.

Add some IconServices and LaunchServices SPI headers.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::RenderAttachment):
Don't have a default intrinsic size; we'll adjust in layout().

(WebCore::RenderAttachment::isSelected):
(WebCore::RenderAttachment::isFocused):
(WebCore::RenderAttachment::isSelectedOrFocused):
Factor out from paintReplaced().

(WebCore::RenderAttachment::layout):
Use RenderTheme to compute the intrinsic size of this attachment.

(WebCore::RenderAttachment::paintReplaced):
Use RenderTheme to paint the attachment.

(WebCore::RenderAttachment::representedFileChanged):
When the represented file changes, we need to recompute the intrinsic size and repaint.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustAttachmentStyle):
(WebCore::RenderTheme::paintAttachment):
Plumb through the attachment appearance.

  • rendering/RenderAttachment.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintAttachment):
(WebCore::RenderTheme::attachmentIntrinsicSize):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::attachmentIconBackgroundColor):
(WebCore::attachmentIconBorderColor):
(WebCore::AttachmentLayout):
AttachmentLayout lays out the innards of the RenderThemeMac attachment
presentation: an icon with an optional bordered background, with a label
underneath it with an optional background.

(WebCore::RenderThemeMac::attachmentIntrinsicSize):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentIcon):
(WebCore::RenderThemeMac::paintAttachmentLabelBackground):
(WebCore::RenderThemeMac::paintAttachmentLabel):
(WebCore::RenderThemeMac::paintAttachment):
Paint the attachment element. Paint the optional backgrounds (and swap
out the text color) if the element is selected/focused.

6:07 PM Changeset in webkit [180719] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Assertion fix for r180711: The bool returning form of BytecodeGenerator::addVar() can be removed.
<https://webkit.org/b/142064>

Reviewed by Joseph Pecoraro.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addVar):

5:57 PM Changeset in webkit [180718] by commit-queue@webkit.org
  • 15 edits
    7 adds in trunk

AX: Expose caret browsing preference to accessibility API
https://bugs.webkit.org/show_bug.cgi?id=141862

Patch by Doug Russell <d_russell@apple.com> on 2015-02-26
Reviewed by Chris Fleizach.

Exposing the caret browsing setting on WebCore::Frame via the accessibility API would allow assistive tech apps to enable it contextually (for example, when the assistive tech app is running).
Enabling caret browsing when assistive tech apps are running greatly improves the reliability of keyboard navigation on the web. Most especially in cases where selection would be disrupted by focus events.

Source/WebCore:

Tests: platform/mac/accessibility/caret-browsing-arrow-nav.html

platform/mac/accessibility/caret-browsing-attribute.html
platform/mac/accessibility/caret-browsing-tab-selection.html

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::caretBrowsingEnabled):
(WebCore::AccessibilityObject::setCaretBrowsingEnabled):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetTestValue:forAttribute:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(setBoolAttributeValueCallback):
(selectedTextMarkerRangeCallback):
(resetSelectedTextMarkerRangeCallback):
(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::selectedTextMarkerRange):
(AccessibilityUIElement::resetSelectedTextMarkerRange):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setBoolAttributeValue):
(AccessibilityUIElement::selectedTextMarkerRange):
(AccessibilityUIElement::resetSelectedTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setBoolAttributeValue):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setBoolAttributeValue):
(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):

LayoutTests:

  • accessibility/parent-delete-expected.txt:
  • platform/mac/accessibility/caret-browsing-arrow-nav-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-arrow-nav.html: Added.
  • platform/mac/accessibility/caret-browsing-attribute-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-attribute.html: Added.
  • platform/mac/accessibility/caret-browsing-tab-selection-expected.txt: Added.
  • platform/mac/accessibility/caret-browsing-tab-selection.html: Added.
  • platform/mac/accessibility/document-attributes-expected.txt:
  • platform/mac/accessibility/resources/accessibility-helper.js: Added.

(clearSelectionAndFocusOnWebArea):
(elementAtStartMarkerOfSelectedTextMarkerRange):
(caretBrowsingEnabled):
(setCaretBrowsingEnabled):

5:56 PM Changeset in webkit [180717] by gyuyoung.kim@samsung.com
  • 7 edits in trunk/Source/WebCore

Remove unnecessary create() factory functions
https://bugs.webkit.org/show_bug.cgi?id=142039

Reviewed by Chris Dumez.

Clean up remaining JSCryptoKeySerializationJWK::create, HTMLMediaSession::create,
and DatabaseUnpauseTask::create.

  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseUnpauseTask::DatabaseUnpauseTask):
(WebCore::DatabaseThread::setPaused):
(WebCore::DatabaseUnpauseTask::create): Deleted.

  • bindings/js/JSCryptoKeySerializationJWK.h:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::importKey):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::create): Deleted.

  • html/HTMLMediaSession.h:
5:25 PM Changeset in webkit [180716] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

MachineThreads::Thread clean up has a use after free race condition.
<https://webkit.org/b/141990>

Reviewed by Filip Pizlo.

MachineThreads::Thread clean up relies on the clean up mechanism
implemented in _pthread_tsd_cleanup_key(), which looks like this:

void _pthread_tsd_cleanup_key(pthread_t self, pthread_key_t key)
{

void (*destructor)(void *);
if (_pthread_key_get_destructor(key, &destructor)) {

void ptr = &self->tsd[key];
void *value = *ptr;

=== Start of window for the bug to manifest =================

At this point, this thread has cached "destructor" and "value"
(which is a MachineThreads*). If the VM gets destructed (along
with its MachineThreads registry) by another thread, then this
thread will have no way of knowing that the MachineThreads* is
now pointing to freed memory. Calling the destructor below will
therefore result in a use after free scenario when it tries to
access the MachineThreads' data members.

if (value) {

*ptr = NULL;
if (destructor) {

=== End of window for the bug to manifest ==================

destructor(value);

}

}

}

}

The fix is to add each active MachineThreads to an ActiveMachineThreadsManager,
and always check if the manager still contains that MachineThreads object
before we call removeCurrentThread() on it. When MachineThreads is destructed,
it will remove itself from the manager. The add, remove, and checking
operations are all synchronized on the manager's lock, thereby ensuring that
the MachineThreads object, if found in the manager, will remain alive for the
duration of time we call removeCurrentThread() on it.

There's also possible for the MachineThreads object to already be destructed
and another one happened to have been instantiated at the same address.
Hence, we should only remove the exiting thread if it is found in the
MachineThreads object.

There is no test for this issue because this bug requires a race condition
between 2 threads where:

  1. Thread B, which had previously used the VM, exiting and getting to the bug window shown in _pthread_tsd_cleanup_key() above.
  2. Thread A destructing the VM (and its MachineThreads object) within that window of time before Thread B calls the destructor.

It is not possible to get a reliable test case without invasively
instrumenting _pthread_tsd_cleanup_key() or MachineThreads::removeCurrentThread()
to significantly increase that window of opportunity.

  • heap/MachineStackMarker.cpp:

(JSC::ActiveMachineThreadsManager::Locker::Locker):
(JSC::ActiveMachineThreadsManager::add):
(JSC::ActiveMachineThreadsManager::remove):
(JSC::ActiveMachineThreadsManager::contains):
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager):
(JSC::activeMachineThreadsManager):
(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::removeThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::removeCurrentThread): Deleted.

  • heap/MachineStackMarker.h:
5:15 PM Changeset in webkit [180715] by Joseph Pecoraro
  • 35 edits in trunk

Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
https://bugs.webkit.org/show_bug.cgi?id=142061

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/Debugger.json:
  • inspector/protocol/Runtime.json:

Input flag "saveResult" on whether we should try to save a result.
Output int "savedResultIndex" to tell the frontend the saved state.

  • inspector/InjectedScriptSource.js:

Handle saving and clearing $1-$99 values.
Include in BasicCommandLineAPI for JSContext inspection.

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeEvalCall):

  • inspector/InjectedScriptBase.h:

Allow an optional "savedResultIndex" out value on evals.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluate):
(Inspector::InjectedScript::evaluateOnCallFrame):

  • inspector/InjectedScript.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::evaluate):

  • inspector/agents/InspectorRuntimeAgent.h:

Plumbing for new in and out parameters.

Source/WebCore:

  • inspector/CommandLineAPIModuleSource.js:

Replace $1-$4 "inspected objects" with $1-$99 "saved results".

  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspectedObject):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::InspectableObject::get):
(WebCore::CommandLineAPIHost::addInspectedObject):
(WebCore::CommandLineAPIHost::inspectedObject):
(WebCore::CommandLineAPIHost::clearInspectedObjects): Deleted.

  • inspector/CommandLineAPIHost.h:
  • inspector/CommandLineAPIHost.idl:

Since we now just save the single $0 inspected object, eliminate
keeping track of a list of 5 values.

Source/WebInspectorUI:

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Add a saveResult parameter for the new protocol command in parameter.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatMessage):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
For console evaluation results, show a "= $n" when the evaluation was
given a saved result index.

  • UserInterface/Views/LogContentView.css:

(.console-saved-variable):

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview-name):
Make $n and class names in previews always non-italics.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Try to provide better autocompletion for $n, by populating autocompletion menus
from $1-$n where n is the maximum saved result index seen. Clear the maximum
when we clear the console.

  • UserInterface/Views/ConsoleCommandResult.js:

(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
Keep track of the maximum savedResultIndex for console evaluation results.

LayoutTests:

  • inspector/debugger/command-line-api-exception-nested-catch.html:
  • inspector/debugger/command-line-api-exception.html:
  • inspector/model/remote-object-get-properties.html:
  • inspector/model/remote-object-weak-collection.html:
  • inspector/model/remote-object.html:

Update evaluateInInspectedWindow call sites for new parameter.

5:15 PM Changeset in webkit [180714] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Set/Map appear as lossless when they have lossy entries
https://bugs.webkit.org/show_bug.cgi?id=142050

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
Take into account the lossless states of entry keys and values.

5:15 PM Changeset in webkit [180713] by Joseph Pecoraro
  • 14 edits
    2 copies
    3 adds
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
https://bugs.webkit.org/show_bug.cgi?id=142037

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

Miscellaneous changes.

  • UserInterface/Models/PropertyDescriptor.js:

(WebInspector.PropertyDescriptor.prototype.isIndexProperty):
Useful for quickly checking if this property is numeric and possibly
an array index.

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.appendMapKey):
(WebInspector.PropertyPath.prototype.appendMapValue):
(WebInspector.PropertyPath.prototype.appendSetIndex):
Be specific about property paths into maps / sets. Note that a map
value may be displayable if the key is simple.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.hasValue):
A simple value RemoteObject may have the value "undefined". So provide
a falsey proof helper that actually checks if we have a value.

(WebInspector.RemoteObject.prototype.isArray):
(WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
(WebInspector.RemoteObject.prototype.wrappedCallback):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
Currently backend APIs exist only to get all properties. In the case
of collections, we often want to get only one property (proto).
This is a simple implementation on top of callFunctionOn.

  • UserInterface/Views/ConsoleMessageImpl.js:

(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
(WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
Simplify array formatted to just use an ObjectTreeView. Add fixmes
that we should seed the ObjectTreeView with a starting property path.

  • UserInterface/Views/FormattedValue.css:

(.formatted-node > ol):
Sometimes, a node's display was getting overridden by various console styles.
Force a node to always display block. We may be able to remove this later.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
Helper for formatting a node / object / value more easily. This
is used by all collection types.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
We lost the nice sparse array support when switching to the new preview path,
we should add it back.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:

(.object-tree-array-index):
(.object-tree-array-index > .titles):
(.object-tree-array-index > .icon):
(.object-tree-array-index .index-name):
(.object-tree-array-index .index-value .object-tree):
(.object-tree-array-index .index-value .object-tree .object-tree-outline):
(.object-tree-property + ol .object-tree-array-index):
New styles specific to array index tree elements.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.css:

(.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
(.object-tree-map-entry.key):
(.object-tree-map-entry.key:first-of-type):
(.object-tree-map-entry):
New styles specific to map key/value tree elements.

  • UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.

Remove old collection implementation.

  • UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.

(WebInspector.ObjectTreeArrayIndexTreeElement):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
(WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
Index followed by formatted value. Unfortunately a page can hack up an array
with getter properties, so also support getter values in an array. This ends
up copying a lot of ObjectTreePropertyTreeElement as a result.

  • UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.

(WebInspector.ObjectTreeMapEntryTreeElement):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
(WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
(WebInspector.ObjectTreeMapKeyTreeElement):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
(WebInspector.ObjectTreeMapValueTreeElement):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
(WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
Key/value followed by formatted value.

  • UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.

(WebInspector.ObjectTreeSetIndexTreeElement):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
Dot followed by formatted value.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property > .titles):
Reformat.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
Upgrade generic styles.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView):
(WebInspector.ObjectTreeView.emptyMessageElement):
(WebInspector.ObjectTreeView.prototype.expand):
(WebInspector.ObjectTreeView.prototype.collapse):
(WebInspector.ObjectTreeView.prototype.update):
(WebInspector.ObjectTreeView.prototype._updateChildren):
(WebInspector.ObjectTreeView.prototype._updateEntries):
(WebInspector.ObjectTreeView.prototype._updateProperties):
(WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
entries or properties depending on the type of the object being expanded.

(WebInspector.ObjectTreeView.prototype._trackWeakEntries):
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.

5:04 PM Changeset in webkit [180712] by gyuyoung.kim@samsung.com
  • 10 edits in trunk/Source/WebCore

Remove unnecessary create() factory functions in CDMFoo, NamedNodeMap
https://bugs.webkit.org/show_bug.cgi?id=141902

Reviewed by Darin Adler.

Create instance using std::make_unique<> in CDMFactory directly. To do that,
CDMFactory uses lambdas. Additionally this patch removes NamedNodeMap::create() as well.

No new tests, no behavior changes.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::installedCDMFactories):

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/CDMPrivateClearKey.h:

(WebCore::CDMPrivateClearKey::CDMPrivateClearKey):
(WebCore::CDMPrivateClearKey::create): Deleted.

  • Modules/encryptedmedia/CDMPrivateMediaPlayer.h:

(WebCore::CDMPrivateMediaPlayer::create): Deleted.

  • dom/Element.cpp:

(WebCore::Element::attributes):

  • dom/NamedNodeMap.h:

(WebCore::NamedNodeMap::NamedNodeMap):
(WebCore::NamedNodeMap::create): Deleted.

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:

(WebCore::CDMPrivateMediaSourceAVFObjC::create): Deleted.

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

The bool returning form of BytecodeGenerator::addVar() can be removed
https://bugs.webkit.org/show_bug.cgi?id=142064

Reviewed by Mark Lam.

It's easier to implement addVar() when you don't have to return whether it's a new
variable or not.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addVar):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::addVar): Deleted.

4:30 PM Changeset in webkit [180710] by bshafiei@apple.com
  • 5 edits in branches/safari-600.5-branch/Source

Versioning.

4:28 PM Changeset in webkit [180709] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.5.8

New tag.

4:09 PM Changeset in webkit [180708] by aestes@apple.com
  • 3 edits
    2 adds in trunk/Source/WebCore

[Content Filtering] Move WebFilterEvaluator and NEFilterSource declarations to SPI headers
https://bugs.webkit.org/show_bug.cgi?id=142062

Reviewed by Daniel Bates.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/ContentFilterMac.mm:
  • platform/spi/cocoa/NEFilterSourceSPI.h: Added.
  • platform/spi/cocoa/WebFilterEvaluatorSPI.h: Added.
3:53 PM Changeset in webkit [180707] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] More Debug assertion updates.

  • platform/win/TestExpectations:
3:34 PM Changeset in webkit [180706] by andersca@apple.com
  • 9 edits in trunk/Source

Add API to remove all website data for the given data records
https://bugs.webkit.org/show_bug.cgi?id=142060

Reviewed by Beth Dakin.

Source/WebCore:

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::removeResourcesWithOrigins):
New function that removes all resources that match the set of origins in a given session.

Source/WebKit2:

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:

Add new method declaration.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(toWebsiteDataRecords):
Add a helper function that converts an NSArray of _WKWebsiteDataRecords to a Vector of WebsiteDataRecords.

(-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
Call through to the underlying WebsiteDataStore.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):
Figure out which processes to call deleteWebsiteDataForOrigins for and do so. Add a callback aggregator so we can
call the completion handler at the right time.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Add new members.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::deleteWebsiteDataForOrigins):
Use the newly added MemoryCache member function to delete all resources matching the set of origins.

3:26 PM Changeset in webkit [180705] by Brent Fulgham
  • 7 edits
    1 delete in trunk

[Win] Remove WebKitExportGenerator project (and related)
https://bugs.webkit.org/show_bug.cgi?id=142035

Reviewed by Dean Jackson.

Source/WebKit:

  • WebKit.vcxproj/WebKit.sln: Remove references to WebKitExportGenerator
  • WebKit.vcxproj/WebKit.submit.sln: Ditto.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj: Ditto.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: Ditto.
  • WebKit.vcxproj/WebKitExportGenerator: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorCommon.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebug.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorDebugWinCairo.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorProduction.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorRelease.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorReleaseWinCairo.props: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Removed.
  • WebKit.vcxproj/WebKitExportGenerator/make-export-file-generator: Removed.

Tools:

  • win/AssembleBuildLogs/AssembleLogs.cmd: Don't look for a

build log from WebKitExportGenerator.

3:22 PM Changeset in webkit [180704] by Chris Dumez
  • 23 edits in trunk/Source

Rename DatabaseManager::manager() to DatabaseManager::singleton()
https://bugs.webkit.org/show_bug.cgi?id=142054

Reviewed by Ryosuke Niwa.

Rename DatabaseManager::manager() to DatabaseManager::singleton() as
per coding style and use WTF::NeverDestroyed.

Source/WebCore:

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::DatabaseBackendBase::DatabaseBackendBase):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::DatabaseContext):
(WebCore::DatabaseContext::~DatabaseContext):
(WebCore::DatabaseContext::stopDatabases):
(WebCore::DatabaseContext::databaseExceededQuota):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::singleton):
(WebCore::DatabaseManager::manager): Deleted.

  • Modules/webdatabase/DatabaseManager.h:

(WebCore::DatabaseManager::~DatabaseManager): Deleted.

  • Modules/webdatabase/SQLTransactionClient.cpp:

(WebCore::SQLTransactionClient::didExceedQuota):

  • history/PageCache.cpp:

(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):

Source/WebKit/mac:

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager init]):
(-[WebDatabaseManager origins]):
(-[WebDatabaseManager databasesWithOrigin:]):
(-[WebDatabaseManager detailsForDatabase:withOrigin:]):
(-[WebDatabaseManager deleteAllDatabases]):
(-[WebDatabaseManager deleteOrigin:]):
(-[WebDatabaseManager deleteDatabase:withOrigin:]):

  • Storage/WebDatabaseQuotaManager.mm:

(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):

  • WebView/WebFrame.mm:

(-[WebFrame _cacheabilityDictionary]):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • WebDatabaseManager.cpp:

(WebDatabaseManager::sharedWebDatabaseManager):
(WebDatabaseManager::origins):
(WebDatabaseManager::databasesWithOrigin):
(WebDatabaseManager::detailsForDatabase):
(WebDatabaseManager::deleteAllDatabases):
(WebDatabaseManager::deleteOrigin):
(WebDatabaseManager::deleteDatabase):
(WebDatabaseManager::setQuota):
(WebKitInitializeWebDatabasesIfNecessary):

  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota):

  • WebProcess/WebCoreSupport/WebDatabaseManager.cpp:

(WebKit::WebDatabaseManager::initialize):
(WebKit::WebDatabaseManager::getDatabasesByOrigin):
(WebKit::WebDatabaseManager::getDatabaseOrigins):
(WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManager::deleteAllDatabases):
(WebKit::WebDatabaseManager::setQuotaForOrigin):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

2:44 PM Changeset in webkit [180703] by fpizlo@apple.com
  • 7 edits
    11 adds in trunk

Various array access corner cases should take OSR exit feedback
https://bugs.webkit.org/show_bug.cgi?id=142056

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


Two major changes here:

  • Don't keep converting GetById into GetArrayLength if we exited due to any kind of array type check.


  • Use a generic form of GetByVal/PutByVal if we exited due to any kind of exotic checks, like the Arguments safety checks. We use the "ExoticObjectMode" for out-of-bounds on arguments for now, since it's a convenient way of forcing out-of-bounds to be handled by the Generic array mode.
  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
(JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):

  • tests/stress/array-length-array-storage-plain-object.js: Added.

(foo):

  • tests/stress/array-length-plain-object.js: Added.

(foo):

LayoutTests:

  • js/regress/arguments-out-of-bounds-expected.txt: Added.
  • js/regress/arguments-out-of-bounds.html: Added.
  • js/regress/exit-length-on-plain-object-expected.txt: Added.
  • js/regress/exit-length-on-plain-object.html: Added.
  • js/regress/script-tests/arguments-out-of-bounds.js: Added.

(foo):
(bar):

  • js/regress/script-tests/exit-length-on-plain-object.js: Added.

(foo):

  • js/regress/script-tests/string-out-of-bounds.js: Added.

(bar):

  • js/regress/string-out-of-bounds-expected.txt: Added.
  • js/regress/string-out-of-bounds.html: Added.
2:25 PM Changeset in webkit [180702] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r180452. rdar://problem/19966376

2:24 PM Changeset in webkit [180701] by ggaren@apple.com
  • 6 edits in trunk/Source/bmalloc

bmalloc: Large object free list can grow infinitely
https://bugs.webkit.org/show_bug.cgi?id=142055

Reviewed by Andreas Kling.

By design, we don't eagerly remove large objects from the free list.
This creates two simple pathologies:

(1) If you free and then allocate the same object repeatedly, it will
duplicate itself in the free list repeatedly. Since it is never
invalid at the time of allocation, it will never be removed.

(2) If you split and then merge the same object repeatedly, it will
duplicate its split sibling in the free list repeatedly. If its
sibling is in a separate free list size class, it will never be
consulted at the time of allocation, so it will never be removed.

So, a simple "while (1) { free(malloc(x)); }" causes infinite memory
use in the free list.

The solution in this patch is a simple helper to remove garbage from the
free list if it grows too large. This pathology is not common, so the
cost is OK.

Long-term, perhaps we should rethink the laziness of these free lists.

  • bmalloc/BoundaryTag.h:

(bmalloc::BoundaryTag::isMarked):
(bmalloc::BoundaryTag::setMarked): New bit, used by free list GC.

  • bmalloc/FreeList.cpp:

(bmalloc::FreeList::removeInvalidAndDuplicateEntries): The GC algorithm.

  • bmalloc/FreeList.h:

(bmalloc::FreeList::FreeList):
(bmalloc::FreeList::push): Invoke the GC if we're getting huge.

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::isMarked):
(bmalloc::LargeObject::setMarked):
(bmalloc::LargeObject::validateSelf): Expose the new bit.

  • bmalloc/Sizes.h: New constant to control GC frequency.
2:22 PM Changeset in webkit [180700] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

Fix the !ENABLE(GEOLOCATION) build after r180533
https://bugs.webkit.org/show_bug.cgi?id=142053

Reviewed by Chris Dumez.

  • Modules/geolocation/GeoNotifier.cpp:
  • Modules/geolocation/GeoNotifier.h:
2:21 PM Changeset in webkit [180699] by Lucas Forschler
  • 2 edits in branches/safari-600.1.4.15-branch/Source/WebKit2

Merged r179904. rdar://problem/19966381

2:18 PM Changeset in webkit [180698] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r180174. rdar://problem/19966344

2:04 PM Changeset in webkit [180697] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Bump EFL version to 1.13.0
https://bugs.webkit.org/show_bug.cgi?id=141708

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
1:42 PM March 2015 Meeting edited by Brian Burg
(diff)
1:04 PM Changeset in webkit [180696] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS Media] incorrect front padding on time values
https://bugs.webkit.org/show_bug.cgi?id=142027
<rdar://problem/19960790>

Reviewed by Brent Fulgham.

My last commit was updating the OS X file,
not the iOS file.

We don't want to prefix times with a "0".

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.formatTime):

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.formatTime):

12:40 PM Changeset in webkit [180695] by Csaba Osztrogonác
  • 2 edits in trunk/Source/bmalloc

URTBF after r180693.

  • CMakeLists.txt:
12:20 PM Changeset in webkit [180694] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

2015-02-26 Geoffrey Garen <ggaren@apple.com>

Try to fix the Mac build.

Unreviewed.

  • bmalloc.xcodeproj/project.pbxproj: Make FreeList.h available.
12:05 PM Changeset in webkit [180693] by ggaren@apple.com
  • 7 edits
    2 copies
    1 delete in trunk/Source/bmalloc

bmalloc: Refactored SegregatedFreeList and BoundaryTag::init
https://bugs.webkit.org/show_bug.cgi?id=142049

Reviewed by Anders Carlsson.

Split out a FreeList class from SegregatedFreeList. This will make it
easier to add behaviors on free list insertion and removal -- and it's
probably how I should have designed things at the start.

Moved BoundaryTag::init into LargeObject, since all the related logic
lives in LargeObject now too, and this allows us to remove BoundaryTagInlines.h.

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/BoundaryTagInlines.h: Removed.
  • bmalloc/FreeList.cpp: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.cpp.

(bmalloc::FreeList::takeGreedy):
(bmalloc::FreeList::take):
(bmalloc::SegregatedFreeList::SegregatedFreeList): Deleted.
(bmalloc::SegregatedFreeList::insert): Deleted.
(bmalloc::SegregatedFreeList::takeGreedy): Deleted.
(bmalloc::SegregatedFreeList::take): Deleted.

  • bmalloc/FreeList.h: Copied from Source/bmalloc/bmalloc/SegregatedFreeList.h.

(bmalloc::FreeList::push):

  • bmalloc/LargeObject.h:

(bmalloc::LargeObject::init):

  • bmalloc/SegregatedFreeList.cpp:

(bmalloc::SegregatedFreeList::SegregatedFreeList):
(bmalloc::SegregatedFreeList::insert):
(bmalloc::SegregatedFreeList::takeGreedy):
(bmalloc::SegregatedFreeList::take):

  • bmalloc/SegregatedFreeList.h:
  • bmalloc/Sizes.h:
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::grow):

11:56 AM Changeset in webkit [180692] by Lucas Forschler
  • 10 edits in branches/safari-600.1.4.15-branch/Source

Merged r179480. rdar://problem/19709193

11:51 AM Changeset in webkit [180691] by fpizlo@apple.com
  • 29 edits
    2 moves
    1 add in trunk/Source/JavaScriptCore

DFG SSA stack accesses shouldn't speak of VariableAccessDatas
https://bugs.webkit.org/show_bug.cgi?id=142036

Reviewed by Michael Saboff.

VariableAccessData is a useful thing in LoadStore and ThreadedCPS, but it's purely harmful in
SSA because you can't cook up new VariableAccessDatas. So, if you know that you want to load
or store to the stack, and you know what format to use as well as the location, then prior to
this patch you couldn't do it unless you found some existing VariableAccessData that matched
your requirements. That can be a hard task.

It's better if SSA doesn't speak of VariableAccessDatas but instead just has stack accesses
that speak of the things that a stack access needs: local, machineLocal, and format. This
patch changes the SSA way of accessing the stack to do just that.

Also add more IR validation.

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

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGFlushFormat.h:

(JSC::DFG::isConcrete):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGGraph.h:
  • dfg/DFGMayExit.cpp:

(JSC::DFG::mayExit):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::hasVariableAccessData):

  • dfg/DFGNode.h:

(JSC::DFG::StackAccessData::StackAccessData):
(JSC::DFG::StackAccessData::flushedAt):
(JSC::DFG::Node::convertToPutStack):
(JSC::DFG::Node::convertToGetStack):
(JSC::DFG::Node::hasUnlinkedLocal):
(JSC::DFG::Node::hasStackAccessData):
(JSC::DFG::Node::stackAccessData):
(JSC::DFG::Node::willHaveCodeGenOrOSR):

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

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGPlan.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGPutLocalSinkingPhase.cpp: Removed.
  • dfg/DFGPutLocalSinkingPhase.h: Removed.
  • dfg/DFGPutStackSinkingPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp.

(JSC::DFG::performPutStackSinking):
(JSC::DFG::performPutLocalSinking): Deleted.

  • dfg/DFGPutStackSinkingPhase.h: Copied from Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.h.
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::validateCPS):
(JSC::DFG::Validate::validateSSA):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::lower):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetStack):
(JSC::FTL::LowerDFGToLLVM::compilePutStack):
(JSC::FTL::LowerDFGToLLVM::compileGetLocal): Deleted.
(JSC::FTL::LowerDFGToLLVM::compilePutLocal): Deleted.

  • ftl/FTLOSRExit.h:
  • tests/stress/many-sunken-locals.js: Added. This failure mode was caught by some miscellaneous test, so I figured I should write an explicit test for it.

(foo):
(bar):
(baz):
(fuzz):
(buzz):

11:44 AM Changeset in webkit [180690] by mark.lam@apple.com
  • 10 edits in trunk

Rolling out r180602, r180608, r180613, r180617, r180671.
<https://webkit.org/b/141990>

Not reviewed.

The r180602 solution does result in more work for GC when worker
threads are in use. Filip is uncomfortable with that.
The EFL and GTK ports also seem to be unhappy with this change.
Rolling out while we investigate.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::machineThreads): Deleted.

  • heap/Heap.h:

(JSC::Heap::machineThreads):

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):

  • heap/MachineStackMarker.h:
  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::commonVM):

LayoutTests:

  • platform/efl/TestExpectations:
11:39 AM Changeset in webkit [180689] by mmaxfield@apple.com
  • 21 edits
    2 adds in trunk

Source/JavaScriptCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

This patch implements initial parsing support for the -apple-trailing-word CSS property.
This property has two possible (mutually exclusive) values: auto and
-apple-partially-balanced. This property is inherited.

The work for this property is behind the ENABLE(CSS_TRAILING_WORD) preprocessor define.

This is an internal property that will allow us to control line breaking behavior for
short paragraphs.

Note that, because of the implementation of cssValueKeywordID() in CSSParser.cpp,
the new value must be implemented as -webkit-partially-balanced. Using the -apple-
prefix will work, but if you getComputedStyle(), it will return the -webkit- prefixed
version.

Test: platform/mac/fast/text/trailing-word-parse.html

  • Configurations/FeatureDefines.xcconfig:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Turn internal representation into a
CSS value.

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue): Updated for new keyword property / value
pair.
(WebCore::isKeywordPropertyID): New property is a keyword property.
(WebCore::CSSParser::parseValue): Use the keyword property codepath.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Convert to and from the internal
representation and CSS values.
(WebCore::CSSPrimitiveValue::operator TrailingWord):

  • css/CSSPropertyNames.in: New property.
  • css/CSSValueKeywords.in: New value.
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseFor): Can't use SimpleLineLayout for this.

  • rendering/style/RenderStyle.h: Getter, setter and initial value.
  • rendering/style/RenderStyleConstants.h: Internal data type.
  • rendering/style/StyleRareInheritedData.h: One bit to control this style property.
  • rendering/style/StyleRareInheritedData.cpp: Update constructors and operators.

Source/WebKit/mac:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:
[Mac] [iOS] Parsing support for -apple-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

LayoutTests:
Parsing support for -webkit-trailing-word
https://bugs.webkit.org/show_bug.cgi?id=141939

Reviewed by Andreas Kling.

Test parsing using getComputedStyle().

  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html: Updated.
  • fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip-expected.txt: Updated.
  • platform/mac/fast/text/trailing-word-parse-expected.txt: Added.
  • platform/mac/fast/text/trailing-word-parse.html: Added.
11:30 AM Changeset in webkit [180688] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

bmalloc: free up a bit in BoundaryTag
https://bugs.webkit.org/show_bug.cgi?id=142048

Reviewed by Brady Eidson.

We were wasting a bit by accident, and I need one now.

  • bmalloc/Algorithm.h:

(bmalloc::rightShift): Deleted. Not needed, now that I've simplified
the math.

  • bmalloc/BoundaryTag.h: Since each boundary tag bucket is 1024 bytes

long, the maximum offset into a bucket is 1023.

You need 5 bits to count up to 1024, but only 4 to count up to 1023.

Math is hard.

(bmalloc::BoundaryTag::compactBegin): Switched to division because it
is simpler, and easier to match up with our ASSERT. The compiler will
turn division by constant power of two into a shift for us.

(bmalloc::BoundaryTag::setRange): Added an ASSERT for compactBegin
because we do encode it, so we should ASSERT that encoding did not
lose information.

  • bmalloc/Sizes.h: Shifting is no longer used since we use division

instead.

11:29 AM Changeset in webkit [180687] by beidson@apple.com
  • 4 edits in trunk

Make WKPageGroupRemoveAllUserContentFilters actually remove all user content filters
https://bugs.webkit.org/show_bug.cgi?id=142047

Reviewed by Geoff Garen.

Source/WebKit2:

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupRemoveAllUserContentFilters): Remove all content filters instead of removing all user scripts.

LayoutTests:

  • platform/mac-wk2/TestExpectations: Renable content filter tests, as they should no longer interfere with others.
11:16 AM Changeset in webkit [180686] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix a accidental deletion from r178674.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
Return the fake WebGL context.

10:37 AM Changeset in webkit [180685] by commit-queue@webkit.org
  • 6 edits in trunk

Cleanup RenderSVGResourceClipper class.
https://bugs.webkit.org/show_bug.cgi?id=142032.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-26
Reviewed by Darin Adler.
Source/WebCore:

This is a follow up for r180643: <http://trac.webkit.org/changeset/180643>.
It includes cleanup for RenderSVGResourceClipper class.

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceClipper.h: Change ClipperData to be a

typedef instead of a class and rename it to ClipperMaskImage. The purpose
of having it a class even though it includes only one member was because
we wanted it to be WTF_MAKE_FAST_ALLOCATED. We do not need to allocate it
as a separate object on the heap anymore.

(WebCore::RenderSVGResourceClipper::addRendererToClipper): Instead of doing
double hash table lookups by calling HashMap::contains() and then HashMap::get(),
we can use HashMap::add() instead.

LayoutTests:

  • svg/clip-path/clip-path-line-use-before-defined-expected.svg:
  • svg/clip-path/clip-path-line-use-before-defined.svg: Simplify the test

and make separate drawings for different cases.

10:36 AM Changeset in webkit [180684] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Debug-only JavaScriptCore failures
https://bugs.webkit.org/show_bug.cgi?id=142045

Rubber stamped by Filip Pizlo.

Reduced loop count to a more reasonable value of 10,000. This still gets us to tier up
to the FTL, but doesn't take too long to run.

  • tests/stress/repeated-arity-check-fail.js:
10:34 AM Changeset in webkit [180683] by commit-queue@webkit.org
  • 6 edits
    6 adds in trunk

Setting any of the <object> element plugin controlling attributes does not have any affect.
https://bugs.webkit.org/show_bug.cgi?id=141936.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-02-26
Reviewed by Zalan Bujtas.

Source/WebCore:

When setting any of the <object> element plugin controlling attributes
dynamically we need to mark the the element to be dirty by calling
setNeedsStyleRecalc(), so it has to recreate its renderer when needed.

Test: svg/as-object/svg-in-object-dynamic-attribute-change.html

  • dom/Element.h: Delete unimplemented function.
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parseAttribute): Dirty the element by calling
setNeedsStyleRecalc() when one of the plugin controlling attributes gets
changed. We have to clear the m_useFallbackContent because the attribute's
new value might fix the object rendering.

  • html/HTMLObjectElement.h: Add a function to clear m_useFallbackContent.
  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle): We might need to
reconstruct the object renderer in the image case. This can happen if the
image was rendering fallback content and the attribute's new value fixes
the object rendering.

LayoutTests:

  • svg/as-object/resources/lime100x100.html: Added.
  • svg/as-object/resources/lime100x100.png: Added.
  • svg/as-object/resources/lime100x100.svg: Added.
  • svg/as-object/resources/red100x100.svg: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change-expected.html: Added.
  • svg/as-object/svg-in-object-dynamic-attribute-change.html: Added.

Ensure that changing the 'type' and the 'data' attributes of the <object>
element will have the expected outcome. Also make sure that the <object>
element renderer falls back correctly when setting any of the attributes
to some unexpected value.

10:33 AM Changeset in webkit [180682] by weinig@apple.com
  • 1 edit
    1 add in trunk/Tools

Check in missing WebEditingTester.xcconfig file.

  • WebEditingTester/Configurations/WebEditingTester.xcconfig: Added.
10:32 AM Changeset in webkit [180681] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[webkitpy] Remove skipped file related crufts
https://bugs.webkit.org/show_bug.cgi?id=142046

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/port/base.py:

(Port.skipped_layout_tests):
(Port._tests_from_skipped_file_contents): Deleted.
(Port): Deleted.
(Port._expectations_from_skipped_files): Deleted.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_default_timeout_ms):
(MacTest): Deleted.
(test_tests_from_skipped_file_contents): Deleted.

10:19 AM Changeset in webkit [180680] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix after r180676.

I forgot to checkin one of the more important changes!

  • win/tools/vsprops/common.props:
10:03 AM Changeset in webkit [180679] by bshafiei@apple.com
  • 4 edits in branches/safari-600.5-branch/Source/JavaScriptCore

Merge patch for r180247 and r180249. rdar://problem/19877186

9:30 AM Changeset in webkit [180678] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test updates for Debug bots.

  • platform/win/TestExpectations:
9:04 AM Changeset in webkit [180677] by Brent Fulgham
  • 4 edits
    2 adds in trunk/Tools

[Win] Unreviewed WinCairo build fix after r180653.

TestWebKitAPI should know about proper WEBCORE_EXPORT definitions.

  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPI.vcxproj.filters:
  • TestWebKitAPI/TestWebKitAPI.vcxproj/TestWebKitAPICommon.props:
  • TestWebKitAPI/win/TestWebKitAPIPrefix.cpp: Added.
  • TestWebKitAPI/win/TestWebKitAPIPrefix.h: Added.
8:51 AM Changeset in webkit [180676] by Brent Fulgham
  • 31 edits in trunk

[Win] Make build logs more legible by reducing noise
https://bugs.webkit.org/show_bug.cgi?id=142034

Reviewed by Alexey Proskuryakov.

Modify batch files, makefiles, and DOS commands to remove
uninteresting/unhelpful output.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.vcxproj/WebCoreGenerated.make:
  • WebCore.vcxproj/WebCorePreBuild.cmd:
  • WebCore.vcxproj/copyForwardingHeaders.cmd:
  • WebCore.vcxproj/copyWebCoreResourceFiles.cmd:

Source/WebInspectorUI:

  • WebInspectorUI.vcxproj/WebInspectorUI.make:

Source/WebKit:

  • WebKit.vcxproj/Interfaces/InterfacesPostBuild.cmd:
  • WebKit.vcxproj/Interfaces/InterfacesPreBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
  • WebKit.vcxproj/WebKit/WebKitPreBuild.cmd:
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd:

Source/WTF:

  • WTF.vcxproj/WTFGenerated.make:
  • WTF.vcxproj/WTFPreBuild.cmd:
  • WTF.vcxproj/copy-files.cmd:

WebKitLibraries:

  • win/tools/vsprops/common.props:
8:24 AM Changeset in webkit [180675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[FreeType] REGRESSION(r180563): Introduced crashes
https://bugs.webkit.org/show_bug.cgi?id=142044

Patch by Michael Catanzaro <Michael Catanzaro> on 2015-02-26
Reviewed by Martin Robinson.

No new tests, should be caught by any woff font test.

Use optionsPattern, not m_pattern, when m_pattern may be null.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::initializeWithFontFace):

7:34 AM WebKitGTK/2.8.x edited by Michael Catanzaro
r180563 introduced crashes (diff)
7:33 AM WebKitGTK/2.6.x edited by Michael Catanzaro
Remove r180563, it introduced crashes (diff)
7:21 AM Changeset in webkit [180674] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Revert bug 19975, now that gcc 4.7 is required.
https://bugs.webkit.org/show_bug.cgi?id=129927

Patch by Landry Breuil <landry@openbsd.org> on 2015-02-26
Reviewed by Andreas Kling.

isfinite() and signbit() are provided by gcc's cmath header.

  • wtf/MathExtras.h:
6:55 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
5:53 AM Changeset in webkit [180673] by Csaba Osztrogonác
  • 2 edits in trunk

[EFL] Remove unnecessary comment after r179110
https://bugs.webkit.org/show_bug.cgi?id=142042

Reviewed by Gyuyoung Kim.

  • Source/cmake/OptionsEfl.cmake:
5:44 AM Changeset in webkit [180672] by Csaba Osztrogonác
  • 5 edits in trunk/LayoutTests

[WK2] Unreviewed gardening, skip failing tests related to missing
EventSender.beginDragWithFiles implementation in wk2/TestExpectations.

There is no good reason to wait for 30 seconds timeout, let's skip them everywhere.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
3:44 AM Changeset in webkit [180671] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, skip fast/workers tests to unbreak the buildbot.
https://bugs.webkit.org/show_bug.cgi?id=142041

  • platform/efl/TestExpectations:
3:33 AM Changeset in webkit [180670] by Csaba Osztrogonác
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening, comment out old expectations
of WebGL tests to really skip them as we expected.

  • platform/efl/TestExpectations:
2:58 AM Changeset in webkit [180669] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

ASSERTION FAILED: !length.isUndefined() in WebCore::GridLength::GridLength
https://bugs.webkit.org/show_bug.cgi?id=141645

Reviewed by Chris Dumez.

Source/WebCore:

This bug has been here since r110484 but was uncovered by
r180140. The problem r110484 was trying to fix was that
CSSPrimitiveValue::convertToLength<Length> ended up calling
CSSPrimitiveValue::computeLengthDouble() which was apparently
dereferencing conversionData.style() and
conversionData.rootStyle() pointers without checking them. That's
why that fix added this condition to convertToLength():

isFontRelativeLength() && (!conversionData.style()
!conversionData.rootStyle())

which is not correct, because for the 4 possible font relative
length types, 3 of them just use the style() pointer and the other
one just uses rootStyle() which BTW could be NULL. This erroneous
condition makes that function to return Length(Undefined) more
often than it should.

From now on it only returns Length(Undefined) if the style()
pointer is NULL and the font relative length type is one in the
set (CSS_EMS, CSS_EXS, CSS_CHS);

Test: fast/css-grid-layout/grid-with-relative-font-length-crash.html

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::convertingToLengthRequiresNonNullStyle):
(WebCore::CSSPrimitiveValue::convertToLength):

LayoutTests:

  • fast/css-grid-layout/grid-with-relative-font-length-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-with-relative-font-length-crash.html: Added.
2:50 AM Changeset in webkit [180668] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

UNREACHABLE_FOR_PLATFORM() should be release assert
https://bugs.webkit.org/show_bug.cgi?id=141904

Reviewed by Darin Adler.

  • wtf/Assertions.h:

(UNREACHABLE_FOR_PLATFORM):

1:20 AM Changeset in webkit [180667] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Add calleeSaveRegisters() implementation for ARM Traditional
https://bugs.webkit.org/show_bug.cgi?id=141903

Reviewed by Darin Adler.

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::calleeSaveRegisters):

12:15 AM Changeset in webkit [180666] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Prod libcache to drop caches in memory pressure relief handler.
<https://webkit.org/b/142024>
<rdar://problem/19966096>

Reviewed by Antti Koivisto.

libcache already listens to the OS memory pressure notifications, but we still
need to manually request a cleanup when doing an iOS process suspension, or when
simulating memory pressure.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory): Call out to libcache's
cache_simulate_memory_warning_event() to make sure that nonessential objects
being kept alive by NSCaches get dropped when we need the memory.

12:00 AM Changeset in webkit [180665] by bshafiei@apple.com
  • 9 edits
    2 copies in branches/safari-600.1.4.15-branch

Merged r180274. rdar://problem/19878981

Feb 25, 2015:

11:25 PM Changeset in webkit [180664] by bshafiei@apple.com
  • 4 edits in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merge patch for r180247 and r180249. rdar://problem/19711578

11:15 PM Changeset in webkit [180663] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source/WebKit2

Merged r180539. rdar://problem/19711490

11:13 PM Changeset in webkit [180662] by bshafiei@apple.com
  • 2 edits
    1 copy in branches/safari-600.1.4.15-branch/Source/JavaScriptCore

Merged r180516. rdar://problem/19432916

10:56 PM Changeset in webkit [180661] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Black line across screen on Adobe Illustrator detail page (non-retina only)
https://bugs.webkit.org/show_bug.cgi?id=141866

Reviewed by Simon Fraser.

Phase is relative to the destination origin. We need to take location information into account
while snapping so that the result is inline with the snapped destination rect.
(location affects the snapped size.)

Source/WebCore:

Test: fast/backgrounds/gradient-background-on-subpixel-position.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

LayoutTests:

  • fast/backgrounds/gradient-background-on-subpixel-position-expected.html: Added.
  • fast/backgrounds/gradient-background-on-subpixel-position.html: Added.
10:05 PM Changeset in webkit [180660] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

Web Inspector: CRASH when debugger pauses inside a Promise handler
https://bugs.webkit.org/show_bug.cgi?id=141396

Reviewed by Mark Lam.

Source/JavaScriptCore:

For frames that don't have a scope, typically native frames, use the lexicalGlobalObject to
create the DebuggerScope for that frame.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::scope):

LayoutTests:

New test.

  • inspector/debugger/breakpoint-scope-expected.txt: Added.
  • inspector/debugger/breakpoint-scope.html: Added.
  • inspector/debugger/resources/scope.js: Added.
9:43 PM Changeset in webkit [180659] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Make Windows green again after r180654.

  • platform/win/TestExpectations:
9:12 PM Changeset in webkit [180658] by dburkart@apple.com
  • 8 edits
    2 copies in branches/safari-600.5-branch

Merged r180364. <rdar://19720096>

9:05 PM Changeset in webkit [180657] by dburkart@apple.com
  • 4 edits
    2 copies in branches/safari-600.5-branch

Merged r180174. <rdar://19947808>

8:29 PM Changeset in webkit [180656] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG abstract heaps should respect the difference between heap and stack
https://bugs.webkit.org/show_bug.cgi?id=142022

Reviewed by Geoffrey Garen.

We will soon (https://bugs.webkit.org/show_bug.cgi?id=141174) be in a world where a "world
clobbering" operation cannot write to our stack, but may be able to read from it. This
means that we need to change the DFG abstract heap hierarchy to have a notion of Heap that
subsumes all that World previously subsumed, and a new notion of Stack that is a subtype
of World and a sibling of Heap.

So, henceforth "clobbering the world" means reading World and writing Heap.

This makes a bunch of changes to make this work, including changing the implementation of
disjointness in AbstractHeap to make it support a more general hierarchy. I was expecting
a slow-down, but I measured the heck out of this and found no perf difference.

  • dfg/DFGAbstractHeap.cpp:

(JSC::DFG::AbstractHeap::dump):

  • dfg/DFGAbstractHeap.h:

(JSC::DFG::AbstractHeap::supertype):
(JSC::DFG::AbstractHeap::isStrictSubtypeOf):
(JSC::DFG::AbstractHeap::isSubtypeOf):
(JSC::DFG::AbstractHeap::overlaps):
(JSC::DFG::AbstractHeap::isDisjoint):

  • dfg/DFGClobberize.cpp:

(JSC::DFG::clobbersHeap):
(JSC::DFG::clobbersWorld): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

8:18 PM Changeset in webkit [180655] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Update fast/regions/region-overflow-break.html after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • fast/regions/region-overflow-break-expected.html:
  • platform/mac/TestExpectations:
8:08 PM Changeset in webkit [180654] by mmaxfield@apple.com
  • 6 edits in trunk/LayoutTests

Update 3 more tests after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • fast/multicol/newmulticol/spanner-table-expected.html:
  • fast/multicol/newmulticol/spanner-table.html:
  • fast/regions/scrolling/wheel-scroll-abspos-expected.html:
  • fast/regions/scrolling/wheel-scroll-expected.html:
  • platform/mac/TestExpectations:
8:04 PM Changeset in webkit [180653] by Brent Fulgham
  • 51 edits
    10 adds in trunk

[Win] Use WEBCORE_EXPORT instead of Definition file
https://bugs.webkit.org/show_bug.cgi?id=141734

Reviewed by Alex Christensen.

Source/WebCore:

No change in functionality.

  • WebCore.vcxproj/WebCore.vcxproj: Correct bad Precompiled header

settings on certain files.

  • WebCore.vcxproj/WebCore.vcxproj.filters: Automatically updated

by Visual Studio.

  • WebCore.vcxproj/WebCoreTestSupport.vcxproj: Ditto.
  • WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Ditto.
  • WebCore.vcxproj/WebCoreTestSupportCommon.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportDebug.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportDebugWinCairo.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportProduction.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportRelease.props: Added.
  • WebCore.vcxproj/WebCoreTestSupportReleaseWinCairo.props: Added.
  • WebCorePrefix.h: Provide proper export definitions for Windows.
  • bindings/js/JSCustomXPathNSResolver.cpp: Add missing #include

needed by the new export style.

  • bindings/js/JSDOMWindowBase.h: Export class since DRT needs

access to parts of it.

  • bindings/js/ScriptCachedFrameData.cpp: Add missing #include

needed by the new export style.

  • bindings/scripts/CodeGeneratorJS.pm: Use different export macro

when generating WebCoreTestSupport files, so that we don't confuse
the linker when WebCore.lib and WebCoreTestSupport.lib try to
both export WEBCORE_EXPORT symbols.
(ExportLabelForClass):
(GenerateHeader):

  • bridge/jsc/BridgeJSC.cpp: Add missing #include needed by the new

export style.

  • css/CSSParser.cpp: Ditto.
  • dom/Document.cpp: Ditto.
  • html/HTMLImageLoader.cpp: Ditto.
  • inspector/CommandLineAPIModule.cpp: Ditto.
  • inspector/PageDebuggerAgent.cpp: Ditto.
  • inspector/PageRuntimeAgent.cpp: Ditto.
  • inspector/WorkerRuntimeAgent.cpp: Ditto.
  • page/DOMWindow.cpp: Ditto.
  • page/DOMWindow.h: Export the destructor, as it is needed by

DumpRenderTree (on Windows).

  • page/Page.cpp: Add missing #include needed by the new export style.
  • platform/Logging.h: Remove conflicting export declaration.
  • platform/PlatformExportMacros.h: Update for Windows use.
  • testing/Internals.cpp: Add missing #include needed by the new export style.
  • testing/Internals.h: Use WEBCORE_TESTSUPPORT_EXPORT for things that

are supposed to be exported by WebCoreTestSupport, not WebCore.

  • testing/js/WebCoreTestSupport.cpp: Add missing #include needed by

new export style.

  • testing/js/WebCoreTestSupportPrefix.cpp: Added.
  • testing/js/WebCoreTestSupportPrefix.h: Added.
  • xml/XMLHttpRequest.h: Export the destructor.
  • xml/XSLStyleSheetLibxslt.cpp: Add missing #include needed by the new

export style.

  • xml/XSLTProcessorLibxslt.cpp: Ditto.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKit.vcxproj: Visual studio automatic

file cleanup.

  • WebKit.vcxproj/WebKit/WebKitCommon.props: Don't use the export definition

file any longer.

Source/WebKit/win:

  • CFDictionaryPropertyBag.h: Add required export macros.
  • Interfaces/WebKit.idl: Ditto.
  • WebCoreStatistics.cpp: Add missing #include (required

now that we are exporting more symbols.)

  • WebKitCOMAPI.h: Add required export macros.
  • WebKitDLL.h: Ditto.
  • WebKitPrefix.h: Ditto.
  • WebView.cpp: Add missing #include required using new

due to new export mechanism.

Tools:

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj:

Use a precompiled header so we can define our export macros properly.

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTree.vcxproj.filters:

Visual studio automatic update stuff.

  • DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeCommon.props:

Set up Precompiled Header use for project..

  • DumpRenderTree/win/DumpRenderTreePrefix.cpp: Added.
  • DumpRenderTree/DumpRenderTreePrefix.h: Update with proper export

declarations for building DumpRenderTree as a client of
WebCore/WebKit.

7:46 PM Changeset in webkit [180652] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

Update css3/flexbox/csswg/flexbox_direction-row-reverse.html after r177774

Unreviewed.

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-02-25

  • css3/flexbox/csswg/flexbox_direction-row-reverse-expected.html:
  • css3/flexbox/csswg/flexbox_direction-row-reverse.html:
  • platform/mac/TestExpectations:
5:24 PM Changeset in webkit [180651] by rniwa@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r180595): construct varargs fails in FTL
https://bugs.webkit.org/show_bug.cgi?id=142030

Reviewed by Geoffrey Garen.

The bug was caused by IC size being too small for construct_varargs even though we've added a new argument.
Fixed the bug by increasing the IC size to match call_varargs.

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfConstructVarargs):

5:16 PM Changeset in webkit [180650] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip timing-out test after r180646.

  • platform/win/TestExpectations:
4:24 PM Changeset in webkit [180649] by mark.lam@apple.com
  • 4 edits in trunk

ASan does not like JSC::MachineThreads::tryCopyOtherThreadStack.
<https://webkit.org/b/141672>

Reviewed by Alexey Proskuryakov.

ASan does not like the fact that we memcpy the stack for GC scans. So,
we're working around this by using our own memcpy (asanUnsafeMemcpy)
implementation that we can tell ASan to ignore.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::asanUnsafeMemcpy):

Tools:

Also removed the previous added directive to ignore *tryCopyOtherThreadStack*
which isn't effective for working around this issue.

  • asan/webkit-asan-ignore.txt:
4:18 PM Changeset in webkit [180648] by gyuyoung.kim@samsung.com
  • 3 edits in trunk/Source/WebCore

Remove unnecessary DatabaseFooTask::create
https://bugs.webkit.org/show_bug.cgi?id=142002

Reviewed by Darin Adler.

DatabaseFooTask::create can be replaced with std::make_unique<>.

No new tests, no behavior changes.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::scheduleTransaction):
(WebCore::Database::scheduleTransactionStep):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::closeImmediately):
(WebCore::Database::tableNames):

  • Modules/webdatabase/DatabaseTask.h:

(WebCore::DatabaseBackend::DatabaseCloseTask::create): Deleted.
(WebCore::DatabaseBackend::DatabaseTransactionTask::create): Deleted.
(WebCore::DatabaseBackend::DatabaseTableNamesTask::create): Deleted.

4:05 PM Changeset in webkit [180647] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS Media] incorrect front padding on time values
https://bugs.webkit.org/show_bug.cgi?id=142027
<rdar://problem/19960790>

Reviewed by Brent Fulgham.

We don't want to prefix times with a "0".

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.formatTime):

3:49 PM Changeset in webkit [180646] by Chris Dumez
  • 5 edits
    2 adds in trunk

Make PublicURLManager suspendable
https://bugs.webkit.org/show_bug.cgi?id=141977
<rdar://problem/19923085>

Reviewed by Andreas Kling.

Source/WebCore:

Make PublicURLManager suspendable by overriding ActiveDOMObject::canSuspend()
and returning true. Nothing prevents suspending the PublicURLManager as its
implementation never causes JS to be executed. No implementation for
suspend() / resume() needs to be provided for the same reason.

The fact that PublicURLManager wasn't suspendable was preventing pages using
URL.createObjectURL() from entering the PageCache. Baidu.com search results
pages are using the API for example.

Test: fast/history/page-cache-createObjectURL.html

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::canSuspend):

  • html/PublicURLManager.h:

LayoutTests:

Add a layout test to check that a page using URL.createObjectURL() API
can enter the PageCache.

  • fast/history/page-cache-createObjectURL-expected.txt: Added.
  • fast/history/page-cache-createObjectURL.html: Added.
  • platform/wk2/TestExpectations: The new test is skipped on WK2 because WKTR does not support eventSender.beginDragWithFiles().
3:42 PM Changeset in webkit [180645] by ap@apple.com
  • 2 edits in trunk/Source/WebKit

<rdar://problem/19949665> Some queues fail to build because of WebKitPluginHost.app symlink

Fix by Dan Bernstein, reviewed by me.

  • WebKit.xcodeproj/project.pbxproj:
3:19 PM Changeset in webkit [180644] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Cleanup BackgroundImageGeometry class.
https://bugs.webkit.org/show_bug.cgi?id=141997

Reviewed by Simon Fraser.

This patch attempts to improve RenderBoxModelObject::calculateBackgroundImageGeometry() readability by
removing redundant code and making image geometry operations explicit. BackgroundImageGeometry
becomes a read only class (with the exception of the clip() method).

No change in functionality.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::pixelSnapBackgroundImageGeometryForPainting):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::setNoRepeatX): Deleted.
(WebCore::BackgroundImageGeometry::setNoRepeatY): Deleted.
(WebCore::BackgroundImageGeometry::useFixedAttachment): Deleted.
(WebCore::BackgroundImageGeometry::clip): Deleted.
(WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting): Deleted.

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::clip):
(WebCore::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
(WebCore::BackgroundImageGeometry::setDestRect): Deleted.
(WebCore::BackgroundImageGeometry::setPhase): Deleted.
(WebCore::BackgroundImageGeometry::setPhaseX): Deleted.
(WebCore::BackgroundImageGeometry::setPhaseY): Deleted.
(WebCore::BackgroundImageGeometry::setTileSize): Deleted.
(WebCore::BackgroundImageGeometry::setSpaceSize): Deleted.
(WebCore::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.

3:05 PM Changeset in webkit [180643] by Said Abou-Hallawa
  • 7 edits
    2 adds in trunk

Horizontal and vertical lines are clipped completely if clip-path is included in the tag but the referenced element is defined later.
https://bugs.webkit.org/show_bug.cgi?id=141776.

Reviewed by Dean Jackson.
Source/WebCore:

Tests: svg/clip-path/clip-path-line-use-before-defined-expected.svg

svg/clip-path/clip-path-line-use-before-defined.svg

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext): Ensure the renderer
is added to m_clipper if it does not exist. The same renderer might have been
added to m_clipper in resourceBoundingBox().

(WebCore::RenderSVGResourceClipper::addRendererToClipper): Add the renderer to
m_clipper if it does not exist. Return the associated ClipperData.

(WebCore::RenderSVGResourceClipper::resourceBoundingBox): If the clipper is
referenced before it is defined, add the renderer to m_clipper. While doing the
layout() for the clipper, we can check if m_clipper has values or not. If it does
have, we are going to mark the clipper for client invalidation which is done by
the SVG root.

  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceContainer.h:

(WebCore::RenderSVGResourceContainer::selfNeedsClientInvalidation): Define a
new function selfNeedsClientInvalidation() which controls marking the clipper
for client invalidation. In RenderSVGResourceClipper, override it so it checks
m_clipper to force clients validation even if it the first time we do layout
for this clipper.

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::layout): Call the virtual function
selfNeedsClientInvalidation() to check whether we need to mark the clipper for
client invalidation.

  • svg/SVGElement.cpp: Delete unneeded header file.

LayoutTests:


New test cases for SVG lines which are clipped to a <clipPath>. The <clipPath>
is referenced before it is defined.

  • svg/clip-path/clip-path-line-use-before-defined-expected.svg: Added.
  • svg/clip-path/clip-path-line-use-before-defined.svg: Added.
2:37 PM Changeset in webkit [180642] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.15-branch/Source

Versioning.

2:37 PM Changeset in webkit [180641] by commit-queue@webkit.org
  • 4 edits in trunk

[WinCairo] WinLauncher is not starting on Vista.
https://bugs.webkit.org/show_bug.cgi?id=141905

Patch by peavo@outlook.com <peavo@outlook.com> on 2015-02-25
Reviewed by Alex Christensen.

We have to soft link with Media Foundation functions to be able
to start on Vista and WinXP.

Source/WebCore:

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::createSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endSession):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):

WebKitLibraries:

  • win/tools/vsprops/WinCairo.props: Remove Media Foundation input libraries.
2:35 PM Changeset in webkit [180640] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.15.8

New tag.

2:32 PM Changeset in webkit [180639] by benjamin@webkit.org
  • 6 edits
    1 add in trunk

CodeBlock crashes when dumping op_push_name_scope
https://bugs.webkit.org/show_bug.cgi?id=141953

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-02-25
PerformanceTests/SunSpider:

Reviewed by Filip Pizlo.

  • profiler-test.yaml:

Source/JavaScriptCore:

Reviewed by Filip Pizlo and Csaba Osztrogonác.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • tests/stress/op-push-name-scope-crashes-profiler.js: Added.

Tools:

Reviewed by Filip Pizlo.

  • Scripts/run-jsc-stress-tests:
2:32 PM Changeset in webkit [180638] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening

Unreviewed.

Getting the bots green after r180633 until Brady fixes the underlying issue.

  • platform/mac-wk2/TestExpectations:
2:29 PM Changeset in webkit [180637] by benjamin@webkit.org
  • 14 edits in trunk/Source/JavaScriptCore

Make ParserError immutable by design
https://bugs.webkit.org/show_bug.cgi?id=141955

Reviewed by Geoffrey Garen.

This patch enforce that no field of ParserError can
be modified after the constructor.

  • parser/ParserError.h:

Move the attributes to pack the integer + 2 bytes together.
This is irrelevant for memory impact, it is to remve a load-store
when copying by value.

Also move the attributes to be private.

(JSC::ParserError::isValid):
To client of the interface cared about the type of the error,
the only information needed was: is there an error.

(JSC::ParserError::ParserError):
(JSC::ParserError::syntaxErrorType):
(JSC::ParserError::token):
(JSC::ParserError::message):
(JSC::ParserError::line):
(JSC::ParserError::toErrorObject):

  • API/JSScriptRef.cpp:
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createBuiltinExecutable):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::codeBlockFor):

  • bytecode/UnlinkedCodeBlock.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::parse):

  • jsc.cpp:

(runInteractive):

  • parser/Parser.h:

(JSC::parse):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:
  • runtime/Completion.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):

1:27 PM Changeset in webkit [180636] by beidson@apple.com
  • 6 edits in trunk/Tools

Get rid of TestInvocation::pathOrURL
https://bugs.webkit.org/show_bug.cgi?id=142021

Reviewed by Tim Horton.

The pathOrURL string is a relative path used as an argument to WebKitTestRunner,
but most code that uses it expected an absolute path.

This gets rid of the member and replaces all uses with a more descriptive "urlContains" method.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
(WTR::shouldUseFixedLayout):
(WTR::TestController::updateLayoutTypeForTest):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::urlContains):
(WTR::TestInvocation::shouldLogFrameLoadDelegates):
(WTR::TestInvocation::shouldLogHistoryClientCallbacks):
(WTR::TestInvocation::invoke):
(WTR::shouldLogFrameLoadDelegates): Deleted.
(WTR::shouldLogHistoryClientCallbacks): Deleted.

  • WebKitTestRunner/TestInvocation.h:

(WTR::TestInvocation::pathOrURL): Deleted.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::shouldMakeViewportFlexible):
(WTR::TestController::platformConfigureViewForTest):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::shouldUseThreadedScrolling):
(WTR::TestController::platformConfigureViewForTest):

1:05 PM Changeset in webkit [180635] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

W3C test importer should use argparse instead of optparse
https://bugs.webkit.org/show_bug.cgi?id=142013

Reviewed by Bem Jones-Bey.

  • Scripts/webkitpy/w3c/test_importer.py:

(main): Updating according argparse.
(parse_args): Moving from optparse to argparse.

12:54 PM Changeset in webkit [180634] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

REGRESSION (r180018 ): Holding a rubber-band in place can get stuck
https://bugs.webkit.org/show_bug.cgi?id=142020
-and corresponding-
rdar://problem/19945216

Reviewed by Tom Horton.

It was a mistaken assumption that it was necessary to return false in the zero-
delta case. That is clearly conceptually wrong since false represents the DOM
doing something special with the event, which is clearly not the case if we never
even send the event to the DOM. Returning true will allow the rest of the
scrolling machinery the ability to handle the event.

  • dom/Element.cpp:

(WebCore::Element::dispatchWheelEvent):

12:42 PM Changeset in webkit [180633] by beidson@apple.com
  • 6 edits
    5 adds in trunk

Layout test support for user content filters
https://bugs.webkit.org/show_bug.cgi?id=142018

Reviewed by Tim Horton.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Clear all user content filters between tests.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): For all tests with usercontentfilter/ in their path try to load a matching .json

file before loading the test itself.

LayoutTests:

  • TestExpectations:
  • http/tests/usercontentfilter/basic-filter.html: Added.
  • http/tests/usercontentfilter/basic-filter.html.json: Added.
  • platform/mac-wk2/TestExpectations:
10:56 AM Changeset in webkit [180632] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Add (unused for now) code to delete website data for a set of origins
https://bugs.webkit.org/show_bug.cgi?id=142019

Reviewed by Beth Dakin.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):
Assert that there are no pending callbacks.

(WebKit::WebProcessProxy::connectionDidClose):
Invoke all the didDeleteWebsiteDataForOrigins callbacks.

(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins):
Grab the didDeleteWebsiteDataForOrigins and invoke it.

(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
Add the pending callback and send a DeleteWebsiteDataForOrigins to the web process.

  • UIProcess/WebProcessProxy.h:

Add new members.

  • UIProcess/WebProcessProxy.messages.in:

Add a DidDeleteWebsiteDataForOrigins message.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::deleteWebsiteDataForOrigins):
For now, just send back a DidDeleteWebsiteDataForOrigins message.

  • WebProcess/WebProcess.h:

Add new members.

  • WebProcess/WebProcess.messages.in:

Add a DeleteWebsiteDataForOrigins message.

10:42 AM Changeset in webkit [180631] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

HTMLElement::collectStyleForPresentationAttribute duplicates a lot of code for contentEditableAttr
https://bugs.webkit.org/show_bug.cgi?id=142003

Reviewed by Sam Weinig.

Utilized contentEditableType to reduce the code duplication.

  • html/HTMLElement.cpp:

(WebCore::contentEditableType): Moved and added a version that takes AtomicString.
(WebCore::HTMLElement::collectStyleForPresentationAttribute):

9:43 AM Changeset in webkit [180630] by shiva.jm@samsung.com
  • 2 edits in trunk/Source/WebKit2

Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=142014

Reviewed by Anders Carlsson.

Fix build warning by using UNUSED_PARAM macro.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeWebProcessAccessTypeForDataFetch):

9:35 AM Changeset in webkit [180629] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip new <attachment> test since it's not working on Windows.

  • platform/win/TestExpectations:
9:26 AM Changeset in webkit [180628] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

[Win] Skip ARIA 1.1 tests for unsupported feature.

  • platform/win/TestExpectations:
8:22 AM Changeset in webkit [180627] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.20

New tag.

8:18 AM Changeset in webkit [180626] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

7:10 AM Changeset in webkit [180625] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve Regex/Error output in Object Tree and Previews
https://bugs.webkit.org/show_bug.cgi?id=142010

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-25
Reviewed by Timothy Hatcher.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView):
(WebInspector.ObjectPreviewView.prototype._initTitleElement):
Since some object types may be formatted as simple values, ensure they get
the formatted style even in the title view.

(WebInspector.ObjectPreviewView.prototype._appendPreview):
Those object types that can be formatted as simple values should skip
to the value formatting phase.

(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
Do not show property previews for error objects. Always assume lossy
so that it can be expanded.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView):
Make a similiar improvement for ObjectTree titles when previews are
unavailable. This will make dir(value) show a stylized value in the
title of the Object Tree.

7:03 AM Changeset in webkit [180624] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve PropertyPath display strings for getters / values
https://bugs.webkit.org/show_bug.cgi?id=142008

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-02-25
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Utilities.js:

(doubleQuotedString):
Helper to double quote a string and escape double quotes with-in it.

  • UserInterface/Models/PropertyPath.js:

(WebInspector.PropertyPath.prototype.get reducedPath):
Compute the path eliminating unnecessary protos. Note we don't
property handle the case where a .proto.x is override earlier
by a .x, but that case is rare.

(WebInspector.PropertyPath.prototype.displayPath):
Helper for choosing fullPath or reducedPath display strings.

(WebInspector.PropertyPath.prototype.appendPropertyName):
(WebInspector.PropertyPath.prototype.appendGetterPropertyName):
(WebInspector.PropertyPath.prototype.appendSetterPropertyName):
(WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
When appending a descriptor, specify if it is for a getter/setter or value.
For getters / setters the actual function can be directly fetched via
lookupGetter/lookupSetter. Continue to use the property name for values.

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createElementForTypesAndValue):

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
(WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
(WebInspector.ObjectTreePropertyTreeElement.prototype):

4:03 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
4:02 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
4:00 AM WebKitGTK/2.6.x edited by clopez@igalia.com
(diff)
2:53 AM Changeset in webkit [180623] by svillar@igalia.com
  • 6 edits in trunk

[CSS Grid Layout] Tracks growing beyond limits when they should not
https://bugs.webkit.org/show_bug.cgi?id=140883

Reviewed by Darin Adler.

Source/WebCore:

Our track sizing algorithm implementation incorrectly grew some
tracks beyond limits when handling min-content and max-content
base sizes. In those cases we should only grow "any affected track
that happens to also have an intrinsic max track sizing function"
or all of them if there are none.

The problem was that we're using a vector of indexes pointing to
the vector with the list of affected tracks. Those indexes become
easily incorrect because the first thing we do in
distributeSpaceToTracks() is to sort the vector with the affected
tracks by growth potential.

Instead of that we now pass a vector with pointers to the list of
tracks allowed to grow over the limits. The size changes are now
directly stored in the GridTracks (it's called plannedSize)
instead of in a separate vector, so we don't need to worry about
tracks being rearranged (and we also get rid of the ugly vector of
indexes pointing to another vector).

  • rendering/RenderGrid.cpp:

(WebCore::GridTrack::plannedSize): New member with getter/setter.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
Pass a setXXX() function instead of a growXXX() one to ForItems().
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Renamed additionalBreadthSpace to extraSpace which is the term
used by specs.
(WebCore::RenderGrid::distributeSpaceToTracks): Use GridTrack's
plannedSize instead of the old distribution vector.
(WebCore::GridTrack::growBaseSize): Deleted.
(WebCore::GridTrack::growGrowthLimit): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
  • fast/css-grid-layout/grid-content-sized-columns-resolution.html:
2:22 AM WebKitGTK/2.8.x edited by jdiggs@igalia.com
(diff)
2:18 AM Changeset in webkit [180622] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Need to pass RTLD_DEEPBIND to dlopen() to ensure that our LLVMOverrides take effect on Linux
https://bugs.webkit.org/show_bug.cgi?id=142006

Reviewed by Csaba Osztrogonác.

This fixes hard-to-reproduce concurrency-related crashes when running stress tests with FTL and
concurrent JIT enabled.

  • llvm/InitializeLLVMPOSIX.cpp:

(JSC::initializeLLVMPOSIX):

2:04 AM Changeset in webkit [180621] by jdiggs@igalia.com
  • 16 edits in trunk

AX: Implement support for ARIA 1.1 'searchbox' role
https://bugs.webkit.org/show_bug.cgi?id=142004

Reviewed by Chris Fleizach.

Source/WebCore:

Add a new accessible SearchFieldRole to handle both the ARIA role
and the "search" input type.

No new tests. Instead, added a new test case to roles-exposed.html
for the mapping, and updated roles-computedRoleString.html because
there is now a one-to-one mapping between the "search" input type
and an ARIA role.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isSearchField):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIATextControl):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::initializeRoleMap):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • accessibility/roles-computedRoleString-expected.txt: Updated for new role.
  • accessibility/roles-computedRoleString.html: Updated for new role.
  • accessibility/roles-exposed.html: New test case added.
  • platform/efl/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac-mavericks/accessibility/roles-exposed-expected.txt: Updated for new test case.
  • platform/mac/accessibility/roles-exposed-expected.txt: Updated for new test case.
1:47 AM WebKitGTK/2.8.x edited by jdiggs@igalia.com
(diff)
1:08 AM Changeset in webkit [180620] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Enable concurrent JIT on GTK
https://bugs.webkit.org/show_bug.cgi?id=142007

Reviewed by Benjamin Poulain.

Seems weird that GTK keeps it off. No good reason for that as far as I can tell.

  • wtf/Platform.h:
Note: See TracTimeline for information about the timeline view.