mesa gn build: suppress -Wstring-conversion warnings
[chromium-blink-merge.git] / content / renderer / pepper / pepper_webplugin_impl.h
blob8a6965da7b9379783132eae86d1de68fb82f324a
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.
5 #ifndef CONTENT_RENDERER_PEPPER_PPEPPER_WEBPLUGIN_IMPL_H_
6 #define CONTENT_RENDERER_PEPPER_PPEPPER_WEBPLUGIN_IMPL_H_
8 #include <string>
9 #include <vector>
11 #include "base/memory/scoped_ptr.h"
12 #include "base/memory/weak_ptr.h"
13 #include "base/sequenced_task_runner_helpers.h"
14 #include "ppapi/c/pp_var.h"
15 #include "third_party/WebKit/public/web/WebPlugin.h"
16 #include "ui/gfx/rect.h"
18 struct _NPP;
20 namespace blink {
21 struct WebPluginParams;
22 struct WebPrintParams;
25 namespace content {
27 class PepperPluginInstanceImpl;
28 class PluginModule;
29 class PPB_URLLoader_Impl;
30 class RenderFrameImpl;
32 class PepperWebPluginImpl : public blink::WebPlugin {
33 public:
34 PepperWebPluginImpl(PluginModule* module,
35 const blink::WebPluginParams& params,
36 RenderFrameImpl* render_frame);
38 PepperPluginInstanceImpl* instance() { return instance_.get(); }
40 // blink::WebPlugin implementation.
41 virtual blink::WebPluginContainer* container() const;
42 virtual bool initialize(blink::WebPluginContainer* container);
43 virtual void destroy();
44 virtual v8::Local<v8::Object> v8ScriptableObject(
45 v8::Isolate* isolate) override;
46 virtual bool getFormValue(blink::WebString& value);
47 virtual void paint(blink::WebCanvas* canvas, const blink::WebRect& rect);
48 virtual void updateGeometry(
49 const blink::WebRect& frame_rect,
50 const blink::WebRect& clip_rect,
51 const blink::WebVector<blink::WebRect>& cut_outs_rects,
52 bool is_visible);
53 virtual void updateFocus(bool focused);
54 virtual void updateVisibility(bool visible);
55 virtual bool acceptsInputEvents();
56 virtual bool handleInputEvent(const blink::WebInputEvent& event,
57 blink::WebCursorInfo& cursor_info);
58 virtual void didReceiveResponse(const blink::WebURLResponse& response);
59 virtual void didReceiveData(const char* data, int data_length);
60 virtual void didFinishLoading();
61 virtual void didFailLoading(const blink::WebURLError&);
62 virtual void didFinishLoadingFrameRequest(const blink::WebURL& url,
63 void* notify_data);
64 virtual void didFailLoadingFrameRequest(const blink::WebURL& url,
65 void* notify_data,
66 const blink::WebURLError& error);
67 virtual bool hasSelection() const;
68 virtual blink::WebString selectionAsText() const;
69 virtual blink::WebString selectionAsMarkup() const;
70 virtual blink::WebURL linkAtPosition(const blink::WebPoint& position) const;
71 virtual bool getPrintPresetOptionsFromDocument(
72 blink::WebPrintPresetOptions* preset_options);
73 virtual void setZoomLevel(double level, bool text_only);
74 virtual bool startFind(const blink::WebString& search_text,
75 bool case_sensitive,
76 int identifier);
77 virtual void selectFindResult(bool forward);
78 virtual void stopFind();
79 virtual bool supportsPaginatedPrint() override;
80 virtual bool isPrintScalingDisabled() override;
82 virtual int printBegin(const blink::WebPrintParams& print_params) override;
83 virtual bool printPage(int page_number, blink::WebCanvas* canvas) override;
84 virtual void printEnd() override;
86 virtual bool canRotateView() override;
87 virtual void rotateView(RotationType type) override;
88 virtual bool isPlaceholder() override;
90 private:
91 friend class base::DeleteHelper<PepperWebPluginImpl>;
93 virtual ~PepperWebPluginImpl();
94 struct InitData;
96 scoped_ptr<InitData> init_data_; // Cleared upon successful initialization.
97 // True if the instance represents the entire document in a frame instead of
98 // being an embedded resource.
99 bool full_frame_;
100 scoped_refptr<PepperPluginInstanceImpl> instance_;
101 gfx::Rect plugin_rect_;
102 PP_Var instance_object_;
103 blink::WebPluginContainer* container_;
105 DISALLOW_COPY_AND_ASSIGN(PepperWebPluginImpl);
108 } // namespace content
110 #endif // CONTENT_RENDERER_PEPPER_PPEPPER_WEBPLUGIN_IMPL_H_