summaryrefslogtreecommitdiffstats
path: root/content/public/renderer/render_view.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/public/renderer/render_view.h')
-rw-r--r--content/public/renderer/render_view.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/content/public/renderer/render_view.h b/content/public/renderer/render_view.h
new file mode 100644
index 0000000..11431da
--- /dev/null
+++ b/content/public/renderer/render_view.h
@@ -0,0 +1,89 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_PUBLIC_RENDERER_RENDER_VIEW_H_
+#define CONTENT_PUBLIC_RENDERER_RENDER_VIEW_H_
+
+#include "base/basictypes.h"
+#include "content/common/content_export.h"
+#include "ipc/ipc_message.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebPageVisibilityState.h"
+
+class FilePath;
+struct WebPreferences;
+
+namespace WebKit {
+class WebFrame;
+class WebNode;
+class WebPlugin;
+class WebString;
+class WebView;
+struct WebContextMenuData;
+struct WebPluginParams;
+}
+
+namespace webkit {
+struct WebPluginInfo;
+}
+
+namespace content : public IPC::Message::Sender {
+
+class CONTENT_EXPORT RenderView {
+ public:
+ // Returns the RenderView containing the given WebView.
+ static RenderView* FromWebView(WebKit::WebView* webview);
+
+ virtual ~RenderView() {}
+
+ // Get the routing ID of the view.
+ virtual int GetRoutingId() const = 0;
+
+ // Page IDs allow the browser to identify pages in each renderer process for
+ // keeping back/forward history in sync.
+ // Note that this is NOT updated for every main frame navigation, only for
+ // "regular" navigations that go into session history. In particular, client
+ // redirects, like the page cycler uses (document.location.href="foo") do not
+ // count as regular navigations and do not increment the page id.
+ virtual int GetPageId() = 0;
+
+ // Gets WebKit related preferences associated with this view.
+ virtual WebPreferences& GetWebkitPreferences() = 0;
+
+ // Returns the associated WebView. May return NULL when the view is closing.
+ virtual WebKit::WebView* GetWebView() = 0;
+
+ // Gets the focused node. If no such node exists then the node will be isNull.
+ virtual WebKit::WebNode GetFocusedNode() const = 0;
+
+ // Gets the node that the context menu was pressed over.
+ virtual WebKit::WebNode GetContextMenuNode() const = 0;
+
+ // Returns true if the parameter node is a textfield, text area or a content
+ // editable div.
+ virtual bool IsEditableNode(const WebKit::WebNode& node) = 0;
+
+ // Create a new NPAPI/Pepper plugin depending on |info|. Returns NULL if no
+ // plugin was found.
+ virtual WebKit::WebPlugin* CreatePlugin(
+ WebKit::WebFrame* frame,
+ const webkit::WebPluginInfo& info,
+ const WebKit::WebPluginParams& params) = 0;
+
+ // Shows a context menu with commands relevant to a specific element on
+ // the given frame. Additional context data is supplied.
+ virtual void ShowContextMenu(WebKit::WebFrame* frame,
+ const WebKit::WebContextMenuData& data) = 0;
+
+ // Returns the current visibility of the WebView.
+ virtual WebPageVisibilityState GetVisibilityState() const = 0;
+
+ // Displays a modal alert dialog containing the given message. Returns
+ // once the user dismisses the dialog.
+ virtual void RunModalAlertDialog(WebKit::WebFrame* frame,
+ const WebKit::WebString& message) = 0;
+};
+
+} // namespace content
+
+#endif // CONTENT_PUBLIC_RENDERER_RENDER_VIEW_H_