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

Side by Side Diff: chrome/browser/browser_accessibility_win.h

Issue 3324006: Revert 58491 - Implement ISimpleDOM COM interface in BrowserAccessibility. Al... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 3 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
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Deleted: svn:mergeinfo
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_ 5 #ifndef CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_
6 #define CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_ 6 #define CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_
7 #pragma once 7 #pragma once
8 8
9 #include <atlbase.h> 9 #include <atlbase.h>
10 #include <atlcom.h> 10 #include <atlcom.h>
11 #include <oleacc.h> 11 #include <oleacc.h>
12 12
13 #include <map> 13 #include <map>
14 #include <vector> 14 #include <vector>
15 15
16 #include "chrome/browser/browser_accessibility_manager_win.h" 16 #include "chrome/browser/browser_accessibility_manager_win.h"
17 #include "ia2_api_all.h" // Generated 17 #include "ia2_api_all.h" // Generated
18 #include "ISimpleDOMDocument.h" // Generated
19 #include "ISimpleDOMNode.h" // Generated
20 #include "ISimpleDOMText.h" // Generated
21 #include "webkit/glue/webaccessibility.h" 18 #include "webkit/glue/webaccessibility.h"
22 19
23 using webkit_glue::WebAccessibility; 20 using webkit_glue::WebAccessibility;
24 21
25 //////////////////////////////////////////////////////////////////////////////// 22 ////////////////////////////////////////////////////////////////////////////////
26 // 23 //
27 // BrowserAccessibility 24 // BrowserAccessibility
28 // 25 //
29 // Class implementing the MSAA IAccessible COM interface for the 26 // Class implementing the MSAA IAccessible COM interface for the
30 // Browser-Renderer communication of MSAA information, providing accessibility 27 // Browser-Renderer communication of MSAA information, providing accessibility
31 // to be used by screen readers and other assistive technology (AT). 28 // to be used by screen readers and other assistive technology (AT).
32 // 29 //
33 //////////////////////////////////////////////////////////////////////////////// 30 ////////////////////////////////////////////////////////////////////////////////
34 class ATL_NO_VTABLE BrowserAccessibility 31 class ATL_NO_VTABLE BrowserAccessibility
35 : public CComObjectRootEx<CComMultiThreadModel>, 32 : public CComObjectRootEx<CComMultiThreadModel>,
36 public IDispatchImpl<IAccessible2, &IID_IAccessible2, 33 public IDispatchImpl<IAccessible2, &IID_IAccessible2,
37 &LIBID_IAccessible2Lib>, 34 &LIBID_IAccessible2Lib>,
38 public IAccessibleImage, 35 public IAccessibleImage,
39 public IAccessibleText, 36 public IAccessibleText,
40 public IServiceProvider, 37 public IServiceProvider {
41 public ISimpleDOMDocument,
42 public ISimpleDOMNode,
43 public ISimpleDOMText {
44 public: 38 public:
45 BEGIN_COM_MAP(BrowserAccessibility) 39 BEGIN_COM_MAP(BrowserAccessibility)
46 COM_INTERFACE_ENTRY2(IDispatch, IAccessible2) 40 COM_INTERFACE_ENTRY2(IDispatch, IAccessible2)
47 COM_INTERFACE_ENTRY2(IAccessible, IAccessible2) 41 COM_INTERFACE_ENTRY2(IAccessible, IAccessible2)
48 COM_INTERFACE_ENTRY(IAccessible2) 42 COM_INTERFACE_ENTRY(IAccessible2)
49 COM_INTERFACE_ENTRY(IAccessibleImage) 43 COM_INTERFACE_ENTRY(IAccessibleImage)
50 COM_INTERFACE_ENTRY(IAccessibleText) 44 COM_INTERFACE_ENTRY(IAccessibleText)
51 COM_INTERFACE_ENTRY(IServiceProvider) 45 COM_INTERFACE_ENTRY(IServiceProvider)
52 COM_INTERFACE_ENTRY(ISimpleDOMDocument)
53 COM_INTERFACE_ENTRY(ISimpleDOMNode)
54 COM_INTERFACE_ENTRY(ISimpleDOMText)
55 END_COM_MAP() 46 END_COM_MAP()
56 47
57 BrowserAccessibility(); 48 BrowserAccessibility();
58 49
59 virtual ~BrowserAccessibility(); 50 virtual ~BrowserAccessibility();
60 51
61 // Initialize this object and mark it as active. 52 // Initialize this object and mark it as active.
62 void Initialize(BrowserAccessibilityManager* manager, 53 void Initialize(BrowserAccessibilityManager* manager,
63 BrowserAccessibility* parent, 54 BrowserAccessibility* parent,
64 LONG child_id, 55 LONG child_id,
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 return E_NOTIMPL; 331 return E_NOTIMPL;
341 } 332 }
342 STDMETHODIMP get_newText(IA2TextSegment* new_text) { 333 STDMETHODIMP get_newText(IA2TextSegment* new_text) {
343 return E_NOTIMPL; 334 return E_NOTIMPL;
344 } 335 }
345 STDMETHODIMP get_oldText(IA2TextSegment* old_text) { 336 STDMETHODIMP get_oldText(IA2TextSegment* old_text) {
346 return E_NOTIMPL; 337 return E_NOTIMPL;
347 } 338 }
348 339
349 // 340 //
350 // ISimpleDOMDocument methods.
351 //
352
353 STDMETHODIMP get_URL(BSTR* url);
354
355 STDMETHODIMP get_title(BSTR* title);
356
357 STDMETHODIMP get_mimeType(BSTR* mime_type);
358
359 STDMETHODIMP get_docType(BSTR* doc_type);
360
361 STDMETHODIMP get_nameSpaceURIForID(
362 short name_space_id, BSTR *name_space_uri) {
363 return E_NOTIMPL;
364 }
365 STDMETHODIMP put_alternateViewMediaTypes(
366 BSTR *comma_separated_media_types) {
367 return E_NOTIMPL;
368 }
369
370 //
371 // ISimpleDOMNode methods.
372 //
373
374 STDMETHODIMP get_nodeInfo(
375 BSTR* node_name,
376 short* name_space_id,
377 BSTR* node_value,
378 unsigned int* num_children,
379 unsigned int* unique_id,
380 unsigned short* node_type);
381
382 STDMETHODIMP get_attributes(
383 unsigned short max_attribs,
384 BSTR* attrib_names,
385 short* name_space_id,
386 BSTR* attrib_values,
387 unsigned short* num_attribs);
388
389 STDMETHODIMP get_attributesForNames(
390 unsigned short num_attribs,
391 BSTR* attrib_names,
392 short* name_space_id,
393 BSTR* attrib_values);
394
395 STDMETHODIMP get_computedStyle(
396 unsigned short max_style_properties,
397 boolean use_alternate_view,
398 BSTR *style_properties,
399 BSTR *style_values,
400 unsigned short *num_style_properties);
401
402 STDMETHODIMP get_computedStyleForProperties(
403 unsigned short num_style_properties,
404 boolean use_alternate_view,
405 BSTR* style_properties,
406 BSTR* style_values);
407
408 STDMETHODIMP scrollTo(boolean placeTopLeft);
409
410 STDMETHODIMP get_parentNode(ISimpleDOMNode** node);
411
412 STDMETHODIMP get_firstChild(ISimpleDOMNode** node);
413
414 STDMETHODIMP get_lastChild(ISimpleDOMNode** node);
415
416 STDMETHODIMP get_previousSibling(ISimpleDOMNode** node);
417
418 STDMETHODIMP get_nextSibling(ISimpleDOMNode** node);
419
420 STDMETHODIMP get_childAt(
421 unsigned int child_index,
422 ISimpleDOMNode** node);
423
424 STDMETHODIMP get_innerHTML(BSTR* innerHTML) {
425 return E_NOTIMPL;
426 }
427
428 STDMETHODIMP get_localInterface(void** local_interface) {
429 return E_NOTIMPL;
430 }
431
432 STDMETHODIMP get_language(BSTR* language) {
433 return E_NOTIMPL;
434 }
435
436 //
437 // ISimpleDOMText methods.
438 //
439
440 STDMETHODIMP get_domText(BSTR* dom_text);
441
442 STDMETHODIMP get_clippedSubstringBounds(
443 unsigned int start_index,
444 unsigned int end_index,
445 int* x,
446 int* y,
447 int* width,
448 int* height) {
449 return E_NOTIMPL;
450 }
451
452 STDMETHODIMP get_unclippedSubstringBounds(
453 unsigned int start_index,
454 unsigned int end_index,
455 int* x,
456 int* y,
457 int* width,
458 int* height) {
459 return E_NOTIMPL;
460 }
461
462 STDMETHODIMP scrollToSubstring(
463 unsigned int start_index,
464 unsigned int end_index) {
465 return E_NOTIMPL;
466 }
467
468 STDMETHODIMP get_fontFamily(BSTR *font_family) {
469 return E_NOTIMPL;
470 }
471
472 //
473 // IServiceProvider methods. 341 // IServiceProvider methods.
474 // 342 //
475 343
476 STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** object); 344 STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void** object);
477 345
478 // 346 //
479 // CComObjectRootEx methods. 347 // CComObjectRootEx methods.
480 // 348 //
481 349
482 HRESULT WINAPI InternalQueryInterface(void* this_ptr, 350 HRESULT WINAPI InternalQueryInterface(void* this_ptr,
(...skipping 14 matching lines...) Expand all
497 void InitRoleAndState(LONG web_accessibility_role, 365 void InitRoleAndState(LONG web_accessibility_role,
498 LONG web_accessibility_state); 366 LONG web_accessibility_state);
499 367
500 // Return true if this attribute is in the attributes map. 368 // Return true if this attribute is in the attributes map.
501 bool HasAttribute(WebAccessibility::Attribute attribute); 369 bool HasAttribute(WebAccessibility::Attribute attribute);
502 370
503 // Retrieve the string value of an attribute from the attribute map and 371 // Retrieve the string value of an attribute from the attribute map and
504 // returns true if found. 372 // returns true if found.
505 bool GetAttribute(WebAccessibility::Attribute attribute, string16* value); 373 bool GetAttribute(WebAccessibility::Attribute attribute, string16* value);
506 374
507 // Retrieve the string value of an attribute from the attribute map and
508 // if found and nonempty, allocate a new BSTR (with SysAllocString)
509 // and return S_OK. If not found or empty, return S_FALSE.
510 HRESULT GetAttributeAsBstr(
511 WebAccessibility::Attribute attribute, BSTR* value_bstr);
512
513 // Escape a string like it would be escaped for a URL or HTML form.
514 string16 Escape(string16 str);
515
516 // The manager of this tree of accessibility objects; needed for 375 // The manager of this tree of accessibility objects; needed for
517 // global operations like focus tracking. 376 // global operations like focus tracking.
518 BrowserAccessibilityManager* manager_; 377 BrowserAccessibilityManager* manager_;
519 // The parent of this object, may be NULL if we're the root object. 378 // The parent of this object, may be NULL if we're the root object.
520 BrowserAccessibility* parent_; 379 BrowserAccessibility* parent_;
521 // The ID of this object; globally unique within the browser process. 380 // The ID of this object; globally unique within the browser process.
522 LONG child_id_; 381 LONG child_id_;
523 // The index of this within its parent object. 382 // The index of this within its parent object.
524 LONG index_in_parent_; 383 LONG index_in_parent_;
525 // The ID of this object in the renderer process. 384 // The ID of this object in the renderer process.
526 int32 renderer_id_; 385 int32 renderer_id_;
527 386
528 // The children of this object. 387 // The children of this object.
529 std::vector<BrowserAccessibility*> children_; 388 std::vector<BrowserAccessibility*> children_;
530 389
531 // Accessibility metadata from the renderer, used to respond to MSAA 390 // Accessibility metadata from the renderer, used to respond to MSAA
532 // events. 391 // events.
533 string16 name_; 392 string16 name_;
534 string16 value_; 393 string16 value_;
535 std::map<int32, string16> attributes_; 394 std::map<int32, string16> attributes_;
536 std::vector<std::pair<string16, string16> > html_attributes_;
537 395
538 LONG role_; 396 LONG role_;
539 LONG state_; 397 LONG state_;
540 string16 role_name_; 398 string16 role_name_;
541 LONG ia2_role_; 399 LONG ia2_role_;
542 LONG ia2_state_; 400 LONG ia2_state_;
543 WebKit::WebRect location_; 401 WebKit::WebRect location_;
544 402
545 // COM objects are reference-counted. When we're done with this object 403 // COM objects are reference-counted. When we're done with this object
546 // and it's removed from our accessibility tree, a client may still be 404 // and it's removed from our accessibility tree, a client may still be
547 // holding onto a pointer to this object, so we mark it as inactive 405 // holding onto a pointer to this object, so we mark it as inactive
548 // so that calls to any of this object's methods immediately return 406 // so that calls to any of this object's methods immediately return
549 // failure. 407 // failure.
550 bool instance_active_; 408 bool instance_active_;
551 409
552 DISALLOW_COPY_AND_ASSIGN(BrowserAccessibility); 410 DISALLOW_COPY_AND_ASSIGN(BrowserAccessibility);
553 }; 411 };
554 412
555 #endif // CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_ 413 #endif // CHROME_BROWSER_BROWSER_ACCESSIBILITY_WIN_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/browser_accessibility_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698