• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef ANDROID_WEBVIEW_RENDERER_AW_RENDER_VIEW_EXT_H_
6 #define ANDROID_WEBVIEW_RENDERER_AW_RENDER_VIEW_EXT_H_
7 
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "base/timer/timer.h"
11 #include "content/public/renderer/render_view_observer.h"
12 #include "third_party/skia/include/core/SkColor.h"
13 #include "ui/gfx/size.h"
14 
15 namespace blink {
16 
17 class WebNode;
18 class WebURL;
19 
20 }  // namespace blink
21 
22 namespace android_webview {
23 
24 // Render process side of AwRenderViewHostExt, this provides cross-process
25 // implementation of miscellaneous WebView functions that we need to poke
26 // WebKit directly to implement (and that aren't needed in the chrome app).
27 class AwRenderViewExt : public content::RenderViewObserver {
28  public:
29   static void RenderViewCreated(content::RenderView* render_view);
30 
31  private:
32   AwRenderViewExt(content::RenderView* render_view);
33   virtual ~AwRenderViewExt();
34 
35   // RenderView::Observer:
36   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
37   virtual void FocusedNodeChanged(const blink::WebNode& node) OVERRIDE;
38   virtual void DidCommitCompositorFrame() OVERRIDE;
39   virtual void DidUpdateLayout() OVERRIDE;
40   virtual void Navigate(const GURL& url) OVERRIDE;
41 
42   void OnDocumentHasImagesRequest(int id);
43 
44   void OnDoHitTest(int view_x, int view_y);
45 
46   void OnSetTextZoomFactor(float zoom_factor);
47 
48   void OnResetScrollAndScaleState();
49 
50   void OnSetInitialPageScale(double page_scale_factor);
51 
52   void OnSetBackgroundColor(SkColor c);
53 
54   void UpdatePageScaleFactor();
55 
56   void CheckContentsSize();
57 
58   bool capture_picture_enabled_;
59 
60   float page_scale_factor_;
61 
62   gfx::Size last_sent_contents_size_;
63   base::OneShotTimer<AwRenderViewExt> check_contents_size_timer_;
64 
65   DISALLOW_COPY_AND_ASSIGN(AwRenderViewExt);
66 };
67 
68 }  // namespace android_webview
69 
70 #endif  // ANDROID_WEBVIEW_RENDERER_AW_RENDER_VIEW_EXT_H_
71