OLD | NEW |
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_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 // The RenderFrameHost will have a new RenderWidgetHost created and | 83 // The RenderFrameHost will have a new RenderWidgetHost created and |
84 // attached to it. This is used when the RenderFrameHost is in a different | 84 // attached to it. This is used when the RenderFrameHost is in a different |
85 // process from its parent frame. | 85 // process from its parent frame. |
86 CREATE_RF_NEEDS_RENDER_WIDGET_HOST = 1 << 3 | 86 CREATE_RF_NEEDS_RENDER_WIDGET_HOST = 1 << 3 |
87 }; | 87 }; |
88 | 88 |
89 class CONTENT_EXPORT RenderFrameHostImpl | 89 class CONTENT_EXPORT RenderFrameHostImpl |
90 : public RenderFrameHost, | 90 : public RenderFrameHost, |
91 public BrowserAccessibilityDelegate { | 91 public BrowserAccessibilityDelegate { |
92 public: | 92 public: |
| 93 typedef base::Callback<void(const ui::AXTreeUpdate&)> |
| 94 AXTreeSnapshotCallback; |
| 95 |
93 // Keeps track of the state of the RenderFrameHostImpl, particularly with | 96 // Keeps track of the state of the RenderFrameHostImpl, particularly with |
94 // respect to swap out. | 97 // respect to swap out. |
95 enum RenderFrameHostImplState { | 98 enum RenderFrameHostImplState { |
96 // The standard state for a RFH handling the communication with an active | 99 // The standard state for a RFH handling the communication with an active |
97 // RenderFrame. | 100 // RenderFrame. |
98 STATE_DEFAULT = 0, | 101 STATE_DEFAULT = 0, |
99 // The RFH has not received the SwapOutACK yet, but the new page has | 102 // The RFH has not received the SwapOutACK yet, but the new page has |
100 // committed in a different RFH. Upon reception of the SwapOutACK, the RFH | 103 // committed in a different RFH. Upon reception of the SwapOutACK, the RFH |
101 // will either enter STATE_SWAPPED_OUT (if it is a main frame and there are | 104 // will either enter STATE_SWAPPED_OUT (if it is a main frame and there are |
102 // other active frames in its SiteInstance) or it will be deleted. | 105 // other active frames in its SiteInstance) or it will be deleted. |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 const base::string16& user_input, | 361 const base::string16& user_input, |
359 bool dialog_was_suppressed); | 362 bool dialog_was_suppressed); |
360 | 363 |
361 // Clears any outstanding transition request. This is called when we hear the | 364 // Clears any outstanding transition request. This is called when we hear the |
362 // response or commit. | 365 // response or commit. |
363 void ClearPendingTransitionRequestData(); | 366 void ClearPendingTransitionRequestData(); |
364 | 367 |
365 // Send a message to the renderer process to change the accessibility mode. | 368 // Send a message to the renderer process to change the accessibility mode. |
366 void SetAccessibilityMode(AccessibilityMode AccessibilityMode); | 369 void SetAccessibilityMode(AccessibilityMode AccessibilityMode); |
367 | 370 |
| 371 // Request a one-time snapshot of the accessibility tree without changing |
| 372 // the accessibility mode. |
| 373 void RequestAXTreeSnapshot(AXTreeSnapshotCallback callback); |
| 374 |
368 // Turn on accessibility testing. The given callback will be run | 375 // Turn on accessibility testing. The given callback will be run |
369 // every time an accessibility notification is received from the | 376 // every time an accessibility notification is received from the |
370 // renderer process, and the accessibility tree it sent can be | 377 // renderer process, and the accessibility tree it sent can be |
371 // retrieved using GetAXTreeForTesting(). | 378 // retrieved using GetAXTreeForTesting(). |
372 void SetAccessibilityCallbackForTesting( | 379 void SetAccessibilityCallbackForTesting( |
373 const base::Callback<void(ui::AXEvent, int)>& callback); | 380 const base::Callback<void(ui::AXEvent, int)>& callback); |
374 | 381 |
375 // Returns a snapshot of the accessibility tree received from the | 382 // Returns a snapshot of the accessibility tree received from the |
376 // renderer as of the last time an accessibility notification was | 383 // renderer as of the last time an accessibility notification was |
377 // received. | 384 // received. |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 const BeginNavigationParams& begin_params, | 507 const BeginNavigationParams& begin_params, |
501 scoped_refptr<ResourceRequestBody> body); | 508 scoped_refptr<ResourceRequestBody> body); |
502 void OnDispatchLoad(); | 509 void OnDispatchLoad(); |
503 void OnAccessibilityEvents( | 510 void OnAccessibilityEvents( |
504 const std::vector<AccessibilityHostMsg_EventParams>& params, | 511 const std::vector<AccessibilityHostMsg_EventParams>& params, |
505 int reset_token); | 512 int reset_token); |
506 void OnAccessibilityLocationChanges( | 513 void OnAccessibilityLocationChanges( |
507 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); | 514 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); |
508 void OnAccessibilityFindInPageResult( | 515 void OnAccessibilityFindInPageResult( |
509 const AccessibilityHostMsg_FindInPageResultParams& params); | 516 const AccessibilityHostMsg_FindInPageResultParams& params); |
| 517 void OnAccessibilitySnapshotResponse(int token, |
| 518 const ui::AXTreeUpdate& snapshot); |
510 void OnToggleFullscreen(bool enter_fullscreen); | 519 void OnToggleFullscreen(bool enter_fullscreen); |
511 | 520 |
512 #if defined(OS_MACOSX) || defined(OS_ANDROID) | 521 #if defined(OS_MACOSX) || defined(OS_ANDROID) |
513 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); | 522 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); |
514 void OnHidePopup(); | 523 void OnHidePopup(); |
515 #endif | 524 #endif |
516 | 525 |
517 // Registers Mojo services that this frame host makes available. | 526 // Registers Mojo services that this frame host makes available. |
518 void RegisterMojoServices(); | 527 void RegisterMojoServices(); |
519 | 528 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 | 679 |
671 // This is nonzero if we sent an accessibility reset to the renderer and | 680 // This is nonzero if we sent an accessibility reset to the renderer and |
672 // we're waiting for an IPC containing this reset token (sequentially | 681 // we're waiting for an IPC containing this reset token (sequentially |
673 // assigned) and a complete replacement accessibility tree. | 682 // assigned) and a complete replacement accessibility tree. |
674 int accessibility_reset_token_; | 683 int accessibility_reset_token_; |
675 | 684 |
676 // A count of the number of times we needed to reset accessibility, so | 685 // A count of the number of times we needed to reset accessibility, so |
677 // we don't keep trying to reset forever. | 686 // we don't keep trying to reset forever. |
678 int accessibility_reset_count_; | 687 int accessibility_reset_count_; |
679 | 688 |
| 689 // The mapping from request id to corresponding callback for pending |
| 690 // accessibility tree snapshot calls created by RequestAXTreeSnapshot. |
| 691 std::map<int, AXTreeSnapshotCallback> ax_tree_snapshot_callbacks_; |
| 692 |
680 // Callback when an event is received, for testing. | 693 // Callback when an event is received, for testing. |
681 base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_; | 694 base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_; |
682 // The most recently received accessibility tree - for testing only. | 695 // The most recently received accessibility tree - for testing only. |
683 scoped_ptr<ui::AXTree> ax_tree_for_testing_; | 696 scoped_ptr<ui::AXTree> ax_tree_for_testing_; |
684 // Flag to not create a BrowserAccessibilityManager, for testing. If one | 697 // Flag to not create a BrowserAccessibilityManager, for testing. If one |
685 // already exists it will still be used. | 698 // already exists it will still be used. |
686 bool no_create_browser_accessibility_manager_for_testing_; | 699 bool no_create_browser_accessibility_manager_for_testing_; |
687 | 700 |
688 // PlzNavigate: Owns the stream used in navigations to store the body of the | 701 // PlzNavigate: Owns the stream used in navigations to store the body of the |
689 // response once it has started. | 702 // response once it has started. |
690 scoped_ptr<StreamHandle> stream_handle_; | 703 scoped_ptr<StreamHandle> stream_handle_; |
691 | 704 |
692 // Context shared for each PermissionService instance created for this RFH. | 705 // Context shared for each PermissionService instance created for this RFH. |
693 scoped_ptr<PermissionServiceContext> permission_service_context_; | 706 scoped_ptr<PermissionServiceContext> permission_service_context_; |
694 | 707 |
695 // NOTE: This must be the last member. | 708 // NOTE: This must be the last member. |
696 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; | 709 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
697 | 710 |
698 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); | 711 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
699 }; | 712 }; |
700 | 713 |
701 } // namespace content | 714 } // namespace content |
702 | 715 |
703 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 716 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
OLD | NEW |