Vector should consult allocator about ideal size when choosing capacity.
<http://webkit.org/b/108410>
<rdar://problem/13124002>

Source/JavaScriptCore:

Patch by Filip Pizlo <fpizlo@apple.com> on 2013-01-30
Reviewed by Benjamin Poulain.

Remove assertion about Vector capacity that won't hold anymore since capacity()
may not be what you passed to reserveCapacity().

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):

Source/WTF:

Reviewed by Benjamin Poulain.

Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
It returns the actual size of the block that will get allocated for a given byte size.

Vector's internal buffer now checks with the allocator if the resulting allocation
could actually house more objects and updates its capacity to make use of the space.

* wtf/Deque.h:
(WTF::::expandCapacity):
* wtf/FastMalloc.cpp:
(WTF::fastMallocGoodSize):
* wtf/FastMalloc.h:
* wtf/Vector.h:
(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Unreviewed gardening.

* platform/chromium-mac-snowleopard/fast/forms/basic-textareas-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: [Profiles] show launcher view upon deleting last profile type's header
https://bugs.webkit.org/show_bug.cgi?id=108468

Reviewed by Pavel Feldman.

We should show launcher view and hide profile type sidebar section upon deleting last profile type's header from the sidebar.
Right now we only show launcher view upon deleting the last profile header (of any profile type).

* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel.prototype._removeProfileHeader):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141409 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unjumble ChangeLog authors after r141407.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: highlight backend languages as scripts
https://bugs.webkit.org/show_bug.cgi?id=108336

Reviewed by Vsevolod Vlasov.

Most languages have structure similar to js, so enabling default highlighter for them won't hurt.

* inspector/front-end/FileSystemWorkspaceProvider.js:
(WebInspector.FileSystemWorkspaceProvider.prototype._contentTypeForPath):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Coordinated Graphics: view the debug border/repaint count of the non composited layer.
https://bugs.webkit.org/show_bug.cgi?id=108401

Patch by Seulgi Kim <seulgikim@company100.net> on 2013-01-31
Reviewed by Noam Rosenthal.

Make non-compositing layer draw debug border and show repaint counter
accroding to settings.

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141412 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Box shadows on a transparency layer is very slow
https://bugs.webkit.org/show_bug.cgi?id=107547

Reviewed by Noam Rosenthal.

Include the window boundaries in the clip returned by GraphicsContext,
since QPainter may remember clips larger than the destination, but
ShadowBlur uses the clipBounds to determine the size of the shadow layer.

* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipBounds):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: do not set any textContent in overlay highlight spans
https://bugs.webkit.org/show_bug.cgi?id=108460

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-01-31
Reviewed by Pavel Feldman.

Source/WebCore:

Do not set any text content for overlay highlight spans to implicitly
set its height. Instead, measure its height in the same manner as its
done for "width" and "left" and set it explicitly.

No new tests: no change in behaviour.

* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
(WebInspector.TextEditorMainPanel.ElementMetrics):
* inspector/front-end/textEditor.css:
(.text-editor-token-highlight): Update highlight to correspond to
slightly different elements height.

LayoutTests:

Replace "height" pixel value with "<number>" to avoid difference in
test expectations on varioius platforms and correct test expectations.

* inspector/editor/editor-test.js:
(initialize_EditorTests.InspectorTest.dumpEditorHTML):
* inspector/editor/text-editor-highlight-api-expected.txt:
* inspector/editor/text-editor-highlight-token-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Exception in HeapSnapshotView.js
https://bugs.webkit.org/show_bug.cgi?id=108456

Reviewed by Yury Semikhatsky.

Listen "profile added" events in the HeapSnapshotView targeted only to the Heap Snapshot type.

* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapSnapshotView.prototype._onProfileHeaderAdded):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening. Skip two compositing tests, because They hit assertion fail after 140999.
https://bugs.webkit.org/show_bug.cgi?id=108257.

* platform/qt/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: [Network] Add cookie column to show presence of request/response cookies.
https://bugs.webkit.org/show_bug.cgi?id=107441

Patch by Eugene Klyuchnikov <eustas@chromium.org> on 2013-01-31
Reviewed by Pavel Feldman.

In some use cases only responses that contain "set-cookie" headers
are interesting.

* English.lproj/localizedStrings.js: Added "Set-Cookies" string.
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkLogView.prototype._createTable): Added columns.
(WebInspector.NetworkLogView.prototype._createSortingFunctions): Ditto.
(WebInspector.NetworkDataGridNode.prototype.createCells): Ditto.
(WebInspector.NetworkDataGridNode.prototype.refreshRequest): Ditto.
(WebInspector.NetworkDataGridNode.prototype._refreshCookiesCell): Added.
(WebInspector.NetworkDataGridNode.prototype._refreshSetCookiesCell): Added.
(WebInspector.NetworkDataGridNode.RequestCookiesCountComparator): Added.
(WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator): Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow blocking of IndexedDB in third-party contexts
https://bugs.webkit.org/show_bug.cgi?id=94171

Reviewed by Jochen Eisinger.

Source/WebCore:

This patch ensures that the origin of the top window is passed into
SecurityOrigin::canAccessDatabase when working with IndexedDB. Giving
SecurityOrigin access to this data means that it can properly check
whether the database is being opened in a third-party context, and
therefore properly enforce the third-party access checks that were
added in http://trac.webkit.org/changeset/125736.

Third-party checks are added to IDBFactory::open,
IDBFactory::deleteDatabase, and IDBFactory::getDatabaseNames; each will
now throw a SECURITY_ERR exception when access in a third-party context
if third-party access checks are enabled.

To make this process slightly more clear, and avoid some ugly casting
logic, this patch adds a 'topOrigin'  method to ScriptExecutionContext,
and implements it on both WorkerContext and Document.

Tests: http/tests/security/cross-origin-indexeddb-allowed.html
       http/tests/security/cross-origin-indexeddb.html
       http/tests/security/cross-origin-worker-indexeddb-allowed.html
       http/tests/security/cross-origin-worker-indexeddb.html

* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::getDatabaseNames):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
    Grab the SecurityOrigin of the current context's top-level origin,
    and pass it to SecurityOrigin::canAccessDatabase to ensure that
    access checks are properly applied to these three methods.
* dom/Document.cpp:
(WebCore::Document::topOrigin):
(WebCore):
* dom/Document.h:
(Document):
* dom/ScriptExecutionContext.h:
(ScriptExecutionContext):
    Add a topOrigin() method to ScriptExecutionContext, and implement it
    on Document in order to give callers access to the top document's
    SecurityOrigin without casting ScriptExecutionContext.
* workers/WorkerContext.h:
    Change the existing topOrigin() method to override the new method
    on ScriptExecutionContext.

LayoutTests:

Add tests to ensure that IndexedDB can be blocked in a third-party
context in both normal documents and in workers. These tests are
modeled after the existing cross-origin-websql* tests; it might be
possible to reuse some code in the future.

* http/tests/security/cross-origin-indexeddb-allowed-expected.txt: Added.
* http/tests/security/cross-origin-indexeddb-allowed.html: Added.
* http/tests/security/cross-origin-indexeddb-expected.txt: Added.
* http/tests/security/cross-origin-indexeddb.html: Added.
* http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt: Added.
* http/tests/security/cross-origin-worker-indexeddb-allowed.html: Added.
* http/tests/security/cross-origin-worker-indexeddb-expected.txt: Added.
* http/tests/security/cross-origin-worker-indexeddb.html: Added.
* http/tests/security/resources/cross-origin-iframe-for-indexeddb.html: Added.
* http/tests/security/resources/cross-origin-iframe-for-worker-indexeddb.html: Added.
* http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html: Added.
* http/tests/security/resources/worker-for-indexeddb.js: Added.
(self.onmessage):
    Add exciting new tests, with more boilerplate than I expected!
* platform/efl/TestExpectations:
* platform/mac-snowleopard/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
    Skip these IndexedDB tests on platforms where the feature isn't
    enabled.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141418 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed trivial build fix: Add missing virtual destructor to
LayerTreeRendererClient. Otherwise the build with -Werror breaks, which
complains (rightly so) that we're deleting a sub-class where the super class
doesn't have a virtual destructor.

* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(WebKit::LayerTreeRendererClient::~LayerTreeRendererClient):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141419 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Fix minor memory leak in slot execution

Reviewed by Allan Sandfeld Jensen.

Don't leak the "length" string when executing a slot in JavaScript.

* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtConnectionObject::execute):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening. Skip a failing test after r141269.
https://bugs.webkit.org/show_bug.cgi?id=108481.
Renamed inspector/editor/text-editor-ctrl-movements.html after r141399.

* platform/qt/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: overlay highlight in DTE gets messed up when zoom factor changes.
https://bugs.webkit.org/show_bug.cgi?id=108486

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-01-31
Reviewed by Pavel Feldman.

Repaint overlay highlight when zoom factor changes.

No new tests.

* inspector/front-end/DefaultTextEditor.js:
(WebInspector.TextEditorMainPanel.prototype.highlightRegex):
(WebInspector.TextEditorMainPanel.prototype.removeHighlight):
(WebInspector.TextEditorMainPanel.prototype.highlightRange):
(WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptors):
(WebInspector.TextEditorMainPanel.prototype.resize):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKitTestRunner needs an implementation of eventSender.beginDragWithFiles
https://bugs.webkit.org/show_bug.cgi?id=64285

* platform/wk2/TestExpectations:
Skip another test that uses eventSender.beginDragWithFiles.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141425 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: show cursor location in DTE
https://bugs.webkit.org/show_bug.cgi?id=108478

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-01-31
Reviewed by Pavel Feldman.

Add a new status bar element to SourceFrame to display current
DefaultTextEditor cursor position.

No new tests.

* English.lproj/localizedStrings.js:
* inspector/front-end/DefaultTextEditor.js:
(WebInspector.DefaultTextEditor.prototype.copyRange):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
(WebInspector.SourceFrame.prototype.statusBarItems):
(WebInspector.SourceFrame.prototype.selectionChanged):
(WebInspector.SourceFrame.prototype._updateSourcePosition):
* inspector/front-end/TextEditor.js:
(WebInspector.TextEditor.prototype.copyRange):
* inspector/front-end/inspector.css:
(.source-frame-position):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141426 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Skia] Update SkiaImageFilterBuilder's brightness matrix to match Chromium's implementation
https://bugs.webkit.org/show_bug.cgi?id=107841

Reviewed by Stephen White.

Update Skia's brightness filter to match the spec after http://trac.webkit.org/changeset/139770.

No new tests: covered by existing tests (currently disabled pending rebaseline).

* platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141427 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove dead transitional code from WebViewImpl
https://bugs.webkit.org/show_bug.cgi?id=107889

Patch by James Robinson <jamesr@chromium.org> on 2013-01-31
Reviewed by Adam Barth.

Source/WebKit/chromium:

The chromium side of this landed at r178256 and seems stable.

* public/WebWidget.h:
(WebKit::WebWidget::setCompositorSurfaceReady):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::~WebViewImpl):
(WebKit):
(WebKit::WebViewImpl::setIsTransparent):
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
* src/WebViewImpl.h:
* tests/ScrollingCoordinatorChromiumTest.cpp:
(WebKit::FakeWebViewClient::initializeLayerTreeView):
(FakeWebViewClient):
(WebKit::FakeWebViewClient::layerTreeView):
(WebKit::ScrollingCoordinatorChromiumTest::ScrollingCoordinatorChromiumTest):
(ScrollingCoordinatorChromiumTest):

Tools:

ScrollingCoordinatorChromiumTests need to initialize compositing, so its implementation of
WebWidgetClient has to support the new compositor initialization path.

* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::initializeLayerTreeView):
(WebViewHost::setWebWidget):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141428 268f45cc-cd09-0410-ab3c-d52691b4dbfc