diff options
author | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-13 05:36:37 +0000 |
---|---|---|
committer | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-13 05:36:37 +0000 |
commit | 3af0e712abed11b4ee8ff97442e4554094a3279f (patch) | |
tree | bcb006897801920a3546c2beb469aaa5d862c598 /android_webview | |
parent | a0203789c00ca108311f34e237e5a979a3995da0 (diff) | |
download | chromium_src-3af0e712abed11b4ee8ff97442e4554094a3279f.zip chromium_src-3af0e712abed11b4ee8ff97442e4554094a3279f.tar.gz chromium_src-3af0e712abed11b4ee8ff97442e4554094a3279f.tar.bz2 |
Revert 182106
Failures:
http://build.chromium.org/p/chromium.linux/buildstatus?builder=Android%20Tests%20%28dbg%29&number=7589
> Expose the capturePicture feature in RenderView for Android WebView legacy API support.
>
> These methods are required to implement WebView.capturePicture and WebView.PictureListener.onNewPicture.
> - http://developer.android.com/reference/android/webkit/WebView.html#capturePicture()
> - http://developer.android.com/reference/android/webkit/WebView.PictureListener.html
>
> BUG=167908,167913
>
> Review URL: https://chromiumcodereview.appspot.com/11861008
TBR=leandrogracia@chromium.org
Review URL: https://codereview.chromium.org/12211149
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182124 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/lib/main/aw_main_delegate.cc | 9 | ||||
-rw-r--r-- | android_webview/native/aw_contents.cc | 5 | ||||
-rw-r--r-- | android_webview/renderer/aw_render_view_ext.cc | 33 | ||||
-rw-r--r-- | android_webview/renderer/aw_render_view_ext.h | 7 |
4 files changed, 34 insertions, 20 deletions
diff --git a/android_webview/lib/main/aw_main_delegate.cc b/android_webview/lib/main/aw_main_delegate.cc index 2a8954f..5c6399b 100644 --- a/android_webview/lib/main/aw_main_delegate.cc +++ b/android_webview/lib/main/aw_main_delegate.cc @@ -31,6 +31,15 @@ bool AwMainDelegate::BasicStartupComplete(int* exit_code) { // Set the command line to enable synchronous API compatibility. command_line->AppendSwitch(switches::kEnableWebViewSynchronousAPIs); + // TODO(leandrogracia): enable with the CapturePicture API support. + if (false) { + // Enable impl-side painting in the compositor. + command_line->AppendSwitch(switches::kForceCompositingMode); + command_line->AppendSwitch(switches::kEnableThreadedCompositing); + command_line->AppendSwitch(switches::kEnableDeferredImageDecoding); + command_line->AppendSwitch(cc::switches::kEnableImplSidePainting); + } + return false; } diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc index eb2d6ec..1fd2ec1 100644 --- a/android_webview/native/aw_contents.cc +++ b/android_webview/native/aw_contents.cc @@ -554,8 +554,9 @@ void AwContents::Destroy(JNIEnv* env, jobject obj) { void SetAwDrawSWFunctionTable(JNIEnv* env, jclass, jint function_table) { g_draw_sw_functions = reinterpret_cast<AwDrawSWFunctionTable*>(function_table); - g_is_skia_version_compatible = - g_draw_sw_functions->is_skia_version_compatible(&SkGraphics::GetVersion); + // TODO(leandrogracia): uncomment once the glue layer implements this method. + //g_is_skia_version_compatible = + // g_draw_sw_functions->is_skia_version_compatible(&SkGraphics::GetVersion); LOG_IF(WARNING, !g_is_skia_version_compatible) << "Skia native versions are not compatible."; } diff --git a/android_webview/renderer/aw_render_view_ext.cc b/android_webview/renderer/aw_render_view_ext.cc index a193d89..b381352 100644 --- a/android_webview/renderer/aw_render_view_ext.cc +++ b/android_webview/renderer/aw_render_view_ext.cc @@ -15,7 +15,6 @@ #include "content/public/renderer/android_content_detection_prefixes.h" #include "content/public/renderer/document_state.h" #include "content/public/renderer/render_view.h" -#include "skia/ext/refptr.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebURL.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebVector.h" @@ -28,7 +27,6 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebNodeList.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" -#include "third_party/skia/include/core/SkPicture.h" namespace android_webview { @@ -129,13 +127,18 @@ void PopulateHitTestData(const GURL& absolute_link_url, AwRenderViewExt::AwRenderViewExt(content::RenderView* render_view) : content::RenderViewObserver(render_view) { render_view->GetWebView()->setPermissionClient(this); + // TODO(leandrogracia): enable once the feature is available in RenderView. // TODO(leandrogracia): remove when SW rendering uses Ubercompositor. // Until then we need the callback enabled for SW mode invalidation. // http://crbug.com/170086. - capture_picture_enabled_ = true; + //render_view->SetCapturePictureCallback( + // base::Bind(&AwRenderViewExt::OnPictureUpdate, AsWeakPtr())); } AwRenderViewExt::~AwRenderViewExt() { + // TODO(leandrogracia): enable once the feature is available in RenderView. + //render_view()->SetCapturePictureCallback( + // content::RenderView::CapturePictureCallback()); RendererPictureMap::GetInstance()->ClearRendererPicture(routing_id()); } @@ -226,15 +229,6 @@ void AwRenderViewExt::FocusedNodeChanged(const WebKit::WebNode& node) { Send(new AwViewHostMsg_UpdateHitTestData(routing_id(), data)); } -void AwRenderViewExt::DidCommitCompositorFrame() { - if (!capture_picture_enabled_) - return; - - skia::RefPtr<SkPicture> picture = render_view()->CapturePicture(); - RendererPictureMap::GetInstance()->SetRendererPicture(routing_id(), picture); - Send(new AwViewHostMsg_PictureUpdated(routing_id())); -} - void AwRenderViewExt::OnDoHitTest(int view_x, int view_y) { if (!render_view() || !render_view()->GetWebView()) return; @@ -257,12 +251,21 @@ void AwRenderViewExt::OnDoHitTest(int view_x, int view_y) { } void AwRenderViewExt::OnEnableCapturePictureCallback(bool enable) { - capture_picture_enabled_ = enable; + // TODO(leandrogracia): enable once the feature is available in RenderView. + //render_view()->SetCapturePictureCallback(enable ? + // base::Bind(&AwRenderViewExt::OnPictureUpdate, AsWeakPtr()) : + // content::RenderView::CapturePictureCallback()); +} + +void AwRenderViewExt::OnPictureUpdate(skia::RefPtr<SkPicture> picture) { + RendererPictureMap::GetInstance()->SetRendererPicture(routing_id(), picture); + Send(new AwViewHostMsg_PictureUpdated(routing_id())); } void AwRenderViewExt::OnCapturePictureSync() { - RendererPictureMap::GetInstance()->SetRendererPicture( - routing_id(), render_view()->CapturePicture()); + // TODO(leandrogracia): enable once the feature is available in RenderView. + //RendererPictureMap::GetInstance()->SetRendererPicture( + // routing_id(), render_view()->CapturePicture()); } } // namespace android_webview diff --git a/android_webview/renderer/aw_render_view_ext.h b/android_webview/renderer/aw_render_view_ext.h index 80b9d20..8efa5b3 100644 --- a/android_webview/renderer/aw_render_view_ext.h +++ b/android_webview/renderer/aw_render_view_ext.h @@ -9,7 +9,9 @@ #include "base/compiler_specific.h" #include "base/memory/weak_ptr.h" #include "content/public/renderer/render_view_observer.h" +#include "skia/ext/refptr.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebPermissionClient.h" +#include "third_party/skia/include/core/SkPicture.h" namespace WebKit { @@ -40,7 +42,6 @@ class AwRenderViewExt : public content::RenderViewObserver, virtual void DidCommitProvisionalLoad(WebKit::WebFrame* frame, bool is_new_navigation) OVERRIDE; virtual void FocusedNodeChanged(const WebKit::WebNode& node) OVERRIDE; - virtual void DidCommitCompositorFrame() OVERRIDE; void OnDocumentHasImagesRequest(int id); @@ -48,6 +49,8 @@ class AwRenderViewExt : public content::RenderViewObserver, void OnEnableCapturePictureCallback(bool enable); + void OnPictureUpdate(skia::RefPtr<SkPicture> picture); + void OnCapturePictureSync(); // WebKit::WebPermissionClient implementation. @@ -55,8 +58,6 @@ class AwRenderViewExt : public content::RenderViewObserver, bool enabledPerSettings, const WebKit::WebURL& imageURL) OVERRIDE; - bool capture_picture_enabled_; - DISALLOW_COPY_AND_ASSIGN(AwRenderViewExt); }; |