[chromium] Add rendering commit statistics
https://bugs.webkit.org/show_bug.cgi?id=96938

Patch by Brian Anderson <brianderson@chromium.org> on 2012-09-17
Reviewed by James Robinson.

Adds total commit time and total commit count to WebRenderingStats.
Allows us to caculate average commit time in performance tests.

Source/Platform:

* chromium/public/WebRenderingStats.h:
(WebRenderingStats):
(WebKit::WebRenderingStats::WebRenderingStats):
(WebKit::WebRenderingStats::enumerateFields):

Source/WebKit/chromium:

* src/WebLayerTreeViewImpl.cpp:
(WebKit::WebLayerTreeViewImpl::renderingStats):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Including HexNumber.h fails build if hexDigitsForMode is not referenced
https://bugs.webkit.org/show_bug.cgi?id=96873

Patch by Glenn Adams <glenn@skynav.com> on 2012-09-17
Reviewed by Benjamin Poulain.

Ensure release build is possible when hexDigitsForMode is not referenced by
template expansion.

* wtf/HexNumber.h:
(WTF::Internal::hexDigitsForMode):
Change hexDigitsForMode to inline (rather than static). Make string literals
{lower,upper}HexDigits non-local and non-static, but const, to which the linker
should merge references in the RO data segment.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Unreviewed, test expectations update.

These tests are failing from the beginning (r128802)
fast/js/array-bad-time.html
fast/js/array-slow-put.html
fast/js/cross-frame-bad-time.html
fast/js/object-bad-time.html
fast/js/object-slow-put.html

* platform/chromium/TestExpectations:

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

fast/js/cross-frame-really-bad-time.html is failing from the beginning (r128816)

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactored the arguments object so it doesn't dictate closure layout
https://bugs.webkit.org/show_bug.cgi?id=96955

Reviewed by Oliver Hunt.

* bytecode/CodeBlock.h:
(JSC::ExecState::argumentAfterCapture): Helper function for accessing an
argument that has been moved for capture.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator): Generate metadata for arguments
that are captured. We don't move any arguments yet, but we do use this
metadata to tell the arguments object if an argument is stored in the
activation.

* dfg/DFGOperations.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnArguments):
(JSC::DFG::SpeculativeJIT::compileGetArgumentsLength):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): Updated for the arguments object not
malloc'ing a separate backing store, and for a rename from deletedArguments
to slowArguments.

* interpreter/CallFrame.h:
(ExecState):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::unwindCallFrame):
(JSC::Interpreter::privateExecute):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Updated for small interface changes.

* runtime/Arguments.cpp:
(JSC::Arguments::visitChildren):
(JSC::Arguments::copyToArguments):
(JSC::Arguments::fillArgList):
(JSC::Arguments::getOwnPropertySlotByIndex):
(JSC::Arguments::createStrictModeCallerIfNecessary):
(JSC::Arguments::createStrictModeCalleeIfNecessary):
(JSC::Arguments::getOwnPropertySlot):
(JSC::Arguments::getOwnPropertyDescriptor):
(JSC::Arguments::getOwnPropertyNames):
(JSC::Arguments::putByIndex):
(JSC::Arguments::put):
(JSC::Arguments::deletePropertyByIndex):
(JSC::Arguments::deleteProperty):
(JSC::Arguments::defineOwnProperty):
(JSC::Arguments::tearOff): Moved all data inline into the object, for speed,
and refactored all internal argument accesses to use helper functions, so
we can change the implementation without changing lots of code.

(JSC::Arguments::didTearOffActivation): This function needs to account
for arguments that were moved by the activation object. We do this accounting
through a side vector that tells us where our arguments will be in the
activation.

(JSC::Arguments::tearOffForInlineCallFrame):
* runtime/Arguments.h:
(Arguments):
(JSC::Arguments::length):
(JSC::Arguments::isTornOff):
(JSC::Arguments::Arguments):
(JSC::Arguments::allocateSlowArguments):
(JSC::Arguments::tryDeleteArgument):
(JSC::Arguments::trySetArgument):
(JSC::Arguments::tryGetArgument):
(JSC::Arguments::isDeletedArgument):
(JSC::Arguments::isArgument):
(JSC::Arguments::argument):
(JSC::Arguments::finishCreation):

* runtime/JSActivation.h:
(JSC::JSActivation::create):
(JSActivation):
(JSC::JSActivation::captureStart):
(JSC::JSActivation::storageSize):
(JSC::JSActivation::registerOffset):
(JSC::JSActivation::isValid): The activation object is no longer responsible
for copying extra arguments provided by the caller. The argumnents object
does this instead. This means we can allocate and initialize an activation
without worrying about the call frame's argument count.

* runtime/SymbolTable.h:
(JSC::SlowArgument::SlowArgument):
(SlowArgument):
(JSC):
(JSC::SharedSymbolTable::parameterCount):
(SharedSymbolTable):
(JSC::SharedSymbolTable::slowArguments):
(JSC::SharedSymbolTable::setSlowArguments): Added data structures to back
the algorithms above.


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

fast/js/cross-frame-really-bad-time-with-__proto__.html is failing from the beginning (r128816)

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] ASAN bot is crashing at the end of the run
https://bugs.webkit.org/show_bug.cgi?id=96967

Reviewed by Abhishek Arya.

The ASAN bot is crashing attempting to decode some output into
UTF-8; there's no reason to do this, so let's not do this and
see if something else is going on as well.

* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumPort._get_crash_log):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Several key codes are not mapped with evas key name.
https://bugs.webkit.org/show_bug.cgi?id=96915

Reviewed by Gyuyoung Kim.

* platform/efl/EflKeyboardUtilities.cpp:
(WebCore::createWindowsKeyMap):
Added missing items of hashmap for virtual key code.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add experimental code to enter a sandbox for a plug-in.
Based on a patch by Ivan Krstić.
<rdar://problem/11823151>

Reviewed by Anders Carlsson.

Enter a sandbox for a plug-in if a sandbox profile is found in /usr/share/sandbox/ that
has the plug-ins bundle identifier for a name.

* PluginProcess/mac/PluginProcessMac.mm:
(WebKit::initializeSandbox):
(WebKit::PluginProcess::platformInitialize):
Enter the sandbox provided if a profile can be found.

* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h:
* WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
(enterSandbox):
Factor out the core sandbox entering logic (so if can be used above) and make sure
that Remote Save Panel is enabled.

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