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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 830053004: Suppress accessibility events when user is navigating away. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, disable test for now Created 5 years, 10 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
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 2511 matching lines...) Expand 10 before | Expand all | Expand 10 after
2522 RenderFrameHostImpl* render_frame_host, 2522 RenderFrameHostImpl* render_frame_host,
2523 const GURL& validated_url, 2523 const GURL& validated_url,
2524 bool is_error_page, 2524 bool is_error_page,
2525 bool is_iframe_srcdoc) { 2525 bool is_iframe_srcdoc) {
2526 // Notify observers about the start of the provisional load. 2526 // Notify observers about the start of the provisional load.
2527 FOR_EACH_OBSERVER( 2527 FOR_EACH_OBSERVER(
2528 WebContentsObserver, 2528 WebContentsObserver,
2529 observers_, 2529 observers_,
2530 DidStartProvisionalLoadForFrame( 2530 DidStartProvisionalLoadForFrame(
2531 render_frame_host, validated_url, is_error_page, is_iframe_srcdoc)); 2531 render_frame_host, validated_url, is_error_page, is_iframe_srcdoc));
2532
2533 // Notify accessibility if this is a reload.
2534 NavigationEntry* entry = controller_.GetVisibleEntry();
2535 if (entry && ui::PageTransitionCoreTypeIs(
2536 entry->GetTransitionType(), ui::PAGE_TRANSITION_RELOAD)) {
2537 FrameTreeNode* ftn = render_frame_host->frame_tree_node();
2538 BrowserAccessibilityManager* manager =
2539 ftn->current_frame_host()->browser_accessibility_manager();
2540 if (manager)
2541 manager->UserIsReloading();
2542 }
2532 } 2543 }
2533 2544
2534 void WebContentsImpl::DidStartNavigationTransition( 2545 void WebContentsImpl::DidStartNavigationTransition(
2535 RenderFrameHostImpl* render_frame_host) { 2546 RenderFrameHostImpl* render_frame_host) {
2536 #if defined(OS_ANDROID) 2547 #if defined(OS_ANDROID)
2537 int render_frame_id = render_frame_host->GetRoutingID(); 2548 int render_frame_id = render_frame_host->GetRoutingID();
2538 GetWebContentsAndroid()->DidStartNavigationTransitionForFrame( 2549 GetWebContentsAndroid()->DidStartNavigationTransitionForFrame(
2539 render_frame_id); 2550 render_frame_id);
2540 #endif 2551 #endif
2541 } 2552 }
2542 2553
2543 void WebContentsImpl::DidFailProvisionalLoadWithError( 2554 void WebContentsImpl::DidFailProvisionalLoadWithError(
2544 RenderFrameHostImpl* render_frame_host, 2555 RenderFrameHostImpl* render_frame_host,
2545 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) { 2556 const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params) {
2546 GURL validated_url(params.url); 2557 GURL validated_url(params.url);
2547 FOR_EACH_OBSERVER(WebContentsObserver, 2558 FOR_EACH_OBSERVER(WebContentsObserver,
2548 observers_, 2559 observers_,
2549 DidFailProvisionalLoad(render_frame_host, 2560 DidFailProvisionalLoad(render_frame_host,
2550 validated_url, 2561 validated_url,
2551 params.error_code, 2562 params.error_code,
2552 params.error_description)); 2563 params.error_description));
2564
2565 FrameTreeNode* ftn = render_frame_host->frame_tree_node();
2566 BrowserAccessibilityManager* manager =
2567 ftn->current_frame_host()->browser_accessibility_manager();
2568 if (manager)
2569 manager->NavigationFailed();
2553 } 2570 }
2554 2571
2555 void WebContentsImpl::DidFailLoadWithError( 2572 void WebContentsImpl::DidFailLoadWithError(
2556 RenderFrameHostImpl* render_frame_host, 2573 RenderFrameHostImpl* render_frame_host,
2557 const GURL& url, 2574 const GURL& url,
2558 int error_code, 2575 int error_code,
2559 const base::string16& error_description) { 2576 const base::string16& error_description) {
2560 FOR_EACH_OBSERVER( 2577 FOR_EACH_OBSERVER(
2561 WebContentsObserver, 2578 WebContentsObserver,
2562 observers_, 2579 observers_,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2618 2635
2619 void WebContentsImpl::DidCommitProvisionalLoad( 2636 void WebContentsImpl::DidCommitProvisionalLoad(
2620 RenderFrameHostImpl* render_frame_host, 2637 RenderFrameHostImpl* render_frame_host,
2621 const GURL& url, 2638 const GURL& url,
2622 ui::PageTransition transition_type) { 2639 ui::PageTransition transition_type) {
2623 // Notify observers about the commit of the provisional load. 2640 // Notify observers about the commit of the provisional load.
2624 FOR_EACH_OBSERVER(WebContentsObserver, 2641 FOR_EACH_OBSERVER(WebContentsObserver,
2625 observers_, 2642 observers_,
2626 DidCommitProvisionalLoadForFrame( 2643 DidCommitProvisionalLoadForFrame(
2627 render_frame_host, url, transition_type)); 2644 render_frame_host, url, transition_type));
2645
2646 BrowserAccessibilityManager* manager =
2647 render_frame_host->browser_accessibility_manager();
2648 if (manager)
2649 manager->NavigationSucceeded();
2628 } 2650 }
2629 2651
2630 void WebContentsImpl::DidNavigateMainFramePreCommit( 2652 void WebContentsImpl::DidNavigateMainFramePreCommit(
2631 bool navigation_is_within_page) { 2653 bool navigation_is_within_page) {
2632 // Ensure fullscreen mode is exited before committing the navigation to a 2654 // Ensure fullscreen mode is exited before committing the navigation to a
2633 // different page. The next page will not start out assuming it is in 2655 // different page. The next page will not start out assuming it is in
2634 // fullscreen mode. 2656 // fullscreen mode.
2635 if (navigation_is_within_page) { 2657 if (navigation_is_within_page) {
2636 // No page change? Then, the renderer and browser can remain in fullscreen. 2658 // No page change? Then, the renderer and browser can remain in fullscreen.
2637 return; 2659 return;
(...skipping 1155 matching lines...) Expand 10 before | Expand all | Expand 10 after
3793 3815
3794 void WebContentsImpl::RequestMove(const gfx::Rect& new_bounds) { 3816 void WebContentsImpl::RequestMove(const gfx::Rect& new_bounds) {
3795 if (delegate_ && delegate_->IsPopupOrPanel(this)) 3817 if (delegate_ && delegate_->IsPopupOrPanel(this))
3796 delegate_->MoveContents(this, new_bounds); 3818 delegate_->MoveContents(this, new_bounds);
3797 } 3819 }
3798 3820
3799 void WebContentsImpl::DidStartLoading(RenderFrameHost* render_frame_host, 3821 void WebContentsImpl::DidStartLoading(RenderFrameHost* render_frame_host,
3800 bool to_different_document) { 3822 bool to_different_document) {
3801 SetIsLoading(render_frame_host->GetRenderViewHost(), true, 3823 SetIsLoading(render_frame_host->GetRenderViewHost(), true,
3802 to_different_document, NULL); 3824 to_different_document, NULL);
3825
3826 // Notify accessibility that the user is navigating away from the
3827 // current document.
3828 //
3829 // TODO(dmazzoni): do this using a WebContentsObserver.
3830 FrameTreeNode* ftn = static_cast<RenderFrameHostImpl*>(render_frame_host)->
3831 frame_tree_node();
3832 BrowserAccessibilityManager* manager =
3833 ftn->current_frame_host()->browser_accessibility_manager();
3834 if (manager)
3835 manager->UserIsNavigatingAway();
3803 } 3836 }
3804 3837
3805 void WebContentsImpl::DidStopLoading(RenderFrameHost* render_frame_host) { 3838 void WebContentsImpl::DidStopLoading(RenderFrameHost* render_frame_host) {
3806 scoped_ptr<LoadNotificationDetails> details; 3839 scoped_ptr<LoadNotificationDetails> details;
3807 3840
3808 // Use the last committed entry rather than the active one, in case a 3841 // Use the last committed entry rather than the active one, in case a
3809 // pending entry has been created. 3842 // pending entry has been created.
3810 NavigationEntry* entry = controller_.GetLastCommittedEntry(); 3843 NavigationEntry* entry = controller_.GetLastCommittedEntry();
3811 Navigator* navigator = frame_tree_.root()->navigator(); 3844 Navigator* navigator = frame_tree_.root()->navigator();
3812 3845
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
4476 node->render_manager()->ResumeResponseDeferredAtStart(); 4509 node->render_manager()->ResumeResponseDeferredAtStart();
4477 } 4510 }
4478 4511
4479 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4512 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4480 force_disable_overscroll_content_ = force_disable; 4513 force_disable_overscroll_content_ = force_disable;
4481 if (view_) 4514 if (view_)
4482 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4515 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4483 } 4516 }
4484 4517
4485 } // namespace content 4518 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698