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

Timeline



Jul 14, 2012:

10:23 PM Changeset in webkit [122678] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

DFG PutByVal opcodes should accept more than 3 operands
https://bugs.webkit.org/show_bug.cgi?id=91332

Reviewed by Oliver Hunt.

Turned PutByVal/PutByValAlias into var-arg nodes, so that we can give them
4 or more operands in the future.

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::execute):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::getByValLoadElimination):
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::byValIsPure):
(JSC::DFG::Graph::varArgNumChildren):
(Graph):
(JSC::DFG::Graph::numChildren):
(JSC::DFG::Graph::varArgChild):
(JSC::DFG::Graph::child):

  • dfg/DFGNodeType.h:

(DFG):

  • dfg/DFGPredictionPropagationPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

9:02 PM Changeset in webkit [122677] by fpizlo@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

Rationalize and optimize storage allocation
https://bugs.webkit.org/show_bug.cgi?id=91303

Reviewed by Oliver Hunt.

This implements a backwards bump allocator for copied space storage
allocation, shown in pseudo-code below:

pointer bump(size) {

pointer tmp = allocator->remaining;
tmp -= size;
if (tmp < 0)

fail;

allocator->remaining = tmp;
return allocator->payloadEnd - tmp - size;

}

The advantage of this allocator is that it:

  • Only requires one comparison in the common case where size is known to not be huge, and this comparison can be done by checking the sign bit of the subtraction.


  • Can be implemented even when only one register is available. This register is reused for both temporary storage during allocation and for the result.


  • Preserves the behavior that memory in a block is filled in from lowest address to highest address, which allows for a cheap reallocation fast path.


  • Is resilient against the block used for allocation being the last one in virtual memory, thereby otherwise leading to the risk of overflow in the bump pointer, despite only doing one branch.


In order to implement this allocator using the smallest possible chunk
of code, I refactored the copied space code so that all of the allocation
logic is in CopiedAllocator, and all of the state is in either
CopiedBlock or CopiedAllocator. This should make changing the allocation
fast path easier in the future.

In order to do this, I needed to add some new assembler support,
particularly for various forms of add(address, register) and negPtr().

This is performance neutral. The purpose of this change is to facilitate
further inlining of storage allocation without having to reserve
additional registers or emit too much code.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::addPtr):
(MacroAssembler):
(JSC::MacroAssembler::negPtr):

  • assembler/MacroAssemblerARMv7.h:

(MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::add32):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::add32):
(MacroAssemblerX86):

  • assembler/MacroAssemblerX86_64.h:

(MacroAssemblerX86_64):
(JSC::MacroAssemblerX86_64::addPtr):
(JSC::MacroAssemblerX86_64::negPtr):

  • assembler/X86Assembler.h:

(X86Assembler):
(JSC::X86Assembler::addl_mr):
(JSC::X86Assembler::addq_mr):
(JSC::X86Assembler::negq_r):

  • heap/CopiedAllocator.h:

(CopiedAllocator):
(JSC::CopiedAllocator::isValid):
(JSC::CopiedAllocator::CopiedAllocator):
(JSC::CopiedAllocator::tryAllocate):
(JSC):
(JSC::CopiedAllocator::tryReallocate):
(JSC::CopiedAllocator::forceAllocate):
(JSC::CopiedAllocator::resetCurrentBlock):
(JSC::CopiedAllocator::setCurrentBlock):
(JSC::CopiedAllocator::currentCapacity):

  • heap/CopiedBlock.h:

(CopiedBlock):
(JSC::CopiedBlock::create):
(JSC::CopiedBlock::zeroFillWilderness):
(JSC::CopiedBlock::CopiedBlock):
(JSC::CopiedBlock::payloadEnd):
(JSC):
(JSC::CopiedBlock::payloadCapacity):
(JSC::CopiedBlock::data):
(JSC::CopiedBlock::dataEnd):
(JSC::CopiedBlock::dataSize):
(JSC::CopiedBlock::wilderness):
(JSC::CopiedBlock::wildernessEnd):
(JSC::CopiedBlock::wildernessSize):
(JSC::CopiedBlock::size):

  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::tryAllocateSlowCase):
(JSC::CopiedSpace::tryAllocateOversize):
(JSC::CopiedSpace::tryReallocate):
(JSC::CopiedSpace::doneFillingBlock):
(JSC::CopiedSpace::doneCopying):

  • heap/CopiedSpace.h:

(CopiedSpace):

  • heap/CopiedSpaceInlineMethods.h:

(JSC::CopiedSpace::startedCopying):
(JSC::CopiedSpace::allocateBlockForCopyingPhase):
(JSC::CopiedSpace::allocateBlock):
(JSC::CopiedSpace::tryAllocate):
(JSC):

  • heap/MarkStack.cpp:

(JSC::SlotVisitor::startCopying):
(JSC::SlotVisitor::allocateNewSpace):
(JSC::SlotVisitor::doneCopying):

  • heap/SlotVisitor.h:

(JSC::SlotVisitor::SlotVisitor):

  • jit/JIT.h:
  • jit/JITInlineMethods.h:

(JSC::JIT::emitAllocateBasicStorage):
(JSC::JIT::emitAllocateJSArray):

7:19 PM Changeset in webkit [122676] by eric.carlson@apple.com
  • 25 edits in trunk/Source

Enable AVCF hardware video decoding
https://bugs.webkit.org/show_bug.cgi?id=90015
<rdar://problem/10770317>

Reviewed by Anders Carlsson.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore):
(WebCore::HTMLMediaElement::mediaPlayerGraphicsDeviceAdapter): New, return the client's graphics

device adapter.

  • html/HTMLMediaElement.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::graphicsDeviceAdapter): New.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::graphicsDeviceAdapter): New, ask the media element for the graphics

device adapter.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Soft-link AVCFPlayerSetDirect3DDevice

and AVCFPlayerEnableHardwareAcceleratedVideoDecoderKey.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createAVAssetForURL): Pass the current d3d9

device interface to the AVFWrapper.

(WebCore::AVFWrapper::createAssetForURL): If the d3d9 device implements IDirect3DDevice9Ex,

tell the AVAsset to enable hardware video decoding.

(WebCore::AVFWrapper::createPlayer): Pass the d3d9 device to the player if it implements IDirect3DDevice9Ex.

  • platform/graphics/ca/win/CACFLayerTreeHost.h:

(WebCore::CACFLayerTreeHost::graphicsDeviceAdapter): New, default implementation.

  • platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:

(WebCore::LegacyCACFLayerTreeHost::graphicsDeviceAdapter): New, default implementation.

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:

(WebCore::WKCACFViewLayerTreeHost::graphicsDeviceAdapter): New.

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
  • platform/win/SoftLinking.h: Define SOFT_LINK_DLL_IMPORT_OPTIONAL, SOFT_LINK_LOADED_LIBRARY,

and SOFT_LINK_VARIABLE_DLL_IMPORT_OPTIONAL.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::graphicsDeviceAdapter): New, return the view's graphics adapter.

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient):

  • WebView.cpp:

(WebView::graphicsDeviceAdapter): New, return the layer tree host's graphics adapter.

  • WebView.h:

(WebCore):
(WebView):

Source/WebKit2:

  • DerivedSources.make: Define HAVE_AVCF if necessary.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit):
(WebKit::WebChromeClient::graphicsDeviceAdapter): New, return the layer tree host's

graphics adapter.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

(WebChromeClient):

  • WebProcess/WebPage/LayerTreeHost.h:

(WebCore):
(LayerTreeHost):
(WebKit::LayerTreeHost::graphicsDeviceAdapter): New, default implementation.

  • WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h:

(LayerTreeHostCAWin):

4:31 PM Changeset in webkit [122675] by benjamin@webkit.org
  • 6 edits
    1 add in trunk

[Mac] Do not try to update the cache model for every WebPreferences change
https://bugs.webkit.org/show_bug.cgi?id=91302

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-07-14
Reviewed by Joseph Pecoraro.

Source/WebKit/mac:

WebView was listening to any change on any WebPreferences in order to update the cache model. This is unneeded in most cases,
we can just listen to updates of the CacheModel property.

  • WebView/WebPreferences.mm:

(-[WebPreferences initWithIdentifier:]):
(-[WebPreferences _postCacheModelChangedNotification]):
(-[WebPreferences setCacheModel:]):

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

(+[WebView initialize]):
(+[WebView _cacheModelChangedNotification:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added.

(TestWebKitAPI):
(TestWebKitAPI::TEST):

2:56 PM Changeset in webkit [122674] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix Chromium Mac build failure after r122670.

  • platform/graphics/mac/ComplexTextController.cpp:
2:45 PM Changeset in webkit [122673] by mrowe@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Snow Leopard build.

  • platform/LocalizedStrings.cpp:

(WebCore::contextMenuItemTagLookUpInDictionary): Fix a typo in the condition so that Snow Leopard
continues to take the expected path.

2:38 PM Changeset in webkit [122672] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Accessing the last item in children should be a constant time operation
https://bugs.webkit.org/show_bug.cgi?id=91320

Reviewed by Ojan Vafai.

Source/WebCore:

Traverse nodes from the last item when the target offset we're looking for is closer to the last item
than to the cached item. e.g. if the cached item was at offset 0 in the collection and length was 100,
we should not be looking for the item at offset 95 from the cached item.

Note that this trick can be only used in HTML collection that supports itemBefore and when the length
cache is available.

Also broke shouldSearchFromFirstItem into smaller logical pieces to clarify the intents.

Test: perf/htmlcollection-last-item.html

  • html/HTMLCollection.cpp:

(WebCore):
(WebCore::HTMLCollection::isLastItemCloserThanLastOrCachedItem):
(WebCore::HTMLCollection::isFirstItemCloserThanCachedItem):
(WebCore::HTMLCollection::item):

  • html/HTMLCollection.h:

(HTMLCollection):

LayoutTests:

Added an asymptotic time complexity test.

  • perf/htmlcollection-last-item-expected.txt: Added.
  • perf/htmlcollection-last-item.html: Added.
2:34 PM Changeset in webkit [122671] by mrowe@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the Windows build.

  • platform/network/cf/DNSCFNet.cpp: Fix the condition to take Windows in to account.
2:11 PM Changeset in webkit [122670] by mrowe@apple.com
  • 60 edits in trunk/Source/WebCore

Make it explicit which code paths iOS should use when doing checks based on OS X versions.

Rubber-stamped by David Kilzer.

  • WebCore.exp.in:
  • accessibility/AccessibilityList.h:
  • accessibility/AccessibilityTable.h:
  • accessibility/mac/AXObjectCacheMac.mm:
  • editing/mac/EditorMac.mm:
  • loader/MainResourceLoader.cpp:
  • loader/MainResourceLoader.h:
  • page/AlternativeTextClient.h:
  • page/mac/SettingsMac.mm:
  • platform/LocalizedStrings.cpp:
  • platform/MemoryPressureHandler.cpp:
  • platform/audio/mac/AudioBusMac.mm:
  • platform/graphics/Gradient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:
  • platform/graphics/ca/mac/TileCache.mm:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cg/ImageBufferCG.cpp:
  • platform/graphics/cg/ImageBufferDataCG.h:
  • platform/graphics/cg/ImageCG.cpp:
  • platform/graphics/cg/ImageSourceCG.cpp:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/mac/ComplexTextController.cpp:
  • platform/graphics/mac/ComplexTextControllerCoreText.mm:
  • platform/graphics/mac/FontCacheMac.mm:
  • platform/graphics/mac/FontCustomPlatformData.cpp:
  • platform/graphics/mac/FontMac.mm:
  • platform/graphics/mac/GraphicsContextMac.mm:
  • platform/graphics/mac/SimpleFontDataMac.mm:
  • platform/graphics/mac/WebLayer.h:
  • platform/graphics/mac/WebLayer.mm:
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
  • platform/mac/DisplaySleepDisabler.cpp:
  • platform/mac/DisplaySleepDisabler.h:
  • platform/mac/HTMLConverter.h:
  • platform/mac/HTMLConverter.mm:
  • platform/mac/MemoryPressureHandlerMac.mm:
  • platform/mac/SharedTimerMac.mm:
  • platform/mac/SuddenTermination.mm:
  • platform/mac/WebFontCache.mm:
  • platform/network/Credential.h:
  • platform/network/ResourceHandle.h:
  • platform/network/cf/DNSCFNet.cpp:
  • platform/network/cf/ProxyServerCFNet.cpp:
  • platform/network/cf/ResourceRequest.h:
  • platform/network/cf/SocketStreamHandleCFNet.cpp:
  • platform/network/mac/AuthenticationMac.mm:
  • platform/network/mac/CookieStorageMac.mm:
  • platform/network/mac/ResourceHandleMac.mm:
  • platform/network/mac/ResourceRequestMac.mm:
  • platform/network/mac/WebCoreURLResponse.mm:
  • platform/text/TextChecking.h:
  • platform/text/cf/HyphenationCF.cpp:
  • platform/text/mac/HyphenationMac.mm:
  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderLayerCompositor.cpp:
12:28 PM Changeset in webkit [122669] by fpizlo@apple.com
  • 4 edits in trunk/Source/WTF

Unreviewed, build fix.

  • wtf/Assertions.cpp:
  • wtf/Platform.h:
  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::userDefault):

7:09 AM Changeset in webkit [122668] by allan.jensen@nokia.com
  • 5 edits in trunk/LayoutTests

[Tests] Unskip not failing tests previously relying on LTC::nodesFromRect implementation
https://bugs.webkit.org/show_bug.cgi?id=46600

Reviewed by Ryosuke Niwa.

These tests no longer relies on LayoutTestController.nodesFromRect but on Internals, and should work
in all platforms.

  • platform/chromium/TestExpectations:
  • platform/win/Skipped:
  • platform/wincairo/Skipped:
  • platform/wk2/Skipped:
3:53 AM Changeset in webkit [122667] by rniwa@webkit.org
  • 6 edits
    1 delete in trunk

Unreviewed, rolling out r122665.
http://trac.webkit.org/changeset/122665
https://bugs.webkit.org/show_bug.cgi?id=91321

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

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-14

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(-[WebPreferences initWithIdentifier:]):
(-[WebPreferences setCacheModel:]):

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

(+[WebView initialize]):
(+[WebView _preferencesChangedNotification:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Removed.
2:50 AM Changeset in webkit [122666] by robert@webkit.org
  • 3 edits in trunk/LayoutTests

Skip test added in r122663 on Qt and GTK

Unreviewed, gardening.

Qt has 1px difference tracked under

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

Gtk has a platform-specific rendering issue with the test.

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

  • platform/gtk/TestExpectations:
  • platform/qt/Skipped:
2:03 AM Changeset in webkit [122665] by benjamin@webkit.org
  • 6 edits
    1 add in trunk

[Mac] Do not try to update the cache model for every WebPreferences change
https://bugs.webkit.org/show_bug.cgi?id=91302

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-07-13
Reviewed by Joseph Pecoraro.

Source/WebKit/mac:

WebView was listening to any change on any WebPreferences in order to update the cache model. This is unneeded in most cases,
we can just listen to updates of the CacheModel property.

  • WebView/WebPreferences.mm:

(-[WebPreferences initWithIdentifier:]):
(-[WebPreferences _postCacheModelChangedNotification]):
(-[WebPreferences setCacheModel:]):

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

(+[WebView initialize]):
(+[WebView _cacheModelChangedNotification:]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added.

(TestWebKitAPI):
(TestWebKitAPI::TEST):

1:59 AM Changeset in webkit [122664] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r122614.
http://trac.webkit.org/changeset/122614
https://bugs.webkit.org/show_bug.cgi?id=91317

Broke performance tests (Requested by rniwa on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-14

  • bindings/v8/V8Binding.cpp:

(WebCore::StringCache::v8ExternalStringSlow):

1:57 AM Changeset in webkit [122663] by robert@webkit.org
  • 3 edits
    2 adds in trunk

CSS 2.1 failure: vertical-align-boxes-001 fails
https://bugs.webkit.org/show_bug.cgi?id=90626

Reviewed by Eric Seidel.

Source/WebCore:

Tests: css2.1/20110323/vertical-align-boxes-001.htm

A percentage value vertical-align is always a percentage of the actual line-height rather than
the margin box per http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align: 'Percentages:
refer to the 'line-height' of the element itself'. Confusingly, RenderBox::lineheight() is a
shorthand into the dimensions of the margin box for replaced elements in the other vertical-align
cases, i.e. where it's the margin box that's relevant rather than the 'line-height'. So rather than patch RenderBox's
lineHeight() to somehow consider the percentage cases, just give percentage vertical-align the full computedLineHeight()
rather than lineHeight()'s margin box.

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::verticalPositionForBox):

LayoutTests:

  • css2.1/20110323/vertical-align-boxes-001-expected.html: Added.
  • css2.1/20110323/vertical-align-boxes-001.htm: Added. This patch fixes the 'percentage' case in this test so that it calculates 50% of the line-height of 60px rather than 50% of the img's margin-box of -8px.
1:09 AM Changeset in webkit [122662] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, marking http/tests/misc/webtiming-origins.html as flaky.

  • platform/gtk/TestExpectations:
12:19 AM Changeset in webkit [122661] by zandobersek@gmail.com
  • 2 edits
    2 adds in trunk/LayoutTests

Unreviewed GTK gardening, adding an image expectation for a test introduced
in r122651. Also creating platform-specific baselines for two File API tests
that behave differently because of function overloading problems but pass otherwise,
and skipping a test for correct viewport of sites with Mobile DTD which GTK port
does not (yet) support.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/files/create-blob-url-crash-expected.txt: Added.
  • platform/gtk/fast/files/url-required-arguments-expected.txt: Added.
12:08 AM Changeset in webkit [122660] by rniwa@webkit.org
  • 11 edits
    2 adds in trunk

Iterating backwards over HTMLCollection is O(n2)
https://bugs.webkit.org/show_bug.cgi?id=91306

Reviewed by Anders Carlsson.

Source/WebCore:

Fixed the bug by introducing itemBefore that iterates nodes backwards to complement itemAfter.
Unfortunately, some HTML collections such as HTMLFormCollection and HTMLTableRowsCollection have
its own itemAfter function and writing an equivalent itemBefore is somewhat tricky. For now,
added a new boolean flag indicating whether a given HTML collection supports itemBefore or not,
and left those HTML collections that override itemAfter alone.

This also paves our way to share more code between DynamicNodeList and HTMLCollection.

Test: perf/htmlcollection-backwards-iteration.html

  • dom/DynamicNodeList.h:

(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Takes ItemBeforeSupportType.
(WebCore::DynamicNodeListCacheBase::supportsItemBefore): Added.
(DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::setItemCache): Replaced a FIXME by an assertion now that
we can.

  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::HTMLAllCollection): Supports itemBefore since it doesn't override
itemAfter.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::create):
(WebCore::isAcceptableElement): Made it a static local function instead of a static member.
(WebCore::nextNode): Templatized.
(WebCore::itemBeforeOrAfter): Extracted from itemAfter and templatized.
(WebCore::HTMLCollection::itemBefore): Added.
(WebCore::HTMLCollection::itemAfter):
(WebCore::HTMLCollection::shouldSearchFromFirstItem): Added. Determines whether we should reset
the item cache to the first item. We obviously do if the cache is invalid. If the target offset
is after the cached offset, then we shouldn't go back regardless of availability of itemBefore.
Otherwise, we go back to the first item iff itemBefore is not available or the distance from
the cached offset to the target offset is greater than the target offset itself.
(WebCore::HTMLCollection::length):
(WebCore::HTMLCollection::item): Use the term "offset" to match the terminology elsewhere.
(WebCore::HTMLCollection::itemBeforeOrAfterCachedItem): Ditto. Also added the logic to iterate
nodes backwards using itemBefore. Once we're in this branch, we should always find a matching
item since the target offset was less than the cached offset, and offsets are non-negative.
If we had ever reached the end of the loop without finding an item, it indicates that the cache
has been invalid and we have some serious bug elsewhere.

  • html/HTMLCollection.h:

(WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
(HTMLCollection):

  • html/HTMLOptionsCollection.cpp:

(WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Supports itemBefore since it doesn't
override itemAfter.

  • html/HTMLFormCollection.cpp:

(WebCore::HTMLFormCollection::HTMLFormCollection): Doesn't support itemBefore as it overrides
itemAfter.

  • html/HTMLNameCollection.cpp:

(WebCore::HTMLNameCollection::HTMLNameCollection): Ditto.

  • html/HTMLPropertiesCollection.cpp:

(WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):

  • html/HTMLTableRowsCollection.cpp:

(WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):

LayoutTests:

Add an asymptotic time complexity test.

  • perf/htmlcollection-backwards-iteration-expected.txt: Added.
  • perf/htmlcollection-backwards-iteration.html: Added.

Jul 13, 2012:

8:45 PM Changeset in webkit [122659] by dpranke@chromium.org
  • 5 edits in trunk/Tools

run-webkit-test outputs the wrong number of tests executed when some are skipped.
https://bugs.webkit.org/show_bug.cgi?id=89894

Reviewed by Ojan Vafai.

Fix the logging of the actual number of tests run so that tests
that are skipped aren't included.

Also revamp the 'expected' output so we distinguish the number
of tests found from the number of tests run (to account for
--repeat-each and --iterations).

Covered by existing tests.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.prepare_lists_and_print_output):
(Manager._log_num_workers):
(Manager.run):
(Manager._print_result_summary):

  • Scripts/webkitpy/layout_tests/models/result_summary.py:

(ResultSummary.init):
(ResultSummary.add):

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer.print_one_line_summary):

  • Scripts/webkitpy/layout_tests/views/printing_unittest.py:

(Testprinter.test_print_one_line_summary):

8:05 PM Changeset in webkit [122658] by commit-queue@webkit.org
  • 10 edits in trunk/Source

[chromium] Add 'self-managed' option to CCPrioritizedTexture to enable render-surface and canvas use cases.
https://bugs.webkit.org/show_bug.cgi?id=91177

Patch by Eric Penner <epenner@google.com> on 2012-07-13
Reviewed by Adrienne Walker.

Source/WebCore:

This makes the render-surface memory use case generic as 'self-managed' textures,
as this use case is popping up in other places (eg. canvases). It's exactly the
same idea except we can have as many place-holders as we want at arbitrary
priorities.

This already tested by the render surface unit tests which now also use the
generic placeholder.

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::updateLayers):
(WebCore::CCLayerTreeHost::setPrioritiesForSurfaces):
(WebCore):
(WebCore::CCLayerTreeHost::setPrioritiesForLayers):
(WebCore::CCLayerTreeHost::prioritizeTextures):
(WebCore::CCLayerTreeHost::calculateMemoryForRenderSurfaces):
(WebCore::CCLayerTreeHost::paintLayerContents):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(CCLayerTreeHost):

  • platform/graphics/chromium/cc/CCPrioritizedTexture.cpp:

(WebCore::CCPrioritizedTexture::CCPrioritizedTexture):
(WebCore::CCPrioritizedTexture::setToSelfManagedMemoryPlaceholder):

  • platform/graphics/chromium/cc/CCPrioritizedTexture.h:

(CCPrioritizedTexture):
(WebCore::CCPrioritizedTexture::setIsSelfManaged):
(WebCore::CCPrioritizedTexture::isSelfManaged):

  • platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:

(WebCore::CCPrioritizedTextureManager::prioritizeTextures):
(WebCore::CCPrioritizedTextureManager::acquireBackingTextureIfNeeded):
(WebCore::CCPrioritizedTextureManager::destroyBacking):

  • platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:

(CCPrioritizedTextureManager):
(WebCore::CCPrioritizedTextureManager::memoryForSelfManagedTextures):

Source/WebKit/chromium:

  • tests/CCPrioritizedTextureTest.cpp:

(WTF::TEST_F):

  • tests/TiledLayerChromiumTest.cpp:
7:09 PM Changeset in webkit [122657] by dpranke@chromium.org
  • 2 edits in trunk/Tools

nrwt: actually print the exception name and message for otherwise unhandled exceptions
https://bugs.webkit.org/show_bug.cgi?id=91305

Reviewed by Adam Barth.

Two more places where I was printing the stack trace but not the
exception itself :(. These two spots can't easily be
unit-tested, but I tested them by hand.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(run):
(main):

7:07 PM Changeset in webkit [122656] by tkent@chromium.org
  • 5 edits in trunk

Internals: Clean up the mock PagePopupDriver correctly.
https://bugs.webkit.org/show_bug.cgi?id=91250

Source/WebCore:

Unreviewed, a trivial testing code fix.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::reset):
Resetting PaePopupDriver here instead of Backup::restoreTo.
Also, close the mock popup before resetting PagePopupDriver by clearing m_pagePopupDriver.

  • testing/MockPagePopupDriver.cpp:

(WebCore::MockPagePopupDriver::~MockPagePopupDriver):
Close the popup.

LayoutTests:

  • platform/chromium/TestExpectations: Remove CRASH expectation for date-apparance.html.
7:03 PM Changeset in webkit [122655] by commit-queue@webkit.org
  • 12 edits in trunk/Source

Remove Widget from screenColorProfile
https://bugs.webkit.org/show_bug.cgi?id=91300

Patch by Tony Payne <tpayne@chromium.org> on 2012-07-13
Reviewed by Adam Barth.

Source/Platform:

  • chromium/public/Platform.h:

(Platform): Updated comment to reflect that we no longer have a type param.

Source/WebCore:

Chromium, the only platform implementing screenColorProfile, does not
need the Widget, so removing for simplicity.

Covered by existing tests.

  • platform/PlatformScreen.h:

(WebCore): Updated comment to remove reference to type param that no
longer exists and removed Widget param.

  • platform/blackberry/PlatformScreenBlackBerry.cpp:

(WebCore::screenColorProfile): Removed widget param.

  • platform/chromium/PlatformScreenChromium.cpp:

(WebCore::screenColorProfile): Removed widget param.

  • platform/efl/PlatformScreenEfl.cpp:

(WebCore::screenColorProfile): Removed widget param.

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenColorProfile): Removed widget param.

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::qcmsOutputDeviceProfile): removed param to
match screenColorProfile()'s new spec.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenColorProfile): Removed widget param.

  • platform/qt/PlatformScreenQt.cpp:

(WebCore::screenColorProfile): Removed widget param.

  • platform/win/PlatformScreenWin.cpp:

(WebCore::screenColorProfile): Removed widget param.

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

Source/WebCore: [chromium] Add flushes to CCTextureUpdater::update
https://bugs.webkit.org/show_bug.cgi?id=89035

Patch by Brian Anderson <brianderson@chromium.org> on 2012-07-13
Reviewed by Adrienne Walker.

Automatic flushes are being removed from the command buffer, so
this moves the flushes into the CCTextureUpdater itself.

CCTextureUpdaterTest added to verify texture upload/flushing patterns.

  • platform/graphics/chromium/cc/CCGraphicsContext.h:

(WebCore::CCGraphicsContext::flush):
(CCGraphicsContext):

  • platform/graphics/chromium/cc/CCTextureUpdater.cpp:

(WebCore):
(WebCore::CCTextureUpdater::update): Manual flushes added here.

Source/WebKit/chromium: Add flushes to CCTextureUpdater::update
https://bugs.webkit.org/show_bug.cgi?id=89035

Patch by Brian Anderson <brianderson@chromium.org> on 2012-07-13
Reviewed by Adrienne Walker.

CCTextureUpdaterTest added to verify texture upload/flushing patterns.

  • WebKit.gypi:
  • tests/CCTextureUpdaterTest.cpp: Added.
6:08 PM Changeset in webkit [122653] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION: RenderInline boundingBox ignores relative position offset
https://bugs.webkit.org/show_bug.cgi?id=91168

Patch by Kiran Muppala <cmuppala@apple.com> on 2012-07-13
Reviewed by Simon Fraser.

Source/WebCore:

RenderGeometryMap, used for caching the transform to the view,
expects the first mapping pushed, to be that of the view itself.
RenderInline was instead pushing it's own offset first. Besides
the offset of the view itself was not being pushed.

Relaxed the RenderGeometryMap restriction that the first pushed
step should be of the view. It is sufficient that the view's mapping
is pushed in the first call to pushMappingsToAncestor. Modified
RenderInline to push the offset of the view also to the geometry map.

Test: fast/inline/inline-relative-offset-boundingbox.html

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::pushMappingsToAncestor): Add assertion to
check if mapping to view was pushed in first invocation.
(WebCore::RenderGeometryMap::pushView): Correct assertion that checks
if the view's mapping is the first one to be applied.
(WebCore::RenderGeometryMap::stepInserted): Use isRenderView to check if
a mapping step belongs to a view instead of using mapping size.
(WebCore::RenderGeometryMap::stepRemoved): Ditto.

  • rendering/RenderInline.cpp:

(WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::AbsoluteQuadsGeneratorContext):
Push mappings all the way up to and including the view.

LayoutTests:

Add a regression test for boundingBox of an inline element with relative position offsets.

  • fast/inline/inline-relative-offset-boundingbox-expected.txt: Added.
  • fast/inline/inline-relative-offset-boundingbox.html: Added.
6:03 PM Changeset in webkit [122652] by wangxianzhu@chromium.org
  • 43 edits
    1 move
    1 add
    1 delete in trunk/Source

Move WebCore/platform/text/Base64 to WTF/wtf/text
https://bugs.webkit.org/show_bug.cgi?id=91162

Reviewed by Adam Barth.

Source/WebCore:

No new tests. Files moving only.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::generateSecWebSocketKey):
(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):

  • Target.pri:
  • WebCore.gypi:
  • WebCore.order:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::convertToDataURL):

  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::createDigest):

  • inspector/InspectorFileSystemAgent.cpp:

(WebCore):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::InspectorPageAgent::sharedBufferContent):

  • loader/archive/mhtml/MHTMLArchive.cpp:

(WebCore::MHTMLArchive::generateMHTMLData):

  • loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::parseNextPart):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::btoa):
(WebCore::DOMWindow::atob):

  • page/Page.cpp:

(WebCore::Page::userStyleSheetLocationChanged):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::toDataURL):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::CGImageToDataURL):

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::ImageBuffer::toDataURL):

  • platform/graphics/skia/FontCustomPlatformData.cpp:

(WebCore::createUniqueFontName):

  • platform/graphics/skia/ImageBufferSkia.cpp:

(WebCore::ImageBuffer::toDataURL):
(WebCore::ImageDataToDataURL):

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createUniqueFontName):

  • platform/graphics/wince/FontCustomPlatformData.cpp:

(WebCore::createUniqueFontName):

  • platform/graphics/wince/ImageBufferWinCE.cpp:
  • platform/graphics/wx/ImageBufferWx.cpp:
  • platform/network/DataURL.cpp:

(WebCore::handleDataURL):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::applyBasicAuthorizationHeader):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::applyBasicAuthorizationHeader):

  • platform/network/soup/ResourceHandleSoup.cpp:
  • platform/win/SSLKeyGeneratorWin.cpp:

(WebCore::WebCore::signedPublicKeyAndChallengeString):

Source/WebKit/blackberry:

  • Api/WebKitTextCodec.cpp:

(BlackBerry::WebKit::base64DecodePolicyForWTF):
(BlackBerry::WebKit::base64Decode):
(BlackBerry::WebKit::base64EncodePolicyForWTF):
(BlackBerry::WebKit::base64Encode):

  • Api/WebSettings.cpp:

(BlackBerry::WebKit::WebSettings::setUserStyleSheetString):

  • WebCoreSupport/FrameLoaderClientBlackBerry.cpp:

Source/WTF:

  • GNUmakefile.list.am:
  • WTF.gypi:
  • WTF.pro:
  • WTF.vcproj/WTF.vcproj:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/Base64.cpp: Renamed from Source/WebCore/platform/text/Base64.cpp.

(WTF):
(WTF::base64Encode):
(WTF::base64Decode):
(WTF::base64DecodeInternal):

  • wtf/text/Base64.h: Renamed from Source/WebCore/platform/text/Base64.h.

(WTF):
(WTF::base64Encode):

5:52 PM Changeset in webkit [122651] by wangxianzhu@chromium.org
  • 5 edits
    2 adds in trunk

[Chromium] Sometimes bottom of text is truncated when page has a fractional scale
https://bugs.webkit.org/show_bug.cgi?id=88684

Reviewed by Tony Chang.

Source/WebCore:

When the page has a fractional scale, the ascent and descent part of the fonts might be fractional.
If the descent part is rounded down, the bottom of the text might be truncated when displayed
when subpixel text positioning is enabled.
To avoid that, borrow one unit from the ascent when possible.

Test: fast/text/descent-clip-in-scaled-page.html

  • platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:

(WebCore::FontPlatformData::setupPaint): Moved NoPreference handling into querySystemForRenderStyle so that fontRenderStyle() can have actual styles without NoPreference.
(WebCore::FontPlatformData::querySystemForRenderStyle): Added NoPreference handling (moved from setupPaint)

  • platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:

(FontPlatformData):
(WebCore::FontPlatformData::fontRenderStyle): Added to let SimpleFontDataSkia access the font render styles.

  • platform/graphics/skia/SimpleFontDataSkia.cpp:

(WebCore::SimpleFontData::platformInit):

LayoutTests:

New test case.

  • fast/text/descent-clip-in-scaled-page-expected.html: Added.
  • fast/text/descent-clip-in-scaled-page.html: Added.
5:44 PM Changeset in webkit [122650] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk/Source/JavaScriptCore

OfflineASM Pretty printing and commenting enhancements.
https://bugs.webkit.org/show_bug.cgi?id=91281

Patch by Mark Lam <mark.lam@apple.com> on 2012-07-13
Reviewed by Filip Pizlo.

Added some minor pretty printing in the OfflineASM.
Also added infrastruture for adding multiple types of comments and
annotations with the ability to enable/disable them in the generated
output as desired.

  • GNUmakefile.list.am: add new file config.rb.
  • llint/LLIntOfflineAsmConfig.h: Added OFFLINE_ASM_BEGIN, OFFLINE_ASM_END, and OFFLINE_ASM_LOCAL_LABEL macros. This will allow us to redefine these for other backends later.
  • llint/LowLevelInterpreter32_64.asm: Add a small example of instruction annotations for now.
  • llint/LowLevelInterpreter64.asm: Add a small example of instruction annotations for now.
  • offlineasm/armv7.rb: Added handling of annotations.
  • offlineasm/asm.rb: Added machinery to dump the new comments and annotations. Also added some indentations to make the output a little prettier.
  • offlineasm/ast.rb: Added annotation field in class Instruction.
  • offlineasm/backends.rb:
  • offlineasm/config.rb: Added. Currently only contains commenting options. This file is meant to be a centralized place for build config values much like config.h for JavaScriptCore.
  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/instructions.rb:
  • offlineasm/offsets.rb:
  • offlineasm/opt.rb:
  • offlineasm/parser.rb: Parse and record annotations.
  • offlineasm/registers.rb:
  • offlineasm/self_hash.rb:
  • offlineasm/settings.rb:
  • offlineasm/transform.rb:
  • offlineasm/x86.rb: Added handling of annotations.
5:44 PM Changeset in webkit [122649] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove an assertion after r122637.

  • dom/DynamicNodeList.h:

(WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange):

5:33 PM Changeset in webkit [122648] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Fix for WebContext::getWebCoreStatistics() causes crash if no m_process
https://bugs.webkit.org/show_bug.cgi?id=91116

.:

Patch by Josh Hawn <jhawn@apple.com> on 2012-07-12
Reviewed by Simon Fraser.

  • Source/WebKit2/UIProcess/WebContext.cpp: WebContext::getWebCoreStatistics():

Now invalidates callback if no m_process.

Tools:

Patch by Josh Hawn <jhawn@apple.com> on 2012-07-13
Reviewed by Simon Fraser.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Added new test file.

  • TestWebKitAPI/Tests/WebKit2/WebCoreStatisticsWithNoWebProcess.cpp: Added.

(TestWebKitAPI::wkContextGetStatisticsCallback):

Tests that callback function receives an error.

(TestWebKitAPI::TEST):

Creates a dummy web context object (no web process).
Calls WKContextGetStatistics with the web context and test callback.
The test callback should get an expected error.

5:15 PM Changeset in webkit [122647] by pierre.rossi@gmail.com
  • 3 edits in trunk/Source/WebCore

[Qt] Improve the mobile theme slightly
https://bugs.webkit.org/show_bug.cgi?id=90806

Reviewed by Kenneth Rohde Christiansen.

Improve drawing of the mobile theme's controls' background.

Ensure the focus ring never appears with the mobile theme, since it
looks bad in combination with the highlights.

No new tests. The painting code from the mobile theme is still
not covered specifically (it will when we revive pixel tests).

  • platform/qt/RenderThemeQtMobile.cpp:

(WebCore):
(WebCore::addPointToOctants): Added. This is simply a helper to avoid

doing too much duplicate work in drawControlBackground.

(WebCore::drawControlBackground): Rely on the octant logic added above

and take the opportunity to increase the granularity.

(WebCore::borderPen):
(WebCore::StylePainterMobile::findLineEdit):
(WebCore::RenderThemeQtMobile::adjustTextFieldStyle):

  • platform/qt/RenderThemeQtMobile.h:

(RenderThemeQtMobile):
(WebCore::RenderThemeQtMobile::supportsFocusRing):

4:55 PM Changeset in webkit [122646] by fpizlo@apple.com
  • 4 edits
    3 adds in trunk

ASSERTION FAILED: use.useKind() != DoubleUse
https://bugs.webkit.org/show_bug.cgi?id=91082

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

The implementation of Branch() was unwisely relying on register allocation state
to decide what speculations to perform. That's never correct.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

LayoutTests:

  • fast/js/dfg-mispredict-variable-but-prove-int-expected.txt: Added.
  • fast/js/dfg-mispredict-variable-but-prove-int.html: Added.
  • fast/js/script-tests/dfg-mispredict-variable-but-prove-int.js: Added.

(foo):

4:39 PM Changeset in webkit [122645] by dpranke@chromium.org
  • 5 edits in trunk/Tools

test-webkitpy: move printing-related code out of the runner
https://bugs.webkit.org/show_bug.cgi?id=91289

Reviewed by Ryosuke Niwa.

More refactoring ... this moves all printing-related stuff out
of runner.py and into printer.py.

No functional changes; covered by existing tests.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

  • Scripts/webkitpy/test/printer.py:

(Printer.init):
(Printer):
(Printer.test_name):
(Printer.print_started_test):
(Printer.print_finished_test):
(Printer.print_result):

  • Scripts/webkitpy/test/runner.py:

(Runner.init):
(Runner.all_test_names):
(Runner.run):

  • Scripts/webkitpy/test/runner_unittest.py:

(RunnerTest.test_regular):
(RunnerTest.test_verbose):
(RunnerTest.test_timing):

4:36 PM Changeset in webkit [122644] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r122640.
http://trac.webkit.org/changeset/122640
https://bugs.webkit.org/show_bug.cgi?id=91298

LLInt apparently does not expect to mark these (Requested by
olliej on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-13

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitStructures):
(JSC::CodeBlock::stronglyVisitStrongReferences):

4:36 PM Changeset in webkit [122643] by dpranke@chromium.org
  • 4 edits
    1 copy in trunk/Tools

webkitpy: split printing/logging code for test-webkitpy out into a new class
https://bugs.webkit.org/show_bug.cgi?id=91282

Reviewed by Ojan Vafai.

This patch is the first step at splitting all of the
printing/logging code out separately from the actual
test-running code.

This is just moving stuff around; no new functionality and no
new tests needed.

  • Scripts/webkitpy/test/finder_unittest.py:

(FinderTest.setUp):

  • Scripts/webkitpy/test/main.py:

(Tester.init):
(Tester._parse_args):
(Tester.run):
(Tester._run_tests):
(Tester._log_exception):

  • Scripts/webkitpy/test/main_unittest.py:

(TesterTest.test_no_tests_found):

  • Scripts/webkitpy/test/printer.py: Added.

(Printer):
(Printer.init):
(Printer.configure):
(Printer.configure.filter):
(_CaptureAndPassThroughStream):
(_CaptureAndPassThroughStream.init):
(_CaptureAndPassThroughStream.write):
(_CaptureAndPassThroughStream._message_is_from_pdb):
(_CaptureAndPassThroughStream.flush):
(_CaptureAndPassThroughStream.getvalue):

4:34 PM Changeset in webkit [122642] by jchaffraix@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove an always-failing table-wrapping check in RenderObject::addChild
https://bugs.webkit.org/show_bug.cgi?id=91286

Reviewed by Eric Seidel.

Due to the structure of the code, this test is always failing (newChild->isTableCell()
is true to get in the branch).

The changeset adding the code didn't add testing so I poundered adding the mentioned test,
which is passing. However the test would need to be blindly changed to be included in our
test harness. I would also expect this code to be exercised by other table tests anyway.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addChild):
Removed never-reached branch. While at it, removed a 'what' comment in the same file.

4:23 PM Changeset in webkit [122641] by eae@chromium.org
  • 9 edits in trunk/Source/WebCore

Use LayoutBoxExtent for image outsets
https://bugs.webkit.org/show_bug.cgi?id=91166

Reviewed by Tony Chang.

Change RenderStyle and calling code to use LayoutBoxExtent for image
outsets and remove text direction and writing mode versions of the
outline getters from RenderStyle as LayoutBoxExtent provides the same
functionality.

No new tests, no change in functionality.

  • platform/graphics/FractionalLayoutBoxExtent.h:
  • platform/graphics/FractionalLayoutBoxExtent.cpp:

(WebCore::FractionalLayoutBoxExtent::logicalTop):
(WebCore::FractionalLayoutBoxExtent::logicalBottom):
Add logicalTop and logicalBottom methods to go with the existing
logicalLeft and logicalRight ones.

  • platform/graphics/FractionalLayoutRect.h:

(WebCore::FractionalLayoutRect::expand):
Add FractionalLayoutBoxExtent version of expand method.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
Change implementation to use the new FractionalLayoutBoxExtent version of
borderImageOutsets and the logicalTop/Bottom/Left/Right methods.

(WebCore::clipRectForNinePieceImageStrip):
Change implementation to use the new FractionalLayoutBoxExtent version of
borderImageOutsets.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::maskClipRect):
Change implementation to use the new FractionalLayoutBoxExtent version of
borderImageOutsets and the new FractionalLayoutRect::expand method.

(WebCore::RenderBox::addVisualEffectOverflow):
Change implementation to use the new FractionalLayoutBoxExtent version of
borderImageOutsets.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintNinePieceImage):
Change implementation to use the new FractionalLayoutBoxExtent version of
borderImageOutsets and the new FractionalLayoutRect::expand method.

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

(WebCore::RenderStyle::imageOutsets):
Change getImageOutsets to return a FractionalLayoutBoxExtent object and
rename to imageOutsets to match the webkit naming convention for getters.

Remove getBorderImageHorizontalOutsets, getBorderImageVerticalOutsets,
getBorderImageInlineDirectionOutsets, getImageHorizontalOutsets,
getImageVerticalOutsets and getBorderImageBlockDirectionOutsets methods
as the same functionality is provided by FractionalLayoutBoxExtent.

4:12 PM Changeset in webkit [122640] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

LLInt fails to mark structures stored in the bytecode
https://bugs.webkit.org/show_bug.cgi?id=91296

Reviewed by Geoffrey Garen.

LLInt stores structures in the bytecode, so we need to visit the appropriate
instructions as we would if we were running in the classic interpreter.
This requires adding additional checks for the LLInt specific opcodes, and
the lint specific variants of operand ordering.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitStructures):
(JSC::CodeBlock::stronglyVisitStrongReferences):

3:57 PM Changeset in webkit [122639] by hyatt@apple.com
  • 5 edits in trunk/Source/WebCore

https://bugs.webkit.org/show_bug.cgi?id=91278
Improve block margin estimation function to account for not having a layout and for quirks mode

Reviewed by Simon Fraser.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::marginBeforeEstimateForChild):
Revise marginBeforeEstimateForChild so that it computes block margins for the grandchild before
recurring. This includes the quirks margin information as well. This ensures that the margins are
up-to-date when checked, even before the object has had its first layout.

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::setMarginStartForChild):
(WebCore::RenderBlock::setMarginEndForChild):
(WebCore::RenderBlock::setMarginBeforeForChild):
(WebCore::RenderBlock::setMarginAfterForChild):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeBlockDirectionMargins):

  • rendering/RenderBox.h:

(RenderBox):
Add consts in order to compile.

3:46 PM Changeset in webkit [122638] by staikos@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Fix crash due to unguarded use of renderer in select
popup.
https://bugs.webkit.org/show_bug.cgi?id=91287

Reviewed by Rob Buis.

No known testcase for this. Found in the wild.

  • WebCoreSupport/SelectPopupClient.cpp:

(WebCore::SelectPopupClient::setValueAndClosePopup):

3:44 PM Changeset in webkit [122637] by rniwa@webkit.org
  • 11 edits in trunk/Source/WebCore

NodeLists should not invalidate on irreleavnt attribute changes
https://bugs.webkit.org/show_bug.cgi?id=91277

Reviewed by Ojan Vafai.

Explicitely check the invalidation type and the changed attribute in NodeListNodeData::invalidateCaches
and ElementRareData::clearHTMLCollectionCaches to only invalidate node lists affected by the change.

Also merged invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged
as invalidateNodeListCachesInAncestors since they're almost identical after r122498.

In addition, moved shouldInvalidateNodeListForType from Document.cpp to DynamicNodeList.h and renamed it to
shouldInvalidateTypeOnAttributeChange since it needs to called in Node.cpp and ElementRareData.h.

  • dom/Attr.cpp:

(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::childrenChanged):

  • dom/Document.cpp:

(WebCore::Document::registerNodeListCache): Calls isRootedAtDocument() instead of directly comparing
the value of NodeListRootType in order to prepare for the bug 80269.
(WebCore::Document::unregisterNodeListCache): Ditto.
(WebCore): shouldInvalidateNodeListForType is moved to DynamicNodeList.h
(WebCore::Document::shouldInvalidateNodeListCaches):

  • dom/DynamicNodeList.h:

(DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Moved from Document.cpp.

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::clearHTMLCollectionCaches): Takes const QualifiedName* to compare against
the invalidation type of HTML collections via shouldInvalidateTypeOnAttributeChange.

  • dom/Node.cpp:

(WebCore::Node::invalidateNodeListCachesInAncestors): Merged invalidateNodeListCachesInAncestors and
invalidateNodeListsCacheAfterChildrenChanged. Also pass attrName to clearHTMLCollectionCaches.
(WebCore::NodeListsNodeData::invalidateCaches): Compares attrName against the invalidation type of
node lists via shouldInvalidateTypeOnAttributeChange.
(WebCore):

  • dom/Node.h:

(Node):

  • dom/NodeRareData.h:

(WebCore::NodeRareData::ensureNodeLists): Merged NodeRareData::createNodeLists.
(WebCore::NodeRareData::clearChildNodeListCache): Moved from Node.cpp.
(NodeRareData):

  • html/HTMLCollection.h:

(HTMLCollectionCacheBase):

3:37 PM Changeset in webkit [122636] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Refactor RenderTable to use the section's iteration functions.
https://bugs.webkit.org/show_bug.cgi?id=89751

Patch by Arpita Bahuguna <arpitabahuguna@gmail.com> on 2012-07-13
Reviewed by Julien Chaffraix.

Removing anti-pattern wherever possible from RenderTable code. Also, modifying
RenderTable sections' iterations to use helper functions.

No new tests required for this change since no change in behavior is expected.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addOverflowFromChildren):
(WebCore::RenderTable::setCellLogicalWidths):
(WebCore::RenderTable::outerBorderStart):
(WebCore::RenderTable::outerBorderEnd):
Removed anti-patterns involving iterations over RenderObjects.

(WebCore::RenderTable::outerBorderAfter):
Modified RenderTable sections' iteration to use helper functions.

3:35 PM Changeset in webkit [122635] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

Threadsafety issues in WebScriptObject
https://bugs.webkit.org/show_bug.cgi?id=90849

Reviewed by Geoff Garen.

Updated fix for this bug. The JSC API lock needs to be acquired also in JSObject.

  • bindings/objc/WebScriptObject.mm:

(-[WebScriptObject JSObject]):

3:25 PM Changeset in webkit [122634] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Unskip fast/css/font-face-download-error.html
https://bugs.webkit.org/show_bug.cgi?id=91279

Unreviewed EFL gardening. Unskip passing test
fast/css/font-face-download-error.html

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-07-13

  • platform/efl/TestExpectations:
3:19 PM Changeset in webkit [122633] by abarth@webkit.org
  • 2 edits in trunk/LayoutTests

Remove supressions for flashplayer crash
https://bugs.webkit.org/show_bug.cgi?id=91283

Reviewed by Tony Chang.

These tests don't crash any more now that I've corrected the
configuration on the bots.

  • platform/chromium/TestExpectations:
2:29 PM Changeset in webkit [122632] by simonjam@chromium.org
  • 29 edits
    38 deletes in trunk

[Navigation Timing] Imported W3C tests contain duplicates and are DOS formatted
https://bugs.webkit.org/show_bug.cgi?id=91184

Reviewed by Adam Barth.

The upstream 'html5' tests are just duplicates of the 'html' tests.

Tools:

  • Scripts/import-w3c-performance-wg-tests:

LayoutTests:

  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Converted to *NIX newline format.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html:
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_open-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_open.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_readiness_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_document_readiness_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigate_within_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigate_within_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_redirectCount_none-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_redirectCount_none.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_backforward-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_backforward.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_enums-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_enums.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_navigation_type_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_no_previous_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_no_previous_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist_in_object-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_performance_attributes_exist_in_object.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_readwrite-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_readwrite.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_order-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_attributes_order.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_client_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_client_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_server_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_server_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_xserver_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_xserver_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_unique_performance_objects-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html5/test_unique_performance_objects.html: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green.htm:
  • http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm:
  • http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm:
  • http/tests/w3c/webperf/resources/blank_page_unload.htm:
  • http/tests/w3c/webperf/resources/blank_page_yellow.htm:
  • http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm:
  • http/tests/w3c/webperf/resources/pagevistestharness.js:

(pv_test):
(test_feature_exists):
(test_equals):
(add_async_result_assert):
(TabSwitch):

  • http/tests/w3c/webperf/resources/webperftestharness.js:

(test_true):

  • platform/chromium/TestExpectations:
2:16 PM Changeset in webkit [122631] by dpranke@chromium.org
  • 3 edits in trunk/Tools

webkitpy: hide yield_to_caller from callers in MessagePool :)
https://bugs.webkit.org/show_bug.cgi?id=91269

Reviewed by Adam Barth.

yield_to_caller() was an optimization/hack to allow us to run
both manager and worker in a single process/loop without
starving the manager while the worker is running tests. The
worker was required to call yield_to_caller() periodically. It
turns out that I can get equivalent responsiveness by yielding
inside the MessagePool every time the worker posts a message, and this
allows me to no longer need the worker to call the routine. Thus
I rename yield_to_caller() to _yield_to_manager() to be a little
clearer about its purpose.

Tested by existing tests.

  • Scripts/webkitpy/common/message_pool.py:

(_Worker.run):
(_Worker.post):
(_Worker._yield_to_manager):

  • Scripts/webkitpy/layout_tests/controllers/worker.py:

(Worker.handle):

2:10 PM Changeset in webkit [122630] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

DelayNode doesn't work if delayTime.value == delayTime.maxValue
https://bugs.webkit.org/show_bug.cgi?id=90357

Patch by Raymond Toy <Raymond Toy> on 2012-07-13
Reviewed by Kenneth Russell.

Source/WebCore:

Increase delay buffer size slightly so that the read and write
pointers don't become equal when the delay and the max delay are
the same.

Tests: webaudio/delaynode-max-default-delay.html

webaudio/delaynode-max-nondefault-delay.html

  • Modules/webaudio/DelayDSPKernel.cpp:

(WebCore): Moved SmoothingTimeConstant to WebCore namespace.
(WebCore::DelayDSPKernel::DelayDSPKernel): Add some additional checks to prevent crashes; use bufferLengthForDelay to compute buffer length.
(WebCore::DelayDSPKernel::bufferLengthForDelay): New function to compute buffer length.

  • Modules/webaudio/DelayDSPKernel.h:

(DelayDSPKernel): Declare bufferLengthForDelay.

LayoutTests:

New tests to test the case when the delay node delay equals the
maximum allowed delay. Add one test for the default maximum delay
and a second test with a user-set maximum delay.

  • webaudio/delaynode-max-default-delay-expected.txt: Added.
  • webaudio/delaynode-max-default-delay.html: Added.
  • webaudio/delaynode-max-nondefault-delay-expected.txt: Added.
  • webaudio/delaynode-max-nondefault-delay.html: Added.
2:03 PM Changeset in webkit [122629] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Always aggressively preload on iOS
https://bugs.webkit.org/show_bug.cgi?id=91276

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-07-13
Reviewed by Simon Fraser.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::preload):

1:45 PM Changeset in webkit [122628] by commit-queue@webkit.org
  • 4 edits
    4 deletes in trunk

Restructure V8Utilities::extractTransferables() with help of toV8Sequence()
https://bugs.webkit.org/show_bug.cgi?id=91208

Patch by Vineet Chaudhary <Vineet> on 2012-07-13
Reviewed by Kentaro Hara.

Source/WebCore:

We can remove the specialised check for MessagePort from V8Utilities::extractTransferables()
using toV8Sequence() as it validates the passed object for sequence type per WebIDL spec.

No new test as just refactoring.
Existing tests under fast/dom/Window/window-* fast/dom/events/*
covers tests.

  • bindings/v8/V8Utilities.cpp:

(WebCore::extractTransferables):

LayoutTests:

We can remove the specialised check for MessagePort from V8Utilities::extractTransferables()
using toV8Sequence() as it validates the passed object for sequence type per WebIDL spec.
Removing port specific expected results.

  • platform/chromium-win/fast/workers/worker-context-multi-port-expected.txt: Removed.
  • platform/chromium-win/fast/workers/worker-multi-port-expected.txt: Removed.
  • platform/chromium/fast/dom/Window/window-postmessage-args-expected.txt: Removed.
  • platform/chromium/fast/events/constructors/message-event-constructor-expected.txt: Removed.
  • platform/chromium/fast/events/message-port-multi-expected.txt: Rebaselined.
1:40 PM Changeset in webkit [122627] by abarth@webkit.org
  • 1 edit
    1 add in trunk/Tools

EWSTools should be able to build a commit-queue instance from scratch
https://bugs.webkit.org/show_bug.cgi?id=91264

Reviewed by Eric Seidel.

I've been using this script to build commit-queue instances on Google
Compute Engine and it seems to work.

  • EWSTools/GoogleComputeEngine/build-commit-queue.sh: Added.
1:37 PM Changeset in webkit [122626] by scheib@chromium.org
  • 6 edits
    4 adds in trunk

Pointer Lock handles disconnected DOM elements
https://bugs.webkit.org/show_bug.cgi?id=77029

Reviewed by Adrienne Walker.

Source/WebCore:

Pointer Lock Controller now checks when elements or documents are
removed, and unlocks if the target element is being removed.

Tests: pointer-lock/locked-element-iframe-removed-from-dom.html

pointer-lock/locked-element-removed-from-dom.html

  • dom/Document.cpp:

(WebCore::Document::detach):

  • dom/Element.cpp:

(WebCore::Element::removedFrom):
(WebCore::Element::webkitRequestPointerLock):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::requestPointerLock):
(WebCore::PointerLockController::elementRemoved):
(WebCore):
(WebCore::PointerLockController::documentDetached):
(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::enqueueEvent):

  • page/PointerLockController.h:

(WebCore):
(PointerLockController):

LayoutTests:

Two new tests that verify pointer lock is released when the target
is removed from the document.

  • pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: Added.
  • pointer-lock/locked-element-iframe-removed-from-dom.html: Added.
  • pointer-lock/locked-element-removed-from-dom-expected.txt: Added.
  • pointer-lock/locked-element-removed-from-dom.html: Added.
1:35 PM Changeset in webkit [122625] by wjmaclean@chromium.org
  • 2 edits in trunk/LayoutTests

[chromium] Unreviewed gardening. storage/indexeddb/cursor-key-order.html has starting crashing on occassion.
https://bugs.webkit.org/show_bug.cgi?id=91275

Not sure how far back the crashes go, but happens with reasonably high frequency.

  • platform/chromium/TestExpectations:
1:12 PM Changeset in webkit [122624] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[BlackBerry] Implement GCActivityCallback with platform timer
https://bugs.webkit.org/show_bug.cgi?id=90175

Patch by Yong Li <yoli@rim.com> on 2012-07-13
Reviewed by Rob Buis.

Implement GCActivityCallback and HeapTimer for BlackBerry port.

  • heap/HeapTimer.cpp:

(JSC):
(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerDidFire):
(JSC::HeapTimer::synchronize):
(JSC::HeapTimer::invalidate):
(JSC::HeapTimer::didStartVMShutdown):

  • heap/HeapTimer.h:

(HeapTimer):

  • runtime/GCActivityCallbackBlackBerry.cpp:

(JSC):
(JSC::DefaultGCActivityCallback::doWork):
(JSC::DefaultGCActivityCallback::didAllocate):
(JSC::DefaultGCActivityCallback::willCollect):
(JSC::DefaultGCActivityCallback::cancel):

12:58 PM Changeset in webkit [122623] by tony@chromium.org
  • 46 edits
    1 move in trunk/LayoutTests

Move layout checking js script into LayoutTest/resources and generalize
https://bugs.webkit.org/show_bug.cgi?id=91268

Reviewed by Ojan Vafai.

flexbox.js contains helper scripts for verifying the size and position of nodes.
I will be writing similar tests for grid, so move the js file into a location
for sharing and generalize the script.

  • css3/flexbox/align-absolute-child.html: Change include path and call.
  • css3/flexbox/auto-height-dynamic.html:
  • css3/flexbox/columns-auto-size.html:
  • css3/flexbox/flex-algorithm-min-max.html:
  • css3/flexbox/flex-algorithm-with-margins.html:
  • css3/flexbox/flex-algorithm.html:
  • css3/flexbox/flex-align-column.html:
  • css3/flexbox/flex-align-end.html:
  • css3/flexbox/flex-align-max.html:
  • css3/flexbox/flex-align-percent-height.html:
  • css3/flexbox/flex-align-stretch.html:
  • css3/flexbox/flex-align-vertical-writing-mode.html:
  • css3/flexbox/flex-align.html:
  • css3/flexbox/flex-flow-auto-margins.html:
  • css3/flexbox/flex-flow-border.html:
  • css3/flexbox/flex-flow-margins-auto-size.html:
  • css3/flexbox/flex-flow-margins.html:
  • css3/flexbox/flex-flow-orientations.html:
  • css3/flexbox/flex-flow-overflow.html:
  • css3/flexbox/flex-flow-padding.html:
  • css3/flexbox/flex-flow.html:
  • css3/flexbox/flex-item-child-overflow.html:
  • css3/flexbox/flex-item-min-size.html:
  • css3/flexbox/flex-justify-content.html:
  • css3/flexbox/flex-no-flex.html:
  • css3/flexbox/flexitem.html:
  • css3/flexbox/floated-flexbox.html:
  • css3/flexbox/line-wrapping.html:
  • css3/flexbox/multiline-align-content-horizontal-column.html:
  • css3/flexbox/multiline-align-content.html:
  • css3/flexbox/multiline-align-self.html:
  • css3/flexbox/multiline-column-auto.html:
  • css3/flexbox/multiline-justify-content.html:
  • css3/flexbox/multiline-reverse-wrap-overflow.html:
  • css3/flexbox/multiline.html:
  • css3/flexbox/nested-stretch.html:
  • css3/flexbox/orthogonal-flex-directions.html:
  • css3/flexbox/perpendicular-writing-modes-inside-flex-item.html:
  • css3/flexbox/position-absolute-child.html:
  • css3/flexbox/preferred-widths-orthogonal.html:
  • css3/flexbox/preferred-widths.html:
  • css3/flexbox/style-change.html:
  • css3/flexbox/true-centering.html:
  • css3/flexbox/writing-modes.html:
  • resources/check-layout.js: Renamed from LayoutTests/css3/flexbox/resources/flexbox.js.

(.): Rename checkFlexboxen to checkLayout that takes a CSS selector. Hide functions in a closure.

12:54 PM Changeset in webkit [122622] by dgrogan@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

IndexedDB: Re-enable indexeddb in test_shell
https://bugs.webkit.org/show_bug.cgi?id=91161

Reviewed by Tony Chang.

IDB used to be allowed to run if webView->permissionClient() was NULL,
as is the case in test_shell. This was inadvertently changed in
http://wkb.ug/90310.

We still don't have an automated test for this (http://crbug.com/113738)
Tested manually:

  • In test_shell:

1) Open an IDB page
2) Verify IDB has permission to open a DB

  • In chrome:

1) Open an IDB page
2) Verify IDB has permission to open a DB
3) Revoke IDB permissions in chrome://chrome/settings/content
4) Reload the IDB page
5) Verify IDB doesn't have permission to open a DB

  • src/IDBFactoryBackendProxy.cpp:

(WebKit::IDBFactoryBackendProxy::allowIndexedDB):

12:48 PM Changeset in webkit [122621] by rniwa@webkit.org
  • 16 edits in trunk/Source/WebCore

HTMLCollection should use DynamicNodeList's invalidation model
https://bugs.webkit.org/show_bug.cgi?id=90326

Reviewed by Anders Carlsson.

Make HTMLCollection invalidated upon attribute and children changes instead of invalidating it on demand
by comparing DOM tree versions. Node that HTMLCollections owned by Document are invalidated with other
document-rooted node lists in m_listsInvalidatedAtDocument for simplicity although this mechanism is
normally used for node lists owned by a non-Document node that contains nodes outside of its subtree.
ItemProperties and FormControls are more "traditional" users of the mechanism.

Also, merged DynamicNodeList::invalidateCache and HTMLCollection::invalidateCache.

  • dom/Document.cpp:

(WebCore::Document::registerNodeListCache): Renamed. No longer takes NodeListInvalidationType or
NodeListRootType since they can be obtained from the cache base. Increment the node list counter for
InvalidateOnIdNameAttrChange when a HTMLCollection is passed in since all HTMLCollections need to be
invalidated on id or name content attribute changes due to named getters.
(WebCore::Document::unregisterNodeListCache): Ditto.
(WebCore::shouldInvalidateNodeListForType):
(WebCore::Document::shouldInvalidateNodeListCaches):
(WebCore::Document::clearNodeListCaches):

  • dom/Document.h:

(WebCore): Added InvalidateOnIdNameAttrChange, InvalidateOnHRefAttrChange, and InvalidateOnAnyAttrChange.
(Document):

  • dom/DynamicNodeList.cpp:

(WebCore::DynamicNodeListCacheBase::invalidateCache): Added. Invalidates caches of both DynamicNodeList
and HTMLCollection. We can't afford to use virtual function calls here because this function is called on
all node lists and HTML collections owned by ancestors of an element under which a node is added, removed,
or its attributes are changed.
(WebCore):

  • dom/DynamicNodeList.h:

(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Initializes member variables directly
instead of calling clearCache now that DynamicNodeListCacheBase::invalidateCache has become polymorphic.
(DynamicNodeListCacheBase): Increased the number of bits for m_invalidationType since we now have 9
invalidation types.
(WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):

  • dom/ElementRareData.h:

(ElementRareData):
(WebCore::ElementRareData::clearHTMLCollectionCaches): Added.
(WebCore::ElementRareData::adoptTreeScope): Added; similar to NodeRareData::adoptTreeScope.

  • dom/Node.cpp:

(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Clears HTML collection caches as well as
node list caches.
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::adoptTreeScope):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope): Calls ElementRareData's adoptTreeScope as well as
NodeRareData's.

  • html/HTMLAllCollection.cpp:

(WebCore::HTMLAllCollection::namedItemWithIndex):

  • html/HTMLCollection.cpp:

(WebCore::rootTypeFromCollectionType): Added. As mentioned above, treat all Document-owned HTML collection
as if rooted at document for convenience.
(WebCore::invalidationTypeExcludingIdAndNameAttributes): Added. Since all HTML collection requires
invalidation on id and name content attribute changes, which is taken care by the special logic in
Document::registerNodeListCache, exclude those two attributes from consideration.
(WebCore::HTMLCollection::HTMLCollection): Calls Document::registerNodeListCache.
(WebCore::HTMLCollection::~HTMLCollection): Calls Document::unregisterNodeListCache.
(WebCore::HTMLCollection::length):
(WebCore::HTMLCollection::item):
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNameCache):

  • html/HTMLCollection.h:

(WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
(HTMLCollectionCacheBase): Removed m_cacheTreeVersion and clearCache since they're no longer used.
(HTMLCollection):

  • html/HTMLFormCollection.cpp:

(WebCore::HTMLFormCollection::namedItem):
(WebCore::HTMLFormCollection::updateNameCache):

  • html/HTMLOptionsCollection.h:

(HTMLOptionsCollection):

  • html/HTMLPropertiesCollection.cpp:

(WebCore::HTMLPropertiesCollection::updateNameCache):

  • html/HTMLPropertiesCollection.h:

(WebCore::HTMLPropertiesCollection::invalidateCache):

12:45 PM Changeset in webkit [122620] by zandobersek@gmail.com
  • 1 edit
    3 adds in trunk/LayoutTests

Unreviewed GTK gardening, adding a baseline required after unskipping
fast/files/workers/worker-read-blob-async.html in r122612.

  • platform/gtk/fast/files: Added.
  • platform/gtk/fast/files/workers: Added.
  • platform/gtk/fast/files/workers/worker-read-blob-async-expected.txt: Added.
12:40 PM Changeset in webkit [122619] by shawnsingh@chromium.org
  • 2 edits in trunk/Source/WebCore

[chromium] Remove incorrect debug assertion in LayerRendererChromium.cpp
https://bugs.webkit.org/show_bug.cgi?id=91260

Reviewed by Adrienne Walker.

ASSERT(!clipped) was being triggered after skinny almost-degenerate
quads went through anti-aliasing inflation, and then were being
transformed back from device space to local space. It turns out
this assertion is too aggressive, and we don't yet have an obvious
need to change the behavior on the clipped==true case.

No new tests needed, this patch fixes only comments and debug code.

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawRenderPassQuad):

fixed a comment.

(WebCore::LayerRendererChromium::drawTileQuad):

fixed a similar comment, removed unnecessary assertion.

12:11 PM Changeset in webkit [122618] by dpranke@chromium.org
  • 2 edits in trunk/Tools

webkitpy: make worker.start() and worker.stop() optional in the messagepool
https://bugs.webkit.org/show_bug.cgi?id=91170

Reviewed by Ojan Vafai.

test-webkitpy will use messagepool workers that don't actually
have any per-worker state, so they don't need start() and stop()
methods. Now we will only call the methods if they exist; this
means that workers only need to expose a handle() method.

  • Scripts/webkitpy/common/message_pool.py:

(_Worker.terminate):
(_Worker.run):

12:10 PM Changeset in webkit [122617] by zandobersek@gmail.com
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed GTK gardening, updating baselines for the fast/backgrounds/size/zero.html
test as required after r121296.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/backgrounds/size/zero-expected.png: Added.
  • platform/gtk/fast/backgrounds/size/zero-expected.txt:
12:08 PM Changeset in webkit [122616] by pdr@google.com
  • 3 edits
    2 adds in trunk

Remove assert in localCoordinateSpaceTransform()
https://bugs.webkit.org/show_bug.cgi?id=91189

Reviewed by Nikolas Zimmermann.

Source/WebCore:

The assert in localCoordinateSpaceTransform was added to catch subclasses forgetting
to override the method but it is better to simply return the identity matrix.

This scenario can occur when we break the SVG content model, such as asking for
the CTM of a <g> element inside a <tspan>. This is undefined in the spec because
tspan is not a subclass of SVGLocatable but both Firefox and Opera
implement this by returning the identity matrix.

Test: svg/custom/invalid-ctm.svg

  • svg/SVGStyledElement.cpp:

(WebCore::SVGStyledElement::localCoordinateSpaceTransform):

LayoutTests:

  • svg/custom/invalid-ctm-expected.txt: Added.
  • svg/custom/invalid-ctm.svg: Added.
12:08 PM Changeset in webkit [122615] by dpranke@chromium.org
  • 4 edits in trunk/Tools

NRWT doesn't print exceptions
https://bugs.webkit.org/show_bug.cgi?id=91129

Reviewed by Ojan Vafai.

Although we printed exceptions in most cases, if an unexpected
exception (like a runtime error) was raised when creating a
port, we wouldn't. This patch fixes that, and also cleans up
how we were logging exceptions from the workers to be less
verbose.

Because of the corner cases where these errors are occurring,
it's difficult to write automated unit tests for them. I've
tested it quite a bit by hand, though.

  • Scripts/webkitpy/common/message_pool.py:

(_MessagePool._close):
(_MessagePool._handle_worker_exception):
(_Worker.run):
(_Worker._raise):

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._run_tests):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

12:05 PM Changeset in webkit [122614] by haraken@chromium.org
  • 2 edits in trunk/Source/WebCore

[V8] String wrappers should be marked Independent
https://bugs.webkit.org/show_bug.cgi?id=91251

Reviewed by Adam Barth.

Currently V8 String wrappers are not marked Independent.
By marking them Independent, they can be reclaimed by the scavenger GC.

I tried to find some cases where this change reduces memory usage,
but couldn't due to sensitive behavior of GC.

No tests. No change in behavior.

  • bindings/v8/V8Binding.cpp:

(WebCore::StringCache::v8ExternalStringSlow):

12:00 PM Changeset in webkit [122613] by dgrogan@chromium.org
  • 2 edits in trunk/LayoutTests

IndexedDB: Add unexpectedUpgradeNeededCallback to shared.js
https://bugs.webkit.org/show_bug.cgi?id=91176

Reviewed by Tony Chang.

This is just used in our layout tests. It's the simplest possible piece
I could break off of the upgradeneeded changes.

No tests because no change in behavior expected.

  • storage/indexeddb/resources/shared.js:

(unexpectedBlockedCallback):
(unexpectedUpgradeNeededCallback):

11:50 AM Changeset in webkit [122612] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, removing timeout expectations for a few
File API tests while hoping the problems have now gone away.

  • platform/gtk/TestExpectations:
11:46 AM Changeset in webkit [122611] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/LayoutTests

[EFL] Gardening failure cases on EFL build bot
https://bugs.webkit.org/show_bug.cgi?id=91219

Unreviewed EFL gardening. Skip the new failing tests and add
platform-specific results for fallback-content.html to get the
bot greener.

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-07-13

  • platform/efl/TestExpectations:
  • platform/efl/fast/canvas/fallback-content-expected.txt: Added.
11:45 AM Changeset in webkit [122610] by peter@chromium.org
  • 2 edits in trunk/Source/WebCore

[Chromium] Make the v8 i18n API dependency conditional for Android, disable strict aliasing
https://bugs.webkit.org/show_bug.cgi?id=91240

Reviewed by Adam Barth.

Disable the v8 internationalization API for Chromium Android, as it's
disabled and not always available in checkouts. Furthermore, disable
strict aliasing for the webkit_remaining target, similar to what
x11-based builds are doing (see the webcore_prerequisites target).

  • WebCore.gyp/WebCore.gyp:
11:43 AM Changeset in webkit [122609] by zandobersek@gmail.com
  • 2 edits
    8 adds in trunk/LayoutTests

Unreviewed GTK gardening, adding baselines and expectations required
after r122509 and r122528.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/w3c: Added.
  • platform/gtk/http/tests/w3c/webperf: Added.
  • platform/gtk/http/tests/w3c/webperf/approved: Added.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing: Added.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html: Added.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Added.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html5: Added.
  • platform/gtk/http/tests/w3c/webperf/approved/navigation-timing/html5/test_timing_xserver_redirect-expected.txt: Added.
11:25 AM WebKit Team edited by Hugo Parente Lima
(diff)
11:15 AM Changeset in webkit [122608] by haraken@chromium.org
  • 7 edits in trunk/Source/WebCore

[CallWith=XXX] arguments should be placed at the head of method arguments
https://bugs.webkit.org/show_bug.cgi?id=91217

Reviewed by Adam Barth.

The EFL build with the ENABLE_FILE_SYSTEM flag caused a build error,
because CodeGeneratorJS.pm assumes webkitEntries(ScriptExecutionContext*, HTMLInputElement*)
but the actual signature is webkitEntries(HTMLInputElement*, ScriptExecutionContext*) (bug 91185).

Per https://trac.webkit.org/wiki/WebKitIDL#CallWith, [CallWith=XXX] arguments should be placed
at the head of the arguments. (i.e. the behavior of CodeGeneratorJS.pm is correct.)

Thus the correct fix is (1) to change the signature of webkitEntries() and webkitGetAsEntry()
so that ScriptExecutionContext* comes first and (2) to modify CodeGeneratorV8.pm to support the order.

Test: bindings/scripts/test/TestObj.idl

  • Modules/filesystem/DataTransferItemFileSystem.h: Placed ScriptExecutionContext* at the head of arguments.

(DataTransferItemFileSystem):

  • Modules/filesystem/HTMLInputElementFileSystem.cpp: Ditto.

(WebCore::HTMLInputElementFileSystem::webkitEntries):

  • Modules/filesystem/HTMLInputElementFileSystem.h: Ditto.

(HTMLInputElementFileSystem):

  • Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp: Ditto.

(WebCore::DataTransferItemFileSystem::webkitGetAsEntry):

  • bindings/scripts/CodeGeneratorV8.pm: Modified to support the correct order.

(GenerateNormalAttrGetter):
(GenerateNormalAttrSetter):
(GenerateFunctionCallString):

  • bindings/scripts/test/V8/V8TestInterface.cpp: Updated run-bindings-tests results.

(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):

11:11 AM Changeset in webkit [122607] by ojan@chromium.org
  • 3 edits in trunk/Websites/bugs.webkit.org

PrettyPatch.rb complains about missing checksum for new pixel results
https://bugs.webkit.org/show_bug.cgi?id=88368

Reviewed by Tony Chang.

When adding or removing a file, we incorrectly iterpreted not having an image
as not having a checksum.

  • PrettyPatch/PrettyPatch.rb:
  • PrettyPatch/PrettyPatch_test.rb:

I tried to fix the TempFile issue in these tests, but after a couple hours
of banging my head against this, I have no idea what's breaking.

10:57 AM Changeset in webkit [122606] by commit-queue@webkit.org
  • 4 edits in trunk

enable TestWebKitAPI/webkit_unit_tests apk on x86 android platform by adding abi support
https://bugs.webkit.org/show_bug.cgi?id=91194

Patch by Wei James <james.wei@intel.com> on 2012-07-13
Reviewed by Adam Barth.

Source/WebKit/chromium:

  • WebKitUnitTests.gyp:

Tools:

  • TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp:
10:55 AM Changeset in webkit [122605] by Philippe Normand
  • 2 edits in trunk/Tools

[GTK] Gardening: update API tests skipped list
https://bugs.webkit.org/show_bug.cgi?id=91224

Unreviewed gardening.

Skip "next" and "previous" tests of FindController until bug #91083
is fixed.

Patch by Simon Pena <Simon Pena> on 2012-07-13

  • gtk/run-api-tests:

(TestRunner):

10:39 AM Changeset in webkit [122604] by mary.wu@torchmobile.com.cn
  • 6 edits in trunk/Source/WebCore

[BlackBerry] Some small changes in network code
https://bugs.webkit.org/show_bug.cgi?id=90974

Reviewed by Rob Buis.

  1. Set status in NetworkJob/SocketStreamHandleBlackBerry so that

its wrapped stream can also query the stream result.

  1. pass download attribute to NetworkRequest.

RIM PR# 171555
Reviewed internally by Lyon Chen and Joe Mason.

  • platform/network/blackberry/NetworkJob.cpp:

(WebCore::NetworkJob::handleNotifyClose):

  • platform/network/blackberry/NetworkJob.h:

(WebCore::NetworkJob::status):

  • platform/network/blackberry/ResourceRequestBlackBerry.cpp:

(WebCore::platformTargetTypeForRequest):

  • platform/network/blackberry/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::status):
(SocketStreamHandle):

  • platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:

(WebCore::SocketStreamHandle::notifyStatusReceived):
(WebCore::SocketStreamHandle::notifyClose):

10:32 AM Changeset in webkit [122603] by vsevik@chromium.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: Remove uiSourceCode from Resource.
https://bugs.webkit.org/show_bug.cgi?id=91201

Reviewed by Pavel Feldman.

Removed Resource._uiSourceCode field as it is not used anymore.

  • inspector/front-end/Resource.js:

(WebInspector.Resource.prototype.isHidden):

  • inspector/front-end/UISourceCode.js:

(WebInspector.UISourceCode):

10:28 AM Changeset in webkit [122602] by danakj@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

webkit_unit_test CCLayerTreeHostImplTest.testRemoveRenderPasses started failing.
https://bugs.webkit.org/show_bug.cgi?id=91245

Reviewed by Adrienne Walker.

  • tests/CCLayerTreeHostImplTest.cpp:
10:25 AM Changeset in webkit [122601] by commit-queue@webkit.org
  • 9 edits in trunk

[CMake] Proper handling of ENABLE_API_TESTS build option
https://bugs.webkit.org/show_bug.cgi?id=91221

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-07-13
Reviewed by Rob Buis.

.:

Make the flag reusable across the ports using CMake. We are about to enable the WTF,
WebCore and WebKit 2 API's at Tools/TestWebKitAPI and other ports using CMake can get
it almost for free.

  • CMakeLists.txt:
  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/WebKit:

Build unit tests only if ENABLE_API_TESTS is set.

  • PlatformEfl.cmake:

Source/WebKit2:

Build unit tests only if ENABLE_API_TESTS is set.

  • PlatformEfl.cmake:
10:24 AM Changeset in webkit [122600] by inferno@chromium.org
  • 25 edits in trunk/Source/WebCore

Unreviewed, rolling out r122450 and r122580.
http://trac.webkit.org/changeset/122450
http://trac.webkit.org/changeset/122580
https://bugs.webkit.org/show_bug.cgi?id=91263

Caused multiple regressions on ClusterFuzz (Requested by
inferno-sec on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-13

  • bindings/js/ScriptWrappable.h:

(WebCore::ScriptWrappable::reportMemoryUsage):

  • bindings/v8/DOMDataStore.cpp:

(WebCore::DOMDataStore::reportMemoryUsage):

  • bindings/v8/IntrusiveDOMWrapperMap.h:

(WebCore::ChunkedTable::reportMemoryUsage):

  • bindings/v8/ScriptWrappable.h:

(WebCore::ScriptWrappable::reportMemoryUsage):

  • bindings/v8/V8Binding.cpp:

(WebCore::V8BindingPerIsolateData::reportMemoryUsage):
(WebCore::StringCache::reportMemoryUsage):

  • bindings/v8/V8DOMMap.h:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::InlineCSSStyleDeclaration::ensureMutablePropertySet):

  • css/StylePropertySet.cpp:
  • css/StylePropertySet.h:

(WebCore::StylePropertySet::reportMemoryUsage):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::reportMemoryUsage):

  • dom/ContainerNode.h:

(WebCore::ContainerNode::reportMemoryUsage):

  • dom/Document.cpp:

(WebCore::Document::reportMemoryUsage):

  • dom/Element.cpp:

(WebCore::Element::detachAttribute):
(WebCore::Element::removeAttribute):
(WebCore::Element::attributes):
(WebCore::Element::setAttributeInternal):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::hasEquivalentAttributes):
(WebCore::Element::createAttributeData):
(WebCore):
(WebCore::Element::setAttributeNode):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::getAttributeNode):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::hasAttribute):
(WebCore::Element::hasAttributeNS):
(WebCore::Element::normalizeAttributes):
(WebCore::Element::cloneAttributesFromElement):

  • dom/Element.h:

(WebCore::Element::attributeData):
(Element):
(WebCore::Element::reportMemoryUsage):
(WebCore::Element::ensureAttributeData):
(WebCore::Element::updatedAttributeData):
(WebCore::Element::ensureUpdatedAttributeData):

  • dom/ElementAttributeData.cpp:

(WebCore::ElementAttributeData::attrIfExists):
(WebCore::ElementAttributeData::ensureAttr):
(WebCore::ElementAttributeData::setAttr):
(WebCore::ElementAttributeData::removeAttr):
(WebCore::ElementAttributeData::setClass):
(WebCore):
(WebCore::ElementAttributeData::ensureInlineStyle):
(WebCore::ElementAttributeData::ensureMutableInlineStyle):
(WebCore::ElementAttributeData::destroyInlineStyle):
(WebCore::ElementAttributeData::addAttribute):
(WebCore::ElementAttributeData::removeAttribute):
(WebCore::ElementAttributeData::isEquivalent):
(WebCore::ElementAttributeData::detachAttrObjectsFromElement):
(WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
(WebCore::ElementAttributeData::cloneDataFrom):
(WebCore::ElementAttributeData::clearAttributes):
(WebCore::ElementAttributeData::replaceAttribute):
(WebCore::ElementAttributeData::getAttributeNode):

  • dom/ElementAttributeData.h:

(WebCore::ElementAttributeData::create):
(ElementAttributeData):
(WebCore::ElementAttributeData::setIdForStyleResolution):
(WebCore::ElementAttributeData::setAttributeStyle):
(WebCore::ElementAttributeData::length):
(WebCore::ElementAttributeData::isEmpty):
(WebCore::ElementAttributeData::attributeItem):
(WebCore::ElementAttributeData::getAttributeItem):
(WebCore::ElementAttributeData::reportMemoryUsage):
(WebCore::ElementAttributeData::ElementAttributeData):
(WebCore::ElementAttributeData::attributeVector):
(WebCore::ElementAttributeData::clonedAttributeVector):
(WebCore::ElementAttributeData::removeAttribute):
(WebCore::ElementAttributeData::getAttributeItemIndex):

  • dom/MemoryInstrumentation.h:

(MemoryInstrumentation):
(MemoryObjectInfo):
(WebCore::MemoryObjectInfo::reportInstrumentedPointer):
(WebCore::MemoryObjectInfo::reportPointer):
(WebCore::MemoryObjectInfo::reportInstrumentedObject):
(WebCore::MemoryObjectInfo::reportObject):
(WebCore::MemoryObjectInfo::reportObjectInfo):
(WebCore::MemoryObjectInfo::reportHashMap):
(WebCore::MemoryObjectInfo::reportHashSet):
(WebCore::MemoryObjectInfo::reportListHashSet):
(WebCore::MemoryObjectInfo::reportVector):
(WebCore::MemoryObjectInfo::reportString):
(WebCore::MemoryObjectInfo::objectType):
(WebCore::MemoryObjectInfo::objectSize):
(WebCore::MemoryObjectInfo::memoryInstrumentation):

  • dom/Node.cpp:

(WebCore::Node::reportMemoryUsage):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
(WebCore::QualifiedName::reportMemoryUsage):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::style):
(WebCore::StyledElement::classAttributeChanged):
(WebCore::StyledElement::setInlineStyleProperty):
(WebCore::StyledElement::removeInlineStyleProperty):
(WebCore::StyledElement::addSubresourceAttributeURLs):

  • dom/StyledElement.h:

(WebCore::StyledElement::ensureInlineStyle):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):

  • platform/TreeShared.h:

(WebCore::TreeShared::reportMemoryUsage):

  • xml/parser/XMLDocumentParserQt.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):

10:23 AM Changeset in webkit [122599] by mifenton@rim.com
  • 3 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Add support for attributes to define keyboard and enter key type on the Virtual Keyboard
https://bugs.webkit.org/show_bug.cgi?id=91248

Reviewed by Antonio Gomes.

PR 174733.

Add data-blackberry-virtual-keyboard-type and
data-blackberry-virtual-keyboard-enter-key to
enable configuration of the desired virtual keyboard
using element attributes.

Reviewed Internally by Gen Mak.

  • Api/WebPageClient.h:
  • WebKitSupport/InputHandler.cpp:

(BlackBerry::WebKit::convertStringToKeyboardType):
(WebKit):
(BlackBerry::WebKit::keyboardTypeAttribute):
(BlackBerry::WebKit::convertStringToKeyboardEnterKeyType):
(BlackBerry::WebKit::keyboardEnterKeyTypeAttribute):
(BlackBerry::WebKit::InputHandler::setElementFocused):

10:19 AM Changeset in webkit [122598] by kseo@webkit.org
  • 6 edits in trunk/Source/WebCore

Remove down-casting to BitmapImage in GraphicsContext::drawImage.
https://bugs.webkit.org/show_bug.cgi?id=90755

Patch by Huang Dongsung <luxtella@company100.net> on 2012-07-13
Reviewed by Simon Fraser.

Add a BitmapImage draw method which takes RespectImageOrientationEnum enum as
the last argument for CG. Then we can remove the conditional down-casting in
GraphicsContext::drawImage.

This change is needed for parallel image decoders. Because parallel image
decoders use a Bitmap image wrapper class which extends Image (not Bitmap), the
down-casting above causes the loss of RespectImageOrientationEnum which must be
passed to BitmapImage.

No new tests, no behavior change.

  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/BitmapImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):

  • platform/graphics/Image.cpp:

(WebCore::Image::draw):
(WebCore):

  • platform/graphics/Image.h:

(Image):

10:09 AM Changeset in webkit [122597] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL][WK2] Make new public Ewk headers as installable
https://bugs.webkit.org/show_bug.cgi?id=91232

Patch by Christophe Dumez <Christophe Dumez> on 2012-07-13
Reviewed by Antonio Gomes.

Make new public Ewk headers installable.

  • PlatformEfl.cmake:
10:06 AM Changeset in webkit [122596] by pdr@google.com
  • 2 edits
    2 copies in branches/chromium/1132

Merging r118589 into 1132

9:53 AM Changeset in webkit [122595] by Patrick Gansterer
  • 2 edits in trunk/Source/JavaScriptCore

[WIN] Fix compilation of DFGRepatch.cpp
https://bugs.webkit.org/show_bug.cgi?id=91241

Reviewed by Geoffrey Garen.

Use intptr_t instead of uintptr_t when calling CodeLocationCommon::dataLabelPtrAtOffset(int)
to fix MSVC "unary minus operator applied to unsigned type, result still unsigned" warning.

  • dfg/DFGRepatch.cpp:

(JSC::DFG::dfgResetGetByID):
(JSC::DFG::dfgResetPutByID):

9:35 AM Changeset in webkit [122594] by Patrick Gansterer
  • 2 edits in trunk/Source/JavaScriptCore

Fix ARM_TRADITIONAL JIT for COMPILER(MSVC) and COMPILER(RVCT) after r121885
https://bugs.webkit.org/show_bug.cgi?id=91238

Reviewed by Zoltan Herczeg.

r121885 changed the assembler instruction only for COMPILER(GCC).
Use the same instructions for the other compilers too.

  • jit/JITStubs.cpp:

(JSC::ctiTrampoline):
(JSC::ctiTrampolineEnd):
(JSC::ctiVMThrowTrampoline):

9:22 AM Changeset in webkit [122593] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, updated chromium test expectations.
https://bugs.webkit.org/show_bug.cgi?id=91252

  • platform/chromium/TestExpectations:
9:18 AM Changeset in webkit [122592] by abarth@webkit.org
  • 2 edits in trunk/LayoutTests

Also mark its evil twin as flaky.

  • platform/chromium/TestExpectations:
9:16 AM Changeset in webkit [122591] by abarth@webkit.org
  • 2 edits in trunk/LayoutTests

Note this test as flaky.

  • platform/chromium/TestExpectations:
9:13 AM Changeset in webkit [122590] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, updated test expectations.
http://bugs.webkit.org/show_bug.cgi?id=91255

  • platform/chromium/TestExpectations:
9:11 AM Changeset in webkit [122589] by zhajiang@rim.com
  • 4 edits in trunk/Source/WebKit/blackberry

[BlackBerry] resetBitmapZoomScale called while zooming preventing pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=91247

Reviewed by Antonio Gomes.
Patch by Jacky Jiang <zhajiang@rim.com>

PR: 175432
On yahoo.com, the web page stopped zooming while trying to pinch as
WebPageClient::resetBitmapZoomScale(double) was being called by
WebPagePrivate::zoomToInitialScaleOnLoad() after load finished.
And also yahoo.com was keeping updating layout, which made it really
bad that zoomToInitialScaleOnLoad() was called many times when load
finished and the load type was FrameLoadTypeStandard or FrameLoadTypeSame.
As we only care about the situation that dispatchDidFirstVisuallyNonEmptyLayout()
happens after load finished, we can move the code to that method and
set a flag for WebPage layoutFinished() and zoomToInitialScaleOnLoad()
instead. In this way, we can ensure that the flag is only enabled when
dispatchDidFirstVisuallyNonEmptyLayout() is called after load finished
and get rid of calling zoomToInitialScaleOnLoad() lots of times when
keeping updating layout in such kind of situation.

Internally reviewed by Arvid Nilsson

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::setLoadState):
(BlackBerry::WebKit::WebPagePrivate::layoutFinished):

  • Api/WebPage_p.h:

(BlackBerry::WebKit::WebPagePrivate::shouldZoomToInitialScaleOnLoad):
(BlackBerry::WebKit::WebPagePrivate::setShouldZoomToInitialScaleAfterLoadFinished):
(WebPagePrivate):

  • WebCoreSupport/FrameLoaderClientBlackBerry.cpp:

(WebCore::FrameLoaderClientBlackBerry::dispatchDidFirstVisuallyNonEmptyLayout):

9:00 AM Changeset in webkit [122588] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed chromium gardening, updated test expectations.
https://bugs.webkit.org/show_bug.cgi?id=91254

  • platform/chromium/TestExpectations:
8:53 AM Changeset in webkit [122587] by jpetsovits@rim.com
  • 5 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Use fillBuffer() instead of a user-defined background image.
https://bugs.webkit.org/show_bug.cgi?id=91180
RIM PR 171458

Reviewed by Rob Buis.
Internally reviewed by Andrew Lo.

By using Platform::Graphics::fillBuffer() to fill the
overscroll area, we save graphics memory for the buffer
that the background image was occupying.

Also adapt checkerboard drawing as it is now done using
fillBuffer() which replaces checkerBuffer().

In the same go, use the opportunity of the WebSettings
API change to make it more consistent, renaming the
OverZoomColor setting to OverScrollColor.

  • Api/BackingStore.cpp:

(WebKit):
(BlackBerry::WebKit::BackingStorePrivate::paintDefaultBackground):
(BlackBerry::WebKit::BackingStorePrivate::blitContents):
(BlackBerry::WebKit::BackingStorePrivate::fillWindow):

  • Api/BackingStore_p.h:

(BackingStorePrivate):

  • Api/WebSettings.cpp:

(WebKit):
(BlackBerry::WebKit::WebSettings::standardSettings):
(BlackBerry::WebKit::WebSettings::overScrollColor):
(BlackBerry::WebKit::WebSettings::setOverScrollColor):
(BlackBerry::WebKit::WebSettings::isEnableDefaultOverScrollBackground):
(BlackBerry::WebKit::WebSettings::setEnableDefaultOverScrollBackground):

  • Api/WebSettings.h:
8:51 AM Changeset in webkit [122586] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Fix QtWebKit build with OpenGLES after GC3D/E3D refactor
https://bugs.webkit.org/show_bug.cgi?id=91156

Patch by Lauro Neto <lauro.neto@openbossa.org> on 2012-07-13
Reviewed by Noam Rosenthal.

Adds several build fixes.

  • platform/graphics/GraphicsContext3D.h:

Use E3DOpenGLES instead of previously removed E3DQt.

  • platform/graphics/OpenGLESShims.h:

Enable defines for Qt.

  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:

(WebCore::Extensions3DOpenGLES::blitFramebuffer):
(WebCore):
(WebCore::Extensions3DOpenGLES::renderbufferStorageMultisample):
(WebCore::Extensions3DOpenGLES::copyTextureCHROMIUM):

Added pure virtual stubs.

(WebCore::Extensions3DOpenGLES::supportsExtension):

Remove PROC suffix. See bug #91130.

  • platform/graphics/opengl/Extensions3DOpenGLES.h:

(Extensions3DOpenGLES):

Added pure virtual stubs.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

Readded missing function after removed in r122250.

(WebCore):

Use PLATFORM(BLACKBERRY) guard around port-specific include.

  • platform/graphics/qt/GraphicsContext3DQt.cpp:

Added USE(OPENGL_ES_2) guard instead of always loading the OpenGL extensions.

8:47 AM Changeset in webkit [122585] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, marked chromium test as flaky.
https://bugs.webkit.org/show_bug.cgi?id=91252

  • platform/chromium/TestExpectations:
8:36 AM Changeset in webkit [122584] by keishi@webkit.org
  • 17 edits
    6 adds in trunk

Form of FormAssociatedElement is not updated when id target changes.
https://bugs.webkit.org/show_bug.cgi?id=91042

Reviewed by Kent Tamura.

Source/WebCore:

Test: fast/forms/update-form-attribute-element.html

This patch introduces the IdTargetObserver and IdTargetObserverRegistry class.
They can be used to be notified when the element that an id is pointing to (the id target)
changes.

  • CMakeLists.txt: Added IdTargetObserverRegistry.{h,cpp} and IdTargetObserver.{h,cpp}
  • GNUmakefile.list.am: Ditto.
  • Target.pri: Ditto.
  • WebCore.gypi: Ditto.
  • WebCore.vcproj/WebCore.vcproj: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • dom/DOMAllInOne.cpp:
  • dom/IdTargetObserver.cpp: Added. When you want notified of changes to an id target, you should create a new class that inherits this.

(WebCore):
(WebCore::IdTargetObserver::IdTargetObserver):
(WebCore::IdTargetObserver::~IdTargetObserver):

  • dom/IdTargetObserver.h: Added.

(WebCore):
(IdTargetObserver):

  • dom/IdTargetObserverRegistry.cpp: Added.

(WebCore):
(WebCore::IdTargetObserverRegistry::create):
(WebCore::IdTargetObserverRegistry::addObserver): Register an IdTargetObserver to observe an id target.
(WebCore::IdTargetObserverRegistry::removeObserver): Unregisters an IdTargetObserver from observing.
(WebCore::IdTargetObserverRegistry::notifyObserversInternal):

  • dom/IdTargetObserverRegistry.h: Added.

(WebCore):
(IdTargetObserverRegistry):
(WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
(WebCore::IdTargetObserverRegistry::notifyObservers): Calls idTargetChanged on all observers for an id. Inlining first part of function for performance.

  • dom/TreeScope.cpp:

(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::addElementById): Calls IdTargetObserverRegistry::notifyObservers because the id target might have changed.
(WebCore::TreeScope::removeElementById): Ditto.

  • dom/TreeScope.h:

(WebCore):
(WebCore::TreeScope::idTargetObserverRegistry):
(TreeScope):

  • html/FormAssociatedElement.cpp: Observer for id targets defined by the form attribute.

(WebCore::FormAssociatedElement::didMoveToNewDocument):
(WebCore::FormAssociatedElement::insertedInto):
(WebCore::FormAssociatedElement::removedFrom):
(WebCore::FormAssociatedElement::formAttributeChanged):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver): Creates and sets up a new FormAttributeTargetObserver.
(WebCore):
(WebCore::FormAssociatedElement::formAttributeTargetChanged):
(WebCore::FormAttributeTargetObserver::create):
(WebCore::FormAttributeTargetObserver::FormAttributeTargetObserver):
(WebCore::FormAttributeTargetObserver::idTargetChanged):

  • html/FormAssociatedElement.h:

(FormAssociatedElement):

  • html/FormController.cpp:
  • html/FormController.h:

(FormController):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::removedFrom):
(WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Modified to take a range. It
scans the range and returns the index to insert the element in m_associatedElement.
(WebCore::HTMLFormElement::formElementIndex): Modified to only scan the elements in
m_associatedElement that precede and follow the form element.

  • html/HTMLFormElement.h:

(HTMLFormElement):

LayoutTests:

  • fast/forms/update-form-attribute-element-expected.txt: Added.
  • fast/forms/update-form-attribute-element.html: Added.
8:32 AM Changeset in webkit [122583] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardneing, skip failing chromium test.

  • platform/chromium/TestExpectations:
8:31 AM Changeset in webkit [122582] by rgabor@webkit.org
  • 9 edits
    1 add in trunk/Source/WebCore

Optimizing blend filter to ARM-NEON with intrinsics
https://bugs.webkit.org/show_bug.cgi?id=90949

Reviewed by Zoltan Herczeg.

The feBlend SVG filter modes can be greatly fasten up with ARM-NEON since
we are able to calculate with 2 pixels (8 channels) at the same time.
The code is written with NEON intrinsics and it doesn't affect the
general - it has the same behaviour as the original algorithm.
With this NEON optimization the calculation is ~4.5 times faster for each mode.

Existing tests cover this issue.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplyGeneric):
(WebCore):
(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEBlend.h:

(FEBlend):

  • platform/graphics/filters/arm/FEBlendNEON.h: Added.

(WebCore):
(FEBlendUtilitiesNEON):
(WebCore::FEBlendUtilitiesNEON::div255): integer divison with 255
(WebCore::FEBlendUtilitiesNEON::normal): calculate normal mode blending for two pixels
(WebCore::FEBlendUtilitiesNEON::multiply): calculate multiply mode blending for two pixels
(WebCore::FEBlendUtilitiesNEON::screen): calculate screen mode blending for two pixels
(WebCore::FEBlendUtilitiesNEON::darken): calculate darken mode blending for two pixels
(WebCore::FEBlendUtilitiesNEON::lighten): calculate lighten mode blending for two pixels
(WebCore::FEBlend::platformApplyNEON):

8:15 AM Changeset in webkit [122581] by vsevik@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening chromium tests rebaseline.

  • platform/chromium-mac/css3/font-feature-settings-rendering-expected.txt:
8:09 AM Changeset in webkit [122580] by loislo@chromium.org
  • 17 edits in trunk/Source/WebCore

Web Inspector: native memory instrumentation: extract instrumentation methods into MemoryClassInfo
https://bugs.webkit.org/show_bug.cgi?id=91227

Reviewed by Pavel Feldman.

void Node::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{

MemoryClassInfo<Node> info(memoryObjectInfo, this, MemoryInstrumentation::DOM);
info.visitBaseClass<ScriptWrappable>(this);

info.addMember(m_notInstrumentedPointer); automatically detects poniter/reference
info.addInstrumentedMember(m_next);
info.addHashSet<MemoryInstrumentation::NonClass>(m_aHash);
NonClass value_type (report only size of internal template structures)
info.addHashSet<MemoryInstrumentation::NotInstrumentedClass>(m_aHashSet); not instrumented value_type (use sizeof)
info.addHashSet<MemoryInstrumentation::InstrumentedClass>(m_aHashSet);
instrumented value_type (call visit)

}

The change is covered by existing tests for native memory snapshot.

  • bindings/v8/DOMDataStore.cpp:

(WebCore::DOMDataStore::reportMemoryUsage):

  • bindings/v8/IntrusiveDOMWrapperMap.h:

(WebCore::ChunkedTable::reportMemoryUsage):

  • bindings/v8/ScriptWrappable.h:

(WebCore::ScriptWrappable::reportMemoryUsage):

  • bindings/v8/V8Binding.cpp:

(WebCore::V8BindingPerIsolateData::reportMemoryUsage):
(WebCore::StringCache::reportMemoryUsage):

  • bindings/v8/V8DOMMap.h:
  • css/StylePropertySet.h:

(WebCore::StylePropertySet::reportMemoryUsage):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::reportMemoryUsage):

  • dom/ContainerNode.h:

(WebCore::ContainerNode::reportMemoryUsage):

  • dom/Document.cpp:

(WebCore::Document::reportMemoryUsage):

  • dom/Element.h:

(WebCore::Element::reportMemoryUsage):

  • dom/ElementAttributeData.h:

(WebCore::ElementAttributeData::reportMemoryUsage):

  • dom/MemoryInstrumentation.h:

(MemoryInstrumentation):
(WebCore::MemoryObjectInfo::objectType):
(WebCore::MemoryObjectInfo::objectSize):
(WebCore::MemoryObjectInfo::memoryInstrumentation):
(MemoryObjectInfo):
(WebCore::MemoryObjectInfo::reportObjectInfo):
(WebCore):
(MemoryClassInfo):
(WebCore::MemoryClassInfo::MemoryClassInfo):
(WebCore::MemoryClassInfo::visitBaseClass):
(WebCore::MemoryClassInfo::reportInstrumentedPointer):
(WebCore::MemoryClassInfo::reportInstrumentedObject):
(WebCore::MemoryClassInfo::reportPointer):
(WebCore::MemoryClassInfo::reportObject):
(WebCore::MemoryClassInfo::reportHashMap):
(WebCore::MemoryClassInfo::reportHashSet):
(WebCore::MemoryClassInfo::reportListHashSet):
(WebCore::MemoryClassInfo::reportVector):
(WebCore::MemoryClassInfo::reportString):

  • dom/Node.cpp:

(WebCore::Node::reportMemoryUsage):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
(WebCore::QualifiedName::reportMemoryUsage):

  • platform/TreeShared.h:

(WebCore::TreeShared::reportMemoryUsage):

8:05 AM Changeset in webkit [122579] by rgabor@webkit.org
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening after r122528. Skipped some new tests.
https://bugs.webkit.org/show_bug.cgi?id=91218

Patch by Szilard Ledan <Szilárd LEDÁN> on 2012-07-13

  • platform/qt/Skipped:
8:02 AM Changeset in webkit [122578] by pfeldman@chromium.org
  • 6 edits in trunk/Source/WebCore

Web Inspector: align scope filters
https://bugs.webkit.org/show_bug.cgi?id=91213

Reviewed by Vsevolod Vlasov.

  • inspector/front-end/elementsPanel.css:

(.crumbs):

  • inspector/front-end/inspector.css:

(.status-bar > div):
(.scope-bar):
(.scope-bar li):
(.scope-bar li.all):

  • inspector/front-end/networkLogView.css:
7:58 AM Changeset in webkit [122577] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/LayoutTests

[GTK] Gardening: new baseline after r122550 and rebaseline after r122556
https://bugs.webkit.org/show_bug.cgi?id=91235

Unreviewed gardening.

Add new baseline for fast/canvas/fallback-content.html added in r122550, and
rebaseline fast/regions/region-style-block-background-color2.html after r122556.

Patch by Simon Pena <Simon Pena> on 2012-07-13

  • platform/gtk/fast/canvas/fallback-content-expected.txt: Added.
  • platform/gtk/fast/regions/region-style-block-background-color2-expected.txt:
7:48 AM Changeset in webkit [122576] by vsevik@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

Unreviewed gardening: skip failing webkit unit test.

  • tests/CCLayerTreeHostImplTest.cpp:
7:41 AM Changeset in webkit [122575] by vsevik@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

Unreviewed gardening, skip failing webkit_unit_tests.

  • tests/DecimalTest.cpp:

(TEST_F):

7:30 AM Changeset in webkit [122574] by loislo@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: too many hardcoded strings in InspectorBackendDispatcher.
https://bugs.webkit.org/show_bug.cgi?id=89198

Patch by Peter Rybin <peter.rybin@gmail.com> on 2012-07-13
Reviewed by Yury Semikhatsky.

Instead of generating error message string on every call (mostly for nothing),
error message is generated deeper inside the handler and only command name
is passed every time.

  • inspector/CodeGeneratorInspector.py:

(Generator.process_command):

7:00 AM Changeset in webkit [122573] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk/Source

[BlackBerry] Update about:* pages
https://bugs.webkit.org/show_bug.cgi?id=91121

Patch by Joshua Netterfield <jnetterfield@rim.com> on 2012-07-13
Reviewed by Yong Li.

Update the about:config pages, and improve the aesthetics of the about:build, about:version, about:credits, about:memory, about:config, and similar pages.

No new tests, because there is no new funtionality.

Source/WebCore:

  • platform/network/blackberry/NetworkJob.cpp: Update the aesthetics of about:* pages

Source/WebKit/blackberry:

  • WebCoreSupport/AboutData.cpp:

(WebCore):
(WebCore::writeFeatures):
(WebCore::numberToHTMLTr): Converted to template function, added bool specialization to write "true" and "false" instead of "1" and "0"
(WebCore::configPage):
(WebCore::memoryPage):

  • WebCoreSupport/AboutTemplate.html.cpp: Template for BlackBerry about:* pages.
6:53 AM Changeset in webkit [122572] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix checking for optional DeviceOrientationEvent.absolute in JSC bindings
https://bugs.webkit.org/show_bug.cgi?id=91225

Patch by Olivier Blin <Olivier Blin> on 2012-07-13
Reviewed by Steve Block.

This issue comes from r105036

  • bindings/js/JSDeviceOrientationEventCustom.cpp:

(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):

6:47 AM Changeset in webkit [122571] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] Implement disk cache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=90797

Reviewed by Xan Lopez.

  • WebProcess/gtk/WebProcessGtk.cpp:

(WebKit::getCacheDiskFreeSize): Use an ASSERT instead of an early
return since the cache feature is now always added to the session.
(WebKit::WebProcess::platformSetCacheModel): Get the cache from
the session and set the maximum cache size as computed by
calculateCacheSizes().
(WebKit::WebProcess::platformClearResourceCaches): Call
soup_cache_clear().
(WebKit::WebProcess::platformTerminate): Make sure all pending
data is saved to the disk before the web process finishes.

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMainGtk): Create a SoupCache feature and add it
to the default SoupSession.

6:41 AM Changeset in webkit [122570] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Fix disk cache size computation in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=91226

Reviewed by Xan Lopez.

We are passing the free disk space value in bytes to
calculateCacheSizes() which expects values in MB.

  • WebProcess/gtk/WebProcessGtk.cpp:

(WebKit::WebProcess::platformSetCacheModel):

6:20 AM EFLWebKit edited by tmpsantos@gmail.com
(diff)
6:19 AM EFLWebKitTests edited by tmpsantos@gmail.com
(diff)
5:56 AM Changeset in webkit [122569] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[CSS Regions] Fix build for bug 89000
https://bugs.webkit.org/show_bug.cgi?id=91215

Patch by Andrei Bucur <abucur@adobe.com> on 2012-07-13
Reviewed by Kentaro Hara.

Remove the unused variable m_state that was a leftover from a previous version of the patch.

Tests: No new tests, build fix.

  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::WebKitNamedFlow):

  • dom/WebKitNamedFlow.h:

(WebKitNamedFlow):

5:53 AM Changeset in webkit [122568] by kkristof@inf.u-szeged.hu
  • 1 edit
    1 add in trunk/LayoutTests

[Qt] Unreviewed gardening. Rebase test after r122550.

Patch by Zoltan Arvai <zarvai@inf.u-szeged.hu> on 2012-07-13

  • platform/qt/fast/canvas/fallback-content-expected.txt: Added.
5:52 AM EFLWebKitTests edited by tmpsantos@gmail.com
(diff)
5:51 AM EFLWebKitTests edited by tmpsantos@gmail.com
(diff)
5:51 AM EFLWebKitTests edited by tmpsantos@gmail.com
(diff)
5:49 AM EFLWebKitTests created by tmpsantos@gmail.com
5:08 AM Changeset in webkit [122567] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] WebKit2 crash when going back/forward
https://bugs.webkit.org/show_bug.cgi?id=91220

Reviewed by Xan Lopez.

For some reason when a page is loaded from the backforward list,
when the didCommitLoadForFrame callback is called for the main
frame, the callback didInitiateLoadForResource hasn't been called
yet, so we don't even have a main resource at that point. We were
assuming we always had a main resource with a response. For now we
just check whether we have a resource before trying to set the
certificate to fix the crash, but we need to figue out why this is
happening an how to properly fix it.

  • UIProcess/API/gtk/WebKitLoaderClient.cpp:

(didCommitLoadForFrame): Check whether we have a main resource
before setting the certificate.

5:03 AM Changeset in webkit [122566] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[EFL][WK2] Use eina stringsharing for Ewk_Web_Resource's url
https://bugs.webkit.org/show_bug.cgi?id=91200

Patch by Christophe Dumez <Christophe Dumez> on 2012-07-13
Reviewed by Kenneth Rohde Christiansen.

Use eina stringsharing for Ewk_Web_Resource's url
for consistency.

  • UIProcess/API/efl/ewk_web_resource.cpp:

(_Ewk_Web_Resource):
(_Ewk_Web_Resource::_Ewk_Web_Resource):
(ewk_web_resource_unref):
(ewk_web_resource_url_get):

  • UIProcess/API/efl/ewk_web_resource.h:
4:44 AM Changeset in webkit [122565] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] WebKitWebView::mouse-target-changed is not emitted when moved to/from edtiable content
https://bugs.webkit.org/show_bug.cgi?id=91216

Reviewed by Xan Lopez.

The problem is that the function to check whether two hit test
results are equal doesn't check the editable flag.

  • UIProcess/API/gtk/WebKitHitTestResult.cpp:

(webkitHitTestResultCompare): Check also the editable flag.

4:43 AM Changeset in webkit [122564] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/efl

[EFL] Add const to the parameter of getters in ewk_security_origin
https://bugs.webkit.org/show_bug.cgi?id=90954

Patch by Kihong Kwon <kihong.kwon@samsung.com> on 2012-07-13
Reviewed by Kentaro Hara.

Move initialization of strings for protocol and host to the ewk_security_origin_new method,
which allows to add const qualifier for ewk_security_origin_protocol_get and ewk_security_origin_host_get.
In addition, add null checks to the getters.

  • ewk/ewk_security_origin.cpp:

(ewk_security_origin_protocol_get):
(ewk_security_origin_host_get):
(ewk_security_origin_new):

  • ewk/ewk_security_origin.h:
4:32 AM BuildingQtOnLinux edited by zoltan@webkit.org
(diff)
4:31 AM BuildingQtOnLinux edited by zoltan@webkit.org
(diff)
4:24 AM Changeset in webkit [122563] by gyuyoung.kim@samsung.com
  • 7 edits in trunk/Source

[EFL] Add *explicit* keyword to constructor which has a parameter
https://bugs.webkit.org/show_bug.cgi?id=91207

Reviewed by Zoltan Herczeg.

Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion.

Source/WebKit/efl:

  • WebCoreSupport/EditorClientEfl.h:

(EditorClientEfl):

  • WebCoreSupport/InspectorClientEfl.h:

(InspectorClientEfl):

  • WebCoreSupport/PageClientEfl.h:

(PageClientEfl):

  • WebCoreSupport/VibrationClientEfl.h:

(VibrationClientEfl):

Source/WebKit2:

  • WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h:

(WebFrameNetworkingContext::WebFrameNetworkingContext):

4:19 AM BuildingQtOnLinux edited by ssandela@innominds.com
Update with set up details regarding building on QtCreator. (diff)
4:16 AM Changeset in webkit [122562] by bashi@chromium.org
  • 13 edits
    3 adds in trunk

[Chromium] Fix bugs in HarfBuzzShaper
https://bugs.webkit.org/show_bug.cgi?id=90951

Reviewed by Tony Chang.

Source/WebCore:

The current implementation has following problems:

  • Cannot render RTL text if the TextRun is divided into more than two HarfBuzzRun.
  • Script handling in TextRun partitioning is incorrect.
  • Inaccurate calculation of selection rect.
  • Wrong rendering position when the first glyph of the TextRun have non-zero offsets in terms of HarfBuzz.

To fix these problems I rewrote HarfBuzzShaper class. Here is the summary:

  • Divide the whole range of TextRun first, then shape them in visual order.
  • Divide TextRun in the same way of old-harfbuzz's hb_utf16_script_run_next().
  • Prefer float than int when calculating selection.
  • Adjust the drawing point after shaping.

Added tests covers the fix except for the last problem. The last problem will be covered
by fast/text/international/complex-joining-using-gpos.html after chromium linux port switches
to use HarfBuzzShaper.

Tests: fast/text/shaping/shaping-script-order.html

fast/text/shaping/shaping-selection-rect.html

  • platform/graphics/harfbuzz/FontHarfBuzz.cpp:

(WebCore::Font::drawComplexText): Adjusts point after shaping.

  • platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:

(WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
(WebCore):
(WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Added.
(WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndAdvance): Offsets are no longer needed.
(WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset): Calculates character offset based on advance.
(WebCore::normalizeCharacters): Added.
(WebCore::HarfBuzzShaper::HarfBuzzShaper):
(WebCore::HarfBuzzShaper::~HarfBuzzShaper):
(WebCore::HarfBuzzShaper::shape): Divides TextRun first, then shapes them.
(WebCore::HarfBuzzShaper::adjustStartPoint): Added.
(WebCore::HarfBuzzShaper::collectHarfBuzzRuns): Added.
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Added.
(WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Followed other changes.
(WebCore::HarfBuzzShaper::selectionRect): Use float for calculating selection.

  • platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:

(HarfBuzzShaper): Holds the start index of character. Removed unnecessary variables.
(WebCore::HarfBuzzShaper::HarfBuzzRun::create): Ditto.
(HarfBuzzRun):
(WebCore::HarfBuzzShaper::HarfBuzzRun::fontData): Added.
(WebCore::HarfBuzzShaper::HarfBuzzRun::startIndex): Ditto.
(WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs): Ditto.
(WebCore::HarfBuzzShaper::HarfBuzzRun::advances): Ditto.

LayoutTests:

Add tests for harfbuzz-ng shaper. I tried to use -expected.html style expectations,
but it didn't work because there are very slight difference between CoreText and HarfBuzz in
rendering result.

  • fast/text/shaping/shaping-script-order.html: Added.
  • fast/text/shaping/shaping-selection-rect.html: Added.
  • platform/chromium/TestExpectations: Need rebaseline.
  • platform/efl/TestExpectations: Skip added tests because the port doesn't use harfbuzz.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/qt/TestExpectations: Ditto.
  • platform/win/Skipped: Ditto.
  • platform/wincairo/Skipped: Ditto.
  • platform/wk2/Skipped: Ditto.
4:03 AM Changeset in webkit [122561] by haraken@chromium.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r122545.
http://trac.webkit.org/changeset/122545
https://bugs.webkit.org/show_bug.cgi?id=91185

We found that this was a wrong fix

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

4:01 AM Changeset in webkit [122560] by haraken@chromium.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r122553.
http://trac.webkit.org/changeset/122553
https://bugs.webkit.org/show_bug.cgi?id=91198

We found that this was a wrong fix

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

3:59 AM Changeset in webkit [122559] by tkent@chromium.org
  • 9 edits in trunk/Source/WebCore

Change the timing of form state restore
https://bugs.webkit.org/show_bug.cgi?id=89962

Reviewed by Hajime Morita.

For a preparation to fix a form identification problem (Bug 91209),
restore controls states when the parsing of their owner forms is
completed. For controls without owners, their states are restored when
their parsing is completed as ever.

No new tests. This doesn't change observable behavior.

  • html/FormController.cpp:

(WebCore::ownerFormForState):
Added. This code was used in formKey(), and restoreControlState*() use it.
(WebCore::FormKeyGenerator::formKey): Use ownerFormForState(). No behavior change.
(WebCore::FormController::restoreControlStateFor):
Moved some code from HTMLFormControlElementWithState::finishParsingChildren().
The difference is we don't resotre state if this control is owned by a form.
(WebCore::FormController::restoreControlStateIn):
Restore states of associated controls. This is called from
finishParsingChildren() for <form>.

  • html/FormController.h:

(FormController):

  • Declare restoreControlStateFor() and restoreControlStateIn().
  • Make takeStateForFormElement() private.
  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::isFormControlElementWithState):
Added. The default implementation returns false.

  • html/FormAssociatedElement.h:

(FormAssociatedElement):
Added isFormControlElementWithState() for FormController::restoreControlStateIn().

  • html/HTMLFormControlElementWithState.cpp:

(WebCore::HTMLFormControlElementWithState::finishParsingChildren):
Some code was moved to FormController:restoreControlStateFor().
(WebCore::HTMLFormControlElementWithState::isFormControlElementWithState):
Added. Returns true.

  • html/HTMLFormControlElementWithState.h:

(HTMLFormControlElementWithState): Declare isFormControlElementWithState().

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::finishParsingChildren):
Added. Calls FormController::restoreControlStateIn().

  • html/HTMLFormElement.h:

(HTMLFormElement): Declare finishParsingChildren().

3:35 AM Changeset in webkit [122558] by tkent@chromium.org
  • 16 edits
    2 copies
    5 adds in trunk

Make calendar pickers testable
https://bugs.webkit.org/show_bug.cgi?id=84827

Reviewed by Hajime Morita.

Source/WebCore:

WebCore:

  • Add PagePopupDriver, an interface to open/close a PagePopup.
  • Add setPagePopupDriver() to ChromeClient in order to inject a

PagePopupDriver for testing.

Internals:
Add MockPagePopupDriver, which creates a MockPagePopup, which creates a
normal <iframe> in the top-level document, and load the popup content on
it. MockPagePopupDriver is enabled by
internals.settings.setEnableMockPagePopup(true).

Test: fast/forms/date/calendar-picker-appearance.html

  • WebCore.gypi: Add new files.
  • WebCore.xcodeproj/project.pbxproj: Add files to make this buildable.
  • page/ChromeClient.h:

(ChromeClient): Add function for PagePopupDriver.

  • loader/EmptyClients.h: Add empty implementations for PagePopupDriver functions.
  • page/PagePopupDriver.h: Added.

(PagePopupDriver):
(WebCore::PagePopupDriver::~PagePopupDriver):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::restoreTo): Reset the mock PagePopupDriver.
(WebCore::InternalSettings::setEnableMockPagePopup):
Register MockPagePopupDriver to ChromeClient.

  • testing/InternalSettings.h:

(InternalSettings): Declare setEnableMockPagePopup().

  • testing/InternalSettings.idl: ditto.
  • testing/MockPagePopupDriver.cpp: Added.

(MockPagePopup): Pseudo PagePopup implementation with the standard <iframe>.
(WebCore::MockPagePopupDriver::MockPagePopupDriver): Added.
(WebCore::MockPagePopupDriver::create): Added.
(WebCore::MockPagePopupDriver::~MockPagePopupDriver): Added.
(WebCore::MockPagePopupDriver::openPagePopup):
Added. An override of PagePopupDriver function. This creates a MockPagePopup.
(WebCore::MockPagePopupDriver::closePagePopup):
Added. An override of PagePopupDriver function. This deletes the MockPagePopup.

  • testing/MockPagePopupDriver.h:

(MockPagePopupDriver): Added.

  • testing/v8/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectPagePopupController):
Added. Production code uses per-Page context feature framework. However
MockPagePopup uses the same page as the host page. So we can't use the
framework and need to inject window.pagePopupController manually.

  • testing/v8/WebCoreTestSupport.h:

(WebCoreTestSupport): Add injectPagePopupController().

Source/WebKit/chromium:

  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::ChromeClientImpl):
Initialize m_pagePopupDriver with the WebViewImpl.
(WebKit::ChromeClientImpl::openPagePopup):
Just calls PagePoupDriver::openPagePopup().
(WebKit::ChromeClientImpl::closePagePopup):
Just calls PagePoupDriver::closePagePopup().
(WebKit::ChromeClientImpl::setPagePopupDriver):

  • src/ChromeClientImpl.h:

(ChromeClientImpl): Add setPagePopupDriver

  • src/WebViewImpl.h:

(WebViewImpl):
WebViewImpl implements PagePopupDriver. openPagePopup() and
closePagePopup() override members of PagePopupDriver.

LayoutTests:

  • fast/forms/date/calendar-picker-appearance-expected.txt: Added.
  • fast/forms/date/calendar-picker-appearance.html: Added.
  • platform/chromium-mac-snowleopard/fast/forms/date/calendar-picker-appearance-expected.png: Added.
  • platform/chromium/TestExpectations:
3:21 AM Changeset in webkit [122557] by pfeldman@chromium.org
  • 6 edits in trunk

Web Inspector: mute the native looks of the selects in the console.
https://bugs.webkit.org/show_bug.cgi?id=91120

Reviewed by Vsevolod Vlasov.

This is necessary for Mac now that we don't use border images for select.

  • inspector/front-end/ConsoleView.js:

(WebInspector.ConsoleView.prototype.get statusBarItems):
(WebInspector.ConsoleView.prototype.addContext):
(WebInspector.ConsoleView.prototype.removeContext):
(WebInspector.ConsoleView.prototype._updateIsolatedWorldSelector):
(WebInspector.ConsoleView.prototype._appendIsolatedContextOption):
(WebInspector.ConsoleView.prototype._currentEvaluationContext):
(WebInspector.ConsoleView.prototype._currentIsolatedContextId):

  • inspector/front-end/StatusBarButton.js:

(WebInspector.StatusBarComboBox):
(WebInspector.StatusBarComboBox.prototype.addOption):
(WebInspector.StatusBarComboBox.prototype.removeOption):
(WebInspector.StatusBarComboBox.prototype.removeOptions):
(WebInspector.StatusBarComboBox.prototype.selectedOption):

  • inspector/front-end/inspector.css:

(.status-bar-select-container):
(select.status-bar-item):
(.console-context):

3:01 AM Changeset in webkit [122556] by commit-queue@webkit.org
  • 28 edits
    1 copy
    1 add in trunk

[CSS Regions] Fix the lifecycle for the flow objects and their renderers
https://bugs.webkit.org/show_bug.cgi?id=89000

Patch by Andrei Bucur <abucur@adobe.com> on 2012-07-13
Reviewed by Eric Seidel.

Source/WebCore:

This patch adds the concept of a NamedFlowCollection, owned by the document, that keeps track of
all the named flows that exist in the Document. This collection contains a ListHashSet of weak references to
all the existing NamedFlows in the document. This is not a managed set because the CREATED flows are referenced from the renderer and
the NULL flows are only cached, they should be destructible.
Two named flows are considered to be equal if they have the same name.
I've changed the NamedFlow state to depend on the existence of its renderer. A flow thread that has a renderer will also have a NamedFlow object.
A flow thread without a renderer can have a NamedFlow object, but only in the NULL state. It's possible for a NamedFlow object to jump from the
NULL state to the CREATED state if it was not destroyed (e.g. it was referenced from JS). Keeping track of the NULL state flows that have listeners will be important
so when they go back to the CREATED state, the listeners would still be there.

Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/

Tests: The old tests have been modified to take into account the new behavior

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMAllInOne.cpp:
  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore):
(WebCore::Document::webkitGetFlowByName):
(WebCore::Document::namedFlows):

  • dom/Document.h:

(WebCore):
(Document):

  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::WebKitNamedFlow):
(WebCore::WebKitNamedFlow::~WebKitNamedFlow):
(WebCore::WebKitNamedFlow::create):
(WebCore):
(WebCore::WebKitNamedFlow::name):
(WebCore::WebKitNamedFlow::overset):
(WebCore::nodeInFlowThread):
(WebCore::WebKitNamedFlow::getRegionsByContentNode):
(WebCore::WebKitNamedFlow::getContent):
(WebCore::WebKitNamedFlow::setRenderer):

  • dom/WebKitNamedFlow.h:

(WebCore):
(WebKitNamedFlow):
(WebCore::WebKitNamedFlow::getFlowState):
(WebCore::WebKitNamedFlow::switchFlowState):

  • dom/WebKitNamedFlowCollection.cpp: Added.

(WebCore):
(WebCore::WebKitNamedFlowCollection::WebKitNamedFlowCollection):
(WebCore::WebKitNamedFlowCollection::length): An O(1) operation
(WebCore::WebKitNamedFlowCollection::item): An O(N) operation
(WebCore::WebKitNamedFlowCollection::flowByName): An O(1) operation
(WebCore::WebKitNamedFlowCollection::ensureNamedFlowInCreatedState): An O(1) operation
(WebCore::WebKitNamedFlowCollection::moveNamedFlowToNullState): An O(1) operation
(WebCore::WebKitNamedFlowCollection::discardNamedFlow): An O(1) operation
(WebCore::WebKitNamedFlowCollection::documentDestroyed):
(WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::hash):
(WebCore::WebKitNamedFlowCollection::NamedFlowHashFunctions::equal):
(WebKitNamedFlowCollection::NamedFlowHashFunctions):
(WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::hash):
(WebCore::WebKitNamedFlowCollection::NamedFlowHashTranslator::equal):

  • dom/WebKitNamedFlowCollection.h: Copied from Source/WebCore/dom/WebKitNamedFlow.h.

(WebCore):
(WebKitNamedFlowCollection):
(WebCore::WebKitNamedFlowCollection::create):
(WebCore::WebKitNamedFlowCollection::document):

  • rendering/FlowThreadController.cpp:

(WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
(WebCore::FlowThreadController::removeFlowThread):
(WebCore):

  • rendering/FlowThreadController.h:

(FlowThreadController):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore):
(WebCore::RenderNamedFlowThread::~RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::removeRegionFromThread):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentNode):
(WebCore::RenderNamedFlowThread::flowThreadName):
(WebCore::RenderNamedFlowThread::willBeDestroyed):

  • rendering/RenderNamedFlowThread.h:

(RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::contentNodes):
(WebCore::RenderNamedFlowThread::canBeDestroyed):

LayoutTests:

These tests expected getFlowByName() to return a valid object even for the NULL flows. They've been modified to
reflect the new behavior.

  • fast/regions/get-regions-by-content-node2-expected.txt:
  • fast/regions/get-regions-by-content-node2.html:
  • fast/regions/webkit-named-flow-flow-added.html:
  • fast/regions/webkit-named-flow-get-content-expected.txt:
  • fast/regions/webkit-named-flow-get-content.html:
  • fast/regions/webkit-named-flow-invalid-name.html:
  • fast/regions/webkit-named-flow-modified-flow.html:
  • fast/regions/webkit-named-flow-non-existing-flow.html:
  • fast/regions/webkit-named-flow-removed-flow.html:
  • platform/chromium-win/fast/regions/region-style-block-background-color2-expected.txt:
  • platform/mac/fast/regions/region-style-block-background-color2-expected.txt:
2:38 AM Changeset in webkit [122555] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[V8Bindings] Implement generalised method to validates that the passed object is a sequence type.
https://bugs.webkit.org/show_bug.cgi?id=91056

Patch by Vineet Chaudhary <Vineet> on 2012-07-13
Reviewed by Kentaro Hara.

Currently the V8 implementation validates that the passed object is a sequence type only
for MessagePort in V8Utilities::extractTransferables().
There should be generalised method for other types too.
Spec URL: http://www.w3.org/TR/2012/WD-WebIDL-20120207/#es-sequence

No new test, Just refactoring. There should be no behavioral changes.

  • bindings/v8/V8Binding.h:

(WebCore::toV8Sequence): Added implementation of toV8Sequence().

2:20 AM Changeset in webkit [122554] by zeno.albisser@nokia.com
  • 13 edits
    4 adds in trunk

[Qt][WK2] Implement GraphicsSurface for Linux/GLX.
https://bugs.webkit.org/show_bug.cgi?id=90881

Source/WebCore:

Add a GLX based GraphicsSurface implementation for Linux.
Native X windows are being used for exchanging textures
with the UIProcess.

Reviewed by Noam Rosenthal.

  • Target.pri:
  • WebCore.pri:
  • platform/graphics/surfaces/GraphicsSurface.cpp:

(WebCore::GraphicsSurface::create):

Move creating GraphicsSurface instance into
platformCreate/platformImport functions to allow
platform specific creation based on the provided flags.

(WebCore::GraphicsSurface::GraphicsSurface):
(WebCore::GraphicsSurface::~GraphicsSurface):

Call platformDestroy when destroying a GraphicsSurface.

(WebCore):

  • platform/graphics/surfaces/GraphicsSurface.h:

Make platformCreate/platformImport functions static
to be able to call these from the static create function.
Add Destructor prototype and add GraphicsSurfacePrivate member.

(WebCore):
(GraphicsSurface):

  • platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:

(WebCore):
(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):

Insert creation of GraphicsSurface instance.
This allows having a platform specific creation mechanism
for GLX.

  • platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: Added.

(WebCore):
(OffScreenRootWindow):
(WebCore::OffScreenRootWindow::OffScreenRootWindow):
(WebCore::OffScreenRootWindow::get):
(WebCore::OffScreenRootWindow::~OffScreenRootWindow):

Add an OffScreenRootWindow singelton that is being used
as a parent for all native offscreen windows.

(GraphicsSurfacePrivate):

This class is used to manage all the X related resources
such as opening a display or creating XPixmaps etc.

(WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):

Open a connection to the X server and create a
QOpenGLContext that can be used to resolve GL functions.

(WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):

Properly cleanup and release all the X resources again.

(WebCore::GraphicsSurfacePrivate::createSurface):

Create a surface that is placed off screen and can be
used as a rendering target by the WebProcess.

(WebCore::GraphicsSurfacePrivate::createPixmap):

Create a GLXPixmap from the XWindow that was previously
redirected by the WebProcess. This GLXPixmap can then be
bound to a texture and being painted on screen by the
UIProcess.

(WebCore::GraphicsSurfacePrivate::makeCurrent):
(WebCore::GraphicsSurfacePrivate::swapBuffers):
(WebCore::GraphicsSurfacePrivate::display):
(WebCore::GraphicsSurfacePrivate::glxPixmap):
(WebCore::GraphicsSurfacePrivate::size):
(WebCore::GraphicsSurfacePrivate::glContext):
(WebCore::resolveGLMethods):

Initialize all the function pointers for the GL functions used.

(WebCore::GraphicsSurface::platformExport):
(WebCore::GraphicsSurface::platformGetTextureID):

Bind the GLXPixmap to a texture.

(WebCore::GraphicsSurface::platformCopyToGLTexture):

Not beeing implemented for GLX.

(WebCore::GraphicsSurface::platformCopyFromFramebuffer):

Blit origin fbo onto the GraphicsSurface's backing.

(WebCore::GraphicsSurface::platformCreate):
(WebCore::GraphicsSurface::platformImport):
(WebCore::GraphicsSurface::platformLock):
(WebCore::GraphicsSurface::platformUnlock):
(WebCore::GraphicsSurface::platformDestroy):

Source/WebKit2:

Add a GLX based GraphicsSurface implementation for Linux.

Reviewed by Noam Rosenthal.

  • Shared/ShareableSurface.cpp:

(WebKit::ShareableSurface::create):

Only create a GraphicsSurface from a ShareableSurface::Handle
in case the Handle contains a valid GraphicsSurface token.
Otherwise fall back to creating a ShareableBitmap.

  • UIProcess/LayerTreeCoordinatorProxy.cpp:

(WebKit::createLayerTileUniqueKey):

Create a unique key for a surface based on tileID and layerID.

(WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):

Even when GraphicsSurface is enabled, not all ShareableSurfaces
will necessarily be backed by a GraphicsSurface. In case of
a ShareableSurface being backed by a ShareableBitmap instead,
the GraphicsSurface token will always be null.
So instead of using the GraphicsSurface token as a key for
storing surfaces in a map, we create a unique key from
layerID and tileID.

  • UIProcess/LayerTreeCoordinatorProxy.h:

(LayerTreeCoordinatorProxy):

Tools:

Enable GraphicsSurface for Linux based platforms
whenever the Xcomposite extension is available.

Reviewed by Noam Rosenthal.

  • qmake/config.tests/libXcomposite/libXcomposite.cpp: Added.

(main):

  • qmake/config.tests/libXcomposite/libXcomposite.pro: Added. Add a configure test to detect Xcomposite extension and activate GraphicsSurface on linux in case the extension is available.
  • qmake/configure.pri:
  • qmake/mkspecs/features/features.prf:
2:05 AM Changeset in webkit [122553] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

CodeGeneratorJS.pm : SetterExpression should use 'push' rather than 'unshift'
https://bugs.webkit.org/show_bug.cgi?id=91198

Patch by Dongwoo Im <dw.im@samsung.com> on 2012-07-13
Reviewed by Kentaro Hara.

'SetterExpression' should use 'push' to make arguments, rather than 'unshift'.

No new tests. Covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

1:56 AM Changeset in webkit [122552] by yosin@chromium.org
  • 7 edits in trunk

REGRESSION(r119948): [Forms] Spin button Up/Down actions make value to zero for input type "number" when step mismatched
https://bugs.webkit.org/show_bug.cgi?id=91197

Reviewed by Kent Tamura.

Source/WebCore:

This patch fixes implementation of Decimal::ceiling() and floor().
They return wrong value for small fractional numbers.

The bug is occurred when:

  • Step-able input type, e.g. number, date, datetime, and so on.
  • Current value is step mismatched
  • Current value is smaller than step
  • Step up/down by spin button

because spin button up/down actions are implemented in InputType::setpUpFromRenderer
which calls Decimal::ceiling() and floor() for step mismatched case.

Tests: fast/forms/number/number-stepup-stepdown-from-renderer.html: Added test cases

WebKit/chromium/tests/DecimalTest.cpp: Added test cases

  • platform/Decimal.cpp:

(WebCore::Decimal::ceiling): Changed to return 1 for positive small fractional number.
(WebCore::Decimal::floor): Changed to return -1 for negative small fractional number.

Source/WebKit/chromium:

This patch adds test cases for Decimal::ceiling() and floor() of
positive/negative small fractional numbers.

  • tests/DecimalTest.cpp:

(TEST_F):

LayoutTests:

This patch adds new test cases.

  • fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt: Updated for new test cases.
  • fast/forms/number/number-stepup-stepdown-from-renderer.html: Added new test cases.
1:23 AM Changeset in webkit [122551] by dgrogan@chromium.org
  • 2 edits in trunk/Tools

nrwt: don't choke when printing invalid utf-8 to stderr
https://bugs.webkit.org/show_bug.cgi?id=91181

Reviewed by Dirk Pranke.

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_stderr):

1:06 AM Changeset in webkit [122550] by dmazzoni@google.com
  • 9 edits
    2 adds in trunk

Should be possible to focus elements within canvas fallback content
https://bugs.webkit.org/show_bug.cgi?id=87898

Reviewed by Chris Fleizach.

Source/WebCore:

Patches isFocusable in dom/Node.cpp and html/HTMLFormControlElement.cpp
to make elements focusable if they're a descendent of a canvas element
if they would otherwise have been focusable but just didn't have
a renderer. Adds a bit to ElementRareData to efficiently keep track
of elements in a canvas subtree.

Test: fast/canvas/fallback-content.html

  • dom/Element.cpp:

(WebCore::Element::attach):
(WebCore::Element::detach):
(WebCore::Element::setIsInCanvasSubtree):
(WebCore):
(WebCore::Element::isInCanvasSubtree):

  • dom/Element.h:

(Element):

  • dom/ElementRareData.h:

(ElementRareData):
(WebCore::ElementRareData::ElementRareData):

  • dom/Node.cpp:

(WebCore::Node::isFocusable):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::attach):
(WebCore):

  • html/HTMLCanvasElement.h:

(HTMLCanvasElement):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::isFocusable):

LayoutTests:

  • fast/canvas/fallback-content-expected.txt: Added.
  • fast/canvas/fallback-content.html: Added.
12:45 AM Changeset in webkit [122549] by vsevik@chromium.org
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed inspector test fix.

  • http/tests/inspector/network/resources/style.css: Added.

(body):

12:39 AM Changeset in webkit [122548] by dpranke@chromium.org
  • 5 edits in trunk/Tools

test-webkitpy: more class renaming cleanup
https://bugs.webkit.org/show_bug.cgi?id=91182

Reviewed by Adam Barth.

More removing of the unnecessary "Test" prefix.

  • Scripts/webkitpy/test/finder.py:

(_DirectoryTree):
(Finder.add_tree):

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

  • Scripts/webkitpy/test/runner.py:

(Runner):

  • Scripts/webkitpy/test/runner_unittest.py:

(RunnerTest.test_regular):
(RunnerTest.test_verbose):
(RunnerTest.test_timing):

12:26 AM Changeset in webkit [122547] by Carlos Garcia Campos
  • 19 edits
    1 move
    5 adds
    1 delete in trunk/Source

[GTK] Add API to get HTTPS status to WebKit2 GTK+
https://bugs.webkit.org/show_bug.cgi?id=91100

Reviewed by Martin Robinson.

Source/WebCore:

  • platform/network/soup/ResourceResponse.h:

(WebCore::ResourceResponse::soupMessageCertificate): Return the
certificate.
(WebCore::ResourceResponse::setSoupMessageCertificate): Set a
certificate.
(WebCore::ResourceResponse::soupMessageTLSErrors): Return the TLS
errors.
(WebCore::ResourceResponse::setSoupMessageTLSErrors): Set TLS
errors.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::toSoupMessage): Set the certificate
and TLS errors to the newly created SoupMessage.
(WebCore::ResourceResponse::updateFromSoupMessage): Get the
certificate and TLS errors from the SoupMessage.

Source/WebKit2:

Add webkit_uri_response_get_https_status() to return
GTlsCertificate and GTlsCertificateFlags with information about
the SSL certificate and the possible errors with the certificate.

  • GNUmakefile.list.am: Add new files to compilation.
  • PlatformEfl.cmake: Ditto.
  • Shared/efl/PlatformCertificateInfo.h: Removed.
  • Shared/soup/PlatformCertificateInfo.cpp: Added.

(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode): Encode the
GTlsCertificate and GTlsCertificateFlags.
(WebKit::PlatformCertificateInfo::decode): Decode
PlatformCertificateInfo into a GTlsCertificate and GTlsCertificateFlags.

  • Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebKit2/Shared/gtk/PlatformCertificateInfo.h.

(WebKit::PlatformCertificateInfo::certificate): Return the certificate.
(WebKit::PlatformCertificateInfo::tlsErrors): Return the TLS errors

  • UIProcess/API/gtk/WebKitLoaderClient.cpp:

(didCommitLoadForFrame): Set the certificate of the current frame
to the response of the main resource.

  • UIProcess/API/gtk/WebKitURIResponse.cpp:

(webkit_uri_response_get_https_status): Return GTlsCertificate and
GTlsCertificateFlags.
(webkitURIResponseSetCertificateInfo): Update the internal
ResourceResponse with the GTlsCertificate and GTlsCertificateFlags
of the given PlatformCertificateInfo.

  • UIProcess/API/gtk/WebKitURIResponse.h:
  • UIProcess/API/gtk/WebKitURIResponsePrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
  • UIProcess/API/gtk/tests/GNUmakefile.am:
  • UIProcess/API/gtk/tests/TestMain.h:

(Test::getResourcesDir): Helper function to get the resources
directory of the WebKit2 API tests.

  • UIProcess/API/gtk/tests/TestSSL.cpp: Added.

(testSSL):
(serverCallback):
(beforeAll):
(afterAll):

  • UIProcess/API/gtk/tests/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer): Add support por SSL test
servers.

  • UIProcess/API/gtk/tests/WebKitTestServer.h:

(WebKitTestServer): Add ssl parameter to create a HTTPS server.

  • UIProcess/API/gtk/tests/resources/test-cert.pem: Added.
  • UIProcess/API/gtk/tests/resources/test-key.pem: Added.

Source/WTF:

Add support for GByteArray.

  • wtf/gobject/GRefPtr.cpp:

(WTF::refGPtr):
(WTF):
(WTF::derefGPtr):

  • wtf/gobject/GRefPtr.h:

(WTF):

  • wtf/gobject/GTypedefs.h:
12:20 AM Changeset in webkit [122546] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

RadioNodeList is not updated upon input type change
https://bugs.webkit.org/show_bug.cgi?id=91178

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Invalidate the radio node lists when type content attribute changes since it excludes
image type input elements.

Test: fast/forms/radionodelist-image-type.html

  • dom/Document.cpp:

(WebCore::shouldInvalidateNodeListForType):

  • dom/Document.h: Renamed InvalidateOnIdNameForAttrChange to InvalidateOnFormAttrChange

since listing all attribute name isn't useful at this point.

  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::RadioNodeList):

LayoutTests:

Add a regression test.

  • fast/forms/radionodelist-image-type-expected.txt: Added.
  • fast/forms/radionodelist-image-type.html: Added.
Note: See TracTimeline for information about the timeline view.