2012-05-23 09:21:40 +00:00
|
|
|
/* -*- 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_logs_h__
|
|
|
|
#define mozilla_a11y_logs_h__
|
|
|
|
|
|
|
|
#include "nscore.h"
|
|
|
|
#include "nsAString.h"
|
|
|
|
|
|
|
|
class AccEvent;
|
2012-05-29 01:18:45 +00:00
|
|
|
class Accessible;
|
2012-05-27 09:01:40 +00:00
|
|
|
class DocAccessible;
|
2012-06-01 04:27:25 +00:00
|
|
|
|
2012-05-23 09:21:40 +00:00
|
|
|
class nsIDocument;
|
2012-06-01 04:27:25 +00:00
|
|
|
class nsINode;
|
2012-05-23 09:21:40 +00:00
|
|
|
class nsIRequest;
|
2012-06-02 01:58:44 +00:00
|
|
|
class nsISelection;
|
2012-05-23 09:21:40 +00:00
|
|
|
class nsIWebProgress;
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace a11y {
|
2012-06-01 04:26:28 +00:00
|
|
|
|
|
|
|
class OuterDocAccessible;
|
|
|
|
|
2012-05-23 09:21:40 +00:00
|
|
|
namespace logging {
|
|
|
|
|
|
|
|
enum EModules {
|
|
|
|
eDocLoad = 1 << 0,
|
|
|
|
eDocCreate = 1 << 1,
|
|
|
|
eDocDestroy = 1 << 2,
|
2012-05-29 17:15:35 +00:00
|
|
|
eDocLifeCycle = eDocLoad | eDocCreate | eDocDestroy,
|
2012-06-02 01:58:44 +00:00
|
|
|
|
|
|
|
eEvents = 1 << 3,
|
|
|
|
ePlatforms = 1 << 4,
|
|
|
|
eStack = 1 << 5,
|
|
|
|
eText = 1 << 6,
|
|
|
|
eTree = 1 << 7,
|
|
|
|
|
|
|
|
eDOMEvents = 1 << 8,
|
|
|
|
eFocus = 1 << 9,
|
|
|
|
eSelection = 1 << 10,
|
|
|
|
eNotifications = eDOMEvents | eSelection | eFocus
|
2012-05-23 09:21:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
2012-06-01 04:27:25 +00:00
|
|
|
* Return true if any of the given modules is logged.
|
2012-05-23 09:21:40 +00:00
|
|
|
*/
|
2012-06-01 04:27:25 +00:00
|
|
|
bool IsEnabled(PRUint32 aModules);
|
2012-05-23 09:21:40 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Log the document loading progress.
|
|
|
|
*/
|
|
|
|
void DocLoad(const char* aMsg, nsIWebProgress* aWebProgress,
|
|
|
|
nsIRequest* aRequest, PRUint32 aStateFlags);
|
|
|
|
void DocLoad(const char* aMsg, nsIDocument* aDocumentNode);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Log that document load event was fired.
|
|
|
|
*/
|
|
|
|
void DocLoadEventFired(AccEvent* aEvent);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Log that document laod event was handled.
|
|
|
|
*/
|
|
|
|
void DocLoadEventHandled(AccEvent* aEvent);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Log the document was created.
|
|
|
|
*/
|
|
|
|
void DocCreate(const char* aMsg, nsIDocument* aDocumentNode,
|
2012-05-27 09:01:40 +00:00
|
|
|
DocAccessible* aDocument = nsnull);
|
2012-05-23 09:21:40 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Log the document was destroyed.
|
|
|
|
*/
|
|
|
|
void DocDestroy(const char* aMsg, nsIDocument* aDocumentNode,
|
2012-05-27 09:01:40 +00:00
|
|
|
DocAccessible* aDocument = nsnull);
|
2012-05-23 09:21:40 +00:00
|
|
|
|
|
|
|
/**
|
2012-06-01 04:26:28 +00:00
|
|
|
* Log the outer document was destroyed.
|
|
|
|
*/
|
|
|
|
void OuterDocDestroy(OuterDocAccessible* OuterDoc);
|
|
|
|
|
2012-06-02 01:58:44 +00:00
|
|
|
/**
|
|
|
|
* Log the selection change.
|
|
|
|
*/
|
|
|
|
void SelChange(nsISelection* aSelection, DocAccessible* aDocument);
|
|
|
|
|
2012-06-01 04:26:28 +00:00
|
|
|
/**
|
|
|
|
* Log the message ('title: text' format) on new line. Print the start and end
|
|
|
|
* boundaries of the message body designated by '{' and '}' (2 spaces indent for
|
|
|
|
* body).
|
2012-05-23 09:21:40 +00:00
|
|
|
*/
|
2012-06-01 04:26:28 +00:00
|
|
|
void MsgBegin(const char* aTitle, const char* aMsgText, ...);
|
|
|
|
void MsgEnd();
|
2012-05-23 09:21:40 +00:00
|
|
|
|
2012-06-01 04:27:25 +00:00
|
|
|
/**
|
2012-06-02 01:58:44 +00:00
|
|
|
* Log the entry into message body (4 spaces indent).
|
2012-06-01 04:27:25 +00:00
|
|
|
*/
|
|
|
|
void MsgEntry(const char* aEntryText, ...);
|
|
|
|
|
2012-05-23 09:21:40 +00:00
|
|
|
/**
|
|
|
|
* Log the text, two spaces offset is used.
|
|
|
|
*/
|
|
|
|
void Text(const char* aText);
|
|
|
|
|
|
|
|
/**
|
2012-06-02 01:58:44 +00:00
|
|
|
* Log the accessible object address as message entry (4 spaces indent).
|
2012-05-23 09:21:40 +00:00
|
|
|
*/
|
2012-05-29 01:18:45 +00:00
|
|
|
void Address(const char* aDescr, Accessible* aAcc);
|
2012-05-23 09:21:40 +00:00
|
|
|
|
2012-06-01 04:27:25 +00:00
|
|
|
/**
|
2012-06-02 01:58:44 +00:00
|
|
|
* Log the DOM node info as message entry.
|
2012-06-01 04:27:25 +00:00
|
|
|
*/
|
|
|
|
void Node(const char* aDescr, nsINode* aNode);
|
|
|
|
|
2012-05-23 09:21:40 +00:00
|
|
|
/**
|
|
|
|
* Log the call stack, two spaces offset is used.
|
|
|
|
*/
|
|
|
|
void Stack();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable logging of the specified modules, all other modules aren't logged.
|
|
|
|
*/
|
|
|
|
void Enable(const nsAFlatCString& aModules);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Enable logging of modules specified by A11YLOG environment variable,
|
|
|
|
* all other modules aren't logged.
|
|
|
|
*/
|
|
|
|
void CheckEnv();
|
|
|
|
|
|
|
|
} // namespace logs
|
|
|
|
} // namespace a11y
|
|
|
|
} // namespace mozilla
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|