| 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 STATE_PENDING_SWAP_OUT, | 81 STATE_PENDING_SWAP_OUT, |
| 82 // The RFH is swapped out and stored inside a RenderFrameProxyHost, being | 82 // The RFH is swapped out and stored inside a RenderFrameProxyHost, being |
| 83 // used as a placeholder to allow cross-process communication. Only main | 83 // used as a placeholder to allow cross-process communication. Only main |
| 84 // frames can enter this state. | 84 // frames can enter this state. |
| 85 STATE_SWAPPED_OUT, | 85 STATE_SWAPPED_OUT, |
| 86 }; | 86 }; |
| 87 // Helper function to determine whether the RFH state should contribute to the | 87 // Helper function to determine whether the RFH state should contribute to the |
| 88 // number of active frames of a SiteInstance or not. | 88 // number of active frames of a SiteInstance or not. |
| 89 static bool IsRFHStateActive(RenderFrameHostImplState rfh_state); | 89 static bool IsRFHStateActive(RenderFrameHostImplState rfh_state); |
| 90 | 90 |
| 91 // An accessibility reset is only allowed to prevent very rare corner cases | |
| 92 // or race conditions where the browser and renderer get out of sync. If | |
| 93 // this happens more than this many times, kill the renderer. | |
| 94 static const int kMaxAccessibilityResets = 5; | |
| 95 | |
| 96 static RenderFrameHostImpl* FromID(int process_id, int routing_id); | 91 static RenderFrameHostImpl* FromID(int process_id, int routing_id); |
| 97 | 92 |
| 98 virtual ~RenderFrameHostImpl(); | 93 virtual ~RenderFrameHostImpl(); |
| 99 | 94 |
| 100 // RenderFrameHost | 95 // RenderFrameHost |
| 101 virtual int GetRoutingID() OVERRIDE; | 96 virtual int GetRoutingID() OVERRIDE; |
| 102 virtual SiteInstanceImpl* GetSiteInstance() OVERRIDE; | 97 virtual SiteInstanceImpl* GetSiteInstance() OVERRIDE; |
| 103 virtual RenderProcessHost* GetProcess() OVERRIDE; | 98 virtual RenderProcessHost* GetProcess() OVERRIDE; |
| 104 virtual RenderFrameHost* GetParent() OVERRIDE; | 99 virtual RenderFrameHost* GetParent() OVERRIDE; |
| 105 virtual const std::string& GetFrameName() OVERRIDE; | 100 virtual const std::string& GetFrameName() OVERRIDE; |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 // Access the BrowserAccessibilityManager if it already exists. | 325 // Access the BrowserAccessibilityManager if it already exists. |
| 331 BrowserAccessibilityManager* browser_accessibility_manager() const { | 326 BrowserAccessibilityManager* browser_accessibility_manager() const { |
| 332 return browser_accessibility_manager_.get(); | 327 return browser_accessibility_manager_.get(); |
| 333 } | 328 } |
| 334 | 329 |
| 335 // If accessibility is enabled, get the BrowserAccessibilityManager for | 330 // If accessibility is enabled, get the BrowserAccessibilityManager for |
| 336 // this frame, or create one if it doesn't exist yet, otherwise return | 331 // this frame, or create one if it doesn't exist yet, otherwise return |
| 337 // NULL. | 332 // NULL. |
| 338 BrowserAccessibilityManager* GetOrCreateBrowserAccessibilityManager(); | 333 BrowserAccessibilityManager* GetOrCreateBrowserAccessibilityManager(); |
| 339 | 334 |
| 340 void set_disallow_browser_accessibility_manager_for_testing(bool flag) { | |
| 341 disallow_browser_accessibility_manager_for_testing_ = flag; | |
| 342 } | |
| 343 | |
| 344 #if defined(OS_WIN) | 335 #if defined(OS_WIN) |
| 345 void SetParentNativeViewAccessible( | 336 void SetParentNativeViewAccessible( |
| 346 gfx::NativeViewAccessible accessible_parent); | 337 gfx::NativeViewAccessible accessible_parent); |
| 347 gfx::NativeViewAccessible GetParentNativeViewAccessible() const; | 338 gfx::NativeViewAccessible GetParentNativeViewAccessible() const; |
| 348 #elif defined(OS_MACOSX) | 339 #elif defined(OS_MACOSX) |
| 349 // Select popup menu related methods (for external popup menus). | 340 // Select popup menu related methods (for external popup menus). |
| 350 void DidSelectPopupMenuItem(int selected_index); | 341 void DidSelectPopupMenuItem(int selected_index); |
| 351 void DidCancelPopupMenu(); | 342 void DidCancelPopupMenu(); |
| 352 #elif defined(OS_ANDROID) | 343 #elif defined(OS_ANDROID) |
| 353 void DidSelectPopupMenuItems(const std::vector<int>& selected_indices); | 344 void DidSelectPopupMenuItems(const std::vector<int>& selected_indices); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 void OnDidAccessInitialDocument(); | 416 void OnDidAccessInitialDocument(); |
| 426 void OnDidDisownOpener(); | 417 void OnDidDisownOpener(); |
| 427 void OnDidAssignPageId(int32 page_id); | 418 void OnDidAssignPageId(int32 page_id); |
| 428 void OnUpdateTitle(int32 page_id, | 419 void OnUpdateTitle(int32 page_id, |
| 429 const base::string16& title, | 420 const base::string16& title, |
| 430 blink::WebTextDirection title_direction); | 421 blink::WebTextDirection title_direction); |
| 431 void OnUpdateEncoding(const std::string& encoding); | 422 void OnUpdateEncoding(const std::string& encoding); |
| 432 void OnBeginNavigation(const FrameHostMsg_BeginNavigation_Params& params, | 423 void OnBeginNavigation(const FrameHostMsg_BeginNavigation_Params& params, |
| 433 const CommonNavigationParams& common_params); | 424 const CommonNavigationParams& common_params); |
| 434 void OnAccessibilityEvents( | 425 void OnAccessibilityEvents( |
| 435 const std::vector<AccessibilityHostMsg_EventParams>& params, | 426 const std::vector<AccessibilityHostMsg_EventParams>& params); |
| 436 int reset_token); | |
| 437 void OnAccessibilityLocationChanges( | 427 void OnAccessibilityLocationChanges( |
| 438 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); | 428 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); |
| 439 | 429 |
| 440 #if defined(OS_MACOSX) || defined(OS_ANDROID) | 430 #if defined(OS_MACOSX) || defined(OS_ANDROID) |
| 441 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); | 431 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); |
| 442 void OnHidePopup(); | 432 void OnHidePopup(); |
| 443 #endif | 433 #endif |
| 444 | 434 |
| 445 // Updates the state of this RenderFrameHost and clears any waiting state | 435 // Updates the state of this RenderFrameHost and clears any waiting state |
| 446 // that is no longer relevant. | 436 // that is no longer relevant. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 // the case of a cross-site transition ( = true). | 540 // the case of a cross-site transition ( = true). |
| 551 bool unload_ack_is_for_cross_site_transition_; | 541 bool unload_ack_is_for_cross_site_transition_; |
| 552 | 542 |
| 553 // Used to swap out or shut down this RFH when the unload event is taking too | 543 // Used to swap out or shut down this RFH when the unload event is taking too |
| 554 // long to execute, depending on the number of active frames in the | 544 // long to execute, depending on the number of active frames in the |
| 555 // SiteInstance. | 545 // SiteInstance. |
| 556 scoped_ptr<TimeoutMonitor> swapout_event_monitor_timeout_; | 546 scoped_ptr<TimeoutMonitor> swapout_event_monitor_timeout_; |
| 557 | 547 |
| 558 ServiceRegistryImpl service_registry_; | 548 ServiceRegistryImpl service_registry_; |
| 559 | 549 |
| 560 // The object managing the accessibility tree for this frame. | |
| 561 scoped_ptr<BrowserAccessibilityManager> browser_accessibility_manager_; | 550 scoped_ptr<BrowserAccessibilityManager> browser_accessibility_manager_; |
| 562 | 551 |
| 563 // This is nonzero if we sent an accessibility reset to the renderer and | |
| 564 // we're waiting for an IPC containing this reset token (sequentially | |
| 565 // assigned) and a complete replacement accessibility tree. | |
| 566 int accessibility_reset_token_; | |
| 567 | |
| 568 // A count of the number of times we needed to reset accessibility, so | |
| 569 // we don't keep trying to reset forever. | |
| 570 int accessibility_reset_count_; | |
| 571 | |
| 572 // Callback when an event is received, for testing. | 552 // Callback when an event is received, for testing. |
| 573 base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_; | 553 base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_; |
| 574 // The most recently received accessibility tree - for testing only. | 554 // The most recently received accessibility tree - for testing only. |
| 575 scoped_ptr<ui::AXTree> ax_tree_for_testing_; | 555 scoped_ptr<ui::AXTree> ax_tree_for_testing_; |
| 576 // Flag to not create a BrowserAccessibilityManager, for testing. | |
| 577 bool disallow_browser_accessibility_manager_for_testing_; | |
| 578 | 556 |
| 579 // NOTE: This must be the last member. | 557 // NOTE: This must be the last member. |
| 580 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; | 558 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
| 581 | 559 |
| 582 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); | 560 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
| 583 }; | 561 }; |
| 584 | 562 |
| 585 } // namespace content | 563 } // namespace content |
| 586 | 564 |
| 587 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 565 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
| OLD | NEW |