| Index: webkit/support/test_webkit_platform_support.cc
|
| diff --git a/webkit/support/test_webkit_platform_support.cc b/webkit/support/test_webkit_platform_support.cc
|
| index b61c701853de30538d24ee4f878aaa0260c871cd..23c36fc6e26a7d4b6295c09e171137538b33a80f 100644
|
| --- a/webkit/support/test_webkit_platform_support.cc
|
| +++ b/webkit/support/test_webkit_platform_support.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/path_service.h"
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "cc/context_provider.h"
|
| #include "cc/thread_impl.h"
|
| #include "media/base/media.h"
|
| #include "net/cookies/cookie_monster.h"
|
| @@ -40,6 +41,7 @@
|
| #include "webkit/glue/webclipboard_impl.h"
|
| #include "webkit/glue/webkit_glue.h"
|
| #include "webkit/glue/webkitplatformsupport_impl.h"
|
| +#include "webkit/gpu/test_context_provider_factory.h"
|
| #include "webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h"
|
| #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h"
|
| #include "webkit/plugins/npapi/plugin_list.h"
|
| @@ -73,7 +75,8 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport(bool unit_test_mode,
|
| WebKit::Platform* shadow_platform_delegate)
|
| : unit_test_mode_(unit_test_mode),
|
| shadow_platform_delegate_(shadow_platform_delegate),
|
| - hyphen_dictionary_(NULL) {
|
| + hyphen_dictionary_(NULL),
|
| + context_provider_factory_(NULL) {
|
| v8::V8::SetCounterFunction(base::StatsTable::FindLocation);
|
|
|
| WebKit::initialize(this);
|
| @@ -157,6 +160,8 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport(bool unit_test_mode,
|
| TestWebKitPlatformSupport::~TestWebKitPlatformSupport() {
|
| if (hyphen_dictionary_)
|
| hnj_hyphen_free(hyphen_dictionary_);
|
| + if (context_provider_factory_)
|
| + webkit::gpu::TestContextProviderFactory::DestroyInstance();
|
| }
|
|
|
| WebKit::WebMimeRegistry* TestWebKitPlatformSupport::mimeRegistry() {
|
| @@ -377,6 +382,28 @@ TestWebKitPlatformSupport::createOffscreenGraphicsContext3D(
|
| return NULL;
|
| }
|
|
|
| +WebKit::WebGraphicsContext3D*
|
| +TestWebKitPlatformSupport::sharedOffscreenGraphicsContext3D() {
|
| + if (!context_provider_factory_) {
|
| + context_provider_factory_ =
|
| + webkit::gpu::TestContextProviderFactory::GetInstance();
|
| + }
|
| +
|
| + main_thread_contexts_ =
|
| + context_provider_factory_->OffscreenContextProviderForMainThread();
|
| + if (!main_thread_contexts_->InitializeOnMainThread())
|
| + return NULL;
|
| + if (!main_thread_contexts_->BindToCurrentThread())
|
| + return NULL;
|
| + return main_thread_contexts_->Context3d();
|
| +}
|
| +
|
| +GrContext* TestWebKitPlatformSupport::sharedOffscreenGrContext() {
|
| + if (!main_thread_contexts_)
|
| + return NULL;
|
| + return main_thread_contexts_->GrContext();
|
| +}
|
| +
|
| bool TestWebKitPlatformSupport::canAccelerate2dCanvas() {
|
| // We supply an OS-MESA based context for accelarated 2d
|
| // canvas, which should always work.
|
|
|