mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
f617a91abb
- Bug 1167633 - Remove SpiderMonkey specific JS syntax from App Manager / WebIDE. r=pbrosset (882d61d26) - missing parts of Bug 932179 - Part 1: Expose security information in the WebConsoleActor. r=past (202d33c93) - Bug 1106470 - Drop SSLv3 support from devtools. r=vporof (4d6f99643) - Bug 955933 - Allow copying the network response string. r=vporof (0f1a79fe1) - Follow-up nit to bug 1147648 (alphabetize prefs). r=kats (e251ec2e5) - Bug 1155252 * -WError fix (2d4c016d2) - Disable layers acceleration on Windows if the last startup crashed during driver initialization. (bug 1168935, r=mattwoodrow) (cb4769ace) - Add telemetry for reporting graphics driver startup states. (bug 1168935 part 2, r=vdjeric,mattwoodrow) (a7a605d93) - Bug 1150715 - Implement "Copy Request/Response Headers" context menu items. r=jsantell (0eabd68f7) - part of Bug 1102219 - Part 4: Replace with in chrome code. r=till (dab16f660) - Bug 1150717 - Implement "Copy URL Parameters" context menu item. r=bgrins (f20e86e8f) - Bug 1158046 - Add access keys to all context menu items in the Network panel. r=bgrins r=jsantell (71fd1e050) - Remove static vars from DriverInitCrashDetection. (bug 1183910 part 1, r=mattwoodrow) (29ea344ce) - Bug 1151541, part 3 - Fix leading tabs in xpcom/. r=froydnj (eb1fa5c14) - Bug 1151541, part 1 - Add MPL2 to StaticMutex.h and stub_test.cpp. r=froydnj (bf00b19ee) - Bug 1140760 - Move TestXPIDLString.cpp to gtest and enable it; r=froydnj (7bea14ce1) - Bug 1140762 - Move TestThreads.cpp to gtest and enable it; r=froydnj (93a007768) - Bug 1151541, part 2 - Fix mode lines in xpcom/. r=froydnj (0ac8fd176) - Bug 1159751: Ensure WARP can never be used for Windows 7. r=milan (ad4a84b10) - Bug 1178426. Add GfxInfo to ServicesList.h. r=nfroyd (8e09c6349) - Bug 1158144 - Fix "Copy URL Parameters" line separation on Windows. r=vporof (d7359d740) - Bug 1158144 - Implement "Copy POST Data" context menu item. r=vporof (adddce05a) - Bug 1127423 - Don't scroll horizontally when selecting an element in markup view;r=jryans (3256aa5eb) - Bug 1159938 - Remove dead nodeChanged() function;r=pbrosset (213880754) - Bug 1153022 - Add trimOutput option to inplace editor;r=pbrosset (52228252a) - Bug 1120111 - Adds key listeners to highlighter pick mode to traverse DOM and submit/cancel selection; r=pbrosset (40f6e8e33) - Bug 1120111 - Tests for the highlighter pick mode key listeners; r=pbrosset (6c9ff1c95) - Bug 988278 - Fixes ESCape keypress mess in the inspector to make sure the split console opens; r=miker (d915ca7ae) - Bug 1153635 - Focus first focusable element in MarkupContainer when line is clicked; r=bgrins (f7b231d4c) - Bug 1158781 - Make sure attributes gets focused when clicked in the inspector. r=bgrins (d6e1521f3) - Bug 966787 - 1 - Code cleanup in breadcrumbs.js; r=bgrins For a better consistency with the rest of the DevTools codebase. (867a768c6) - fix imports again (180eb1ac7) - Bug 966787 - 2 - Skip inspector breadcrumb updates when the output doesn't change; r=bgrins (5bddce972) - Bug 892935 - Auto-expand elements with only text in the markup view;r=pbrosset,r=bgrins (6dddecd01)
145 lines
4.2 KiB
C++
145 lines
4.2 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=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_Module_h
|
|
#define mozilla_Module_h
|
|
|
|
#include "nscore.h"
|
|
#include "nsID.h"
|
|
#include "nsIFactory.h"
|
|
#include "nsCOMPtr.h" // for already_AddRefed
|
|
|
|
namespace mozilla {
|
|
|
|
/**
|
|
* A module implements one or more XPCOM components. This structure is used
|
|
* for both binary and script modules, but the registration members
|
|
* (cids/contractids/categoryentries) are unused for modules which are loaded
|
|
* via a module loader.
|
|
*/
|
|
struct Module
|
|
{
|
|
static const unsigned int kVersion = 38;
|
|
|
|
struct CIDEntry;
|
|
|
|
typedef already_AddRefed<nsIFactory> (*GetFactoryProcPtr)(
|
|
const Module& module, const CIDEntry& entry);
|
|
|
|
typedef nsresult (*ConstructorProcPtr)(nsISupports* aOuter,
|
|
const nsIID& aIID,
|
|
void** aResult);
|
|
|
|
typedef nsresult (*LoadFuncPtr)();
|
|
typedef void (*UnloadFuncPtr)();
|
|
|
|
/**
|
|
* This selector allows CIDEntrys to be marked so that they're only loaded
|
|
* into certain kinds of processes.
|
|
*/
|
|
enum ProcessSelector
|
|
{
|
|
ANY_PROCESS = 0,
|
|
MAIN_PROCESS_ONLY,
|
|
CONTENT_PROCESS_ONLY
|
|
};
|
|
|
|
/**
|
|
* The constructor callback is an implementation detail of the default binary
|
|
* loader and may be null.
|
|
*/
|
|
struct CIDEntry
|
|
{
|
|
const nsCID* cid;
|
|
bool service;
|
|
GetFactoryProcPtr getFactoryProc;
|
|
ConstructorProcPtr constructorProc;
|
|
ProcessSelector processSelector;
|
|
};
|
|
|
|
struct ContractIDEntry
|
|
{
|
|
const char* contractid;
|
|
nsID const* cid;
|
|
ProcessSelector processSelector;
|
|
};
|
|
|
|
struct CategoryEntry
|
|
{
|
|
const char* category;
|
|
const char* entry;
|
|
const char* value;
|
|
};
|
|
|
|
/**
|
|
* Binary compatibility check, should be kModuleVersion.
|
|
*/
|
|
unsigned int mVersion;
|
|
|
|
/**
|
|
* An array of CIDs (class IDs) implemented by this module. The final entry
|
|
* should be { nullptr }.
|
|
*/
|
|
const CIDEntry* mCIDs;
|
|
|
|
/**
|
|
* An array of mappings from contractid to CID. The final entry should
|
|
* be { nullptr }.
|
|
*/
|
|
const ContractIDEntry* mContractIDs;
|
|
|
|
/**
|
|
* An array of category manager entries. The final entry should be
|
|
* { nullptr }.
|
|
*/
|
|
const CategoryEntry* mCategoryEntries;
|
|
|
|
/**
|
|
* When the component manager tries to get the factory for a CID, it first
|
|
* checks for this module-level getfactory callback. If this function is
|
|
* not implemented, it checks the CIDEntry getfactory callback. If that is
|
|
* also nullptr, a generic factory is generated using the CIDEntry
|
|
* constructor callback which must be non-nullptr.
|
|
*/
|
|
GetFactoryProcPtr getFactoryProc;
|
|
|
|
/**
|
|
* Optional Function which are called when this module is loaded and
|
|
* at shutdown. These are not C++ constructor/destructors to avoid
|
|
* calling them too early in startup or too late in shutdown.
|
|
*/
|
|
LoadFuncPtr loadProc;
|
|
UnloadFuncPtr unloadProc;
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#if defined(MOZILLA_INTERNAL_API)
|
|
# define NSMODULE_NAME(_name) _name##_NSModule
|
|
# if defined(_MSC_VER)
|
|
# pragma section(".kPStaticModules$M", read)
|
|
# pragma comment(linker, "/merge:.kPStaticModules=.rdata")
|
|
# define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$M"), dllexport)
|
|
# elif defined(__GNUC__)
|
|
# if defined(__ELF__)
|
|
# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), visibility("default")))
|
|
# elif defined(__MACH__)
|
|
# define NSMODULE_SECTION __attribute__((section("__DATA, .kPStaticModules"), visibility("default")))
|
|
# elif defined (_WIN32)
|
|
# define NSMODULE_SECTION __attribute__((section(".kPStaticModules"), dllexport))
|
|
# endif
|
|
# endif
|
|
# if !defined(NSMODULE_SECTION)
|
|
# error Do not know how to define sections.
|
|
# endif
|
|
# define NSMODULE_DEFN(_name) extern NSMODULE_SECTION mozilla::Module const *const NSMODULE_NAME(_name)
|
|
#else
|
|
# define NSMODULE_NAME(_name) NSModule
|
|
# define NSMODULE_DEFN(_name) extern "C" NS_EXPORT mozilla::Module const *const NSModule
|
|
#endif
|
|
|
|
#endif // mozilla_Module_h
|