Timeline



Aug 22, 2015:

9:14 PM Changeset in webkit [188833] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Factor out and add logging to swipe-start hysteresis code
https://bugs.webkit.org/show_bug.cgi?id=148361

Reviewed by Darin Adler.

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):

  • UIProcess/mac/ViewGestureController.h:

(WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
(WebKit::ViewGestureController::shouldIgnorePinnedState):
(WebKit::ViewGestureController::setShouldIgnorePinnedState):
(WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker):
(WebKit::ViewGestureController::PendingSwipeTracker::shouldIgnorePinnedState):
(WebKit::ViewGestureController::PendingSwipeTracker::setShouldIgnorePinnedState):
Move pending-swipe members into PendingSwipeTracker.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::scrollEventCanInfluenceSwipe):
(WebKit::deltaShouldCancelSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::handleScrollWheelEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::handleEvent):
(WebKit::ViewGestureController::PendingSwipeTracker::eventWasNotHandledByWebCore):
(WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::reset):
(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback):
Move pending-swipe methods into PendingSwipeTracker.
Clean up the logic a bit.
Add some logging.

7:28 PM Changeset in webkit [188832] by saambarati1@gmail.com
  • 3 edits in trunk/Websites/webkit.org

Change image for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png:
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png:
4:05 PM Changeset in webkit [188831] by saambarati1@gmail.com
  • 2 edits in trunk/Websites/webkit.org

Change video for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov:
3:46 PM Changeset in webkit [188830] by saambarati1@gmail.com
  • 1 edit
    8 adds
    4 deletes in trunk/Websites/webkit.org

Add 1x/2x resources for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Removed.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-1x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-2x.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Removed.
3:29 PM Changeset in webkit [188829] by Chris Dumez
  • 14 edits
    2 deletes in trunk

NodeList should not have a named getter
https://bugs.webkit.org/show_bug.cgi?id=148117

Reviewed by Darin Adler.

Source/WebCore:

Drop the named property getter on NodeList to match the specification:
https://dom.spec.whatwg.org/#interface-nodelist

This change could be a bit risky but:

  1. Firefox and IE never had this named property getter on NodeList.
  2. Chrome successfuly dropped this named property getter in early 2014: https://src.chromium.org/viewvc/blink?revision=166356&view=revision
  3. Our named property getter on NodeList is only partly functional: It only matches by 'id' attribute, not by 'name' attribute.
  4. Our APIs that were wrongly returning a NodeList instead of an HTMLCollection (getElementsByTagName() / getElementsByClassName()) have been fixed in r188735 and r188809. HTMLCollection does have a named property getter.
  5. This named getter adds code complexity.
  • bindings/js/JSNodeListCustom.cpp:

(WebCore::createWrapper): Deleted.

  • dom/ChildNodeList.cpp:

(WebCore::ChildNodeList::invalidateCache): Deleted.

  • dom/ChildNodeList.h:
  • dom/LiveNodeList.cpp:
  • dom/LiveNodeList.h:
  • dom/NodeList.h:
  • dom/NodeList.idl:
  • dom/StaticNodeList.cpp:

(WebCore::StaticElementList::length): Deleted.
(WebCore::StaticElementList::item): Deleted.

  • dom/StaticNodeList.h:
  • html/HTMLCollection.h:

LayoutTests:

  • fast/dom/childnode-item-after-itemname-expected.txt: Removed.
  • fast/dom/childnode-item-after-itemname.html: Removed.

Drop test as it is no longer relevant now that NodeList no longer
has a named property getter.

3:20 PM Changeset in webkit [188828] by timothy_horton@apple.com
  • 23 edits
    1 add in trunk

WebKitTestRunner should use WKWebView on OS X and iOS
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

Reviewed by Anders Carlsson.
Patch by Enrica Casucci and myself.

  • WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::windowSnapshotEnabled): Deleted.
Add a PlatformWebView constructor that takes a WKWebViewConfiguration
instead of WKContext and WKPageGroup.

Remove the unused, always-true windowSnapshotEnabled().
While technically some platforms don't have window snapshotting,
they just return null instead of implementing windowSnapshotEnabled().

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):
Delegate to the various platforms for creating PlatformWebView instances,
for creating WKContexts, and for accessing WKPreferences,
so that they can do special things (like, use WKWebView instead!).

(WTR::TestController::resetPreferencesToConsistentValues):
Make explicit WebKitTestRunner's desired default for two preferences
which have differing defaults between the antique and modern API,
for consistency's sake.

(WTR::TestController::resetStateToConsistentValues):
Add platformResetStateToConsistentValues.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
Adjust to the aforementioned removal of windowSnapshotEnabled().

  • WebKitTestRunner/ios/TestControllerCocoa.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformInitializeConfiguration):
Implement the new platform functions for the Modern WebKit2 API,
in a new TestControllerCocoa file that is shared between iOS and Mac.

For platformMaybeCreateContext, use the trick that we know we can cast
the WKProcessPool to a WKContextRef to retrieve a WKContextRef from
WKWebView's configuration.

Ditto for WKPreferencesRef and WKPreferences.

Remove user content filters on the WKWebView's userContentController.

  • WebKitTestRunner/mac/TestControllerMac.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

Move code into TestControllerCocoa.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::addUserScript):
(WTR::TestRunner::addUserStyleSheet):
Adopt WKBundlePage API for user scripts/sheets.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

Make and keep a WKWebView instead of a WKView.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
Reach inside the WKWebView to the WKView when dispatching events.
This is fairly ugly and we should come up with a better solution.
Also, fix some flipping and style errors.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add SPI to disable window occlusion detection, for WebKitTestRunner's use.

  • Shared/WebPreferencesDefinitions.h:

Remove a completely unused WebPreference. It is a WebCore Setting,
but in the API it's exposed as a WKPage setter and WKView and WKWebView property
instead of as a WKPreference, so there's no need for the WebPreference.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageAddUserScript):
(WKBundlePageAddUserStyleSheet):
(WKBundlePageRemoveAllUserContent):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
(WebKit::WebPage::removeAllUserContent):

  • WebProcess/WebPage/WebPage.h:

Add WKBundlePage functions for user script and style sheet manipulation.
These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's
(used by the WKBundle functions), so they work correctly with the modern API.

12:29 PM Changeset in webkit [188827] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Tweak a test that became flaky on some machines after r188793.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
11:38 AM Changeset in webkit [188826] by Michael Catanzaro
  • 5 edits in trunk

Unreviewed, attempt to fix GTK build after r188718

Source/WebKit2:

  • CMakeLists.txt: Build WKPageConfigurationRef.cpp
  • PlatformEfl.cmake: Don't build WKPageConfigurationRef.cpp

Tools:

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView):

11:35 AM Changeset in webkit [188825] by fpizlo@apple.com
  • 20 edits
    3 adds in trunk/Source/JavaScriptCore

DFG string concatenation shouldn't be playing fast and loose with effects and OSR exit
https://bugs.webkit.org/show_bug.cgi?id=148338

Reviewed by Michael Saboff and Saam Barati.

Prior to this change, DFG string concatenation appeared to have various different ways of
creating an OSR exit right after a side effect. That's bad, because the exit will cause
us to reexecute the side effect. The code appears to have some hacks for avoiding this,
but some cases are basically unavoidable, like the OOM case of string concatenation: in
trunk that could cause two executions of the toString operation.

This changes the string concatenation code to either be speculative or effectful but
never both. It's already the case that when this code needs to be effectful, it also
needs to be slow (it does int->string conversions, calls JS functions, etc). So, this is
a small price to pay for sanity.

The biggest part of this change is the introduction of StrCat, which is like MakeRope but
does toString conversions on its own instead of relying on separate nodes. StrCat can
take either 2 or 3 children. It's the effectful but not speculative version of MakeRope.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertStringAddUse):
(JSC::DFG::FixupPhase::fixupToStringOrCallStringConstructor):
(JSC::DFG::FixupPhase::attemptToMakeFastStringAdd):
(JSC::DFG::FixupPhase::canOptimizeStringObjectAccess):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::JSValueOperand::JSValueOperand):
(JSC::DFG::JSValueOperand::~JSValueOperand):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileStrCat):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):

  • jit/JITOperations.h:
  • tests/stress/exception-effect-strcat.js: Added. This test previously failed.
  • tests/stress/exception-in-strcat-string-overflow.js: Added. An earlier version of this patch made this fail.
  • tests/stress/exception-in-strcat.js: Added.
11:05 AM Changeset in webkit [188824] by akling@apple.com
  • 21 edits in trunk/Source

[JSC] Static hash tables should be 100% compile-time constant.
<https://webkit.org/b/148359>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

We were dirtying the memory pages containing static hash tables the
first time they were used, when a dynamically allocated index-to-key
table was built and cached in the HashTable struct.

It turns out that this "optimization" was completely useless, since
we've long since decoupled static hash tables from the JSC::VM and
we can get the key for an index via HashTable::values[index].m_key!

We also get rid of VM::keywords which was a little wrapper around
a VM-specific copy of JSC::mainTable. There was nothing VM-specific
about it at all, so clients now use JSC::mainTable directly.

After this change all fooHashTable structs end up in DATA const
and no runtime initialization/allocation takes place.

  • create_hash_table:
  • jsc.cpp:
  • parser/Lexer.cpp:

(JSC::isLexerKeyword):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
(JSC::Keywords::Keywords): Deleted.

  • parser/Lexer.h:

(JSC::Keywords::isKeyword): Deleted.
(JSC::Keywords::getKeyword): Deleted.
(JSC::Keywords::~Keywords): Deleted.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::tryJSONPParse):

  • runtime/Lookup.cpp:

(JSC::HashTable::createTable): Deleted.
(JSC::HashTable::deleteTable): Deleted.

  • runtime/Lookup.h:

(JSC::HashTable::entry):
(JSC::HashTable::ConstIterator::key):
(JSC::HashTable::ConstIterator::skipInvalidKeys):
(JSC::HashTable::copy): Deleted.
(JSC::HashTable::initializeIfNeeded): Deleted.
(JSC::HashTable::begin): Deleted.
(JSC::HashTable::end): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
  • testRegExp.cpp:

Source/WebCore:

Adjust WebCore bindings generator for new JSC::HashTable layout
and rebaseline the bindings tests for that change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHashTable):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
10:42 AM Changeset in webkit [188823] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build without ENABLE_CSS_GRID_LAYOUT after r188582

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):

10:14 AM Changeset in webkit [188822] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

std::once_flag needs to be static.

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::MainThreadFunctionTracker::singleton):

6:38 AM Changeset in webkit [188821] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Page::renderTreeSize() does not include anonymous renderers.
https://bugs.webkit.org/show_bug.cgi?id=148352

Reviewed by Andreas Kling.

Anonymous renderes take the document as their node. Instead
of checking whether the node is the document, we could just check
if the RenderView is available.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::RenderObject):
(WebCore::RenderObject::~RenderObject):

  • rendering/RenderView.cpp:

(WebCore::RenderView::RenderView): Deleted.

  • rendering/RenderView.h: Include the RenderView in render tree size as well.
2:57 AM Changeset in webkit [188820] by Antti Koivisto
  • 13 edits
    2 adds in trunk/Source

Decode data URLs in web process
https://bugs.webkit.org/show_bug.cgi?id=148128

Reviewed by Darin Adler.

Source/WebCore:

We currenly send data URLs to networking layer for decoding. This involves a long and slow roundtrip through IPC and API layers.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Deleted.

Remove this awkward interface for WebKit2.

  • loader/ResourceLoadScheduler.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::loadDataURL):

Load using DataURLDecoder.

  • loader/ResourceLoader.h:

Make start() public and export it so it can be called directly from WebKit2.

  • platform/network/DataURLDecoder.cpp: Added.

(WebCore::DataURLDecoder::decodeQueue):
(WebCore::DataURLDecoder::DecodeTask::DecodeTask):
(WebCore::DataURLDecoder::createDecodeTask):

Parse data URL metadata and initialize the decode task.

(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decodeEscaped):
(WebCore::DataURLDecoder::decode):

Asynchronously decode in a concurrent distpatch queue.

  • platform/network/DataURLDecoder.h: Added.
  • platform/network/ios/QuickLook.h:
  • platform/text/DecodeEscapeSequences.h:

(WebCore::URLEscapeSequence::findEndOfRun):
(WebCore::URLEscapeSequence::decodeRun):

Factor buffer generation to a function.

(WebCore::decodeEscapeSequences):
(WebCore::decodeURLEscapeSequencesAsData):

Add decode function that produces bytes instead of a String.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoadScheduler.cpp:

(WebKit::WebResourceLoadScheduler::scheduleLoad):

Don't send data: loads to the network process, handle them locally.

(WebKit::WebResourceLoadScheduler::startLocalLoad):

Call ResourceLoder::start() directly.

12:20 AM Changeset in webkit [188819] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

AX: aria-table-content.html test failing on windows
https://bugs.webkit.org/show_bug.cgi?id=148354

Update TestExpectation for Windows to Skip test.

Patch by Doug Russell <d_russell@apple.com> on 2015-08-22
Reviewed by Tim Horton.

  • platform/win/TestExpectations:

Aug 21, 2015:

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

Web Inspector: Type profiler shows 'Undefined' annotation for functions with no return statements
https://bugs.webkit.org/show_bug.cgi?id=146882

Patch by Saam barati <sbarati@apple.com> on 2015-08-21
Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/TypeTokenAnnotator.js:

(WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):

  • UserInterface/Models/ScriptSyntaxTree.js:

(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):

7:32 PM Changeset in webkit [188817] by commit-queue@webkit.org
  • 24 edits
    1 delete in trunk

Unreviewed, rolling out r188807, r188813, and r188815.
https://bugs.webkit.org/show_bug.cgi?id=148349

lots of 32-bit build problems, better to resolve separately
and try again (Requested by thorton on #webkit).

Reverted changesets:

"WebKitTestRunner should use WKWebView on OS X and iOS"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188807

"Stop building WebKitTestRunner for 32-bit platforms"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188813

"Stop building WebKitTestRunner for 32-bit platforms"
https://bugs.webkit.org/show_bug.cgi?id=143743
http://trac.webkit.org/changeset/188815

7:27 PM Changeset in webkit [188816] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: WebInspector.domTreeManager.regionLayoutUpdated does not exist
https://bugs.webkit.org/show_bug.cgi?id=148348

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-21
Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/CSSObserver.js:

(WebInspector.CSSObserver.prototype.regionLayoutUpdated):
Just do the same as the new event name.

6:43 PM Changeset in webkit [188815] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Stop building WebKitTestRunner for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:

This is a restriction on the valid set, not the desired set.

6:39 PM Changeset in webkit [188814] by commit-queue@webkit.org
  • 8 edits in trunk/Tools

Make Dashboard.Branches be objects of the form (repository, "branch name") and update existing code
to work with these new objects.
https://bugs.webkit.org/show_bug.cgi?id=148188

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-21
Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:

(Buildbot.prototype._normalizeQueueInfo): Renamed BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView): Changed to work with new branch objects which represent a
(repository, "branch name")-pair.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js:

(BuildbotQueue): Renamed BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._appendPendingRevisionCount): Changed to work with new branch
objects which represent a (repository, "branch name")-pair.
(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Ditto.
(BuildbotQueueView.prototype._revisionContentWithPopoverForIteration): Ditto.
(BuildbotQueueView.prototype._addDividerToPopover): Ditto.
(BuildbotQueueView.prototype.revisionContentForIteration): Ditto.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Renamed

BuildbotQueue.branch to BuildbotQueue.branches.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot.prototype.get defaultBranches): Changed to new (repository, "branch name") format.

6:34 PM Changeset in webkit [188813] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Stop building WebKitTestRunner for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:

WKWebView is not available on 32-bit OS X.

6:26 PM Changeset in webkit [188812] by Brent Fulgham
  • 2 edits in trunk/Tools

[Win] Unreviewed test correction after r188709.

I removed a function argument that happened to be mirrored by a global
value with the same name. This prevented a compile error, but testing
showed that the wrong value was being used in the function.

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::willPerformClientRedirectToURL): Put function argument
back

5:56 PM Changeset in webkit [188811] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.20

New tag.

5:53 PM Changeset in webkit [188810] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Unreviewed, rolling out r188792 and r188803.
https://bugs.webkit.org/show_bug.cgi?id=148347

broke lots of tests, ggaren is going to investigate and reland
(Requested by thorton on #webkit).

Reverted changesets:

"Unify code paths for manually deleting all code"
https://bugs.webkit.org/show_bug.cgi?id=148280
http://trac.webkit.org/changeset/188792

"Debugger's VM should never be null"
https://bugs.webkit.org/show_bug.cgi?id=148341
http://trac.webkit.org/changeset/188803

5:50 PM Changeset in webkit [188809] by Chris Dumez
  • 41 edits
    2 moves
    2 adds in trunk

document.getElementsByTagName should return an HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=110611

Reviewed by Darin Adler.

Source/WebCore:

Update getElementsByTagName*() to return an HTMLCollection as per
the specification:

Firefox, Chrome and IE all match the specification but WebKit was
returning a NodeList.

Performance:
DOM/get-elements-by-tag-name-traversal-uncached.html is ~4.5% faster.

Test: fast/dom/getElementsByTagName-return-type.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:

Rename TagNodeList.* to TagCollection.*

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
Update the function to use descendantsOfType<>() instead of
getElementsByTagName(). The code is both shorter and more efficient.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameForObjC):
(WebCore::ContainerNode::getElementsByTagNameNS):
(WebCore::ContainerNode::getElementsByTagNameNSForObjC):

  • dom/ContainerNode.h:
  • Have getElementsByTagName*() return an HTMLCollection.
  • Introduce versions used by the ObjC bindings that return a NodeList for API compatibility reasons.
  • Move the localName null check to the *ForObjC versions and use a simple assertion for the non ObjC versions. This gets rid of a branch for our JS bindings as this function is hot. It is currently impossible to get a null AtomicString from our JS bindings code because getElementsByTagName() and getElementsByTagName(undefined) in JS end up calling ContainerNode::getElementsByTagName("undefined"). Also getElementsByTagName(null) in JS ends up calling ContainerNode::getElementsByTagName("null"). I have also gotten rid of most of the getElementsByTagName() calls from our native code. The remaining ones either call with a non-null AtomicString and they now have a null-check.
  • dom/Document.idl:
  • dom/Element.idl:

Have getElementsByTagName*() return an HTMLCollection except for ObjC
bindings in order to maintain legacy API compatibility.

  • dom/Node.cpp:

(WebCore::Document::invalidateNodeListAndCollectionCaches):
(WebCore::NodeListsNodeData::invalidateCaches):
HTMLCollection::invalidateCache(attr) is now renamed to
invalidateCacheForAttribute(attr) to avoid ambiguity with
HTMLCollection::invalidateCache(doc) and for consistency
with LiveNodeList.

  • dom/NodeRareData.h:

Make necessary updates now that TagNodeList is renamed to TagCollection
and is an HTMLCollection.

  • dom/TagCollection.cpp: Renamed from Source/WebCore/dom/TagNodeList.cpp.
  • dom/TagCollection.h: Renamed from Source/WebCore/dom/TagNodeList.h.

Rename TagNodeList / HTMLTagNodeList to TagCollection / HTMLTagCollection
and inherit CachedHTMLCollection instead of CachedLiveNodeList.

  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToBodyElement):
Update code using getElementsByTagName() to reflect the fact that it
now returns an HTMLCollection and item() returns an Element*. This
function is matching any Element with "body" tag, not just HTMLBodyElement
so I did not refactor it to use an descendantsOfType<HTMLBodyElement>().
It is not clear to me what the intention of this code is.

  • editing/markup.cpp:

(WebCore::createFragmentFromMarkup):

  • editing/markup.h:
  • Return a Ref<> instead of a PassRefPtr<> as it can never return null.
  • Use descendantsOfType<HTMLAttachmentElement>(fragment) instead of getElementsByTagName() as it results in both shorter and more efficient code.
  • html/CollectionType.h:

Add new ByTag / ByHTMLTag collection types for TagCollection /
HTMLTabCollection.

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
Handle new ByTag / ByHTMLTag collection types in the switch statement.

  • html/HTMLCollection.cpp:

(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::HTMLCollection::~HTMLCollection):
Handle new ByTag / ByHTMLTag collection types in switch statements.

(WebCore::HTMLCollection::tags):
Add a null-check on localName() before calling getElementsByTagName().
This function is currently for ObjC bindings only.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::restartSimilarPlugIns):
Simplify / optimize the code by using descendantsOfType<HTMLPlugInImageElement>()
instead of getElementsByTagName().

  • html/MediaDocument.cpp:

(WebCore::descendantVideoElement):
Use descendantsOfType<HTMLVideoElement> instead of getElementsByTagNameNS().

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _documentFragmentWithMarkupString:baseURLString:]):
Use .ptr() as createFragmentFromMarkup() now returns a
Ref<> instead of a RefPtr<>.

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMDocument::getElementsByTagName):
(DOMDocument::getElementsByTagNameNS):
Add null checks for localName() before calling
ContainerNode::getElementsByTagName*().

LayoutTests:

  • fast/dom/getElementsByTagName-return-type-expected.txt: Added.
  • fast/dom/getElementsByTagName-return-type.html: Added.

New test checking that getElementsByTagName*() returns an HTMLcollection.

  • fast/dom/NodeList/script-tests/nodelist-item-call-as-function.js:
  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/named-items-with-symbol-name-expected.txt:
  • fast/dom/script-tests/domListEnumeration.js:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • js/dom/constructor-expected.txt:
  • js/dom/script-tests/constructor.js:
  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
  • platform/mac/fast/dom/wrapper-classes-objc.html:

Rebaseline / update.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:

One of the checks is now failing because HTMLCollection.item()'s
parameter is optional. The specification says the parameter should
be mandatory so I did not update the test. It was previously passing
because NodeList.item()'s parameter is mandatory.

5:49 PM Changeset in webkit [188808] by commit-queue@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

Parse control flow statements in WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=148333

Patch by Sukolsak Sakshuwong <Sukolsak Sakshuwong> on 2015-08-21
Reviewed by Geoffrey Garen.

Parse control flow statements in WebAssembly files generated by pack-asmjs
<https://github.com/WebAssembly/polyfill-prototype-1>.

  • wasm/WASMConstants.h:
  • wasm/WASMFunctionParser.cpp:

(JSC::WASMFunctionParser::parseStatement):
(JSC::WASMFunctionParser::parseIfStatement):
(JSC::WASMFunctionParser::parseIfElseStatement):
(JSC::WASMFunctionParser::parseWhileStatement):
(JSC::WASMFunctionParser::parseDoStatement):
(JSC::WASMFunctionParser::parseLabelStatement):
(JSC::WASMFunctionParser::parseBreakStatement):
(JSC::WASMFunctionParser::parseBreakLabelStatement):
(JSC::WASMFunctionParser::parseContinueStatement):
(JSC::WASMFunctionParser::parseContinueLabelStatement):
(JSC::WASMFunctionParser::parseSwitchStatement):

  • wasm/WASMFunctionParser.h:

(JSC::WASMFunctionParser::WASMFunctionParser):

  • wasm/WASMReader.cpp:

(JSC::WASMReader::readCompactInt32):
(JSC::WASMReader::readSwitchCase):

  • wasm/WASMReader.h:
5:34 PM Changeset in webkit [188807] by timothy_horton@apple.com
  • 23 edits
    1 add in trunk

WebKitTestRunner should use WKWebView on OS X and iOS
https://bugs.webkit.org/show_bug.cgi?id=143743
<rdar://problem/16947123>

Reviewed by Anders Carlsson.
Patch by Enrica Casucci and myself.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add SPI to disable window occlusion detection, for WebKitTestRunner's use.

  • Shared/WebPreferencesDefinitions.h:

Remove a completely unused WebPreference. It is a WebCore Setting,
but in the API it's exposed as a WKPage setter and WKView and WKWebView property
instead of as a WKPreference, so there's no need for the WebPreference.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageAddUserScript):
(WKBundlePageAddUserStyleSheet):
(WKBundlePageRemoveAllUserContent):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):
(WebKit::WebPage::removeAllUserContent):

  • WebProcess/WebPage/WebPage.h:

Add WKBundlePage functions for user script and style sheet manipulation.
These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's
(used by the WKBundle functions), so they work correctly with the modern API.

  • WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::windowSnapshotEnabled): Deleted.
Add a PlatformWebView constructor that takes a WKWebViewConfiguration
instead of WKContext and WKPageGroup.

Remove the unused, always-true windowSnapshotEnabled().
While technically some platforms don't have window snapshotting,
they just return null instead of implementing windowSnapshotEnabled().

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):
Delegate to the various platforms for creating PlatformWebView instances,
for creating WKContexts, and for accessing WKPreferences,
so that they can do special things (like, use WKWebView instead!).

(WTR::TestController::resetPreferencesToConsistentValues):
Make explicit WebKitTestRunner's desired default for two preferences
which have differing defaults between the antique and modern API,
for consistency's sake.

(WTR::TestController::resetStateToConsistentValues):
Add platformResetStateToConsistentValues.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
Adjust to the aforementioned removal of windowSnapshotEnabled().

  • WebKitTestRunner/ios/TestControllerCocoa.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformInitializeConfiguration):
Implement the new platform functions for the Modern WebKit2 API,
in a new TestControllerCocoa file that is shared between iOS and Mac.

For platformMaybeCreateContext, use the trick that we know we can cast
the WKProcessPool to a WKContextRef to retrieve a WKContextRef from
WKWebView's configuration.

Ditto for WKPreferencesRef and WKPreferences.

Remove user content filters on the WKWebView's userContentController.

  • WebKitTestRunner/mac/TestControllerMac.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

Move code into TestControllerCocoa.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::addUserScript):
(WTR::TestRunner::addUserStyleSheet):
Adopt WKBundlePage API for user scripts/sheets.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:
  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

Make and keep a WKWebView instead of a WKView.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
Reach inside the WKWebView to the WKView when dispatching events.
This is fairly ugly and we should come up with a better solution.
Also, fix some flipping and style errors.

5:07 PM Changeset in webkit [188806] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

5:05 PM Changeset in webkit [188805] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.55

New Tag.

5:03 PM Changeset in webkit [188804] by andersca@apple.com
  • 2 edits in trunk/Source/WTF

Build fix.

  • wtf/MainThread.h:
4:57 PM Changeset in webkit [188803] by ggaren@apple.com
  • 11 edits in trunk/Source

Debugger's VM should never be null
https://bugs.webkit.org/show_bug.cgi?id=148341

Reviewed by Joseph Pecoraro.

It doesn't make sense for a Debugger's VM to be null, and code related
to maintaining that illusion just caused the Web Inspector to crash on
launch (https://bugs.webkit.org/show_bug.cgi?id=148312). So, let's stop
doing that.

Now, Debugger requires its subclass to provide a never-null VM&.

Source/JavaScriptCore:

Also took the opportunity, based on review feedback, to remove some
confusion in the virtual recompileAllJSFunctions hierarchy, by eliminating
the pure virtual in ScriptDebugServer and the unnecessary override in
JSGlobalObjectScriptDebugServer.

  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::attach):
(JSC::Debugger::detach):
(JSC::Debugger::isAttached):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::registerCodeBlock):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::recompileAllJSFunctions):
(JSC::Debugger::setBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):
(JSC::Debugger::setBreakpointsActivated):
(JSC::Debugger::breakProgram):
(JSC::Debugger::stepOutOfFunction):
(JSC::Debugger::returnEvent):
(JSC::Debugger::didExecuteProgram):

  • debugger/Debugger.h:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::JSGlobalObjectScriptDebugServer):
(Inspector::JSGlobalObjectScriptDebugServer::recompileAllJSFunctions):
(Inspector::JSGlobalObjectScriptDebugServer::runEventLoopWhilePaused):

  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::ScriptDebugServer):

  • inspector/ScriptDebugServer.h:

Source/WebCore:

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
(WebCore::PageScriptDebugServer::didPause):

4:50 PM Changeset in webkit [188802] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[OS X] Remove dead code from FontCache::systemFallbackForCharacters()
https://bugs.webkit.org/show_bug.cgi?id=148218

Reviewed by Daniel Bates.

lookupCTFont() in FontCacheMac.mm will always return the best font (because
CTFontCreateForCharactersWithLanguage() does so). Also, all fonts that will
be created on WebKit's behalf are already printer fonts.

No new tests because there is no behavior change.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::systemFallbackForCharacters): Deleted.

4:48 PM Changeset in webkit [188801] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

[Win] Unreviewed build fix.

  • win/tools/vsprops/common.props: Ignore a warning that is filling the

build logs with useless cruft.

4:46 PM Changeset in webkit [188800] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Re-mark accessibility/mac/search-with-frames.html flaky

  • platform/mac/TestExpectations:

It's still not 100%.

4:41 PM Changeset in webkit [188799] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • platform/network/win/NetworkStateNotifierWin.cpp:

(WebCore::NetworkStateNotifier::addrChangeCallback):
(WebCore::NetworkStateNotifier::callAddressChanged): Deleted.

4:37 PM Changeset in webkit [188798] by andersca@apple.com
  • 3 edits in trunk/Source/WTF

Address review feedback from Darin.

  • wtf/MainThread.h:
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::callOnMainThread):
(WTF::cancelCallOnMainThread):

4:34 PM Changeset in webkit [188797] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Clean up Font class
https://bugs.webkit.org/show_bug.cgi?id=148216

Reviewed by Dean Jackson.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit): Deleted.

  • platform/graphics/Font.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

4:30 PM Changeset in webkit [188796] by basile_clement@apple.com
  • 5 edits
    1 delete in trunk/Source/JavaScriptCore

Remove unused code relative to allocation sinking
https://bugs.webkit.org/show_bug.cgi?id=148342

Reviewed by Mark Lam.

This removes two things:

  • The DFGPromoteHeapAccess.h file which is a relic of the old sinking phase and is no longer used (it has been subsumed by ObjectAllocationSinking::promoteLocalHeap)
  • Code in the allocation sinking phase for sinking MaterializeCreateActivation and MaterializeNewObject. Handling those is no longer necessary since the phase no longer runs in a fixpoint and thus will never see those nodes, since no other phase creates them.
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPromoteHeapAccess.h: Removed.
4:28 PM Changeset in webkit [188795] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa] Unify two more FontCache functions
https://bugs.webkit.org/show_bug.cgi?id=148217

Reviewed by Dean Jackson.

Move duplicated code from FontCacheMac and FontCacheIOS into
FontCacheCoreText.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::toTraitsMask):
(WebCore::isFontWeightBold):
(WebCore::FontCache::similarFont):
(WebCore::FontCache::getTraitsInFamily):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::similarFont): Deleted.
(WebCore::toTraitsMask): Deleted.
(WebCore::FontCache::getTraitsInFamily): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::toTraitsMask): Deleted.
(WebCore::FontCache::similarFont): Deleted.
(WebCore::FontCache::getTraitsInFamily): Deleted.

4:16 PM Changeset in webkit [188794] by saambarati1@gmail.com
  • 2 edits in trunk/Websites/webkit.org

Edit a resource for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png:
4:09 PM Changeset in webkit [188793] by ap@apple.com
  • 90 edits in trunk

Improve how UI events are dispatched by WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=148326

Reviewed by Anders Carlsson.

Source/WebKit2:

Added "fully synchronous mode for testing", in which all messages are dispatched
synchronously.

When an async message is sent in this mode, it is wrapped into a sync one automatically.

A client must opt in, either by using WKBundlePagePostSynchronousMessageForTesting(),
or by calling WKContextConfigurationAllowFullySynchronousModeForTesting().
This makes sure that we don't increase potential for IPC misuse.

  • WebProcess/WebPage/WebPage.messages.in: Yay, fewer messages!
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetShouldSendEventsSynchronously): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:

We no longer need WKPageSetShouldSendEventsSynchronously and associated custom messages.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::updateWheelEventTestTriggersIfNeeded): Deleted.
Removed code that was only needed to support pseudo-syncronous scrolling in tests.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::allowFullySynchronousModeForTesting):
(IPC::Connection::sendSync):

  • Platform/IPC/MessageDecoder.cpp:

(IPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageDecoder::shouldUseFullySynchronousModeForTesting):
(IPC::MessageDecoder::setImportanceAssertion):
(IPC::MessageDecoder::unwrapForTesting):

  • Platform/IPC/MessageDecoder.h:

(IPC::MessageDecoder::UUID):

  • Platform/IPC/MessageEncoder.cpp:

(IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageEncoder::setFullySynchronousModeForTesting):
(IPC::MessageEncoder::wrapForTesting):

  • Platform/IPC/MessageEncoder.h:

(IPC::MessageEncoder::UUID):

  • Platform/IPC/MessageFlags.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationSetMediaKeysStorageDirectory):
(WKContextConfigurationAllowFullySynchronousModeForTesting):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleTouchEvent):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::renderTreeSize):
(WebKit::WebPageProxy::setShouldSendEventsSynchronously): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostMessage):
(WKBundlePagePostSynchronousMessageForTesting):
(WKBundlePagePostSynchronousMessage): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mouseEvent):
(WebKit::handleWheelEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::touchEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::postMessage):
(WebKit::WebPage::postSynchronousMessageForTesting):
(WebKit::WebPage::mouseEventSyncForTesting): Deleted.
(WebKit::WebPage::wheelEventSyncForTesting): Deleted.
(WebKit::WebPage::keyEventSyncForTesting): Deleted.
(WebKit::WebPage::touchEventSyncForTesting): Deleted.
(WebKit::WebPage::postSynchronousMessage): Deleted.

  • WebProcess/WebPage/WebPage.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
  • WebKitTestRunner/InjectedBundle/EventSendingController.h:

Removed asyncScrolling from mouseScrollByWithWheelAndMomentumPhases, it's now always
asynchronous (and really, it has always been for the most part).

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::mouseDown): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::mouseUp): Ditto.
(WTR::EventSendingController::mouseMoveTo): Ditto.
(WTR::EventSendingController::mouseForceDown): Ditto.
(WTR::EventSendingController::mouseForceUp): Ditto.
(WTR::EventSendingController::mouseForceChanged): Ditto.
(WTR::EventSendingController::leapForward): Ditto.
(WTR::EventSendingController::scheduleAsynchronousClick): Ditto.
(WTR::EventSendingController::keyDown): Ditto.
(WTR::EventSendingController::scheduleAsynchronousKeyDown): Ditto.
(WTR::EventSendingController::mouseScrollBy): Force a scrolling tree commit. It used
to be done in custom WebKit2 code for test wheel event handling.
(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Got rid of sync version.
(WTR::EventSendingController::continuousMouseScrollBy): Added a FIXME. This one is weird.
(WTR::EventSendingController::contextClick): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::addTouchPoint): Ditto.
(WTR::EventSendingController::updateTouchPoint): Ditto.
(WTR::EventSendingController::setTouchModifier): Ditto.
(WTR::EventSendingController::setTouchPointRadius): Ditto.
(WTR::EventSendingController::touchStart): Ditto.
(WTR::EventSendingController::touchMove): Ditto.
(WTR::EventSendingController::touchEnd): Ditto.
(WTR::EventSendingController::touchCancel): Ditto.
(WTR::EventSendingController::clearTouchPoints): Ditto.
(WTR::EventSendingController::releaseTouchPoint): Ditto.
(WTR::EventSendingController::cancelTouchPoint): Ditto.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::postSetWindowIsKey):
(WTR::InjectedBundle::postSimulateWebNotificationClick):
(WTR::InjectedBundle::isGeolocationProviderActive):
(WTR::InjectedBundle::shouldProcessWorkQueue):
Updated for WKBundlePagePostSynchronousMessage renaming.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::secureEventInputIsEnabled): Ditto.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Allow handling the new test style messages.
(WTR::TestController::didReceiveKeyDownMessageFromInjectedBundle): Removed calls
to WKPageSetShouldSendEventsSynchronously, which we no longer need.
(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Moved
"MouseScrollBy" to async section, and got rid of WKPageSetShouldSendEventsSynchronously.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseMoveTo): Got rid of WKPageSetShouldSendEventsSynchronously.
(WTR::EventSenderProxy::keyDown): Ditto.
(WTR::EventSenderProxy::mouseScrollBy): Ditto.
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.

LayoutTests:

  • fast/events/clear-drag-state-expected.txt:
  • fast/events/clear-drag-state.html:
  • platform/mac-wk2/TestExpectations:

This test used to accidentally pass in WebKit2, but it didn't actually check
for the problem. This patch improves WK2 behavior, which makes the test fail.
Changed the test to not pass accidentally, and added it to WK2 test expectations.

  • fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
  • fast/events/scroll-in-scaled-page-with-overflow-hidden.html:

Updated the test to be fully async.

  • fast/events/wheelevent-basic-expected.txt:
  • fast/events/wheelevent-basic.html:

Updated the test to be fully async, got rid of tab characters.

  • fast/events/wheelevent-mousewheel-interaction.html:
  • fast/forms/search/search-scroll-hidden-decoration-container-crash.html:
  • fast/frames/flattening/scrolling-in-object.html:

Updated these tests to be fully async. Since they check for something that happens
asynchronously, and doesn't have an end event, they have to use setTimeout.

  • fast/scrolling/latching/iframe_in_iframe.html:
  • fast/scrolling/latching/scroll-div-latched-div.html:
  • fast/scrolling/latching/scroll-div-latched-mainframe.html:
  • fast/scrolling/latching/scroll-div-no-latching.html:
  • fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
  • fast/scrolling/latching/scroll-iframe-fragment.html:
  • fast/scrolling/latching/scroll-iframe-latched-iframe.html:
  • fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
  • fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
  • fast/scrolling/latching/scroll-latched-nested-div.html:
  • fast/scrolling/latching/scroll-nested-iframe.html:
  • fast/scrolling/latching/scroll-select-bottom-test.html:
  • fast/scrolling/latching/scroll-select-latched-mainframe.html:
  • fast/scrolling/latching/scroll-select-latched-select.html:

Removed extra testRunner.mouseScrollByWithWheelAndMomentumPhases() calls.
We no longer need multiple events for scroll snap animation to start, and due to
the way we coalesce events, having multiple events resulted in getting too high velocity.
Removed async scrolling argument form the function calls, because it's now always async.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:

Moved fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html
to WK1 expectations, because the test needn't be skipped on WK2.

  • scrollbars/scroll-rtl-or-bt-layer.html: Made the test fully async, and refactored

it for clarity.

  • tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
  • tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
  • tiled-drawing/scrolling/iframe_in_iframe.html:
  • tiled-drawing/scrolling/overflow-scroll-reduced-content.html:
  • tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
  • tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
  • tiled-drawing/scrolling/wheel-events-with-no-delta.html:

Same testRunner.mouseScrollByWithWheelAndMomentumPhases changes as in fast/scrolling/latching.

  • tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
  • tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:

Removed debug output about how many events are received. The number may vary due
to coalescing.

3:48 PM Changeset in webkit [188792] by ggaren@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Unify code paths for manually deleting all code
https://bugs.webkit.org/show_bug.cgi?id=148280

Reviewed by Saam Barati.

We used to have three paths for manually deleting all code. Now we have
one shared path.

  • debugger/Debugger.cpp:

(JSC::Debugger::attach): Notify the debugger of all previous code when
it attaches. We used to do this when recompiling, which was only correct
by accident.

(JSC::Debugger::recompileAllJSFunctions): Switch to the shared path.

  • heap/Heap.h:

(JSC::Heap::compiledCode):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):
(Inspector::InspectorRuntimeAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorRuntimeAgent::setTypeProfilerEnabledState):
(Inspector::InspectorRuntimeAgent::getBasicBlocks):
(Inspector::TypeRecompiler::visit): Deleted.
(Inspector::TypeRecompiler::operator()): Deleted.
(Inspector::recompileAllJSFunctionsForTypeProfiling): Deleted. Switch
to the shared path.

  • runtime/VM.cpp:

(JSC::VM::afterVMExit): Added a helper for scheduling an activity after
VM exit. We can't delete code while it's on the stack, and we can't
delete auxiliary profiling data while profiling code is on the stack,
so in those cases, we schedule the deletion for the next time we exit.

(JSC::VM::deleteAllCode): Use afterVMExit because we might have code
on the stack when debugger, profiler, or watchdog state changes.

  • runtime/VM.h:
  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::addDidPopListener):
(JSC::VMEntryScope::~VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener): Deleted.

  • runtime/VMEntryScope.h:

(JSC::VMEntryScope::globalObject): Removed the uniquing feature from
the scope pop listener list because we don't have a client that wants
it, and it's not convenient to use correctly since you can't take
the address of a member function, a lambda, or an std::function. We can
add this feature back if we discover that we want it.

3:42 PM Changeset in webkit [188791] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-601.1-branch

Merge r188769. rdar://problem/22354983

3:42 PM Changeset in webkit [188790] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merge r188765. rdar://problem/22356782

3:12 PM Changeset in webkit [188789] by saambarati1@gmail.com
  • 1 edit
    8 adds in trunk/Websites/webkit.org

Add resources for type profiler and code coverage profiler blog post.

  • blog-files/type-profiler-and-code-coverage-profiler: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage-video.mp4: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov: Added.
  • blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Added.
3:06 PM Changeset in webkit [188788] by andersca@apple.com
  • 4 edits in trunk/Source/WTF

Deprecate the old school callOnMainThread/cancelCallOnMainThread functions
https://bugs.webkit.org/show_bug.cgi?id=148327

Reviewed by Sam Weinig.

  • wtf/MainThread.cpp:

(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
Change the function queue to be a queue of std::function<void ()> and get rid of dead code.

  • wtf/MainThread.h:

Conditionalize callOnMainThread and cancelCallOnMainThread because Safari on Mavericks still expects to them to be
declared in MainThread.h under 10.9.

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

Add a MainThreadFunctionTracker singleton that keeps track of scheduled functions so we can ensure that they're not
called if they're cancelled.

(WTF::MainThreadFunctionTracker::singleton):
Return the singleton.

(WTF::MainThreadFunctionTracker::callOnMainThread):
Add the function/context pair to our map and schedule the function to be run on the main thread.
If the function has been removed, don't call it.

(WTF::MainThreadFunctionTracker::cancelCallOnMainThread):
Remove all entries with the given function/context pair.

(WTF::MainThreadFunctionTracker::addFunction):
Add the function/context pair to the map and return the unique identifier.

(WTF::MainThreadFunctionTracker::removeIdentifier):
Look up the identifier and remove it if it still exists. If it exists we know that it hasn't been canceled and that we can call it.

(WTF::MainThreadFunctionTracker::removeFunctions):
Remove all function identifiers matched by the function/context pair.

(WTF::callOnMainThread):
Implement using MainThreadFunctionTracker.

(WTF::cancelCallOnMainThread):
Implement using MainThreadFunctionTracker.

3:01 PM Changeset in webkit [188787] by andersca@apple.com
  • 9 edits in trunk/Source

Stop using the old callOnMainThread variant on Windows
https://bugs.webkit.org/show_bug.cgi?id=148332

Reviewed by Tim Horton.

Source/WebCore:

  • platform/network/cf/CookieStorageCFNet.cpp:

(WebCore::notifyCookiesChanged):
(WebCore::notifyCookiesChangedOnMainThread): Deleted.

  • platform/network/win/NetworkStateNotifierWin.cpp:

(WebCore::NetworkStateNotifier::addrChangeCallback):

Source/WebKit/win:

  • Plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::mainThreadCallback): Deleted.

  • Plugins/PluginMainThreadScheduler.h:
  • WebDatabaseManager.cpp:

(DidModifyOriginData::dispatchToMainThread):

  • WebIconDatabase.cpp:

(WebIconDatabase::scheduleNotificationDelivery):

2:59 PM Changeset in webkit [188786] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r188659. rdar://problem/22375877

2:58 PM Changeset in webkit [188785] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r188370. rdar://problem/22375876

2:57 PM Changeset in webkit [188784] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r188340. rdar://problem/22375876

2:56 PM Changeset in webkit [188783] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/JavaScriptCore

Merged r188067. rdar://problem/22375897

2:54 PM Changeset in webkit [188782] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r188014. rdar://problem/22375872

2:53 PM Changeset in webkit [188781] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r187758. rdar://problem/22375884

2:52 PM Changeset in webkit [188780] by bshafiei@apple.com
  • 3 edits
    3 copies in branches/safari-601.1.46-branch

Merged r187685. rdar://problem/22375865

2:49 PM Changeset in webkit [188779] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r187564. rdar://problem/22375880

2:46 PM Changeset in webkit [188778] by commit-queue@webkit.org
  • 10 edits
    1 move
    3 adds in trunk/Source/JavaScriptCore

Implement WebAssembly function parser
https://bugs.webkit.org/show_bug.cgi?id=147738

Patch by Sukolsak Sakshuwong <Sukolsak Sakshuwong> on 2015-08-21
Reviewed by Filip Pizlo.

Implement WebAssembly function parser for WebAssembly files produced by pack-asmjs
<https://github.com/WebAssembly/polyfill-prototype-1>. This patch parses only
some instructions on statements and int32 expressions. Parsing of the rest
will be implemented in subsequent patches. The instruction lists in WASMConstants.h
are slightly modified from
<https://github.com/WebAssembly/polyfill-prototype-1/blob/master/src/shared.h>.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • wasm/WASMConstants.h: Added.
  • wasm/WASMFormat.h:
  • wasm/WASMFunctionParser.cpp: Added.

(JSC::WASMFunctionParser::checkSyntax):
(JSC::WASMFunctionParser::parseFunction):
(JSC::WASMFunctionParser::parseLocalVariables):
(JSC::WASMFunctionParser::parseStatement):
(JSC::WASMFunctionParser::parseSetLocalStatement):
(JSC::WASMFunctionParser::parseReturnStatement):
(JSC::WASMFunctionParser::parseBlockStatement):
(JSC::WASMFunctionParser::parseExpression):
(JSC::WASMFunctionParser::parseExpressionI32):
(JSC::WASMFunctionParser::parseImmediateExpressionI32):

  • wasm/WASMFunctionParser.h: Added.

(JSC::WASMFunctionParser::WASMFunctionParser):

  • wasm/WASMFunctionSyntaxChecker.h: Renamed from Source/JavaScriptCore/wasm/WASMMagicNumber.h.
  • wasm/WASMModuleParser.cpp:

(JSC::WASMModuleParser::WASMModuleParser):
(JSC::WASMModuleParser::parseFunctionDefinitionSection):
(JSC::WASMModuleParser::parseFunctionDefinition):

  • wasm/WASMModuleParser.h:
  • wasm/WASMReader.cpp:

(JSC::WASMReader::readType):
(JSC::WASMReader::readExpressionType):
(JSC::WASMReader::readExportFormat):
(JSC::WASMReader::readOpStatement):
(JSC::WASMReader::readOpExpressionI32):
(JSC::WASMReader::readVariableTypes):
(JSC::WASMReader::readOp):

  • wasm/WASMReader.h:

(JSC::WASMReader::offset):
(JSC::WASMReader::setOffset):

2:44 PM Changeset in webkit [188777] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r186984. rdar://problem/22375869

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

DFG::PutStackSinkingPhase doesn't need to emit KillStack nodes
https://bugs.webkit.org/show_bug.cgi?id=148331

Reviewed by Geoffrey Garen.

PutStackSinkingPhase previously emitted a KillStack node when it sank a PutStack. This
isn't necessary because KillStack is only interesting for OSR exit, and PutStack nodes
that are relevant to OSR will already be preceded by a KillStack/MovHint pair.

  • dfg/DFGPutStackSinkingPhase.cpp:
2:41 PM Changeset in webkit [188775] by mrajca@apple.com
  • 13 edits in trunk/Source

Media Session: let UI clients change the volume of the focused media element
https://bugs.webkit.org/show_bug.cgi?id=148289

Reviewed by Tim Horton.

WebCore:

  • page/Page.cpp:

(WebCore::Page::setVolumeOfMediaElement):

  • page/Page.h:

WebKit2:

  • UIProcess/API/C/WKMediaSessionFocusManager.cpp:

(WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement):

  • UIProcess/API/C/WKMediaSessionFocusManager.h:
  • UIProcess/WebMediaSessionFocusManager.cpp:

(WebKit::WebMediaSessionFocusManager::updatePlaybackAttribute):
(WebKit::WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement):

  • UIProcess/WebMediaSessionFocusManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setVolumeOfMediaElement):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setVolumeOfMediaElement):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:41 PM Changeset in webkit [188774] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

2:35 PM Changeset in webkit [188773] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: We should not assume that only the baseline JIT can have ById accesses
https://bugs.webkit.org/show_bug.cgi?id=148330

Reviewed by Michael Saboff.

We currently restore the stack pointer after a ById access by using
JIT::stackPointerOffsetFor, which will compute the *baseline* stack
pointer offset. Let's use CodeBlock::stackPointerOffset instead, so
that we have the correct result for non-baseline JIT tiers as well.

  • jit/Repatch.cpp:

(JSC::generateByIdStub):

1:50 PM Changeset in webkit [188772] by andersca@apple.com
  • 22 edits in trunk/Source

Get rid of uses of the old callOnMainThread function that takes a function ptr + context
https://bugs.webkit.org/show_bug.cgi?id=148324

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::DecodingTask::decode):
(WebCore::AsyncAudioDecoder::DecodingTask::notifyCompleteDispatch): Deleted.

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::offlineRender):
(WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch): Deleted.

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):
(WebCore::ScriptProcessorNode::fireProcessEventDispatch): Deleted.

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::scheduleForNotification):
(WebCore::DatabaseTracker::notifyDatabasesChanged):

  • Modules/webdatabase/DatabaseTracker.h:
  • platform/graphics/cg/ImageCG.cpp:

(WebCore::patternReleaseCallback):
(WebCore::patternReleaseOnMainThreadCallback): Deleted.

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::patternReleaseCallback):
(WebCore::patternReleaseOnMainThreadCallback): Deleted.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::invalidateFontCache):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::doNotifyFinish):
(WebCore::BlobResourceHandle::notifyFinish):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::formFinalize):
(WebCore::formFinishFinalizationOnMainThread): Deleted.

Source/WebKit/mac:

  • Storage/WebDatabaseManagerClient.mm:

(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::dispatchDidModifyOriginOnMainThread): Deleted.

  • Storage/WebStorageTrackerClient.h:
  • Storage/WebStorageTrackerClient.mm:

(WebStorageTrackerClient::dispatchDidModifyOrigin):
(WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Deleted.

Source/WebKit2:

  • UIProcess/mac/WKPrintingView.mm:

(prepareDataForPrintingOnSecondaryThread):
(-[WKPrintingView knowsPageRange:]):

Source/WTF:

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::deallocate):
(WTF::StringWrapperCFAllocator::deallocateOnMainThread): Deleted.

1:48 PM Changeset in webkit [188771] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

DFG::NodeOrigin should have a flag determining if exiting is OK right now
https://bugs.webkit.org/show_bug.cgi?id=148323

Reviewed by Saam Barati.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::branchData):

  • dfg/DFGInsertionSet.h:

(JSC::DFG::InsertionSet::insertConstant):
(JSC::DFG::InsertionSet::insertConstantForUse):
(JSC::DFG::InsertionSet::insertBottomConstantForUse):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGNodeOrigin.h:

(JSC::DFG::NodeOrigin::NodeOrigin):
(JSC::DFG::NodeOrigin::isSet):
(JSC::DFG::NodeOrigin::withSemantic):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
1:00 PM Changeset in webkit [188770] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

AX: Fix accessibility/mac/search-with-frames.html test
https://bugs.webkit.org/show_bug.cgi?id=148313

Patch by Nan Wang <n_wang@apple.com> on 2015-08-21
Reviewed by Chris Fleizach.

uiElementForSearchPredicate function needs five parameters for DumpRenderTree.

  • accessibility/mac/search-with-frames.html:
  • platform/mac/TestExpectations:
12:55 PM Changeset in webkit [188769] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

AX: Table with CSS that makes a row anonymous can return NULL from cellForColumnAndRow
https://bugs.webkit.org/show_bug.cgi?id=148293

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

When RenderTableRows are anonymous, they may not be added to the accessible data
table's internal row list. However, when calculating the row range for a cell,
we were still accounting for those anonymous sections.
Change how the row range is calculated to directly ask the accessible parent row
for its index. This will ensure it’s more inline with what’s being represented to
the accessibility API.

Source/WebCore:

Test: accessibility/aria-table-content.html

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentRow):
(WebCore::AccessibilityTableCell::rowIndexRange):

  • accessibility/AccessibilityTableCell.h:

LayoutTests:

  • accessibility/aria-table-content-expected.txt: Added.
  • accessibility/aria-table-content.html: Added.
12:36 PM Changeset in webkit [188768] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Web Inspector: REGRESSION(173684): Edit as HTML not working
https://bugs.webkit.org/show_bug.cgi?id=148268

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-21
Reviewed by Chris Dumez.

Source/WebCore:

Tests: inspector/dom/getOuterHTML.html

inspector/dom/setOuterHTML.html

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::innerPatchChildren):
Revert the optimization change made in r173684. The optimization changes
had a few issues. It changed the logic to potentially drop out of the
loop before all new items were processed and using a node reference
to track an index did not account for the modifications insertBefore
may have made to that node's index in the list.

LayoutTests:

  • inspector/dom/getOuterHTML-expected.txt: Added.
  • inspector/dom/getOuterHTML.html: Added.
  • inspector/dom/setOuterHTML-expected.txt: Added.
  • inspector/dom/setOuterHTML.html: Added.
12:33 PM Changeset in webkit [188767] by Yusuke Suzuki
  • 14 edits in trunk

Skip no-llint tests that fail due to running out of executable memory after r188969
https://bugs.webkit.org/show_bug.cgi?id=148273

Reviewed by Michael Saboff.

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

r188969 is causing the "no-llint" variation of some tests to fail due to "ran out of executable memory".
These failures are caused because put_by_val and get_by_val aggressively generate the ICs even if the op is executed only once.
The failing tests call eval("contains byVal ops") with the different strings repeatedly under the "no-llint" variation.
In those cases, each eval call creates byId IC for byVal and exhausts executable memory.

We will fix this issue by generating the IC in the second call[1]. In the meantime, we skip these tests.

[1]: https://bugs.webkit.org/show_bug.cgi?id=148288

  • js/script-tests/dfg-float32array.js:
  • js/script-tests/dfg-int16array.js:
  • js/script-tests/dfg-int32array-overflow-values.js:
  • js/script-tests/dfg-int32array.js:
  • js/script-tests/dfg-int8array.js:
  • js/script-tests/dfg-uint16array.js:
  • js/script-tests/dfg-uint32array-overflow-values.js:
  • js/script-tests/dfg-uint32array.js:
  • js/script-tests/dfg-uint8array.js:
  • js/script-tests/dfg-uint8clampedarray.js:
  • js/script-tests/regress-141098.js:
12:25 PM Changeset in webkit [188766] by BJ Burg
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/css/modify-rule-selector.html is flaky on some bots
https://bugs.webkit.org/show_bug.cgi?id=148321

Unreviewed, enable extra logging to stderr so we can hopefully see
why the test is occasionally timing out with no output to the test page.

  • inspector/css/modify-rule-selector.html:
12:23 PM Changeset in webkit [188765] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

HistoryItems will null CachedPages should never be left in the list of items;
causes crash
https://bugs.webkit.org/show_bug.cgi?id=148237
-and corresponding-
rdar://problem/22356782

Reviewed by Brady Eidson.

Setting the CachedPage to nullptr will destroy the CachedPage, destroy the
FrameView, re-enter layout, and potentially try to modify items in the PageCache
based on that layout. So, we should not modify CachedPage in this way while the
item is still in the list of HistoryItems.

  • history/PageCache.cpp:

(WebCore::PageCache::take):
(WebCore::PageCache::remove):
(WebCore::PageCache::prune):

12:11 PM Changeset in webkit [188764] by saambarati1@gmail.com
  • 19 edits in trunk/Source/JavaScriptCore

DFG callOperations should not implicitly emit an exception check. At callOperation call sites, we should explicitly emit exception checks
https://bugs.webkit.org/show_bug.cgi?id=147988

Reviewed by Geoffrey Garen.

This is in preparation for the DFG being able to handle exceptions.
To do this, we need more control over when we emit exception checks.
Specifically, we want to be able to silentFill before emitting an exception check.
This patch does that. This patch also allows us to easily see which
operations do and do not emit exception checks. Finding this information
out before was a pain.

  • assembler/AbortReason.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendCall):
(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGSaneStringGetByValSlowPathGenerator.h:
  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::CallSlowPathGenerator::CallSlowPathGenerator):
(JSC::DFG::CallSlowPathGenerator::tearDown):
(JSC::DFG::CallResultAndNoArgumentsSlowPathGenerator::CallResultAndNoArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndOneArgumentSlowPathGenerator::CallResultAndOneArgumentSlowPathGenerator):
(JSC::DFG::CallResultAndTwoArgumentsSlowPathGenerator::CallResultAndTwoArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndThreeArgumentsSlowPathGenerator::CallResultAndThreeArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndFourArgumentsSlowPathGenerator::CallResultAndFourArgumentsSlowPathGenerator):
(JSC::DFG::CallResultAndFiveArgumentsSlowPathGenerator::CallResultAndFiveArgumentsSlowPathGenerator):
(JSC::DFG::slowPathCall):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIn):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileArithRound):
(JSC::DFG::SpeculativeJIT::compileNewFunction):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateScopedArguments):
(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
(JSC::DFG::SpeculativeJIT::compileNotifyWrite):
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOnCell):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::callOperationWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::prepareForExternalCall):
(JSC::DFG::SpeculativeJIT::appendCall):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnExceptionSetResult):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheck): Deleted.
(JSC::DFG::SpeculativeJIT::appendCallWithExceptionCheckSetResult): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::compile):

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

(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::jitAssertNoException):
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::jitAssertIsInt32):
(JSC::AssemblyHelpers::jitAssertIsJSInt32):
(JSC::AssemblyHelpers::jitAssertIsNull):
(JSC::AssemblyHelpers::jitAssertTagsInPlace):
(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::jitAssertNoException):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • runtime/VM.h:

(JSC::VM::scratchBufferForSize):
(JSC::VM::exceptionFuzzingBuffer):

11:48 AM Changeset in webkit [188763] by basile_clement@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

Unreviewed, fixes the build.
https://bugs.webkit.org/show_bug.cgi?id=148316

11:39 AM Changeset in webkit [188762] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r188714): RELEASE_ASSERT in JSC::Heap::incrementDeferralDepth() opening Web Inspector on daringfireball.net
https://bugs.webkit.org/show_bug.cgi?id=148312

Reviewed by Mark Lam.

  • debugger/Debugger.cpp:

(JSC::Debugger::recompileAllJSFunctions): Use our vm argument instead of
m_vm because sometimes they are different and m_vm is null. (This behavior
is very strange, and we should probably eliminate it -- but we need a
fix for this serious regression right now.)

11:37 AM Changeset in webkit [188761] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

dispatch_group_t objects may not be retained properly when not backed by Objective-C objects under garbage collection
<http://webkit.org/b/148229>

Reviewed by Eric Carlson.

When compiled with garbage collection enabled, libdispatch
objects are not backed by Objective-C objects, so they don't get
the benefit of automatic reference counting when captured by a
block or a lambda. To address this, we use OSObjectPtr<> which
always increments the reference count of the contained object.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata):
Switch to use OSObjectPtr<>.

11:27 AM Changeset in webkit [188760] by BJ Burg
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: clean up uses of new with zero-argument constructors and factory methods
https://bugs.webkit.org/show_bug.cgi?id=148311

Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/InspectorFrontendHostStub.js:
  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView):

  • UserInterface/Views/ColorPicker.js:

(WebInspector.ColorPicker):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject): This was causing a console assertion
when a breakpoint tree element was selected and the inspector tried to restore the view state
after a reload or back/forward navigation.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):

11:26 AM Changeset in webkit [188759] by commit-queue@webkit.org
  • 7 edits in trunk

[Mac] accessibility/selection-states.html fails
https://bugs.webkit.org/show_bug.cgi?id=116637

Patch by Nan Wang <n_wang@apple.com> on 2015-08-21
Reviewed by Chris Fleizach.

Source/WebCore:

Added accessibilityAttributeValue callback for isMultiSelectable attribute.

Updated expectation for accessibility/selection-states.html on mac.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Implemented isSelectable() and isMultiSelectable().

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::isSelectable):
(AccessibilityUIElement::isMultiSelectable):
(AccessibilityUIElement::isSelectedOptionActive):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isSelectable):
(WTR::AccessibilityUIElement::isMultiSelectable):
(WTR::AccessibilityUIElement::isVisible):

LayoutTests:

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [188758] by ap@apple.com
  • 2 edits in trunk/Tools

Fix iteration over repositories on bot watcher's dashboard.

Patch by Jason Marcell <jmarcell@apple.com> on 2015-08-21
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:

(BuildbotQueueView.prototype._presentPopoverForPendingCommits): Don't reuse the same index variable.

10:10 AM Changeset in webkit [188757] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Fixed status features JSON formatting.

10:05 AM Changeset in webkit [188756] by BJ Burg
  • 5 edits
    5 adds in trunk

Web Inspector: add a regression test for the fix introduced in r188679
https://bugs.webkit.org/show_bug.cgi?id=148223

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Turns out that we were possibly leaking a single DOMTree on reload.
Always clear the main frame's DOMTree as well as those of sub-frames.

  • UserInterface/Base/Object.js: Add back single-fire listeners.

(WebInspector.Object.singleFireEventListener.let.wrappedCallback):
(WebInspector.Object.singleFireEventListener):
(WebInspector.Object.retainedObjectsWithPrototype):
(WebInspector.Object.prototype.singleFireEventListener):
(WebInspector.Object.prototype.retainedObjectsWithPrototype):

  • UserInterface/Models/Frame.js:

(WebInspector.Frame.prototype.removeAllChildFrames): Clear own tree too.

LayoutTests:

Add a regression test to check the number of DOMTree instances that
listen to DOMTreeManager.

  • TestExpectations: Don't skip the inspector/dom/ directory.
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation-expected.txt: Added.
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-1-deep.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-2-deep.html: Added.
  • http/tests/inspector/dom/resources/nested-frame-base.html: Added.
9:18 AM Changeset in webkit [188755] by Chris Dumez
  • 4 edits in trunk

Regression(r188698): http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=148205

Reviewed by Antti Koivisto.

Source/WebKit2:

After r188640, successful revalidation of resources in the memory cache
would cause us to drop the corresponding resource in the disk cache.
This patch addresses the issue by not removing the cache entry if the
response is a successful revalidation (i.e. status code == 304).

Longer term, we should probably update the entry in the disk cache (if
it exists) when it is revalidated by the memory cache. Currently,
revalidation by the memory cache bypasses the disk cache and goes
straight to the network. Then, when the response comes back as a 304,
we try and store the response in the cache. However, a 304 status code
is not cacheable so the cache rejects it.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html:

Drop temporary fix landed in r188698 to make the test less flaky.

9:05 AM Changeset in webkit [188754] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Have more getElementsBy*() methods return a Ref<>
https://bugs.webkit.org/show_bug.cgi?id=148287

Reviewed by Sam Weinig.

Have more getElementsBy*() methods return a Ref<> instaed of a RefPtr<>
as they cannot return null.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::getElementsByClassNameForObjC):
(WebCore::ContainerNode::radioNodeList):

  • dom/ContainerNode.h:
1:28 AM Changeset in webkit [188753] by Chris Dumez
  • 7 edits
    1 delete in trunk/Source/WebCore

Drop NodeListBase class
https://bugs.webkit.org/show_bug.cgi?id=148290

Reviewed by Ryosuke Niwa.

Drop NodeListBase class and have HTMLCollection subclass NodeList
directly. There is no reason we need another base class.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorObjC.pm:

(GetImplClassName): Deleted.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByClassNameForObjC):

  • dom/ContainerNode.h:
  • dom/NodeList.h:
  • dom/NodeListBase.h: Removed.
  • html/HTMLCollection.h:

Aug 20, 2015:

9:59 PM Changeset in webkit [188752] by Yusuke Suzuki
  • 26 edits
    2 moves
    3 adds in trunk/Source

[ES6] prototyping module loader in JSC shell
https://bugs.webkit.org/show_bug.cgi?id=147876

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch implements ES6 Module Loader part. The implementation is based on
the latest draft[1, 2]. The naive implementation poses several problems.
This patch attempts to solve the spec issues and proposes the fix[3, 4, 5].

We construct the JSC internal module loader based on the ES6 Promises.
The chain of the promises represents the dependency graph of the modules and
it automatically enables asynchronous module fetching.
To leverage the Promises internally, we use the InternalPromise landed in r188681.

The loader has several platform-dependent hooks. The platform can implement
these hooks to provide the functionality missing in the module loaders, like
"how to fetch the resources". The method table of the JSGlobalObject is extended
to accept these hooks from the platform.

This patch focus on the loading part. So we don't create the module environment
and don't link the modules yet.

To test the current module progress easily, we add the -m option to the JSC shell.
When this option is specified, we load the given script as the module. And to use
the module loading inside the JSC shell, we added the simple loader hook for fetching.
It fetches the module content from the file system.

And to use the ES6 Map in the Loader implementation, we added @get and @set methods to the Map.
But it conflicts with the existing getPrivateName method. Rename it to lookUpPrivateName.

[1]: https://whatwg.github.io/loader/
[2]: https://github.com/whatwg/loader/commit/214c7a6625b445bdf411c39984f36f01139a24be
[3]: https://github.com/whatwg/loader/pull/66
[4]: https://github.com/whatwg/loader/pull/67
[5]: https://github.com/whatwg/loader/issues/68
[6]: https://bugs.webkit.org/show_bug.cgi?id=148136

(JSC::BuiltinNames::lookUpPrivateName):
(JSC::BuiltinNames::lookUpPublicName):
(JSC::BuiltinNames::getPrivateName): Deleted.
(JSC::BuiltinNames::getPublicName): Deleted.

  • builtins/ModuleLoaderObject.js: Added.

(setStateToMax):
(newRegistryEntry):
(forceFulfillPromise):
(fulfillFetch):
(fulfillTranslate):
(fulfillInstantiate):
(instantiation):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestResolveDependencies.resolveDependenciesPromise.this.requestInstantiate.then.):
(requestResolveDependencies.resolveDependenciesPromise.this.requestInstantiate.then):
(requestResolveDependencies):
(requestInstantiateAll):
(provide):

  • jsc.cpp:

(stringFromUTF):
(jscSource):
(GlobalObject::moduleLoaderFetch):
(functionCheckModuleSyntax):
(dumpException):
(runWithScripts):
(printUsageStatement):
(CommandLine::parseArguments):
(jscmain):
(CommandLine::CommandLine): Deleted.

  • parser/Lexer.cpp:

(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::ModuleAnalyzer):
(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):

  • parser/ModuleAnalyzer.h:

(JSC::ModuleAnalyzer::moduleRecord):

  • parser/ModuleRecord.cpp:

(JSC::printableName): Deleted.
(JSC::ModuleRecord::dump): Deleted.

  • parser/ModuleRecord.h:

(JSC::ModuleRecord::ImportEntry::isNamespace): Deleted.
(JSC::ModuleRecord::create): Deleted.
(JSC::ModuleRecord::appendRequestedModule): Deleted.
(JSC::ModuleRecord::addImportEntry): Deleted.
(JSC::ModuleRecord::addExportEntry): Deleted.
(JSC::ModuleRecord::addStarExportEntry): Deleted.

  • parser/Nodes.h:
  • parser/NodesAnalyzeModule.cpp:

(JSC::ImportDeclarationNode::analyzeModule):
(JSC::ExportAllDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::lookUpPrivateName):
(JSC::CommonIdentifiers::lookUpPublicName):
(JSC::CommonIdentifiers::getPrivateName): Deleted.
(JSC::CommonIdentifiers::getPublicName): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/Completion.cpp:

(JSC::checkModuleSyntax):
(JSC::evaluateModule):

  • runtime/Completion.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::createUndefinedVariableError):

  • runtime/Identifier.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::moduleRecordStructure):

  • runtime/JSModuleRecord.cpp: Renamed from Source/JavaScriptCore/parser/ModuleRecord.cpp.

(JSC::JSModuleRecord::destroy):
(JSC::JSModuleRecord::finishCreation):
(JSC::printableName):
(JSC::JSModuleRecord::dump):

  • runtime/JSModuleRecord.h: Renamed from Source/JavaScriptCore/parser/ModuleRecord.h.

(JSC::JSModuleRecord::ImportEntry::isNamespace):
(JSC::JSModuleRecord::createStructure):
(JSC::JSModuleRecord::create):
(JSC::JSModuleRecord::requestedModules):
(JSC::JSModuleRecord::JSModuleRecord):
(JSC::JSModuleRecord::appendRequestedModule):
(JSC::JSModuleRecord::addImportEntry):
(JSC::JSModuleRecord::addExportEntry):
(JSC::JSModuleRecord::addStarExportEntry):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/ModuleLoaderObject.cpp: Added.

(JSC::ModuleLoaderObject::ModuleLoaderObject):
(JSC::ModuleLoaderObject::finishCreation):
(JSC::ModuleLoaderObject::getOwnPropertySlot):
(JSC::printableModuleKey):
(JSC::ModuleLoaderObject::provide):
(JSC::ModuleLoaderObject::requestInstantiateAll):
(JSC::ModuleLoaderObject::resolve):
(JSC::ModuleLoaderObject::fetch):
(JSC::ModuleLoaderObject::translate):
(JSC::ModuleLoaderObject::instantiate):
(JSC::moduleLoaderObjectParseModule):
(JSC::moduleLoaderObjectRequestedModules):
(JSC::moduleLoaderObjectResolve):
(JSC::moduleLoaderObjectFetch):
(JSC::moduleLoaderObjectTranslate):
(JSC::moduleLoaderObjectInstantiate):

  • runtime/ModuleLoaderObject.h: Added.

(JSC::ModuleLoaderObject::create):
(JSC::ModuleLoaderObject::createStructure):

  • runtime/Options.h:

Source/WebCore:

Just fill Loader hooks with nullptr.

  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
9:30 PM Changeset in webkit [188751] by Gyuyoung Kim
  • 4 edits in trunk

[EFL] Revise PlatformWebView ctor according to r188718
https://bugs.webkit.org/show_bug.cgi?id=148282

Source/WebKit2:

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-08-20
Reviewed by Gyuyoung Kim.

  • PlatformEfl.cmake:

Tools:

This patch change PlatformWebView ctor's argument to use WKPageConfigurationRef
instead of WKContextRef and WKPageGroupRef respectively.

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-08-20
Reviewed by Gyuyoung Kim.

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView):

9:22 PM Changeset in webkit [188750] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Better Remember open tab types and order if using JSContext inspector
https://bugs.webkit.org/show_bug.cgi?id=148285

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-20
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector.activateExtraDomains):
Save and restore extra domain related tabs at the expected saved index.

(WebInspector._rememberOpenTabs):
Keep unsupported tab types in the setting so when they are supported they open.

  • UserInterface/Base/Utilities.js:

Add a helper for inserting a single object into an array.

9:19 PM Changeset in webkit [188749] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: inline errors/warnings are taller than the line height
https://bugs.webkit.org/show_bug.cgi?id=148232

Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.css:

(.source-code.text-editor > .CodeMirror .issue-widget.inline):
(.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):

9:18 PM Changeset in webkit [188748] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

JSContext Inspector: Uncaught Exception opening Search Tab
https://bugs.webkit.org/show_bug.cgi?id=148284

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-20
Reviewed by Timothy Hatcher.

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel):
This is copied / pasted code that shouldn't apply to the Search tab.
We want to show results under Resources in the Search tab.

8:59 PM Changeset in webkit [188747] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

DFG should have a KnownBooleanUse for cases where we are required to know that the child is a boolean and it's not OK to speculate
https://bugs.webkit.org/show_bug.cgi?id=148286

Reviewed by Benjamin Poulain.

This enables us to ensure that the Branch or LogicalNot after an effectful CompareXYZ can
be marked as !mayExit(). I need that for https://bugs.webkit.org/show_bug.cgi?id=145204.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculateBooleanOperand::SpeculateBooleanOperand):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::shouldNotHaveTypeCheck):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::boolify):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBoolean):

8:12 PM Changeset in webkit [188746] by commit-queue@webkit.org
  • 4 edits
    1 copy
    1 add in trunk/LayoutTests

AX: fix accessibility/loading-iframe-updates-axtree.html test for mac
https://bugs.webkit.org/show_bug.cgi?id=148251

Patch by Nan Wang <n_wang@apple.com> on 2015-08-20
Reviewed by Chris Fleizach.

Added a container in order to make the frame accessible. Also, added expected results for
both WK1 and WK2.

  • accessibility/loading-iframe-updates-axtree-expected.txt:
  • accessibility/loading-iframe-updates-axtree.html:
  • platform/mac-wk1/accessibility: Added.
  • platform/mac-wk1/accessibility/loading-iframe-updates-axtree-expected.txt: Added.
  • platform/mac/TestExpectations:
8:05 PM Changeset in webkit [188745] by Chris Dumez
  • 5 edits in trunk

Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker()
https://bugs.webkit.org/show_bug.cgi?id=148257

Reviewed by Darin Adler.

Source/WebCore:

Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker().
It is supposed to be translated into a *null* NodeFilter. However, WebKit was constructing a
NodeFilter in this case.

Chrome and Firefox do not create a NodeFilter in this case.

No new tests, already covered by:
fast/dom/createNodeIterator-parameters.html
fast/dom/createTreeWalker-parameters.html

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::JSNodeFilter::toWrapped):

LayoutTests:

Rebaseline tests. We are now passing more of the checks.

  • fast/dom/createNodeIterator-parameters-expected.txt:
  • fast/dom/createTreeWalker-parameters-expected.txt:
7:57 PM Changeset in webkit [188744] by Alan Bujtas
  • 18 edits in trunk/Source/WebCore

Make outline: auto repaint rect inflate more explicit.
https://bugs.webkit.org/show_bug.cgi?id=148263

Reviewed by Simon Fraser.

Use RenderObject::adjustRectWithMaximumOutline() when inflating is conditional and call
RenderView::maximalOutlineSize() when it is not.
After this changeset, we can clearly tell calls when inflating is unconditional (adjusting the size of the compositing layer) apart from
calls when we just simply inflate the repaint rect during outline painting phase.

No change in behaviour.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paint):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paint):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::paint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::computeMaxOutlineSize):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::isOutlinePhase):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
(WebCore::RenderLineBoxList::paint):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::adjustRectWithMaximumOutline):
(WebCore::RenderObject::maximalOutlineSize): Deleted.

  • rendering/RenderObject.h:
  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::overflowRectForFlowThreadPortion):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::shouldPaint):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paint):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintCollapsedBorders):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::paintObject):

  • rendering/RenderView.cpp:

(WebCore::RenderView::setMaximalOutlineSize):
(WebCore::RenderView::RenderView): Deleted.

  • rendering/RenderView.h:
7:54 PM Changeset in webkit [188743] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[OS X] Cleaup after r188591
https://bugs.webkit.org/show_bug.cgi?id=148219

Unreviewed.

Forgot to update a call site of FontPlatformData().

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::FontCache::systemFallbackForCharacters):

7:51 PM Changeset in webkit [188742] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r188716.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
Add some scope so we can declare a variable (weakPtr) inside a switch statement.

7:41 PM Changeset in webkit [188741] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r188716.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
Replace m_weakFactory with m_weakPtrFactory which actually exists.

7:35 PM Changeset in webkit [188740] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

GTK build fix after r188693.

  • UIProcess/API/gtk/PageClientImpl.h:

Delete mediaDocumentNaturalSizeChanged which could be renamed to imageOrMediaDocumentSizeChanged,
but there's no reason to have an empty function overriding another virtual function that is also empty.

7:34 PM Changeset in webkit [188739] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Truncate data URIs
https://bugs.webkit.org/show_bug.cgi?id=148212

Reviewed by Timothy Hatcher.

  • UserInterface/Base/URLUtilities.js:

(parseURL):
Exit early to avoid an expensive RegExp match on a potentially very large data URI.

(parseQueryString):
Fix typo.

(WebInspector.displayNameForURL):
(WebInspector.truncateURL):
By default, only show first and last 3 characters of data URIs.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.get displayURL):
For tooltips, show first and last 32 characters of data URIs.

  • UserInterface/Models/SourceCodeLocation.js:

(WebInspector.SourceCodeLocation.prototype._locationString):

  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype._updateToolTip):

7:30 PM Changeset in webkit [188738] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Fix build error since r188693
https://bugs.webkit.org/show_bug.cgi?id=148279

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-08-20
Reviewed by Gyuyoung Kim.

  • UIProcess/efl/WebViewEfl.h:
7:12 PM Changeset in webkit [188737] by mmaxfield@apple.com
  • 9 edits in trunk

Source/WebCore:
[iOS] Adopt OS X's emoji behavior.
https://bugs.webkit.org/show_bug.cgi?id=148265

Reviewed by Simon Fraser.

Remove our hardcoded hacks which limit the sizes of emoji. This is how
OS X behaves with emoji.

Test: fast/text/emoji.html

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::hash):
(WebCore::FontPlatformData::isEmoji): Deleted.
(WebCore::FontPlatformData::setIsEmoji): Deleted.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):
(WebCore::isOnOrAfterIOS6): Deleted.
(WebCore::pointAdjustedForEmoji): Deleted.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::canUseFastGlyphAdvanceGetter):
(WebCore::Font::platformInit): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont):
(WebCore::FontPlatformData::platformDataInit): Deleted.
(WebCore::FontPlatformData::platformDataAssign): Deleted.
(WebCore::FontPlatformData::platformIsEqual): Deleted.
(WebCore::FontPlatformData::ctFontSize): Deleted.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getSystemFontFallbackForCharacters): Deleted.
(WebCore::FontCache::createFontPlatformData): Deleted.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Deleted.

LayoutTests:
[iOS] Adopt OS X's emoji behavior
https://bugs.webkit.org/show_bug.cgi?id=148265

Reviewed by Simon Fraser.

  • platform/ios-simulator/fast/text/emoji-expected.txt:
7:10 PM Changeset in webkit [188736] by Lucas Forschler
  • 3 edits in trunk/WebKitLibraries

Check in Mavericks LLVM drops built from the LLVM 3.6.2 open source release.

7:10 PM Changeset in webkit [188735] by Chris Dumez
  • 20 edits
    4 moves
    3 adds in trunk

getElementsByClassName() should return an HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=147980

Reviewed by Darin Adler.

Source/WebCore:

Update Document.getElementsByClassName() and Element.getElementsByClassName()
to return an HTMLCollection instead of a NodeList, as per the specification:

This behavior is also consistent with other major browsers. Due to this and
the fact that NodeList / HTMLCollection pretty much the same API, the
compatibility risk should be fairly low.

I also verified that the performance is the same according to the following
performance test:
PerformanceTests/DOM/get-elements-by-class-name-traversal-uncached.html

Tests: fast/dom/getElementsByClassName/dumpHTMLCollection.html

fast/dom/getElementsByClassName/return-type.html

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:

Rename ClassNodeList.cpp file.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GetImplClassName):
Indicate that NodeList is implemented as NodeListBase. This is
needed so that DOMNodeList can have either an HTMLCollection or
a NodeList as internal representation. NodeListBase is a new
common base class for HTMLCollection and NodeList.

  • dom/ClassCollection.cpp: Renamed from Source/WebCore/dom/ClassNodeList.cpp.

(WebCore::ClassCollection::create):
(WebCore::ClassCollection::~ClassCollection):

  • dom/ClassCollection.h: Renamed from Source/WebCore/dom/ClassNodeList.h.

(WebCore::ClassCollection::ClassCollection):
(WebCore::ClassCollection::elementMatches):
Rename ClassNodeList to ClassCollection and have it subclass
CachedHTMLCollection instead of ClassNodeList.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByClassName):
Have getElementsByClassName return an HTMLCollection instead of a
NodeList.

(WebCore::ContainerNode::getElementsByClassNameForObjC):
New method returns a NodeListBase for ObjC bindings, so they can
convert the return value into a DOMNodeList. We need this to not
break ObjC API compatibility.

  • dom/Document.idl:
  • dom/Element.idl:

Have getElementsByClassName return an HTMLCollection instead of a
NodeList, except for ObjC bindings.

  • dom/NodeList.h:

Have NodeList subclass NodeListBase.

  • dom/NodeListBase.h: Added.

New common base interface for HTMLCollection and NodeList. This is
so that the internal representation for ObjC's DOMNodeList can be
a NodeListBase instead of a NodeList. This way, the ObjC API can
keep returning a DOMNodeList, even though our implementation now
returns an HTMLCollection instead of a NodeList.

  • dom/NodeRareData.h:

(WebCore::NodeListTypeIdentifier<NameNodeList>::value):
(WebCore::NodeListTypeIdentifier<TagNodeList>::value):
(WebCore::NodeListTypeIdentifier<HTMLTagNodeList>::value):
(WebCore::NodeListTypeIdentifier<RadioNodeList>::value):
(WebCore::NodeListTypeIdentifier<LabelsNodeList>::value):
Drop ClassNodeList from the NodeListTypeIndentifiers.

  • html/CollectionType.h:

Add new ByClass CollectionType for ClassCollection.

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
Handle new ByClass CollectionType in the switch statement.

  • html/HTMLCollection.cpp:

(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::HTMLCollection::~HTMLCollection):
Add support for new ByClass Collection type.

  • html/HTMLCollection.h:

Have HTMLCollection subclass the NodeListBase interface.

LayoutTests:

  • fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt: Renamed from LayoutTests/fast/dom/getElementsByClassName/dumpNodeList-expected.txt.
  • fast/dom/getElementsByClassName/dumpHTMLCollection.html: Renamed from LayoutTests/fast/dom/getElementsByClassName/dumpNodeList.html.

Rename test now that getElementsByClassName returns an HTMLCollection
and update the test to update the HTMLCollection prototype instead
of the NodeList one.

  • fast/dom/getElementsByClassName/return-type-expected.txt: Added.
  • fast/dom/getElementsByClassName/return-type.html: Added.

New test that checks that getElementsByClassName() returns an
HTMLCollection.

  • inspector/model/remote-object-expected.txt:

Rebaseline.

6:46 PM Changeset in webkit [188734] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the iOS build after r188726
https://bugs.webkit.org/show_bug.cgi?id=148278

Unreviewed.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::systemFallbackForCharacters):

6:42 PM Changeset in webkit [188733] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add flex alignment section to Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148243

Reviewed by Timothy Hatcher.

Uses select keyword pickers to contain the list of possible values. Also supports
the upcoming Grid layout keywords in the advanced keyword list.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel):
(WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
(WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):

6:40 PM Changeset in webkit [188732] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Labels in the computed panel are shifted when a filter is applieds
https://bugs.webkit.org/show_bug.cgi?id=148250

Reviewed by Timothy Hatcher.

Added to the selectors for filtering to ensure they only apply to the rules panel.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label:not(.filter-section-non-matching) ~ .label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label.filter-matching-label):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .new-rule):
(.sidebar > .panel.details.css-style > .content.filter-in-progress > .rules .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) ~ .label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label.filter-matching-label): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .label:not(.filter-section-non-matching) + .label.filter-matching-label:not(.filter-section-non-matching)): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .new-rule): Deleted.
(.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-non-matching) ~ .label:not(.filter-section-non-matching)): Deleted.

6:38 PM Changeset in webkit [188731] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix "attempted to assign to readonly property" in Visual editor links
https://bugs.webkit.org/show_bug.cgi?id=148264

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStylePropertyEditorLink.js:

(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
No longer attempts to set the "hidden" attribute of the link icons before they exist.

6:37 PM Changeset in webkit [188730] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual editor adds extra spaces to styles with no properties
https://bugs.webkit.org/show_bug.cgi?id=148242

Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.set text):
Now trims the text and, if the resulting string has no length or the style is inline,
replaces the text to be set with the trimmed text.

  • UserInterface/Views/VisualStylePropertyCombiner.js:

(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):
Removed unnecessary trim.

6:36 PM Changeset in webkit [188729] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup after r188726

Unreviewed.

No new tests because there is no behavior change.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::systemFallbackForCharacters):

6:35 PM Changeset in webkit [188728] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Font size between computed and set value is off in visual styles popups
https://bugs.webkit.org/show_bug.cgi?id=148226

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStylePropertyEditor.css:

(.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder):
Increased font-size to match the font-size of the overlaid select element.

6:33 PM Changeset in webkit [188727] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtered frames shouldn't be selectable in the Rendering Frames overview graph
https://bugs.webkit.org/show_bug.cgi?id=148253

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

Check record's filtered state before setting new frame selection.

6:33 PM Changeset in webkit [188726] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[iOS] Delete dead code
https://bugs.webkit.org/show_bug.cgi?id=148278

Reviewed by Dean Jackson.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::copyFontCharacterSet): Deleted.
(WebCore::appleColorEmojiCharacterSet): Deleted.
(WebCore::phoneFallbackCharacterSet): Deleted.
(WebCore::languageSpecificFallbackFont): Deleted.
(WebCore::FontCache::systemFallbackForCharacters): Deleted.

6:31 PM Changeset in webkit [188725] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: visual style number inputs don't style the units correctly
https://bugs.webkit.org/show_bug.cgi?id=148222

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox.prototype.set value):
Added extra checks to see if the number input has a value when setting the value on the editor.

6:04 PM Changeset in webkit [188724] by mmaxfield@apple.com
  • 5 edits
    65 adds in trunk/LayoutTests

Test gardening after r188167
https://bugs.webkit.org/show_bug.cgi?id=148276

Unreviewed.

The tests in css3/line-break require non-language-sensitive font fallback. This patch adds
slightly modified tests which test line-breaking with language-sensitive font fallback.
This patch also marks all operating systems which do not support language-sensitive font
fallback to ignore the results of these new tests.

  • css3/line-break-language-sensitive: Added
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
6:03 PM Changeset in webkit [188723] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r188712.
https://bugs.webkit.org/show_bug.cgi?id=148274

broke allllll the tests (Requested by thorton on #webkit).

Reverted changeset:

"WK1 can re-enter layout during FrameView destruction and
crash"
https://bugs.webkit.org/show_bug.cgi?id=148237
http://trac.webkit.org/changeset/188712

5:47 PM Changeset in webkit [188722] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Unreviewed, rolling out r188717 and r188719.
https://bugs.webkit.org/show_bug.cgi?id=148272

Broke the Mavericks build (Requested by andersca on #webkit).

Reverted changesets:

"Merge Lock and LockBase"
https://bugs.webkit.org/show_bug.cgi?id=148266
http://trac.webkit.org/changeset/188717

"Merge ConditionBase and Condition"
https://bugs.webkit.org/show_bug.cgi?id=148270
http://trac.webkit.org/changeset/188719

5:26 PM Changeset in webkit [188721] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, changed Devin Rousso's email.

Patch by Devin Rousso <Devin Rousso> on 2015-08-20

  • Scripts/webkitpy/common/config/contributors.json:
5:26 PM Changeset in webkit [188720] by fpizlo@apple.com
  • 3 edits
    8 adds in trunk

Overflow check elimination fails for a simple test case
https://bugs.webkit.org/show_bug.cgi?id=147387

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Overflow check elimination was having issues when things got constant-folded, because whereas an
Add or LessThan operation teaches us about relationships between the things being added or
compared, we don't do that when we see a JSConstant. We don't create a relationship between every
JSConstant and every other JSConstant. So, if we constant-fold an Add, we forget the relationships
that it would have had with its inputs.

One solution would be to have every JSConstant create a relationship with every other JSConstant.
This is dangerous, since it would create O(n2) explosion of relationships.

Instead, this patch teaches filtration and merging how to behave "as if" there were inter-constant
relationships. Normally those operations only work on two relationships involving the same node
pair. But now, if we have @x op @c and @x op @d, where @c and @d are different nodes but both are
constants, we will do merging or filtering by grokking the constant values.

This speeds up lots of tests in JSRegress, because it enables overflow check elimination on things
like:

for (var i = 0; i < 100; ++i)

Previously, the fact that this was all constants would throw off the analysis because the analysis
wouldn't "know" that 0 < 100.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

LayoutTests:

Added two test cases that previously would have an unnecessary overflow check on an induction
variable. These tests speed up by 10-15% thanks to this change.

Also added .html/expected files for some regress test that didn't have them.

  • js/regress/function-call-expected.txt: Added.
  • js/regress/function-call.html: Added.
  • js/regress/hard-overflow-check-equal-expected.txt: Added.
  • js/regress/hard-overflow-check-equal.html: Added.
  • js/regress/hard-overflow-check-expected.txt: Added.
  • js/regress/hard-overflow-check.html: Added.
  • js/regress/script-tests/hard-overflow-check-equal.js: Added.

(foo):

  • js/regress/script-tests/hard-overflow-check.js: Added.

(foo):

5:11 PM Changeset in webkit [188719] by andersca@apple.com
  • 5 edits in trunk/Source

Merge ConditionBase and Condition
https://bugs.webkit.org/show_bug.cgi?id=148270

Reviewed by Filip Pizlo.

Source/WebCore:

Change StaticCondition to Condition.

  • platform/network/cf/LoaderRunLoopCF.cpp:

Source/WTF:

  • wtf/Condition.h:

Direct initialize m_hasWaiters so Condition gets a constexpr constructor.

  • wtf/Lock.h:

Remove a now outdated comment.

5:01 PM Changeset in webkit [188718] by timothy_horton@apple.com
  • 10 edits in trunk

Use WKPageConfigurationRef in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=147996

Reviewed by Tim Horton.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::createWebViewWithOptions):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(-[TestRunnerWKView initWithFrame:configurationRef:useThreadedScrolling:]):
(WTR::PlatformWebView::PlatformWebView):
(-[TestRunnerWKView initWithFrame:contextRef:pageGroupRef:relatedToPage:useThreadedScrolling:]): Deleted.

  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView _commonInitializationWithConfigurationRef:]):
(-[WKView initWithFrame:configurationRef:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:configurationRef:]):
Make sure to copy the configuration, matching what we do in the modern API.

5:00 PM Changeset in webkit [188717] by andersca@apple.com
  • 5 edits in trunk/Source/WTF

Merge Lock and LockBase
https://bugs.webkit.org/show_bug.cgi?id=148266

Reviewed by Filip Pizlo.

  • wtf/Atomics.h:

(WTF::Atomic::Atomic):
Add a default constructor as well as a constexpr constructor that takes a value.

  • wtf/Lock.cpp:

(WTF::Lock::lockSlow):
(WTF::Lock::unlockSlow):
Rename LockBase to Lock.

  • wtf/Lock.h:

Rename LockBase to Lock and direct-initialize Atomic to 0. Since the Atomic constructor is constexpr,
Lock also gets a constexpr constructor. Change the LockBase -> StaticLock typedef and add a fixme.

  • wtf/WordLock.h:

Direct initialize m_word to 0.

4:06 PM Changeset in webkit [188716] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Stop using cancelCallOnMainThread in MediaPlayerPrivateMediaFoundation
https://bugs.webkit.org/show_bug.cgi?id=148252

Reviewed by Tim Horton.

Replace cancelCallOnMainThread with WeakPtrs.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::onCreatedMediaSourceCallback):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySetCallback):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
3:57 PM Changeset in webkit [188715] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2015-08-20 Geoffrey Garen <ggaren@apple.com>

forEachCodeBlock should wait for all CodeBlocks automatically
https://bugs.webkit.org/show_bug.cgi?id=148255

Add back a line of code I deleted by accident in my last patch due to
incorrect merge.

Unreviewed.

  • runtime/VM.cpp: (JSC::VM::deleteAllCode):
3:53 PM Changeset in webkit [188714] by ggaren@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

forEachCodeBlock should wait for all CodeBlocks automatically
https://bugs.webkit.org/show_bug.cgi?id=148255

Reviewed by Saam Barati.

Previously, all clients needed to wait manually before calling
forEachCodeBlock. That's easy to get wrong, and at least one place
got it wrong. Let's do this automatically instead.

  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::toggleBreakpoint): No need to wait manually;
forEachCodeBlock will do it automatically now.

(JSC::Debugger::recompileAllJSFunctions): We still need to wait manually
here because this is an iteration of the heap, which does not wait
automatically. Use the new helper function for waiting.

(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):
(JSC::Debugger::setBreakpointsActivated):
(JSC::Debugger::forEachCodeBlock): Deleted. No need to wait manually.

  • debugger/Debugger.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::completeAllPlansForVM):

  • dfg/DFGWorklist.h:

(JSC::DFG::completeAllPlansForVM): Added a helper function that replaces
vm.prepareToDeleteCode. This new function is clearer because we need
to call it sometimes even if we are not going to delete code.

  • heap/HeapInlines.h:

(JSC::Heap::forEachCodeBlock): Moved.

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::recompileAllJSFunctionsForTypeProfiling): Use the new helper
function.

  • runtime/JSCInlines.h:

(JSC::Heap::forEachCodeBlock): Do the waiting automatically.

  • runtime/VM.cpp:

(JSC::VM::stopSampling):
(JSC::VM::deleteAllCode):
(JSC::VM::setEnabledProfiler):
(JSC::VM::prepareToDeleteCode): Deleted.

  • runtime/VM.h: No need to wait manually.
3:51 PM Changeset in webkit [188713] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

AX: Fix accessibility/mac/selection-value-changes-for-aria-textbox.html test
https://bugs.webkit.org/show_bug.cgi?id=148247

Patch by Nan Wang <n_wang@apple.com> on 2015-08-20
Reviewed by Chris Fleizach.

Fixed the test by adding the notification listener before executing the commands.

  • accessibility/mac/selection-value-changes-for-aria-textbox-expected.txt:
  • accessibility/mac/selection-value-changes-for-aria-textbox.html:
  • platform/mac/TestExpectations:
3:37 PM Changeset in webkit [188712] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

WK1 can re-enter layout during FrameView destruction and crash
https://bugs.webkit.org/show_bug.cgi?id=148237
-and corresponding-
rdar://problem/22356782

Reviewed by Zalan Bujtas.

This is a safe fix for the time being. We won't resetScrollbars() for a FrameView
that is in the PageCache because resetting scrollbars can re-enter layout for the
Frame's new FrameView, which leads to updating pages in the page cache, which
leads to a crash because we're in the process of destroying something
in the page cache. We should not be able to get into this mess at all.

  • page/FrameView.cpp:

(WebCore::FrameView::~FrameView):

3:32 PM Changeset in webkit [188711] by Chris Dumez
  • 11 edits
    4 adds in trunk

Default value for createNodeIterator() / createTreeWalker()'s whatToShow parameter should be 0xFFFFFFFF
https://bugs.webkit.org/show_bug.cgi?id=148238

Reviewed by Ryosuke Niwa.

Source/WebCore:

Default value for createNodeIterator() / createTreeWalker()'s whatToShow
parameter should be 0xFFFFFFFF as per the specification:

Firefox and Chrome conform to the specification. However, WebKit was
using 0 as default value.

We still don't behave as expected in some cases, as visible from
the checks that are still failing in the new layout tests. Those
will be addressed separately.

Tests: fast/dom/createNodeIterator-parameters.html

fast/dom/createTreeWalker-parameters.html

  • dom/Document.cpp:

(WebCore::Document::createNodeIterator):
(WebCore::Document::createTreeWalker):
(WebCore::Document::scheduleForcedStyleRecalc): Deleted.
(WebCore::Document::scheduleStyleRecalc): Deleted.

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

(WebCore::NodeIterator::NodeIterator):

  • dom/NodeIterator.h:

(WebCore::NodeIterator::create):

  • dom/Traversal.cpp:

(WebCore::NodeIteratorBase::NodeIteratorBase):

  • dom/Traversal.h:

(WebCore::NodeIteratorBase::whatToShow):

  • dom/TreeWalker.cpp:

(WebCore::TreeWalker::TreeWalker):

  • dom/TreeWalker.h:

(WebCore::TreeWalker::create):

LayoutTests:

Add tests for createNodeIterator() / createTreeWalker() parameters.
Some of the checks are still failing.

  • fast/dom/createNodeIterator-parameters-expected.txt: Added.
  • fast/dom/createNodeIterator-parameters.html: Added.
  • fast/dom/createTreeWalker-parameters-expected.txt: Added.
  • fast/dom/createTreeWalker-parameters.html: Added.
3:15 PM Changeset in webkit [188710] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

AX: Re-enable aria-checked-mixed-value.html test for mac
https://bugs.webkit.org/show_bug.cgi?id=148235

Patch by Nan Wang <n_wang@apple.com> on 2015-08-20
Reviewed by Chris Fleizach.

isIndeterminate is already implemented in mac, re-enable the test.

  • platform/mac/TestExpectations:
3:11 PM Changeset in webkit [188709] by Brent Fulgham
  • 38 edits in trunk/Tools

[Win] Update Windows tools for revised MIDL interfaces
https://bugs.webkit.org/show_bug.cgi?id=148249

Reviewed by Dean Jackson.

This is a follow-up to Bug 148001.

Revise the testing software to use compatible signatures and
implementations to match the requirements of the IDL generated
with the SAL annotations.

  • DumpRenderTree/win/DRTDataObject.cpp:
  • DumpRenderTree/win/DRTDataObject.h:
  • DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp:
  • DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
  • DumpRenderTree/win/DRTDropSource.cpp:
  • DumpRenderTree/win/DRTDropSource.h:
  • DumpRenderTree/win/DumpRenderTree.cpp:
  • DumpRenderTree/win/EditingDelegate.cpp:
  • DumpRenderTree/win/EditingDelegate.h:
  • DumpRenderTree/win/FrameLoadDelegate.cpp:
  • DumpRenderTree/win/FrameLoadDelegate.h:
  • DumpRenderTree/win/HistoryDelegate.cpp:
  • DumpRenderTree/win/HistoryDelegate.h:
  • DumpRenderTree/win/PolicyDelegate.cpp:
  • DumpRenderTree/win/PolicyDelegate.h:
  • DumpRenderTree/win/ResourceLoadDelegate.cpp:
  • DumpRenderTree/win/ResourceLoadDelegate.h:
  • DumpRenderTree/win/TestRunnerWin.cpp:
  • DumpRenderTree/win/UIDelegate.cpp:
  • DumpRenderTree/win/UIDelegate.h:
  • WinLauncher/AccessibilityDelegate.cpp:
  • WinLauncher/AccessibilityDelegate.h:
  • WinLauncher/Common.cpp:
  • WinLauncher/DOMDefaultImpl.cpp:
  • WinLauncher/DOMDefaultImpl.h:
  • WinLauncher/PageLoadTestClient.cpp:
  • WinLauncher/PageLoadTestClient.h:
  • WinLauncher/PrintWebUIDelegate.cpp:
  • WinLauncher/PrintWebUIDelegate.h:
  • WinLauncher/ResourceLoadDelegate.cpp:
  • WinLauncher/ResourceLoadDelegate.h:
  • WinLauncher/WebDownloadDelegate.cpp:
  • WinLauncher/WebDownloadDelegate.h:
  • WinLauncher/WinLauncherWebHost.cpp:
  • WinLauncher/WinLauncherWebHost.h:
  • WinLauncher/WinMain.cpp:
  • win/DLLLauncher/DLLLauncherMain.cpp:
3:07 PM Changeset in webkit [188708] by Matt Baker
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtered frames should be styled differently in the Rendering Frames overview graph
https://bugs.webkit.org/show_bug.cgi?id=147421

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.representedObjectWasFiltered):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
Inform derived sidebar of tree element filter state changes.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.recordWasFiltered):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.updateLayout):
Update filtered frame style when a record's state changes, and during layout.

  • UserInterface/Views/TimelineOverview.js:
  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype.recordWasFiltered):
Allow setting a record's filtered state for a given timeline in the overview.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame.filtered > .frame):
New filtered frame style.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.prototype.get filtered):
(WebInspector.TimelineRecordFrame.prototype.set filtered):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype.representedObjectWasFiltered):
(WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
Apply task filters to RenderingFrameTimelineRecords and their immediate children.

2:55 PM Changeset in webkit [188707] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

2:55 PM Changeset in webkit [188706] by msaboff@apple.com
  • 2 edits in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Stack pointer should be moved to protect saving callee saves in LLInt
https://bugs.webkit.org/show_bug.cgi?id=148246

Reviewed by Basile Clement.

Changed preserveCalleeSavesUsedByLLInt() macro to move the stack pointer before saving
any registers.

  • llint/LowLevelInterpreter.asm:
2:54 PM Changeset in webkit [188705] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.54

New Tag.

2:42 PM Changeset in webkit [188704] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/LayoutTests

AX: Mac doesn't have expectation for LayoutTests/accessibility/table-cells-roles.html test
https://bugs.webkit.org/show_bug.cgi?id=148236

Patch by Nan Wang <n_wang@apple.com> on 2015-08-20
Reviewed by Chris Fleizach.

  • accessibility/table-cells-roles-expected.txt:
  • accessibility/table-cells-roles.html:
  • platform/mac/TestExpectations:
  • platform/mac/accessibility/table-cells-roles-expected.txt: Added.
2:36 PM Changeset in webkit [188703] by Brent Fulgham
  • 31 edits in trunk/Source/WebKit/win

[Win] Miscellaneous Windows Cleanups
https://bugs.webkit.org/show_bug.cgi?id=148240

Reviewed by Dean Jackson.

Correct some C++ style issues in the Windows code.

  • AccessibleBase.cpp:
  • AccessibleTextImpl.cpp:
  • CFDictionaryPropertyBag.cpp:
  • DOMCoreClasses.cpp:
  • DOMEventsClasses.cpp:
  • MemoryStream.cpp:
  • MemoryStream.h:
  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
  • WebCoreSupport/WebEditorClient.cpp:
  • WebCoreSupport/WebEditorClient.h:
  • WebDownload.cpp:
  • WebDownloadCurl.cpp:
  • WebError.cpp:
  • WebHistoryItem.cpp:
  • WebJavaScriptCollector.cpp:
  • WebNotificationCenter.cpp:
  • WebPreferences.cpp:
  • WebURLAuthenticationChallengeSenderCurl.cpp:
  • WebURLCredential.cpp:
  • WebView.cpp:
2:32 PM Changeset in webkit [188702] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Stop using cancelCallOnMainThread in MediaPlayerPrivateAVFoundation
https://bugs.webkit.org/show_bug.cgi?id=148248

Reviewed by Tim Horton.

Replace cancelCallOnMainThread with WeakPtrs, just like in MediaPlayerPrivateAVFoundationObjC.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::mainThreadCallback):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
(WebCore::MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2:28 PM Changeset in webkit [188701] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, shorten a test that runs too long and times out.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:

(TestWebKitAPI::TEST):

2:19 PM Changeset in webkit [188700] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Stop using cancelCallOnMainThread in DisplayRefreshMonitorMac
https://bugs.webkit.org/show_bug.cgi?id=148241

Reviewed by Tim Horton.

Create a WeakPtrFactory in DisplayRefreshMonitorMac and bind a WeakPtr in the function passed
to callOnMainThread so we can check if the DisplayRefreshMonitorMac has gone away.

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):
(WebCore::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
2:09 PM Changeset in webkit [188699] by commit-queue@webkit.org
  • 9 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r188675.
https://bugs.webkit.org/show_bug.cgi?id=148244

"caused a 17% Mac PLT regression" (Requested by ggaren on
#webkit).

Reverted changeset:

"clearCode() should clear code"
https://bugs.webkit.org/show_bug.cgi?id=148203
http://trac.webkit.org/changeset/188675

1:53 PM Changeset in webkit [188698] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION: http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=148205

Unreviewed, give the disk cache a chance to settle down before querying
the resource again. This fixes the flakiness locally. Longer term, I will
try and figure out why the cache is sometimes revalidating if the resource
is requested very quickly after.

  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html:
1:46 PM Changeset in webkit [188697] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

AppleWin CMake build fix after r188696.

  • PlatformWin.cmake:

No ${} fixes the problem and keeps the desired behavior.

1:18 PM Changeset in webkit [188696] by Yusuke Suzuki
  • 10 edits
    41 adds in trunk

Introduce put_by_id like IC into put_by_val when the given name is String or Symbol
https://bugs.webkit.org/show_bug.cgi?id=147760

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds put_by_id IC to put_by_val by caching the one candidate id,
it is the same thing to the get_by_val IC extension.
It will encourage the use of ES6 Symbols and ES6 computed properties in the object literals.

In this patch, we leverage the existing CheckIdent and PutById / PutByVal in DFG,
so this patch does not change FTL because the above operations are already supported in FTL.

And this patch also includes refactoring to leverage byValInfo->slowPathCount in the cached Id path.

Performance results report there's no regression in the existing tests. And in the synthetic
benchmarks created by modifying put-by-id to put-by-val, we can see significant performance
improvements up to 13.9x.

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/PutByIdStatus.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • jit/JIT.h:

(JSC::JIT::compilePutByValWithCachedId):

  • jit/JITOperations.cpp:

(JSC::getByVal):
(JSC::tryGetByValOptimize):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emitIdentifierCheck):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):

  • tests/stress/put-by-val-with-string-break.js: Added.

(shouldBe):
(assign):

  • tests/stress/put-by-val-with-string-generated.js: Added.

(shouldBe):
(gen1):
(gen2):
(assign):

  • tests/stress/put-by-val-with-string-generic.js: Added.

(shouldBe):
(assign):

  • tests/stress/put-by-val-with-symbol-break.js: Added.

(shouldBe):
(assign):

  • tests/stress/put-by-val-with-symbol-generic.js: Added.

(shouldBe):
(assign):

LayoutTests:

Add synthetic tests for put-by-val. Just make put-by-id tests using symbol / string.

  • js/regress/fold-put-by-val-with-string-to-multi-put-by-offset-expected.txt: Added.
  • js/regress/fold-put-by-val-with-string-to-multi-put-by-offset.html: Added.
  • js/regress/fold-put-by-val-with-symbol-to-multi-put-by-offset-expected.txt: Added.
  • js/regress/fold-put-by-val-with-symbol-to-multi-put-by-offset.html: Added.
  • js/regress/inlined-put-by-val-with-string-transition-expected.txt: Added.
  • js/regress/inlined-put-by-val-with-string-transition.html: Added.
  • js/regress/inlined-put-by-val-with-symbol-transition-expected.txt: Added.
  • js/regress/inlined-put-by-val-with-symbol-transition.html: Added.
  • js/regress/polymorphic-put-by-val-with-string-expected.txt: Added.
  • js/regress/polymorphic-put-by-val-with-string.html: Added.
  • js/regress/polymorphic-put-by-val-with-symbol-expected.txt: Added.
  • js/regress/polymorphic-put-by-val-with-symbol.html: Added.
  • js/regress/put-by-val-with-string-expected.txt: Added.
  • js/regress/put-by-val-with-string-replace-and-transition-expected.txt: Added.
  • js/regress/put-by-val-with-string-replace-and-transition.html: Added.
  • js/regress/put-by-val-with-string-slightly-polymorphic-expected.txt: Added.
  • js/regress/put-by-val-with-string-slightly-polymorphic.html: Added.
  • js/regress/put-by-val-with-string.html: Added.
  • js/regress/put-by-val-with-symbol-expected.txt: Added.
  • js/regress/put-by-val-with-symbol-replace-and-transition-expected.txt: Added.
  • js/regress/put-by-val-with-symbol-replace-and-transition.html: Added.
  • js/regress/put-by-val-with-symbol-slightly-polymorphic-expected.txt: Added.
  • js/regress/put-by-val-with-symbol-slightly-polymorphic.html: Added.
  • js/regress/put-by-val-with-symbol.html: Added.
  • js/regress/script-tests/fold-put-by-val-with-string-to-multi-put-by-offset.js: Added.

(foo):
(fu):
(bar):

  • js/regress/script-tests/fold-put-by-val-with-symbol-to-multi-put-by-offset.js: Added.

(foo):
(fu):
(bar):

  • js/regress/script-tests/inlined-put-by-val-with-string-transition.js: Added.

(foo):
(Foo):

  • js/regress/script-tests/inlined-put-by-val-with-symbol-transition.js: Added.

(foo):
(Foo):

  • js/regress/script-tests/polymorphic-put-by-val-with-string.js: Added.

(foo):

  • js/regress/script-tests/polymorphic-put-by-val-with-symbol.js: Added.

(foo):

  • js/regress/script-tests/put-by-val-with-string-replace-and-transition.js: Added.
  • js/regress/script-tests/put-by-val-with-string-slightly-polymorphic.js: Added.
  • js/regress/script-tests/put-by-val-with-string.js: Added.

(foo):
(bar):

  • js/regress/script-tests/put-by-val-with-symbol-replace-and-transition.js: Added.
  • js/regress/script-tests/put-by-val-with-symbol-slightly-polymorphic.js: Added.
  • js/regress/script-tests/put-by-val-with-symbol.js: Added.

(foo):
(bar):

12:16 PM Changeset in webkit [188695] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo] Link errors when building with VS2015.
https://bugs.webkit.org/show_bug.cgi?id=148233

Reviewed by Alex Christensen.

Include some inline function definitions.

  • bindings/js/JSWebGLRenderingContextCustom.cpp:
  • html/canvas/WebGLRenderingContext.cpp:
12:08 PM Changeset in webkit [188694] by achristensen@apple.com
  • 17 edits in trunk

Clean up CMake build after r188673
https://bugs.webkit.org/show_bug.cgi?id=148234

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • shell/PlatformWin.cmake:

Define WIN_CAIRO so the WinCairo jsc.exe can find the correct dlls.

Source/ThirdParty:

  • gtest/CMakeLists.txt:

gtest needs to be a static library on Windows to not crash.

Source/ThirdParty/ANGLE:

  • CMakeLists.txt:

Copy headers to forwarding headers.

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:

Make including ANGLE headers platform specific because EFL and GTK don't want to copy headers,
but we need to in order to get the Windows build working with each Source subdirectory isolated.

Source/WebKit:

  • PlatformWin.cmake:

Include ANGLE forwarding headers directories.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformWin.cmake:

Define WIN_CAIRO so WinCairo executables can find the correct dlls in WebKitLibraries.
gtest needs to be a static library on Windows to not crash.

11:46 AM Changeset in webkit [188693] by Beth Dakin
  • 23 edits in trunk/Source

Standalone image documents should send their size to the UIClient just like
standalone media documents
https://bugs.webkit.org/show_bug.cgi?id=148195
-and corresponding-
rdar://problem/21951253

Reviewed by Tim Horton.

This patch re-names mediaDocumentNaturalSizeChanged() to
imageOrMediaDocumentSizeChanged(), and, as the new name implies, uses the
function for both media documents and images.

Source/WebCore:

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::imageUpdated):

  • html/MediaDocument.cpp:

(WebCore::MediaDocument::mediaElementNaturalSizeChanged):

  • page/ChromeClient.h:

Source/WebKit2:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didClickAutoFillButton):
(API::UIClient::imageOrMediaDocumentSizeChanged):
(API::UIClient::mediaDocumentNaturalSizeChanged): Deleted.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

The WKWebView and PageClient implementations of this function were actually
not being used, so this patch removes them and just keeps the UIClient stuff.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView performDragOperation:]):
(-[WKWebView _mediaDocumentNaturalSizeChanged:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:

More re-naming.

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::UIClient):
(WebKit::UIDelegate::UIClient::didNotHandleTapAsClick):
(WebKit::UIDelegate::UIClient::imageOrMediaDocumentSizeChanged):
(WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged): Deleted.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):
(WebKit::WebPageProxy::imageOrMediaDocumentSizeChanged):
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
(WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::useFixedLayoutDidChange):
(WebKit::WebPageProxy::fixedLayoutSizeDidChange):

  • UIProcess/WebPageProxy.messages.in:

The WKWebView and PageClient implementations of this function were actually
not being used, so this patch removes them and just keeps the UIClient stuff.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Deleted.

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Deleted.

More re-naming.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::imageOrMediaDocumentSizeChanged):
(WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::imageOrMediaDocumentSizeChanged):
(WebKit::WebPage::mediaDocumentNaturalSizeChanged): Deleted.

  • WebProcess/WebPage/WebPage.h:
11:43 AM Changeset in webkit [188692] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add myself as the will-change contact.

  • features.json:
11:11 AM Changeset in webkit [188691] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: console assertion when hitting breakpoint after auto-recording ends
https://bugs.webkit.org/show_bug.cgi?id=148225

Reviewed by Timothy Hatcher.

Add checks for the precondition to starting/stopping time updates.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):

10:47 AM Changeset in webkit [188690] by Chris Dumez
  • 4 edits
    2 adds in trunk

[Cocoa] Treat Epoch as invalid value for "Last-Modified" header
https://bugs.webkit.org/show_bug.cgi?id=148162
rdar://problem/22330837

Reviewed by Antti Koivisto.

Source/WebCore:

Ignore "Last-Modified" header when computing heuristic freshness if it
is Epoch. CFNetwork currently converts a malformed date for Last-Modified
into Epoch so there is no way for us to distinguish Epoch from invalid
input. Without this, we would end up with cached resources that have a
giant lifetime (> 4 years) due to a malformed HTTP header.

Some Websites (e.g. www.popehat.com) also wrongly return Epoch as
Last-Modified value and we would end up caching it overly aggressively.
Now that we consider Epoch as an invalid value for Last-Modified, it will
also work around this content bug.

Test: http/tests/cache/disk-cache/disk-cache-last-modified.html

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::lastModified):

LayoutTests:

Add better layout test coverage for using the "Last-Modified" header to
compute heuristic freshness. In particular, it adds coverage for the
following values: Epoch, malformed date.

  • http/tests/cache/disk-cache/disk-cache-last-modified-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-last-modified.html: Added.

New test.

  • http/tests/cache/disk-cache/resources/cache-test.js:

(makeHeaderValue):
makeHeaderValue() was not resolving 'now(-1000)' into a date. This means that the
tests using it would end up sending an invalid "Last-Modified" header which our
networking code was translating to Epoch. We now ignore Epoch as Last-Modified
value for computing heuristic freshness to not cache due to malformed headers.

10:41 AM Changeset in webkit [188689] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

A watchdog tests is failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=148228

Reviewed by Brent Fulgham.

The test just needed a little more time because Windows' timer resolution is low.
After increasing the test deadlines, the test started passing.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

10:40 AM Changeset in webkit [188688] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fixed some warnings on Windows.
https://bugs.webkit.org/show_bug.cgi?id=148224

Reviewed by Brent Fulgham.

The Windows build was complaining that function params were hiding a global variable.
Since the function params were unused, I resolved this by removing the param names.

  • API/tests/ExecutionTimeLimitTest.cpp:

(currentCPUTimeAsJSFunctionCallback):
(shouldTerminateCallback):
(cancelTerminateCallback):
(extendTerminateCallback):

9:43 AM Changeset in webkit [188687] by BJ Burg
  • 8 edits in trunk/Source

Web Inspector: add TestHarness option to tee all commands to system console
https://bugs.webkit.org/show_bug.cgi?id=148181

Reviewed by Joseph Pecoraro.

Source/WebCore:

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::unbufferedLog): Remove log prefix so output
to stderr can be diffed against expected results without processing.

Source/WebInspectorUI:

It is currently difficult to trace what's going on when a test times out
on a buildbot instance. The existing option for forcing debug logging can
still drop messages that don't make it from the inspector to the test page.

This patch adds an option which logs all TestHarness commands directly to
stderr in the Inspector instance using InspectorFrontendHost::unbufferedLog.

Clean up how existing harness logging code calls into each other. Extract
the stringifying code that is duplicated everywhere.

  • UserInterface/Test.html: Reorganize options and add new option.
  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype._resendResults):
(FrontendTestHarness):

  • UserInterface/Test/ProtocolTestHarness.js:

(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):

  • UserInterface/Test/TestHarness.js:

(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):
(TestHarness.messageAsString):
(TestHarness):

  • UserInterface/TestStub.html: Reorganize options and add new option.
8:11 AM Changeset in webkit [188686] by eric.carlson@apple.com
  • 2 edits
    1 delete in trunk/LayoutTests

Revert accidental commit of a new test that isn't ready for prime time.

Unreviewed build fix.

  • http/tests/media/video-media-document-disposition-download.html: Removed.
  • http/tests/media/resources/serve-video.php: Remove contentDisposition support.
6:55 AM Changeset in webkit [188685] by Gustavo Noronha Silva
  • 3 edits in trunk

[GTK] Auto-detection of cairo-gl fails
https://bugs.webkit.org/show_bug.cgi?id=148189

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> on 2015-08-20
Reviewed by Žan Doberšek.

  • Source/cmake/FindCairoGL.cmake: only check for components if the main package has

been found. Otherwise, if either GLX or EGL are available, cairo-gl will also be
deemed available, which might not be the case.

  • Source/cmake/OptionsGTK.cmake: fix the usage of the CAIROGL_FOUND variable.
1:00 AM Changeset in webkit [188684] by calvaris@igalia.com
  • 12 edits
    2 deletes in trunk/LayoutTests

[Streams API] Sync tests with upstream reference
https://bugs.webkit.org/show_bug.cgi?id=148078

Synced with the upstream reference tests. This means that we moved
some of ours to the reference and brought some new ones. Of course
expectations were updated accordingly.

Reviewed by Darin Adler.

  • streams/readable-stream-controller-error-expected.txt: Expectations.
  • streams/readable-stream-controller-error.html: Changed test descriptions and moved one test to the reference.
  • streams/readable-stream-gc-expected.txt: Removed.
  • streams/readable-stream-gc.html: Moved to the reference.
  • streams/readable-stream-reader-read-expected.txt: Expectations.
  • streams/readable-stream-reader-read.html: Moved a test to the reference.
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt: Expectations.
  • streams/reference-implementation/readable-stream-reader.html: Brought changes from upstream reference and

uncomented async pull source test (which had been commented since a long time ago and is working now).

  • streams/reference-implementation/readable-stream-tee.html: Brought changes from upstream reference.
  • streams/reference-implementation/readable-stream-templated-expected.txt: Expectations.
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html: Brought changes from upstream reference.
12:41 AM Changeset in webkit [188683] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove unused temporary variable
https://bugs.webkit.org/show_bug.cgi?id=148215

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-20
Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel):

Aug 19, 2015:

10:03 PM Changeset in webkit [188682] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual styles panel does not work with pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=148187

Reviewed by Timothy Hatcher.

If the inline style does not exist, such as for pseudo-elements, default to the first matched rule.

  • UserInterface/Views/VisualStyleSelectorSection.js:

(WebInspector.VisualStyleSelectorSection.prototype.update):

9:43 PM Changeset in webkit [188681] by Yusuke Suzuki
  • 21 edits
    6 copies
    3 adds in trunk/Source/JavaScriptCore

Add InternalPromise to use Promises safely in the internals
https://bugs.webkit.org/show_bug.cgi?id=148136

Reviewed by Saam Barati.

This patch implements InternalPromise.
It is completely different instance set (constructor, prototype, instance)
but it has the same feature to the Promise.

In the Promise operations, when resolving the promise with the returned promise
from the fulfill handler, we need to look up "then" method.

e.g.

var p3 = p1.then(function handler(...) {

return p2;

});

When handler is executed, we retrieve the returned p2 promise. And to resolve
the returned promise by "then" method (that is p3), we construct the chain by executing
p2.then(resolving function for p3). So if the user modify the Promise.prototype.then,
we can observe the internal operations.

By using InternalPromise, we completely hide InternalPromise.prototype from the users.
It allows JSC to use Promises internally; even if the user modify / override
the Promise.prototype.then function, it does not effect on InternalPromise.

One limitation is that the implementation need to take care not to leak the InternalPromise instance
to the user space.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/InternalPromiseConstructor.js: Added.

(internalAll.newResolveElement):
(internalAll):

  • builtins/Operations.Promise.js:

(newPromiseDeferred): Deleted.

  • builtins/PromiseConstructor.js:

(privateAll.newResolveElement): Deleted.
(privateAll): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::internalPromiseConstructor):
(JSC::JSGlobalObject::newPromiseCapabilityFunction):
(JSC::JSGlobalObject::newPromiseDeferredFunction): Deleted.

  • runtime/JSInternalPromise.cpp: Copied from Source/JavaScriptCore/runtime/JSPromisePrototype.h.

(JSC::JSInternalPromise::create):
(JSC::JSInternalPromise::createStructure):
(JSC::JSInternalPromise::JSInternalPromise):

  • runtime/JSInternalPromise.h: Copied from Source/JavaScriptCore/runtime/JSPromise.h.
  • runtime/JSInternalPromiseConstructor.cpp: Added.

(JSC::JSInternalPromiseConstructor::create):
(JSC::JSInternalPromiseConstructor::createStructure):
(JSC::JSInternalPromiseConstructor::JSInternalPromiseConstructor):
(JSC::constructPromise):
(JSC::JSInternalPromiseConstructor::getConstructData):
(JSC::JSInternalPromiseConstructor::getCallData):
(JSC::JSInternalPromiseConstructor::getOwnPropertySlot):

  • runtime/JSInternalPromiseConstructor.h: Copied from Source/JavaScriptCore/runtime/JSPromiseConstructor.h.
  • runtime/JSInternalPromiseDeferred.cpp: Added.

(JSC::JSInternalPromiseDeferred::create):
(JSC::JSInternalPromiseDeferred::JSInternalPromiseDeferred):
(JSC::JSInternalPromiseDeferred::promise):

  • runtime/JSInternalPromiseDeferred.h: Copied from Source/JavaScriptCore/runtime/JSPromisePrototype.h.
  • runtime/JSInternalPromisePrototype.cpp: Copied from Source/JavaScriptCore/runtime/JSPromisePrototype.cpp.

(JSC::JSInternalPromisePrototype::create):
(JSC::JSInternalPromisePrototype::createStructure):
(JSC::JSInternalPromisePrototype::JSInternalPromisePrototype):

  • runtime/JSInternalPromisePrototype.h: Copied from Source/JavaScriptCore/runtime/JSPromise.h.
  • runtime/JSPromise.cpp:

(JSC::JSPromise::create):
(JSC::JSPromise::JSPromise):
(JSC::JSPromise::initialize):

  • runtime/JSPromise.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::JSPromiseConstructor):
(JSC::constructPromise):
(JSC::JSPromiseConstructor::getOwnPropertySlot):
(JSC::JSPromiseConstructor::finishCreation): Deleted.

  • runtime/JSPromiseConstructor.h:
  • runtime/JSPromiseDeferred.cpp:

(JSC::newPromiseCapability):
(JSC::JSPromiseDeferred::create):
(JSC::JSPromiseDeferred::JSPromiseDeferred):

  • runtime/JSPromiseDeferred.h:
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::getOwnPropertySlot):

  • runtime/JSPromisePrototype.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
9:38 PM Changeset in webkit [188680] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit/win

[Win] Build fix after r188662.

  • Interfaces/IWebViewPrivate.idl:
  • WebView.cpp:

(WebView::removeAllUserContentFromGroup):
(WebView::invalidateBackingStore):
Making the RECT* optional was a change that caused a compiler error or warning.
It looks like it was a mistake in r188662.

9:09 PM Changeset in webkit [188679] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMTree leaks on main resource changes
https://bugs.webkit.org/show_bug.cgi?id=148158

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Timothy Hatcher.

  • UserInterface/Models/DOMTree.js:

(WebInspector.DOMTree.prototype.disconnect):
Add a way to disconnect the DOMTree and allow it to get garbage collected.

(WebInspector.DOMTree.prototype.invalidate.performInvalidate):
(WebInspector.DOMTree.prototype.invalidate):
(WebInspector.DOMTree.prototype._requestRootDOMNode):
(WebInspector.DOMTree.prototype._framePageExecutionContextChanged):
Remove some uses of the delete operator.

  • UserInterface/Models/Frame.js:

(WebInspector.Frame.prototype.removeChildFrame):
(WebInspector.Frame.prototype.removeAllChildFrames):
(WebInspector.Frame.prototype._detachFromParentFrame):
When a frame gets removed from its parent, disconnect its DOMTree.

7:43 PM WebKitIDL edited by Chris Dumez
Document support for [OverrideBuiltins] (diff)
7:38 PM Changeset in webkit [188678] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: The first style in the Rules panel for pseudo-elements needs padding
https://bugs.webkit.org/show_bug.cgi?id=148207

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules .label:first-child):
If the first element in the Rules panel is a label, add some top padding.

7:34 PM Changeset in webkit [188677] by fpizlo@apple.com
  • 9 edits
    1 delete in trunk/Source

Remove WTF::SpinLock
https://bugs.webkit.org/show_bug.cgi?id=148208

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Remove the one remaining use of SpinLock.

  • API/JSValue.mm:

(handerForStructTag):

Source/WTF:

Remove the SpinLock.h file and remove references to the SpinLock class. Put the old SpinLock
algorithm in LockSpeedTest.cpp - which isn't compiled as part of a WTF or WebKit build - just
so we can still benchmark our locking algorithms against a spinlock baseline.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CMakeLists.txt:
  • wtf/Lock.h:
  • wtf/SpinLock.h: Removed.
  • wtf/WordLock.h:
7:15 PM Changeset in webkit [188676] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Committing a valid selector in the styles sidebar replaces the new selector with the old one
https://bugs.webkit.org/show_bug.cgi?id=148206

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype._markSelector):
No longer unnecessarily refreshes the section if the selector is valid.

6:18 PM Changeset in webkit [188675] by ggaren@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

clearCode() should clear code
https://bugs.webkit.org/show_bug.cgi?id=148203

Reviewed by Saam Barati.

Clearing code used to require two steps: clearCode() and
clearUnlinkedCodeForRecompilation(). Unsurprisingly, clients sometimes
did one or the other or both without much rhyme or reason.

This patch simplifies things by merging both functions into clearCode().

  • bytecode/UnlinkedFunctionExecutable.h:
  • debugger/Debugger.cpp:
  • heap/Heap.cpp:

(JSC::Heap::deleteAllCompiledCode):
(JSC::Heap::clearUnmarkedExecutables):
(JSC::Heap::deleteAllUnlinkedFunctionCode): Deleted. No need for this
function anymore since it was only used by clients who already called
clearCode() (and it would be terribly wrong to use without doing both.)

  • heap/Heap.h:

(JSC::Heap::sizeAfterLastFullCollection):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::TypeRecompiler::visit):
(Inspector::TypeRecompiler::operator()):

  • runtime/Executable.cpp:

(JSC::FunctionExecutable::visitChildren):
(JSC::FunctionExecutable::clearCode):
(JSC::FunctionExecutable::clearUnlinkedCodeForRecompilation): Deleted.

  • runtime/Executable.h:
  • runtime/VM.cpp:

(JSC::VM::deleteAllCode):

5:59 PM Changeset in webkit [188674] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix after r188663.

The new bindings file was added to the Visual Studio project, but was marked to not
be built. It should have also been added to the "JSBindingsAllInOne.cpp" file so
that the new code gets compiled.

  • bindings/js/JSBindingsAllInOne.cpp:
5:56 PM Changeset in webkit [188673] by achristensen@apple.com
  • 25 edits in trunk

CMake Windows build should not include files directly from other Source directories
https://bugs.webkit.org/show_bug.cgi?id=148198

Reviewed by Brent Fulgham.

.:

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt:

JavaScriptCore_FORWARDING_HEADERS_FILES is no longer necessary because all the headers
that used to be in it are now in JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:

Source/WebKit:

  • CMakeLists.txt:
  • PlatformWin.cmake:

Source/WebKit/win:

  • WebKitPrefix.h:

Include cmakeconfig.h to properly define all enabled features.

Source/WTF:

  • wtf/CMakeLists.txt:
  • wtf/PlatformWin.cmake:

Tools:

  • DumpRenderTree/DumpRenderTreePrefix.h:

Include cmakeconfig.h to properly define all enabled features.

  • DumpRenderTree/PlatformWin.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
5:55 PM Changeset in webkit [188672] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Select validation does not correctly work when handling change event
https://bugs.webkit.org/show_bug.cgi?id=145869

Reviewed by Dean Jackson.

Source/WebCore:

When selecting an option in a <select> with validation that also has an onchange listener, calling
checkValidity() for the select within the onchange handler would produce incorrect results and (on
a debug build) crash at an assertion. This is because the change events were being dispatched before
form validity was updated. Making the validation step come before the change event dispatch fixes
this issue.

Test: fast/forms/onchange-select-check-validity.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::selectOption): Update validity before dispatching change events.

LayoutTests:

Tests that checkValidity() returns correct results from within the onchange handler of a
<select> when the validity of the selected option changes.

  • fast/forms/onchange-select-check-validity-expected.txt: Added.
  • fast/forms/onchange-select-check-validity.html: Added.
5:37 PM Changeset in webkit [188671] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning

5:37 PM Changeset in webkit [188670] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exceptions regarding PseudoElements / TemplateContent
https://bugs.webkit.org/show_bug.cgi?id=148190

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Brian Burg.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._unbind):
Iterate over the values in the map, not the iterator pairs.

  • UserInterface/Models/DOMNode.js:

When removing a pseudo element, don't assume this._children
exists, it may be null. So separate the two paths.

5:36 PM Changeset in webkit [188669] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.53

New Tag.

5:34 PM Changeset in webkit [188668] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning

5:27 PM Changeset in webkit [188667] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: long selectors in the visual editor sidebar can overflow
https://bugs.webkit.org/show_bug.cgi?id=148185

Reviewed by Timothy Hatcher.

Selectors in the Visual editor sidebar are now clipped and use ellipses.

  • UserInterface/Views/VisualStyleSelectorSection.css:

(.details-section.visual-style-selector-section > .header > .current-selector):
(.details-section.visual-style-selector-section:not(.collapsed) > .content):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles):
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles > .title): Deleted.

  • UserInterface/Views/VisualStyleSelectorTreeItem.css:

(.item.visual-style-selector-item):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):

5:27 PM Changeset in webkit [188666] by commit-queue@webkit.org
  • 5 edits in trunk

GraphicsContext3D::activeTexture should not be called with zero-based index
https://bugs.webkit.org/show_bug.cgi?id=148020

Patch by Jinyoung Hur <hur.ims@navercorp.com> on 2015-08-19
Reviewed by Alex Christensen.

Source/WebCore:

GraphicsContext3D::activeTexture should be called with an argument that is greater than or equal to
GraphicsContext3D::TEXTURE0.

Test: fast/canvas/webgl/texture-complete.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::checkTextureCompleteness):

LayoutTests:

Insert WebGLRenderingContext.activeTexture call during the texture complete test to verify
a meaningless change of the active texture doesn't make any gl errors.

  • fast/canvas/webgl/texture-complete.html:
5:23 PM Changeset in webkit [188665] by commit-queue@webkit.org
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Include Legacy Inspector JSON for iOS 9
https://bugs.webkit.org/show_bug.cgi?id=148200

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Timothy Hatcher.

  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-9.0.json: Added.
5:14 PM Changeset in webkit [188664] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update Copyright in minified / combined output
https://bugs.webkit.org/show_bug.cgi?id=148201

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Timothy Hatcher.

  • Scripts/copy-user-interface-resources.pl:

Include copyright comments from missing 2014 and 2015 contributors
in the comment in the minified / combined Main.js.

5:06 PM Changeset in webkit [188663] by Chris Dumez
  • 41 edits
    1 add in trunk/Source/WebCore

Avoid double hash lookup in our JS bindings named property getter code
https://bugs.webkit.org/show_bug.cgi?id=148193

Reviewed by Geoffrey Garen.

Avoid double hash lookup in our JS bindings named property getter code
for performance reasons.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new file.

  • bindings/js/JSDOMNamedFlowCollectionCustom.cpp: Added.

(WebCore::JSDOMNamedFlowCollection::nameGetter):
Moved custom named getter code for DOMNamedFlowCollection from the
bindings generator to an actual custom bindings file.

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

Rebaseline bindings tests.

5:00 PM Changeset in webkit [188662] by Brent Fulgham
  • 135 edits in trunk/Source/WebKit

[Win] Replace MIDL [in/out] comments with equivalent SAL
https://bugs.webkit.org/show_bug.cgi?id=148001

Reviewed by Tim Horton.

../..:

  • WebKit.vcxproj/Interfaces/InterfacesCommon.props: Turn

on SAL declarations in MIDL output.

../../win:

Change the many "/*[in]*/" and "/*[out]*/" comments in the
Windows interface code to use the equivalent SAL macros. This
will allow MSVC static analysis to actually enforce that these
semantics are being honored, and provide better compile-time
support for avoiding API misuse.

While making these changes, I also corrected a number of bad
style issues in the Windows code:

  • Use 'nullptr' instead of 0
  • Check for null input pointers instead of blindly dereferencing

them.

  • Enforce the null-on-error behavior expected on COM interfaces.
  • AccessibleBase.cpp:

(AccessibleBase::AccessibleBase):
(AccessibleBase::createInstance):
(AccessibleBase::QueryService):
(AccessibleBase::QueryInterface):
(AccessibleBase::Release):
(AccessibleBase::get_attribute):
(AccessibleBase::get_accessibleWithCaret):
(AccessibleBase::get_relationTargetsOfType):
(AccessibleBase::get_nRelations):
(AccessibleBase::get_relation):
(AccessibleBase::get_relations):
(AccessibleBase::role):
(AccessibleBase::scrollToPoint):
(AccessibleBase::get_groupPosition):
(AccessibleBase::get_states):
(AccessibleBase::get_extendedRole):
(AccessibleBase::get_localizedExtendedRole):
(AccessibleBase::get_nExtendedStates):
(AccessibleBase::get_extendedStates):
(AccessibleBase::get_localizedExtendedStates):
(AccessibleBase::get_uniqueID):
(AccessibleBase::get_windowHandle):
(AccessibleBase::get_indexInParent):
(AccessibleBase::get_locale):
(AccessibleBase::get_attributes):
(AccessibleBase::get_accParent):
(AccessibleBase::get_accChildCount):
(AccessibleBase::get_accChild):
(AccessibleBase::get_accName):
(AccessibleBase::get_accValue):
(AccessibleBase::get_accDescription):
(AccessibleBase::get_accRole):
(AccessibleBase::state):
(AccessibleBase::get_accState):
(AccessibleBase::get_accHelp):
(AccessibleBase::get_accKeyboardShortcut):
(AccessibleBase::accSelect):
(AccessibleBase::get_accSelection):
(AccessibleBase::get_accFocus):
(AccessibleBase::get_accDefaultAction):
(AccessibleBase::accLocation):
(AccessibleBase::accNavigate):
(AccessibleBase::accHitTest):
(AccessibleBase::accDoDefaultAction):
(AccessibleBase::wrapper):
(AccessibleBase::isSameObject):

  • AccessibleBase.h:
  • AccessibleTextImpl.cpp:

(AccessibleText::get_attributes):
(AccessibleText::QueryInterface):

  • AccessibleTextImpl.h:

(AccessibleText::AddRef):

  • CFDictionaryPropertyBag.cpp:

(CFDictionaryPropertyBag::CFDictionaryPropertyBag):
(CFDictionaryPropertyBag::QueryInterface):
(CFDictionaryPropertyBag::AddRef):
(CFDictionaryPropertyBag::Read):
(CFDictionaryPropertyBag::Write):

  • CFDictionaryPropertyBag.h:
  • COMEnumVariant.h:

(COMEnumVariant::COMEnumVariant):
(COMEnumVariant::~COMEnumVariant):
(COMEnumVariant<ContainerType>::QueryInterface):
(COMEnumVariant<ContainerType>::Reset):
(COMEnumVariant<ContainerType>::Clone):

  • COMPropertyBag.h:

(COMPropertyBag::COMPropertyBag):
(COMPropertyBag::~COMPropertyBag):
(HashType>::QueryInterface):
(HashType>::Read):
(HashType>::Write):
(HashType>::CountProperties):
(HashType>::GetPropertyInfo):
(HashType>::LoadObject):

  • DOMCSSClasses.cpp:

(DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
(DOMCSSStyleDeclaration::createInstance):
(DOMCSSStyleDeclaration::QueryInterface):
(DOMCSSStyleDeclaration::cssText):
(DOMCSSStyleDeclaration::setCssText):
(DOMCSSStyleDeclaration::getPropertyValue):
(DOMCSSStyleDeclaration::getPropertyCSSValue):
(DOMCSSStyleDeclaration::removeProperty):
(DOMCSSStyleDeclaration::getPropertyPriority):
(DOMCSSStyleDeclaration::setProperty):
(DOMCSSStyleDeclaration::length):
(DOMCSSStyleDeclaration::item):
(DOMCSSStyleDeclaration::parentRule):

  • DOMCSSClasses.h:

(DOMCSSStyleDeclaration::AddRef):
(DOMCSSStyleDeclaration::Release):
(DOMCSSStyleDeclaration::throwException):
(DOMCSSStyleDeclaration::callWebScriptMethod):
(DOMCSSStyleDeclaration::evaluateWebScript):
(DOMCSSStyleDeclaration::removeWebScriptKey):
(DOMCSSStyleDeclaration::stringRepresentation):
(DOMCSSStyleDeclaration::webScriptValueAtIndex):
(DOMCSSStyleDeclaration::setWebScriptValueAtIndex):
(DOMCSSStyleDeclaration::setException):

  • DOMCoreClasses.cpp:

(DOMObject::QueryInterface):
(DOMNode::QueryInterface):
(DOMNode::nodeName):
(DOMNode::nodeValue):
(DOMNode::setNodeValue):
(DOMNode::nodeType):
(DOMNode::parentNode):
(DOMNode::childNodes):
(DOMNode::firstChild):
(DOMNode::lastChild):
(DOMNode::previousSibling):
(DOMNode::nextSibling):
(DOMNode::attributes):
(DOMNode::ownerDocument):
(DOMNode::insertBefore):
(DOMNode::replaceChild):
(DOMNode::removeChild):
(DOMNode::appendChild):
(DOMNode::hasChildNodes):
(DOMNode::cloneNode):
(DOMNode::normalize):
(DOMNode::isSupported):
(DOMNode::namespaceURI):
(DOMNode::prefix):
(DOMNode::setPrefix):
(DOMNode::localName):
(DOMNode::hasAttributes):
(DOMNode::isSameNode):
(DOMNode::isEqualNode):
(DOMNode::textContent):
(DOMNode::setTextContent):
(DOMNode::addEventListener):
(DOMNode::removeEventListener):
(DOMNode::dispatchEvent):
(DOMNode::DOMNode):
(DOMNode::createInstance):
(DOMNodeList::QueryInterface):
(DOMNodeList::item):
(DOMNodeList::length):
(DOMNodeList::DOMNodeList):
(DOMNodeList::createInstance):
(DOMDocument::QueryInterface):
(DOMDocument::doctype):
(DOMDocument::implementation):
(DOMDocument::documentElement):
(DOMDocument::createElement):
(DOMDocument::createDocumentFragment):
(DOMDocument::createTextNode):
(DOMDocument::createComment):
(DOMDocument::createCDATASection):
(DOMDocument::createProcessingInstruction):
(DOMDocument::createAttribute):
(DOMDocument::createEntityReference):
(DOMDocument::getElementsByTagName):
(DOMDocument::importNode):
(DOMDocument::createElementNS):
(DOMDocument::createAttributeNS):
(DOMDocument::getElementsByTagNameNS):
(DOMDocument::getElementById):
(DOMDocument::getComputedStyle):
(DOMDocument::createEvent):
(DOMDocument::DOMDocument):
(DOMDocument::createInstance):
(DOMWindow::QueryInterface):
(DOMWindow::document):
(DOMWindow::getComputedStyle):
(DOMWindow::getMatchedCSSRules):
(DOMWindow::devicePixelRatio):
(DOMWindow::addEventListener):
(DOMWindow::removeEventListener):
(DOMWindow::dispatchEvent):
(DOMWindow::DOMWindow):
(DOMWindow::createInstance):
(DOMElement::QueryInterface):
(DOMElement::boundingBox):
(DOMElement::lineBoxRects):
(DOMElement::tagName):
(DOMElement::getAttribute):
(DOMElement::setAttribute):
(DOMElement::removeAttribute):
(DOMElement::getAttributeNode):
(DOMElement::setAttributeNode):
(DOMElement::removeAttributeNode):
(DOMElement::getElementsByTagName):
(DOMElement::getAttributeNS):
(DOMElement::setAttributeNS):
(DOMElement::removeAttributeNS):
(DOMElement::getAttributeNodeNS):
(DOMElement::setAttributeNodeNS):
(DOMElement::getElementsByTagNameNS):
(DOMElement::hasAttribute):
(DOMElement::hasAttributeNS):
(DOMElement::focus):
(DOMElement::blur):
(DOMElement::coreElement):
(DOMElement::isEqual):
(DOMElement::isFocused):
(DOMElement::innerText):
(DOMElement::font):
(DOMElement::renderedImage):
(DOMElement::markerTextForListItem):
(DOMElement::shadowPseudoId):
(DOMElement::style):
(DOMElement::offsetLeft):
(DOMElement::offsetTop):
(DOMElement::offsetWidth):
(DOMElement::offsetHeight):
(DOMElement::offsetParent):
(DOMElement::clientWidth):
(DOMElement::clientHeight):
(DOMElement::scrollLeft):
(DOMElement::setScrollLeft):
(DOMElement::scrollTop):
(DOMElement::setScrollTop):
(DOMElement::scrollWidth):
(DOMElement::scrollHeight):
(DOMElement::scrollIntoView):
(DOMElement::scrollIntoViewIfNeeded):
(DOMElement::DOMElement):
(DOMElement::createInstance):
(DOMRange::QueryInterface):
(DOMRange::createInstance):
(DOMRange::startContainer):
(DOMRange::startOffset):
(DOMRange::endContainer):
(DOMRange::endOffset):
(DOMRange::collapsed):
(DOMRange::commonAncestorContainer):
(DOMRange::setStart):
(DOMRange::setEnd):
(DOMRange::setStartBefore):
(DOMRange::setStartAfter):
(DOMRange::setEndBefore):
(DOMRange::setEndAfter):
(DOMRange::collapse):
(DOMRange::selectNode):
(DOMRange::selectNodeContents):
(DOMRange::compareBoundaryPoints):
(DOMRange::deleteContents):
(DOMRange::extractContents):
(DOMRange::cloneContents):
(DOMRange::insertNode):
(DOMRange::surroundContents):
(DOMRange::cloneRange):
(DOMRange::toString):
(DOMRange::detach):

  • DOMCoreClasses.h:

(DOMObject::AddRef):
(DOMObject::Release):
(DOMObject::throwException):
(DOMObject::callWebScriptMethod):
(DOMObject::evaluateWebScript):
(DOMObject::removeWebScriptKey):
(DOMObject::stringRepresentation):
(DOMObject::webScriptValueAtIndex):
(DOMObject::setWebScriptValueAtIndex):
(DOMObject::setException):
(DOMNodeList::AddRef):
(DOMNodeList::Release):
(DOMNodeList::throwException):
(DOMNodeList::callWebScriptMethod):
(DOMNodeList::evaluateWebScript):
(DOMNodeList::removeWebScriptKey):
(DOMNodeList::stringRepresentation):
(DOMNodeList::webScriptValueAtIndex):
(DOMNodeList::setWebScriptValueAtIndex):
(DOMNodeList::setException):
(DOMDocument::AddRef):
(DOMDocument::Release):
(DOMDocument::throwException):
(DOMDocument::callWebScriptMethod):
(DOMDocument::evaluateWebScript):
(DOMDocument::removeWebScriptKey):
(DOMDocument::stringRepresentation):
(DOMDocument::webScriptValueAtIndex):
(DOMDocument::setWebScriptValueAtIndex):
(DOMDocument::setException):
(DOMDocument::nodeName):
(DOMDocument::nodeValue):
(DOMDocument::setNodeValue):
(DOMDocument::nodeType):
(DOMDocument::parentNode):
(DOMDocument::childNodes):
(DOMDocument::firstChild):
(DOMDocument::lastChild):
(DOMDocument::previousSibling):
(DOMDocument::nextSibling):
(DOMDocument::attributes):
(DOMDocument::ownerDocument):
(DOMDocument::insertBefore):
(DOMDocument::replaceChild):
(DOMDocument::removeChild):
(DOMDocument::appendChild):
(DOMDocument::hasChildNodes):
(DOMDocument::cloneNode):
(DOMDocument::normalize):
(DOMDocument::isSupported):
(DOMDocument::namespaceURI):
(DOMDocument::prefix):
(DOMDocument::setPrefix):
(DOMDocument::localName):
(DOMDocument::hasAttributes):
(DOMDocument::isSameNode):
(DOMDocument::isEqualNode):
(DOMDocument::textContent):
(DOMDocument::setTextContent):
(DOMDocument::document):
(DOMWindow::AddRef):
(DOMWindow::Release):
(DOMWindow::throwException):
(DOMWindow::callWebScriptMethod):
(DOMWindow::evaluateWebScript):
(DOMWindow::removeWebScriptKey):
(DOMWindow::stringRepresentation):
(DOMWindow::webScriptValueAtIndex):
(DOMWindow::setWebScriptValueAtIndex):
(DOMWindow::setException):
(DOMWindow::window):
(DOMElement::AddRef):
(DOMElement::Release):
(DOMElement::throwException):
(DOMElement::callWebScriptMethod):
(DOMElement::evaluateWebScript):
(DOMElement::removeWebScriptKey):
(DOMElement::stringRepresentation):
(DOMElement::webScriptValueAtIndex):
(DOMElement::setWebScriptValueAtIndex):
(DOMElement::setException):
(DOMElement::nodeName):
(DOMElement::nodeValue):
(DOMElement::setNodeValue):
(DOMElement::nodeType):
(DOMElement::parentNode):
(DOMElement::childNodes):
(DOMElement::firstChild):
(DOMElement::lastChild):
(DOMElement::previousSibling):
(DOMElement::nextSibling):
(DOMElement::attributes):
(DOMElement::ownerDocument):
(DOMElement::insertBefore):
(DOMElement::replaceChild):
(DOMElement::removeChild):
(DOMElement::appendChild):
(DOMElement::hasChildNodes):
(DOMElement::cloneNode):
(DOMElement::normalize):
(DOMElement::isSupported):
(DOMElement::namespaceURI):
(DOMElement::prefix):
(DOMElement::setPrefix):
(DOMElement::localName):
(DOMElement::hasAttributes):
(DOMElement::isSameNode):
(DOMElement::isEqualNode):
(DOMElement::textContent):
(DOMElement::setTextContent):
(DOMElement::element):
(DOMRange::AddRef):
(DOMRange::Release):
(DOMRange::throwException):
(DOMRange::callWebScriptMethod):
(DOMRange::evaluateWebScript):
(DOMRange::removeWebScriptKey):
(DOMRange::stringRepresentation):
(DOMRange::webScriptValueAtIndex):
(DOMRange::setWebScriptValueAtIndex):
(DOMRange::setException):

  • DOMEventsClasses.cpp:

(DOMEventListener::QueryInterface):
(DOMEventListener::handleEvent):
(DOMEvent::DOMEvent):
(DOMEvent::createInstance):
(DOMEvent::QueryInterface):
(DOMEvent::type):
(DOMEvent::target):
(DOMEvent::currentTarget):
(DOMEvent::eventPhase):
(DOMEvent::bubbles):
(DOMEvent::cancelable):
(DOMEvent::timeStamp):
(DOMEvent::stopPropagation):
(DOMEvent::preventDefault):
(DOMEvent::initEvent):
(DOMUIEvent::QueryInterface):
(DOMUIEvent::view):
(DOMUIEvent::detail):
(DOMUIEvent::initUIEvent):
(DOMUIEvent::keyCode):
(DOMUIEvent::charCode):
(DOMUIEvent::unused1):
(DOMUIEvent::unused2):
(DOMUIEvent::pageX):
(DOMUIEvent::pageY):
(DOMUIEvent::which):
(DOMKeyboardEvent::QueryInterface):
(DOMKeyboardEvent::keyIdentifier):
(DOMKeyboardEvent::location):
(DOMKeyboardEvent::keyLocation):
(DOMKeyboardEvent::ctrlKey):
(DOMKeyboardEvent::shiftKey):
(DOMKeyboardEvent::altKey):
(DOMKeyboardEvent::metaKey):
(DOMKeyboardEvent::altGraphKey):
(DOMKeyboardEvent::getModifierState):
(DOMKeyboardEvent::initKeyboardEvent):
(DOMMouseEvent::QueryInterface):
(DOMMouseEvent::screenX):
(DOMMouseEvent::screenY):
(DOMMouseEvent::clientX):
(DOMMouseEvent::clientY):
(DOMMouseEvent::ctrlKey):
(DOMMouseEvent::shiftKey):
(DOMMouseEvent::altKey):
(DOMMouseEvent::metaKey):
(DOMMouseEvent::button):
(DOMMouseEvent::relatedTarget):
(DOMMouseEvent::initMouseEvent):
(DOMMouseEvent::offsetX):
(DOMMouseEvent::offsetY):
(DOMMouseEvent::x):
(DOMMouseEvent::y):
(DOMMouseEvent::fromElement):
(DOMMouseEvent::toElement):
(DOMMutationEvent::QueryInterface):
(DOMMutationEvent::relatedNode):
(DOMMutationEvent::prevValue):
(DOMMutationEvent::newValue):
(DOMMutationEvent::attrName):
(DOMMutationEvent::attrChange):
(DOMMutationEvent::initMutationEvent):
(DOMOverflowEvent::QueryInterface):
(DOMOverflowEvent::orient):
(DOMOverflowEvent::horizontalOverflow):
(DOMOverflowEvent::verticalOverflow):
(DOMWheelEvent::QueryInterface):
(DOMWheelEvent::screenX):
(DOMWheelEvent::screenY):
(DOMWheelEvent::clientX):
(DOMWheelEvent::clientY):
(DOMWheelEvent::ctrlKey):
(DOMWheelEvent::shiftKey):
(DOMWheelEvent::altKey):
(DOMWheelEvent::metaKey):
(DOMWheelEvent::wheelDelta):
(DOMWheelEvent::wheelDeltaX):
(DOMWheelEvent::wheelDeltaY):
(DOMWheelEvent::offsetX):
(DOMWheelEvent::offsetY):
(DOMWheelEvent::x):
(DOMWheelEvent::y):
(DOMWheelEvent::isHorizontal):
(DOMWheelEvent::initWheelEvent):

  • DOMEventsClasses.h:

(DOMEventListener::AddRef):
(DOMEventListener::Release):
(DOMEventListener::throwException):
(DOMEventListener::callWebScriptMethod):
(DOMEventListener::evaluateWebScript):
(DOMEventListener::removeWebScriptKey):
(DOMEventListener::stringRepresentation):
(DOMEventListener::webScriptValueAtIndex):
(DOMEventListener::setWebScriptValueAtIndex):
(DOMEventListener::setException):
(DOMEvent::AddRef):
(DOMEvent::Release):
(DOMEvent::throwException):
(DOMEvent::callWebScriptMethod):
(DOMEvent::evaluateWebScript):
(DOMEvent::removeWebScriptKey):
(DOMEvent::stringRepresentation):
(DOMEvent::webScriptValueAtIndex):
(DOMEvent::setWebScriptValueAtIndex):
(DOMEvent::setException):
(DOMEvent::coreEvent):
(DOMUIEvent::DOMUIEvent):
(DOMUIEvent::AddRef):
(DOMUIEvent::Release):
(DOMUIEvent::throwException):
(DOMUIEvent::callWebScriptMethod):
(DOMUIEvent::evaluateWebScript):
(DOMUIEvent::removeWebScriptKey):
(DOMUIEvent::stringRepresentation):
(DOMUIEvent::webScriptValueAtIndex):
(DOMUIEvent::setWebScriptValueAtIndex):
(DOMUIEvent::setException):
(DOMUIEvent::type):
(DOMUIEvent::target):
(DOMUIEvent::currentTarget):
(DOMUIEvent::eventPhase):
(DOMUIEvent::bubbles):
(DOMUIEvent::cancelable):
(DOMUIEvent::timeStamp):
(DOMUIEvent::stopPropagation):
(DOMUIEvent::preventDefault):
(DOMUIEvent::initEvent):
(DOMKeyboardEvent::DOMKeyboardEvent):
(DOMKeyboardEvent::AddRef):
(DOMKeyboardEvent::Release):
(DOMKeyboardEvent::throwException):
(DOMKeyboardEvent::callWebScriptMethod):
(DOMKeyboardEvent::evaluateWebScript):
(DOMKeyboardEvent::removeWebScriptKey):
(DOMKeyboardEvent::stringRepresentation):
(DOMKeyboardEvent::webScriptValueAtIndex):
(DOMKeyboardEvent::setWebScriptValueAtIndex):
(DOMKeyboardEvent::setException):
(DOMKeyboardEvent::type):
(DOMKeyboardEvent::target):
(DOMKeyboardEvent::currentTarget):
(DOMKeyboardEvent::eventPhase):
(DOMKeyboardEvent::bubbles):
(DOMKeyboardEvent::cancelable):
(DOMKeyboardEvent::timeStamp):
(DOMKeyboardEvent::stopPropagation):
(DOMKeyboardEvent::preventDefault):
(DOMKeyboardEvent::initEvent):
(DOMKeyboardEvent::view):
(DOMKeyboardEvent::detail):
(DOMKeyboardEvent::initUIEvent):
(DOMKeyboardEvent::keyCode):
(DOMKeyboardEvent::charCode):
(DOMKeyboardEvent::unused1):
(DOMKeyboardEvent::unused2):
(DOMKeyboardEvent::pageX):
(DOMKeyboardEvent::pageY):
(DOMKeyboardEvent::which):
(DOMMouseEvent::DOMMouseEvent):
(DOMMouseEvent::AddRef):
(DOMMouseEvent::Release):
(DOMMouseEvent::throwException):
(DOMMouseEvent::callWebScriptMethod):
(DOMMouseEvent::evaluateWebScript):
(DOMMouseEvent::removeWebScriptKey):
(DOMMouseEvent::stringRepresentation):
(DOMMouseEvent::webScriptValueAtIndex):
(DOMMouseEvent::setWebScriptValueAtIndex):
(DOMMouseEvent::setException):
(DOMMouseEvent::type):
(DOMMouseEvent::target):
(DOMMouseEvent::currentTarget):
(DOMMouseEvent::eventPhase):
(DOMMouseEvent::bubbles):
(DOMMouseEvent::cancelable):
(DOMMouseEvent::timeStamp):
(DOMMouseEvent::stopPropagation):
(DOMMouseEvent::preventDefault):
(DOMMouseEvent::initEvent):
(DOMMouseEvent::view):
(DOMMouseEvent::detail):
(DOMMouseEvent::initUIEvent):
(DOMMouseEvent::keyCode):
(DOMMouseEvent::charCode):
(DOMMouseEvent::unused1):
(DOMMouseEvent::unused2):
(DOMMouseEvent::pageX):
(DOMMouseEvent::pageY):
(DOMMouseEvent::which):
(DOMMutationEvent::DOMMutationEvent):
(DOMMutationEvent::AddRef):
(DOMMutationEvent::Release):
(DOMMutationEvent::throwException):
(DOMMutationEvent::callWebScriptMethod):
(DOMMutationEvent::evaluateWebScript):
(DOMMutationEvent::removeWebScriptKey):
(DOMMutationEvent::stringRepresentation):
(DOMMutationEvent::webScriptValueAtIndex):
(DOMMutationEvent::setWebScriptValueAtIndex):
(DOMMutationEvent::setException):
(DOMMutationEvent::type):
(DOMMutationEvent::target):
(DOMMutationEvent::currentTarget):
(DOMMutationEvent::eventPhase):
(DOMMutationEvent::bubbles):
(DOMMutationEvent::cancelable):
(DOMMutationEvent::timeStamp):
(DOMMutationEvent::stopPropagation):
(DOMMutationEvent::preventDefault):
(DOMMutationEvent::initEvent):
(DOMOverflowEvent::DOMOverflowEvent):
(DOMOverflowEvent::AddRef):
(DOMOverflowEvent::Release):
(DOMOverflowEvent::throwException):
(DOMOverflowEvent::callWebScriptMethod):
(DOMOverflowEvent::evaluateWebScript):
(DOMOverflowEvent::removeWebScriptKey):
(DOMOverflowEvent::stringRepresentation):
(DOMOverflowEvent::webScriptValueAtIndex):
(DOMOverflowEvent::setWebScriptValueAtIndex):
(DOMOverflowEvent::setException):
(DOMOverflowEvent::type):
(DOMOverflowEvent::target):
(DOMOverflowEvent::currentTarget):
(DOMOverflowEvent::eventPhase):
(DOMOverflowEvent::bubbles):
(DOMOverflowEvent::cancelable):
(DOMOverflowEvent::timeStamp):
(DOMOverflowEvent::stopPropagation):
(DOMOverflowEvent::preventDefault):
(DOMOverflowEvent::initEvent):
(DOMWheelEvent::DOMWheelEvent):
(DOMWheelEvent::AddRef):
(DOMWheelEvent::Release):
(DOMWheelEvent::throwException):
(DOMWheelEvent::callWebScriptMethod):
(DOMWheelEvent::evaluateWebScript):
(DOMWheelEvent::removeWebScriptKey):
(DOMWheelEvent::stringRepresentation):
(DOMWheelEvent::webScriptValueAtIndex):
(DOMWheelEvent::setWebScriptValueAtIndex):
(DOMWheelEvent::setException):
(DOMWheelEvent::type):
(DOMWheelEvent::target):
(DOMWheelEvent::currentTarget):
(DOMWheelEvent::eventPhase):
(DOMWheelEvent::bubbles):
(DOMWheelEvent::cancelable):
(DOMWheelEvent::timeStamp):
(DOMWheelEvent::stopPropagation):
(DOMWheelEvent::preventDefault):
(DOMWheelEvent::initEvent):
(DOMWheelEvent::view):
(DOMWheelEvent::detail):
(DOMWheelEvent::initUIEvent):
(DOMWheelEvent::keyCode):
(DOMWheelEvent::charCode):
(DOMWheelEvent::unused1):
(DOMWheelEvent::unused2):
(DOMWheelEvent::pageX):
(DOMWheelEvent::pageY):
(DOMWheelEvent::which):

  • DOMHTMLClasses.cpp:

(DOMHTMLCollection::QueryInterface):
(DOMHTMLCollection::length):
(DOMHTMLCollection::item):
(DOMHTMLCollection::namedItem):
(DOMHTMLOptionsCollection::QueryInterface):
(DOMHTMLOptionsCollection::createInstance):
(DOMHTMLOptionsCollection::length):
(DOMHTMLOptionsCollection::setLength):
(DOMHTMLOptionsCollection::item):
(DOMHTMLOptionsCollection::namedItem):
(DOMHTMLDocument::QueryInterface):
(DOMHTMLDocument::title):
(DOMHTMLDocument::setTitle):
(DOMHTMLDocument::referrer):
(DOMHTMLDocument::domain):
(DOMHTMLDocument::URL):
(DOMHTMLDocument::body):
(DOMHTMLDocument::setBody):
(DOMHTMLDocument::images):
(DOMHTMLDocument::applets):
(DOMHTMLDocument::links):
(DOMHTMLDocument::forms):
(DOMHTMLDocument::anchors):
(DOMHTMLDocument::cookie):
(DOMHTMLDocument::setCookie):
(DOMHTMLDocument::open):
(DOMHTMLDocument::close):
(DOMHTMLDocument::write):
(DOMHTMLDocument::writeln):
(DOMHTMLDocument::getElementById_):
(DOMHTMLDocument::getElementsByName):
(DOMHTMLElement::QueryInterface):
(DOMHTMLElement::idName):
(DOMHTMLElement::setIdName):
(DOMHTMLElement::title):
(DOMHTMLElement::setTitle):
(DOMHTMLElement::lang):
(DOMHTMLElement::setLang):
(DOMHTMLElement::dir):
(DOMHTMLElement::setDir):
(DOMHTMLElement::className):
(DOMHTMLElement::setClassName):
(DOMHTMLElement::innerHTML):
(DOMHTMLElement::setInnerHTML):
(DOMHTMLElement::innerText):
(DOMHTMLElement::setInnerText):
(DOMHTMLFormElement::QueryInterface):
(DOMHTMLFormElement::elements):
(DOMHTMLFormElement::length):
(DOMHTMLFormElement::name):
(DOMHTMLFormElement::setName):
(DOMHTMLFormElement::acceptCharset):
(DOMHTMLFormElement::setAcceptCharset):
(DOMHTMLFormElement::action):
(DOMHTMLFormElement::setAction):
(DOMHTMLFormElement::encType):
(DOMHTMLFormElement::setEnctype):
(DOMHTMLFormElement::method):
(DOMHTMLFormElement::setMethod):
(DOMHTMLFormElement::target):
(DOMHTMLFormElement::setTarget):
(DOMHTMLFormElement::submit):
(DOMHTMLFormElement::reset):
(DOMHTMLSelectElement::QueryInterface):
(DOMHTMLSelectElement::type):
(DOMHTMLSelectElement::selectedIndex):
(DOMHTMLSelectElement::setSelectedIndx):
(DOMHTMLSelectElement::value):
(DOMHTMLSelectElement::setValue):
(DOMHTMLSelectElement::length):
(DOMHTMLSelectElement::form):
(DOMHTMLSelectElement::options):
(DOMHTMLSelectElement::disabled):
(DOMHTMLSelectElement::setDisabled):
(DOMHTMLSelectElement::multiple):
(DOMHTMLSelectElement::setMultiple):
(DOMHTMLSelectElement::name):
(DOMHTMLSelectElement::setName):
(DOMHTMLSelectElement::size):
(DOMHTMLSelectElement::setSize):
(DOMHTMLSelectElement::tabIndex):
(DOMHTMLSelectElement::setTabIndex):
(DOMHTMLSelectElement::add):
(DOMHTMLSelectElement::remove):
(DOMHTMLSelectElement::activateItemAtIndex):
(DOMHTMLOptionElement::QueryInterface):
(DOMHTMLOptionElement::form):
(DOMHTMLOptionElement::defaultSelected):
(DOMHTMLOptionElement::setDefaultSelected):
(DOMHTMLOptionElement::text):
(DOMHTMLOptionElement::index):
(DOMHTMLOptionElement::disabled):
(DOMHTMLOptionElement::setDisabled):
(DOMHTMLOptionElement::label):
(DOMHTMLOptionElement::setLabel):
(DOMHTMLOptionElement::selected):
(DOMHTMLOptionElement::setSelected):
(DOMHTMLOptionElement::value):
(DOMHTMLOptionElement::setValue):
(DOMHTMLInputElement::QueryInterface):
(DOMHTMLInputElement::defaultValue):
(DOMHTMLInputElement::setDefaultValue):
(DOMHTMLInputElement::defaultChecked):
(DOMHTMLInputElement::setDefaultChecked):
(DOMHTMLInputElement::form):
(DOMHTMLInputElement::accept):
(DOMHTMLInputElement::setAccept):
(DOMHTMLInputElement::accessKey):
(DOMHTMLInputElement::setAccessKey):
(DOMHTMLInputElement::align):
(DOMHTMLInputElement::setAlign):
(DOMHTMLInputElement::alt):
(DOMHTMLInputElement::setAlt):
(DOMHTMLInputElement::checked):
(DOMHTMLInputElement::setChecked):
(DOMHTMLInputElement::disabled):
(DOMHTMLInputElement::setDisabled):
(DOMHTMLInputElement::maxLength):
(DOMHTMLInputElement::setMaxLength):
(DOMHTMLInputElement::name):
(DOMHTMLInputElement::setName):
(DOMHTMLInputElement::readOnly):
(DOMHTMLInputElement::setReadOnly):
(DOMHTMLInputElement::size):
(DOMHTMLInputElement::setSize):
(DOMHTMLInputElement::src):
(DOMHTMLInputElement::setSrc):
(DOMHTMLInputElement::tabIndex):
(DOMHTMLInputElement::setTabIndex):
(DOMHTMLInputElement::type):
(DOMHTMLInputElement::setType):
(DOMHTMLInputElement::useMap):
(DOMHTMLInputElement::setUseMap):
(DOMHTMLInputElement::value):
(DOMHTMLInputElement::setValue):
(DOMHTMLInputElement::setValueForUser):
(DOMHTMLInputElement::select):
(DOMHTMLInputElement::click):
(DOMHTMLInputElement::setSelectionStart):
(DOMHTMLInputElement::selectionStart):
(DOMHTMLInputElement::setSelectionEnd):
(DOMHTMLInputElement::selectionEnd):
(DOMHTMLInputElement::isTextField):
(DOMHTMLInputElement::rectOnScreen):
(DOMHTMLInputElement::replaceCharactersInRange):
(DOMHTMLInputElement::selectedRange):
(DOMHTMLInputElement::setAutofilled):
(DOMHTMLInputElement::isAutofilled):
(DOMHTMLInputElement::isUserEdited):
(DOMHTMLTextAreaElement::QueryInterface):
(DOMHTMLTextAreaElement::defaultValue):
(DOMHTMLTextAreaElement::setDefaultValue):
(DOMHTMLTextAreaElement::form):
(DOMHTMLTextAreaElement::accessKey):
(DOMHTMLTextAreaElement::setAccessKey):
(DOMHTMLTextAreaElement::cols):
(DOMHTMLTextAreaElement::setCols):
(DOMHTMLTextAreaElement::disabled):
(DOMHTMLTextAreaElement::setDisabled):
(DOMHTMLTextAreaElement::name):
(DOMHTMLTextAreaElement::setName):
(DOMHTMLTextAreaElement::readOnly):
(DOMHTMLTextAreaElement::setReadOnly):
(DOMHTMLTextAreaElement::rows):
(DOMHTMLTextAreaElement::setRows):
(DOMHTMLTextAreaElement::tabIndex):
(DOMHTMLTextAreaElement::setTabIndex):
(DOMHTMLTextAreaElement::type):
(DOMHTMLTextAreaElement::value):
(DOMHTMLTextAreaElement::setValue):
(DOMHTMLTextAreaElement::select):
(DOMHTMLTextAreaElement::isUserEdited):
(DOMHTMLIFrameElement::QueryInterface):
(DOMHTMLIFrameElement::contentFrame):

  • DOMHTMLClasses.h:

(DOMHTMLCollection::AddRef):
(DOMHTMLCollection::Release):
(DOMHTMLCollection::throwException):
(DOMHTMLCollection::callWebScriptMethod):
(DOMHTMLCollection::evaluateWebScript):
(DOMHTMLCollection::removeWebScriptKey):
(DOMHTMLCollection::stringRepresentation):
(DOMHTMLCollection::webScriptValueAtIndex):
(DOMHTMLCollection::setWebScriptValueAtIndex):
(DOMHTMLCollection::setException):
(DOMHTMLOptionsCollection::AddRef):
(DOMHTMLOptionsCollection::Release):
(DOMHTMLOptionsCollection::throwException):
(DOMHTMLOptionsCollection::callWebScriptMethod):
(DOMHTMLOptionsCollection::evaluateWebScript):
(DOMHTMLOptionsCollection::removeWebScriptKey):
(DOMHTMLOptionsCollection::stringRepresentation):
(DOMHTMLOptionsCollection::webScriptValueAtIndex):
(DOMHTMLOptionsCollection::setWebScriptValueAtIndex):
(DOMHTMLOptionsCollection::setException):
(DOMHTMLDocument::DOMHTMLDocument):
(DOMHTMLDocument::AddRef):
(DOMHTMLDocument::Release):
(DOMHTMLDocument::throwException):
(DOMHTMLDocument::callWebScriptMethod):
(DOMHTMLDocument::evaluateWebScript):
(DOMHTMLDocument::removeWebScriptKey):
(DOMHTMLDocument::stringRepresentation):
(DOMHTMLDocument::webScriptValueAtIndex):
(DOMHTMLDocument::setWebScriptValueAtIndex):
(DOMHTMLDocument::setException):
(DOMHTMLDocument::nodeName):
(DOMHTMLDocument::nodeValue):
(DOMHTMLDocument::setNodeValue):
(DOMHTMLDocument::nodeType):
(DOMHTMLDocument::parentNode):
(DOMHTMLDocument::childNodes):
(DOMHTMLDocument::firstChild):
(DOMHTMLDocument::lastChild):
(DOMHTMLDocument::previousSibling):
(DOMHTMLDocument::nextSibling):
(DOMHTMLDocument::attributes):
(DOMHTMLDocument::ownerDocument):
(DOMHTMLDocument::insertBefore):
(DOMHTMLDocument::replaceChild):
(DOMHTMLDocument::removeChild):
(DOMHTMLDocument::appendChild):
(DOMHTMLDocument::hasChildNodes):
(DOMHTMLDocument::cloneNode):
(DOMHTMLDocument::normalize):
(DOMHTMLDocument::isSupported):
(DOMHTMLDocument::namespaceURI):
(DOMHTMLDocument::prefix):
(DOMHTMLDocument::setPrefix):
(DOMHTMLDocument::localName):
(DOMHTMLDocument::hasAttributes):
(DOMHTMLDocument::isSameNode):
(DOMHTMLDocument::isEqualNode):
(DOMHTMLDocument::textContent):
(DOMHTMLDocument::setTextContent):
(DOMHTMLDocument::doctype):
(DOMHTMLDocument::implementation):
(DOMHTMLDocument::documentElement):
(DOMHTMLDocument::createElement):
(DOMHTMLDocument::createDocumentFragment):
(DOMHTMLDocument::createTextNode):
(DOMHTMLDocument::createComment):
(DOMHTMLDocument::createCDATASection):
(DOMHTMLDocument::createProcessingInstruction):
(DOMHTMLDocument::createAttribute):
(DOMHTMLDocument::createEntityReference):
(DOMHTMLDocument::getElementsByTagName):
(DOMHTMLDocument::importNode):
(DOMHTMLDocument::createElementNS):
(DOMHTMLDocument::createAttributeNS):
(DOMHTMLDocument::getElementsByTagNameNS):
(DOMHTMLDocument::getElementById):
(DOMHTMLElement::DOMHTMLElement):
(DOMHTMLElement::AddRef):
(DOMHTMLElement::Release):
(DOMHTMLElement::throwException):
(DOMHTMLElement::callWebScriptMethod):
(DOMHTMLElement::evaluateWebScript):
(DOMHTMLElement::removeWebScriptKey):
(DOMHTMLElement::stringRepresentation):
(DOMHTMLElement::webScriptValueAtIndex):
(DOMHTMLElement::setWebScriptValueAtIndex):
(DOMHTMLElement::setException):
(DOMHTMLElement::nodeName):
(DOMHTMLElement::nodeValue):
(DOMHTMLElement::setNodeValue):
(DOMHTMLElement::nodeType):
(DOMHTMLElement::parentNode):
(DOMHTMLElement::childNodes):
(DOMHTMLElement::firstChild):
(DOMHTMLElement::lastChild):
(DOMHTMLElement::previousSibling):
(DOMHTMLElement::nextSibling):
(DOMHTMLElement::attributes):
(DOMHTMLElement::ownerDocument):
(DOMHTMLElement::insertBefore):
(DOMHTMLElement::replaceChild):
(DOMHTMLElement::removeChild):
(DOMHTMLElement::appendChild):
(DOMHTMLElement::hasChildNodes):
(DOMHTMLElement::cloneNode):
(DOMHTMLElement::normalize):
(DOMHTMLElement::isSupported):
(DOMHTMLElement::namespaceURI):
(DOMHTMLElement::prefix):
(DOMHTMLElement::setPrefix):
(DOMHTMLElement::localName):
(DOMHTMLElement::hasAttributes):
(DOMHTMLElement::isSameNode):
(DOMHTMLElement::isEqualNode):
(DOMHTMLElement::textContent):
(DOMHTMLElement::setTextContent):
(DOMHTMLElement::tagName):
(DOMHTMLElement::getAttribute):
(DOMHTMLElement::setAttribute):
(DOMHTMLElement::removeAttribute):
(DOMHTMLElement::getAttributeNode):
(DOMHTMLElement::setAttributeNode):
(DOMHTMLElement::removeAttributeNode):
(DOMHTMLElement::getElementsByTagName):
(DOMHTMLElement::getAttributeNS):
(DOMHTMLElement::setAttributeNS):
(DOMHTMLElement::removeAttributeNS):
(DOMHTMLElement::getAttributeNodeNS):
(DOMHTMLElement::setAttributeNodeNS):
(DOMHTMLElement::getElementsByTagNameNS):
(DOMHTMLElement::hasAttribute):
(DOMHTMLElement::hasAttributeNS):
(DOMHTMLElement::focus):
(DOMHTMLElement::blur):
(DOMHTMLFormElement::DOMHTMLFormElement):
(DOMHTMLFormElement::AddRef):
(DOMHTMLFormElement::Release):
(DOMHTMLFormElement::throwException):
(DOMHTMLFormElement::callWebScriptMethod):
(DOMHTMLFormElement::evaluateWebScript):
(DOMHTMLFormElement::removeWebScriptKey):
(DOMHTMLFormElement::stringRepresentation):
(DOMHTMLFormElement::webScriptValueAtIndex):
(DOMHTMLFormElement::setWebScriptValueAtIndex):
(DOMHTMLFormElement::setException):
(DOMHTMLFormElement::nodeName):
(DOMHTMLFormElement::nodeValue):
(DOMHTMLFormElement::setNodeValue):
(DOMHTMLFormElement::nodeType):
(DOMHTMLFormElement::parentNode):
(DOMHTMLFormElement::childNodes):
(DOMHTMLFormElement::firstChild):
(DOMHTMLFormElement::lastChild):
(DOMHTMLFormElement::previousSibling):
(DOMHTMLFormElement::nextSibling):
(DOMHTMLFormElement::attributes):
(DOMHTMLFormElement::ownerDocument):
(DOMHTMLFormElement::insertBefore):
(DOMHTMLFormElement::replaceChild):
(DOMHTMLFormElement::removeChild):
(DOMHTMLFormElement::appendChild):
(DOMHTMLFormElement::hasChildNodes):
(DOMHTMLFormElement::cloneNode):
(DOMHTMLFormElement::normalize):
(DOMHTMLFormElement::isSupported):
(DOMHTMLFormElement::namespaceURI):
(DOMHTMLFormElement::prefix):
(DOMHTMLFormElement::setPrefix):
(DOMHTMLFormElement::localName):
(DOMHTMLFormElement::hasAttributes):
(DOMHTMLFormElement::isSameNode):
(DOMHTMLFormElement::isEqualNode):
(DOMHTMLFormElement::textContent):
(DOMHTMLFormElement::setTextContent):
(DOMHTMLFormElement::tagName):
(DOMHTMLFormElement::getAttribute):
(DOMHTMLFormElement::setAttribute):
(DOMHTMLFormElement::removeAttribute):
(DOMHTMLFormElement::getAttributeNode):
(DOMHTMLFormElement::setAttributeNode):
(DOMHTMLFormElement::removeAttributeNode):
(DOMHTMLFormElement::getElementsByTagName):
(DOMHTMLFormElement::getAttributeNS):
(DOMHTMLFormElement::setAttributeNS):
(DOMHTMLFormElement::removeAttributeNS):
(DOMHTMLFormElement::getAttributeNodeNS):
(DOMHTMLFormElement::setAttributeNodeNS):
(DOMHTMLFormElement::getElementsByTagNameNS):
(DOMHTMLFormElement::hasAttribute):
(DOMHTMLFormElement::hasAttributeNS):
(DOMHTMLFormElement::focus):
(DOMHTMLFormElement::blur):
(DOMHTMLFormElement::idName):
(DOMHTMLFormElement::setIdName):
(DOMHTMLFormElement::title):
(DOMHTMLFormElement::setTitle):
(DOMHTMLFormElement::lang):
(DOMHTMLFormElement::setLang):
(DOMHTMLFormElement::dir):
(DOMHTMLFormElement::setDir):
(DOMHTMLFormElement::className):
(DOMHTMLFormElement::setClassName):
(DOMHTMLFormElement::innerHTML):
(DOMHTMLFormElement::setInnerHTML):
(DOMHTMLFormElement::innerText):
(DOMHTMLFormElement::setInnerText):
(DOMHTMLSelectElement::DOMHTMLSelectElement):
(DOMHTMLSelectElement::AddRef):
(DOMHTMLSelectElement::Release):
(DOMHTMLSelectElement::throwException):
(DOMHTMLSelectElement::callWebScriptMethod):
(DOMHTMLSelectElement::evaluateWebScript):
(DOMHTMLSelectElement::removeWebScriptKey):
(DOMHTMLSelectElement::stringRepresentation):
(DOMHTMLSelectElement::webScriptValueAtIndex):
(DOMHTMLSelectElement::setWebScriptValueAtIndex):
(DOMHTMLSelectElement::setException):
(DOMHTMLSelectElement::nodeName):
(DOMHTMLSelectElement::nodeValue):
(DOMHTMLSelectElement::setNodeValue):
(DOMHTMLSelectElement::nodeType):
(DOMHTMLSelectElement::parentNode):
(DOMHTMLSelectElement::childNodes):
(DOMHTMLSelectElement::firstChild):
(DOMHTMLSelectElement::lastChild):
(DOMHTMLSelectElement::previousSibling):
(DOMHTMLSelectElement::nextSibling):
(DOMHTMLSelectElement::attributes):
(DOMHTMLSelectElement::ownerDocument):
(DOMHTMLSelectElement::insertBefore):
(DOMHTMLSelectElement::replaceChild):
(DOMHTMLSelectElement::removeChild):
(DOMHTMLSelectElement::appendChild):
(DOMHTMLSelectElement::hasChildNodes):
(DOMHTMLSelectElement::cloneNode):
(DOMHTMLSelectElement::normalize):
(DOMHTMLSelectElement::isSupported):
(DOMHTMLSelectElement::namespaceURI):
(DOMHTMLSelectElement::prefix):
(DOMHTMLSelectElement::setPrefix):
(DOMHTMLSelectElement::localName):
(DOMHTMLSelectElement::hasAttributes):
(DOMHTMLSelectElement::isSameNode):
(DOMHTMLSelectElement::isEqualNode):
(DOMHTMLSelectElement::textContent):
(DOMHTMLSelectElement::setTextContent):
(DOMHTMLSelectElement::tagName):
(DOMHTMLSelectElement::getAttribute):
(DOMHTMLSelectElement::setAttribute):
(DOMHTMLSelectElement::removeAttribute):
(DOMHTMLSelectElement::getAttributeNode):
(DOMHTMLSelectElement::setAttributeNode):
(DOMHTMLSelectElement::removeAttributeNode):
(DOMHTMLSelectElement::getElementsByTagName):
(DOMHTMLSelectElement::getAttributeNS):
(DOMHTMLSelectElement::setAttributeNS):
(DOMHTMLSelectElement::removeAttributeNS):
(DOMHTMLSelectElement::getAttributeNodeNS):
(DOMHTMLSelectElement::setAttributeNodeNS):
(DOMHTMLSelectElement::getElementsByTagNameNS):
(DOMHTMLSelectElement::hasAttribute):
(DOMHTMLSelectElement::hasAttributeNS):
(DOMHTMLSelectElement::focus):
(DOMHTMLSelectElement::blur):
(DOMHTMLSelectElement::idName):
(DOMHTMLSelectElement::setIdName):
(DOMHTMLSelectElement::title):
(DOMHTMLSelectElement::setTitle):
(DOMHTMLSelectElement::lang):
(DOMHTMLSelectElement::setLang):
(DOMHTMLSelectElement::dir):
(DOMHTMLSelectElement::setDir):
(DOMHTMLSelectElement::className):
(DOMHTMLSelectElement::setClassName):
(DOMHTMLSelectElement::innerHTML):
(DOMHTMLSelectElement::setInnerHTML):
(DOMHTMLSelectElement::innerText):
(DOMHTMLSelectElement::setInnerText):
(DOMHTMLOptionElement::DOMHTMLOptionElement):
(DOMHTMLOptionElement::AddRef):
(DOMHTMLOptionElement::Release):
(DOMHTMLOptionElement::throwException):
(DOMHTMLOptionElement::callWebScriptMethod):
(DOMHTMLOptionElement::evaluateWebScript):
(DOMHTMLOptionElement::removeWebScriptKey):
(DOMHTMLOptionElement::stringRepresentation):
(DOMHTMLOptionElement::webScriptValueAtIndex):
(DOMHTMLOptionElement::setWebScriptValueAtIndex):
(DOMHTMLOptionElement::setException):
(DOMHTMLOptionElement::nodeName):
(DOMHTMLOptionElement::nodeValue):
(DOMHTMLOptionElement::setNodeValue):
(DOMHTMLOptionElement::nodeType):
(DOMHTMLOptionElement::parentNode):
(DOMHTMLOptionElement::childNodes):
(DOMHTMLOptionElement::firstChild):
(DOMHTMLOptionElement::lastChild):
(DOMHTMLOptionElement::previousSibling):
(DOMHTMLOptionElement::nextSibling):
(DOMHTMLOptionElement::attributes):
(DOMHTMLOptionElement::ownerDocument):
(DOMHTMLOptionElement::insertBefore):
(DOMHTMLOptionElement::replaceChild):
(DOMHTMLOptionElement::removeChild):
(DOMHTMLOptionElement::appendChild):
(DOMHTMLOptionElement::hasChildNodes):
(DOMHTMLOptionElement::cloneNode):
(DOMHTMLOptionElement::normalize):
(DOMHTMLOptionElement::isSupported):
(DOMHTMLOptionElement::namespaceURI):
(DOMHTMLOptionElement::prefix):
(DOMHTMLOptionElement::setPrefix):
(DOMHTMLOptionElement::localName):
(DOMHTMLOptionElement::hasAttributes):
(DOMHTMLOptionElement::isSameNode):
(DOMHTMLOptionElement::isEqualNode):
(DOMHTMLOptionElement::textContent):
(DOMHTMLOptionElement::setTextContent):
(DOMHTMLOptionElement::tagName):
(DOMHTMLOptionElement::getAttribute):
(DOMHTMLOptionElement::setAttribute):
(DOMHTMLOptionElement::removeAttribute):
(DOMHTMLOptionElement::getAttributeNode):
(DOMHTMLOptionElement::setAttributeNode):
(DOMHTMLOptionElement::removeAttributeNode):
(DOMHTMLOptionElement::getElementsByTagName):
(DOMHTMLOptionElement::getAttributeNS):
(DOMHTMLOptionElement::setAttributeNS):
(DOMHTMLOptionElement::removeAttributeNS):
(DOMHTMLOptionElement::getAttributeNodeNS):
(DOMHTMLOptionElement::setAttributeNodeNS):
(DOMHTMLOptionElement::getElementsByTagNameNS):
(DOMHTMLOptionElement::hasAttribute):
(DOMHTMLOptionElement::hasAttributeNS):
(DOMHTMLOptionElement::focus):
(DOMHTMLOptionElement::blur):
(DOMHTMLOptionElement::idName):
(DOMHTMLOptionElement::setIdName):
(DOMHTMLOptionElement::title):
(DOMHTMLOptionElement::setTitle):
(DOMHTMLOptionElement::lang):
(DOMHTMLOptionElement::setLang):
(DOMHTMLOptionElement::dir):
(DOMHTMLOptionElement::setDir):
(DOMHTMLOptionElement::className):
(DOMHTMLOptionElement::setClassName):
(DOMHTMLOptionElement::innerHTML):
(DOMHTMLOptionElement::setInnerHTML):
(DOMHTMLOptionElement::innerText):
(DOMHTMLOptionElement::setInnerText):
(DOMHTMLInputElement::DOMHTMLInputElement):
(DOMHTMLInputElement::AddRef):
(DOMHTMLInputElement::Release):
(DOMHTMLInputElement::throwException):
(DOMHTMLInputElement::callWebScriptMethod):
(DOMHTMLInputElement::evaluateWebScript):
(DOMHTMLInputElement::removeWebScriptKey):
(DOMHTMLInputElement::stringRepresentation):
(DOMHTMLInputElement::webScriptValueAtIndex):
(DOMHTMLInputElement::setWebScriptValueAtIndex):
(DOMHTMLInputElement::setException):
(DOMHTMLInputElement::nodeName):
(DOMHTMLInputElement::nodeValue):
(DOMHTMLInputElement::setNodeValue):
(DOMHTMLInputElement::nodeType):
(DOMHTMLInputElement::parentNode):
(DOMHTMLInputElement::childNodes):
(DOMHTMLInputElement::firstChild):
(DOMHTMLInputElement::lastChild):
(DOMHTMLInputElement::previousSibling):
(DOMHTMLInputElement::nextSibling):
(DOMHTMLInputElement::attributes):
(DOMHTMLInputElement::ownerDocument):
(DOMHTMLInputElement::insertBefore):
(DOMHTMLInputElement::replaceChild):
(DOMHTMLInputElement::removeChild):
(DOMHTMLInputElement::appendChild):
(DOMHTMLInputElement::hasChildNodes):
(DOMHTMLInputElement::cloneNode):
(DOMHTMLInputElement::normalize):
(DOMHTMLInputElement::isSupported):
(DOMHTMLInputElement::namespaceURI):
(DOMHTMLInputElement::prefix):
(DOMHTMLInputElement::setPrefix):
(DOMHTMLInputElement::localName):
(DOMHTMLInputElement::hasAttributes):
(DOMHTMLInputElement::isSameNode):
(DOMHTMLInputElement::isEqualNode):
(DOMHTMLInputElement::textContent):
(DOMHTMLInputElement::setTextContent):
(DOMHTMLInputElement::tagName):
(DOMHTMLInputElement::getAttribute):
(DOMHTMLInputElement::setAttribute):
(DOMHTMLInputElement::removeAttribute):
(DOMHTMLInputElement::getAttributeNode):
(DOMHTMLInputElement::setAttributeNode):
(DOMHTMLInputElement::removeAttributeNode):
(DOMHTMLInputElement::getElementsByTagName):
(DOMHTMLInputElement::getAttributeNS):
(DOMHTMLInputElement::setAttributeNS):
(DOMHTMLInputElement::removeAttributeNS):
(DOMHTMLInputElement::getAttributeNodeNS):
(DOMHTMLInputElement::setAttributeNodeNS):
(DOMHTMLInputElement::getElementsByTagNameNS):
(DOMHTMLInputElement::hasAttribute):
(DOMHTMLInputElement::hasAttributeNS):
(DOMHTMLInputElement::focus):
(DOMHTMLInputElement::blur):
(DOMHTMLInputElement::idName):
(DOMHTMLInputElement::setIdName):
(DOMHTMLInputElement::title):
(DOMHTMLInputElement::setTitle):
(DOMHTMLInputElement::lang):
(DOMHTMLInputElement::setLang):
(DOMHTMLInputElement::dir):
(DOMHTMLInputElement::setDir):
(DOMHTMLInputElement::className):
(DOMHTMLInputElement::setClassName):
(DOMHTMLInputElement::innerHTML):
(DOMHTMLInputElement::setInnerHTML):
(DOMHTMLInputElement::innerText):
(DOMHTMLInputElement::setInnerText):
(DOMHTMLTextAreaElement::DOMHTMLTextAreaElement):
(DOMHTMLTextAreaElement::AddRef):
(DOMHTMLTextAreaElement::Release):
(DOMHTMLTextAreaElement::throwException):
(DOMHTMLTextAreaElement::callWebScriptMethod):
(DOMHTMLTextAreaElement::evaluateWebScript):
(DOMHTMLTextAreaElement::removeWebScriptKey):
(DOMHTMLTextAreaElement::stringRepresentation):
(DOMHTMLTextAreaElement::webScriptValueAtIndex):
(DOMHTMLTextAreaElement::setWebScriptValueAtIndex):
(DOMHTMLTextAreaElement::setException):
(DOMHTMLTextAreaElement::nodeName):
(DOMHTMLTextAreaElement::nodeValue):
(DOMHTMLTextAreaElement::setNodeValue):
(DOMHTMLTextAreaElement::nodeType):
(DOMHTMLTextAreaElement::parentNode):
(DOMHTMLTextAreaElement::childNodes):
(DOMHTMLTextAreaElement::firstChild):
(DOMHTMLTextAreaElement::lastChild):
(DOMHTMLTextAreaElement::previousSibling):
(DOMHTMLTextAreaElement::nextSibling):
(DOMHTMLTextAreaElement::attributes):
(DOMHTMLTextAreaElement::ownerDocument):
(DOMHTMLTextAreaElement::insertBefore):
(DOMHTMLTextAreaElement::replaceChild):
(DOMHTMLTextAreaElement::removeChild):
(DOMHTMLTextAreaElement::appendChild):
(DOMHTMLTextAreaElement::hasChildNodes):
(DOMHTMLTextAreaElement::cloneNode):
(DOMHTMLTextAreaElement::normalize):
(DOMHTMLTextAreaElement::isSupported):
(DOMHTMLTextAreaElement::namespaceURI):
(DOMHTMLTextAreaElement::prefix):
(DOMHTMLTextAreaElement::setPrefix):
(DOMHTMLTextAreaElement::localName):
(DOMHTMLTextAreaElement::hasAttributes):
(DOMHTMLTextAreaElement::isSameNode):
(DOMHTMLTextAreaElement::isEqualNode):
(DOMHTMLTextAreaElement::textContent):
(DOMHTMLTextAreaElement::setTextContent):
(DOMHTMLTextAreaElement::tagName):
(DOMHTMLTextAreaElement::getAttribute):
(DOMHTMLTextAreaElement::setAttribute):
(DOMHTMLTextAreaElement::removeAttribute):
(DOMHTMLTextAreaElement::getAttributeNode):
(DOMHTMLTextAreaElement::setAttributeNode):
(DOMHTMLTextAreaElement::removeAttributeNode):
(DOMHTMLTextAreaElement::getElementsByTagName):
(DOMHTMLTextAreaElement::getAttributeNS):
(DOMHTMLTextAreaElement::setAttributeNS):
(DOMHTMLTextAreaElement::removeAttributeNS):
(DOMHTMLTextAreaElement::getAttributeNodeNS):
(DOMHTMLTextAreaElement::setAttributeNodeNS):
(DOMHTMLTextAreaElement::getElementsByTagNameNS):
(DOMHTMLTextAreaElement::hasAttribute):
(DOMHTMLTextAreaElement::hasAttributeNS):
(DOMHTMLTextAreaElement::focus):
(DOMHTMLTextAreaElement::blur):
(DOMHTMLTextAreaElement::idName):
(DOMHTMLTextAreaElement::setIdName):
(DOMHTMLTextAreaElement::title):
(DOMHTMLTextAreaElement::setTitle):
(DOMHTMLTextAreaElement::lang):
(DOMHTMLTextAreaElement::setLang):
(DOMHTMLTextAreaElement::dir):
(DOMHTMLTextAreaElement::setDir):
(DOMHTMLTextAreaElement::className):
(DOMHTMLTextAreaElement::setClassName):
(DOMHTMLTextAreaElement::innerHTML):
(DOMHTMLTextAreaElement::setInnerHTML):
(DOMHTMLTextAreaElement::innerText):
(DOMHTMLTextAreaElement::setInnerText):
(DOMHTMLIFrameElement::DOMHTMLIFrameElement):
(DOMHTMLIFrameElement::AddRef):
(DOMHTMLIFrameElement::Release):
(DOMHTMLIFrameElement::throwException):
(DOMHTMLIFrameElement::callWebScriptMethod):
(DOMHTMLIFrameElement::evaluateWebScript):
(DOMHTMLIFrameElement::removeWebScriptKey):
(DOMHTMLIFrameElement::stringRepresentation):
(DOMHTMLIFrameElement::webScriptValueAtIndex):
(DOMHTMLIFrameElement::setWebScriptValueAtIndex):
(DOMHTMLIFrameElement::setException):
(DOMHTMLIFrameElement::nodeName):
(DOMHTMLIFrameElement::nodeValue):
(DOMHTMLIFrameElement::setNodeValue):
(DOMHTMLIFrameElement::nodeType):
(DOMHTMLIFrameElement::parentNode):
(DOMHTMLIFrameElement::childNodes):
(DOMHTMLIFrameElement::firstChild):
(DOMHTMLIFrameElement::lastChild):
(DOMHTMLIFrameElement::previousSibling):
(DOMHTMLIFrameElement::nextSibling):
(DOMHTMLIFrameElement::attributes):
(DOMHTMLIFrameElement::ownerDocument):
(DOMHTMLIFrameElement::insertBefore):
(DOMHTMLIFrameElement::replaceChild):
(DOMHTMLIFrameElement::removeChild):
(DOMHTMLIFrameElement::appendChild):
(DOMHTMLIFrameElement::hasChildNodes):
(DOMHTMLIFrameElement::cloneNode):
(DOMHTMLIFrameElement::normalize):
(DOMHTMLIFrameElement::isSupported):
(DOMHTMLIFrameElement::namespaceURI):
(DOMHTMLIFrameElement::prefix):
(DOMHTMLIFrameElement::setPrefix):
(DOMHTMLIFrameElement::localName):
(DOMHTMLIFrameElement::hasAttributes):
(DOMHTMLIFrameElement::isSameNode):
(DOMHTMLIFrameElement::isEqualNode):
(DOMHTMLIFrameElement::textContent):
(DOMHTMLIFrameElement::setTextContent):
(DOMHTMLIFrameElement::tagName):
(DOMHTMLIFrameElement::getAttribute):
(DOMHTMLIFrameElement::setAttribute):
(DOMHTMLIFrameElement::removeAttribute):
(DOMHTMLIFrameElement::getAttributeNode):
(DOMHTMLIFrameElement::setAttributeNode):
(DOMHTMLIFrameElement::removeAttributeNode):
(DOMHTMLIFrameElement::getElementsByTagName):
(DOMHTMLIFrameElement::getAttributeNS):
(DOMHTMLIFrameElement::setAttributeNS):
(DOMHTMLIFrameElement::removeAttributeNS):
(DOMHTMLIFrameElement::getAttributeNodeNS):
(DOMHTMLIFrameElement::setAttributeNodeNS):
(DOMHTMLIFrameElement::getElementsByTagNameNS):
(DOMHTMLIFrameElement::hasAttribute):
(DOMHTMLIFrameElement::hasAttributeNS):
(DOMHTMLIFrameElement::focus):
(DOMHTMLIFrameElement::blur):
(DOMHTMLIFrameElement::idName):
(DOMHTMLIFrameElement::setIdName):
(DOMHTMLIFrameElement::title):
(DOMHTMLIFrameElement::setTitle):
(DOMHTMLIFrameElement::lang):
(DOMHTMLIFrameElement::setLang):
(DOMHTMLIFrameElement::dir):
(DOMHTMLIFrameElement::setDir):
(DOMHTMLIFrameElement::className):
(DOMHTMLIFrameElement::setClassName):
(DOMHTMLIFrameElement::innerHTML):
(DOMHTMLIFrameElement::setInnerHTML):
(DOMHTMLIFrameElement::innerText):
(DOMHTMLIFrameElement::setInnerText):

  • DefaultDownloadDelegate.cpp:

(DefaultDownloadDelegate::DefaultDownloadDelegate):
(DefaultDownloadDelegate::QueryInterface):
(DefaultDownloadDelegate::AddRef):
(DefaultDownloadDelegate::Release):
(DefaultDownloadDelegate::decideDestinationWithSuggestedFilename):
(DefaultDownloadDelegate::didCancelAuthenticationChallenge):
(DefaultDownloadDelegate::didCreateDestination):
(DefaultDownloadDelegate::didReceiveAuthenticationChallenge):
(DefaultDownloadDelegate::didReceiveDataOfLength):
(DefaultDownloadDelegate::didReceiveResponse):
(DefaultDownloadDelegate::shouldDecodeSourceDataOfMIMEType):
(DefaultDownloadDelegate::willResumeWithResponse):
(DefaultDownloadDelegate::willSendRequest):
(DefaultDownloadDelegate::didBegin):
(DefaultDownloadDelegate::didFinish):
(DefaultDownloadDelegate::didFailWithError):

  • DefaultDownloadDelegate.h:
  • DefaultPolicyDelegate.cpp:

(DefaultPolicyDelegate::DefaultPolicyDelegate):
(DefaultPolicyDelegate::QueryInterface):
(DefaultPolicyDelegate::AddRef):
(DefaultPolicyDelegate::Release):
(DefaultPolicyDelegate::decidePolicyForNavigationAction):
(DefaultPolicyDelegate::decidePolicyForNewWindowAction):
(DefaultPolicyDelegate::decidePolicyForMIMEType):
(DefaultPolicyDelegate::unableToImplementPolicyWithError):

  • DefaultPolicyDelegate.h:
  • Interfaces/Accessible2/Accessible2.idl:
  • Interfaces/Accessible2/Accessible2_2.idl:
  • Interfaces/Accessible2/AccessibleApplication.idl:
  • Interfaces/Accessible2/AccessibleEditableText.idl:
  • Interfaces/Accessible2/AccessibleRelation.idl:
  • Interfaces/Accessible2/AccessibleStates.idl:
  • Interfaces/Accessible2/AccessibleText.idl:
  • Interfaces/Accessible2/AccessibleText2.idl:
  • Interfaces/IWebApplicationCache.idl:
  • Interfaces/IWebView.idl:
  • Interfaces/IWebViewPrivate.idl:
  • Interfaces/WebKit.idl:
  • MemoryStream.cpp:

(MemoryStream::QueryInterface):
(MemoryStream::AddRef):

  • MemoryStream.h:
  • WebActionPropertyBag.cpp:

(WebActionPropertyBag::WebActionPropertyBag):
(WebActionPropertyBag::QueryInterface):
(WebActionPropertyBag::AddRef):
(WebActionPropertyBag::Release):
(findMouseEvent):
(WebActionPropertyBag::Read):
(WebActionPropertyBag::Write):

  • WebActionPropertyBag.h:
  • WebApplicationCache.cpp:

(WebApplicationCache::QueryInterface):
(WebApplicationCache::AddRef):

  • WebApplicationCache.h:
  • WebArchive.cpp:

(WebArchive::createInstance):
(WebArchive::WebArchive):
(WebArchive::~WebArchive):
(WebArchive::QueryInterface):
(WebArchive::AddRef):
(WebArchive::Release):
(WebArchive::initWithMainResource):
(WebArchive::initWithData):
(WebArchive::initWithNode):
(WebArchive::mainResource):
(WebArchive::subResources):
(WebArchive::subframeArchives):
(WebArchive::data):

  • WebArchive.h:
  • WebBackForwardList.cpp:

(backForwardListWrappers):
(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::createInstance):
(WebBackForwardList::QueryInterface):
(WebBackForwardList::AddRef):
(WebBackForwardList::Release):
(WebBackForwardList::addItem):
(WebBackForwardList::goBack):
(WebBackForwardList::goForward):
(WebBackForwardList::goToItem):
(WebBackForwardList::backItem):
(WebBackForwardList::currentItem):
(WebBackForwardList::forwardItem):
(WebBackForwardList::backListWithLimit):
(WebBackForwardList::forwardListWithLimit):
(WebBackForwardList::capacity):
(WebBackForwardList::setCapacity):
(WebBackForwardList::backListCount):
(WebBackForwardList::forwardListCount):
(WebBackForwardList::containsItem):
(WebBackForwardList::itemAtIndex):
(WebBackForwardList::removeItem):

  • WebBackForwardList.h:
  • WebCache.cpp:

(WebCache::WebCache):
(WebCache::QueryInterface):
(WebCache::AddRef):
(WebCache::Release):
(WebCache::statistics):
(WebCache::empty):
(WebCache::setDisabled):
(WebCache::disabled):
(WebCache::cacheFolder):
(WebCache::setCacheFolder):

  • WebCache.h:
  • WebCoreStatistics.cpp:

(WebCoreStatistics::WebCoreStatistics):
(WebCoreStatistics::QueryInterface):
(WebCoreStatistics::AddRef):
(WebCoreStatistics::Release):
(WebCoreStatistics::javaScriptObjectsCount):
(WebCoreStatistics::javaScriptGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectsCount):
(WebCoreStatistics::javaScriptProtectedGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):
(WebCoreStatistics::javaScriptObjectTypeCounts):
(WebCoreStatistics::iconPageURLMappingCount):
(WebCoreStatistics::iconRetainedPageURLCount):
(WebCoreStatistics::iconRecordCount):
(WebCoreStatistics::iconsWithDataCount):
(WebCoreStatistics::cachedFontDataCount):
(WebCoreStatistics::cachedFontDataInactiveCount):
(WebCoreStatistics::purgeInactiveFontData):
(WebCoreStatistics::glyphPageCount):
(WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled):
(WebCoreStatistics::shouldPrintExceptions):
(WebCoreStatistics::stopIgnoringWebCoreNodeLeaks):
(WebCoreStatistics::memoryStatistics):
(WebCoreStatistics::returnFreeMemoryToSystem):
(WebCoreStatistics::cachedPageCount):
(WebCoreStatistics::cachedFrameCount):

  • WebCoreStatistics.h:
  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:

(NotificationCOMWrapper::create):
(NotificationCOMWrapper::QueryInterface):

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorUndoTarget::QueryInterface):
(WebEditorUndoTarget::AddRef):
(WebEditorUndoCommand::execute):
(WebEditorUndoCommand::QueryInterface):
(WebEditorUndoCommand::AddRef):

  • WebCoreSupport/WebInspectorDelegate.cpp:

(WebInspectorDelegate::WebInspectorDelegate):
(WebInspectorDelegate::createInstance):
(QueryInterface):
(WebInspectorDelegate::AddRef):
(WebInspectorDelegate::Release):
(WebInspectorDelegate::dragDestinationActionMaskForDraggingInfo):
(WebInspectorDelegate::createWebViewWithRequest):
(WebInspectorDelegate::willPerformDragSourceAction):
(WebInspectorDelegate::createModalDialog):
(WebInspectorDelegate::desktopNotificationsDelegate):
(:m_refCount): Deleted.

  • WebCoreSupport/WebInspectorDelegate.h:

(WebInspectorDelegate::webViewShow):
(WebInspectorDelegate::webViewClose):
(WebInspectorDelegate::webViewFocus):
(WebInspectorDelegate::webViewUnfocus):
(WebInspectorDelegate::webViewFirstResponder):
(WebInspectorDelegate::makeFirstResponder):
(WebInspectorDelegate::setStatusText):
(WebInspectorDelegate::webViewStatusText):
(WebInspectorDelegate::webViewAreToolbarsVisible):
(WebInspectorDelegate::setToolbarsVisible):
(WebInspectorDelegate::webViewIsStatusBarVisible):
(WebInspectorDelegate::setStatusBarVisible):
(WebInspectorDelegate::webViewIsResizable):
(WebInspectorDelegate::setResizable):
(WebInspectorDelegate::setFrame):
(WebInspectorDelegate::webViewFrame):
(WebInspectorDelegate::setContentRect):
(WebInspectorDelegate::webViewContentRect):
(WebInspectorDelegate::runJavaScriptAlertPanelWithMessage):
(WebInspectorDelegate::runJavaScriptConfirmPanelWithMessage):
(WebInspectorDelegate::runJavaScriptTextInputPanelWithPrompt):
(WebInspectorDelegate::runBeforeUnloadConfirmPanelWithMessage):
(WebInspectorDelegate::runOpenPanelForFileButtonWithResultListener):
(WebInspectorDelegate::mouseDidMoveOverElement):
(WebInspectorDelegate::contextMenuItemsForElement):
(WebInspectorDelegate::validateUserInterfaceItem):
(WebInspectorDelegate::shouldPerformAction):
(WebInspectorDelegate::willPerformDragDestinationAction):
(WebInspectorDelegate::dragSourceActionMaskForPoint):
(WebInspectorDelegate::contextMenuItemSelected):
(WebInspectorDelegate::hasCustomMenuImplementation):
(WebInspectorDelegate::trackCustomPopupMenu):
(WebInspectorDelegate::measureCustomMenuItem):
(WebInspectorDelegate::drawCustomMenuItem):
(WebInspectorDelegate::addCustomMenuDrawingData):
(WebInspectorDelegate::cleanUpCustomMenuDrawingData):
(WebInspectorDelegate::canTakeFocus):
(WebInspectorDelegate::takeFocus):
(WebInspectorDelegate::registerUndoWithTarget):
(WebInspectorDelegate::removeAllActionsWithTarget):
(WebInspectorDelegate::setActionTitle):
(WebInspectorDelegate::undo):
(WebInspectorDelegate::redo):
(WebInspectorDelegate::canUndo):
(WebInspectorDelegate::canRedo):
(WebInspectorDelegate::printFrame):
(WebInspectorDelegate::ftpDirectoryTemplatePath):
(WebInspectorDelegate::webViewHeaderHeight):
(WebInspectorDelegate::webViewFooterHeight):
(WebInspectorDelegate::drawHeaderInRect):
(WebInspectorDelegate::drawFooterInRect):
(WebInspectorDelegate::webViewPrintingMarginRect):
(WebInspectorDelegate::canRunModal):
(WebInspectorDelegate::runModal):
(WebInspectorDelegate::isMenuBarVisible):
(WebInspectorDelegate::setMenuBarVisible):
(WebInspectorDelegate::runDatabaseSizeLimitPrompt):
(WebInspectorDelegate::paintCustomScrollbar):
(WebInspectorDelegate::paintCustomScrollCorner):
(WebInspectorDelegate::QueryInterface): Deleted.
(WebInspectorDelegate::createWebViewWithRequest): Deleted.
(WebInspectorDelegate::willPerformDragSourceAction): Deleted.
(WebInspectorDelegate::createModalDialog): Deleted.
(WebInspectorDelegate::desktopNotificationsDelegate): Deleted.

  • WebDataSource.cpp:

(WebDataSource::overrideEncoding):
(WebDataSource::setOverrideEncoding):
(WebDataSource::mainDocumentError):
(WebDataSource::setDeferMainResourceDataLoad):
(WebDataSource::QueryInterface):
(WebDataSource::AddRef):
(WebDataSource::Release):
(WebDataSource::initWithRequest):
(WebDataSource::data):
(WebDataSource::representation):
(WebDataSource::webFrame):
(WebDataSource::initialRequest):
(WebDataSource::request):
(WebDataSource::response):
(WebDataSource::textEncodingName):
(WebDataSource::isLoading):
(WebDataSource::pageTitle):
(WebDataSource::unreachableURL):
(WebDataSource::webArchive):
(WebDataSource::mainResource):
(WebDataSource::subresources):
(WebDataSource::subresourceForURL):
(WebDataSource::addSubresource):

  • WebDataSource.h:
  • WebDatabaseManager.cpp:

(DatabaseDetailsPropertyBag::DatabaseDetailsPropertyBag):
(DatabaseDetailsPropertyBag::~DatabaseDetailsPropertyBag):
(DatabaseDetailsPropertyBag::createInstance):
(DatabaseDetailsPropertyBag::AddRef):
(DatabaseDetailsPropertyBag::Release):
(DatabaseDetailsPropertyBag::QueryInterface):
(DatabaseDetailsPropertyBag::Read):
(DatabaseDetailsPropertyBag::Write):
(WebDatabaseManager::createInstance):
(WebDatabaseManager::WebDatabaseManager):
(WebDatabaseManager::~WebDatabaseManager):
(WebDatabaseManager::QueryInterface):
(WebDatabaseManager::AddRef):
(WebDatabaseManager::Release):
(WebDatabaseManager::sharedWebDatabaseManager):
(WebDatabaseManager::origins):
(WebDatabaseManager::databasesWithOrigin):
(WebDatabaseManager::detailsForDatabase):
(WebDatabaseManager::deleteAllDatabases):
(WebDatabaseManager::deleteOrigin):
(WebDatabaseManager::deleteDatabase):
(WebDatabaseManager::dispatchDidModifyOrigin):
(WebDatabaseManager::setQuota):

  • WebDatabaseManager.h:
  • WebDownload.cpp:

(WebDownload::WebDownload):
(WebDownload::QueryInterface):
(WebDownload::AddRef):
(WebDownload::Release):
(WebDownload::canResumeDownloadDecodedWithEncodingMIMEType):
(WebDownload::bundlePathForTargetPath):
(WebDownload::request):

  • WebDownload.h:
  • WebDownloadCFNet.cpp:

(WebDownload::initWithRequest):
(WebDownload::initToResumeWithBundle):
(WebDownload::start):
(WebDownload::cancel):
(WebDownload::cancelForResume):
(WebDownload::deletesFileUponFailure):
(WebDownload::setDeletesFileUponFailure):
(WebDownload::setDestination):
(WebDownload::cancelAuthenticationChallenge):
(WebDownload::continueWithoutCredentialForAuthenticationChallenge):
(WebDownload::useCredential):

  • WebDropSource.cpp:

(WebDropSource::createInstance):
(WebDropSource::WebDropSource):
(WebDropSource::~WebDropSource):
(WebDropSource::QueryInterface):
(WebDropSource::AddRef):
(WebDropSource::Release):
(generateMouseEvent):
(WebDropSource::QueryContinueDrag):
(WebDropSource::GiveFeedback):

  • WebDropSource.h:
  • WebElementPropertyBag.cpp:

(WebElementPropertyBag::WebElementPropertyBag):
(WebElementPropertyBag::QueryInterface):
(WebElementPropertyBag::AddRef):
(WebElementPropertyBag::Release):
(WebElementPropertyBag::Read):
(WebElementPropertyBag::Write):

  • WebElementPropertyBag.h:
  • WebError.cpp:

(WebError::WebError):
(WebError::QueryInterface):
(WebError::AddRef):
(WebError::Release):
(WebError::init):
(WebError::code):
(WebError::domain):
(WebError::localizedDescription):
(WebError::localizedFailureReason):
(WebError::localizedRecoveryOptions):
(WebError::localizedRecoverySuggestion):
(WebError::recoverAttempter):
(WebError::userInfo):
(WebError::failingURL):
(WebError::isPolicyChangeError):
(WebError::sslPeerCertificate):

  • WebError.h:
  • WebFrame.cpp:

(kit):
(core):
(elementFromDOMElement):
(WebFrame::WebFramePrivate::WebFramePrivate):
(WebFrame::WebFramePrivate::~WebFramePrivate):
(WebFrame::WebFramePrivate::frameView):
(WebFrame::WebFrame):
(WebFrame::createInstance):
(WebFrame::setAllowsScrolling):
(WebFrame::allowsScrolling):
(WebFrame::setIsDisconnected):
(WebFrame::setExcludeFromTextSearch):
(WebFrame::reloadFromOrigin):
(WebFrame::paintDocumentRectToContext):
(WebFrame::paintScrollViewRectToContextAtPoint):
(WebFrame::QueryInterface):
(WebFrame::AddRef):
(WebFrame::Release):
(WebFrame::name):
(WebFrame::webView):
(WebFrame::frameView):
(WebFrame::DOMDocument):
(WebFrame::DOMWindow):
(WebFrame::frameElement):
(WebFrame::currentForm):
(WebFrame::globalContext):
(WebFrame::globalContextForScriptWorld):
(WebFrame::loadRequest):
(WebFrame::loadData):
(WebFrame::loadPlainTextString):
(WebFrame::loadHTMLString):
(WebFrame::loadAlternateHTMLString):
(WebFrame::loadArchive):
(getWebDataSource):
(WebFrame::dataSource):
(WebFrame::provisionalDataSource):
(WebFrame::url):
(WebFrame::stopLoading):
(WebFrame::reload):
(WebFrame::findFrameNamed):
(WebFrame::parentFrame):
(EnumChildFrames::EnumChildFrames):
(EnumChildFrames::QueryInterface):
(EnumChildFrames::AddRef):
(EnumChildFrames::Clone):
(WebFrame::childFrames):
(WebFrame::renderTreeAsExternalRepresentation):
(WebFrame::pageNumberForElementById):
(WebFrame::numberOfPages):
(WebFrame::scrollOffset):
(WebFrame::layout):
(WebFrame::firstLayoutDone):
(WebFrame::pendingFrameUnloadEventCount):
(WebFrame::hasSpellingMarker):
(WebFrame::clearOpener):
(WebFrame::setTextDirection):
(WebFrame::supportsTextEncoding):
(WebFrame::selectedString):
(WebFrame::selectAll):
(WebFrame::deselectAll):
(WebFrame::formForElement):
(WebFrame::elementDoesAutoComplete):
(WebFrame::resumeAnimations):
(WebFrame::suspendAnimations):
(WebFrame::pauseAnimation):
(WebFrame::pauseTransition):
(WebFrame::visibleContentRect):
(WebFrame::numberOfActiveAnimations):
(WebFrame::isDisplayingStandaloneImage):
(WebFrame::allowsFollowingLink):
(WebFrame::searchForLabelsBeforeElement):
(WebFrame::matchLabelsAgainstElement):
(WebFrame::canProvideDocumentSource):
(WebFrame::layerTreeAsText):
(WebFrame::setPrinting):
(WebFrame::setInPrintingMode):
(WebFrame::computePageRects):
(WebFrame::getPrintedPageCount):
(WebFrame::spoolPages):
(WebFrame::isFrameSet):
(WebFrame::string):
(WebFrame::size):
(WebFrame::hasScrollBars):
(WebFrame::contentBounds):
(WebFrame::frameBounds):
(WebFrame::isDescendantOfFrame):
(WebFrame::updateBackground):
(WebFrame::isMainFrame):

  • WebFrame.h:
  • WebFramePolicyListener.cpp:

(WebFramePolicyListener::WebFramePolicyListener):
(WebFramePolicyListener::QueryInterface):
(WebFramePolicyListener::AddRef):
(WebFramePolicyListener::Release):
(WebFramePolicyListener::use):
(WebFramePolicyListener::download):
(WebFramePolicyListener::ignore):
(WebFramePolicyListener::continueSubmit):

  • WebFramePolicyListener.h:
  • WebGeolocationPolicyListener.cpp:

(WebGeolocationPolicyListener::QueryInterface):
(WebGeolocationPolicyListener::AddRef):
(WebGeolocationPolicyListener::Release):
(WebGeolocationPolicyListener::allow):
(WebGeolocationPolicyListener::deny):

  • WebGeolocationPolicyListener.h:
  • WebGeolocationPosition.cpp:

(WebGeolocationPosition::createInstance):
(WebGeolocationPosition::WebGeolocationPosition):
(WebGeolocationPosition::~WebGeolocationPosition):
(WebGeolocationPosition::QueryInterface):

  • WebGeolocationPosition.h:

(WebGeolocationPosition::impl):

  • WebHTMLRepresentation.cpp:

(WebHTMLRepresentation::WebHTMLRepresentation):
(WebHTMLRepresentation::~WebHTMLRepresentation):
(WebHTMLRepresentation::QueryInterface):
(WebHTMLRepresentation::AddRef):
(WebHTMLRepresentation::Release):
(WebHTMLRepresentation::supportedMIMETypes):
(WebHTMLRepresentation::supportedNonImageMIMETypes):
(WebHTMLRepresentation::supportedImageMIMETypes):
(WebHTMLRepresentation::attributedStringFromDOMNodes):
(WebHTMLRepresentation::elementWithName):
(WebHTMLRepresentation::elementDoesAutoComplete):
(WebHTMLRepresentation::elementIsPassword):
(WebHTMLRepresentation::formForElement):
(WebHTMLRepresentation::currentForm):
(WebHTMLRepresentation::controlsInForm):
(WebHTMLRepresentation::deprecatedSearchForLabels):
(WebHTMLRepresentation::matchLabels):
(WebHTMLRepresentation::searchForLabels):
(WebHTMLRepresentation::setDataSource):
(WebHTMLRepresentation::receivedData):
(WebHTMLRepresentation::receivedError):
(WebHTMLRepresentation::finishedLoadingWithDataSource):
(WebHTMLRepresentation::canProvideDocumentSource):
(WebHTMLRepresentation::documentSource):
(WebHTMLRepresentation::title):

  • WebHTMLRepresentation.h:
  • WebHistory.cpp:

(WebHistory::WebHistory):
(WebHistory::QueryInterface):
(WebHistory::AddRef):
(WebHistory::Release):
(WebHistory::sharedHistory):
(WebHistory::optionalSharedHistory):
(WebHistory::setOptionalSharedHistory):
(WebHistory::unused1):
(WebHistory::unused2):
(WebHistory::addItems):
(WebHistory::removeItems):
(WebHistory::removeAllItems):
(WebHistory::orderedLastVisitedDays):
(WebHistory::orderedItemsLastVisitedOnDay):
(WebHistory::allItems):
(WebHistory::removeAllVisitedLinks):
(WebHistory::setHistoryItemLimit):
(WebHistory::historyItemLimit):
(WebHistory::setHistoryAgeInDaysLimit):
(WebHistory::historyAgeInDaysLimit):
(WebHistory::visitedURL):
(WebHistory::itemForURL):

  • WebHistory.h:
  • WebHistoryItem.cpp:

(historyItemWrappers):
(WebHistoryItem::WebHistoryItem):
(WebHistoryItem::initFromDictionaryRepresentation):
(WebHistoryItem::dictionaryRepresentation):
(WebHistoryItem::hasURLString):
(WebHistoryItem::visitCount):
(WebHistoryItem::setVisitCount):
(WebHistoryItem::mergeAutoCompleteHints):
(WebHistoryItem::setLastVisitedTimeInterval):
(WebHistoryItem::setTitle):
(WebHistoryItem::RSSFeedReferrer):
(WebHistoryItem::setRSSFeedReferrer):
(WebHistoryItem::hasPageCache):
(WebHistoryItem::setHasPageCache):
(WebHistoryItem::target):
(WebHistoryItem::isTargetItem):
(WebHistoryItem::children):
(WebHistoryItem::lastVisitWasFailure):
(WebHistoryItem::setLastVisitWasFailure):
(WebHistoryItem::lastVisitWasHTTPNonGet):
(WebHistoryItem::setLastVisitWasHTTPNonGet):
(WebHistoryItem::redirectURLs):
(WebHistoryItem::visitedWithTitle):
(WebHistoryItem::getDailyVisitCounts):
(WebHistoryItem::getWeeklyVisitCounts):
(WebHistoryItem::recordInitialVisit):
(WebHistoryItem::QueryInterface):
(WebHistoryItem::AddRef):
(WebHistoryItem::Release):
(WebHistoryItem::initWithURLString):
(WebHistoryItem::originalURLString):
(WebHistoryItem::URLString):
(WebHistoryItem::title):
(WebHistoryItem::lastVisitedTimeInterval):
(WebHistoryItem::setAlternateTitle):
(WebHistoryItem::alternateTitle):
(WebHistoryItem::icon):

  • WebHistoryItem.h:
  • WebIconDatabase.cpp:

(WebIconDatabase::WebIconDatabase):
(WebIconDatabase::QueryInterface):
(WebIconDatabase::AddRef):
(WebIconDatabase::Release):
(WebIconDatabase::sharedIconDatabase):
(WebIconDatabase::iconForURL):
(WebIconDatabase::defaultIconWithSize):
(WebIconDatabase::retainIconForURL):
(WebIconDatabase::releaseIconForURL):
(WebIconDatabase::removeAllIcons):
(WebIconDatabase::delayDatabaseCleanup):
(WebIconDatabase::allowDatabaseCleanup):
(WebIconDatabase::iconURLForURL):
(WebIconDatabase::isEnabled):
(WebIconDatabase::setEnabled):
(WebIconDatabase::hasIconForURL):

(WebInspector::createInstance):
(WebInspector::WebInspector):
(WebInspector::frontendClient):
(WebInspector::webViewClosed):
(WebInspector::QueryInterface):
(WebInspector::AddRef):
(WebInspector::Release):
(WebInspector::show):
(WebInspector::showConsole):
(WebInspector::unused1):
(WebInspector::close):
(WebInspector::attach):
(WebInspector::detach):
(WebInspector::isDebuggingJavaScript):
(WebInspector::toggleDebuggingJavaScript):
(WebInspector::isProfilingJavaScript):
(WebInspector::toggleProfilingJavaScript):
(WebInspector::isJavaScriptProfilingEnabled):
(WebInspector::setJavaScriptProfilingEnabled):
(WebInspector::evaluateInFrontend):
(WebInspector::isTimelineProfilingEnabled):
(WebInspector::setTimelineProfilingEnabled):

(WebJavaScriptCollector::WebJavaScriptCollector):
(WebJavaScriptCollector::QueryInterface):
(WebJavaScriptCollector::AddRef):
(WebJavaScriptCollector::collect):
(WebJavaScriptCollector::collectOnAlternateThread):
(WebJavaScriptCollector::objectCount):

  • WebJavaScriptCollector.h:
  • WebKitCOMAPI.cpp:

(classFactory):
(WebKitCreateInstance):

  • WebKitCOMAPI.h:
  • WebKitClassFactory.cpp:

(WebKitClassFactory::WebKitClassFactory):
(WebKitClassFactory::~WebKitClassFactory):
(WebKitClassFactory::QueryInterface):
(WebKitClassFactory::AddRef):
(leakRefFromCreateInstance):
(WebKitClassFactory::CreateInstance):

  • WebKitClassFactory.h:
  • WebKitDLL.cpp:
  • WebKitMessageLoop.cpp:
  • WebKitMessageLoop.h:
  • WebKitStatistics.cpp:
  • WebKitStatistics.h:
  • WebMutableURLRequest.cpp:
  • WebMutableURLRequest.h:
  • WebNavigationData.cpp:
  • WebNavigationData.h:
  • WebNotification.cpp:
  • WebNotification.h:
  • WebNotificationCenter.cpp:
  • WebNotificationCenter.h:
  • WebPreferences.cpp:
  • WebPreferences.h:
  • WebResource.cpp:
  • WebResource.h:
  • WebScriptObject.cpp:
  • WebScriptObject.h:
  • WebScriptWorld.cpp:
  • WebScriptWorld.h:
  • WebSecurityOrigin.cpp:
  • WebSecurityOrigin.h:
  • WebSerializedJSValue.cpp:
  • WebSerializedJSValue.h:
  • WebTextRenderer.cpp:
  • WebTextRenderer.h:
  • WebURLAuthenticationChallenge.cpp:
  • WebURLAuthenticationChallenge.h:
  • WebURLAuthenticationChallengeSender.cpp:
  • WebURLAuthenticationChallengeSender.h:
  • WebURLAuthenticationChallengeSenderCFNet.cpp:
  • WebURLCredential.cpp:
  • WebURLCredential.h:
  • WebURLProtectionSpace.cpp:
  • WebURLProtectionSpace.h:
  • WebURLResponse.cpp:
  • WebURLResponse.h:
  • WebUserContentURLPattern.cpp:
  • WebUserContentURLPattern.h:
  • WebView.cpp:
  • WebView.h:
  • WebWorkersPrivate.cpp:
  • WebWorkersPrivate.h:
4:43 PM Changeset in webkit [188661] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add CSS will-change to the feature list
https://bugs.webkit.org/show_bug.cgi?id=148199

Reviewed by Dean Jackson.

  • features.json:
4:14 PM Changeset in webkit [188660] by eric.carlson@apple.com
  • 35 edits
    1 add in trunk

Remove ENABLE_WEBVTT_REGIONS
https://bugs.webkit.org/show_bug.cgi?id=148184

Reviewed by Jer Noble.

  • Configurations/FeatureDefines.xcconfig: Remove ENABLE_WEBVTT_REGIONS.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackRemoveCue):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::newCuesParsed):
(WebCore::InbandGenericTextTrack::newRegionsParsed):
(WebCore::InbandGenericTextTrack::fileFailedToParse):

  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::newCuesParsed):
(WebCore::InbandWebVTTTextTrack::newRegionsParsed):
(WebCore::InbandWebVTTTextTrack::fileFailedToParse):

  • html/track/InbandWebVTTTextTrack.h:
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::cueLoadingCompleted):
(WebCore::LoadableTextTrack::newRegionsAvailable):
(WebCore::LoadableTextTrack::id):

  • html/track/LoadableTextTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::~TextTrack):
(WebCore::TextTrack::removeCue):
(WebCore::TextTrack::ensureVTTRegionList):
(WebCore::TextTrack::removeRegion):
(WebCore::TextTrack::cueWillChange):

  • html/track/TextTrack.h:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.cpp:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::createCueRenderingTree):
(WebCore::VTTCue::setRegionId):
(WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
(WebCore::VTTCue::setIsActive):
(WebCore::VTTCue::removeDisplayTree):
(WebCore::VTTCue::settingName):
(WebCore::VTTCue::setCueSettings):
(WebCore::VTTCue::getCSSAlignment):

  • html/track/VTTCue.h:

(WebCore::VTTCue::regionId):

  • html/track/VTTCue.idl:
  • html/track/VTTRegion.cpp:
  • html/track/VTTRegion.h:
  • html/track/VTTRegion.idl:
  • html/track/VTTRegionList.cpp:
  • html/track/VTTRegionList.h:
  • html/track/VTTRegionList.idl:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::parseFloatPercentageValue):
(WebCore::WebVTTParser::parseFloatPercentageValuePair):
(WebCore::WebVTTParser::WebVTTParser):
(WebCore::WebVTTParser::getNewCues):
(WebCore::WebVTTParser::getNewRegions):
(WebCore::WebVTTParser::parseFileHeader):
(WebCore::WebVTTParser::parse):
(WebCore::WebVTTParser::collectMetadataHeader):
(WebCore::WebVTTParser::collectCueId):
(WebCore::WebVTTParser::resetCueValues):
(WebCore::WebVTTParser::createNewRegion):
(WebCore::WebVTTParser::collectTimeStamp):

  • html/track/WebVTTParser.h:

(WebCore::WebVTTParserClient::~WebVTTParserClient):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::newCuesParsed):
(WebCore::TextTrackLoader::newRegionsParsed):
(WebCore::TextTrackLoader::fileFailedToParse):
(WebCore::TextTrackLoader::getNewCues):
(WebCore::TextTrackLoader::getNewRegions):

  • loader/TextTrackLoader.h:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::layout):

4:06 PM Changeset in webkit [188659] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

Scrollable area container is not properly cleared when page is going into the PageCache
https://bugs.webkit.org/show_bug.cgi?id=148182
<rdar://problem/21969170>

Reviewed by Dean Jackson.

Must be tested manually going back and forth in history several times.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame): Clear the cached ScrollableAreas from the FrameView.

  • page/FrameView.cpp:

(WebCore::FrameView::clearScrollableAreas): Added.

  • page/FrameView.h:
4:04 PM Changeset in webkit [188658] by Alan Bujtas
  • 4 edits
    2 adds in trunk

outline-style: auto leaves bits behind on strava's flyby view.
https://bugs.webkit.org/show_bug.cgi?id=148178

Reviewed by Simon Fraser.

RenderView::m_maximalOutlineSize should include outline-offset.

Source/WebCore:

Test: fast/repaint/outline-auto-with-width-less-than-focus-ring-width-and-offset-repaint.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::computeMaxOutlineSize):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::adjustRectForOutlineAndShadow):

LayoutTests:

  • fast/repaint/outline-auto-with-width-less-than-focus-ring-width-and-offset-repaint-expected.txt: Added.
  • fast/repaint/outline-auto-with-width-less-than-focus-ring-width-and-offset-repaint.html: Added.
3:33 PM Changeset in webkit [188657] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix errors on bots.

Ask the backend to cleanup and terminate

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):

3:33 PM Changeset in webkit [188656] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Unexpected node preview format for an element with newlines in className attribute
https://bugs.webkit.org/show_bug.cgi?id=148192

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Brian Burg.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._nodePreview):
Replace whitespace blocks with single spaces to produce a simpler class string for previews.

3:30 PM Changeset in webkit [188655] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception in inspector page while handling event DOMStorage.domStorageItemRemoved
https://bugs.webkit.org/show_bug.cgi?id=148191

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Brian Burg.

  • UserInterface/Controllers/StorageManager.js:

(WebInspector.StorageManager.prototype.itemsCleared):
(WebInspector.StorageManager.prototype.itemRemoved):
(WebInspector.StorageManager.prototype.itemAdded):
(WebInspector.StorageManager.prototype.itemUpdated):
Check if the DOMStorage for the identifier actually exists.
Due to how the backend emits events, the page may have already
navigated when we get a storage update for the previous page.
In that case, we don't want to create a DOMStorage for the
previous page if it doesn't exist.

3:26 PM Changeset in webkit [188654] by msaboff@apple.com
  • 18 edits
    2 moves
    2 adds
    2 deletes in branches/jsc-tailcall/Source/JavaScriptCore

jsc-tailcall: Unify Register Offset classes
https://bugs.webkit.org/show_bug.cgi?id=148167

Reviewed by Basile Clement.

The is primarily a refactoring change.

Moved ftl/FTLRegisterAtOffset.{cpp,h} to jit/RegisterAtOffset.{cpp,h}.
Factored out the vector of RegisterAtOffsets in ftl/FTLUnwindInfo.{cpp,h} into a new
class in jit/RegisterAtOffsetList.{cpp,h}.
Eliminted UnwindInfo and changed UnwindInfo::parse() into a standalone function named parseUnwindInfo.
That standalone function now returns the callee saves RegisterAtOffsetList. This is stored in the
code block and used instead of UnwindInfo.
Added a little more functionality to RegisterAtOffsetList to use it instead of RegisterSaveMap and
replaced all occurances of RegisterSaveMap.
Eliminated jit/RegisterSaveMap.{cpp,h}.

(JSC::CodeBlock::setCalleeSaveRegisters):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::calleeSaveRegisters):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLJITCode.h:
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLRegisterAtOffset.cpp: Removed.
  • ftl/FTLRegisterAtOffset.h: Removed.
  • ftl/FTLUnwindInfo.cpp:

(JSC::FTL::parseUnwindInfo):
(JSC::FTL::UnwindInfo::UnwindInfo): Deleted.
(JSC::FTL::UnwindInfo::~UnwindInfo): Deleted.
(JSC::FTL::UnwindInfo::parse): Deleted.
(JSC::FTL::UnwindInfo::dump): Deleted.
(JSC::FTL::UnwindInfo::find): Deleted.
(JSC::FTL::UnwindInfo::indexOf): Deleted.

  • ftl/FTLUnwindInfo.h:
  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::copyCalleeSavesToVMCalleeSavesBuffer):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToVMCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameToVMCalleeSavesBuffer): Deleted.

  • jit/RegisterAtOffset.cpp: Copied from Source/JavaScriptCore/ftl/FTLRegisterAtOffset.cpp.

(JSC::RegisterAtOffset::dump):
(JSC::FTL::RegisterAtOffset::dump): Deleted.

  • jit/RegisterAtOffset.h: Copied from Source/JavaScriptCore/ftl/FTLRegisterAtOffset.h.

(JSC::RegisterAtOffset::reg):
(JSC::RegisterAtOffset::offset):
(JSC::RegisterAtOffset::offsetAsIndex):
(JSC::RegisterAtOffset::operator==):
(JSC::FTL::RegisterAtOffset::reg): Deleted.
(JSC::FTL::RegisterAtOffset::offset): Deleted.
(JSC::FTL::RegisterAtOffset::operator==): Deleted.

  • jit/RegisterAtOffsetList.cpp: Added.

(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
(JSC::RegisterAtOffsetList::sort):
(JSC::RegisterAtOffsetList::dump):
(JSC::RegisterAtOffsetList::find):
(JSC::RegisterAtOffsetList::indexOf):

  • jit/RegisterAtOffsetList.h: Added.

(JSC::RegisterAtOffsetList::clear):
(JSC::RegisterAtOffsetList::size):
(JSC::RegisterAtOffsetList::at):
(JSC::RegisterAtOffsetList::append):

  • jit/RegisterSaveMap.cpp: Removed.
  • jit/RegisterSaveMap.h: Removed.
  • jit/RegisterSet.cpp:

(JSC::RegisterSet::dfgCalleeSaveRegisters):
(JSC::RegisterSet::ftlCalleeSaveRegisters):
(JSC::RegisterSet::allVMCalleeSaveRegisters):
(JSC::RegisterSet::allGPRs):

  • jit/RegisterSet.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::VM::getAllCalleeSaveRegisterOffsets):
(JSC::VM::getAllCalleeSaveRegistersMap): Deleted.

3:20 PM Changeset in webkit [188653] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

Clean up our CSS files (e.g. remove prefixes)
https://bugs.webkit.org/show_bug.cgi?id=148194
<rdar://problem/22351034>

Reviewed by Brent Fulgham.

A lot of our internal CSS was still using prefixed forms of properties.
As I started cleaning those up, I noticed lots of small things
like missing semicolons and whitespace.

No change in behaviour for testing.

  • css/fullscreen.css:
  • css/html.css:
  • css/mathml.css:
  • css/mediaControls.css:
  • css/mediaControlsGtk.css:
  • css/plugIns.css:
3:09 PM Changeset in webkit [188652] by Alan Bujtas
  • 10 edits
    1 copy
    1 add in trunk

Cleanup outline-style: auto painting.
https://bugs.webkit.org/show_bug.cgi?id=148159

Reviewed by Simon Fraser.

Old platform style required the focus ring to be painted with an offset. (https://trac.webkit.org/r5358)
(and it has the side effect of growing outline-width adds further, unwanted offset)
Default css for :focus is adjusted to remove this offset by setting the outline-width to 5px
and the outline-offset to -2px. (https://trac.webkit.org/r13639)
This patch removes both the old logic and the workaround for getting rid of the unwanted offset.

Source/WebCore:

Test: fast/repaint/outline-auto-with-default-width-and-offset-repaint.html

  • css/html.css:

(:focus):
(input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus): Deleted.

  • platform/graphics/mac/GraphicsContextMac.mm:

(WebCore::GraphicsContext::drawFocusRing):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::computeMaxOutlineSize):
(WebCore::RenderElement::paintFocusRing):
(WebCore::RenderElement::paintOutline): Short circuit painting outline when painting is disabled. It
only change behaviour for non-auto outlines -which are anyway not supposed to be painted when painting is disabled.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::adjustRectForOutlineAndShadow):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::platformFocusRingWidth):
(WebCore::RenderTheme::platformFocusRingMaxWidth): Deleted.

LayoutTests:

  • fast/repaint/outline-auto-with-default-width-and-offset-repaint-expected.txt: Added.
  • fast/repaint/outline-auto-with-default-width-and-offset-repaint.html: Copied from LayoutTests/fast/repaint/outline-with2px-auto-repaint-rect.html.
  • fast/repaint/outline-with1px-auto-repaint-rect.html:
  • fast/repaint/outline-with2px-auto-repaint-rect.html:
  • fast/repaint/outline-with3px-auto-repaint-rect.html:
2:31 PM Changeset in webkit [188651] by ggaren@apple.com
  • 2 edits in trunk/Source/bmalloc

Crash @ bmalloc::Environment::computeIsBmallocEnabled
https://bugs.webkit.org/show_bug.cgi?id=148183

Reviewed by NOBODY Michael Saboff.

CrashTracer says we have some crashes beneath computeIsBmallocEnabled
dereferencing null in strstr. We null check getenv but not
_dyld_get_image_name, so deduction indicates that _dyld_get_image_name
must be returning null. _dyld_get_image_name isn't really documented,
so let's assume it can return null.

  • bmalloc/Environment.cpp:

(bmalloc::isASanEnabled): Check _dyld_get_image_name's return value for
null because we can't prove it won't be null.

2:24 PM Changeset in webkit [188650] by BJ Burg
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: use unprefixed CSS property 'filter' instead of '-webkit-filter'
https://bugs.webkit.org/show_bug.cgi?id=148186

Reviewed by Dean Jackson.

  • UserInterface/Views/BreakpointActionView.css:

(.breakpoint-action-remove-button:active):

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(.css-style-text-editor > .CodeMirror .CodeMirror-lines .invalid-warning-marker.clickable:hover):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover):
(.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active):

  • UserInterface/Views/ChartDetailsSectionRow.css:

(body.window-inactive .details-section > .content > .group > .row.chart > .chart-content > .legend > .legend-item > label > input[type=checkbox]):

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow.prototype._addCheckboxColorFilter):

  • UserInterface/Views/NewTabContentView.css:

(.new-tab.tab.content-view > .tab-item.disabled):
(.new-tab.tab.content-view > .tab-item:not(.disabled):hover > .box):
(.new-tab.tab.content-view > .tab-item:not(.disabled):active > .box):

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active):

  • UserInterface/Views/VisualStyleKeywordIconList.css:

(.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:not(.selected) > div):

  • UserInterface/Views/VisualStyleSelectorSection.css:

(.details-section.visual-style-selector-section > .header > .controls > .visual-style-selector-section-add-rule):

2:18 PM Changeset in webkit [188649] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Add support for CheckWatchdogTimer as slow path in DFG and FTL.
https://bugs.webkit.org/show_bug.cgi?id=147968

Reviewed by Michael Saboff.

Re-implement the DFG's CheckWatchdogTimer as a slow path instead of a speculation
check. Since the watchdog timer can fire spuriously, this allows the code to
stay optimized if all we have are spurious fires.

Implement the equivalent slow path for CheckWatchdogTimer in the FTL.

The watchdog tests in ExecutionTimeLimitTest.cpp has already been updated in
https://bugs.webkit.org/show_bug.cgi?id=148125 to test for the FTL's watchdog
implementation.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckWatchdogTimer):
(JSC::FTL::DFG::LowerDFGToLLVM::isInlinableSize):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • Changed operationHandleWatchdogTimer() to return an unused nullptr. This allows me to reuse the existing DFG slow path generator mechanism. I didn't think that operationHandleWatchdogTimer() was worth introducing a whole new set of machinery just so we can have a slow path that returns void.
1:41 PM Changeset in webkit [188648] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add ability to save and restore JSC options.
https://bugs.webkit.org/show_bug.cgi?id=148125

Reviewed by Saam Barati.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • Employ the new options getter/setter to run watchdog tests for each of the execution engine tiers.
  • Also altered the test scripts to be in a function instead of global code. This is one of 2 changes needed to give them an opportunity to be FTL compiled. The other is to add support for compiling CheckWatchdogTimer in the FTL (which will be addressed in a separate patch).
  • jsc.cpp:

(CommandLine::parseArguments):

  • runtime/Options.cpp:

(JSC::parse):

  • Add the ability to clear a string option with a nullptr value. This is needed to restore a default string option value which may be null.

(JSC::OptionRange::init):

  • Add the ability to clear a range option with a null value. This is needed to restore a default range option value which may be null.

(JSC::Options::initialize):
(JSC::Options::dumpOptionsIfNeeded):

  • Factor code to dump options out to dumpOptionsIfNeeded() since we will need that logic elsewhere.

(JSC::Options::setOptions):

  • Parse an options string and set each of the specified options.

(JSC::Options::dumpAllOptions):
(JSC::Options::dumpAllOptionsInALine):
(JSC::Options::dumpOption):
(JSC::Option::dump):

  • Refactored so that the underlying dumper dumps to a StringBuilder instead of stderr. This lets us reuse this code to serialize all the options into a single string for dumpAllOptionsInALine().
  • runtime/Options.h:

(JSC::OptionRange::rangeString):

1:22 PM Changeset in webkit [188647] by dino@apple.com
  • 79 edits
    2 copies
    1 add in trunk

Support CSS filters without webkit prefix
https://bugs.webkit.org/show_bug.cgi?id=148138
<rdar://problem/22331434>

Reviewed by Sam Weinig.

Source/WebCore:

Add support for the un-prefixed form of the CSS filter property.
This was straightforward for the general case on HTML content.
It was a bit more tricky on SVG content, where there already
was an existing "filter" property/attribute. The parsing
code is now shared between SVG and HTML, as is the
computed style output.

Covered by updating the existing tests, and
adding one new test: css3/filters/unprefixed.html

  • css/CSSComputedStyleDeclaration.cpp: Rename CSSPropertyWebkitFilter to CSSPropertyFilter.

(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::customCSSText): Use "filter(" as the prefix.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Rename CSSPropertyWebkitFilter to CSSPropertyFilter.
(WebCore::CSSParser::isGeneratedImageValue): Add support for "filter()".
(WebCore::CSSParser::parseGeneratedImage): Ditto.
(WebCore::CSSParser::parseBuiltinFilterArguments):

  • css/CSSPropertyNames.in: Add filter. Make -webkit-filter an alias.
  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue): Deleted.

  • page/animation/CSSPropertyAnimation.cpp: Rename CSSPropertyWebkitFilter to CSSPropertyFilter.

(WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):

  • page/animation/KeyframeAnimation.cpp: Ditto.

(WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists):

  • platform/graphics/GraphicsLayer.cpp: Rename AnimatedPropertyWebkitFilter to AnimatedPropertyFilter.

(WebCore::GraphicsLayer::validateFilterOperations):

  • platform/graphics/GraphicsLayerClient.h: Ditto.
  • platform/graphics/ca/GraphicsLayerCA.cpp: Ditto.

(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateOrRemoveFilterClients): SVG manages its own filter resources,
so we shouldn't add a layer that has an SVG root to the filter clients.

  • rendering/RenderLayerBacking.cpp: Renaming.

(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):
(WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
(WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):

  • rendering/RenderLayerCompositor.cpp: Ditto.

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

  • rendering/style/SVGRenderStyle.h: Remove the SVG filter style.

(WebCore::SVGRenderStyle::isolatesBlending): No need to check for hasFilter().
(WebCore::SVGRenderStyle::initialFilterResource): Deleted.
(WebCore::SVGRenderStyle::setFilterResource): Deleted.
(WebCore::SVGRenderStyle::filterResource): Deleted.
(WebCore::SVGRenderStyle::hasFilter): Deleted.

  • rendering/style/SVGRenderStyleDefs.cpp: Remove the filter resource.

(WebCore::StyleResourceData::StyleResourceData): Deleted.
(WebCore::StyleResourceData::operator==): Deleted.

  • rendering/style/SVGRenderStyleDefs.h:
  • rendering/style/WillChangeData.cpp: Renaming.

(WebCore::propertyCreatesStackingContext):
(WebCore::propertyTriggersCompositing):

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::isolatesBlending): Since SVGRenderStyle no longer checks
hasFilter() in its isolatesBlending(), we need to do it here.

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeResources): Dump from the CSS style value.

  • rendering/svg/SVGResources.cpp: Ditto.

(WebCore::SVGResources::buildCachedResources):

  • rendering/svg/SVGResources.h:
  • rendering/svg/SVGResourcesCache.cpp:

(WebCore::SVGResourcesCache::addResourcesFromRenderer):

  • platform/graphics/texmap/TextureMapperLayer.cpp: Renaming.
  • platform/graphics/texmap/TextureMapperAnimation.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

Source/WebKit2:

Rename WebkitFilter to Filter.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

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

LayoutTests:

Globally change -webkit-filter to filter in as many places as
possible. Then add a new test that makes sure the prefixed
and unprefixed value resolve to the same computed style.

  • animations/resources/animation-test-helpers.js:

(parseCSSImage):

  • css3/filters/backdrop/effect-hw-expected.html:
  • css3/filters/effect-blur-hw.html:
  • css3/filters/effect-blur.html:
  • css3/filters/effect-brightness-clamping-hw.html:
  • css3/filters/effect-brightness-clamping.html:
  • css3/filters/effect-brightness-hw.html:
  • css3/filters/effect-brightness.html:
  • css3/filters/effect-combined-hw.html:
  • css3/filters/effect-combined.html:
  • css3/filters/effect-contrast-hw.html:
  • css3/filters/effect-contrast.html:
  • css3/filters/effect-drop-shadow-hw.html:
  • css3/filters/effect-drop-shadow.html:
  • css3/filters/effect-grayscale-hw.html:
  • css3/filters/effect-grayscale.html:
  • css3/filters/effect-hue-rotate-hw.html:
  • css3/filters/effect-hue-rotate.html:
  • css3/filters/effect-invert-hw.html:
  • css3/filters/effect-invert.html:
  • css3/filters/effect-opacity-hw.html:
  • css3/filters/effect-opacity.html:
  • css3/filters/effect-reference-composite-hw.html:
  • css3/filters/effect-reference-composite.html:
  • css3/filters/effect-reference-hw.html:
  • css3/filters/effect-reference-ordering-hw.html:
  • css3/filters/effect-reference-ordering.html:
  • css3/filters/effect-reference.html:
  • css3/filters/effect-saturate-hw.html:
  • css3/filters/effect-saturate.html:
  • css3/filters/effect-sepia-hw.html:
  • css3/filters/effect-sepia.html:
  • css3/filters/filter-property-computed-style-expected.txt:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/script-tests/filter-property-computed-style.js:

(testComputedFilterRule):

  • css3/filters/script-tests/filter-property-parsing.js:

(testFilterRule):

  • css3/filters/script-tests/unprefixed.js: Copied from LayoutTests/css3/filters/script-tests/filter-property-computed-style.js.

(testComputedFilterRule):

  • css3/filters/unprefixed-expected.txt: Copied from LayoutTests/css3/filters/filter-property-computed-style-expected.txt.
  • css3/filters/unprefixed.html: Added.
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/filter-image/clipped-filter-expected.html:
  • fast/filter-image/clipped-filter.html:
  • fast/filter-image/filter-image-animation-expected.txt:
  • fast/filter-image/filter-image-animation.html:
  • fast/filter-image/filter-image-blur.html:
  • fast/filter-image/filter-image-expected.html:
  • fast/filter-image/filter-image-svg.html:
  • fast/filter-image/filter-image.html:
  • fast/filter-image/parse-filter-image-expected.txt:
  • fast/filter-image/parse-filter-image.html:
  • svg/css/getComputedStyle-basic-expected.txt:
1:19 PM Changeset in webkit [188646] by andersca@apple.com
  • 5 edits in trunk/Source/WebCore

More work on simplifying the WebSQL code
https://bugs.webkit.org/show_bug.cgi?id=148145

Reviewed by Tim Horton.

Eliminate SQLTransaction::sendToBackendState.

  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::stateFunctionFor):
Change sendToBackendState to unreachableState,

(WebCore::SQLTransaction::deliverTransactionCallback):
Call deliverTransactionErrorCallback directly and schedule RunStatements on the backend.

(WebCore::SQLTransaction::deliverTransactionErrorCallback):
Schedule CleanupAfterTransactionErrorCallback on the backend.

(WebCore::SQLTransaction::deliverStatementCallback):
Fold nextStateForTransactionError into here. Schedule backend states explicitly.

(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
Schedule RunStatements on the backend.

(WebCore::SQLTransaction::deliverSuccessCallback):
Schedule CleanupAndTerminate on the backend.

(WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
The return value of this function isn't used to make it return void.

(WebCore::SQLTransaction::nextStateForTransactionError): Deleted.
Remove this, it's been folded into deliverStatementCallback.

(WebCore::SQLTransaction::sendToBackendState): Deleted.
Get rid of this.

  • Modules/webdatabase/SQLTransaction.h:

Update member functions.

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::openTransactionAndPreflight):
Just call runStatements() directly.

(WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
Just call cleanupAndTerminate() directly.

(WebCore::SQLTransactionBackend::shouldPerformWhilePaused): Deleted.
Get rid of an iOS member function that's no longer used.

  • Modules/webdatabase/SQLTransactionBackend.h:

Remove member function.

12:32 PM Changeset in webkit [188645] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception while handling event DOM.pseudoElementRemoved reloading twitter pages
https://bugs.webkit.org/show_bug.cgi?id=148180

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-19
Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._visibleChildren):
DOMNode.children can be null before it is filled in.

12:09 PM Changeset in webkit [188644] by BJ Burg
  • 17 edits
    1 add in trunk

Web Inspector: InspectorTest should be a subclass of TestHarness
https://bugs.webkit.org/show_bug.cgi?id=148079

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Extract the frontend test harness into a subclass. Delete some code that
is now redundant. Sprinkle some ES6 syntax where possible.

Rewrite the code that redirects the Inspector page's console messages to
the test page, since it didn't appear to work any more.

  • UserInterface/Test.html: Add debug options here, and a wiki link.
  • UserInterface/Test/FrontendTestHarness.js: Added.

(FrontendTestHarness):
(FrontendTestHarness.prototype.completeTest):
(FrontendTestHarness.prototype.addResult):
(FrontendTestHarness.prototype.debugLog):
(FrontendTestHarness.prototype.evaluateInPage):
(FrontendTestHarness.prototype.expectNoError):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput.createProxyConsoleHandler):
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults):

  • UserInterface/Test/Test.js:

(WebInspector.loaded):
(WebInspector.UIString): Arrow it.
(WebInspector.updateDockedState): Arrow it.
(WebInspector.updateDockingAvailability): Arrow it.
(InspectorTest.EventDispatcher.prototype.dispatchEvent): Deleted.
(InspectorTest.EventDispatcher): Deleted.
(InspectorTest.log): Deleted.
(InspectorTest.assert): Deleted.
(InspectorTest.expectThat): Deleted.
(InspectorTest.debugLog): Deleted.
(InspectorTest.expectNoError): Deleted.
(InspectorTest.completeTest): Deleted.
(InspectorTest.evaluateInPage): Deleted.
(InspectorTest.addResult): Deleted.
(InspectorTest._resendResults): Deleted.
(InspectorTest.testPageDidLoad): Deleted.
(InspectorTest.reloadPage): Deleted.
(InspectorTest.reportUncaughtException): Deleted.

  • UserInterface/Test/TestSuite.js: Clean an unnecessary self = this.

(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):

  • UserInterface/TestStub.html: Add matching link to wiki.

LayoutTests:

Rename InspectorTestProxy to TestPage. Update some code style in
the harness script files to be consistent.

  • http/tests/inspector/debugger/debugger-test.js:
  • http/tests/inspector/dom/shapes-test.js:
  • http/tests/inspector/replay/replay-test.js:
  • http/tests/inspector/resources/inspector-test.js:

(TestPage.registerInitializer):
(runTest.runInitializationMethodsInFrontend):
(runTest.runTestMethodInFrontend):
(runTest):
(TestPage.completeTest):
(TestPage.debugLog):
(TestPage.addResult):
(TestPage.reportUncaughtException):
(InspectorTestProxy.registerInitializer): Deleted.
(InspectorTestProxy.completeTest): Deleted.
(InspectorTestProxy.debugLog): Deleted.
(InspectorTestProxy.addResult): Deleted.
(InspectorTestProxy.reportUncaughtException): Deleted.

  • inspector/debugger/breakpoint-action-eval.html:
  • inspector/debugger/resources/break-on-exception-tests.js:
  • inspector/debugger/resources/script-for-breakpoint-actions.js:

(breakpointActions):

  • inspector/debugger/search-scripts.html:
  • inspector/replay/window-navigator-plugins-memoized.html:
  • inspector/timeline/debugger-paused-while-recording.html:
  • inspector/timeline/exception-in-injected-script-while-recording.html:
11:37 AM Changeset in webkit [188643] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Build TestWTF on Mac with CMake.
https://bugs.webkit.org/show_bug.cgi?id=147972

Patch by Alex Christensen <achristensen@webkit.org> on 2015-08-19
Reviewed by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:

Enable API tests in Mac's CMake build.

Source/WebKit2:

  • PlatformMac.cmake:

Make more forwarding headers.

Tools:

TestWTF only depends on gtest and WTF instead of TestWebKitAPi depending on all of WebKit.
Now I can run the WTF API tests after a few seconds of building instead of waiting for all of WebKit to build.

  • TestWebKitAPI/CMakeLists.txt:

Added WTF as a dependency for platforms that do not have ForwardingHeadersForTestWebKitAPI_NAME.
WTF was already a library that was linked, but having at least one item makes the syntax of add_dependencies work.

  • TestWebKitAPI/PlatformMac.cmake: Added.
  • TestWebKitAPI/config.h:

Postpone some build fixes until WebKit builds completely on Mac with CMake.

11:18 AM Changeset in webkit [188642] by fpizlo@apple.com
  • 67 edits in trunk/Source

Replace all uses of std::mutex/std::condition_variable with WTF::Lock/WTF::Condition
https://bugs.webkit.org/show_bug.cgi?id=148140

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::registerDebuggable):
(Inspector::RemoteInspector::unregisterDebuggable):
(Inspector::RemoteInspector::updateDebuggable):
(Inspector::RemoteInspector::updateDebuggableAutomaticInspectCandidate):
(Inspector::RemoteInspector::sendMessageToRemoteFrontend):
(Inspector::RemoteInspector::setupFailed):
(Inspector::RemoteInspector::setupCompleted):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stop):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
(Inspector::RemoteInspector::setParentProcessInformation):
(Inspector::RemoteInspector::xpcConnectionReceivedMessage):
(Inspector::RemoteInspector::xpcConnectionFailed):
(Inspector::RemoteInspector::pushListingSoon):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedProxyApplicationSetupMessage):

  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::close):
(Inspector::RemoteInspectorXPCConnection::closeFromMessage):
(Inspector::RemoteInspectorXPCConnection::deserializeMessage):
(Inspector::RemoteInspectorXPCConnection::handleEvent):

Source/WebCore:

No new tests because no new behavior.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::process):
(WebCore::ConvolverNode::reset):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::process):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::process):
(WebCore::OscillatorNode::setPeriodicWave):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):
(WebCore::WaveShaperProcessor::process):

  • Modules/webaudio/WaveShaperProcessor.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::retrieveTextResultFromDatabase):
(WebCore::guidToVersionMap):
(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::closeDatabase):
(WebCore::Database::getCachedVersion):
(WebCore::Database::setCachedVersion):
(WebCore::guidMutex): Deleted.

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::didConstructDatabaseContext):
(WebCore::DatabaseManager::didDestructDatabaseContext):
(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • Modules/webdatabase/DatabaseManager.h:
  • bindings/objc/DOMInternal.mm:

(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):
(wrapperCacheLock): Deleted.

  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::singleton):
(WebCore::CryptoAlgorithmRegistry::CryptoAlgorithmRegistry):
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
(WebCore::registryMutex): Deleted.

  • inspector/WorkerDebuggerAgent.cpp:

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

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::clearAllTestDeferrals):
(WebCore::WheelEventTestTrigger::setTestCallbackAndStartNotificationTimer):
(WebCore::WheelEventTestTrigger::deferTestsForReason):
(WebCore::WheelEventTestTrigger::removeTestDeferralForReason):
(WebCore::WheelEventTestTrigger::triggerTestTimerFired):

  • page/WheelEventTestTrigger.h:
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):

  • page/scrolling/ScrollingThread.h:
  • page/scrolling/mac/ScrollingThreadMac.mm:

(WebCore::ScrollingThread::initializeRunLoop):

  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::~ReverbConvolver):
(WebCore::ReverbConvolver::backgroundThreadEntry):
(WebCore::ReverbConvolver::process):
(WebCore::ReverbConvolver::reset):

  • platform/audio/ReverbConvolver.h:
  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/Language.mm:

(WebCore::preferredLanguages):
(+[WebLanguageChangeObserver languagePreferencesDidChange:]):
(WebCore::platformUserPreferredLanguages):
(WebCore::preferredLanguagesMutex): Deleted.

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::emptyPerform):
(WebCore::runLoaderThread):
(WebCore::loaderRunLoop):
(WebCore::loaderRunLoopMutex): Deleted.
(WebCore::loaderRunLoopConditionVariable): Deleted.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::callOnMainThreadAndWait):

  • platform/network/curl/SocketStreamHandle.h:
  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::sendData):

  • platform/sql/SQLiteDatabaseTracker.cpp:

(WebCore::SQLiteDatabaseTracker::setClient):
(WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::transactionInProgressMutex): Deleted.

  • platform/text/TextBreakIterator.cpp:

(WebCore::compareAndSwapNonSharedCharacterBreakIterator):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::newTextCodec):
(WebCore::atomicCanonicalTextEncodingName):
(WebCore::dumpTextEncodingNameMap):
(WebCore::encodingRegistryMutex): Deleted.

  • workers/WorkerThread.cpp:

(WebCore::workerThreads):
(WebCore::WorkerThread::workerThreadCount):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::~WorkerThread):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
(WebCore::threadSetMutex): Deleted.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::traverse):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::SyncMessageState::dispatchMessageAndResetDidScheduleDispatchMessagesForConnection):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
(IPC::Connection::hasIncomingSyncMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchOneMessage):

  • Platform/IPC/Connection.h:
  • Shared/BlockingResponseMap.h:

(BlockingResponseMap::waitForResponse):
(BlockingResponseMap::didReceiveResponse):
(BlockingResponseMap::cancel):

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::PluginInfoCache::saveToFile):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/Plugins/gtk/PluginInfoCache.h:
  • UIProcess/mac/WKPrintingView.h:
  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(prepareDataForPrintingOnSecondaryThread):
(-[WKPrintingView knowsPageRange:]):

Source/WTF:

Also beef up Condition by giving it a StaticCondition variant.

  • wtf/Condition.h:

(WTF::ConditionBase::notifyAll):
(WTF::ConditionBase::waitForSecondsImpl):
(WTF::ConditionBase::absoluteFromRelative):
(WTF::Condition::Condition):
(WTF::Condition::notifyAll): Deleted.
(WTF::Condition::waitForSecondsImpl): Deleted.
(WTF::Condition::absoluteFromRelative): Deleted.

  • wtf/CryptographicallyRandomNumber.cpp:
  • wtf/HashTable.cpp:

(WTF::HashTableStats::recordCollisionAtCount):
(WTF::HashTableStats::dumpStats):
(WTF::hashTableStatsMutex): Deleted.

  • wtf/HashTable.h:

(WTF::KeyTraits>::HashTable):
(WTF::KeyTraits>::invalidateIterators):
(WTF::addIterator):
(WTF::removeIterator):

  • wtf/Lock.h:
  • wtf/MainThread.cpp:

(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
(WTF::cancelCallOnMainThread):
(WTF::mainThreadFunctionQueueMutex): Deleted.

  • wtf/StackStats.cpp:

(WTF::StackStats::PerThreadStats::PerThreadStats):
(WTF::StackStats::CheckPoint::CheckPoint):
(WTF::StackStats::CheckPoint::~CheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
(WTF::StackStats::initialize): Deleted.

  • wtf/StackStats.h:

(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::initialize): Deleted.

  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:

(WTF::callOnMainThread):
(WTF::lockAtomicallyInitializedStaticMutex):
(WTF::unlockAtomicallyInitializedStaticMutex):
(WTF::atomicallyInitializedStaticMutex): Deleted.

  • wtf/text/StringView.cpp:

(WTF::StringView::UnderlyingString::UnderlyingString):
(WTF::underlyingStrings):
(WTF::StringView::invalidate):
(WTF::StringView::adoptUnderlyingString):
(WTF::StringView::setUnderlyingString):
(WTF::underlyingStringsMutex): Deleted.

  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::Collator):
(WTF::Collator::~Collator):
(WTF::cachedCollatorMutex): Deleted.

11:13 AM Changeset in webkit [188641] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Scroll snapping should trigger when receiving a momentum end wheel event
https://bugs.webkit.org/show_bug.cgi?id=148155

Reviewed by Alexey Proskuryakov.

No new tests, since the purpose of this patch is to get existing tests to pass when
allowing similar wheel events to coalesce. To accomplish this, we relax our assumption
that the user must have generated at least 3 momentum wheel events in order for the
gliding animation to trigger. Upon receiving a wheel event indicating the end of the
momentum phase, we now kick off the gliding animation as long as any momentum event
was tracked earlier in the gesture with a nonzero wheel delta.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::processWheelEventForScrollSnapOnAxis): Added logic to

begin a glide animation if we have received a momentum end event but have not
yet triggered a gliding animation.

  • platform/cocoa/ScrollSnapAnimatorState.h:
  • platform/cocoa/ScrollSnapAnimatorState.mm:

(WebCore::ScrollSnapAnimatorState::wheelDeltaTrackingIsInProgress): Minor refactoring

to make the wheel event processing code more readable.

(WebCore::ScrollSnapAnimatorState::hasFinishedTrackingWheelDeltas): Ditto.

9:50 AM Changeset in webkit [188640] by Chris Dumez
  • 7 edits
    3 adds in trunk

WebKit may keep outdated entry in the disk cache after a reload
https://bugs.webkit.org/show_bug.cgi?id=148137
<rdar://problem/22299547>

Reviewed by Antti Koivisto.

Source/WebKit2:

WebKit would keep outdated entry in the disk cache after a reload
in the following scenario:

  1. We have an entry in the cache
  2. The user reloads
  3. We get a fresh resource from the network but this one is not cacheable

In this case, we now remove the stale entry from the cache to make sure
it is not served to following requests (e.g. history navigations).

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
Remove the entry from the cache if its redirection is no longer
cacheable.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):
If we make the decision not to store the response, then remove the
entry in the cache for this resource if it exists.

(WebKit::NetworkCache::Cache::remove):

  • NetworkProcess/cache/NetworkCache.h:

Add new remove() overload taking a ResourceRequest argument so the
call site does not have the compute the key.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::removeFromPendingWriteOperations):
(WebKit::NetworkCache::Storage::remove):

  • NetworkProcess/cache/NetworkCacheStorage.h:

When we're asked to remove an entry with a given key, also remove
it from the pending write operations. This pre-existing bug would
prevent the new layout test from passing.

LayoutTests:

Add layout test to make sure that stale disk cached entries are removed
when it becomes uncacheable.

  • http/tests/cache/disk-cache/resource-becomes-uncacheable-expected.txt: Added.
  • http/tests/cache/disk-cache/resource-becomes-uncacheable.html: Added.
  • http/tests/cache/disk-cache/resources/generate-response-optionally-cacheable.cgi: Added.
9:14 AM Changeset in webkit [188639] by BJ Burg
  • 13 edits
    1 move
    6 adds
    1 delete in trunk

Web Inspector: split TestStub.js into multiple files and modernize it
https://bugs.webkit.org/show_bug.cgi?id=148077

Reviewed by Timothy Hatcher.
Source/WebInspectorUI:

Since we want to share files between the two harnesses, split some of the parts
into different files so not everything has to be included at once.

Rename InjectedTestHarness to just TestHarness. Update some code to use
ES6 features where appropriate. Put test classes into Test/ directory.

  • UserInterface/Base/TestStub.js: Removed.
  • UserInterface/Test.html:
  • UserInterface/Test/InspectorProtocol.js: Added.

(InspectorProtocol.sendCommand):
(InspectorProtocol.awaitCommand):
(InspectorProtocol.awaitEvent.):
(InspectorProtocol.awaitEvent):
(InspectorProtocol.addEventListener):
(InspectorProtocol.sendMessage):
(InspectorProtocol.checkForError):
(InspectorProtocol.dispatchMessageFromBackend):

  • UserInterface/Test/ProtocolTestHarness.js: Added.

(ProtocolTestHarness.prototype.completeTest):
(ProtocolTestHarness.prototype.addResult):
(ProtocolTestHarness.prototype.debugLog):
(ProtocolTestHarness.prototype.evaluateInPage):
(ProtocolTestHarness):

  • UserInterface/Test/Test.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Test.js.

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.UIString):
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
(InspectorTest.EventDispatcher.prototype.dispatchEvent):
(InspectorTest.EventDispatcher):
(InspectorTest.log):
(InspectorTest.assert):
(InspectorTest.expectThat):
(InspectorTest.debugLog):
(InspectorTest.expectNoError):
(InspectorTest.completeTest):
(InspectorTest.evaluateInPage):
(InspectorTest.addResult):
(InspectorTest._resendResults):
(InspectorTest.testPageDidLoad):
(InspectorTest.reloadPage):
(InspectorTest.reportUncaughtException):

  • UserInterface/Test/TestHarness.js: Added.

(TestHarness):
(TestHarness.prototype.completeTest):
(TestHarness.prototype.addResult):
(TestHarness.prototype.debugLog):
(TestHarness.prototype.evaluateInPage):
(TestHarness.prototype.createAsyncSuite):
(TestHarness.prototype.createSyncSuite):
(TestHarness.prototype.get logCount):
(TestHarness.prototype.log):
(TestHarness.prototype.assert):
(TestHarness.prototype.expectThat):

  • UserInterface/Test/TestStub.js: Added.
  • UserInterface/Test/TestSuite.js: Added.

(TestSuite):
(TestSuite.prototype.runTestCasesAndFinish):
(TestSuite.prototype.runTestCases):
(TestSuite.prototype.get passCount):
(TestSuite.prototype.get skipCount):
(TestSuite.prototype.addTestCase):
(AsyncTestSuite.prototype.runTestCasesAndFinish.finish):
(AsyncTestSuite.prototype.runTestCasesAndFinish):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCasesAndFinish):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):

  • UserInterface/TestStub.html:

LayoutTests:

Add the prefix 'TestPage' to everything in protocol-test.js. Continue
exporting it to the global namespace for backwards compatibility, too.

Rename some things to match changes in the test harness. Tighten up
preconditions for test suite and test case names. Sprinkle some ES6.

  • http/tests/inspector/dom/resources/InspectorDOMListener.js:
  • http/tests/inspector/resources/console-test.js:
  • http/tests/inspector/resources/probe-test.js:
  • http/tests/inspector/resources/protocol-test.js:

(TestPage.registerInitializer):
(TestPage.debugLog.window.debugLog):
(TestPage.log.window.log):
(TestPage.closeTest.window.closeTest):
(TestPage.runTest.window.runTest):
(ProtocolTestProxy.registerInitializer): Deleted.
(debugLog): Deleted.
(log): Deleted.
(closeTest): Deleted.
(runTest): Deleted.

  • inspector/dom/resources/dom-search-queries.js:
  • inspector/unit-tests/async-test-suite.html:
  • inspector/unit-tests/sync-test-suite.html:
8:38 AM Changeset in webkit [188638] by BJ Burg
  • 2 edits in trunk/Tools

Unreviewed, add Aleksandr Skachkov to the list of contributors.

  • Scripts/webkitpy/common/config/contributors.json:
2:35 AM Changeset in webkit [188637] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pressing Command-Enter should re-evaluate selected console user command
https://bugs.webkit.org/show_bug.cgi?id=147918

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._keyDown):
(WebInspector.LogContentView.prototype._commandEnterWasPressed):
Only re-evaluate one selected user command.

12:12 AM Changeset in webkit [188636] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r188581): Web Inspector: Console user command isn't visible after reloading the page
https://bugs.webkit.org/show_bug.cgi?id=148166

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.startNewSession):

12:11 AM Changeset in webkit [188635] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r188581): Web Inspector: Option-Enter no longer inserts a new line in the console
https://bugs.webkit.org/show_bug.cgi?id=148165

Make Option-Enter insert a new line, as it was before r188581.
Make Command-Enter keep executed command in the prompt.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey): Deleted.
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey): Deleted.

Aug 18, 2015:

11:23 PM Changeset in webkit [188634] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[Cocoa] Punctuation near Hindi text is garbled when styled with the system font
https://bugs.webkit.org/show_bug.cgi?id=148164

Reviewed by Brian Burg.

Source/WebCore:

Fonts cache whether or not they are the system font. This caching took place at the end of Font::platformInit().
However, in the middle of Font::platformInit(), we look up a glyph, which calls GlyphPage::fill() which consults
with this cache. However, at this point, the cache has not been constructed yet. The solution is just to
construct the cache earlier (at the beginning of the function).

Consulting with the cache before it is populated causes it to erroneously say that no fonts are system fonts.
Then, we use Core Graphics to ask for glyphs instead of Core Text. Core Graphics, however, is incapable of
handling the system font, and returns us garbled results. In particular, when the system language is set to
Japanese, the system font does not support punctuation, and Core Text tells us so. However, Core Graphics
erroneously tells us that the system font does support punctuation.

Then, if text is near the punctuation which causes us to take the complex text codepath (such as Hindi text),
we tell Core Text to explicitly lay out the punctuation using the system font (which does not support
punctuation). Core Text then replies that the provided font doesn't support the punctuation, and that we should
use LastResort with some other glyphs instead. WebKit then disregards the font CoreText told us to use (because
we are oh-so-sure that the font in question supports punctuation) and uses the LastResort glyph IDs with our
font, which causes arbitrary glyphs to be shown.

Test: fast/text/hindi-system-font-punctuation.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

LayoutTests:

This test is only relevant when the system font is set to Japanese or Simplified Chinese. In these
languages, the system font doesn't support punctuation, but CG will erroneously say that it does.

I intend to implement testing infrastructure which will allow us to mock the system language,
thereby allowing this test to be valid on all machines. The tracking bug for this effort is
https://bugs.webkit.org/show_bug.cgi?id=148168

  • fast/text/hindi-system-font-punctuation-expected.html: Added.
  • fast/text/hindi-system-font-punctuation.html: Added.
10:52 PM Changeset in webkit [188633] by zandobersek@gmail.com
  • 7 edits in trunk/Source

[GLib] GMainLoopSource should receive the std::function<> objects through rvalue references
https://bugs.webkit.org/show_bug.cgi?id=147981

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::runTaskInQueue): Move the std::function<> into the scheduling call.

Source/WTF:

Scheduling methods on GMainLoopSource and GThreadSafeMainLoopSource should
have the std::function<> objects passed through rvalue references, and should
move the passed-in objects forward when required.

  • wtf/glib/GMainLoopSource.cpp:

(WTF::GMainLoopSource::schedule):
(WTF::GMainLoopSource::scheduleAfterDelay):
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):

  • wtf/glib/GMainLoopSource.h:
  • wtf/glib/GThreadSafeMainLoopSource.cpp:

(WTF::GThreadSafeMainLoopSource::schedule):
(WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):

  • wtf/glib/GThreadSafeMainLoopSource.h:
10:09 PM Changeset in webkit [188632] by BJ Burg
  • 2 edits in trunk/LayoutTests

[Win] Test Gardening after r188598

Unreviewed. Really skip all inspector/ tests until the test harnesses are fixed.
This work is tracked by <https://bugs.webkit.org/show_bug.cgi?id=148025> and
<https://bugs.webkit.org/show_bug.cgi?id=148037>.

  • platform/win/TestExpectations:
10:00 PM Changeset in webkit [188631] by commit-queue@webkit.org
  • 14 edits
    4 adds in trunk

Web Inspector: Links for rules in <style> are incorrect, do not account for <style> offset in the document
https://bugs.webkit.org/show_bug.cgi?id=148141

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-18
Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Extend StyleSheetHeader to include start offset information and a bit
for whether or not this was an inline style tag created by the parser.
These match additions to Blink's protocol.

Source/WebCore:

Test: inspector/css/getAllStyleSheets.html

  • css/CSSStyleSheet.h:
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::create):
(WebCore::CSSStyleSheet::createInline):
(WebCore::CSSStyleSheet::CSSStyleSheet):
Include the starting position when created by the Parser.
Default to the minimum position, which should never be
possible for an inline <style> because the "<style>" characters
themselves require at least some offset.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):
Provide the start position offset for this stylesheet if it was inline.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
Include new protocol values for the style sheet.

Source/WebInspectorUI:

  • UserInterface/Controllers/CSSStyleManager.js:

(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.get styleSheets):
(WebInspector.CSSStyleManager.prototype.fetchStyleSheetsIfNeeded):
(WebInspector.CSSStyleManager.prototype.styleSheetForIdentifier):
(WebInspector.CSSStyleManager.prototype._mainResourceDidChange):
Update more information about a StyleSheet when fetched.

  • UserInterface/Models/CSSRule.js:

(WebInspector.CSSRule.prototype.update):
Eliminate usage of delete.

  • UserInterface/Models/CSSStyleSheet.js:

(WebInspector.CSSStyleSheet):
(WebInspector.CSSStyleSheet.prototype.get startLineNumber):
(WebInspector.CSSStyleSheet.prototype.get startColumnNumber):
(WebInspector.CSSStyleSheet.prototype.hasInfo):
(WebInspector.CSSStyleSheet.prototype.isInlineStyleTag):
(WebInspector.CSSStyleSheet.prototype.updateInfo):
Include more information about this stylesheet.

(WebInspector.CSSStyleSheet.prototype.offsetSourceCodeLocation):
Include helper API to offset a source code location by the startLine/Column
of this stylesheet itself, if it was an inline style.

(WebInspector.CSSStyleSheet.prototype.isInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyleAttributeStyleSheet):
(WebInspector.CSSStyleSheet.isInlineStyle): Deleted.
(WebInspector.CSSStyleSheet.prototype.markAsInlineStyle): Deleted.
Rename for clarity.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.refresh):
Fetch stylesheet header information eagerly, so we have them early on.

(WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Offset sourceCodeLocations for CSSRules based on the StyleSheet offset.

  • UserInterface/Models/SourceCodeLocation.js:

(WebInspector.SourceCodeLocation.prototype.update):
Improve coding style.

LayoutTests:

  • inspector/css/getAllStyleSheets-expected.txt: Added.
  • inspector/css/getAllStyleSheets.html: Added.
  • inspector/css/resources/external.css: Added.

(body):
Test for style sheet header information for external and inline stylesheets.

9:56 PM Changeset in webkit [188630] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add proper formatting for editing styles in the Visual Panel
https://bugs.webkit.org/show_bug.cgi?id=148147

Reviewed by Timothy Hatcher.

Editing styles in the Visual styles panel now preserves whitespace in the related resource file.

  • UserInterface/Views/VisualStylePropertyCombiner.js:

(WebInspector.VisualStylePropertyCombiner):
(WebInspector.VisualStylePropertyCombiner.prototype.modifyPropertyText):

  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor):
(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):
(WebInspector.VisualStylePropertyEditor.prototype.modifyPropertyText):

9:54 PM Changeset in webkit [188629] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Add support for positioning Visual editors on non-retina displays
https://bugs.webkit.org/show_bug.cgi?id=148160

Reviewed by Timothy Hatcher.

Cleans up the positioning, dimensions, and widths of the
Visual editors on non-retina displays.

  • UserInterface/Views/VisualStyleColorPicker.css:

(.visual-style-property-container.input-color-picker > .visual-style-property-value-container > input):

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row.visual-style-separated-row):
(@media (-webkit-min-device-pixel-ratio: 2)):

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._clearModifiedSection):

  • UserInterface/Views/VisualStylePropertyEditorLink.css:

(.visual-style-property-editor-link):
(.visual-style-property-editor-link > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border):
(.visual-style-property-editor-link > .visual-style-property-editor-link-icon):
(.visual-style-property-editor-link:not(.link-all) > .visual-style-property-editor-link-icon):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.left):
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-icon:hover + .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all.linked > .visual-style-property-editor-link-border.right): Deleted.
(.visual-style-property-editor-link.link-all > .visual-style-property-editor-link-icon): Deleted.

  • UserInterface/Views/VisualStyleSelectorTreeItem.css:

(.item.visual-style-selector-item > input[type="checkbox"]):
(.item.visual-style-selector-item > .icon):
(.item.visual-style-selector-item.selector-invalid > .titles > .title::before):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.item.visual-style-selector-item > .titles):
(.item.visual-style-selector-item.selector-invalid > .icon): Deleted.

  • UserInterface/Views/VisualStyleTimingEditor.css:

(.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor):
(@media (-webkit-min-device-pixel-ratio: 2)):

9:50 PM Changeset in webkit [188628] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Show the computed value in an overlay for numerical Visual Editors
https://bugs.webkit.org/show_bug.cgi?id=148161

Reviewed by Timothy Hatcher.

Adds an "Unchanged" option to the number-based Visual editors that shows the
computed value if it is not a number (it would therefore be a keyword).

  • UserInterface/Views/VisualStyleNumberInputBox.css:

(.visual-style-property-container > .visual-style-property-value-container > .number-input-container):
(.visual-style-property-container > .visual-style-property-value-container > .number-input-container:not(.has-value) > span):

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox):
(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.get units):
(WebInspector.VisualStyleNumberInputBox.prototype.set units):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
(WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
(WebInspector.VisualStyleNumberInputBox.prototype.set _unitsElementTextContent):
(WebInspector.VisualStyleNumberInputBox.prototype._markUnitsContainerIfInputHasValue):
(WebInspector.VisualStyleNumberInputBox.prototype._keywordChanged):
(WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
(WebInspector.VisualStyleNumberInputBox.prototype._numberInputChanged):

9:50 PM Changeset in webkit [188627] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

[iOS] Safari’s Web Content process crashes when decoding an NSError containing an identity
https://bugs.webkit.org/show_bug.cgi?id=148135

Reviewed by Sam Weinig.

  • Configurations/WebContent-iOS.entitlements: Added the com.apple.identities keychain access group. The Networking process already has it since r169655.
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize): Always allow the UI process to decode keys.

9:35 PM Changeset in webkit [188626] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Small Caps variant checkbox should be to the left of the Small Caps label
https://bugs.webkit.org/show_bug.cgi?id=148102

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleKeywordCheckbox.css:

(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input): Deleted.
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::after):
(.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::before): Deleted.

9:23 PM Changeset in webkit [188625] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] Web Inspector: make to use StringBuilder in inspectorBaseURL
https://bugs.webkit.org/show_bug.cgi?id=148126

Patch by Jincheol Jo <jincheol.jo@navercorp.com> on 2015-08-18
Reviewed by Gyuyoung Kim.

  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):

9:09 PM Changeset in webkit [188624] by benjamin@webkit.org
  • 20 edits
    6 adds in trunk

[JSC] Optimize more cases of something-compared-to-null/undefined
https://bugs.webkit.org/show_bug.cgi?id=148157

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-18
Reviewed by Geoffrey Garen and Filip Pizlo.

Source/JavaScriptCore:

CompareEq is fairly trivial if you assert one of the operands is either
null or undefined. Under those conditions, the only way to have "true"
is to have the other operand be null/undefined or have an object
that masquerades to undefined.

JSC already had a fast path in CompareEqConstant.
With this patch, I generalize this fast path to more cases and try
to eliminate the checks whenever possible.

CompareEq now does the job of CompareEqConstant. If any operand can
be proved to be undefined/other, its edge is set to OtherUse. Whenever
any edge is OtherUse, we generate the fast code we had for CompareEqConstant.

The AbstractInterpreter has additional checks to reduce the node to a constant
whenever possible.

There are two additional changes in this patch:
-The Fixup Phase tries to set edges to OtherUse early. This is done correctly

in ConstantFoldingPhase but setting it up early helps the phases relying
on Clobberize.

-The codegen for CompareEqConstant was improved. The reason is the comparison

for ObjectOrOther could be faster just because the codegen was better.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Deleted.

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC): Deleted.

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::isUndefinedOrNullConstant):

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

(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Deleted.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compare):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::isKnownNotOther):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompareNull): Deleted.
(JSC::DFG::SpeculativeJIT::compile): Deleted.

  • dfg/DFGValidate.cpp:

(JSC::DFG::Validate::validate): Deleted.

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileCompareEqConstant): Deleted.

  • tests/stress/compare-eq-on-null-and-undefined-non-peephole.js: Added.

(string_appeared_here.useForMath):
(testUseForMath):

  • tests/stress/compare-eq-on-null-and-undefined-optimized-in-constant-folding.js: Added.

(string_appeared_here.unreachableCodeTest):
(inlinedCompareToNull):
(inlinedComparedToUndefined):
(warmupInlineFunctions):
(testInlineFunctions):

  • tests/stress/compare-eq-on-null-and-undefined.js: Added.

(string_appeared_here.compareConstants):
(opaqueNull):
(opaqueUndefined):
(compareConstantsAndDynamicValues):
(compareDynamicValues):
(compareDynamicValueToItself):
(arrayTesting):
(opaqueCompare1):
(testNullComparatorUpdate):
(opaqueCompare2):
(testUndefinedComparatorUpdate):
(opaqueCompare3):
(testNullAndUndefinedComparatorUpdate):

LayoutTests:

  • js/dom/document-all-watchpoint-covers-eliminated-compare-eq-expected.txt: Added.
  • js/dom/document-all-watchpoint-covers-eliminated-compare-eq.html: Added.
  • js/dom/script-tests/document-all-watchpoint-covers-eliminated-compare-eq.js: Added.

(compareFunction):

9:03 PM WebInspectorDebugging edited by BJ Burg
add defaults key for inspecting the remote inspector. (diff)
7:09 PM Changeset in webkit [188623] by Wenson Hsieh
  • 3 edits
    1 copy
    2 moves in trunk/LayoutTests

Attempt to fix the failing search-padding-cancel-results-buttons.html test by making
platform-specific versions of the test.

  • TestExpectations: Added search-padding-cancel-results-buttons-expected.txt with a default [ Skip ].
  • fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt.
  • fast/forms/search/search-padding-cancel-results-buttons.html: Renamed from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html.
  • platform/mac-mavericks/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Renamed from LayoutTests/platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt.
  • platform/mac/TestExpectations: Enable the test only for Mac platforms.
6:55 PM Changeset in webkit [188622] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Add null check in ImageBufferData::getData
https://bugs.webkit.org/show_bug.cgi?id=148156
<rdar://problem/22337157>

Reviewed by Simon Fraser.

We're getting a number of crash reports that suggest the allocation
of the result buffer has failed, but have been unable to reproduce.
This patch adds a null check to the allocation, and logs a message
to the system console. This might avoid the crashes, and hopefully
we'll see the message.

No new tests, since we're unable to reproduce this crash.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData): Add a null-check and early
return.

6:41 PM Changeset in webkit [188621] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual editor links should unlink when switching styles
https://bugs.webkit.org/show_bug.cgi?id=148153

Reviewed by Timothy Hatcher.

Visual editor links are now deactivated when switching rules/nodes.

  • UserInterface/Images/VisualStylePropertyUnlinked.svg:
  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):

  • UserInterface/Views/VisualStylePropertyEditorLink.js:

(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
(WebInspector.VisualStylePropertyEditorLink.prototype._iconClicked):
(WebInspector.VisualStylePropertyEditorLink):

6:37 PM Changeset in webkit [188620] by clopez@igalia.com
  • 2 edits in trunk/Tools

REGRESSION(r188548): [GTK] Build broken.
https://bugs.webkit.org/show_bug.cgi?id=148154

Reviewed by Martin Robinson.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::updatePlatformSpecificViewOptionsForTest):
Even if we don't need to add/override any settings in ViewOptions,
we need to define this as an empty function to make it build.

6:28 PM Changeset in webkit [188619] by Chris Dumez
  • 19 edits in trunk/Source/WebCore

Use CSSValuePool::singleton() instead of cssValuePool()
https://bugs.webkit.org/show_bug.cgi?id=148132

Reviewed by Simon Fraser.

Use CSSValuePool::singleton() instead of cssValuePool() to access the
global CSSValuePool instance, as per coding style.

6:25 PM Changeset in webkit [188618] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Fix conversion-null warning in conversion.cpp of TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=148073

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/Tests/WTF/Condition.cpp: Use EXPECT_FALSE instead of EXPECT_EQ.

(TestWebKitAPI::TEST):

6:22 PM Changeset in webkit [188617] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Consider showing style summary on collapsed visual sidebar sections
https://bugs.webkit.org/show_bug.cgi?id=148104

Reviewed by Timothy Hatcher.

The blue indicator dot on a section now means that that section has at least one set value.
If a section has been modified, it will display a trash can that will clear those modifications.

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .visual > .details-section .details-section.has-set-property > .header > span::after):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.modified > .header > span::after): Deleted.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
(WebInspector.VisualStyleDetailsPanel.prototype._sectionModified):
(WebInspector.VisualStyleDetailsPanel.prototype._groupHasSetProperty):

6:18 PM Changeset in webkit [188616] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: round sub-pixel values we get from computed style in visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=148105

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleNumberInputBox.js:

(WebInspector.VisualStyleNumberInputBox.prototype.set value):
(WebInspector.VisualStyleNumberInputBox.prototype.set placeholder):
Now rounds the value and placeholder to the nearest 100th.

6:04 PM Changeset in webkit [188615] by mrajca@apple.com
  • 4 edits in trunk/Source/WebCore

Media Session: don't begin listening for interruptions when an interruption provider is created
https://bugs.webkit.org/show_bug.cgi?id=148109

Reviewed by Eric Carlson.

If we call beginListeningForInterruption in MediaSessionInterruptionProvider's constructor, the current
class's implementation will get called, not implementations provided by subclasses (this makes sense since base
classes are initialized before derived classes). To fix this, we let clients of
MediaSessionInterruptionProvider start listening for interruptions instead. As a corollary of this, we can make
MediaSessionInterruptionProvider's methods pure virtual.

  • Modules/mediasession/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::MediaSessionManager):

  • platform/mediasession/MediaSessionInterruptionProvider.h:
  • platform/mediasession/MediaSessionInterruptionProvider.cpp:

(WebCore::MediaSessionInterruptionProvider::MediaSessionInterruptionProvider):

5:56 PM Changeset in webkit [188614] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: transparent color swatches have lopsided checkered background on non-retina
https://bugs.webkit.org/show_bug.cgi?id=148150

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-08-18
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.css:

(@media (-webkit-max-device-pixel-ratio: 1)):
Make color and bezier widgets slightly smaller, but evenly sized so the
checkered background is not lopsided and the curve is a little less blurry.

5:43 PM Changeset in webkit [188613] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fix a rare flakiness in svg/animations/svgPreserveAspectRatio-animation-1.html
https://bugs.webkit.org/show_bug.cgi?id=148149

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-08-18
Reviewed by Tim Horton.

Do not sample the SVG animation at the middle of the animation period. At
that time, the SVG animation test script changes the value of the animated
attribute from the from-value to the to-value. It is safer to sample
immediately before and after the middle of the animation period.

  • svg/animations/script-tests/svgPreserveAspectRatio-animation-1.js:
  • svg/animations/svgPreserveAspectRatio-animation-1-expected.txt:
5:32 PM Changeset in webkit [188612] by eric.carlson@apple.com
  • 13 edits
    1 delete in trunk/Source

Remove "platform text track menu"
https://bugs.webkit.org/show_bug.cgi?id=148139

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this patch removes unused code.

  • WebCore.xcodeproj/project.pbxproj: Remove PlatformTextTrackMenu.h.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleDelayedAction): Remove PLATFORM_TEXT_TRACK_MENU.
(WebCore::HTMLMediaElement::pendingActionTimerFired):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack):
(WebCore::HTMLMediaElement::closeCaptionTracksChanged):
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::setSelectedTextTrack): Deleted.
(WebCore::HTMLMediaElement::platformTextTracks): Deleted.
(WebCore::HTMLMediaElement::notifyMediaPlayerOfTextTrackChanges): Deleted.
(WebCore::HTMLMediaElement::platformTextTrackMenu): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::player):

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

(WebCore::TextTrack::hasCue):
(WebCore::TextTrack::isMainProgramContent):
(WebCore::TextTrack::platformTextTrack): Deleted.

  • html/track/TextTrack.h:

(WebCore::TextTrack::create):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::resetMediaEngines):
(WebCore::MediaPlayer::implementsTextTrackControls): Deleted.
(WebCore::MediaPlayer::textTrackMenu): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::tracksChanged):
(WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
(WebCore::MediaPlayerPrivateInterface::implementsTextTrackControls): Deleted.
(WebCore::MediaPlayerPrivateInterface::textTrackMenu): Deleted.

  • platform/graphics/PlatformTextTrack.h:
  • platform/graphics/PlatformTextTrackMenu.h: Removed.

Source/WTF:

  • wtf/Platform.h: Remove PLATFORM_TEXT_TRACK_MENU.
5:23 PM Changeset in webkit [188611] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Search input results and clear icons are misaligned when padding is added
https://bugs.webkit.org/show_bug.cgi?id=148146
<rdar://problem/22310951>

Reviewed by Zalan Bujtas.

Source/WebCore:

Use content box rect to determine where to draw the results and cancel buttons
of a search field that has -webkit-appearance: textfield. Previously, we used
the bounding box, which caused the buttons to render in the input's padding
region.

Test: platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSearchFieldCancelButton): Use content box to

compute where to render cancel button.

(WebCore::RenderThemeMac::paintSearchFieldResultsButton): Use content box to

compute where to render results button.

LayoutTests:

Tests that for a search field with -webkit-appearance: textfield; and padding will not clip
its cancel and results buttons.

  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Added.
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons.html: Added.
5:21 PM Changeset in webkit [188610] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CAOpenGLLayer doesn't need an SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=148151

Reviewed by Tim Horton.

Follow-up to https://trac.webkit.org/r188608.
The property is in the public SDK, so we don't need
to declare it.

  • platform/spi/cocoa/QuartzCoreSPI.h:
4:53 PM Changeset in webkit [188609] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[El Capitan] Fix the open source build
https://bugs.webkit.org/show_bug.cgi?id=148134

Reviewed by Anders Carlsson.

No new tests because there is no behavior change.

Need to declare CGFontRenderingStyle.

  • platform/spi/cocoa/CoreTextSPI.h:
4:47 PM Changeset in webkit [188608] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CAOpenGLLayer needs a named class extension for non-internal installs
https://bugs.webkit.org/show_bug.cgi?id=148151
<rdar://problem/22335111>

Reviewed by Tim Horton.

In order to build using the public SDK on El Capitan, we can't
use a class extension to declare this SPI.

No change in behaviour, so no new tests.

  • platform/spi/cocoa/QuartzCoreSPI.h:
4:31 PM Changeset in webkit [188607] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix test failure fallout from r188602 by using a V5 page ui client struct.

  • TestWebKitAPI/Tests/WebKit2/WKPageIsPlayingAudio.cpp:

(TestWebKitAPI::setUpClients):

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

Fix build, and fix the version check.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

3:35 PM Changeset in webkit [188605] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

WTF::Condition should have a fast path for notifyOne/notifyAll that avoids calling unparkOne/unparkAll
https://bugs.webkit.org/show_bug.cgi?id=148090

Reviewed by Geoffrey Garen.

This change makes notifyOne()/notifyAll() blazing fast when nobody is waiting, by using the
various hooks that ParkingLot gives us to maintain a m_hasWaiters variable. When it's false, it
means that any unpark operation would simply return immediately.

This is a 45% speed-up for the 1-producer/1-consumer scenario with a 100-element queue when you
use the notifyOne()-per-enqueue style. What's cool about this change is that you can now safely
call notifyOne() (or notifyAll()) out of paranoia, just in case someone might be waiting. It's
free to do so if nobody is waiting!

  • wtf/Condition.h:

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):

3:35 PM Changeset in webkit [188604] by Simon Fraser
  • 7 edits in trunk

will-change: backface-visibility should not cause stacking context
https://bugs.webkit.org/show_bug.cgi?id=148091

Reviewed by Zalan Bujtas.

Source/WebCore:

Take CSSPropertyWebkitBackfaceVisibility out of the list of properties that causes
will-change to create stacking context, since no value of the property creates
stacking.

Move willChangeCreatesStackingContext() and shouldWillChangeCreateStackingContext()
into RenderInline since it's only called from there.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::shouldWillChangeCreateStackingContext): Deleted.

  • rendering/RenderElement.h:

(WebCore::RenderElement::willChangeCreatesStackingContext): Deleted.

  • rendering/RenderInline.h:

(WebCore::RenderInline::willChangeCreatesStackingContext):

  • rendering/style/WillChangeData.cpp:

(WebCore::propertyCreatesStackingContext): Deleted.

LayoutTests:

Test that will-change: -webkit-backface-visibility does not create
stacking context.

  • fast/css/will-change/resources/will-change-stacking-helper.js:
3:32 PM Changeset in webkit [188603] by Yusuke Suzuki
  • 9 edits in trunk/Source/JavaScriptCore

Introduce non-user-observable Promise functions to use Promises internally
https://bugs.webkit.org/show_bug.cgi?id=148118

Reviewed by Saam Barati.

To leverage the Promises internally (like ES6 Module Loaders), we add
the several non-user-observable private methods, like @then, @all. And
refactor the existing Promises implementation to make it easy to use
internally.

But still the trappable part remains. When resolving the promise with
the returned value, we look up the "then" function. So users can trap
by replacing "then" function of the Promise's prototype.
To avoid this situation, we'll introduce completely differnt promise
instances called InternalPromise in the subsequent patch[1].

No behavior change.

[1]: https://bugs.webkit.org/show_bug.cgi?id=148136

  • builtins/PromiseConstructor.js:

(privateAll.newResolveElement):
(privateAll):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::promiseConstructor): Deleted.
(JSC::JSGlobalObject::promisePrototype): Deleted.
(JSC::JSGlobalObject::promiseStructure): Deleted.

  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::finishCreation):

  • runtime/JSPromiseDeferred.cpp:

(JSC::callFunction):
(JSC::JSPromiseDeferred::resolve):
(JSC::JSPromiseDeferred::reject):

  • runtime/JSPromiseDeferred.h:
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::create):
(JSC::JSPromisePrototype::JSPromisePrototype):

  • runtime/JSPromisePrototype.h:
3:18 PM Changeset in webkit [188602] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION: Playing audio causes near-instant crash
https://bugs.webkit.org/show_bug.cgi?id=148059
rdar://problem/22282680

Reviewed by Sam Weinig.

The version of WebKit that Safari 6.2.8, 7.1.8 and 8.0.8 built against
had an ABI incompatible WKPageUIClientV4 struct. Thankfully we're not going to ship any
versions of Safari that use the "normal" WKPageUIClientV4 struct so just assume that it's always the
broken one and fix it up by converting it to a WKPageUIClientV5 struct and setting that as the page UI client.

  • UIProcess/API/C/WKPage.cpp:

(fixUpBotchedPageUIClient):
(WKPageSetPageUIClient):

3:11 PM Changeset in webkit [188601] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Modernize CSSStyleManager
https://bugs.webkit.org/show_bug.cgi?id=148143

Reviewed by Brian Burg.

  • UserInterface/Controllers/CSSStyleManager.js:
    • Eliminate delete operator use.
    • Move from using Objects as hashmaps to Map.
    • Fix typos.
3:05 PM Changeset in webkit [188600] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix the cairo build after r188594.

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/ResourceHandleManager.cpp:

Include Lock.h

2:54 PM Changeset in webkit [188599] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Mark fast/css/will-change/will-change-creates-stacking-context.html as an image-only
failure. Filed webkit.org/b/148144 to track it.

  • platform/win/TestExpectations:
2:53 PM Changeset in webkit [188598] by BJ Burg
  • 32 edits
    2 moves in trunk

Web Inspector: load ProtocolTestStub from the WebInspectorUI bundle
https://bugs.webkit.org/show_bug.cgi?id=147955

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Move ProtocolTestStub.{html,js} into the actual WebInspectorUI project.

  • UserInterface/Base/TestStub.js: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.js.
  • UserInterface/TestStub.html: Renamed from LayoutTests/http/tests/inspector/resources/ProtocolTestStub.html.

Tools:

To enable sharing of common test code between protocol and model tests,
start loading the protocol TestStub.js through the WebInspectorUI bundle.

This patch adds the read-only getter TestRunner.inspectorTestStubURL, which
protocol-test.js uses to load the inspector frontend stub into its iframe
from an arbitrary local file URL.

  • DumpRenderTree/TestRunner.cpp:

(getInspectorTestStubURLCallback):
(TestRunner::staticValues):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(SOFT_LINK_STAGED_FRAMEWORK):
(TestRunner::inspectorTestStubURL):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::inspectorTestStubURL):

  • WebKitTestRunner/Configurations/Base.xcconfig:

Since WebKitTestRunner now includes WebCore private headers, also search
for the WebCore framework inside the WebKit umbrella framework.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp:

(WTR::TestRunner::inspectorTestStubURL):

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::inspectorTestStubURL):

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

(WTR::TestRunner::inspectorTestStubURL):

LayoutTests:

Since the inspector stub cannot open files that live in the LayoutTests
directory, adopt the test helper marshalling approach used by inspector.js.
Each helper must register its code for marshalling and explicitly put globals
on the window object.

Use script tags rather than importScript to include helpers in a test.

  • TestExpectations: For now, skip inspector http tests. These should be rewritten

to use inspector-test.js, which does not run into cross-origin problems.

Rebaseline some test results to account for shifted line numbers (yuck).

  • http/tests/inspector/dom/resources/InspectorDOMListener.js:
  • http/tests/inspector/resources/console-test.js:
  • http/tests/inspector/resources/probe-test.js:
  • http/tests/inspector/resources/protocol-test.js:

(ProtocolTestProxy.registerInitializer):
(log):
(runTest.runInitializationMethodsInFrontend):
(runTest.runTestMethodInFrontend):
(runTest):

  • inspector/console/console-message.html:
  • inspector/console/css-source-locations-expected.txt:
  • inspector/console/css-source-locations.html:
  • inspector/console/js-source-locations-expected.txt:
  • inspector/console/js-source-locations.html:
  • inspector/console/x-frame-options-message-expected.txt:
  • inspector/console/x-frame-options-message.html:
  • inspector/debugger/didSampleProbe-multiple-probes.html:
  • inspector/debugger/setBreakpoint-actions.html:
  • inspector/debugger/setBreakpoint-options-exception.html:
  • inspector/dom/dom-search-expected.txt:
  • inspector/dom/dom-search-with-context.html:
  • inspector/dom/dom-search.html:
  • inspector/dom/resources/dom-search-queries.js:
2:45 PM Changeset in webkit [188597] by mmaxfield@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

[Win] Test gardening after r188591
https://bugs.webkit.org/show_bug.cgi?id=148119

Unreviewed.

  • platform/win/fast/text/trak-optimizeLegibility-expected.txt: Added.
2:28 PM Changeset in webkit [188596] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix GTK build.

  • TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:

(TestWebKitAPI::TEST):

12:52 PM Changeset in webkit [188595] by fpizlo@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the cairo build.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
12:31 PM Changeset in webkit [188594] by fpizlo@apple.com
  • 108 edits
    1 add in trunk

Replace all remaining uses of WTF::Mutex with WTF::Lock
https://bugs.webkit.org/show_bug.cgi?id=148089

Reviewed by Geoffrey Garen.

Source/WebCore:

No new tests because no new behavior.

  • Modules/webaudio/AsyncAudioDecoder.cpp:

(WebCore::AsyncAudioDecoder::AsyncAudioDecoder):
(WebCore::AsyncAudioDecoder::runLoop):

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::addAudioConsumer):
(WebCore::MediaStreamAudioSource::removeAudioConsumer):
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):

  • Modules/webaudio/MediaStreamAudioSource.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::close):
(WebCore::Database::runTransaction):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::hasPendingTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTaskSynchronizer::taskCompleted):

  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/DatabaseThread.cpp:

(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread):

  • Modules/webdatabase/DatabaseThread.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::setDatabaseDirectoryPath):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::hasEntryForOrigin):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::closeAllDatabases):
(WebCore::DatabaseTracker::fullPathForDatabase):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesForOrigin):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::originLockFor):
(WebCore::DatabaseTracker::quotaForOrigin):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::DatabaseTracker::setClient):
(WebCore::notificationMutex):
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
(WebCore::DatabaseTracker::notifyDatabasesChanged):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/webdatabase/OriginLock.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::unwrap):
(WebCore::SQLCallbackWrapper::hasCallback):

  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::doCleanup):
(WebCore::SQLTransactionBackend::enqueueStatementBackend):
(WebCore::SQLTransactionBackend::getNextStatement):

  • Modules/webdatabase/SQLTransactionBackend.h:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::scheduleExecutionTermination):
(WebCore::WorkerScriptController::isExecutionTerminating):

  • bindings/js/WorkerScriptController.h:
  • dom/default/PlatformMessagePortChannel.cpp:

(WebCore::MessagePortChannel::postMessageToRemote):
(WebCore::MessagePortChannel::tryGetMessageFromRemote):
(WebCore::MessagePortChannel::isConnectedTo):
(WebCore::MessagePortChannel::hasPendingActivity):
(WebCore::MessagePortChannel::locallyEntangledPort):
(WebCore::PlatformMessagePortChannel::setRemotePort):
(WebCore::PlatformMessagePortChannel::entangledChannel):
(WebCore::PlatformMessagePortChannel::closeInternal):

  • dom/default/PlatformMessagePortChannel.h:
  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::removeAllIcons):
(WebCore::IconDatabase::synchronousIconForPageURL):
(WebCore::IconDatabase::synchronousNativeIconForPageURL):
(WebCore::IconDatabase::synchronousIconURLForPageURL):
(WebCore::IconDatabase::retainIconForPageURL):
(WebCore::IconDatabase::performRetainIconForPageURL):
(WebCore::IconDatabase::releaseIconForPageURL):
(WebCore::IconDatabase::performReleaseIconForPageURL):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::setIconURLForPageURL):
(WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
(WebCore::IconDatabase::synchronousIconDataKnownForIconURL):
(WebCore::IconDatabase::pageURLMappingCount):
(WebCore::IconDatabase::retainedPageURLCount):
(WebCore::IconDatabase::iconRecordCount):
(WebCore::IconDatabase::iconRecordCountWithData):
(WebCore::IconDatabase::wakeSyncThread):
(WebCore::IconDatabase::scheduleOrDeferSyncTimer):
(WebCore::IconDatabase::isOpenBesidesMainThreadCallbacks):
(WebCore::IconDatabase::databasePath):
(WebCore::IconDatabase::getOrCreatePageURLRecord):
(WebCore::IconDatabase::iconDatabaseSyncThread):
(WebCore::IconDatabase::performOpenInitialization):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::syncThreadMainLoop):
(WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
(WebCore::IconDatabase::readFromDatabase):
(WebCore::IconDatabase::writeToDatabase):
(WebCore::IconDatabase::pruneUnretainedIcons):
(WebCore::IconDatabase::cleanupSyncThread):

  • loader/icon/IconDatabase.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFramePinState):
(WebCore::ScrollingTree::mainFrameScrollPosition):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion):
(WebCore::ScrollingTree::isRubberBandInProgress):
(WebCore::ScrollingTree::setMainFrameIsRubberBanding):
(WebCore::ScrollingTree::isScrollSnapInProgress):
(WebCore::ScrollingTree::setMainFrameIsScrollSnapping):
(WebCore::ScrollingTree::setCanRubberBandState):
(WebCore::ScrollingTree::rubberBandsAtLeft):
(WebCore::ScrollingTree::rubberBandsAtRight):
(WebCore::ScrollingTree::rubberBandsAtBottom):
(WebCore::ScrollingTree::rubberBandsAtTop):
(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
(WebCore::ScrollingTree::latchedNode):
(WebCore::ScrollingTree::setLatchedNode):
(WebCore::ScrollingTree::clearLatchedNode):

  • page/scrolling/ScrollingTree.h:
  • platform/MemoryPressureHandler.h:
  • platform/audio/HRTFDatabaseLoader.cpp:

(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):

  • platform/audio/HRTFDatabaseLoader.h:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
(WebCore::MemoryPressureHandler::clearMemoryPressure):
(WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setMonotonicAnimationStartTime):
(WebCore::DisplayRefreshMonitor::mutex):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setDelayCallbacks):
(WebCore::MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::callbackContext):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::mapLock):
(WebCore::AVFWrapper::addToMap):
(WebCore::AVFWrapper::removeFromMap):
(WebCore::AVFWrapper::periodicTimeObserverCallback):
(WebCore::AVFWrapper::processNotification):
(WebCore::AVFWrapper::loadPlayableCompletionCallback):
(WebCore::AVFWrapper::loadMetadataCompletionCallback):
(WebCore::AVFWrapper::seekCompletedCallback):
(WebCore::AVFWrapper::processCue):
(WebCore::AVFWrapper::legibleOutputCallback):
(WebCore::AVFWrapper::processShouldWaitForLoadingOfResource):
(WebCore::AVFWrapper::resourceLoaderShouldWaitForLoadingOfRequestedResource):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::handleSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::addListener):
(WebCore::MediaPlayerPrivateMediaFoundation::removeListener):
(WebCore::MediaPlayerPrivateMediaFoundation::notifyDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::Invoke):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::onMediaPlayerDeleted):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
  • platform/ios/LegacyTileCache.h:
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::setTilesOpaque):
(WebCore::LegacyTileCache::doLayoutTiles):
(WebCore::LegacyTileCache::setCurrentScale):
(WebCore::LegacyTileCache::commitScaleChange):
(WebCore::LegacyTileCache::layoutTilesNow):
(WebCore::LegacyTileCache::layoutTilesNowForRect):
(WebCore::LegacyTileCache::removeAllNonVisibleTiles):
(WebCore::LegacyTileCache::removeAllTiles):
(WebCore::LegacyTileCache::removeForegroundTiles):
(WebCore::LegacyTileCache::setContentReplacementImage):
(WebCore::LegacyTileCache::contentReplacementImage):
(WebCore::LegacyTileCache::tileCreationTimerFired):
(WebCore::LegacyTileCache::setNeedsDisplayInRect):
(WebCore::LegacyTileCache::updateTilingMode):
(WebCore::LegacyTileCache::setTilingMode):
(WebCore::LegacyTileCache::doPendingRepaints):
(WebCore::LegacyTileCache::flushSavedDisplayRects):
(WebCore::LegacyTileCache::prepareToDraw):

  • platform/ios/LegacyTileLayerPool.h:
  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::takeLayerWithSize):
(WebCore::LegacyTileLayerPool::setCapacity):
(WebCore::LegacyTileLayerPool::prune):
(WebCore::LegacyTileLayerPool::drain):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownloadManager::add):
(WebCore::CurlDownloadManager::remove):
(WebCore::CurlDownloadManager::getActiveDownloadCount):
(WebCore::CurlDownloadManager::getPendingDownloadCount):
(WebCore::CurlDownloadManager::stopThreadIfIdle):
(WebCore::CurlDownloadManager::updateHandleList):
(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::getTempPath):
(WebCore::CurlDownload::getUrl):
(WebCore::CurlDownload::getResponse):
(WebCore::CurlDownload::closeFile):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData):
(WebCore::CurlDownload::didFail):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::cookieJarPath):
(WebCore::sharedResourceMutex):
(WebCore::curl_lock_callback):
(WebCore::curl_unlock_callback):

  • platform/network/ios/QuickLook.mm:

(WebCore::QLDirectoryAttributes):
(qlPreviewConverterDictionaryMutex):
(WebCore::addQLPreviewConverterWithFileForURL):
(WebCore::qlPreviewConverterUTIForURL):
(WebCore::removeQLPreviewConverterForURL):
(WebCore::safeQLURLForDocumentURLAndResourceURL):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
(WebCore::SQLiteDatabase::setAuthorizer):

  • platform/sql/SQLiteDatabase.h:

(WebCore::SQLiteDatabase::databaseMutex):

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::prepare):
(WebCore::SQLiteStatement::step):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::start):
(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThread::stop):

  • workers/WorkerThread.h:

Source/WebKit:

  • Storage/StorageAreaSync.cpp:

(WebCore::StorageAreaSync::syncTimerFired):
(WebCore::StorageAreaSync::markImported):
(WebCore::StorageAreaSync::blockUntilImportComplete):
(WebCore::StorageAreaSync::performSync):

  • Storage/StorageAreaSync.h:
  • Storage/StorageTracker.cpp:

(WebCore::StorageTracker::setDatabaseDirectoryPath):
(WebCore::StorageTracker::finishedImportingOriginIdentifiers):
(WebCore::StorageTracker::syncImportOriginIdentifiers):
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
(WebCore::StorageTracker::syncSetOriginDetails):
(WebCore::StorageTracker::origins):
(WebCore::StorageTracker::deleteAllOrigins):
(WebCore::StorageTracker::syncDeleteAllOrigins):
(WebCore::StorageTracker::deleteOrigin):
(WebCore::StorageTracker::syncDeleteOrigin):
(WebCore::StorageTracker::canDeleteOrigin):
(WebCore::StorageTracker::cancelDeletingOrigin):
(WebCore::StorageTracker::diskUsageForOrigin):

  • Storage/StorageTracker.h:

Source/WebKit/ios:

  • WebCoreSupport/WebFixedPositionContent.mm:

(WebFixedPositionContentDataLock):
(-[WebFixedPositionContent scrollOrZoomChanged:]):
(-[WebFixedPositionContent overflowScrollPositionForLayer:changedTo:]):
(-[WebFixedPositionContent setViewportConstrainedLayers:stickyContainerMap:]):
(-[WebFixedPositionContent hasFixedOrStickyPositionLayers]):
(-[WebFixedPositionContent minimumOffsetFromFixedPositionLayersToAnchorEdge:ofRect:inLayer:]):

Source/WebKit/mac:

  • Storage/WebDatabaseManager.mm:

(transactionBackgroundTaskIdentifierLock):
(+[WebDatabaseManager startBackgroundTask]):
(+[WebDatabaseManager endBackgroundTask]):

  • WebView/WebView.mm:

(-[WebView _synchronizeCustomFixedPositionLayoutRect]):
(-[WebView _setCustomFixedPositionLayoutRectInWebThread:synchronize:]):
(-[WebView _setCustomFixedPositionLayoutRect:]):
(-[WebView _fetchCustomFixedPositionLayoutRect:]):

  • WebView/WebViewData.h:

Source/WebKit/win:

  • Plugins/PluginMainThreadScheduler.cpp:

(WebCore::PluginMainThreadScheduler::scheduleCall):
(WebCore::PluginMainThreadScheduler::registerPlugin):
(WebCore::PluginMainThreadScheduler::unregisterPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):

  • Plugins/PluginMainThreadScheduler.h:
  • WebIconDatabase.cpp:

(WebIconDatabase::didRemoveAllIcons):
(WebIconDatabase::didImportIconURLForPageURL):
(WebIconDatabase::deliverNotifications):

  • WebIconDatabase.h:
  • WebLocalizableStrings.cpp:

(mainBundleLocStrings):
(frameworkLocStringsMutex):
(findCachedString):
(cacheString):

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:

(WebKit::UniqueIDBDatabase::shutdown):
(WebKit::UniqueIDBDatabase::postMainThreadTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask):
(WebKit::UniqueIDBDatabase::performNextDatabaseTask):

  • DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):

  • Platform/IPC/Connection.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::appendUpdate):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createCompositingThread):
(WebKit::ThreadedCompositor::runCompositingThread):
(WebKit::ThreadedCompositor::terminateCompositingThread):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(WebKit::CustomProtocolManager::addCustomProtocol):
(WebKit::CustomProtocolManager::removeCustomProtocol):
(WebKit::CustomProtocolManager::registerScheme):
(WebKit::CustomProtocolManager::unregisterScheme):
(WebKit::CustomProtocolManager::supportsScheme):
(WebKit::CustomProtocolManager::protocolForID):

  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/linux/SeccompFilters/SeccompBroker.cpp:
  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
(WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):

  • WebProcess/Plugins/PluginProcessConnectionManager.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::removeScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync):
(webkitSoupRequestInputStreamAddData):

Source/WTF:

This also beefs up and rationalizes the Condition API, so that it can deal with units of time
other than just steady_clock. This makes it easier to port ThreadCondition and
std::condition_variable code over to Condition. This patch does not take a position on what
kind of time is best; from reading a lot of the uses in WebCore, it seems like our use of
double to measure seconds is often nicer than the many different classes in std::chrono.

Also added a Condition speed test, to make sure that all of this is a good idea. And indeed it
is. The 1-producer/1-consumer scenario with a 100-element queue runs 36x faster using
Lock/Condition than Mutex/ThreadCondition when you use the notifyOne()-per-enqueue style. It
runs 58x faster with Lock/Condition when you use the notifyAll()-at-boundary style. Note that
I have a bug open for making the notifyOne()-per-enqueue style even faster:
https://bugs.webkit.org/show_bug.cgi?id=148090. Also, the 10-consumer/10-producer scenario with
a 100-element queue runs 20x faster with Lock/Condition for notifyOne()-per-enqueue and 30x
faster with notifyAll()-at-boundary. The only way to tweak the test to get
Mutex/ThreadCondition to win is to have one producer, one consumer, a 1-element queue, and use
the notifyOne()-per-enqueue style. In that case, one of the two threads is going to be waiting
most of the time and the test basically measures wake-up latency and nothing else. Because
Condition::wait() does a little bit more work than ThreadCondition::wait(),
Mutex/ThreadCondition end up running 3% faster in this test case. But if you vary any of the
parameters of the test, Mutex/ThreadCondition ends up losing - all it takes is more threads or
a queue size of 5 or more. To my knowledge, we never do producer/consumer with a queue bounded
to one element precisely because that approach is the least efficient regardless of locking
algorithm. For example, neither WTF::MessageQueue nor DFG::Worklist have any bounds on their
queue size. So, it seems that replacing all uses of system mutexes and condition variables with
our own thing is a great idea.

  • benchmarks/LockSpeedTest.cpp:
  • benchmarks/ConditionSpeedTest.cpp: Added.
  • wtf/Condition.h:

(WTF::Condition::Condition):
(WTF::Condition::waitUntil):
(WTF::Condition::waitFor):
(WTF::Condition::wait):
(WTF::Condition::waitUntilWallClockSeconds):
(WTF::Condition::waitUntilMonotonicClockSeconds):
(WTF::Condition::notifyOne):
(WTF::Condition::notifyAll):
(WTF::Condition::waitForSecondsImpl):
(WTF::Condition::waitForImpl):
(WTF::Condition::absoluteFromRelative):

  • wtf/MessageQueue.h:

(WTF::MessageQueue::infiniteTime):
(WTF::MessageQueue<DataType>::append):
(WTF::MessageQueue<DataType>::appendAndKill):
(WTF::MessageQueue<DataType>::appendAndCheckEmpty):
(WTF::MessageQueue<DataType>::prepend):
(WTF::MessageQueue<DataType>::removeIf):
(WTF::MessageQueue<DataType>::isEmpty):
(WTF::MessageQueue<DataType>::kill):
(WTF::MessageQueue<DataType>::killed):

  • wtf/ParallelJobsGeneric.cpp:

(WTF::ParallelEnvironment::ThreadPrivate::execute):
(WTF::ParallelEnvironment::ThreadPrivate::waitForFinish):
(WTF::ParallelEnvironment::ThreadPrivate::workerThread):

  • wtf/ParallelJobsGeneric.h:
  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionally):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::compareAndPark):

  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading):

  • wtf/dtoa.cpp:

(WTF::pow5mult):

  • wtf/dtoa.h:

Tools:

  • DumpRenderTree/JavaScriptThreading.cpp:

(javaScriptThreadsMutex):
(runJavaScriptThread):
(startJavaScriptThreads):
(stopJavaScriptThreads):

  • TestWebKitAPI/Tests/WTF/Condition.cpp: Fixed a bug in the test that I found from turning the test into a benchmark.
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/glib/WorkQueueGLib.cpp:

(TestWebKitAPI::TEST):

12:28 PM Changeset in webkit [188593] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Try to fix the CLOOP build.

Unreviewed.

  • bytecode/CodeBlock.cpp:
12:24 PM Changeset in webkit [188592] by Chris Dumez
  • 2 edits
    1 delete in trunk/LayoutTests

http/tests/navigation/page-cache-iframe-provisional-load.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148133

Reviewed by Alexey Proskuryakov.

http/tests/navigation/page-cache-iframe-provisional-load.html would fail if
the slow load would finish before navigating away. To greatly reduce the
chances of it happening, increase the slow load delay from 100ms to 3s.

Also make the test faster by using page-cache-helper.html instead of
page-cache-helper-slow.html. The idea of using a slow helper was for the
load to potentially finish while the page was in the PageCache. However,
now that we've increased the slow load delay, this will no longer happen.

  • http/tests/navigation/page-cache-iframe-provisional-load.html:
  • http/tests/navigation/resources/page-cache-helper-slow.html: Removed.
12:19 PM Changeset in webkit [188591] by mmaxfield@apple.com
  • 14 edits
    3 adds in trunk

[Cocoa] Honor the 'trak' table by opting in via text-rendering: optimizeLegibility
https://bugs.webkit.org/show_bug.cgi?id=148119
<rdar://problem/22291561>

Reviewed by Tim Horton.

Source/WebCore:

When the author has opted in by specifying "text-rendering: optimizeLegibility;", we should
honor the font's 'trak' table. We do this by specifying kCTFontOpticalSizeAttribute at font
creation time, and by using CTFontGetAdvancesForGlyphs() instead of
CGFontGetGlyphAdvancesForStyle().

Test: fast/text/trak-optimizeLegibility.html

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::makeFlagKey): Make our caches sensitive to TextRenderingMode.

  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Add a TextRenderingMode member variable.
(WebCore::FontPlatformData::operator=): Update to consult with the new member.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::textRenderingMode): Getter.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont): Specify kCTFontOpticalSizeAttribute.
(WebCore::applyFontFeatureSettings): Deleted.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::canUseFastGlyphAdvanceGetter): Use CTFontGetAdvancesForGlyphs() if we are
optimizeLegibility.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::FontPlatformData): Pass the TextRenderingMode around.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getSystemFontFallbackForCharacters): Update to call renamed function.
(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::fontWithFamily): Ditto.
(WebCore::FontCache::systemFallbackForCharacters): Ditto.
(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData): Ditto.

  • platform/spi/cocoa/CoreTextSPI.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::updateCachedSystemFontDescription): Ditto.

LayoutTests:

This test will fail until we stop mocking the system font on El Capitan. Until then,
this patch will commit the test failure as an expected result.

  • fast/text/trak-optimizeLegibility-expected.html: Added
  • fast/text/trak-optimizeLegibility.html: Added
12:15 PM Changeset in webkit [188590] by Chris Dumez
  • 23 edits
    1 copy
    8 adds in trunk

Make our bindings' GetOwnPropertySlot() behave according to specification
https://bugs.webkit.org/show_bug.cgi?id=148092

Reviewed by Geoffrey Garen.

Source/WebCore:

Make our bindings' GetOwnPropertySlot() behave according to
specification. In particular, our bindings use to do:

  1. Indexed getter
  2. Check static properties
  3. Prototype check
  4. Named getter
  5. Check own properties

According to the specification [1][2], we should do:

  • If the interface has [OverrideBuiltins]:
    1. Indexed getter
    2. Named getter
    3. Static / own properties
  • Otherwise:
    1. Indexed getter
    2. Static / own properties
    3. Prototype check
    4. Named getter

This patch adds support for the [OverrideBuiltins] IDL extended
attribute [3] and aligns our bindings implementation with the Web IDL
specification weither that IDL extended attribute is present or
not.

[1] https://heycam.github.io/webidl/#getownproperty-guts
[2] https://heycam.github.io/webidl/#dfn-named-property-visibility
[3] https://heycam.github.io/webidl/#OverrideBuiltins

Performance:

  • PerformanceTests/Bindings/childNodes-traversal.html: ~Same
  • PerformanceTests/Bindings/children-traversal.html: +104% :)

No new tests, covered by:
fast/dom/htmlcollection-getownproperty.html
fast/dom/collection-length-should-not-be-overridden.html
fast/forms/input-named-action-overrides-action-attribute.html

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::JSHTMLCollection::nameGetter):
Add assertions to make sure we don't use HTMLCollection's namedGetter()
for HTMLFormControlsCollection / HTMLOptionsCollection subclasses.
We should use the subclasses' namedGetter() instead.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::canGetItemsForName):
(WebCore::JSHTMLOptionsCollection::nameGetter):
Add code for handling named getter requests on
HTMLOptionsCollection.

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::JSNodeList::canGetItemsForName):
(WebCore::JSNodeList::nameGetter):
Refactor custom code for the NodeList named getter, now that the
IDL interface is using [CustomNamedGetter] instead of
[JSCustomGetOwnPropertySlotAndDescriptor].

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):
(GenerateHeaderContentHeader): Deleted.

  • Add support for the [OverrideBuiltins] IDL extended attribute and

update the generated getOwnPropertySlot() methods to match the
Web IDL specification.

  • Also drop the JSC::HasImpureGetOwnPropertySlot flag for interfaces

that have a named getter but NOT the [OverrideBuiltins] IDL extended
attribute. Without [OverrideBuiltins], named properties can no longer
shadow own properties so we no longer need to mark GetOwnPropertySlot
as impure. This allows caching of properties.

  • bindings/scripts/IDLAttributes.txt:

Add [OverrideBuiltins] IDL extended attribute [3].

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

(WebCore::JSTestActiveDOMObject::getOwnPropertySlot):

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

(WebCore::JSTestCustomNamedGetter::getOwnPropertySlot):

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

(WebCore::JSTestEventTarget::getOwnPropertySlot):

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

(WebCore::JSTestException::getOwnPropertySlot):

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

(WebCore::JSTestInterface::getOwnPropertySlot):

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

(WebCore::JSTestObj::getOwnPropertySlot):
Rebaseline the bindings tests as their getOwnPropertySlot() method
is now different.

  • bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltins.cpp: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltins.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestOverrideBuiltinsPrivate.h: Added.
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: Added.
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h: Added.
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.h: Added.
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.mm: Added.
  • bindings/scripts/test/ObjC/DOMTestOverrideBuiltinsInternal.h: Added.
  • bindings/scripts/test/TestOverrideBuiltins.idl: Added.

Add bindings test coverage for the new [OverrideBuiltins] IDL extended
attribute [3].

  • dom/DOMStringMap.idl:

Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/infrastructure.html#domstringmap

  • dom/NodeList.idl:

Use CustomNamedGetter IDL extended attribute instead of
JSCustomGetOwnPropertySlotAndDescriptor as NodeList merely implements
a custom named getter. This makes sure that the order in which the
named getter is called is correct as per the Web IDL specification.

  • html/HTMLDocument.idl:

Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/dom.html#the-document-object

  • html/HTMLFormElement.idl:

Add [OverrideBuiltins] IDL extended attribute to match the specification:
https://html.spec.whatwg.org/multipage/forms.html#the-form-element

  • html/HTMLOptionsCollection.idl:

Add missing 'getter' in front of the named getter, as the per the HTML
specification. Without this, HTMLOptionsCollection would not be
recognized as a named properties object, which means that we would not
check the HTMLOptionsCollection prototype before querying the named
getter on HTMLCollection. This used to work because the bindings
generator was hard-coding the prototype check for every HTML*Collection
IDL interface. In this patch, we generalized the check to every
interface that has a named getter.

LayoutTests:

  • fast/dom/childnode-item-after-itemname.html:

Update the test so the item's id in the NodeList is "testItem"
instead of "item". NodeList has a method called item() which now
takes priority over the name when accessing Nodelist.item, as per
the Web IDL specification.

  • fast/dom/htmlcollection-getownproperty-expected.txt:

Rebaseline test. This is a progression.

12:09 PM Changeset in webkit [188589] by achristensen@apple.com
  • 2 edits in trunk

[CMake] REGRESSION(r188540): WebKitTestRunner is not longer built and all the tests (layout and perf) fail.
https://bugs.webkit.org/show_bug.cgi?id=148127

Reviewed by Martin Robinson.

  • CMakeLists.txt:

TOOLS_DIR hasn't been set yet since its defining has been moved to WebKitFS.

12:03 PM Changeset in webkit [188588] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[Win] Popup menu displayed at incorrect position when page is scrolled and device scale factor != 1.
https://bugs.webkit.org/show_bug.cgi?id=148130

Reviewed by Alex Christensen.

Scale WebView coordinates with device scale factor.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::calculatePositionAndSize):

11:51 AM Changeset in webkit [188587] by jhoneycutt@apple.com
  • 2 edits in trunk/LayoutTests

Remove failing expectations for some WK1 tests that have passed recent
builds.

  • platform/ios-simulator-wk1/TestExpectations:
11:47 AM Changeset in webkit [188586] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Better keyboard shortcut to focus on the console prompt
https://bugs.webkit.org/show_bug.cgi?id=147927

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
(WebInspector._focusConsolePrompt):
Added a Control-Tilde keyboard shortcut to focus the console prompt.

11:28 AM Changeset in webkit [188585] by ggaren@apple.com
  • 19 edits
    2 copies in trunk/Source/JavaScriptCore

Split InlineCallFrame into its own file
https://bugs.webkit.org/show_bug.cgi?id=148131

Reviewed by Saam Barati.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CallLinkStatus.cpp:
  • bytecode/CodeBlock.h:

(JSC::ExecState::r):
(JSC::baselineCodeBlockForInlineCallFrame): Deleted.
(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock): Deleted.

  • bytecode/CodeOrigin.cpp:

(JSC::CodeOrigin::inlineStack):
(JSC::CodeOrigin::codeOriginOwner):
(JSC::CodeOrigin::stackOffset):
(JSC::CodeOrigin::dump):
(JSC::CodeOrigin::dumpInContext):
(JSC::InlineCallFrame::calleeConstant): Deleted.
(JSC::InlineCallFrame::visitAggregate): Deleted.
(JSC::InlineCallFrame::calleeForCallFrame): Deleted.
(JSC::InlineCallFrame::hash): Deleted.
(JSC::InlineCallFrame::hashAsStringIfPossible): Deleted.
(JSC::InlineCallFrame::inferredName): Deleted.
(JSC::InlineCallFrame::baselineCodeBlock): Deleted.
(JSC::InlineCallFrame::dumpBriefFunctionInformation): Deleted.
(JSC::InlineCallFrame::dumpInContext): Deleted.
(JSC::InlineCallFrame::dump): Deleted.
(WTF::printInternal): Deleted.

  • bytecode/CodeOrigin.h:

(JSC::CodeOrigin::deletedMarker):
(JSC::CodeOrigin::hash):
(JSC::CodeOrigin::operator==):
(JSC::CodeOriginHash::hash):
(JSC::CodeOriginHash::equal):
(JSC::InlineCallFrame::kindFor): Deleted.
(JSC::InlineCallFrame::varargsKindFor): Deleted.
(JSC::InlineCallFrame::specializationKindFor): Deleted.
(JSC::InlineCallFrame::isVarargs): Deleted.
(JSC::InlineCallFrame::InlineCallFrame): Deleted.
(JSC::InlineCallFrame::specializationKind): Deleted.
(JSC::InlineCallFrame::setStackOffset): Deleted.
(JSC::InlineCallFrame::callerFrameOffset): Deleted.
(JSC::InlineCallFrame::returnPCOffset): Deleted.
(JSC::CodeOrigin::stackOffset): Deleted.
(JSC::CodeOrigin::codeOriginOwner): Deleted.

  • bytecode/InlineCallFrame.cpp: Copied from Source/JavaScriptCore/bytecode/CodeOrigin.cpp.

(JSC::InlineCallFrame::calleeConstant):
(JSC::CodeOrigin::inlineDepthForCallFrame): Deleted.
(JSC::CodeOrigin::inlineDepth): Deleted.
(JSC::CodeOrigin::isApproximatelyEqualTo): Deleted.
(JSC::CodeOrigin::approximateHash): Deleted.
(JSC::CodeOrigin::inlineStack): Deleted.
(JSC::CodeOrigin::dump): Deleted.
(JSC::CodeOrigin::dumpInContext): Deleted.

  • bytecode/InlineCallFrame.h: Copied from Source/JavaScriptCore/bytecode/CodeOrigin.h.

(JSC::InlineCallFrame::isVarargs):
(JSC::InlineCallFrame::InlineCallFrame):
(JSC::InlineCallFrame::specializationKind):
(JSC::baselineCodeBlockForInlineCallFrame):
(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock):
(JSC::CodeOrigin::CodeOrigin): Deleted.
(JSC::CodeOrigin::isSet): Deleted.
(JSC::CodeOrigin::operator!): Deleted.
(JSC::CodeOrigin::isHashTableDeletedValue): Deleted.
(JSC::CodeOrigin::operator!=): Deleted.
(JSC::CodeOrigin::deletedMarker): Deleted.
(JSC::CodeOrigin::stackOffset): Deleted.
(JSC::CodeOrigin::hash): Deleted.
(JSC::CodeOrigin::operator==): Deleted.
(JSC::CodeOrigin::codeOriginOwner): Deleted.
(JSC::CodeOriginHash::hash): Deleted.
(JSC::CodeOriginHash::equal): Deleted.
(JSC::CodeOriginApproximateHash::hash): Deleted.
(JSC::CodeOriginApproximateHash::equal): Deleted.

  • bytecode/InlineCallFrameSet.cpp:
  • dfg/DFGCommonData.cpp:
  • dfg/DFGOSRExitBase.cpp:
  • dfg/DFGVariableEventStream.cpp:
  • ftl/FTLOperations.cpp:
  • interpreter/CallFrame.cpp:
  • interpreter/StackVisitor.cpp:
  • jit/AssemblyHelpers.h:
  • profiler/ProfilerOriginStack.cpp:
  • runtime/ClonedArguments.cpp:
10:56 AM Changeset in webkit [188584] by jeffm@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Add a method to WebInspector to indicate whether the inspector is open
https://bugs.webkit.org/show_bug.cgi?id=148087

Reviewed by Joseph Pecoraro.

  • WebInspector/WebInspector.h:

Added open property.

  • WebInspector/WebInspector.mm:

(-isOpen):
Added, returns YES if we have a frontend.

10:37 AM Changeset in webkit [188583] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Removed an unused param in Interpreter::initialize().
https://bugs.webkit.org/show_bug.cgi?id=148129

Reviewed by Michael Saboff.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::~Interpreter):
(JSC::Interpreter::initialize):

  • interpreter/Interpreter.h:

(JSC::Interpreter::stack):

  • runtime/VM.cpp:

(JSC::VM::VM):

10:03 AM Changeset in webkit [188582] by jfernandez@igalia.com
  • 5 edits
    6 adds in trunk

[CSS Grid Layout] Do not stretch always grid items with auto width
https://bugs.webkit.org/show_bug.cgi?id=148069

Reviewed by Darin Adler.

Source/WebCore:

We assumed that any grid item with 'auto' width will be stretched
to fill all the available space in its grid area. We assumed this
because grid area acts as item's container.

However, Grid Layout specification states on its Alignment section
that items will be stretched by default, unless either
justify-self or align-self compute to a value other than stretch
or margins are auto. In those cases, grid items will auto-size to
fit their contents.

Tests:
fast/css-grid-layout/grid-align-justify-stretch.html
fast/css-grid-layout/grid-item-auto-margins-and-stretch.html
fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::needToStretchChildLogicalHeight): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

New Layout tests to verify that grid stretching logic works as expected
when aligning both horizontally and vertically.

  • fast/css-grid-layout/grid-align-justify-stretch-expected.txt: Added.
  • fast/css-grid-layout/grid-align-justify-stretch.html: Added.
  • fast/css-grid-layout/grid-item-auto-margins-and-stretch-expected.txt: Added.
  • fast/css-grid-layout/grid-item-auto-margins-and-stretch.html: Added.
  • fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change-expected.txt: Added.
  • fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html: Added.
7:46 AM Changeset in webkit [188581] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Option-Enter should commit console command without erasing the prompt
https://bugs.webkit.org/show_bug.cgi?id=148123

Also, don't append a console command if it's the same as the last one.

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt):
(WebInspector.ConsolePrompt.prototype._handleEnterKey.commitTextOrInsertNewLine):
(WebInspector.ConsolePrompt.prototype._handleEnterKey):
(WebInspector.ConsolePrompt.prototype._handleOptionEnterKey):
(WebInspector.ConsolePrompt.prototype._handleCommandOptionEnterKey):

1:25 AM Changeset in webkit [188580] by calvaris@igalia.com
  • 7 edits in trunk

[Streams API] Update implementation with the latest spec
https://bugs.webkit.org/show_bug.cgi?id=147978

Reviewed by Darin Adler.

Source/WebCore:

Changed the way the read and closed promises are resolved and the stream is released when an even closes or
errors the stream.

Current tests suffice after changing the order of the promise resolution according to the new spec.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::releaseReader): Changed how the promises are resolved.
(WebCore::ReadableStream::changeStateToErrored): Changed how the promises are resolved and manually releasing
the stream instead of calling releaseReader according to the spec.

LayoutTests:

Changed tests about the order of the read and closed promise resolution.

  • streams/readable-stream-reader-read.html:
  • streams/reference-implementation/readable-stream-tee.html:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html:
Note: See TracTimeline for information about the timeline view.