diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-04 20:06:02 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-04 20:06:02 +0000 |
commit | cc290f902d239d9373db36787cd51e8bdd00eb68 (patch) | |
tree | 535d112e9cca7c22f8474e0c43285597fa13c704 /content/renderer | |
parent | 7568877302c9ef1e69e2939d345a52a91872a086 (diff) | |
download | chromium_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.cc | 14 | ||||
-rw-r--r-- | content/renderer/render_view_impl.h | 5 |
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; |