Enh: Hash Const JSString in Backing Stores to Save Memory
https://bugs.webkit.org/show_bug.cgi?id=86024

Reviewed by Oliver Hunt.

During garbage collection, each marking thread keeps a HashMap of
strings.  While visiting via MarkStack::copyAndAppend(), we check to
see if the string we are visiting is already in the HashMap.  If not
we add it. If so, we change the reference to the current string we're
visiting to the prior string.

To reduce the performance impact of this change, two throttles have
ben added.  1) We only try hash consting if a significant number of new 
strings have been created since the last hash const.  Currently this is
set at 100 strings.  2) If a string is unique at the end of a marking
it will not be checked during further GC phases. In some cases this
won't catch all duplicates, but we are trying to catch the growth of
duplicate strings.

* heap/Heap.cpp:
(JSC::Heap::markRoots):
* heap/MarkStack.cpp:
(JSC::MarkStackThreadSharedData::resetChildren):
(JSC::MarkStackThreadSharedData::MarkStackThreadSharedData):
(JSC::MarkStackThreadSharedData::reset):
(JSC::MarkStack::setup): Check to see if enough strings have been created
to hash const.
(JSC::MarkStack::reset): Added call to clear m_uniqueStrings.
(JSC::JSString::tryHashConstLock): New method to lock JSString for
hash consting.
(JSC::JSString::releaseHashConstLock): New unlock method.
(JSC::JSString::shouldTryHashConst): Set of checks to see if we should
try to hash const the string.
(JSC::MarkStack::internalAppend): New method that performs the hash consting.
(JSC::SlotVisitor::copyAndAppend): Changed to call the new hash
consting internalAppend().
* heap/MarkStack.h:
(MarkStackThreadSharedData):
(MarkStack):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
* runtime/JSGlobalData.h:
(JSGlobalData):
(JSC::JSGlobalData::haveEnoughNewStringsToHashConst):
(JSC::JSGlobalData::resetNewStringsSinceLastHashConst):
* runtime/JSString.h:
(JSString): Changed from using bool flags to using an unsigned
m_flags field.  This works better with the weakCompareAndSwap in
JSString::tryHashConstLock(). Changed the 8bitness setting and
checking to use new accessors.
(JSC::JSString::JSString):
(JSC::JSString::finishCreation):
(JSC::JSString::is8Bit): Updated for new m_flags.
(JSC::JSString::setIs8Bit): New setter.
New hash const flags accessors:
(JSC::JSString::isHashConstSingleton):
(JSC::JSString::clearHashConstSingleton):
(JSC::JSString::setHashConstSingleton):
(JSC::JSRopeString::finishCreation):
(JSC::JSRopeString::append):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: moving child process logging code into manager_worker_broker
https://bugs.webkit.org/show_bug.cgi?id=90408

Reviewed by Ojan Vafai.

Users of manager_worker_broker should not have to be aware of
whether they're in the same process or different processes and
configure logging themselves; mwb should hide this complexity.
We can't quite do this completely/correctly yet, since the
manager expects to get a list of messages to log, but this
change fixes the worker side of it, at least.

This is just moving code around, there is no new functionality
and this should be covered by existing tests.

* Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py:
(AbstractWorker.__init__):
(_WorkerConnection.__init__):
(_WorkerConnection.post_message):
(_WorkerConnection):
(_WorkerConnection.set_up_logging):
(_WorkerConnection.clean_up_logging):
(_InlineWorkerConnection.run):
(_MultiProcessWorkerConnection.run):
(_WorkerLogHandler):
(_WorkerLogHandler.__init__):
(_WorkerLogHandler.emit):
* Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py:
(_TestWorker.run):
(_TestsMixin.handle_done):
* Scripts/webkitpy/layout_tests/controllers/worker.py:
(Worker.__init__):
(Worker.run):
(Worker._run_test):
(Worker.cleanup):
(Worker.run_single_test):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Add support for Battery Status API
https://bugs.webkit.org/show_bug.cgi?id=89558

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-07-03
Reviewed by Anders Carlsson.

Add support for Battery Status API to WebKit2.

* CMakeLists.txt:
* DerivedSources.pri:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Platform/CoreIPC/MessageID.h:
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
* Shared/WebBatteryStatus.cpp: Added.
(WebKit):
(WebKit::WebBatteryStatus::WebBatteryStatus):
(WebKit::WebBatteryStatus::~WebBatteryStatus):
(WebKit::WebBatteryStatus::Data::encode):
(WebKit::WebBatteryStatus::Data::decode):
* Shared/WebBatteryStatus.h: Added.
(WebKit):
(WebBatteryStatus):
(Data):
(WebKit::WebBatteryStatus::create):
(WebKit::WebBatteryStatus::isCharging):
(WebKit::WebBatteryStatus::chargingTime):
(WebKit::WebBatteryStatus::dischargingTime):
(WebKit::WebBatteryStatus::level):
(WebKit::WebBatteryStatus::data):
(WebKit::WebBatteryStatus::type):
* Target.pri:
* UIProcess/API/C/WKAPICast.h:
(WebKit):
* UIProcess/API/C/WKBatteryManager.cpp: Added.
(WKBatteryManagerGetTypeID):
* UIProcess/API/C/WKBatteryManager.h: Added.
* UIProcess/WebBatteryManagerProxy.cpp: Added.
(WebKit):
(WebKit::WebBatteryManagerProxy::create):
(WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
(WebKit::WebBatteryManagerProxy::~WebBatteryManagerProxy):
(WebKit::WebBatteryManagerProxy::invalidate):
(WebKit::WebBatteryManagerProxy::initializeProvider):
(WebKit::WebBatteryManagerProxy::didReceiveMessage):
(WebKit::WebBatteryManagerProxy::startUpdating):
(WebKit::WebBatteryManagerProxy::stopUpdating):
(WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus):
(WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus):
* UIProcess/WebBatteryManagerProxy.h: Added.
(CoreIPC):
(WebKit):
(WebBatteryManagerProxy):
(WebKit::WebBatteryManagerProxy::clearContext):
(WebKit::WebBatteryManagerProxy::type):
* UIProcess/WebBatteryManagerProxy.messages.in: Added.
* UIProcess/WebBatteryProvider.cpp: Added.
(WebKit):
(WebKit::WebBatteryProvider::startUpdating):
(WebKit::WebBatteryProvider::stopUpdating):
* UIProcess/WebBatteryProvider.h: Added.
(WebKit):
(WebBatteryProvider):
* WebKit2.pri:
* WebProcess/Battery/WebBatteryManager.cpp: Added.
(WebKit):
(WebKit::WebBatteryManager::WebBatteryManager):
(WebKit::WebBatteryManager::~WebBatteryManager):
(WebKit::WebBatteryManager::didReceiveMessage):
(WebKit::WebBatteryManager::registerWebPage):
(WebKit::WebBatteryManager::unregisterWebPage):
(WebKit::WebBatteryManager::didChangeBatteryStatus):
(WebKit::WebBatteryManager::updateBatteryStatus):
* WebProcess/Battery/WebBatteryManager.h: Added.
(CoreIPC):
(WebKit):
(WebBatteryManager):
* WebProcess/Battery/WebBatteryManager.messages.in: Added.
* WebProcess/WebCoreSupport/WebBatteryClient.cpp: Added.
(WebKit):
(WebKit::WebBatteryClient::startUpdating):
(WebKit::WebBatteryClient::stopUpdating):
(WebKit::WebBatteryClient::batteryControllerDestroyed):
* WebProcess/WebCoreSupport/WebBatteryClient.h: Added.
(WebKit):
(WebBatteryClient):
(WebKit::WebBatteryClient::WebBatteryClient):
(WebKit::WebBatteryClient::~WebBatteryClient):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::didReceiveMessage):
* WebProcess/WebProcess.h:
(WebProcess):
(WebKit::WebProcess::batteryManager):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: make the worker class stand alone with a cleaner interface
https://bugs.webkit.org/show_bug.cgi?id=90409

Reviewed by Ojan Vafai.

Currently the Worker class derives from AbstractWorker, which is
kind of crufty and awkward; it would be better if we did not
rely on shared state.

This change changes that so that Worker derives from object, and
exposes the following interface:
  __init__() - called in the manager process
  safe_init() - called in the worker process to initialize
    unpicklable state
  handle() - a single routine to handle all messages
  cleanup() - called so the worker can clean up

Also, all of the "administrative" messages that are handled by
the worker (notification of start/stop/etc.) move into
manager_worker_broker - this reduces worker.py to just handling
the mechanics of actually running each test.

For the moment, we do this by creating Yet Another wrapper/proxy
class in manager_worker_broker, but this will get simpler
shortly when the rest of m_w_b is cleaned up.

With this change worker is now in its new form but there will be
a follow-on change that cleans up some names and other minor
things.

This change is again mostly just moving things around and should
be covered by the (updated) existing tests.

* Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py:
(get):
(AbstractWorker.__init__):
(AbstractWorker.run):
(AbstractWorker):
(AbstractWorker.handle_stop):
(AbstractWorker.handle_test_list):
(AbstractWorker.yield_to_broker):
(AbstractWorker.post_message):
(_WorkerConnection.__init__):
(_Process.run):
* Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py:
(_TestWorker):
(_TestWorker.__init__):
(_TestWorker.name):
(_TestWorker.cleanup):
(_TestWorker.handle):
(_TestWorker.safe_init):
(_TestWorker.stop):
(_TestsMixin.handle_finished_test):
(_TestsMixin.setUp):
(_TestsMixin.test_cancel):
(_TestsMixin.test_done):
* Scripts/webkitpy/layout_tests/controllers/worker.py:
(Worker):
(Worker.__init__):
(Worker.safe_init):
(Worker.handle):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add AudioFIFO class and simplify AudioPullFIFO
https://bugs.webkit.org/show_bug.cgi?id=90398

Patch by Raymond Toy <rtoy@google.com> on 2012-07-03
Reviewed by Chris Rogers.

No new tests. This code will be used in audio back-end implementation.

Add AudioFIFO class to implement main parts of FIFO.  Simplify
implementation of AudioPushFIFO by using AudioFIFO.

* WebCore.gypi: Add new files.

New AudioFIFO class
* platform/audio/AudioFIFO.cpp: Copied from Source/WebCore/platform/audio/AudioPullFIFO.cpp.
(WebCore):
(WebCore::AudioFIFO::AudioFIFO):
(WebCore::AudioFIFO::consume):
(WebCore::AudioFIFO::push):
(WebCore::AudioFIFO::findWrapLengths):
* platform/audio/AudioFIFO.h: Copied from Source/WebCore/platform/audio/AudioPullFIFO.h.
(WebCore):
(AudioFIFO):
(WebCore::AudioFIFO::framesInFifo):
(WebCore::AudioFIFO::updateIndex):

Use AudioFIFO
* platform/audio/AudioPullFIFO.cpp:
(WebCore::AudioPullFIFO::AudioPullFIFO):
(WebCore::AudioPullFIFO::consume):
(WebCore::AudioPullFIFO::fillBuffer):
* platform/audio/AudioPullFIFO.h:
(AudioPullFIFO):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: fix mock port
https://bugs.webkit.org/show_bug.cgi?id=90500

Reviewed by Ojan Vafai.

The MockDRT code was never updated when we switched the chromium
ports to using "drt mode" by default. This change updates that
code, fixes a typo in the chromium port that went undetected
(default_test_timeout_ms -> default_timeout_ms), and adds tests
that actually exercise some of the mock ports. These tests are
useful in that they will exercise the port-specific code in an
end-to-end-manner, but they are a bit slow for some reason (>1s
each) that I need to look into.

* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumDriver.stop):
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort.default_timeout_ms):
* Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
(TestChromiumAndroidPort.test_default_timeout_ms):
* Scripts/webkitpy/layout_tests/port/mock_drt.py:
(main):
(parse_options):
(MockTestShell):
(MockTestShell.output_for_test):
* Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py:
(MockDRTTest.assertTest):
(MockTestShellTest):
(MockTestShellTest.make_drt):
(MockTestShellTest.test_test_shell_parse_options):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(PortTest):
(PortTest.assert_mock_port_works):
(PortTest.test_chromium_mac_lion):
(PortTest.test_chromium_mac_lion_in_test_shell_mode):
(PortTest.test_qt_linux):
(PortTest.test_mac_lion):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: REGRESSION (r115654): Sometimes does not replace content for multipart/x-mixed-replace
https://bugs.webkit.org/show_bug.cgi?id=88436

Reviewed by Brady Eidson.

Test: http/tests/multipart/multipart-replace-non-html-content.php

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData): We should only send receivedFirstData() once per main resource load,
    rather than multiple times in a multipart load.
(WebCore::DocumentLoader::setupForReplaceByMIMEType): m_gotFirstByte isn't set to true until data is
    actually committed, and multipart data is often not committed until the part is finished. Check
    whether the SharedBuffer is non-null instead.
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::resetInternalsObject): The JSInternals object my have already been cleared if the window shell
    was cleared as part of creation of a new Document. Check it before using it.

LayoutTests: Test for https://bugs.webkit.org/show_bug.cgi?id=88436.

Reviewed by Brady Eidson.

* http/tests/multipart/multipart-replace-non-html-content-expected.txt: Added.
* http/tests/multipart/multipart-replace-non-html-content.php: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
eventSender.beginDragWithFiles had been implemented in Windows, related tests should be removed from Skipped.
https://bugs.webkit.org/show_bug.cgi?id=87610

Patch by Xueqing Huang <huangxueqing@baidu.com> on 2012-07-03
Reviewed by Jessie Berlin.

* platform/win/Skipped:
* platform/win/fast/dom/Window: Removed.
* platform/win/fast/dom/Window/window-postmessage-clone-frames-expected.txt: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Parameter 'id' is not used in getUserModifyProperty() of fast/dom/shadow/user-modify-inheritance.html.
https://bugs.webkit.org/show_bug.cgi?id=90434

Reviewed by Ryosuke Niwa.

* fast/dom/shadow/user-modify-inheritance.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: clean up exception handling and make sure we log some more failures
https://bugs.webkit.org/show_bug.cgi?id=90503

Reviewed by Ojan Vafai.

There were several places where exceptions weren't getting
logged, most notably if you passed a bad value to --platform.
This change tests that and cleans things up a bit; more cleanup
will be possible when we rework the manager_worker_broker code.

* Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py:
(_BrokerConnection.raise_exception):
(_InlineWorkerConnection.raise_exception):
* Scripts/webkitpy/layout_tests/controllers/worker.py:
(Worker.run):
(Worker.kill_driver):
* Scripts/webkitpy/layout_tests/port/factory.py:
(PortFactory.get):
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(run):
(main):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(MainTest.test_unsupported_platfrom):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Binding: IDL type DOMString[] shouldn't match null
https://bugs.webkit.org/show_bug.cgi?id=84217

Reviewed by Kentaro Hara.

Similar to r121714, IDL overloads with T[] (which is only minimally supported)
were being treated as Nullable by default during overloaded method dispatching,
which deviates from the WebIDL specification. Extend the previous change to
look for Nullable (specified by "?" type suffix in the IDL) for array types.

Also, after inspection of the spec, use a strict "is this an Array?" test in
the JS generator rather than an "inherits from Array.prototype?" test, to
match the WebIDL spec.

IDL files with affected overloads are modified to include the "?" suffix
so that no behavior changes are introduced by this patch - the JS and V8
generator results before/after the change show no diffs apart from the stricter
isJSArray() test.

Test: bindings/scripts/test/TestObj.idl (a non-Nullable T[] overload)

* Modules/indexeddb/IDBDatabase.idl: Tag T[] overloads with ? suffix.
* Modules/indexeddb/IDBObjectStore.idl: Ditto.
* Modules/vibration/NavigatorVibration.idl: Ditto.
* bindings/scripts/CodeGeneratorJS.pm: Check isNullable for T[].
(GenerateParametersCheckExpression):
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
(GenerateParametersCheckExpression):
* bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
* bindings/scripts/test/TestObj.idl: Tag existing T[] with ?, add non-? T[].
* bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
(WebCore::TestObjV8Internal::overloadedMethod9Callback):
(TestObjV8Internal):
(WebCore::TestObjV8Internal::overloadedMethodCallback):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Remove enableFasterDOMStoreAccess which is never used
https://bugs.webkit.org/show_bug.cgi?id=90489

Reviewed by Adam Barth.

Source/WebCore:

No new tests. Dead code removal.

* bindings/v8/V8DOMMap.cpp:
* bindings/v8/V8DOMMap.h:
(WebCore):

Source/WebKit/chromium:

* src/WebScriptController.cpp:
(WebKit::WebScriptController::enableV8SingleThreadMode):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Enable CSS variables support at compile time
https://bugs.webkit.org/show_bug.cgi?id=90448

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-07-03
Reviewed by Kenneth Rohde Christiansen.

Turn on CSS_VARIABLES flag by default on EFL port.

.:

* Source/cmake/OptionsEfl.cmake:
* Source/cmakeconfig.h.cmake:

Tools:

* Scripts/webkitperl/FeatureList.pm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121819 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Rebaseline: svg/custom/pattern-userSpaceOnUse-userToBaseTransform.xhtml

* platform/chromium-win/svg/custom/pattern-userSpaceOnUse-userToBaseTransform-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Improve webkit-patch rebaseline to work for more cases
https://bugs.webkit.org/show_bug.cgi?id=90504

Reviewed by Dirk Pranke.

-Makes it work for the build.chromium.org bots.
-Lets you rebaseline all builders instead of just one.
-Lets you pass in the builder or test to rebaseline.

* Scripts/webkitpy/common/net/buildbot/buildbot.py:
(Build.results_url):
Make this work for build.chromium.org builders as well.

* Scripts/webkitpy/common/net/buildbot/chromiumbuildbot.py:
(ChromiumBuilder):
(ChromiumBuilder.latest_cached_build):
ChromiumBuilder doesn't support large parts of the Builder interface.
This provides the bare minimum for this patch to work. Eventually,
we should create a single interface that can be supported for both
sets of buildbots.

* Scripts/webkitpy/layout_tests/port/builders.py:
(builder_path_from_name):
(all_builder_names):
memoizing here is incorrect because the test override _exact_matches,
so these can return different values. In either case, I'm pretty sure these
are not remotely hot codepaths.

* Scripts/webkitpy/tool/commands/rebaseline.py:
(AbstractParallelRebaselineCommand.__init__):
(Rebaseline):
(Rebaseline.__init__):
(Rebaseline._builders_to_pull_from):
(Rebaseline._builder_with_name):
(Rebaseline._tests_to_update):
(Rebaseline.execute):
* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(test_rebaseline.mock_builders_to_pull_from):
(test_rebaseline):
(test_rebaseline_command_line_flags):
(test_rebaseline_multiple_builders):
(test_rebaseline_multiple_builders.mock_builders_to_pull_from):
(test_rebaseline_multiple_builders.mock_tests_to_update):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add vollick to the list of committers
https://bugs.webkit.org/show_bug.cgi?id=90512

Reviewed by Adrienne Walker.

* Scripts/webkitpy/common/config/committers.py:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Avoid calling getUniformLocation??() in the compositor startup
https://bugs.webkit.org/show_bug.cgi?id=90217

Patch by Alex Sakhartchouk <alexst@chromium.org> on 2012-07-03
Reviewed by Adrienne Walker.

Source/Platform:

Adding an entry point for bindUniformLocationCHROMIUM.

* chromium/public/WebGraphicsContext3D.h:
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::bindUniformLocationCHROMIUM):

Source/WebCore:

This change allows chrome compositor to bind uniform locations instead of querying
them from the graphics context by using GL_CHROMIUM_bind_uniform_location.

The extention itself is tested in chromium and the change in webkit simply adds
plumbing to allow its usage. Existing pixel tests would be able to verify proper behaviour.

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::tileCheckerboardProgram):
(WebCore::LayerRendererChromium::solidColorProgram):
(WebCore::LayerRendererChromium::headsUpDisplayProgram):
(WebCore::LayerRendererChromium::renderPassProgram):
(WebCore::LayerRendererChromium::renderPassProgramAA):
(WebCore::LayerRendererChromium::renderPassMaskProgram):
(WebCore::LayerRendererChromium::renderPassMaskProgramAA):
(WebCore::LayerRendererChromium::tileProgram):
(WebCore::LayerRendererChromium::tileProgramOpaque):
(WebCore::LayerRendererChromium::tileProgramAA):
(WebCore::LayerRendererChromium::tileProgramSwizzle):
(WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
(WebCore::LayerRendererChromium::tileProgramSwizzleAA):
(WebCore::LayerRendererChromium::textureProgram):
(WebCore::LayerRendererChromium::textureProgramFlip):
(WebCore::LayerRendererChromium::textureIOSurfaceProgram):
(WebCore::LayerRendererChromium::videoYUVProgram):
(WebCore::LayerRendererChromium::videoStreamTextureProgram):
* platform/graphics/chromium/LayerRendererChromium.h:
(LayerRendererChromium):
* platform/graphics/chromium/ProgramBinding.cpp:
(WebCore::ProgramBindingBase::ProgramBindingBase):
(WebCore::ProgramBindingBase::~ProgramBindingBase):
(WebCore::ProgramBindingBase::init):
(WebCore::ProgramBindingBase::link):
(WebCore):
(WebCore::ProgramBindingBase::cleanup):
(WebCore::ProgramBindingBase::createShaderProgram):
(WebCore::ProgramBindingBase::cleanupShaders):
* platform/graphics/chromium/ProgramBinding.h:
(ProgramBindingBase):
(WebCore::ProgramBinding::initialize):
* platform/graphics/chromium/ShaderChromium.cpp:
(WebCore::VertexShaderPosTex::init):
(WebCore::VertexShaderPosTexYUVStretch::init):
(WebCore::VertexShaderPos::init):
(WebCore::VertexShaderPosTexTransform::init):
(WebCore::VertexShaderQuad::init):
(WebCore::VertexShaderTile::init):
(WebCore::VertexShaderVideoTransform::init):
(WebCore::FragmentTexAlphaBinding::init):
(WebCore::FragmentTexOpaqueBinding::init):
(WebCore::FragmentShaderOESImageExternal::init):
(WebCore::FragmentShaderRGBATexAlphaAA::init):
(WebCore::FragmentTexClampAlphaAABinding::init):
(WebCore::FragmentShaderRGBATexAlphaMask::init):
(WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
(WebCore::FragmentShaderYUVVideo::init):
(WebCore::FragmentShaderColor::init):
(WebCore::FragmentShaderCheckerboard::init):
* platform/graphics/chromium/ShaderChromium.h:
(VertexShaderPosTex):
(VertexShaderPosTexYUVStretch):
(VertexShaderPos):
(WebCore::VertexShaderPosTexIdentity::init):
(VertexShaderPosTexTransform):
(VertexShaderQuad):
(VertexShaderTile):
(VertexShaderVideoTransform):
(FragmentTexAlphaBinding):
(FragmentTexOpaqueBinding):
(FragmentShaderOESImageExternal):
(FragmentShaderRGBATexAlphaAA):
(FragmentTexClampAlphaAABinding):
(FragmentShaderRGBATexAlphaMask):
(FragmentShaderRGBATexAlphaMaskAA):
(FragmentShaderYUVVideo):
(FragmentShaderColor):
(FragmentShaderCheckerboard):
* platform/graphics/chromium/TextureCopier.cpp:
(WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
(WebCore::AcceleratedTextureCopier::copyTexture):
* platform/graphics/chromium/TextureCopier.h:
(WebCore::AcceleratedTextureCopier::create):
(AcceleratedTextureCopier):

Source/WebKit/chromium:

Fixing the build error.

* tests/TextureCopierTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Checkerboard shown when clicking on error page buttons
https://bugs.webkit.org/show_bug.cgi?id=90152
RIM PR #161867

Reviewed by George Staikos.

r121514 just made the race occur in lower possibility but can't avoid it.
This path is using another approach to fix the problem. When we are resetting
backingstore while committing a page we need to suspend backingstore and
screen update to make sure no other threads can update backingstore and screen.

* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::resetTiles):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::setLoadState):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
disable failing mock-chromium-mac python unit tests

Unreviewed, build fix.

Disable these tests until I can figure out why they're failing
on the bots.

* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(PortTest.disabled_test_chromium_mac_lion):
(PortTest.disabled_test_chromium_mac_lion_in_test_shell_mode):

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

* platform/chromium/TestExpectations: Add TEXT to http/tests/misc/last-modified-parsing.htl

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