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

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:
Note: See TracTimeline for information about the timeline view.