Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3167)

Unified Diff: android_webview/browser/context_provider_in_process.cc

Issue 1083843002: android_webview: Remove dependency on webkit's ContextProviderInProcess. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: it links Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/browser/context_provider_in_process.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/browser/context_provider_in_process.cc
diff --git a/ui/compositor/test/in_process_context_provider.cc b/android_webview/browser/context_provider_in_process.cc
similarity index 58%
copy from ui/compositor/test/in_process_context_provider.cc
copy to android_webview/browser/context_provider_in_process.cc
index d59736ff86d2730a1cf6cb39897fe317b73bd4f4..bea9f1cfbd3298d25718a07006df71b19036fdb4 100644
--- a/ui/compositor/test/in_process_context_provider.cc
+++ b/android_webview/browser/context_provider_in_process.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/compositor/test/in_process_context_provider.h"
+#include "android_webview/browser/context_provider_in_process.h"
#include "base/bind.h"
#include "base/callback_helpers.h"
@@ -17,7 +17,7 @@
#include "third_party/skia/include/gpu/GrContext.h"
#include "third_party/skia/include/gpu/gl/GrGLInterface.h"
-namespace ui {
+namespace android_webview {
namespace {
@@ -38,76 +38,28 @@ base::LazyInstance<GLES2Initializer> g_gles2_initializer =
} // namespace
// static
-scoped_refptr<InProcessContextProvider> InProcessContextProvider::Create(
- const gpu::gles2::ContextCreationAttribHelper& attribs,
- bool lose_context_when_out_of_memory,
- gfx::AcceleratedWidget window,
+scoped_refptr<ContextProviderInProcess> ContextProviderInProcess::Create(
tfarina 2015/04/19 02:46:33 Which parameters should I pass here?
boliu 2015/04/19 08:40:07 You can hardcode all of these values I think. Ther
tfarina 2015/04/19 13:29:53 Done.
const std::string& debug_name) {
- return new InProcessContextProvider(
- attribs, lose_context_when_out_of_memory, window, debug_name);
+ return new ContextProviderInProcess(debug_name);
}
-// static
-scoped_refptr<InProcessContextProvider>
-InProcessContextProvider::CreateOffscreen(
- bool lose_context_when_out_of_memory) {
- gpu::gles2::ContextCreationAttribHelper attribs;
- attribs.alpha_size = 8;
- attribs.blue_size = 8;
- attribs.green_size = 8;
- attribs.red_size = 8;
- attribs.depth_size = 0;
- attribs.stencil_size = 8;
- attribs.samples = 0;
- attribs.sample_buffers = 0;
- attribs.fail_if_major_perf_caveat = false;
- attribs.bind_generates_resource = false;
- return new InProcessContextProvider(
- attribs, lose_context_when_out_of_memory, gfx::kNullAcceleratedWidget,
- "Offscreen");
-}
-
-InProcessContextProvider::InProcessContextProvider(
- const gpu::gles2::ContextCreationAttribHelper& attribs,
- bool lose_context_when_out_of_memory,
- gfx::AcceleratedWidget window,
+ContextProviderInProcess::ContextProviderInProcess(
const std::string& debug_name)
- : attribs_(attribs),
- lose_context_when_out_of_memory_(lose_context_when_out_of_memory),
- window_(window),
- debug_name_(debug_name),
+ : debug_name_(debug_name),
destroyed_(false) {
DCHECK(main_thread_checker_.CalledOnValidThread());
context_thread_checker_.DetachFromThread();
}
-InProcessContextProvider::~InProcessContextProvider() {
+ContextProviderInProcess::~ContextProviderInProcess() {
DCHECK(main_thread_checker_.CalledOnValidThread() ||
context_thread_checker_.CalledOnValidThread());
}
-bool InProcessContextProvider::BindToCurrentThread() {
+bool ContextProviderInProcess::BindToCurrentThread() {
// This is called on the thread the context will be used.
DCHECK(context_thread_checker_.CalledOnValidThread());
- if (!context_) {
- gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
tfarina 2015/04/19 02:46:33 What should goes in, in our implementation?
boliu 2015/04/19 08:40:07 Create a GLInProcessContext and use that directly.
tfarina 2015/04/19 13:29:53 Done.
- context_.reset(gpu::GLInProcessContext::Create(
- nullptr, /* service */
- nullptr, /* surface */
- !window_, /* is_offscreen */
- window_, gfx::Size(1, 1), nullptr, /* share_context */
- true, /* share_resources */
- attribs_, gpu_preference, gpu::GLInProcessContextSharedMemoryLimits(),
- nullptr, nullptr));
-
- if (!context_)
- return false;
-
- context_->SetContextLostCallback(base::Bind(
- &InProcessContextProvider::OnLostContext, base::Unretained(this)));
- }
-
capabilities_.gpu = context_->GetImplementation()->capabilities();
std::string unique_context_name =
@@ -119,18 +71,18 @@ bool InProcessContextProvider::BindToCurrentThread() {
}
cc::ContextProvider::Capabilities
-InProcessContextProvider::ContextCapabilities() {
+ContextProviderInProcess::ContextCapabilities() {
DCHECK(context_thread_checker_.CalledOnValidThread());
return capabilities_;
}
-gpu::gles2::GLES2Interface* InProcessContextProvider::ContextGL() {
+gpu::gles2::GLES2Interface* ContextProviderInProcess::ContextGL() {
DCHECK(context_thread_checker_.CalledOnValidThread());
return context_->GetImplementation();
}
-gpu::ContextSupport* InProcessContextProvider::ContextSupport() {
+gpu::ContextSupport* ContextProviderInProcess::ContextSupport() {
DCHECK(context_thread_checker_.CalledOnValidThread());
return context_->GetImplementation();
@@ -138,12 +90,12 @@ gpu::ContextSupport* InProcessContextProvider::ContextSupport() {
static void BindGrContextCallback(const GrGLInterface* interface) {
cc::ContextProvider* context_provider =
- reinterpret_cast<InProcessContextProvider*>(interface->fCallbackData);
+ reinterpret_cast<ContextProviderInProcess*>(interface->fCallbackData);
gles2::SetGLContext(context_provider->ContextGL());
}
-class GrContext* InProcessContextProvider::GrContext() {
+class GrContext* ContextProviderInProcess::GrContext() {
DCHECK(context_thread_checker_.CalledOnValidThread());
if (gr_context_)
@@ -165,24 +117,24 @@ class GrContext* InProcessContextProvider::GrContext() {
return gr_context_.get();
}
-void InProcessContextProvider::SetupLock() {
+void ContextProviderInProcess::SetupLock() {
}
-base::Lock* InProcessContextProvider::GetLock() {
+base::Lock* ContextProviderInProcess::GetLock() {
return &context_lock_;
}
-bool InProcessContextProvider::IsContextLost() {
+bool ContextProviderInProcess::IsContextLost() {
DCHECK(context_thread_checker_.CalledOnValidThread());
base::AutoLock lock(destroyed_lock_);
return destroyed_;
}
-void InProcessContextProvider::VerifyContexts() {
+void ContextProviderInProcess::VerifyContexts() {
}
-void InProcessContextProvider::DeleteCachedResources() {
+void ContextProviderInProcess::DeleteCachedResources() {
DCHECK(context_thread_checker_.CalledOnValidThread());
if (gr_context_) {
@@ -192,24 +144,24 @@ void InProcessContextProvider::DeleteCachedResources() {
}
}
-bool InProcessContextProvider::DestroyedOnMainThread() {
+bool ContextProviderInProcess::DestroyedOnMainThread() {
DCHECK(main_thread_checker_.CalledOnValidThread());
base::AutoLock lock(destroyed_lock_);
return destroyed_;
}
-void InProcessContextProvider::SetLostContextCallback(
+void ContextProviderInProcess::SetLostContextCallback(
const LostContextCallback& lost_context_callback) {
lost_context_callback_ = lost_context_callback;
}
-void InProcessContextProvider::SetMemoryPolicyChangedCallback(
+void ContextProviderInProcess::SetMemoryPolicyChangedCallback(
const MemoryPolicyChangedCallback& memory_policy_changed_callback) {
// There's no memory manager for the in-process implementation.
}
-void InProcessContextProvider::OnLostContext() {
+void ContextProviderInProcess::OnLostContext() {
DCHECK(context_thread_checker_.CalledOnValidThread());
{
base::AutoLock lock(destroyed_lock_);
« no previous file with comments | « android_webview/browser/context_provider_in_process.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698