summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-04 20:06:02 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-04 20:06:02 +0000
commitcc290f902d239d9373db36787cd51e8bdd00eb68 (patch)
tree535d112e9cca7c22f8474e0c43285597fa13c704 /content/renderer
parent7568877302c9ef1e69e2939d345a52a91872a086 (diff)
downloadchromium_src-cc290f902d239d9373db36787cd51e8bdd00eb68.zip
chromium_src-cc290f902d239d9373db36787cd51e8bdd00eb68.tar.gz
chromium_src-cc290f902d239d9373db36787cd51e8bdd00eb68.tar.bz2
[content shell] manage focus synchronously from the renderer for layout tests
The majority of layout tests expects the focus to be changed instantly, so going via the browser process doesn't work. BUG=111316 R=piman@chromium.org TEST=fast/dom/Window/window-onFocus.html passes Review URL: https://codereview.chromium.org/12391061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/render_view_impl.cc14
-rw-r--r--content/renderer/render_view_impl.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 6ee6915..e29914a 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -6728,6 +6728,20 @@ unsigned RenderViewImpl::GetLocalSessionHistoryLengthForTesting() const {
return history_list_length_;
}
+void RenderViewImpl::SetFocusAndActivateForTesting(bool enable) {
+ if (enable) {
+ if (has_focus())
+ return;
+ OnSetActive(true);
+ OnSetFocus(true);
+ } else {
+ if (!has_focus())
+ return;
+ OnSetFocus(false);
+ OnSetActive(false);
+ }
+}
+
void RenderViewImpl::OnReleaseDisambiguationPopupDIB(
TransportDIB::Handle dib_handle) {
TransportDIB* dib = TransportDIB::CreateWithHandle(dib_handle);
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index 6b26d8f..41ed61e 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -403,6 +403,11 @@ class CONTENT_EXPORT RenderViewImpl
// RenderView is the currently active RenderView of a WebContents.
unsigned GetLocalSessionHistoryLengthForTesting() const;
+ // Invokes OnSetFocus and marks the widget as active depending on the value
+ // of |enable|. This is used for layout tests that need to control the focus
+ // synchronously from the renderer.
+ void SetFocusAndActivateForTesting(bool enable);
+
// IPC::Listener implementation ----------------------------------------------
virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;