mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
3f625686df
- Bug 1157064 - implementation of font-display. r=heycam,khuey (43fe566f45)
- Bug 1235186 - fix small userfont logging nit. r=m_kato (d40bead913)
- Bug 1188802 - only rebuild local webfont rules when needed. r=heycam (f74200aeb2)
- Backout unrelated code landed in dee3e26cc1c0 by mistake. (5d254b78b6)
- Bug 1236506: Add support for "-webkit-filter" as an alias for CSS property "filter". r=heycam (1e7ac6554a)
- Bug 1230426 - Remove support for -webkit-border-image longhand CSS property aliases. r=dholbert (a1a2d5e82a)
- Bug 1246101 - Restore some auto-completion for the align-/justify-* properties. r=dholbert (a33dd2e7c2)
- Bug 1195142 patch 1 - Set CSS_PROPERTY_CREATES_STACKING_CONTEXT for the opacity property. r=BenWa (e547f7b420)
- Bug 1195142 patch 2 - Add reftests for will-change creating a stacking context. r=BenWa (3bb9dc17b9)
- Bug 1195142 patch 3 - Link to correct specification URLs so the CSSWG test suite system is happy. (a8121cdcf0)
- Bug 1234966 - nsStylePosition::MaxDifference should include nsChangeHint_NeutralChange because CalcDiffrence returns it. r=heycam (aa0bf89e54)
- Bug 1244166: Don't ignore stroke/fill properties in high-contrast mode, since doing so can produce icons that are invisible or whose colors are unrelated to the user's chosen high-contrast colors. r=longsonr (6448b05118)
- Bug 1157057 - Rewrite the handling of the nsITimer object in nrappkitTimerCallback; r=ekr (7cc88409b0)
- Bug 1117984: added proxy connection state enum. r=bwc (0c643ff34a)
- Bug 1231971 - Refactor the NAT simulator to use e10s sockets when appropriate. r=drno (c0722c431b)
- Bug 1231973 - Allow NAT simulator to be enabled with the pref system. r=drno (c92ca4fefa)
- Bug 1201209 - Extend the timeout on socket readiness in test_nr_socket_unittest. r=drno (e9e5400902)
- Bug 1216815 - fix memory leaks in test TCP STUN server. r=mjf (11219f41fc)
- Bug 1194385 - Add new unit tests which demonstrate the current behavior. r=bwc (900c621491)
- crashreporte (2ac99868b6)
- Bug 1150966: Check whether |streams_| is null on stats methods in NrIceMediaStream. r=drno (130a9ac2da)
- Bug 1241690: reduce logging output for unconnected PCs. r=bwc (aa236d7184)
- Bug 1224845 - close sockets on errors and don't connect to IPv4 TURN TCP from IPv6 sockets. r=jesup (f128a67692)
- Bug 1189961 - added DNS AAAA convertion to nICEr transport addr. r=bwc (30c14fe7dd)
- Bug 1247536 - Fix -Wunreachable-code warning in media/mtransport/. r=drno (f6768f8539)
- Bug 1194259: nsresult != NS_IMETHODIMP rs=bustage (3a922e6e14)
- Bug 1237909 part 1 - Remove unused TransportLayer::RunOnThread function. r=bwc (d2d219d63a)
- Bug 1237909 part 2 - Do not return value from task for sync dispatch. r=froydnj (c5ec2aecfc)
- Bug 1245035 - Move LOCAL_INCLUDES to moz.build in media/omx-plugin/lib/ics/libvideoeditorplayer. r=mshal (54c363c9f7)
- Bug 1232069 - Check box sizes before alloc©. r=jya (86cfe660e7)
- Bug 1234778: Mark all audio frames as keyframes. r=kentuckyfriedtakahe (5e4f1b54d5)
- Bug 1231169 - report rust mp4parse track status in telemetry. r=kinetik,vladan (260d0fed99)
- Bug 1238420 - Update mp4parse-rust invocations in MP4Metadata to match CAPI changes. r=rillian (64c5d6a1ef)
- Bug 1238420 - Report mp4parse-rust errors via Telemetry. r=rillian,vladan (ff72f8dead)
- Bug 1219452 - Update script for rust mp4parser. r=kinetik (9abc268b60)
- Bug 1220754 - Update rust mp4parse import script for v0.1.3. r=kinetik (7185657598)
- Bug 1224785, Part 1 - Implement alert favicons backend. r=wchen (665c44b0cb)
- Bug 1224785, Part 2 - Show the site favicon in OS X notifications. r=mstange (814ff022ba)
- Bug 1224785, Part 3 - Don't include ShowWith{Icon}Backend on Android. r=me (fe323c2960)
- Bug 1243418 - Fix up incorrect 'aOverwrite' usage and impl in GLUploadHelpers r=jgilbert (67677b4921)
- clarify comment (88003aaf96)
- Bug 1204284: Show paper size options in OS X print dialog. r=smichaud (8bb40b4349)
- Bug 1214511 - Show copies, page range selection, and more on the expanded OSX print dialog. r=mstange (301d5cdccc)
- Bug 1216478 - prefer tooltiptext on a XUL element over title attribute on a containing toolbaritem when determining accessible name, r=surkov (ec1dfcad37)
- Bug 1248838 - ARIA owns change may fail, r=yzen (d183be3f3c)
- Bug 1222531 - turn off -Wextra-tokens on clang-cl in accessible/ directories; r=tbsaunde (6dd4dcae20)
- bug 1241453 - add DocAccessibleParent::GetXPCAccessible() r=davidb (f243398399)
- Bug 1087608 - eliminating a pref observer leak and fixing test timeout overflow that cause intermittents. r=eeejay (413354c349)
- Bug 1238368 - Re-introduce workaround for Android tap gesture. r=yzen (04bb9cea5a)
- Bug 1233863 - ARM64: Disable tests that require ion.enable = 1. r=jimb (b268c03c22)
- Bug 1191976 - Intentionally crash if we hit an IPC FatalError in the parent process. r=billm (b6e9d90d34)
- Bug 1194721: Add |DaemonRunnable8|, r=shuang (0b293cb8a5)
- Bug 1194721: Add PDU_ prefix to daemon PDU constants, r=shuang (834240b14b)
- Bug 1228546 - Implement peripheral mode support for GATT API. r=brsun, r=mrbkap (01a711cac6)
- Bug 1194721: Add helpers for Gonk sensors daemon, r=gsvelto (524d1d6792)
182 lines
5.4 KiB
C++
182 lines
5.4 KiB
C++
/* -*- 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/. */
|
|
|
|
#ifndef mozilla_a11y_DocAccessibleParent_h
|
|
#define mozilla_a11y_DocAccessibleParent_h
|
|
|
|
#include "nsAccessibilityService.h"
|
|
#include "ProxyAccessible.h"
|
|
#include "mozilla/a11y/PDocAccessibleParent.h"
|
|
#include "nsClassHashtable.h"
|
|
#include "nsHashKeys.h"
|
|
#include "nsISupportsImpl.h"
|
|
|
|
namespace mozilla {
|
|
namespace a11y {
|
|
|
|
class xpcAccessibleGeneric;
|
|
|
|
/*
|
|
* These objects live in the main process and comunicate with and represent
|
|
* an accessible document in a content process.
|
|
*/
|
|
class DocAccessibleParent : public ProxyAccessible,
|
|
public PDocAccessibleParent
|
|
{
|
|
public:
|
|
DocAccessibleParent() :
|
|
ProxyAccessible(this), mParentDoc(nullptr),
|
|
mTopLevel(false), mShutdown(false)
|
|
{ MOZ_COUNT_CTOR_INHERITED(DocAccessibleParent, ProxyAccessible); }
|
|
~DocAccessibleParent()
|
|
{
|
|
MOZ_COUNT_DTOR_INHERITED(DocAccessibleParent, ProxyAccessible);
|
|
MOZ_ASSERT(mChildDocs.Length() == 0);
|
|
MOZ_ASSERT(!ParentDoc());
|
|
}
|
|
|
|
void SetTopLevel() { mTopLevel = true; }
|
|
bool IsTopLevel() const { return mTopLevel; }
|
|
|
|
/*
|
|
* Called when a message from a document in a child process notifies the main
|
|
* process it is firing an event.
|
|
*/
|
|
virtual bool RecvEvent(const uint64_t& aID, const uint32_t& aType)
|
|
override;
|
|
|
|
virtual bool RecvShowEvent(const ShowEventData& aData) override;
|
|
virtual bool RecvHideEvent(const uint64_t& aRootID) override;
|
|
virtual bool RecvStateChangeEvent(const uint64_t& aID,
|
|
const uint64_t& aState,
|
|
const bool& aEnabled) override final;
|
|
|
|
virtual bool RecvCaretMoveEvent(const uint64_t& aID, const int32_t& aOffset)
|
|
override final;
|
|
|
|
virtual bool RecvTextChangeEvent(const uint64_t& aID, const nsString& aStr,
|
|
const int32_t& aStart, const uint32_t& aLen,
|
|
const bool& aIsInsert,
|
|
const bool& aFromUser) override;
|
|
|
|
virtual bool RecvBindChildDoc(PDocAccessibleParent* aChildDoc, const uint64_t& aID) override;
|
|
void Unbind()
|
|
{
|
|
mParent = nullptr;
|
|
if (DocAccessibleParent* parent = ParentDoc()) {
|
|
parent->mChildDocs.RemoveElement(this);
|
|
}
|
|
|
|
mParentDoc = nullptr;
|
|
}
|
|
|
|
virtual bool RecvShutdown() override;
|
|
void Destroy();
|
|
virtual void ActorDestroy(ActorDestroyReason aWhy) override
|
|
{
|
|
MOZ_DIAGNOSTIC_ASSERT(CheckDocTree());
|
|
if (!mShutdown)
|
|
Destroy();
|
|
}
|
|
|
|
/*
|
|
* Return the main processes representation of the parent document (if any)
|
|
* of the document this object represents.
|
|
*/
|
|
DocAccessibleParent* ParentDoc() const { return mParentDoc; }
|
|
|
|
/*
|
|
* Called when a document in a content process notifies the main process of a
|
|
* new child document.
|
|
*/
|
|
bool AddChildDoc(DocAccessibleParent* aChildDoc, uint64_t aParentID,
|
|
bool aCreating = true);
|
|
|
|
/*
|
|
* Called when the document in the content process this object represents
|
|
* notifies the main process a child document has been removed.
|
|
*/
|
|
void RemoveChildDoc(DocAccessibleParent* aChildDoc)
|
|
{
|
|
aChildDoc->Parent()->SetChildDoc(nullptr);
|
|
mChildDocs.RemoveElement(aChildDoc);
|
|
aChildDoc->mParentDoc = nullptr;
|
|
MOZ_ASSERT(aChildDoc->mChildDocs.Length() == 0);
|
|
}
|
|
|
|
void RemoveAccessible(ProxyAccessible* aAccessible)
|
|
{
|
|
MOZ_DIAGNOSTIC_ASSERT(mAccessibles.GetEntry(aAccessible->ID()));
|
|
mAccessibles.RemoveEntry(aAccessible->ID());
|
|
}
|
|
|
|
/**
|
|
* Return the accessible for given id.
|
|
*/
|
|
ProxyAccessible* GetAccessible(uintptr_t aID)
|
|
{
|
|
if (!aID)
|
|
return this;
|
|
|
|
ProxyEntry* e = mAccessibles.GetEntry(aID);
|
|
return e ? e->mProxy : nullptr;
|
|
}
|
|
|
|
const ProxyAccessible* GetAccessible(uintptr_t aID) const
|
|
{ return const_cast<DocAccessibleParent*>(this)->GetAccessible(aID); }
|
|
|
|
size_t ChildDocCount() const { return mChildDocs.Length(); }
|
|
const DocAccessibleParent* ChildDocAt(size_t aIdx) const
|
|
{ return mChildDocs[aIdx]; }
|
|
|
|
private:
|
|
|
|
class ProxyEntry : public PLDHashEntryHdr
|
|
{
|
|
public:
|
|
explicit ProxyEntry(const void*) : mProxy(nullptr) {}
|
|
ProxyEntry(ProxyEntry&& aOther) :
|
|
mProxy(aOther.mProxy) { aOther.mProxy = nullptr; }
|
|
~ProxyEntry() { delete mProxy; }
|
|
|
|
typedef uint64_t KeyType;
|
|
typedef const void* KeyTypePointer;
|
|
|
|
bool KeyEquals(const void* aKey) const
|
|
{ return mProxy->ID() == (uint64_t)aKey; }
|
|
|
|
static const void* KeyToPointer(uint64_t aKey) { return (void*)aKey; }
|
|
|
|
static PLDHashNumber HashKey(const void* aKey) { return (uint64_t)aKey; }
|
|
|
|
enum { ALLOW_MEMMOVE = true };
|
|
|
|
ProxyAccessible* mProxy;
|
|
};
|
|
|
|
uint32_t AddSubtree(ProxyAccessible* aParent,
|
|
const nsTArray<AccessibleData>& aNewTree, uint32_t aIdx,
|
|
uint32_t aIdxInParent);
|
|
MOZ_WARN_UNUSED_RESULT bool CheckDocTree() const;
|
|
xpcAccessibleGeneric* GetXPCAccessible(ProxyAccessible* aProxy);
|
|
|
|
nsTArray<DocAccessibleParent*> mChildDocs;
|
|
DocAccessibleParent* mParentDoc;
|
|
|
|
/*
|
|
* Conceptually this is a map from IDs to proxies, but we store the ID in the
|
|
* proxy object so we can't use a real map.
|
|
*/
|
|
nsTHashtable<ProxyEntry> mAccessibles;
|
|
bool mTopLevel;
|
|
bool mShutdown;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|