Index: components/html_viewer/blink_platform_impl.cc |
diff --git a/components/html_viewer/blink_platform_impl.cc b/components/html_viewer/blink_platform_impl.cc |
index fbf40d3ab3ac60db81b7da6b4490111de0f11e08..981c1276a7d30b67b64af57ff926d99383c998d6 100644 |
--- a/components/html_viewer/blink_platform_impl.cc |
+++ b/components/html_viewer/blink_platform_impl.cc |
@@ -17,6 +17,7 @@ |
#include "components/html_viewer/blink_resource_constants.h" |
#include "components/html_viewer/web_clipboard_impl.h" |
#include "components/html_viewer/web_cookie_jar_impl.h" |
+#include "components/html_viewer/web_graphics_context_3d_command_buffer_impl.h" |
#include "components/html_viewer/web_socket_handle_impl.h" |
#include "components/html_viewer/web_url_loader_impl.h" |
#include "components/message_port/web_message_port_channel_impl.h" |
@@ -34,12 +35,14 @@ |
#include "third_party/WebKit/public/platform/WebWaitableEvent.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/events/gestures/blink/web_gesture_curve_impl.h" |
+#include "url/gurl.h" |
namespace html_viewer { |
namespace { |
// Allows overriding user agent scring. |
const char kUserAgentSwitch[] = "user-agent"; |
+const char kEnableWebGLSwitch[] = "enable-webgl"; |
class WebWaitableEventImpl : public blink::WebWaitableEvent { |
public: |
@@ -68,7 +71,8 @@ class WebWaitableEventImpl : public blink::WebWaitableEvent { |
BlinkPlatformImpl::BlinkPlatformImpl( |
mojo::ApplicationImpl* app, |
scheduler::RendererScheduler* renderer_scheduler) |
- : main_thread_task_runner_(renderer_scheduler->DefaultTaskRunner()), |
+ : app_(app), |
+ main_thread_task_runner_(renderer_scheduler->DefaultTaskRunner()), |
main_thread_(new scheduler::WebThreadImplForRendererScheduler( |
renderer_scheduler)) { |
if (app) { |
@@ -162,6 +166,38 @@ const unsigned char* BlinkPlatformImpl::getTraceCategoryEnabledFlag( |
return buf; |
} |
+blink::WebGraphicsContext3D* |
+BlinkPlatformImpl::createOffscreenGraphicsContext3D( |
+ const blink::WebGraphicsContext3D::Attributes& attributes, |
+ blink::WebGraphicsContext3D* shareContext) { |
+ return createOffscreenGraphicsContext3D(attributes, shareContext, nullptr); |
+} |
+ |
+blink::WebGraphicsContext3D* |
+BlinkPlatformImpl::createOffscreenGraphicsContext3D( |
+ const blink::WebGraphicsContext3D::Attributes& attributes, |
+ blink::WebGraphicsContext3D* shareContext, |
+ blink::WebGLInfo* glInfo) { |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(kEnableWebGLSwitch)) { |
Fady Samuel
2015/09/14 19:21:43
Why make this a switch?
Peng
2015/09/14 19:28:46
I tested it with some simple webgl pages, it works
|
+ return WebGraphicsContext3DCommandBufferImpl::CreateOffscreenContext( |
+ app_, GURL(attributes.topDocumentURL), attributes, shareContext, |
+ glInfo); |
+ } |
+ return nullptr; |
+} |
+ |
+blink::WebGraphicsContext3D* |
+BlinkPlatformImpl::createOffscreenGraphicsContext3D( |
+ const blink::WebGraphicsContext3D::Attributes& attributes) { |
+ return createOffscreenGraphicsContext3D(attributes, nullptr, nullptr); |
+} |
+ |
+blink::WebGraphicsContext3DProvider* |
+BlinkPlatformImpl::createSharedOffscreenGraphicsContext3DProvider() { |
+ return nullptr; |
+} |
+ |
blink::WebData BlinkPlatformImpl::loadResource(const char* resource) { |
for (size_t i = 0; i < arraysize(kDataResources); ++i) { |
if (!strcmp(resource, kDataResources[i].name)) { |