diff options
author | Torne (Richard Coles) <torne@google.com> | 2014-06-20 17:27:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-06-20 03:04:09 +0000 |
commit | bedf4e4bc5d190729c1ee70e234a6c5cd2414df2 (patch) | |
tree | 24c35bbc44794025fe10c13e4792c2fb9f8bf78d | |
parent | c3d558b55a255f032811635801003e342cc56597 (diff) | |
parent | d9cda1802d6209d4b76f3a57f2b0b663e5457837 (diff) | |
download | webview-l-preview.tar.gz |
Merge "Merge up to 6904764 from chromium-dev."l-preview
-rw-r--r-- | chromium/java/com/android/webview/chromium/WebViewChromium.java | 79 |
1 files changed, 44 insertions, 35 deletions
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromium.java b/chromium/java/com/android/webview/chromium/WebViewChromium.java index 954d48e..259ade8 100644 --- a/chromium/java/com/android/webview/chromium/WebViewChromium.java +++ b/chromium/java/com/android/webview/chromium/WebViewChromium.java @@ -250,7 +250,8 @@ class WebViewChromium implements WebViewProvider, private void initForReal() { mAwContents = new AwContents(mFactory.getBrowserContext(), mWebView, mWebView.getContext(), - new InternalAccessAdapter(), mContentsClientAdapter, mWebSettings.getAwSettings()); + new InternalAccessAdapter(), new WebViewNativeGLDelegate(), + mContentsClientAdapter, mWebSettings.getAwSettings()); if (mAppTargetSdkVersion >= Build.VERSION_CODES.KITKAT) { // On KK and above, favicons are automatically downloaded as the method @@ -1704,9 +1705,6 @@ class WebViewChromium implements WebViewProvider, } mAwContents.onDetachedFromWindow(); - if (mGLfunctor != null) { - mGLfunctor.detach(); - } } @Override @@ -1930,6 +1928,12 @@ class WebViewChromium implements WebViewProvider, // we won't need it again. } + @Override + public PrintDocumentAdapter createPrintDocumentAdapter() { + checkThread(); + return new AwPrintDocumentAdapter(mAwContents.getPdfExporter()); + } + // WebViewProvider.ScrollDelegate implementation ---------------------------------------------- @Override @@ -2022,10 +2026,42 @@ class WebViewChromium implements WebViewProvider, mAwContents.computeScroll(); } - @Override - public PrintDocumentAdapter createPrintDocumentAdapter() { - checkThread(); - return new AwPrintDocumentAdapter(mAwContents.getPdfExporter()); + // AwContents.NativeGLDelegate implementation -------------------------------------- + private class WebViewNativeGLDelegate implements AwContents.NativeGLDelegate { + public boolean requestDrawGL(Canvas canvas) { + return requestDrawGL(canvas, false, mWebView); + } + + // @Override + public boolean requestDrawGL(Canvas canvas, boolean waitForCompletion, + View containerView) { + if (mGLfunctor == null) { + mGLfunctor = new DrawGLFunctor(mAwContents.getAwDrawGLViewContext()); + } + boolean result = mGLfunctor.requestDrawGL((HardwareCanvas)canvas, + containerView.getViewRootImpl()); + if (result && waitForCompletion) { + Runnable r = new Runnable() { + @Override + public void run() { + } + }; + result = containerView.executeHardwareAction(r); + } + return result; + } + + // @Override + public boolean executeHardwareAction(Runnable action) { + return mWebView.executeHardwareAction(action); + } + + @Override + public void detachGLFunctor() { + if (mGLfunctor != null) { + mGLfunctor.detach(); + } + } } // AwContents.InternalAccessDelegate implementation -------------------------------------- @@ -2108,32 +2144,5 @@ class WebViewChromium implements WebViewProvider, public void setMeasuredDimension(int measuredWidth, int measuredHeight) { mWebViewPrivate.setMeasuredDimension(measuredWidth, measuredHeight); } - - public boolean requestDrawGL(Canvas canvas) { - return requestDrawGL(canvas, false); - } - - // @Override - public boolean requestDrawGL(Canvas canvas, boolean waitForCompletion) { - if (mGLfunctor == null) { - mGLfunctor = new DrawGLFunctor(mAwContents.getAwDrawGLViewContext()); - } - boolean result = mGLfunctor.requestDrawGL((HardwareCanvas)canvas, - mWebView.getViewRootImpl()); - if (result && waitForCompletion) { - Runnable r = new Runnable() { - @Override - public void run() { - } - }; - result = mWebView.executeHardwareAction(r); - } - return result; - } - - // @Override - public boolean executeHardwareAction(Runnable action) { - return mWebView.executeHardwareAction(action); - } } } |