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

Side by Side Diff: content/browser/accessibility/browser_accessibility_manager_android.cc

Issue 2403953002: Merge to M54: Android accessibility actions inside iframes not sent to right frame (Closed)
Patch Set: Created 4 years, 2 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 | « no previous file | 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 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 #include "content/browser/accessibility/browser_accessibility_manager_android.h" 5 #include "content/browser/accessibility/browser_accessibility_manager_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 10
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 } 584 }
585 585
586 return true; 586 return true;
587 } 587 }
588 588
589 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env, 589 void BrowserAccessibilityManagerAndroid::Click(JNIEnv* env,
590 const JavaParamRef<jobject>& obj, 590 const JavaParamRef<jobject>& obj,
591 jint id) { 591 jint id) {
592 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 592 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
593 if (node) 593 if (node)
594 DoDefaultAction(*node); 594 node->manager()->DoDefaultAction(*node);
595 } 595 }
596 596
597 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env, 597 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env,
598 const JavaParamRef<jobject>& obj, 598 const JavaParamRef<jobject>& obj,
599 jint id) { 599 jint id) {
600 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 600 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
601 if (node) 601 if (node)
602 SetFocus(*node); 602 node->manager()->SetFocus(*node);
603 } 603 }
604 604
605 void BrowserAccessibilityManagerAndroid::Blur( 605 void BrowserAccessibilityManagerAndroid::Blur(
606 JNIEnv* env, 606 JNIEnv* env,
607 const JavaParamRef<jobject>& obj) { 607 const JavaParamRef<jobject>& obj) {
608 SetFocus(*GetRoot()); 608 SetFocus(*GetRoot());
609 } 609 }
610 610
611 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( 611 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible(
612 JNIEnv* env, 612 JNIEnv* env,
613 const JavaParamRef<jobject>& obj, 613 const JavaParamRef<jobject>& obj,
614 jint id) { 614 jint id) {
615 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 615 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
616 if (node) 616 if (node)
617 ScrollToMakeVisible(*node, gfx::Rect(node->GetFrameBoundsRect().size())); 617 node->manager()->ScrollToMakeVisible(
618 *node, gfx::Rect(node->GetFrameBoundsRect().size()));
618 } 619 }
619 620
620 void BrowserAccessibilityManagerAndroid::SetTextFieldValue( 621 void BrowserAccessibilityManagerAndroid::SetTextFieldValue(
621 JNIEnv* env, 622 JNIEnv* env,
622 const JavaParamRef<jobject>& obj, 623 const JavaParamRef<jobject>& obj,
623 jint id, 624 jint id,
624 const JavaParamRef<jstring>& value) { 625 const JavaParamRef<jstring>& value) {
625 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 626 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
626 if (node) { 627 if (node) {
627 BrowserAccessibilityManager::SetValue( 628 node->manager()->SetValue(
628 *node, base::android::ConvertJavaStringToUTF16(env, value)); 629 *node, base::android::ConvertJavaStringToUTF16(env, value));
629 } 630 }
630 } 631 }
631 632
632 void BrowserAccessibilityManagerAndroid::SetSelection( 633 void BrowserAccessibilityManagerAndroid::SetSelection(
633 JNIEnv* env, 634 JNIEnv* env,
634 const JavaParamRef<jobject>& obj, 635 const JavaParamRef<jobject>& obj,
635 jint id, 636 jint id,
636 jint start, 637 jint start,
637 jint end) { 638 jint end) {
638 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 639 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
639 if (node) 640 if (node)
640 SetTextSelection(*node, start, end); 641 node->manager()->SetTextSelection(*node, start, end);
641 } 642 }
642 643
643 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider( 644 jboolean BrowserAccessibilityManagerAndroid::AdjustSlider(
644 JNIEnv* env, 645 JNIEnv* env,
645 const JavaParamRef<jobject>& obj, 646 const JavaParamRef<jobject>& obj,
646 jint id, 647 jint id,
647 jboolean increment) { 648 jboolean increment) {
648 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 649 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
649 if (!node) 650 if (!node)
650 return false; 651 return false;
(...skipping 10 matching lines...) Expand all
661 if (max <= min) 662 if (max <= min)
662 return false; 663 return false;
663 664
664 // To behave similarly to an Android SeekBar, move by an increment of 665 // To behave similarly to an Android SeekBar, move by an increment of
665 // approximately 20%. 666 // approximately 20%.
666 float original_value = value; 667 float original_value = value;
667 float delta = (max - min) / 5.0f; 668 float delta = (max - min) / 5.0f;
668 value += (increment ? delta : -delta); 669 value += (increment ? delta : -delta);
669 value = std::max(std::min(value, max), min); 670 value = std::max(std::min(value, max), min);
670 if (value != original_value) { 671 if (value != original_value) {
671 BrowserAccessibilityManager::SetValue( 672 node->manager()->SetValue(
672 *node, base::UTF8ToUTF16(base::DoubleToString(value))); 673 *node, base::UTF8ToUTF16(base::DoubleToString(value)));
673 return true; 674 return true;
674 } 675 }
675 return false; 676 return false;
676 } 677 }
677 678
678 void BrowserAccessibilityManagerAndroid::HandleHoverEvent( 679 void BrowserAccessibilityManagerAndroid::HandleHoverEvent(
679 BrowserAccessibility* node) { 680 BrowserAccessibility* node) {
680 JNIEnv* env = AttachCurrentThread(); 681 JNIEnv* env = AttachCurrentThread();
681 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager(); 682 ScopedJavaLocalRef<jobject> obj = GetJavaRefFromRootManager();
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 NOTREACHED(); 871 NOTREACHED();
871 } 872 }
872 873
873 return true; 874 return true;
874 } 875 }
875 876
876 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus( 877 void BrowserAccessibilityManagerAndroid::SetAccessibilityFocus(
877 JNIEnv* env, 878 JNIEnv* env,
878 const JavaParamRef<jobject>& obj, 879 const JavaParamRef<jobject>& obj,
879 jint id) { 880 jint id) {
880 if (delegate_) 881 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
881 delegate_->AccessibilitySetAccessibilityFocus(id); 882 if (!node)
883 return;
884
885 if (node->manager()->delegate()) {
886 node->manager()->delegate()->AccessibilitySetAccessibilityFocus(
887 node->GetId());
888 }
882 } 889 }
883 890
884 bool BrowserAccessibilityManagerAndroid::IsSlider( 891 bool BrowserAccessibilityManagerAndroid::IsSlider(
885 JNIEnv* env, 892 JNIEnv* env,
886 const JavaParamRef<jobject>& obj, 893 const JavaParamRef<jobject>& obj,
887 jint id) { 894 jint id) {
888 BrowserAccessibilityAndroid* node = GetFromUniqueID(id); 895 BrowserAccessibilityAndroid* node = GetFromUniqueID(id);
889 if (!node) 896 if (!node)
890 return false; 897 return false;
891 898
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 950
944 JNIEnv* env = AttachCurrentThread(); 951 JNIEnv* env = AttachCurrentThread();
945 return root_manager->java_ref().get(env); 952 return root_manager->java_ref().get(env);
946 } 953 }
947 954
948 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { 955 bool RegisterBrowserAccessibilityManager(JNIEnv* env) {
949 return RegisterNativesImpl(env); 956 return RegisterNativesImpl(env);
950 } 957 }
951 958
952 } // namespace content 959 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698