Chromium Code Reviews| Index: content/renderer/gpu/render_widget_compositor.cc |
| diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
| index 936cb82806c0b9a8f1707312d1dc9a026d7a4018..3f2ab196c7b48e3b6832984ef77f652f2091c532 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.cc |
| +++ b/content/renderer/gpu/render_widget_compositor.cc |
| @@ -66,6 +66,7 @@ |
| #include "third_party/WebKit/public/web/WebKit.h" |
| #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" |
| #include "third_party/WebKit/public/web/WebSelection.h" |
| +#include "third_party/skia/include/core/SkImage.h" |
| #include "ui/gfx/switches.h" |
| #include "ui/gl/gl_switches.h" |
| #include "ui/native_theme/native_theme_features.h" |
| @@ -1071,6 +1072,23 @@ void RenderWidgetCompositor::setBottomControlsHeight(float height) { |
| layer_tree_host_->SetBottomControlsHeight(height); |
| } |
| +void RenderWidgetCompositor::RequestDecode( |
| + sk_sp<SkImage> image, |
| + const base::Callback<void(bool)>& callback) { |
| + layer_tree_host_->QueueImageDecode(std::move(image), callback); |
|
pdr.
2017/05/18 03:20:10
If javascript calls decode() twice on a loaded ima
vmpstr
2017/05/18 18:51:12
It issues two different promises and makes two dif
|
| + |
| + // If we're compositing synchronously, the SetNeedsCommit call which will be |
| + // issued by |layer_tree_host_| is not going to cause a commit, due to the |
| + // fact that this would make layout tests slow and cause flakiness. However, |
| + // in this case we actually need a commit to transfer the decode requests to |
| + // the impl side. So, force a commit to happen. |
| + if (CompositeIsSynchronous()) { |
| + base::ThreadTaskRunnerHandle::Get()->PostTask( |
| + FROM_HERE, base::Bind(&RenderWidgetCompositor::SynchronouslyComposite, |
| + weak_factory_.GetWeakPtr())); |
| + } |
| +} |
| + |
| void RenderWidgetCompositor::WillBeginMainFrame() { |
| delegate_->WillBeginCompositorFrame(); |
| } |