| Index: chrome/renderer/render_view.cc
|
| ===================================================================
|
| --- chrome/renderer/render_view.cc (revision 71193)
|
| +++ chrome/renderer/render_view.cc (working copy)
|
| @@ -41,6 +41,7 @@
|
| #include "chrome/common/page_zoom.h"
|
| #include "chrome/common/pepper_plugin_registry.h"
|
| #include "chrome/common/render_messages.h"
|
| +#include "chrome/common/render_view_commands.h"
|
| #include "chrome/common/renderer_preferences.h"
|
| #include "chrome/common/thumbnail_score.h"
|
| #include "chrome/common/url_constants.h"
|
| @@ -1641,18 +1642,12 @@
|
| }
|
|
|
| void RenderView::OnScrollFocusedEditableNodeIntoView() {
|
| - if (!webview())
|
| - return;
|
| - WebFrame* focused_frame = webview()->focusedFrame();
|
| - if (focused_frame) {
|
| - WebDocument doc = focused_frame->document();
|
| - if (!doc.isNull()) {
|
| - WebNode node = doc.focusedNode();
|
| - if (IsEditableNode(node))
|
| - // TODO(varunjain): Change webkit API to scroll a particular node into
|
| - // view and use that API here instead.
|
| - webview()->scrollFocusedNodeIntoView();
|
| - }
|
| + WebKit::WebNode node = GetFocusedNode();
|
| + if (!node.isNull()) {
|
| + if (IsEditableNode(node))
|
| + // TODO(varunjain): Change webkit API to scroll a particular node into
|
| + // view and use that API here instead.
|
| + webview()->scrollFocusedNodeIntoView();
|
| }
|
| }
|
|
|
| @@ -2422,6 +2417,10 @@
|
| word));
|
| }
|
|
|
| +void RenderView::continuousSpellCheckingEnabledStateChanged() {
|
| + UpdateToggleSpellCheckCommandState();
|
| +}
|
| +
|
| bool RenderView::runFileChooser(
|
| const WebKit::WebFileChooserParams& params,
|
| WebFileChooserCompletion* chooser_completion) {
|
| @@ -2548,6 +2547,27 @@
|
| }
|
| }
|
|
|
| +void RenderView::UpdateToggleSpellCheckCommandState() {
|
| + bool is_enabled = false;
|
| + WebKit::WebNode node = GetFocusedNode();
|
| + if (!node.isNull())
|
| + is_enabled = IsEditableNode(node);
|
| +
|
| + RenderViewCommandCheckedState checked_state =
|
| + RENDER_VIEW_COMMAND_CHECKED_STATE_UNCHECKED;
|
| + if (is_enabled && webview()) {
|
| + WebFrame* frame = webview()->focusedFrame();
|
| + if (frame->isContinuousSpellCheckingEnabled())
|
| + checked_state = RENDER_VIEW_COMMAND_CHECKED_STATE_CHECKED;
|
| + }
|
| +
|
| + Send(new ViewHostMsg_CommandStateChanged(
|
| + routing_id_,
|
| + RENDER_VIEW_COMMAND_TOGGLE_SPELL_CHECK,
|
| + is_enabled,
|
| + checked_state));
|
| +}
|
| +
|
| void RenderView::StartNavStateSyncTimerIfNecessary() {
|
| int delay;
|
| if (send_content_state_immediately_)
|
| @@ -2624,6 +2644,8 @@
|
| webview()->accessibilityObject(),
|
| WebKit::WebAccessibilityNotificationFocusedUIElementChanged);
|
| }
|
| +
|
| + UpdateToggleSpellCheckCommandState();
|
| }
|
|
|
| void RenderView::navigateBackForwardSoon(int offset) {
|
| @@ -4596,6 +4618,19 @@
|
| return frame;
|
| }
|
|
|
| +WebNode RenderView::GetFocusedNode() const {
|
| + if (!webview())
|
| + return WebNode();
|
| + WebFrame* focused_frame = webview()->focusedFrame();
|
| + if (focused_frame) {
|
| + WebDocument doc = focused_frame->document();
|
| + if (!doc.isNull())
|
| + return doc.focusedNode();
|
| + }
|
| +
|
| + return WebNode();
|
| +}
|
| +
|
| void RenderView::SetSuggestions(const std::vector<std::string>& suggestions) {
|
| // Explicitly allow empty vector to be sent to the browser.
|
| Send(new ViewHostMsg_SetSuggestions(routing_id_, page_id_, suggestions));
|
|
|