| Index: android_webview/browser/browser_view_renderer.cc
|
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
|
| index c2de48b16c75b110ef37d3cf5a35e1e94adc9310..3d4bc93f982c43a169ce7daba5e38193e2897cb1 100644
|
| --- a/android_webview/browser/browser_view_renderer.cc
|
| +++ b/android_webview/browser/browser_view_renderer.cc
|
| @@ -10,8 +10,10 @@
|
| #include "base/logging.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/stringprintf.h"
|
| +#include "base/supports_user_data.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| #include "cc/output/compositor_frame.h"
|
| +#include "content/public/browser/web_contents.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "gpu/command_buffer/service/gpu_switches.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| @@ -34,6 +36,26 @@ const size_t kBytesPerPixel = 4;
|
| const size_t kMemoryAllocationStep = 5 * 1024 * 1024;
|
| uint64 g_memory_override_in_bytes = 0u;
|
|
|
| +const void* kBrowserViewRendererUserDataKey = &kBrowserViewRendererUserDataKey;
|
| +
|
| +class BrowserViewRendererUserData : public base::SupportsUserData::Data {
|
| + public:
|
| + BrowserViewRendererUserData(BrowserViewRenderer* ptr) : bvr_(ptr) {}
|
| +
|
| + static BrowserViewRenderer* GetBrowserViewRenderer(
|
| + content::WebContents* web_contents) {
|
| + if (!web_contents)
|
| + return NULL;
|
| + BrowserViewRendererUserData* data =
|
| + static_cast<BrowserViewRendererUserData*>(
|
| + web_contents->GetUserData(kBrowserViewRendererUserDataKey));
|
| + return data ? data->bvr_ : NULL;
|
| + }
|
| +
|
| + private:
|
| + BrowserViewRenderer* bvr_;
|
| +};
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -52,6 +74,12 @@ void BrowserViewRenderer::CalculateTileMemoryPolicy() {
|
| }
|
| }
|
|
|
| +// static
|
| +BrowserViewRenderer* BrowserViewRenderer::FromWebContents(
|
| + content::WebContents* web_contents) {
|
| + return BrowserViewRendererUserData::GetBrowserViewRenderer(web_contents);
|
| +}
|
| +
|
| BrowserViewRenderer::BrowserViewRenderer(
|
| BrowserViewRendererClient* client,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner)
|
| @@ -77,6 +105,12 @@ BrowserViewRenderer::BrowserViewRenderer(
|
| BrowserViewRenderer::~BrowserViewRenderer() {
|
| }
|
|
|
| +void BrowserViewRenderer::RegisterWithWebContents(
|
| + content::WebContents* web_contents) {
|
| + web_contents->SetUserData(kBrowserViewRendererUserDataKey,
|
| + new BrowserViewRendererUserData(this));
|
| +}
|
| +
|
| SharedRendererState* BrowserViewRenderer::GetAwDrawGLViewContext() {
|
| return &shared_renderer_state_;
|
| }
|
|
|