Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: content/renderer/render_frame_impl.h

Issue 273423004: Migrate accessibility from RenderView to RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/gtest_prod_util.h" 12 #include "base/gtest_prod_util.h"
13 #include "base/id_map.h" 13 #include "base/id_map.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/observer_list.h" 15 #include "base/observer_list.h"
16 #include "base/process/process_handle.h" 16 #include "base/process/process_handle.h"
17 #include "content/common/accessibility_mode_enums.h"
17 #include "content/common/mojo/service_registry_impl.h" 18 #include "content/common/mojo/service_registry_impl.h"
18 #include "content/public/common/javascript_message_type.h" 19 #include "content/public/common/javascript_message_type.h"
19 #include "content/public/common/referrer.h" 20 #include "content/public/common/referrer.h"
20 #include "content/public/renderer/render_frame.h" 21 #include "content/public/renderer/render_frame.h"
21 #include "content/renderer/media/webmediaplayer_delegate.h" 22 #include "content/renderer/media/webmediaplayer_delegate.h"
22 #include "content/renderer/render_frame_proxy.h" 23 #include "content/renderer/render_frame_proxy.h"
23 #include "content/renderer/renderer_webcookiejar_impl.h" 24 #include "content/renderer/renderer_webcookiejar_impl.h"
24 #include "ipc/ipc_message.h" 25 #include "ipc/ipc_message.h"
26 #include "third_party/WebKit/public/web/WebAXObject.h"
25 #include "third_party/WebKit/public/web/WebDataSource.h" 27 #include "third_party/WebKit/public/web/WebDataSource.h"
26 #include "third_party/WebKit/public/web/WebFrameClient.h" 28 #include "third_party/WebKit/public/web/WebFrameClient.h"
27 #include "third_party/WebKit/public/web/WebHistoryCommitType.h" 29 #include "third_party/WebKit/public/web/WebHistoryCommitType.h"
28 #include "ui/gfx/range/range.h" 30 #include "ui/gfx/range/range.h"
29 31
30 #if defined(OS_ANDROID) 32 #if defined(OS_ANDROID)
31 #include "content/renderer/media/android/renderer_media_player_manager.h" 33 #include "content/renderer/media/android/renderer_media_player_manager.h"
32 #endif 34 #endif
33 35
34 class TransportDIB; 36 class TransportDIB;
(...skipping 21 matching lines...) Expand all
56 58
57 namespace content { 59 namespace content {
58 60
59 class ChildFrameCompositingHelper; 61 class ChildFrameCompositingHelper;
60 class GeolocationDispatcher; 62 class GeolocationDispatcher;
61 class MediaStreamRendererFactory; 63 class MediaStreamRendererFactory;
62 class MidiDispatcher; 64 class MidiDispatcher;
63 class NotificationProvider; 65 class NotificationProvider;
64 class PepperPluginInstanceImpl; 66 class PepperPluginInstanceImpl;
65 class PushMessagingDispatcher; 67 class PushMessagingDispatcher;
68 class RendererAccessibility;
66 class RendererCdmManager; 69 class RendererCdmManager;
67 class RendererMediaPlayerManager; 70 class RendererMediaPlayerManager;
68 class RendererPpapiHost; 71 class RendererPpapiHost;
69 class RenderFrameObserver; 72 class RenderFrameObserver;
70 class RenderViewImpl; 73 class RenderViewImpl;
71 class RenderWidget; 74 class RenderWidget;
72 class RenderWidgetFullscreenPepper; 75 class RenderWidgetFullscreenPepper;
73 class ScreenOrientationDispatcher; 76 class ScreenOrientationDispatcher;
74 struct CustomContextMenuContext; 77 struct CustomContextMenuContext;
75 78
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // Start/Stop loading notifications. 142 // Start/Stop loading notifications.
140 // TODO(nasko): Those are page-level methods at this time and come from 143 // TODO(nasko): Those are page-level methods at this time and come from
141 // WebViewClient. We should move them to be WebFrameClient calls and put 144 // WebViewClient. We should move them to be WebFrameClient calls and put
142 // logic in the browser side to balance starts/stops. 145 // logic in the browser side to balance starts/stops.
143 // |to_different_document| will be true unless the load is a fragment 146 // |to_different_document| will be true unless the load is a fragment
144 // navigation, or triggered by history.pushState/replaceState. 147 // navigation, or triggered by history.pushState/replaceState.
145 virtual void didStartLoading(bool to_different_document); 148 virtual void didStartLoading(bool to_different_document);
146 virtual void didStopLoading(); 149 virtual void didStopLoading();
147 virtual void didChangeLoadProgress(double load_progress); 150 virtual void didChangeLoadProgress(double load_progress);
148 151
152 AccessibilityMode accessibility_mode() {
153 return accessibility_mode_;
154 }
155
156 RendererAccessibility* renderer_accessibility() {
157 return renderer_accessibility_;
158 }
159
160 void HandleWebAccessibilityEvent(const blink::WebAXObject& obj,
161 blink::WebAXEvent event);
162
163 // TODO(dmazzoni): the only reason this is here is to plumb it through to
164 // RendererAccessibility. It should be part of RenderFrameObserver, once
165 // blink has a separate accessibility tree per frame.
166 void FocusedNodeChanged(const blink::WebNode& node);
167
149 #if defined(ENABLE_PLUGINS) 168 #if defined(ENABLE_PLUGINS)
150 // Notification that a PPAPI plugin has been created. 169 // Notification that a PPAPI plugin has been created.
151 void PepperPluginCreated(RendererPpapiHost* host); 170 void PepperPluginCreated(RendererPpapiHost* host);
152 171
153 // Notifies that |instance| has changed the cursor. 172 // Notifies that |instance| has changed the cursor.
154 // This will update the cursor appearance if it is currently over the plugin 173 // This will update the cursor appearance if it is currently over the plugin
155 // instance. 174 // instance.
156 void PepperDidChangeCursor(PepperPluginInstanceImpl* instance, 175 void PepperDidChangeCursor(PepperPluginInstanceImpl* instance,
157 const blink::WebCursorInfo& cursor); 176 const blink::WebCursorInfo& cursor);
158 177
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 // Binds this render frame's service registry to a handle to the remote 424 // Binds this render frame's service registry to a handle to the remote
406 // service registry. 425 // service registry.
407 void BindServiceRegistry( 426 void BindServiceRegistry(
408 mojo::ScopedMessagePipeHandle service_provider_handle); 427 mojo::ScopedMessagePipeHandle service_provider_handle);
409 428
410 protected: 429 protected:
411 RenderFrameImpl(RenderViewImpl* render_view, int32 routing_id); 430 RenderFrameImpl(RenderViewImpl* render_view, int32 routing_id);
412 431
413 private: 432 private:
414 friend class RenderFrameObserver; 433 friend class RenderFrameObserver;
434 friend class RendererAccessibilityTest;
415 FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest, 435 FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest,
416 AccessibilityMessagesQueueWhileSwappedOut); 436 AccessibilityMessagesQueueWhileSwappedOut);
417 FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest, 437 FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest,
418 ShouldUpdateSelectionTextFromContextMenuParams); 438 ShouldUpdateSelectionTextFromContextMenuParams);
419 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 439 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest,
420 OnExtendSelectionAndDelete); 440 OnExtendSelectionAndDelete);
421 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut); 441 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut);
422 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK); 442 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK);
423 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 443 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest,
424 SetEditableSelectionAndComposition); 444 SetEditableSelectionAndComposition);
445 FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest,
446 OnSetAccessibilityMode);
425 447
426 typedef std::map<GURL, double> HostZoomLevels; 448 typedef std::map<GURL, double> HostZoomLevels;
427 449
428 // Functions to add and remove observers for this object. 450 // Functions to add and remove observers for this object.
429 void AddObserver(RenderFrameObserver* observer); 451 void AddObserver(RenderFrameObserver* observer);
430 void RemoveObserver(RenderFrameObserver* observer); 452 void RemoveObserver(RenderFrameObserver* observer);
431 453
432 void UpdateURL(blink::WebFrame* frame); 454 void UpdateURL(blink::WebFrame* frame);
433 455
434 // Gets the focused element. If no such element exists then the element will 456 // Gets the focused element. If no such element exists then the element will
(...skipping 27 matching lines...) Expand all
462 int id, 484 int id,
463 bool notify_result); 485 bool notify_result);
464 void OnSetEditableSelectionOffsets(int start, int end); 486 void OnSetEditableSelectionOffsets(int start, int end);
465 void OnSetCompositionFromExistingText( 487 void OnSetCompositionFromExistingText(
466 int start, int end, 488 int start, int end,
467 const std::vector<blink::WebCompositionUnderline>& underlines); 489 const std::vector<blink::WebCompositionUnderline>& underlines);
468 void OnExtendSelectionAndDelete(int before, int after); 490 void OnExtendSelectionAndDelete(int before, int after);
469 void OnReload(bool ignore_cache); 491 void OnReload(bool ignore_cache);
470 void OnTextSurroundingSelectionRequest(size_t max_length); 492 void OnTextSurroundingSelectionRequest(size_t max_length);
471 void OnAddStyleSheetByURL(const std::string& url); 493 void OnAddStyleSheetByURL(const std::string& url);
494 void OnSetAccessibilityMode(AccessibilityMode new_mode);
472 #if defined(OS_MACOSX) 495 #if defined(OS_MACOSX)
473 void OnCopyToFindPboard(); 496 void OnCopyToFindPboard();
474 #endif 497 #endif
475 498
476 // Virtual since overridden by WebTestProxy for layout tests. 499 // Virtual since overridden by WebTestProxy for layout tests.
477 virtual blink::WebNavigationPolicy DecidePolicyForNavigation( 500 virtual blink::WebNavigationPolicy DecidePolicyForNavigation(
478 RenderFrame* render_frame, 501 RenderFrame* render_frame,
479 blink::WebFrame* frame, 502 blink::WebFrame* frame,
480 blink::WebDataSource::ExtraData* extraData, 503 blink::WebDataSource::ExtraData* extraData,
481 const blink::WebURLRequest& request, 504 const blink::WebURLRequest& request,
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 672
650 // The push messaging dispatcher attached to this frame, lazily initialized. 673 // The push messaging dispatcher attached to this frame, lazily initialized.
651 PushMessagingDispatcher* push_messaging_dispatcher_; 674 PushMessagingDispatcher* push_messaging_dispatcher_;
652 675
653 ServiceRegistryImpl service_registry_; 676 ServiceRegistryImpl service_registry_;
654 677
655 // The screen orientation dispatcher attached to the frame, lazily 678 // The screen orientation dispatcher attached to the frame, lazily
656 // initialized. 679 // initialized.
657 ScreenOrientationDispatcher* screen_orientation_dispatcher_; 680 ScreenOrientationDispatcher* screen_orientation_dispatcher_;
658 681
682 // The current accessibility mode.
683 AccessibilityMode accessibility_mode_;
684
685 // Only valid if |accessibility_mode_| is anything other than
686 // AccessibilityModeOff.
687 RendererAccessibility* renderer_accessibility_;
688
659 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; 689 base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
660 690
661 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); 691 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);
662 }; 692 };
663 693
664 } // namespace content 694 } // namespace content
665 695
666 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ 696 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698