/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ include protocol PFileDescriptorSet; include protocol PBrowser; using mozilla::a11y::IAccessibleHolder from "mozilla/a11y/IPCTypes.h"; using mozilla::WindowsHandle from "ipc/IPCMessageUtils.h"; namespace mozilla { namespace a11y { struct AccessibleData { uint64_t ID; int32_t MsaaID; uint32_t Role; uint32_t ChildrenCount; uint32_t Interfaces; }; struct ShowEventData { uint64_t ID; uint32_t Idx; AccessibleData[] NewTree; }; struct Attribute { nsCString Name; nsString Value; }; sync protocol PDocAccessible { manager PBrowser; parent: async Shutdown(); /* * Notify the parent process the document in the child process is firing an * event. */ async Event(uint64_t aID, uint32_t type); async ShowEvent(ShowEventData data, bool aFromUser); async HideEvent(uint64_t aRootID, bool aFromUser); async StateChangeEvent(uint64_t aID, uint64_t aState, bool aEnabled); async CaretMoveEvent(uint64_t aID, int32_t aOffset); async TextChangeEvent(uint64_t aID, nsString aStr, int32_t aStart, uint32_t aLen, bool aIsInsert, bool aFromUser); async SelectionEvent(uint64_t aID, uint64_t aWidgetID, uint32_t aType); async RoleChangedEvent(uint32_t aRole); /* * Tell the parent document to bind the existing document as a new child * document. */ async BindChildDoc(PDocAccessible aChildDoc, uint64_t aID); sync GetWindowedPluginIAccessible(WindowsHandle aHwnd) returns (IAccessibleHolder aPluginCOMProxy); child: async ParentCOMProxy(IAccessibleHolder aParentCOMProxy); async __delete__(); }; } }