Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Feb 27, 2015
  1. Web Inspector: Colored console messages apply text color to object tr…

    commit-queue@webkit.org authored
    …ee properties
    
    
    https://bugs.webkit.org/show_bug.cgi?id=142051
    
    Patch by Joseph Pecoraro <pecoraro@apple.com> 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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. Web Inspector: Clear Log on Reload clears some logs that were after r…

    commit-queue@webkit.org authored
    …eload
    
    
    https://bugs.webkit.org/show_bug.cgi?id=142070
    
    Patch by Joseph Pecoraro <pecoraro@apple.com> 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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. Implement <attachment> element appearance on Mac

    timothy_horton@apple.com authored
    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.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  4. Assertion fix for r180711: The bool returning form of BytecodeGenerat…

    mark.lam@apple.com authored
    …or::addVar() can be removed.
    
    <https://webkit.org/b/142064>
    
    Reviewed by Joseph Pecoraro.
    
    * bytecompiler/BytecodeGenerator.cpp:
    (JSC::BytecodeGenerator::addVar):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  5. AX: Expose caret browsing preference to accessibility API

    commit-queue@webkit.org authored
    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):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180718 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  6. Remove unnecessary create() factory functions

    gyuyoung.kim@samsung.com authored
    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:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  7. MachineThreads::Thread clean up has a use after free race condition.

    mark.lam@apple.com authored
    <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:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  8. Web Inspector: Save Console Evaluations into Command Line variables $…

    joepeck@webkit.org authored
    …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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  9. Web Inspector: Set/Map appear as lossless when they have lossy entries

    joepeck@webkit.org authored
    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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  10. Web Inspector: New ObjectTree UI for Arrays / Maps / Sets

    joepeck@webkit.org authored
    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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  11. Remove unnecessary create() factory functions in CDMFoo, NamedNodeMap

    gyuyoung.kim@samsung.com authored
    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.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  12. The bool returning form of BytecodeGenerator::addVar() can be removed

    fpizlo@apple.com authored
    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.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  13. [Content Filtering] Move WebFilterEvaluator and NEFilterSource declar…

    aestes@apple.com authored
    …ations 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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180708 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Commits on Feb 26, 2015
  1. [Win] More Debug assertion updates.

    bfulgham@apple.com authored
    * platform/win/TestExpectations:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180707 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  2. Add API to remove all website data for the given data records

    andersca@apple.com authored
    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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180706 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  3. [Win] Remove WebKitExportGenerator project (and related)

    bfulgham@apple.com authored
    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.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180705 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  4. Rename DatabaseManager::manager() to DatabaseManager::singleton()

    cdumez@apple.com authored
    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):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180704 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  5. Various array access corner cases should take OSR exit feedback

    fpizlo@apple.com authored
    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.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  6. bmalloc: Large object free list can grow infinitely

    ggaren@apple.com authored
    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.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  7. Fix the !ENABLE(GEOLOCATION) build after r180533

    ossy@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=142053
    
    Reviewed by Chris Dumez.
    
    * Modules/geolocation/GeoNotifier.cpp:
    * Modules/geolocation/GeoNotifier.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  8. [EFL] Bump EFL version to 1.13.0

    ossy@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=141708
    
    Reviewed by Gyuyoung Kim.
    
    * efl/jhbuild.modules:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  9. [iOS Media] incorrect front padding on time values

    dino@apple.com authored
    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):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  10. URTBF after r180693.

    ossy@webkit.org authored
    * CMakeLists.txt:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  11. 2015-02-26 Geoffrey Garen <ggaren@apple.com>

    ggaren@apple.com authored
            Try to fix the Mac build.
    
            Unreviewed.
    
            * bmalloc.xcodeproj/project.pbxproj: Make FreeList.h available.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  12. bmalloc: Refactored SegregatedFreeList and BoundaryTag::init

    ggaren@apple.com authored
    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):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  13. DFG SSA stack accesses shouldn't speak of VariableAccessDatas

    fpizlo@apple.com authored
    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):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  14. Rolling out r180602, r180608, r180613, r180617, r180671.

    mark.lam@apple.com authored
    <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:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  15. Source/JavaScriptCore:

    mmaxfield@apple.com authored
    [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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  16. bmalloc: free up a bit in BoundaryTag

    ggaren@apple.com authored
    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.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  17. Make WKPageGroupRemoveAllUserContentFilters actually remove all user …

    beidson@apple.com authored
    …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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  18. Unreviewed. Fix a accidental deletion from r178674.

    roger_fong@apple.com authored
    * html/canvas/WebGLRenderingContextBase.cpp:
    (WebCore::WebGLRenderingContextBase::create):
    Return the fake WebGL context.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  19. Cleanup RenderSVGResourceClipper class.

    commit-queue@webkit.org authored
    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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180685 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  20. [Win] Debug-only JavaScriptCore failures

    msaboff@apple.com authored
    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:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180684 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  21. Setting any of the <object> element plugin controlling attributes doe…

    commit-queue@webkit.org authored
    …s 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.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  22. Check in missing WebEditingTester.xcconfig file.

    weinig@apple.com authored
    * WebEditingTester/Configurations/WebEditingTester.xcconfig: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@180682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Something went wrong with that request. Please try again.