We should wait longer before killing the PluginProcess.
<rdar://problem/12067728> and https://bugs.webkit.org/show_bug.cgi?id=96407

Reviewed by Anders Carlsson.

Currently we kill the PluginProcess 15 seconds after the last plug-in is destroyed.
This is short enough that most users will have the process killed many times during browsing sessions,
which is painful because relaunching the process is I/O and kernel intensive.

In an ideal world we could keep it around forever until the system tells us resources are running low.

In reality we do want to kill it occasionally to get a clean slate from any plug-in leaks.

A reasonable balance for now is to set a minimum lifetime of 30 minutes on the plug-in process and to
extend the termination timer from 15 seconds to 10 minutes.

* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
(WebKit::PluginProcess::initializePluginProcess):
(WebKit::PluginProcess::setMinimumLifetime):
(WebKit):
(WebKit::PluginProcess::minimumLifetimeTimerFired):
* PluginProcess/PluginProcess.h:
(PluginProcess):

* Shared/Plugins/PluginProcessCreationParameters.cpp:
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h:
(PluginProcessCreationParameters):

* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit):
(WebKit::PluginProcessProxy::didFinishLaunching):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixed a bug where kill-old-processes failed to kill clang++.

Rubber-stamped by Alexey Proskuryakov.

* BuildSlaveSupport/kill-old-processes: Escape the + signs in "clang++"
where it is passed as a regular expression to killall.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128206 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Improve console error messages when 'document.domain' blocks cross-origin script access.
https://bugs.webkit.org/show_bug.cgi?id=96247

Patch by Mike West <mkwst@chromium.org> on 2012-09-11
Reviewed by Adam Barth.

Source/WebCore:

Setting 'document.domain' can produce counterintuitive "cross-origin"
error messages for script access in cases where the property isn't set
to the same value in both the accessor and accessee. This patch adds a
bit more context to the error message to make it clear that both sides
must set the property, and that the values must match.

This shouldn't change any externally visible behavior other than the
error warnings. It's covered by changes to existing tests.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
    Adding checks for 'document.domain'-related errors, and adding an
    ASSERT that crossDomainAccessErrorMessage is called in cases where
    the accessing frame is actually denied access to the frame being
    accessed.

LayoutTests:

* http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
* http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
* http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
* http/tests/security/cross-frame-access-protocol-expected.txt:
* http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
* http/tests/security/view-source-no-javascript-url-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
* platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
* platform/chromium/http/tests/security/inactive-document-with-empty-security-origin-expected.txt:
* platform/chromium/http/tests/security/window-named-proto-expected.txt:
    Updating error message.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128208 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Apple] Install plist for Apple Open Source build system
https://bugs.webkit.org/show_bug.cgi?id=96345

Reviewed by Mark Rowe.

Apple's build system requires a couple of files that describe where
the 3rd party Open Source library came from, and what license it
uses. These files are copied into /usr/local when the project is
being installed.

* ANGLE.plist: Added.
* ANGLE.txt: Added.
* ANGLE.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Restore original value of mock scrollbars enabled in InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=87680

Patch by Marcelo Lira <marcelo.lira@openbossa.org> on 2012-09-11
Reviewed by Adam Barth.

Added backup support for mock scrollbars state in
InternalSettings::Backup, and removed support for these
from Qt's DumpRenderTree.

.:

* Source/autotools/symbols.filter:

Source/WebCore:

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
(Backup):

Source/WebKit/qt:

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
* WebCoreSupport/DumpRenderTreeSupportQt.h:

Source/WebKit2:

* win/WebKit2.def:

Tools:

* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::WebPage::resetSettings):
* DumpRenderTree/qt/TestRunnerQt.cpp:
(TestRunner::setFrameFlatteningEnabled):
* DumpRenderTree/qt/TestRunnerQt.h:
(TestRunner):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Fix history navigation for error pages.
https://bugs.webkit.org/show_bug.cgi?id=96410

Reviewed by Rob Buis.

Fix how history navigation handles restoring view state when navigating between error pages.

* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry):
(WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem):
(WebCore::FrameLoaderClientBlackBerry::restoreViewState):
* WebCoreSupport/FrameLoaderClientBlackBerry.h:
(FrameLoaderClientBlackBerry):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128211 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Optimize key decode and comparison operations
https://bugs.webkit.org/show_bug.cgi?id=96037

Reviewed by Tony Chang.

Eliminate memory allocations in code identified as CPU bottlenecks in IDB profiling.

No new tests - just performance work.

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Avoid incremental allocations.
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Rename confusing variables p and q.
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare): Rename from decodeAndCompare, and add specializations
for frequently encountered types (e.g. object/index data) that can be compared without a
full decode.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Garden-o-matic should ignore a wider variety of warnings in buildbot json
https://bugs.webkit.org/show_bug.cgi?id=96411

Reviewed by Adam Barth.

Previously only the exact string "warning" was treated as a warning
result. This patch treats any string with "warning" as a substring
as a warning (e.g., "warnings", as seen on the cr-win buildbots).

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js:
(.):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128213 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium gardening.

Mark compositing/overflow/overflow-scaled-descendant-overflapping as
failing on cr-mac after r127789 and remove bad rebaselines.

* platform/chromium-mac-snowleopard/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png: Removed.
* platform/chromium-mac/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png: Removed.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactor computePercentageLogicalHeight to simplify the logic a bit
https://bugs.webkit.org/show_bug.cgi?id=96329

Reviewed by Tony Chang.

This makes it clear that the value we're computing as we go is the availableHeight.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed chromium gardening.

Remove bogus rebaseline added in r128105, and remove "flaky"
expectation (since tests seems non-flaky).

* platform/chromium-win-xp/fast/hidpi/gradient-with-scaled-ancestor-expected.png: Removed.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: IDBObjectStore.count() is slow
https://bugs.webkit.org/show_bug.cgi?id=96033

Reviewed by Tony Chang.

Avoid decoding record values when performing count() iteration, and factor out common code
used for initializing object store and index cursors. Also, remove unused indexDataId()
methods (which date back to the SQLite backing store), and rename some p's and q's.

No new tests - no functional changes. Covered by existing test:
    LayoutTests/storage/indexeddb/objectstore-count.html

* Modules/indexeddb/IDBBackingStore.h: Expose new (internal) ObjectStoreKeyCursor
(IDBBackingStore):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore): Factor out common CursorOptions initialization code. The objectStoreCursorOptions()
function is needed for this patch. The indexCursorOptions() function is not, but eliminates
duplicated code and is a nearly identical refactor.
(WebCore::IDBLevelDBBackingStore::openObjectStoreCursor): Refactor.
(WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor): Implement.
(WebCore::IDBLevelDBBackingStore::openIndexKeyCursor): Refactor.
(WebCore::IDBLevelDBBackingStore::openIndexCursor): Ditto.
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::countInternal): Use ObjectStoreKeyCursor for iteration.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128217 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Rolled DEPS.

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

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128218 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LLInt should optimize and profile array length accesses
https://bugs.webkit.org/show_bug.cgi?id=96417

Reviewed by Oliver Hunt.

This fixes the following hole in our array profiling strategy, where the array
is large (more than 1000 elements):
        
for (var i = 0; i < array.length; ++i) ...
        
The peeled use of array.length (in the array prologue) will execute only once
before DFG optimization kicks in from the loop's OSR point. Since it executed
only once, it executed in the LLInt. And prior to this patch, the LLInt did
not profile array.length accesses - so the DFG will assume, based on the lack
of profiling, that the access is in fact not an access to the JSArray length
property. That could then impede our ability to hoist the array structure
check, and may make us pessimistic in other ways as well, since the generic
GetById used for the array length access will be viewed as a side-effecting
operation.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::finalizeUnconditionally):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.h:
(JSC::DFG::canCompileOpcode):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r128212.
http://trac.webkit.org/changeset/128212
https://bugs.webkit.org/show_bug.cgi?id=96037

Assertion fails on linux 64

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
(IDBLevelDBCoding):
(WebCore::IDBLevelDBCoding::compare):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, manually rolling out r128175.
The patch is causing crashes in debug builds.
http://trac.webkit.org/changeset/128175
https://bugs.webkit.org/show_bug.cgi?id=96284

Source/WebCore: 

* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::updateFromSoupMessage):

LayoutTests: 

* http/tests/misc/non-utf8-header-name-expected.txt: Removed.
* http/tests/misc/non-utf8-header-name.php: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128221 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash on a long press gesture when touch adjustment is enabled.
https://bugs.webkit.org/show_bug.cgi?id=96313

Patch by Kevin Ellis <kevers@chromium.org> on 2012-09-11
Reviewed by Antonio Gomes.

Source/WebCore:

Fix to ensure that a long-press on a shadow-DOM element does not
trigger a crash in TouchAdjustment::providesContextMenuItems.
Prior to the patch, a null-pointer exception was trigger because
of a null renderer in the check.

Test: touchadjustment/context-menu-shadow-node.html

* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::providesContextMenuItems):

LayoutTests:

Add test to ensure that a long-press on a shadow DOM element does
not trigger a crash when determining if an element provides a context
menu.

* touchadjustment/context-menu-shadow-node-expected.txt: Added.
* touchadjustment/context-menu-shadow-node.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: [skia] Switch FEComponentTransfer filter to use skia's SkColorFilter
https://bugs.webkit.org/show_bug.cgi?id=95238

Reviewed by Dirk Schulze.

Covered by existing tests in svg/, such as svg/custom/feComponentTransfer-Discrete.svg.

* WebCore.gypi:
* platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::platformApplySoftware):
Add a check for the skia implementation.
(WebCore::FEComponentTransfer::getValues):
* platform/graphics/filters/FEComponentTransfer.h:
Factor out the retrieval of LUT values into its own function, so we
can call it from the Skia implementation.
* platform/graphics/filters/skia/FEComponentTransferSkia.cpp: Added.
(WebCore::FEComponentTransfer::platformApplySkia):

LayoutTests: [chromium] Mark some tests as needing a rebaseline due to SVG filters change.
https://bugs.webkit.org/show_bug.cgi?id=95238

Reviewed by Dirk Schulze.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128223 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] don't include content shell builders in the garden-o-matic view
https://bugs.webkit.org/show_bug.cgi?id=96418

Reviewed by James Robinson.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Clean up functions in RenderLayerBacking.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=96370

Patch by Rik Cabanier <cabanier@adobe.com> on 2012-09-11
Reviewed by Simon Fraser.

Remove 'layer' from function names in RenderLayerBacking

No new test. No change in functionality.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateOpacity):
(WebCore::RenderLayerBacking::updateTransform):
(WebCore::RenderLayerBacking::updateFilters):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::startTransition):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):

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