Closed
Bug 1388006
Opened 7 years ago
Closed 7 years ago
accessibility module should use TextEditor and HTMLEditor instead of nsIEditor
Categories
(Core :: DOM: Editor, enhancement)
Core
DOM: Editor
Tracking
()
RESOLVED
FIXED
mozilla57
Tracking | Status | |
---|---|---|
firefox57 | --- | fixed |
People
(Reporter: masayuki, Assigned: masayuki)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
Currently, accessibility module uses nsIEditor because:
1. HTMLTextFieldAccessible::GetEditor() uses nsIDOMNSEditableElement and it returns nsIEditor.
2. DocAccessible and HyperTextAccessible uses nsIEditingSession. However, it returns nsIEditor due to bug1388001.
Assignee | ||
Comment 1•7 years ago
|
||
Assignee | ||
Comment 2•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment 4•7 years ago
|
||
mozreview-review |
Comment on attachment 8896936 [details]
Bug 1388006 - a11y module should use TextEditor and HTMLEditor instead of nsIEditor
https://reviewboard.mozilla.org/r/168226/#review173448
::: accessible/generic/DocAccessible.cpp:362
(Diff revision 1)
> docShell->GetEditingSession(getter_AddRefs(editingSession));
> if (!editingSession)
> return nullptr; // No editing session interface
>
> - nsCOMPtr<nsIEditor> editor;
> - editingSession->GetEditorForWindow(mDocumentNode->GetWindow(), getter_AddRefs(editor));
> + RefPtr<HTMLEditor> htmlEditor =
> + editingSession->GetHTMLEditorForWindow(mDocumentNode->GetWindow());
It appears you're somewhere ahead of trunk. I'm curious if this thing can return a raw pointer. If it did then we could make DocAccessible/HyperTextAccessible::GetEditor() method to return raw pointers too. It doesn't have to be part of this bug though.
::: accessible/generic/HyperTextAccessible.cpp:396
(Diff revision 1)
> - nsCOMPtr<nsIEditor> editor = GetEditor();
> - if (editor) {
> + RefPtr<TextEditor> textEditor = GetEditor();
> + if (textEditor) {
> bool isEmpty = false;
> - editor->GetDocumentIsEmpty(&isEmpty);
> + textEditor->GetDocumentIsEmpty(&isEmpty);
> if (isEmpty) {
> - nsCOMPtr<nsIDOMElement> editorRootElm;
> + nsCOMPtr<nsINode> editorRoot = textEditor->GetRoot();
can you use non-refcounting version of GetRoot (https://dxr.mozilla.org/mozilla-central/source/editor/libeditor/EditorBase.h#930)
::: accessible/generic/HyperTextAccessible.cpp:1558
(Diff revision 1)
>
> dom::Selection* domSel = frameSelection->GetSelection(aSelectionType);
> if (!domSel)
> return;
>
> nsCOMPtr<nsINode> startNode = GetNode();
it appears, you can use a raw pointer nsINode* here
Attachment #8896936 -
Flags: review?(surkov.alexander) → review+
Assignee | ||
Comment 5•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8896936 [details]
Bug 1388006 - a11y module should use TextEditor and HTMLEditor instead of nsIEditor
https://reviewboard.mozilla.org/r/168226/#review173448
> It appears you're somewhere ahead of trunk. I'm curious if this thing can return a raw pointer. If it did then we could make DocAccessible/HyperTextAccessible::GetEditor() method to return raw pointers too. It doesn't have to be part of this bug though.
Fortunately, GetHTMLEditorForWindow() returns raw pointer. I'll file a follow up bug.
> can you use non-refcounting version of GetRoot (https://dxr.mozilla.org/mozilla-central/source/editor/libeditor/EditorBase.h#930)
Sure, it's safe here.
> it appears, you can use a raw pointer nsINode* here
Sure.
Assignee | ||
Comment 6•7 years ago
|
||
Comment hidden (mozreview-request) |
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/36c26078a53e
a11y module should use TextEditor and HTMLEditor instead of nsIEditor r=surkov
Comment 9•7 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Assignee | ||
Updated•5 years ago
|
Blocks: redesign-editor-scriptable-API
You need to log in
before you can comment on or make changes to this bug.
Description
•