зеркало из https://github.com/mozilla/gecko-dev.git
Merge m-c to b2g-inbound.
This commit is contained in:
Коммит
832d95d373
2
CLOBBER
2
CLOBBER
|
@ -22,4 +22,4 @@
|
|||
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
|
||||
# don't change CLOBBER for WebIDL changes any more.
|
||||
|
||||
Bug 964200 - Touching webidl files in this bug doesn't work without a clobber. Tried landing already and had to back out.
|
||||
Bug 969164 changes the directory layout under js/src during gecko builds, and that causes a build failure on incremental builds because of the js shell trying to replace a directory with the same name.
|
||||
|
|
71
Makefile.in
71
Makefile.in
|
@ -23,14 +23,6 @@ endif
|
|||
|
||||
include $(topsrcdir)/config/config.mk
|
||||
|
||||
ifndef LIBXUL_SDK
|
||||
ifdef COMPILE_ENVIRONMENT
|
||||
ifndef BUILDING_JS
|
||||
BUILD_JS = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
GARBAGE_DIRS += dist _javagen _profile staticlib
|
||||
DIST_GARBAGE = config.cache config.log config.status* config-defs.h \
|
||||
config/autoconf.mk \
|
||||
|
@ -38,7 +30,7 @@ DIST_GARBAGE = config.cache config.log config.status* config-defs.h \
|
|||
netwerk/necko-config.h xpcom/xpcom-config.h xpcom/xpcom-private.h \
|
||||
.mozconfig.mk
|
||||
|
||||
ifdef BUILDING_JS
|
||||
ifdef JS_STANDALONE
|
||||
configure_dir = $(topsrcdir)/js/src
|
||||
else
|
||||
configure_dir = $(topsrcdir)
|
||||
|
@ -48,12 +40,12 @@ ifndef MOZ_PROFILE_USE
|
|||
# We need to explicitly put backend.RecursiveMakeBackend here
|
||||
# otherwise the rule in rules.mk doesn't run early enough.
|
||||
libs binaries export tools:: CLOBBER $(configure_dir)/configure config.status backend.RecursiveMakeBackend
|
||||
ifdef BUILD_JS
|
||||
libs binaries export tools:: js-config-status
|
||||
ifndef JS_STANDALONE
|
||||
libs binaries export tools:: $(topsrcdir)/js/src/configure js/src/config.status
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef BUILDING_JS
|
||||
ifdef JS_STANDALONE
|
||||
.PHONY: CLOBBER
|
||||
CLOBBER:
|
||||
else
|
||||
|
@ -64,17 +56,21 @@ CLOBBER: $(topsrcdir)/CLOBBER
|
|||
@exit 1
|
||||
endif
|
||||
|
||||
$(configure_dir)/configure: $(configure_dir)/configure.in
|
||||
@echo 'STOP! configure.in has changed, and your configure is out of date.'
|
||||
$(topsrcdir)/configure: $(topsrcdir)/configure.in
|
||||
$(topsrcdir)/js/src/configure: $(topsrcdir)/js/src/configure.in
|
||||
$(topsrcdir)/configure $(topsrcdir)/js/src/configure:
|
||||
@echo 'STOP! $^ has changed, and your configure is out of date.'
|
||||
@echo 'Please rerun autoconf and re-configure your build directory.'
|
||||
@echo 'To ignore this message, touch "configure" in the source directory,'
|
||||
@echo 'To ignore this message, touch "$@",'
|
||||
@echo 'but your build might not succeed.'
|
||||
@exit 1
|
||||
|
||||
config.status: $(configure_dir)/configure
|
||||
@echo 'STOP! configure has changed and needs to be run in this build directory.'
|
||||
@echo 'Please rerun configure.'
|
||||
@echo 'To ignore this message, touch "config.status" in the build directory,'
|
||||
js/src/config.status: $(topsrcdir)/js/src/configure
|
||||
config.status js/src/config.status:
|
||||
@echo 'STOP! $^ has changed and needs to be run again.'
|
||||
@echo 'Please rerun it.'
|
||||
@echo 'To ignore this message, touch "$(CURDIR)/$@",'
|
||||
@echo 'but your build might not succeed.'
|
||||
@exit 1
|
||||
|
||||
|
@ -96,12 +92,6 @@ include backend.RecursiveMakeBackend.pp
|
|||
|
||||
default:: backend.RecursiveMakeBackend
|
||||
|
||||
ifdef BUILD_JS
|
||||
.PHONY: js-config-status
|
||||
js-config-status:
|
||||
$(call SUBMAKE,backend.RecursiveMakeBackend,js/src,1)
|
||||
endif
|
||||
|
||||
install_manifests := bin idl include public private sdk
|
||||
install_manifest_depends = \
|
||||
CLOBBER \
|
||||
|
@ -110,8 +100,11 @@ install_manifest_depends = \
|
|||
backend.RecursiveMakeBackend \
|
||||
$(NULL)
|
||||
|
||||
ifdef BUILD_JS
|
||||
install_manifest_depends += js-config-status
|
||||
ifndef JS_STANDALONE
|
||||
install_manifest_depends += \
|
||||
$(topsrcdir)/js/src/configure \
|
||||
js/src/config.status \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
.PHONY: install-manifests
|
||||
|
@ -119,24 +112,21 @@ install-manifests: $(addprefix install-dist-,$(install_manifests))
|
|||
|
||||
# process_install_manifest needs to be invoked with --no-remove when building
|
||||
# js as standalone because automated builds are building nspr separately and
|
||||
# that would remove the resulting files. It is also necessary when building
|
||||
# js as part of gecko because that would remove the files exported from gecko.
|
||||
# that would remove the resulting files.
|
||||
# Eventually, a standalone js build would just be able to build nspr itself,
|
||||
# removing the need for the former. But that won't likely happen before
|
||||
# finishing to merge gecko and js build systems, removing the need for the
|
||||
# latter.
|
||||
ifdef BUILDING_JS
|
||||
# removing the need for the former.
|
||||
ifdef JS_STANDALONE
|
||||
NO_REMOVE=1
|
||||
endif
|
||||
|
||||
.PHONY: $(addprefix install-dist-,$(install_manifests))
|
||||
$(addprefix install-dist-,$(install_manifests)): install-dist-%: $(install_manifest_depends)
|
||||
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )$(DIST)/$* _build_manifests/install/dist_$* $(if $(BUILD_JS),js/src/_build_manifests/install/dist_$*))
|
||||
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )$(DIST)/$* _build_manifests/install/dist_$*)
|
||||
|
||||
.PHONY: install-tests
|
||||
install-manifests: install-tests
|
||||
install-tests: $(install_manifest_depends)
|
||||
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )_tests _build_manifests/install/tests $(if $(BUILD_JS),js/src/_build_manifests/install/tests))
|
||||
$(call py_action,process_install_manifest,$(if $(NO_REMOVE),--no-remove )_tests _build_manifests/install/tests)
|
||||
|
||||
|
||||
# _tests should be purged during cleaning. However, we don't want it purged
|
||||
|
@ -166,7 +156,7 @@ endif
|
|||
# with no regard for PGO passes. This decision could probably be revisited.
|
||||
export:: install-dist-sdk
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
ifdef ENABLE_TESTS
|
||||
# Additional makefile targets to call automated test suites
|
||||
include $(topsrcdir)/testing/testsuite-targets.mk
|
||||
|
@ -210,7 +200,7 @@ endif
|
|||
|
||||
SYM_STORE_SOURCE_DIRS := $(topsrcdir)
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
|
||||
|
||||
ifdef MOZ_SYMBOLS_EXTRA_BUILDID
|
||||
|
@ -281,7 +271,7 @@ check::
|
|||
@relcount=`find $(DIST)/bin -name '*.so' | xargs objdump -R | grep R_386_PC32 | wc -l` && if test $$relcount -gt 0; then echo 'FAILED: R_386_PC32 relocations detected in a shared library. Did you use a system header without adding it to config/system-headers?'; exit 1; else echo 'PASSED'; fi
|
||||
endif
|
||||
|
||||
ifdef BUILDING_JS
|
||||
ifdef JS_STANDALONE
|
||||
# Delegate js-specific rules to js
|
||||
check-%:
|
||||
$(MAKE) -C js/src $@
|
||||
|
@ -294,10 +284,7 @@ source-package install:
|
|||
.PHONY: config/export
|
||||
config/export:
|
||||
|
||||
else
|
||||
|
||||
ifdef BUILD_JS
|
||||
js/src/Makefile: subsrcdir := js/src
|
||||
endif
|
||||
|
||||
ifdef MOZ_PSEUDO_DERECURSE
|
||||
# Interdependencies for parallel export.
|
||||
|
@ -308,5 +295,3 @@ ifdef ENABLE_CLANG_PLUGIN
|
|||
js/src/export config/export: build/clang-plugin/export
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -689,6 +689,9 @@ getRoleCB(AtkObject *aAtkObj)
|
|||
|
||||
#undef ROLE
|
||||
|
||||
if (aAtkObj->role == ATK_ROLE_LIST_BOX && !IsAtkVersionAtLeast(2, 1))
|
||||
aAtkObj->role = ATK_ROLE_LIST;
|
||||
|
||||
return aAtkObj->role;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
using namespace mozilla;
|
||||
using namespace mozilla::a11y;
|
||||
|
||||
int atkMajorVersion = 1, atkMinorVersion = 12;
|
||||
|
||||
extern "C" {
|
||||
typedef GType (* AtkGetTypeType) (void);
|
||||
typedef void (*GnomeAccessibilityInit) (void);
|
||||
|
@ -144,6 +146,18 @@ a11y::PlatformInit()
|
|||
AtkSocketAccessible::g_atk_socket_embed;
|
||||
}
|
||||
|
||||
const char* (*atkGetVersion)() =
|
||||
(const char* (*)()) PR_FindFunctionSymbol(sATKLib, "atk_get_version");
|
||||
if (atkGetVersion) {
|
||||
const char* version = atkGetVersion();
|
||||
if (version) {
|
||||
char* endPtr = nullptr;
|
||||
atkMajorVersion = strtol(version, &endPtr, 10);
|
||||
if (*endPtr == '.')
|
||||
atkMinorVersion = strtol(endPtr + 1, &endPtr, 10);
|
||||
}
|
||||
}
|
||||
|
||||
// Load and initialize gail library.
|
||||
nsresult rv = LoadGtkModule(sGail);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
|
@ -336,4 +350,3 @@ static const char sGconfAccessibilityKey[] =
|
|||
|
||||
return sShouldEnable;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,4 +30,16 @@ GType mai_atk_object_get_type(void);
|
|||
GType mai_util_get_type();
|
||||
mozilla::a11y::AccessibleWrap* GetAccessibleWrap(AtkObject* aAtkObj);
|
||||
|
||||
extern int atkMajorVersion, atkMinorVersion;
|
||||
|
||||
/**
|
||||
* Return true if the loaded version of libatk-1.0.so is at least
|
||||
* aMajor.aMinor.0.
|
||||
*/
|
||||
static inline bool
|
||||
IsAtkVersionAtLeast(int aMajor, int aMinor)
|
||||
{
|
||||
return aMajor < atkMajorVersion && aMinor < atkMinorVersion;
|
||||
}
|
||||
|
||||
#endif /* __NS_MAI_H__ */
|
||||
|
|
|
@ -7,9 +7,11 @@
|
|||
#include "Accessible-inl.h"
|
||||
#include "AccIterator.h"
|
||||
#include "DocAccessible-inl.h"
|
||||
#include "HTMLImageMapAccessible.h"
|
||||
#include "nsAccessibilityService.h"
|
||||
#include "nsAccUtils.h"
|
||||
#include "nsEventShell.h"
|
||||
#include "nsImageFrame.h"
|
||||
#include "Role.h"
|
||||
|
||||
#include "nsEventStateManager.h"
|
||||
|
@ -37,7 +39,7 @@ FocusManager::FocusedAccessible() const
|
|||
if (focusedNode) {
|
||||
DocAccessible* doc =
|
||||
GetAccService()->GetDocAccessible(focusedNode->OwnerDoc());
|
||||
return doc ? doc->GetAccessibleOrContainer(focusedNode) : nullptr;
|
||||
return doc ? GetFocusableAccessibleFor(focusedNode, doc) : nullptr;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
@ -61,7 +63,7 @@ FocusManager::IsFocused(const Accessible* aAccessible) const
|
|||
DocAccessible* doc =
|
||||
GetAccService()->GetDocAccessible(focusedNode->OwnerDoc());
|
||||
return aAccessible ==
|
||||
(doc ? doc->GetAccessibleOrContainer(focusedNode) : nullptr);
|
||||
(doc ? GetFocusableAccessibleFor(focusedNode, doc) : nullptr);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -241,12 +243,15 @@ FocusManager::ProcessDOMFocus(nsINode* aTarget)
|
|||
DocAccessible* document =
|
||||
GetAccService()->GetDocAccessible(aTarget->OwnerDoc());
|
||||
|
||||
Accessible* target = document->GetAccessibleOrContainer(aTarget);
|
||||
Accessible* target = GetFocusableAccessibleFor(aTarget, document);
|
||||
if (target && document) {
|
||||
// Check if still focused. Otherwise we can end up with storing the active
|
||||
// item for control that isn't focused anymore.
|
||||
Accessible* DOMFocus =
|
||||
document->GetAccessibleOrContainer(FocusedDOMNode());
|
||||
nsINode* focusedNode = FocusedDOMNode();
|
||||
if (!focusedNode)
|
||||
return;
|
||||
|
||||
Accessible* DOMFocus = GetFocusableAccessibleFor(focusedNode, document);
|
||||
if (target != DOMFocus)
|
||||
return;
|
||||
|
||||
|
@ -274,8 +279,11 @@ FocusManager::ProcessFocusEvent(AccEvent* aEvent)
|
|||
// Check if still focused. Otherwise we can end up with storing the active
|
||||
// item for control that isn't focused anymore.
|
||||
DocAccessible* document = aEvent->GetDocAccessible();
|
||||
Accessible* DOMFocus = document->GetAccessibleOrContainer(FocusedDOMNode());
|
||||
nsINode* focusedNode = FocusedDOMNode();
|
||||
if (!focusedNode)
|
||||
return;
|
||||
|
||||
Accessible* DOMFocus = GetFocusableAccessibleFor(focusedNode, document);
|
||||
if (target != DOMFocus)
|
||||
return;
|
||||
|
||||
|
@ -289,6 +297,7 @@ FocusManager::ProcessFocusEvent(AccEvent* aEvent)
|
|||
// Fire menu start/end events for ARIA menus.
|
||||
if (target->IsARIARole(nsGkAtoms::menuitem)) {
|
||||
// The focus was moved into menu.
|
||||
bool tryOwnsParent = true;
|
||||
Accessible* ARIAMenubar = nullptr;
|
||||
Accessible* child = target;
|
||||
Accessible* parent = child->Parent();
|
||||
|
@ -304,14 +313,19 @@ FocusManager::ProcessFocusEvent(AccEvent* aEvent)
|
|||
if (roleMap->Is(nsGkAtoms::menuitem) || roleMap->Is(nsGkAtoms::menu)) {
|
||||
child = parent;
|
||||
parent = child->Parent();
|
||||
tryOwnsParent = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// If no required context role then check aria-owns relation.
|
||||
if (!tryOwnsParent)
|
||||
break;
|
||||
|
||||
RelatedAccIterator iter(child->Document(), child->GetContent(),
|
||||
nsGkAtoms::aria_owns);
|
||||
parent = iter.Next();
|
||||
tryOwnsParent = false;
|
||||
}
|
||||
|
||||
if (ARIAMenubar != mActiveARIAMenubar) {
|
||||
|
@ -394,3 +408,28 @@ FocusManager::FocusedDOMDocument() const
|
|||
nsINode* focusedNode = FocusedDOMNode();
|
||||
return focusedNode ? focusedNode->OwnerDoc() : nullptr;
|
||||
}
|
||||
|
||||
Accessible*
|
||||
FocusManager::GetFocusableAccessibleFor(nsINode* aNode,
|
||||
DocAccessible* aDoc) const
|
||||
{
|
||||
if (!aNode->IsContent() || !aNode->AsContent()->IsHTML(nsGkAtoms::area))
|
||||
return aDoc->GetAccessibleOrContainer(aNode);
|
||||
|
||||
// XXX Bug 135040, incorrect when multiple images use the same map.
|
||||
nsIFrame* frame = aNode->AsContent()->GetPrimaryFrame();
|
||||
nsImageFrame* imageFrame = do_QueryFrame(frame);
|
||||
if (imageFrame) {
|
||||
Accessible* parent = aDoc->GetAccessible(imageFrame->GetContent());
|
||||
if (parent) {
|
||||
Accessible* area =
|
||||
parent->AsImageMap()->GetChildAccessibleFor(aNode);
|
||||
if (area)
|
||||
return area;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return aDoc->GetAccessibleOrContainer(aNode);
|
||||
}
|
||||
|
|
|
@ -123,6 +123,12 @@ private:
|
|||
*/
|
||||
nsIDocument* FocusedDOMDocument() const;
|
||||
|
||||
/**
|
||||
* Return accessible for a focusable node.
|
||||
*/
|
||||
Accessible* GetFocusableAccessibleFor(nsINode* aNode,
|
||||
DocAccessible* aDoc) const;
|
||||
|
||||
private:
|
||||
nsRefPtr<Accessible> mActiveItem;
|
||||
nsRefPtr<Accessible> mActiveARIAMenubar;
|
||||
|
|
|
@ -970,7 +970,7 @@ ROLE(RICH_OPTION,
|
|||
|
||||
ROLE(LISTBOX,
|
||||
"listbox",
|
||||
ATK_ROLE_LIST,
|
||||
ATK_ROLE_LIST_BOX,
|
||||
NSAccessibilityListRole,
|
||||
ROLE_SYSTEM_LIST,
|
||||
ROLE_SYSTEM_LIST,
|
||||
|
|
|
@ -133,6 +133,19 @@ HTMLImageMapAccessible::UpdateChildAreas(bool aDoFireEvents)
|
|||
mDoc->FireDelayedEvent(reorderEvent);
|
||||
}
|
||||
|
||||
Accessible*
|
||||
HTMLImageMapAccessible::GetChildAccessibleFor(const nsINode* aNode) const
|
||||
{
|
||||
uint32_t length = mChildren.Length();
|
||||
for (uint32_t i = 0; i < length; i++) {
|
||||
Accessible* area = mChildren[i];
|
||||
if (area->GetContent() == aNode)
|
||||
return area;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// HTMLImageMapAccessible: Accessible protected
|
||||
|
||||
|
|
|
@ -38,6 +38,11 @@ public:
|
|||
*/
|
||||
void UpdateChildAreas(bool aDoFireEvents = true);
|
||||
|
||||
/**
|
||||
* Return accessible of child node.
|
||||
*/
|
||||
Accessible* GetChildAccessibleFor(const nsINode* aNode) const;
|
||||
|
||||
protected:
|
||||
|
||||
// Accessible
|
||||
|
|
|
@ -170,6 +170,8 @@
|
|||
gQueue.push(new focusMenu("menubar4", "mb4-item1"));
|
||||
gQueue.push(new focusMenu("menubar5", "mb5-mi"));
|
||||
|
||||
gQueue.push(new synthFocus("mi6"));
|
||||
|
||||
gQueue.invoke(); // Will call SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
@ -210,6 +212,11 @@
|
|||
title="menustart/end events may be missed when top level menuitem is focused">
|
||||
Bug 934460
|
||||
</a>
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=970005"
|
||||
title="infinite long loop in a11y:FocusManager::ProcessFocusEvent">
|
||||
Bug 970005
|
||||
</a>
|
||||
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
|
@ -265,6 +272,10 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- other aria-owns relations -->
|
||||
<div id="mi6" tabindex="0" role="menuitem">aria-owned item</div>
|
||||
<div aria-owns="mi6">Obla</div>
|
||||
|
||||
<div id="eventdump"></div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -44,6 +44,16 @@
|
|||
}
|
||||
}
|
||||
|
||||
function imageMapChecker(aID)
|
||||
{
|
||||
var node = getNode(aID);
|
||||
this.type = EVENT_FOCUS;
|
||||
this.match = function imageMapChecker_match(aEvent)
|
||||
{
|
||||
return aEvent.DOMNode == node;
|
||||
}
|
||||
}
|
||||
|
||||
function topMenuChecker()
|
||||
{
|
||||
this.type = EVENT_FOCUS;
|
||||
|
@ -115,6 +125,9 @@
|
|||
gQueue.push(new synthShiftTab("link", new focusChecker("link")));
|
||||
} // ! SEAMONKEY
|
||||
|
||||
gQueue.push(new synthFocus("a", new imageMapChecker("a")));
|
||||
gQueue.push(new synthFocus("b", new imageMapChecker("b")));
|
||||
|
||||
gQueue.invoke(); // Will call SimpleTest.finish();
|
||||
}
|
||||
|
||||
|
@ -139,6 +152,11 @@
|
|||
title="Rework accessible focus handling">
|
||||
Mozilla Bug 673958
|
||||
</a>
|
||||
<a target="_blank"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=961696"
|
||||
title="Accessible object:state-changed:focused events for imagemap links are broken">
|
||||
Mozilla Bug 961696
|
||||
</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
|
@ -150,6 +168,12 @@
|
|||
<a id="link" href="">link</a>
|
||||
<iframe id="editabledoc" src="about:blank"></iframe>
|
||||
|
||||
<map name="atoz_map">
|
||||
<area id="a" coords="0,0,13,14" shape="rect">
|
||||
<area id="b" coords="17,0,30,14" shape="rect">
|
||||
</map>
|
||||
<img width="447" height="15" usemap="#atoz_map" src="../letters.gif">
|
||||
|
||||
<div id="eventdump"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -31,6 +31,7 @@ builtin(include, build/autoconf/linux.m4)dnl
|
|||
builtin(include, build/autoconf/python-virtualenv.m4)dnl
|
||||
builtin(include, build/autoconf/winsdk.m4)dnl
|
||||
builtin(include, build/autoconf/icu.m4)dnl
|
||||
builtin(include, build/autoconf/ffi.m4)dnl
|
||||
|
||||
MOZ_PROG_CHECKMSYS()
|
||||
|
||||
|
|
|
@ -27,14 +27,8 @@ LIBS += \
|
|||
$(NULL)
|
||||
endif
|
||||
OS_LDFLAGS += -Wl,--export-dynamic
|
||||
LOCAL_INCLUDES += -I$(topsrcdir)/widget/gonk/libdisplay
|
||||
endif
|
||||
|
||||
LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
|
||||
LOCAL_INCLUDES += -I$(topsrcdir)/xpcom/base
|
||||
LOCAL_INCLUDES += -I$(topsrcdir)/xpcom/build
|
||||
LOCAL_INCLUDES += -I$(DEPTH)/build
|
||||
|
||||
STL_FLAGS=
|
||||
|
||||
LIBS += $(JEMALLOC_LIBS)
|
||||
|
|
|
@ -20,3 +20,18 @@ DEFINES['XPCOM_GLUE'] = True
|
|||
|
||||
for var in ('MOZ_APP_NAME', 'MOZ_APP_VERSION', 'MOZ_UPDATER'):
|
||||
DEFINES[var] = CONFIG[var]
|
||||
|
||||
GENERATED_INCLUDES += [
|
||||
'/build',
|
||||
]
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/toolkit/xre',
|
||||
'/xpcom/base',
|
||||
'/xpcom/build',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
LOCAL_INCLUDES += [
|
||||
'/widget/gonk/libdisplay',
|
||||
]
|
||||
|
|
|
@ -72,7 +72,7 @@ static bool IsArg(const char* arg, const char* s)
|
|||
return !strcasecmp(arg, s);
|
||||
}
|
||||
|
||||
#if defined(XP_WIN) || defined(XP_OS2)
|
||||
#if defined(XP_WIN)
|
||||
if (*arg == '/')
|
||||
return !strcasecmp(++arg, s);
|
||||
#endif
|
||||
|
|
|
@ -104,13 +104,9 @@
|
|||
#endif
|
||||
@BINPATH@/application.ini
|
||||
@BINPATH@/platform.ini
|
||||
#ifndef XP_OS2
|
||||
#ifndef MOZ_FOLD_LIBS
|
||||
@BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@
|
||||
#endif
|
||||
#else
|
||||
@BINPATH@/mozsqlt3@DLL_SUFFIX@
|
||||
#endif
|
||||
@BINPATH@/blocklist.xml
|
||||
@BINPATH@/ua-update.json
|
||||
#ifdef XP_UNIX
|
||||
|
@ -453,11 +449,7 @@
|
|||
@BINPATH@/components/nsSessionStore.js
|
||||
@BINPATH@/components/nsURLFormatter.manifest
|
||||
@BINPATH@/components/nsURLFormatter.js
|
||||
#ifndef XP_OS2
|
||||
@BINPATH@/components/@DLL_PREFIX@browsercomps@DLL_SUFFIX@
|
||||
#else
|
||||
@BINPATH@/components/brwsrcmp@DLL_SUFFIX@
|
||||
#endif
|
||||
@BINPATH@/components/txEXSLTRegExFunctions.manifest
|
||||
@BINPATH@/components/txEXSLTRegExFunctions.js
|
||||
@BINPATH@/components/toolkitplaces.manifest
|
||||
|
@ -749,11 +741,6 @@ bin/libfreebl_32int64_3.so
|
|||
bin/components/@DLL_PREFIX@nkgnomevfs@DLL_SUFFIX@
|
||||
#endif
|
||||
|
||||
; [OS/2]
|
||||
#ifdef XP_OS2
|
||||
@BINPATH@/MozSounds.cmd
|
||||
#endif
|
||||
|
||||
[b2g]
|
||||
#ifndef MOZ_WIDGET_GONK
|
||||
#ifdef XP_WIN32
|
||||
|
|
|
@ -26,13 +26,6 @@ endif #} LIBXUL_SDK
|
|||
|
||||
# Build a binary bootstrapping with XRE_main
|
||||
|
||||
LOCAL_INCLUDES += \
|
||||
-I$(topsrcdir)/toolkit/xre \
|
||||
-I$(topsrcdir)/xpcom/base \
|
||||
-I$(topsrcdir)/xpcom/build \
|
||||
-I$(DEPTH)/build \
|
||||
$(NULL)
|
||||
|
||||
STL_FLAGS=
|
||||
|
||||
LIBS += \
|
||||
|
@ -81,11 +74,6 @@ RCFLAGS += -DMOZ_PHOENIX --include-dir $(srcdir)
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
RCFLAGS += -DMOZ_PHOENIX
|
||||
RCFLAGS += -DFIREFOX_ICO='"$(DIST)/branding/firefox-os2.ico"' -DDOCUMENT_ICO='"$(DIST)/branding/document-os2.ico"'
|
||||
endif
|
||||
|
||||
PROGRAMS_DEST = $(DIST)/bin
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
@ -106,7 +94,7 @@ LDFLAGS += /HEAP:0x40000
|
|||
endif #}
|
||||
endif #}
|
||||
|
||||
ifneq (,$(filter-out OS2 WINNT,$(OS_ARCH)))
|
||||
ifneq (,$(filter-out WINNT,$(OS_ARCH)))
|
||||
|
||||
ifdef COMPILE_ENVIRONMENT
|
||||
libs::
|
||||
|
|
|
@ -218,5 +218,7 @@
|
|||
<true/>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>GeckoNSApplication</string>
|
||||
<key>NSDisablePersistence</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -22,3 +22,13 @@ for var in ('MOZILLA_OFFICIAL', 'LIBXUL_SDK'):
|
|||
DEFINES[var] = True
|
||||
|
||||
DEFINES['XPCOM_GLUE'] = True
|
||||
|
||||
GENERATED_INCLUDES += [
|
||||
'/build',
|
||||
]
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/toolkit/xre',
|
||||
'/xpcom/base',
|
||||
'/xpcom/build',
|
||||
]
|
||||
|
|
|
@ -110,7 +110,7 @@ static bool IsArg(const char* arg, const char* s)
|
|||
return !strcasecmp(arg, s);
|
||||
}
|
||||
|
||||
#if defined(XP_WIN) || defined(XP_OS2)
|
||||
#if defined(XP_WIN)
|
||||
if (*arg == '/')
|
||||
return !strcasecmp(++arg, s);
|
||||
#endif
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* 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 <os2.h>
|
||||
|
||||
// Splash screen dialog ID.
|
||||
#define IDD_SPLASH 100
|
||||
|
||||
// Splash screen bitmap ID.
|
||||
#define IDB_SPLASH 101
|
||||
|
||||
ICON 1 FIREFOX_ICO
|
||||
|
||||
DLGTEMPLATE IDD_SPLASH DISCARDABLE
|
||||
BEGIN
|
||||
DIALOG "", IDD_SPLASH, 0, 0, 390, 261, , FCF_BORDER
|
||||
BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
//BITMAP IDB_SPLASH "splash.bmp"
|
|
@ -153,11 +153,6 @@ var FeedHandler = {
|
|||
},
|
||||
|
||||
addFeed: function(link, browserForLink) {
|
||||
if (!browserForLink) {
|
||||
// ignore feeds loaded in subframes (see bug 305472)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!browserForLink.feeds)
|
||||
browserForLink.feeds = [];
|
||||
|
||||
|
|
|
@ -1910,9 +1910,12 @@
|
|||
// the fast path.
|
||||
if (closeWindow &&
|
||||
aCloseWindowFastpath &&
|
||||
this._removingTabs.length == 0 &&
|
||||
(this._windowIsClosing = window.closeWindow(true, window.warnAboutClosingWindow)))
|
||||
this._removingTabs.length == 0) {
|
||||
// This call actually closes the window, unless the user
|
||||
// cancels the operation. We are finished here in both cases.
|
||||
this._windowIsClosing = window.closeWindow(true, window.warnAboutClosingWindow);
|
||||
return null;
|
||||
}
|
||||
|
||||
newTab = true;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,9 @@ function test() {
|
|||
name: "provider 1",
|
||||
origin: "https://example.com",
|
||||
sidebarURL: "https://example.com/browser/browser/base/content/test/social/social_sidebar.html",
|
||||
statusURL: "https://example.com/browser/browser/base/content/test/social/social_panel.html",
|
||||
workerURL: "https://example.com/browser/browser/base/content/test/social/social_worker.js",
|
||||
markURL: "https://example.com/browser/browser/base/content/test/social/social_mark.html?url=%{url}",
|
||||
iconURL: "https://example.com/browser/browser/base/content/test/general/moz.png"
|
||||
};
|
||||
runSocialTestWithProvider(manifest, function (finishcb) {
|
||||
|
@ -68,10 +70,26 @@ var tests = {
|
|||
info("checking private window ui");
|
||||
ok(!pbwin.SocialUI.enabled, "social is disabled in a PB window");
|
||||
checkSocialUI(pbwin);
|
||||
|
||||
// but they should all remain enabled in the initial window
|
||||
info("checking main window ui");
|
||||
ok(window.SocialUI.enabled, "social is still enabled in normal window");
|
||||
checkSocialUI(window);
|
||||
|
||||
// Check that the status button is disabled on the private
|
||||
// browsing window and not on the normal window.
|
||||
let id = SocialStatus._toolbarHelper.idFromOrigin("https://example.com");
|
||||
let widget = CustomizableUI.getWidget(id);
|
||||
ok(widget.forWindow(pbwin).node.disabled, "status button disabled on private window");
|
||||
ok(!widget.forWindow(window).node.disabled, "status button enabled on normal window");
|
||||
|
||||
// Check that the mark button is disabled on the private
|
||||
// browsing window and not on the normal window.
|
||||
id = SocialMarks._toolbarHelper.idFromOrigin("https://example.com");
|
||||
widget = CustomizableUI.getWidget(id);
|
||||
ok(widget.forWindow(pbwin).node.disabled, "mark button disabled on private window");
|
||||
ok(!widget.forWindow(window).node.disabled, "mark button enabled on normal window");
|
||||
|
||||
// that's all folks...
|
||||
pbwin.close();
|
||||
next();
|
||||
|
|
|
@ -47,13 +47,6 @@ BRANDING_FILES := \
|
|||
$(NULL)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BRANDING_FILES := \
|
||||
firefox-os2.ico \
|
||||
document-os2.ico \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
BRANDING_DEST := $(DIST)/branding
|
||||
BRANDING_TARGET := export
|
||||
INSTALL_TARGETS += BRANDING
|
||||
|
|
Двоичные данные
browser/branding/aurora/document-os2.ico
Двоичные данные
browser/branding/aurora/document-os2.ico
Двоичный файл не отображается.
Двоичные данные
browser/branding/aurora/firefox-os2.ico
Двоичные данные
browser/branding/aurora/firefox-os2.ico
Двоичный файл не отображается.
|
@ -47,13 +47,6 @@ BRANDING_FILES := \
|
|||
$(NULL)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BRANDING_FILES := \
|
||||
firefox-os2.ico \
|
||||
document-os2.ico \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
BRANDING_DEST := $(DIST)/branding
|
||||
BRANDING_TARGET := export
|
||||
INSTALL_TARGETS += BRANDING
|
||||
|
|
Двоичные данные
browser/branding/nightly/document-os2.ico
Двоичные данные
browser/branding/nightly/document-os2.ico
Двоичный файл не отображается.
Двоичные данные
browser/branding/nightly/firefox-os2.ico
Двоичные данные
browser/branding/nightly/firefox-os2.ico
Двоичный файл не отображается.
|
@ -47,13 +47,6 @@ BRANDING_FILES := \
|
|||
$(NULL)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BRANDING_FILES := \
|
||||
firefox-os2.ico \
|
||||
document-os2.ico \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
BRANDING_DEST := $(DIST)/branding
|
||||
BRANDING_TARGET := export
|
||||
INSTALL_TARGETS += BRANDING
|
||||
|
|
Двоичные данные
browser/branding/official/document-os2.ico
Двоичные данные
browser/branding/official/document-os2.ico
Двоичный файл не отображается.
Двоичные данные
browser/branding/official/firefox-os2.ico
Двоичные данные
browser/branding/official/firefox-os2.ico
Двоичный файл не отображается.
|
@ -47,13 +47,6 @@ BRANDING_FILES := \
|
|||
$(NULL)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BRANDING_FILES := \
|
||||
firefox-os2.ico \
|
||||
document-os2.ico \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
BRANDING_DEST := $(DIST)/branding
|
||||
BRANDING_TARGET := export
|
||||
INSTALL_TARGETS += BRANDING
|
||||
|
|
Двоичные данные
browser/branding/unofficial/document-os2.ico
Двоичные данные
browser/branding/unofficial/document-os2.ico
Двоичный файл не отображается.
Двоичные данные
browser/branding/unofficial/firefox-os2.ico
Двоичные данные
browser/branding/unofficial/firefox-os2.ico
Двоичный файл не отображается.
|
@ -1,5 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
LOCAL_INCLUDES = -I$(srcdir)/../build
|
|
@ -13,3 +13,7 @@ SOURCES += [
|
|||
]
|
||||
|
||||
FINAL_LIBRARY = 'browsercomps'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'../build',
|
||||
]
|
||||
|
|
|
@ -6,13 +6,6 @@ ifeq ($(OS_ARCH),WINNT)
|
|||
OS_LIBS += $(call EXPAND_LIBNAME,ole32 shell32 shlwapi)
|
||||
endif
|
||||
|
||||
LOCAL_INCLUDES = \
|
||||
-I$(srcdir)/../shell/src \
|
||||
-I$(srcdir)/../feeds/src \
|
||||
-I$(srcdir)/../about \
|
||||
-I$(srcdir)/../dirprovider \
|
||||
$(NULL)
|
||||
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
OS_LIBS += $(call EXPAND_LIBNAME,version)
|
||||
endif
|
||||
|
@ -22,8 +15,6 @@ EXTRA_DSO_LDOPTS += \
|
|||
$(MOZ_COMPONENT_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
LOCAL_INCLUDES += -I$(srcdir)/../migration/src
|
||||
|
||||
# Mac: Need to link with CoreFoundation for Mac Migrators (PList reading code)
|
||||
# GTK2: Need to link with glib for GNOME shell service
|
||||
ifneq (,$(filter cocoa gtk2 gtk3,$(MOZ_WIDGET_TOOLKIT)))
|
||||
|
|
|
@ -17,3 +17,11 @@ LIBRARY_NAME = 'browsercomps'
|
|||
IS_COMPONENT = True
|
||||
|
||||
FORCE_SHARED_LIB = True
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'../about',
|
||||
'../dirprovider',
|
||||
'../feeds/src',
|
||||
'../migration/src',
|
||||
'../shell/src',
|
||||
]
|
||||
|
|
|
@ -2055,6 +2055,7 @@ let CustomizableUIInternal = {
|
|||
// Reset placements to make restoring default placements possible.
|
||||
gPlacements = new Map();
|
||||
gDirtyAreaCache = new Set();
|
||||
gSeenWidgets = new Set();
|
||||
// Clear the saved state to ensure that defaults will be used.
|
||||
gSavedState = null;
|
||||
// Restore the state for each area to its defaults
|
||||
|
|
|
@ -330,7 +330,7 @@ const CustomizableWidgets = [{
|
|||
tooltiptext: "preferences-button.tooltiptext.withshortcut",
|
||||
shortcutId: "key_preferencesCmdMac",
|
||||
#else
|
||||
tooltiptext: "preferences-button.tooltiptext",
|
||||
tooltiptext: "preferences-button.tooltiptext2",
|
||||
#endif
|
||||
#endif
|
||||
onCommand: function(aEvent) {
|
||||
|
|
|
@ -63,5 +63,6 @@ skip-if = os == "linux"
|
|||
[browser_948985_non_removable_defaultArea.js]
|
||||
[browser_952963_areaType_getter_no_area.js]
|
||||
[browser_956602_remove_special_widget.js]
|
||||
[browser_969427_recreate_destroyed_widget_after_reset.js]
|
||||
[browser_969661_character_encoding_navbar_disabled.js]
|
||||
[browser_panel_toggle.js]
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/* 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/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
function getPlacementArea(id) {
|
||||
let placement = CustomizableUI.getPlacementOfWidget(id);
|
||||
return placement && placement.area;
|
||||
}
|
||||
|
||||
// Check that a destroyed widget recreated after a reset call goes to
|
||||
// the navigation bar.
|
||||
add_task(function() {
|
||||
const kWidgetId = "test-recreate-after-reset";
|
||||
let spec = {id: kWidgetId, label: "Test re-create after reset.",
|
||||
removable: true, defaultArea: CustomizableUI.AREA_NAVBAR};
|
||||
|
||||
CustomizableUI.createWidget(spec);
|
||||
is(getPlacementArea(kWidgetId), CustomizableUI.AREA_NAVBAR,
|
||||
"widget is in the navigation bar");
|
||||
|
||||
CustomizableUI.destroyWidget(kWidgetId);
|
||||
isnot(getPlacementArea(kWidgetId), CustomizableUI.AREA_NAVBAR,
|
||||
"widget removed from the navigation bar");
|
||||
|
||||
CustomizableUI.reset();
|
||||
|
||||
CustomizableUI.createWidget(spec);
|
||||
is(getPlacementArea(kWidgetId), CustomizableUI.AREA_NAVBAR,
|
||||
"widget recreated and added back to the nav bar");
|
||||
|
||||
CustomizableUI.destroyWidget(kWidgetId);
|
||||
});
|
|
@ -1,5 +0,0 @@
|
|||
# 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/.
|
||||
|
||||
LOCAL_INCLUDES = -I$(srcdir)/../build
|
|
@ -17,3 +17,7 @@ XPCSHELL_TESTS_MANIFESTS += [
|
|||
]
|
||||
|
||||
FINAL_LIBRARY = 'browsercomps'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'../build'
|
||||
]
|
||||
|
|
|
@ -50,9 +50,6 @@
|
|||
#ifdef XP_WIN
|
||||
#define USE_WIN_TITLE_STYLE
|
||||
#endif
|
||||
#ifdef XP_OS2
|
||||
#define USE_WIN_TITLE_STYLE
|
||||
#endif
|
||||
|
||||
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
|
|
|
@ -27,9 +27,6 @@
|
|||
#ifdef XP_WIN
|
||||
#define USE_WIN_TITLE_STYLE
|
||||
#endif
|
||||
#ifdef XP_OS2
|
||||
#define USE_WIN_TITLE_STYLE
|
||||
#endif
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
<?xul-overlay href="chrome://browser/content/macBrowserOverlay.xul"?>
|
||||
|
|
|
@ -166,14 +166,6 @@ function onListKeyDown(aEvent) {
|
|||
if (aEvent.ctrlKey && !treeView.isContainer(ix))
|
||||
restoreSingleTab(ix, aEvent.shiftKey);
|
||||
break;
|
||||
case KeyEvent.DOM_VK_UP:
|
||||
case KeyEvent.DOM_VK_DOWN:
|
||||
case KeyEvent.DOM_VK_PAGE_UP:
|
||||
case KeyEvent.DOM_VK_PAGE_DOWN:
|
||||
case KeyEvent.DOM_VK_HOME:
|
||||
case KeyEvent.DOM_VK_END:
|
||||
aEvent.preventDefault(); // else the page scrolls unwantedly
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -157,6 +157,11 @@ Telemetry.prototype = {
|
|||
histogram: "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_BOOLEAN",
|
||||
userHistogram: "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_PER_USER_FLAG",
|
||||
timerHistogram: "DEVTOOLS_DEVELOPERTOOLBAR_TIME_ACTIVE_SECONDS"
|
||||
},
|
||||
custom: {
|
||||
histogram: "DEVTOOLS_CUSTOM_OPENED_BOOLEAN",
|
||||
userHistogram: "DEVTOOLS_CUSTOM_OPENED_PER_USER_FLAG",
|
||||
timerHistogram: "DEVTOOLS_CUSTOM_TIME_ACTIVE_SECONDS"
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -168,14 +173,7 @@ Telemetry.prototype = {
|
|||
* histogram.
|
||||
*/
|
||||
toolOpened: function(id) {
|
||||
let charts = this._histograms[id];
|
||||
|
||||
if (!charts) {
|
||||
dump('Warning: An attempt was made to open a tool with an id of "' + id +
|
||||
'", which is not listed in Telemetry._histograms. ' +
|
||||
"Location: telemetry.js/toolOpened()\n");
|
||||
return;
|
||||
}
|
||||
let charts = this._histograms[id] || this._histograms.custom;
|
||||
|
||||
if (charts.histogram) {
|
||||
this.log(charts.histogram, true);
|
||||
|
|
|
@ -758,6 +758,25 @@ Editor.prototype = {
|
|||
{ line: end.line + 1, ch: end.ch });
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns current font size for the editor area, in pixels.
|
||||
*/
|
||||
getFontSize: function () {
|
||||
let cm = editors.get(this);
|
||||
let el = cm.getWrapperElement();
|
||||
let win = el.ownerDocument.defaultView;
|
||||
|
||||
return parseInt(win.getComputedStyle(el).getPropertyValue("font-size"), 10);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets font size for the editor area.
|
||||
*/
|
||||
setFontSize: function (size) {
|
||||
let cm = editors.get(this);
|
||||
cm.getWrapperElement().style.fontSize = parseInt(size, 10) + "px";
|
||||
},
|
||||
|
||||
/**
|
||||
* Extends an instance of the Editor object with additional
|
||||
* functions. Each function will be called with context as
|
||||
|
|
|
@ -51,6 +51,12 @@ function test() {
|
|||
ed.removeLineClass(0, "test");
|
||||
ok(!ed.hasLineClass(0, "test"), "test line class is gone");
|
||||
|
||||
// Font size
|
||||
let size = ed.getFontSize();
|
||||
is("number", typeof size, "we have the default font size");
|
||||
ed.setFontSize(ed.getFontSize() + 1);
|
||||
is(ed.getFontSize(), size + 1, "new font size was set");
|
||||
|
||||
teardown(ed, win);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,15 +141,11 @@
|
|||
@BINPATH@/update-settings.ini
|
||||
#endif
|
||||
@BINPATH@/platform.ini
|
||||
#ifndef XP_OS2
|
||||
#ifndef MOZ_NATIVE_SQLITE
|
||||
#ifndef MOZ_FOLD_LIBS
|
||||
@BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
@BINPATH@/mozsqlt3@DLL_SUFFIX@
|
||||
#endif
|
||||
@BINPATH@/browser/blocklist.xml
|
||||
#ifdef XP_UNIX
|
||||
#ifndef XP_MACOSX
|
||||
|
@ -430,11 +426,7 @@
|
|||
@BINPATH@/browser/components/nsSessionStore.js
|
||||
@BINPATH@/components/nsURLFormatter.manifest
|
||||
@BINPATH@/components/nsURLFormatter.js
|
||||
#ifndef XP_OS2
|
||||
@BINPATH@/browser/components/@DLL_PREFIX@browsercomps@DLL_SUFFIX@
|
||||
#else
|
||||
@BINPATH@/browser/components/brwsrcmp@DLL_SUFFIX@
|
||||
#endif
|
||||
@BINPATH@/components/txEXSLTRegExFunctions.manifest
|
||||
@BINPATH@/components/txEXSLTRegExFunctions.js
|
||||
@BINPATH@/components/toolkitplaces.manifest
|
||||
|
@ -792,13 +784,6 @@ bin/libfreebl_32int64_3.so
|
|||
#endif
|
||||
#endif
|
||||
|
||||
; [OS/2]
|
||||
#ifdef XP_OS2
|
||||
@BINPATH@/MozSounds.cmd
|
||||
@BINPATH@/*.xqs
|
||||
@BINPATH@/components/*.xqs
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_WEBAPP_RUNTIME
|
||||
[WebappRuntime]
|
||||
#ifdef XP_WIN
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
<box id="instruction-topsites-box" insertafter="start-topsites" class="firstrun">
|
||||
<box id="instruction-topsites">
|
||||
<vbox class="instruction-content-container">
|
||||
<image class="instruction-arrow arrow-left-straight" />
|
||||
<image class="instruction-arrow arrow-left" />
|
||||
<image class="instruction-arrow arrow-back-straight" />
|
||||
<image class="instruction-arrow arrow-back" />
|
||||
<label class="instruction-label">&firstRunTopSites.label;</label>
|
||||
</vbox>
|
||||
</box>
|
||||
|
@ -37,7 +37,7 @@
|
|||
<box insertafter="start-bookmarks" class="firstrun">
|
||||
<box id="instruction-bookmarks">
|
||||
<vbox class="instruction-content-container" align="center">
|
||||
<image class="instruction-arrow arrow-right" />
|
||||
<image class="instruction-arrow arrow-forward" />
|
||||
<label class="instruction-label">&firstRunBookmarks.label;</label>
|
||||
</vbox>
|
||||
</box>
|
||||
|
@ -46,7 +46,7 @@
|
|||
<box id="instruction-history-container" insertafter="start-history" class="firstrun">
|
||||
<box id="instruction-history">
|
||||
<vbox class="instruction-content-container" align="center">
|
||||
<image class="instruction-arrow arrow-right" />
|
||||
<image class="instruction-arrow arrow-forward" />
|
||||
<label class="instruction-label">&firstRunHistory.label;</label>
|
||||
</vbox>
|
||||
</box>
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
<!-- we're using html here so we get anonymous scrollbars on the browser element -->
|
||||
<html:html id="startui-page"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
dir="&locale.dir;">
|
||||
|
||||
<html:body id="startui-body" class="meta"
|
||||
onload="StartUI.init();" onunload="StartUI.uninit();">
|
||||
|
|
|
@ -39,6 +39,9 @@ pref("metro.private_browsing.enabled", false);
|
|||
// Enable tab-modal prompts
|
||||
pref("prompts.tab_modal.enabled", true);
|
||||
|
||||
// NewTabUtils pref related to top site thumbnail updating.
|
||||
pref("browser.newtabpage.enabled", true);
|
||||
|
||||
// Enable off main thread compositing
|
||||
pref("layers.offmainthreadcomposition.enabled", true);
|
||||
pref("layers.async-pan-zoom.enabled", true);
|
||||
|
|
|
@ -96,23 +96,34 @@ below instruction */
|
|||
.instruction-arrow.arrow-down {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.instruction-arrow.arrow-down:-moz-locale-dir(rtl) {
|
||||
transform: scaleY(-1);
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-left,
|
||||
.instruction-arrow.arrow-right,
|
||||
.instruction-arrow.arrow-left-straight,
|
||||
.instruction-arrow.arrow-right-straight {
|
||||
.instruction-arrow.arrow-back,
|
||||
.instruction-arrow.arrow-forward,
|
||||
.instruction-arrow.arrow-back-straight,
|
||||
.instruction-arrow.arrow-forward-straight {
|
||||
background-image: url("chrome://browser/skin/images/arrow-left.png");
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-right {
|
||||
.instruction-arrow.arrow-back,
|
||||
.instruction-arrow.arrow-forward:-moz-locale-dir(rtl) {
|
||||
transform: rotate(0) scaleY(1);
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-forward,
|
||||
.instruction-arrow.arrow-back:-moz-locale-dir(rtl) {
|
||||
transform: rotate(180deg) scaleY(-1);
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-left-straight {
|
||||
.instruction-arrow.arrow-back-straight,
|
||||
.instruction-arrow.arrow-forward-straight:-moz-locale-dir(rtl) {
|
||||
transform: rotate(220deg) scaleX(-1);
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-right-straight {
|
||||
.instruction-arrow.arrow-forward-straight,
|
||||
.instruction-arrow.arrow-back-straight:-moz-locale-dir(rtl) {
|
||||
transform: rotate(-220deg);
|
||||
}
|
||||
|
||||
|
@ -121,10 +132,18 @@ below instruction */
|
|||
top: 10px;
|
||||
transform: translateX(calc(630px - 50%));
|
||||
}
|
||||
#instruction-tabs:-moz-locale-dir(rtl) {
|
||||
right: 0;
|
||||
left: auto;
|
||||
transform: translateX(calc(50% - 630px));
|
||||
}
|
||||
|
||||
#start-container[viewstate="portrait"] #instruction-tabs {
|
||||
transform: translateX(calc(50vw - 50%));
|
||||
}
|
||||
#start-container[viewstate="portrait"] #instruction-tabs:-moz-locale-dir(rtl) {
|
||||
transform: translateX(calc(-50vw + 50%));
|
||||
}
|
||||
|
||||
#start-container[viewstate="landscape"] #instruction-topsites {
|
||||
position: absolute;
|
||||
|
@ -143,19 +162,19 @@ below instruction */
|
|||
-moz-box-align: center;
|
||||
}
|
||||
|
||||
#start-container[viewstate="portrait"] #instruction-topsites .arrow-left-straight {
|
||||
#start-container[viewstate="portrait"] #instruction-topsites .arrow-back-straight {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#start-container[viewstate="portrait"] #instruction-topsites .arrow-left {
|
||||
#start-container[viewstate="portrait"] #instruction-topsites .arrow-back {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#start-container[viewstate="landscape"] #instruction-topsites .arrow-left-straight {
|
||||
#start-container[viewstate="landscape"] #instruction-topsites .arrow-back-straight {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#start-container[viewstate="landscape"] #instruction-topsites .arrow-left {
|
||||
#start-container[viewstate="landscape"] #instruction-topsites .arrow-back {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -165,24 +184,41 @@ below instruction */
|
|||
top: 310px;
|
||||
transform: translateX(calc(-300px - 50%));
|
||||
}
|
||||
#start-container[viewstate="landscape"] #instruction-history:-moz-locale-dir(rtl),
|
||||
#start-container[viewstate="landscape"] #instruction-bookmarks:-moz-locale-dir(rtl) {
|
||||
transform: translateX(calc(300px + 50%));
|
||||
}
|
||||
|
||||
#start-container[viewstate="portrait"] #instruction-history,
|
||||
#start-container[viewstate="portrait"] #instruction-bookmarks,
|
||||
#start-container[viewstate="portrait"] #instruction-topsites {
|
||||
transform: translateX(-55px);
|
||||
}
|
||||
#start-container[viewstate="portrait"] #instruction-history:-moz-locale-dir(rtl),
|
||||
#start-container[viewstate="portrait"] #instruction-bookmarks:-moz-locale-dir(rtl),
|
||||
#start-container[viewstate="portrait"] #instruction-topsites:-moz-locale-dir(rtl) {
|
||||
transform: translateX(55px);
|
||||
}
|
||||
|
||||
#start-container[viewstate="landscape"] #instruction-menu {
|
||||
position: fixed;
|
||||
bottom: 16px;
|
||||
right: 37px;
|
||||
}
|
||||
#start-container[viewstate="landscape"] #instruction-menu:-moz-locale-dir(rtl) {
|
||||
left: 37px;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
#start-container[viewstate="portrait"] #instruction-menu {
|
||||
position: absolute;
|
||||
right: 37px;
|
||||
transform: translateY(40px);
|
||||
}
|
||||
#start-container[viewstate="portrait"] #instruction-menu:-moz-locale-dir(rtl) {
|
||||
left: 37px;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
#start-container #instruction-menu .instruction-label {
|
||||
max-width: 300px;
|
||||
|
@ -201,8 +237,8 @@ below instruction */
|
|||
background-image: url("chrome://browser/skin/images/arrow-top@1.4x.png");
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-left,
|
||||
.instruction-arrow.arrow-right {
|
||||
.instruction-arrow.arrow-back,
|
||||
.instruction-arrow.arrow-forward {
|
||||
background-image: url("chrome://browser/skin/images/arrow-left@1.4x.png");
|
||||
}
|
||||
|
||||
|
@ -218,8 +254,8 @@ below instruction */
|
|||
background-image: url("chrome://browser/skin/images/arrow-top@1.8x.png");
|
||||
}
|
||||
|
||||
.instruction-arrow.arrow-left,
|
||||
.instruction-arrow.arrow-right {
|
||||
.instruction-arrow.arrow-back,
|
||||
.instruction-arrow.arrow-forward {
|
||||
background-image: url("chrome://browser/skin/images/arrow-left@1.8x.png");
|
||||
}
|
||||
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 910 B |
|
@ -140,6 +140,7 @@ chrome.jar:
|
|||
skin/images/appbar-icons.png (images/appbar-icons.png)
|
||||
skin/images/pinned-hdpi.png (images/pinned-hdpi.png)
|
||||
skin/images/tile-selected-check-hdpi.png (images/tile-selected-check-hdpi.png)
|
||||
skin/images/tile-selected-check-rtl-hdpi.png (images/tile-selected-check-rtl-hdpi.png)
|
||||
skin/images/plus-34.png (images/plus-34.png)
|
||||
skin/images/plus-24.png (images/plus-24.png)
|
||||
skin/images/progresscircle.png (images/progresscircle.png)
|
||||
|
|
|
@ -682,14 +682,10 @@ tabmodalprompt:not([promptType="promptUserAndPass"]) .infoContainer {
|
|||
margin-bottom: calc(40px - @tile_side_margin@);
|
||||
}
|
||||
|
||||
.meta-section:not([expanded]) > .meta-section-title.narrow-title:-moz-locale-dir(ltr):after {
|
||||
.meta-section:not([expanded]) > .meta-section-title.narrow-title:after {
|
||||
content: ">";
|
||||
}
|
||||
|
||||
.meta-section:not([expanded]) > .meta-section-title.narrow-title:-moz-locale-dir(rtl):before {
|
||||
content: "<";
|
||||
}
|
||||
|
||||
.meta-section-container:not([viewstate="snapped"]) .meta-section-title.narrow-title,
|
||||
.meta-section-container[viewstate="snapped"] .meta-section-title.wide-title {
|
||||
display: none;
|
||||
|
|
|
@ -91,6 +91,10 @@ richgriditem {
|
|||
padding: 8px;
|
||||
background-color: #fff;
|
||||
}
|
||||
richgriditem:-moz-locale-dir(rtl) .tile-start-container {
|
||||
right: 10px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
richgriditem[search] .tile-start-container {
|
||||
background-color: transparent;
|
||||
|
@ -137,20 +141,34 @@ richgriditem[search] .tile-icon-box {
|
|||
padding: 0;
|
||||
border: 0;
|
||||
left: 50%;
|
||||
margin-left: -13px;
|
||||
-moz-margin-start: -13px;
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
richgriditem[search]:-moz-locale-dir(rtl) .tile-icon-box {
|
||||
right: 50%;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
|
||||
richgriditem[search][iconsize="large"] .tile-icon-box {
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin: 0;
|
||||
}
|
||||
richgriditem[search][iconsize="large"]:-moz-locale-dir(rtl) .tile-icon-box {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
|
||||
richgriditem[search][iconsize="large"] .tile-start-container {
|
||||
left: 0;
|
||||
padding: 0;
|
||||
}
|
||||
richgriditem[search][iconsize="large"]:-moz-locale-dir(rtl) .tile-start-container {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
richgriditem[search][iconsize="large"] .tile-icon-box > image {
|
||||
width: 74px;
|
||||
|
@ -169,9 +187,12 @@ richgriditem[search] .tile-content {
|
|||
display: block;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
left: 52px; /* label goes to the right of the favicon */
|
||||
left: 52px; /* label goes to the end (right) of the favicon */
|
||||
right: 0;
|
||||
padding: 1em 6px 6px 12px;
|
||||
padding-top: 1em;
|
||||
-moz-padding-end: 6px;
|
||||
padding-bottom: 6px;
|
||||
-moz-padding-start: 12px;
|
||||
background: white;
|
||||
color: #333;
|
||||
margin: 0;
|
||||
|
@ -183,6 +204,10 @@ richgriditem[search] .tile-content {
|
|||
text-overflow: ellipsis;
|
||||
transition: @metro_animation_duration@ background-color @metro_animation_easing@;
|
||||
}
|
||||
richgriditem:-moz-locale-dir(rtl) .tile-desc {
|
||||
right: 52px; /* label goes to the end (left) of the favicon */
|
||||
left: 0;
|
||||
}
|
||||
|
||||
richgriditem:not([tiletype="thumbnail"]) .tile-desc {
|
||||
background-color: transparent!important;
|
||||
|
@ -219,7 +244,11 @@ richgriditem[tiletype="thumbnail"] .tile-desc {
|
|||
top: auto;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
padding: 4px 8px 4px 56px;
|
||||
right: 0;
|
||||
padding-top: 4px;
|
||||
-moz-padding-end: 8px;
|
||||
padding-bottom: 4px;
|
||||
-moz-padding-start: 56px;
|
||||
}
|
||||
|
||||
richgriditem[tiletype="thumbnail"] > .tile-content > .tile-desc {
|
||||
|
@ -263,6 +292,10 @@ richgriditem[tiletype="thumbnail"] .tile-icon-box {
|
|||
z-index: 1;
|
||||
box-shadow: 0px 0px 2px 2px rgba(0, 0, 0, 0.05), 0px 2px 0px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
richgriditem[tiletype="thumbnail"]:-moz-locale-dir(rtl) .tile-icon-box {
|
||||
left: auto;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
/* selected tile indicator */
|
||||
richgriditem[selected] > .tile-content::after {
|
||||
|
@ -277,12 +310,16 @@ richgriditem[selected] > .tile-content::after {
|
|||
z-index: 1;
|
||||
background-image: url(chrome://browser/skin/images/tile-selected-check-hdpi.png);
|
||||
background-origin: border-box;
|
||||
background-position: right 0 top 0;
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 0 top 0;
|
||||
/* scale the image whatever the dppx */
|
||||
background-size: 35px 35px;
|
||||
border: @metro_border_xthick@ solid @selected_color@;
|
||||
}
|
||||
richgriditem[selected]:-moz-locale-dir(rtl) > .tile-content::after {
|
||||
background-position: left 0 top 0;
|
||||
background-image: url(chrome://browser/skin/images/tile-selected-check-rtl-hdpi.png);
|
||||
}
|
||||
|
||||
richgriditem[crosssliding] {
|
||||
z-index: 10;
|
||||
|
@ -312,6 +349,12 @@ richgriditem[pinned] > .tile-content::before {
|
|||
/* scale the image whatever the dppx */
|
||||
background-size: 70px 70px;
|
||||
}
|
||||
richgriditem[pinned]:-moz-locale-dir(rtl) > .tile-content::before {
|
||||
left: 0;
|
||||
right: auto;
|
||||
-moz-transform: scaleX(-1);
|
||||
}
|
||||
|
||||
|
||||
/* Selected _and_ pinned tiles*/
|
||||
richgriditem[selected][pinned] > .tile-content::before {
|
||||
|
@ -319,10 +362,8 @@ richgriditem[selected][pinned] > .tile-content::before {
|
|||
width: 70px;
|
||||
height: 70px;
|
||||
}
|
||||
|
||||
richgriditem[pinned]:-moz-locale-dir(rtl) > .tile-content::before {
|
||||
left: 0;
|
||||
right: auto;
|
||||
richgriditem[selected][pinned]:-moz-locale-dir(rtl) > .tile-content::before {
|
||||
background-position: left -@metro_border_xthick@ top -@metro_border_xthick@;
|
||||
}
|
||||
|
||||
richgriditem[customColor] {
|
||||
|
@ -373,7 +414,10 @@ richgriditem[tiletype="thumbnail"]:not([value]) > .tile-content {
|
|||
}
|
||||
|
||||
.tile-desc {
|
||||
padding: 0.5em 4px 4px 4px;
|
||||
padding-top: 0.5em;
|
||||
-moz-padding-end: 4px;
|
||||
padding-bottom: 4px;
|
||||
-moz-padding-start: 4px;
|
||||
}
|
||||
|
||||
richgriditem:not([search]) > .tile-content {
|
||||
|
|
|
@ -31,6 +31,11 @@ this.ContentLinkHandler = {
|
|||
if (!link || !link.ownerDocument || !rel || !link.href)
|
||||
return;
|
||||
|
||||
// Ignore sub-frames (bugs 305472, 479408).
|
||||
let window = link.ownerDocument.defaultView;
|
||||
if (window != window.top)
|
||||
return;
|
||||
|
||||
var feedAdded = false;
|
||||
var iconAdded = false;
|
||||
var searchAdded = false;
|
||||
|
|
|
@ -25,6 +25,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "SocialService",
|
|||
"resource://gre/modules/SocialService.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
|
||||
"resource://gre/modules/PlacesUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
|
||||
"resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Promise",
|
||||
"resource://gre/modules/Promise.jsm");
|
||||
|
||||
|
@ -398,6 +400,9 @@ function CreateSocialStatusWidget(aId, aProvider) {
|
|||
node.setAttribute("tooltiptext", aProvider.name);
|
||||
node.setAttribute("oncommand", "SocialStatus.showPopup(this);");
|
||||
|
||||
if (PrivateBrowsingUtils.isWindowPrivate(aDocument.defaultView))
|
||||
node.setAttribute("disabled", "true");
|
||||
|
||||
return node;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -191,7 +191,6 @@ case "$target" in
|
|||
ANDROID_PLATFORM="${android_platform}"
|
||||
|
||||
AC_DEFINE(ANDROID)
|
||||
CROSS_COMPILE=1
|
||||
AC_SUBST(ANDROID_NDK)
|
||||
AC_SUBST(ANDROID_TOOLCHAIN)
|
||||
AC_SUBST(ANDROID_PLATFORM)
|
||||
|
|
|
@ -55,7 +55,7 @@ ifelse($#, 2, _MOZ_AC_DEFINE_UNQUOTED($1, $2), $#, 3, _MOZ_AC_DEFINE_UNQUOTED($1
|
|||
])
|
||||
|
||||
dnl Replace AC_OUTPUT to create and call a python config.status
|
||||
define([_MOZ_AC_OUTPUT],
|
||||
define([MOZ_CREATE_CONFIG_STATUS],
|
||||
[dnl Top source directory in Windows format (as opposed to msys format).
|
||||
WIN_TOP_SRC=
|
||||
encoding=utf-8
|
||||
|
@ -99,7 +99,8 @@ dnl form suitable for make.
|
|||
topsrcdir = '''${WIN_TOP_SRC:-$srcdir}'''
|
||||
if not os.path.isabs(topsrcdir):
|
||||
rel = os.path.join(os.path.dirname(<<<__file__>>>), topsrcdir)
|
||||
topsrcdir = os.path.normpath(os.path.abspath(rel))
|
||||
topsrcdir = os.path.abspath(rel)
|
||||
topsrcdir = os.path.normpath(topsrcdir)
|
||||
|
||||
topobjdir = os.path.abspath(os.path.dirname(<<<__file__>>>))
|
||||
|
||||
|
@ -149,14 +150,26 @@ cat >> $CONFIG_STATUS <<EOF
|
|||
]
|
||||
|
||||
__all__ = ['topobjdir', 'topsrcdir', 'defines', 'non_global_defines', 'substs']
|
||||
EOF
|
||||
|
||||
# We don't want js/src/config.status to do anything in gecko builds.
|
||||
if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then
|
||||
|
||||
cat >> $CONFIG_STATUS <<EOF
|
||||
dnl Do the actual work
|
||||
if __name__ == '__main__':
|
||||
args = dict([(name, globals()[name]) for name in __all__])
|
||||
from mozbuild.config_status import config_status
|
||||
config_status(**args)
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
changequote([, ])
|
||||
])
|
||||
|
||||
define([MOZ_RUN_CONFIG_STATUS],
|
||||
[
|
||||
chmod +x $CONFIG_STATUS
|
||||
rm -fr confdefs* $ac_clean_files
|
||||
dnl Execute config.status, unless --no-create was passed to configure.
|
||||
|
@ -172,7 +185,8 @@ errprint([$1
|
|||
m4exit(1)
|
||||
])
|
||||
|
||||
define([AC_OUTPUT], [ifelse($#_$1, 1_, [_MOZ_AC_OUTPUT()],
|
||||
define([AC_OUTPUT], [ifelse($#_$1, 1_, [MOZ_CREATE_CONFIG_STATUS()
|
||||
MOZ_RUN_CONFIG_STATUS()],
|
||||
[m4_fatal([Use CONFIGURE_SUBST_FILES in moz.build files to create substituted files.])]
|
||||
)])
|
||||
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
dnl This Source Code Form is subject to the terms of the Mozilla Public
|
||||
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
AC_DEFUN([MOZ_CONFIG_FFI], [
|
||||
|
||||
MOZ_ARG_ENABLE_BOOL(system-ffi,
|
||||
[ --enable-system-ffi Use system libffi (located with pkgconfig)],
|
||||
MOZ_NATIVE_FFI=1 )
|
||||
|
||||
if test -n "$MOZ_NATIVE_FFI"; then
|
||||
# Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
|
||||
# for non-GCC compilers.
|
||||
if test -z "$GNU_CC"; then
|
||||
PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
|
||||
else
|
||||
PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_NATIVE_FFI)
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([MOZ_SUBCONFIGURE_FFI], [
|
||||
if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then
|
||||
|
||||
if test "$BUILD_CTYPES" -a -z "$MOZ_NATIVE_FFI"; then
|
||||
# Run the libffi 'configure' script.
|
||||
ac_configure_args="--disable-shared --enable-static --disable-raw-api"
|
||||
if test "$MOZ_DEBUG"; then
|
||||
ac_configure_args="$ac_configure_args --enable-debug"
|
||||
fi
|
||||
if test "$DSO_PIC_CFLAGS"; then
|
||||
ac_configure_args="$ac_configure_args --with-pic"
|
||||
fi
|
||||
for var in AS CC CXX CPP LD AR RANLIB STRIP; do
|
||||
ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
|
||||
done
|
||||
if test "$CROSS_COMPILE"; then
|
||||
export CPPFLAGS CFLAGS LDFLAGS
|
||||
fi
|
||||
ac_configure_args="$ac_configure_args --build=$build --host=$target"
|
||||
if test "$_MSC_VER"; then
|
||||
# Use a wrapper script for cl and ml that looks more like gcc.
|
||||
# autotools can't quite handle an MSVC build environment yet.
|
||||
LDFLAGS=
|
||||
CFLAGS=
|
||||
ac_configure_args="$ac_configure_args LD=link CPP=\"cl -nologo -EP\" SHELL=sh.exe"
|
||||
case "${target_cpu}" in
|
||||
x86_64)
|
||||
# Need target since MSYS tools into mozilla-build may be 32bit
|
||||
ac_configure_args="$ac_configure_args CC=\"$_topsrcdir/js/src/ctypes/libffi/msvcc.sh -m64\""
|
||||
;;
|
||||
*)
|
||||
ac_configure_args="$ac_configure_args CC=$_topsrcdir/js/src/ctypes/libffi/msvcc.sh"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test "$SOLARIS_SUNPRO_CC"; then
|
||||
# Always use gcc for libffi on Solaris
|
||||
if test ! "$HAVE_64BIT_OS"; then
|
||||
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m32 LD= LDFLAGS="
|
||||
else
|
||||
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-m64 LD= LDFLAGS="
|
||||
fi
|
||||
fi
|
||||
if test "$AIX_IBM_XLC"; then
|
||||
# Always use gcc for libffi on IBM AIX5/AIX6
|
||||
if test ! "$HAVE_64BIT_OS"; then
|
||||
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix32"
|
||||
else
|
||||
ac_configure_args="$ac_configure_args CC=gcc CFLAGS=-maix64"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use a separate cache file for libffi, since it does things differently
|
||||
# from our configure.
|
||||
mkdir -p $_objdir/js/src/ctypes/libffi
|
||||
old_cache_file=$cache_file
|
||||
cache_file=$_objdir/js/src/ctypes/libffi/config.cache
|
||||
old_config_files=$CONFIG_FILES
|
||||
unset CONFIG_FILES
|
||||
AC_OUTPUT_SUBDIRS(js/src/ctypes/libffi)
|
||||
cache_file=$old_cache_file
|
||||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
CONFIG_FILES=$old_config_files
|
||||
fi
|
||||
|
||||
fi
|
||||
])
|
||||
|
|
@ -32,6 +32,8 @@ esac
|
|||
|
||||
if test -d "$1"; then
|
||||
(cd "$1"; $PYTHON $_topsrcdir/build/subconfigure.py dump "$_CONFIG_SHELL")
|
||||
else
|
||||
mkdir -p "$1"
|
||||
fi
|
||||
$2
|
||||
(cd "$1"; $PYTHON $_topsrcdir/build/subconfigure.py adjust $ac_sub_configure)
|
||||
|
|
|
@ -8,6 +8,57 @@ dnl linking against a shared library of ICU, either one that we build from
|
|||
dnl our copy of ICU or the system provided library.
|
||||
|
||||
AC_DEFUN([MOZ_CONFIG_ICU], [
|
||||
|
||||
ICU_LIB_NAMES=
|
||||
MOZ_NATIVE_ICU=
|
||||
MOZ_ARG_WITH_BOOL(system-icu,
|
||||
[ --with-system-icu
|
||||
Use system ICU (located with pkgconfig)],
|
||||
MOZ_NATIVE_ICU=1)
|
||||
|
||||
if test -n "$MOZ_NATIVE_ICU"; then
|
||||
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
||||
MOZ_SHARED_ICU=1
|
||||
else
|
||||
MOZ_ICU_CFLAGS='-I$(topsrcdir)/intl/icu/source/common -I$(topsrcdir)/intl/icu/source/i18n'
|
||||
AC_SUBST(MOZ_ICU_CFLAGS)
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_NATIVE_ICU)
|
||||
|
||||
MOZ_ARG_WITH_STRING(intl-api,
|
||||
[ --with-intl-api, --with-intl-api=build, --without-intl-api
|
||||
Determine the status of the ECMAScript Internationalization API. The first
|
||||
(or lack of any of these) builds and exposes the API. The second builds it
|
||||
but doesn't use ICU or expose the API to script. The third doesn't build
|
||||
ICU at all.],
|
||||
_INTL_API=$withval)
|
||||
|
||||
ENABLE_INTL_API=
|
||||
EXPOSE_INTL_API=
|
||||
case "$_INTL_API" in
|
||||
no)
|
||||
;;
|
||||
build)
|
||||
ENABLE_INTL_API=1
|
||||
;;
|
||||
yes)
|
||||
ENABLE_INTL_API=1
|
||||
EXPOSE_INTL_API=1
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid value passed to --with-intl-api: $_INTL_API])
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "$EXPOSE_INTL_API"; then
|
||||
AC_DEFINE(EXPOSE_INTL_API)
|
||||
fi
|
||||
|
||||
dnl Settings for the implementation of the ECMAScript Internationalization API
|
||||
if test -n "$ENABLE_INTL_API"; then
|
||||
AC_DEFINE(ENABLE_INTL_API)
|
||||
|
||||
icudir="$_topsrcdir/intl/icu/source"
|
||||
if test ! -d "$icudir"; then
|
||||
icudir="$_topsrcdir/../../intl/icu/source"
|
||||
|
@ -28,4 +79,249 @@ AC_DEFUN([MOZ_CONFIG_ICU], [
|
|||
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
||||
AC_SUBST(MOZ_SHARED_ICU)
|
||||
|
||||
if test -z "$MOZ_NATIVE_ICU"; then
|
||||
case "$OS_TARGET" in
|
||||
WINNT)
|
||||
ICU_LIB_NAMES="icuin icuuc icudt"
|
||||
if test -n "$MOZ_SHARED_ICU"; then
|
||||
DBG_SUFFIX=
|
||||
if test -n "$MOZ_DEBUG"; then
|
||||
DBG_SUFFIX=d
|
||||
fi
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(LIB_PREFIX)$(lib)$(DBG_SUFFIX).$(LIB_SUFFIX))'
|
||||
fi
|
||||
;;
|
||||
Darwin)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
if test -n "$MOZ_SHARED_ICU"; then
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(lib).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))'
|
||||
fi
|
||||
;;
|
||||
Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
if test -n "$MOZ_SHARED_ICU"; then
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib/$(DLL_PREFIX)$(lib)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))'
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
||||
esac
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
MOZ_ICU_LIBS='$(call EXPAND_LIBNAME_PATH,$(ICU_LIB_NAMES),$(DEPTH)/intl/icu/target/lib)'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(DBG_SUFFIX)
|
||||
AC_SUBST(ENABLE_INTL_API)
|
||||
AC_SUBST(ICU_LIB_NAMES)
|
||||
AC_SUBST(MOZ_ICU_LIBS)
|
||||
|
||||
if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
|
||||
dnl We build ICU as a static library for non-shared js builds and as a shared library for shared js builds.
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
AC_DEFINE(U_STATIC_IMPLEMENTATION)
|
||||
else
|
||||
AC_DEFINE(U_COMBINED_IMPLEMENTATION)
|
||||
fi
|
||||
dnl Source files that use ICU should have control over which parts of the ICU
|
||||
dnl namespace they want to use.
|
||||
AC_DEFINE(U_USING_ICU_NAMESPACE,0)
|
||||
fi
|
||||
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([MOZ_SUBCONFIGURE_ICU], [
|
||||
|
||||
if test -z "$BUILDING_JS" -o -n "$JS_STANDALONE"; then
|
||||
|
||||
if test -n "$ENABLE_INTL_API" -a -z "$MOZ_NATIVE_ICU"; then
|
||||
# Set ICU compile options
|
||||
ICU_CPPFLAGS=""
|
||||
# don't use icu namespace automatically in client code
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_USING_ICU_NAMESPACE=0"
|
||||
# don't include obsolete header files
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
|
||||
# remove chunks of the library that we don't need (yet)
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_LEGACY_CONVERSION"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_TRANSLITERATION"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_REGULAR_EXPRESSIONS"
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DUCONFIG_NO_BREAK_ITERATION"
|
||||
|
||||
ICU_CROSS_BUILD_OPT=""
|
||||
ICU_SRCDIR=""
|
||||
if test "$HOST_OS_ARCH" = "WINNT"; then
|
||||
ICU_SRCDIR="--srcdir=$(cd $srcdir/intl/icu/source; pwd -W)"
|
||||
fi
|
||||
|
||||
if test "$CROSS_COMPILE"; then
|
||||
# Building host tools. It is necessary to build target binary.
|
||||
case "$HOST_OS_ARCH" in
|
||||
Darwin)
|
||||
ICU_TARGET=MacOSX
|
||||
;;
|
||||
Linux)
|
||||
ICU_TARGET=Linux
|
||||
;;
|
||||
WINNT)
|
||||
ICU_TARGET=MSYS/MSVC
|
||||
;;
|
||||
*bsd*|dragonfly*)
|
||||
ICU_TARGET=BSD
|
||||
;;
|
||||
esac
|
||||
# Remove _DEPEND_CFLAGS from HOST_FLAGS to avoid configure error
|
||||
HOST_ICU_CFLAGS="$HOST_CFLAGS"
|
||||
HOST_ICU_CXXFLAGS="$HOST_CXXFLAGS"
|
||||
|
||||
HOST_ICU_CFLAGS=`echo $HOST_ICU_CFLAGS | sed "s|$_DEPEND_CFLAGS||g"`
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CFXXLAGS | sed "s|$_DEPEND_CFLAGS||g"`
|
||||
|
||||
# ICU requires RTTI
|
||||
if test "$GNU_CC"; then
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CXXFLAGS | sed 's|-fno-rtti|-frtti|g'`
|
||||
elif test "$_MSC_VER"; then
|
||||
HOST_ICU_CXXFLAGS=`echo $HOST_ICU_CXXFLAGS | sed 's|-GR-|-GR|g'`
|
||||
fi
|
||||
|
||||
HOST_ICU_BUILD_OPTS=""
|
||||
if test -n "$MOZ_DEBUG"; then
|
||||
HOST_ICU_BUILD_OPTS="$HOST_ICU_BUILD_OPTS --enable-debug"
|
||||
fi
|
||||
|
||||
abs_srcdir=`(cd $srcdir; pwd)`
|
||||
mkdir -p $_objdir/intl/icu/host
|
||||
(cd $_objdir/intl/icu/host
|
||||
MOZ_SUBCONFIGURE_WRAP([.],[
|
||||
AR="$HOST_AR" RANLIB="$HOST_RANLIB" \
|
||||
CC="$HOST_CC" CXX="$HOST_CXX" LD="$HOST_LD" \
|
||||
CFLAGS="$HOST_ICU_CFLAGS $HOST_OPTIMIZE_FLAGS" \
|
||||
CPPFLAGS="$ICU_CPPFLAGS" \
|
||||
CXXFLAGS="$HOST_ICU_CXXFLAGS $HOST_OPTIMIZE_FLAGS" \
|
||||
LDFLAGS="$HOST_LDFLAGS" \
|
||||
$SHELL $abs_srcdir/intl/icu/source/runConfigureICU \
|
||||
$HOST_ICU_BUILD_OPTS \
|
||||
$ICU_TARGET \
|
||||
dnl Shell quoting is fun.
|
||||
${ICU_SRCDIR+"$ICU_SRCDIR"} \
|
||||
--enable-static --disable-shared \
|
||||
--enable-extras=no --enable-icuio=no --enable-layout=no \
|
||||
--enable-tests=no --enable-samples=no || exit 1
|
||||
])
|
||||
) || exit 1
|
||||
# generate config/icucross.mk
|
||||
$GMAKE -C $_objdir/intl/icu/host/ config/icucross.mk
|
||||
|
||||
# --with-cross-build requires absolute path
|
||||
ICU_HOST_PATH=`cd $_objdir/intl/icu/host && pwd`
|
||||
ICU_CROSS_BUILD_OPT="--with-cross-build=$ICU_HOST_PATH"
|
||||
ICU_TARGET_OPT="--build=$build --host=$target"
|
||||
else
|
||||
# CROSS_COMPILE isn't set build and target are i386 and x86-64.
|
||||
# So we must set target for --build and --host.
|
||||
ICU_TARGET_OPT="--build=$target --host=$target"
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_SHARED_ICU"; then
|
||||
# To reduce library size, use static linking
|
||||
ICU_LINK_OPTS="--enable-static --disable-shared"
|
||||
else
|
||||
ICU_LINK_OPTS="--disable-static --enable-shared"
|
||||
fi
|
||||
# Force the ICU static libraries to be position independent code
|
||||
ICU_CFLAGS="$DSO_PIC_CFLAGS $CFLAGS"
|
||||
ICU_CXXFLAGS="$DSO_PIC_CFLAGS $CXXFLAGS"
|
||||
|
||||
ICU_BUILD_OPTS=""
|
||||
if test -n "$MOZ_DEBUG" -o "MOZ_DEBUG_SYMBOLS"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS $MOZ_DEBUG_FLAGS"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS $MOZ_DEBUG_FLAGS"
|
||||
if test -n "$CROSS_COMPILE" -a "$OS_TARGET" = "Darwin" \
|
||||
-a "$HOST_OS_ARCH" != "Darwin"
|
||||
then
|
||||
# Bug 951758: Cross-OSX builds with non-Darwin hosts have issues
|
||||
# with -g and friends (like -gdwarf and -gfull) because they try
|
||||
# to run dsymutil
|
||||
changequote(,)
|
||||
ICU_CFLAGS=`echo $ICU_CFLAGS | sed 's|-g[^ \t]*||g'`
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-g[^ \t]*||g'`
|
||||
changequote([,])
|
||||
fi
|
||||
|
||||
ICU_LDFLAGS="$MOZ_DEBUG_LDFLAGS"
|
||||
if test -z "$MOZ_DEBUG"; then
|
||||
# To generate debug symbols, it requires MOZ_DEBUG_FLAGS.
|
||||
# But, not debug build.
|
||||
ICU_CFLAGS="$ICU_CFLAGS -UDEBUG -DNDEBUG"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -UDEBUG -DNDEBUG"
|
||||
else
|
||||
ICU_BUILD_OPTS="$ICU_BUILD_OPTS --enable-debug"
|
||||
fi
|
||||
fi
|
||||
if test -z "$MOZ_OPTIMIZE"; then
|
||||
ICU_BUILD_OPTS="$ICU_BUILD_OPTS --disable-release"
|
||||
else
|
||||
ICU_CFLAGS="$ICU_CFLAGS $MOZ_OPTIMIZE_FLAGS"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS $MOZ_OPTIMIZE_FLAGS"
|
||||
fi
|
||||
|
||||
if test "$am_cv_langinfo_codeset" = "no"; then
|
||||
# ex. Android
|
||||
ICU_CPPFLAGS="$ICU_CPPFLAGS -DU_HAVE_NL_LANGINFO_CODESET=0"
|
||||
fi
|
||||
|
||||
# ICU requires RTTI
|
||||
if test "$GNU_CC"; then
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-fno-rtti|-frtti|g'`
|
||||
else
|
||||
if test "$_MSC_VER"; then
|
||||
ICU_CXXFLAGS=`echo $ICU_CXXFLAGS | sed 's|-GR-|-GR|g'`
|
||||
fi
|
||||
|
||||
# Add RTL flags for MSVCRT.DLL
|
||||
if test -n "$MOZ_DEBUG"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS -MDd"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -MDd"
|
||||
else
|
||||
ICU_CFLAGS="$ICU_CFLAGS -MD"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -MD"
|
||||
fi
|
||||
|
||||
# add disable optimize flag for workaround for bug 899948
|
||||
if test -z "$MOZ_OPTIMIZE"; then
|
||||
ICU_CFLAGS="$ICU_CFLAGS -Od"
|
||||
ICU_CXXFLAGS="$ICU_CXXFLAGS -Od"
|
||||
fi
|
||||
fi
|
||||
|
||||
# We cannot use AC_OUTPUT_SUBDIRS since ICU tree is out of spidermonkey.
|
||||
# When using AC_OUTPUT_SUBDIRS, objdir of ICU is out of objdir
|
||||
# due to relative path.
|
||||
# If building ICU moves into root of mozilla tree, we can use
|
||||
# AC_OUTPUT_SUBDIR instead.
|
||||
mkdir -p $_objdir/intl/icu/target
|
||||
(cd $_objdir/intl/icu/target
|
||||
MOZ_SUBCONFIGURE_WRAP([.],[
|
||||
AR="$AR" CC="$CC" CXX="$CXX" LD="$LD" \
|
||||
ARFLAGS="$ARFLAGS" \
|
||||
CPPFLAGS="$ICU_CPPFLAGS $CPPFLAGS" \
|
||||
CFLAGS="$ICU_CFLAGS" \
|
||||
CXXFLAGS="$ICU_CXXFLAGS" \
|
||||
LDFLAGS="$ICU_LDFLAGS $LDFLAGS" \
|
||||
$SHELL $_topsrcdir/intl/icu/source/configure \
|
||||
$ICU_BUILD_OPTS \
|
||||
$ICU_CROSS_BUILD_OPT \
|
||||
$ICU_LINK_OPTS \
|
||||
${ICU_SRCDIR+"$ICU_SRCDIR"} \
|
||||
$ICU_TARGET_OPT \
|
||||
--disable-extras --disable-icuio --disable-layout \
|
||||
--disable-tests --disable-samples || exit 1
|
||||
])
|
||||
) || exit 1
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
])
|
||||
|
|
|
@ -134,6 +134,7 @@ AC_CHECK_PROGS(LD, "${target_alias}-ld" "${target}-ld", :)
|
|||
AC_CHECK_PROGS(STRIP, "${target_alias}-strip" "${target}-strip", :)
|
||||
AC_CHECK_PROGS(WINDRES, "${target_alias}-windres" "${target}-windres", :)
|
||||
AC_DEFINE(CROSS_COMPILE)
|
||||
CROSS_COMPILE=1
|
||||
|
||||
dnl If we cross compile for ppc on Mac OS X x86, cross_compiling will
|
||||
dnl dnl have erroneously been set to "no", because the x86 build host is
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# finds the location of the browser and puts it in the variable $(browser_path)
|
||||
|
||||
ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH)))
|
||||
program = $(MOZ_APP_NAME)$(BIN_SUFFIX)
|
||||
else
|
||||
program = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX)
|
||||
|
|
|
@ -43,11 +43,6 @@ if test "$MOZ_BUILD_APP" = "i386" -o "$MOZ_BUILD_APP" = "x86_64"; then
|
|||
LD=ld
|
||||
STRIP="strip"
|
||||
|
||||
# Let configure know that we mean business.
|
||||
if test "$NATIVE_CPU" != "$TARGET_CPU" ; then
|
||||
CROSS_COMPILE=1
|
||||
fi
|
||||
|
||||
# Each per-CPU build should be entirely oblivious to the fact that a
|
||||
# universal binary will be produced. The exception is packager.mk, which
|
||||
# needs to know to look for universal bits when building the .dmg.
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
# This cannot be named "build" because of bug 922191.
|
||||
SPHINX_TREES['buildsystem'] = 'docs'
|
||||
|
||||
if CONFIG['OS_ARCH'] not in ('WINNT', 'OS2'):
|
||||
DIRS += ['unix']
|
||||
elif CONFIG['OS_ARCH'] == 'WINNT':
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
DIRS += ['win32']
|
||||
else:
|
||||
DIRS += ['unix']
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'Android' and not CONFIG['MOZ_ANDROID_LIBSTDCXX']:
|
||||
DIRS += ['stlport']
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
REM This Source Code Form is subject to the terms of the Mozilla Public
|
||||
REM License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
REM file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
/* Invoke unit tests on OS/2 */
|
||||
PARSE ARG dist prog parm
|
||||
dist=forwardtoback(dist);
|
||||
prog=forwardtoback(prog);
|
||||
'set BEGINLIBPATH='dist'\bin;%BEGINLIBPATH%'
|
||||
'set LIBPATHSTRICT=T'
|
||||
prog parm
|
||||
exit
|
||||
|
||||
forwardtoback: procedure
|
||||
arg pathname
|
||||
parse var pathname pathname'/'rest
|
||||
do while (rest <> "")
|
||||
pathname = pathname'\'rest
|
||||
parse var pathname pathname'/'rest
|
||||
end
|
||||
return pathname
|
|
@ -5,6 +5,7 @@ if test `uname -m` = "x86_64"; then
|
|||
CC="$CC -m32 -march=pentiumpro"
|
||||
CXX="$CXX -m32 -march=pentiumpro"
|
||||
ac_add_options --target=i686-pc-linux
|
||||
ac_add_options --host=i686-pc-linux
|
||||
ac_add_options --x-libraries=/usr/lib
|
||||
export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/share/pkgconfig
|
||||
fi
|
||||
|
|
|
@ -5,16 +5,6 @@
|
|||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
LOCAL_INCLUDES += \
|
||||
-I$(topsrcdir)/netwerk/protocol/res \
|
||||
-I$(topsrcdir)/netwerk/base/src \
|
||||
$(NULL)
|
||||
|
||||
ifdef MOZ_ENABLE_GTK
|
||||
CXXFLAGS += $(TK_CFLAGS)
|
||||
endif
|
||||
|
||||
LOCAL_INCLUDES += \
|
||||
-I$(topsrcdir)/xpcom/components \
|
||||
-I$(DEPTH)/xpcom \
|
||||
$(NULL)
|
||||
|
|
|
@ -20,3 +20,13 @@ MSVC_ENABLE_PGO = True
|
|||
include('/ipc/chromium/chromium-config.mozbuild')
|
||||
|
||||
FINAL_LIBRARY = 'xpcom_core'
|
||||
|
||||
GENERATED_INCLUDES += [
|
||||
'/xpcom',
|
||||
]
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'/netwerk/base/src',
|
||||
'/netwerk/protocol/res',
|
||||
'/xpcom/components'
|
||||
]
|
||||
|
|
|
@ -282,7 +282,7 @@ nsChromeRegistry::ConvertChromeURL(nsIURI* aChromeURI, nsIURI* *aResult)
|
|||
return rv;
|
||||
|
||||
if (flags & PLATFORM_PACKAGE) {
|
||||
#if defined(XP_WIN) || defined(XP_OS2)
|
||||
#if defined(XP_WIN)
|
||||
path.Insert("win/", 0);
|
||||
#elif defined(XP_MACOSX)
|
||||
path.Insert("mac/", 0);
|
||||
|
|
|
@ -34,7 +34,7 @@ INSTALL_TARGETS += NSINSTALL
|
|||
endif
|
||||
endif
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
HEADERS_FILES = \
|
||||
$(DEPTH)/mozilla-config.h \
|
||||
$(NULL)
|
||||
|
@ -49,7 +49,7 @@ include $(topsrcdir)/config/rules.mk
|
|||
|
||||
HOST_CFLAGS += -DUNICODE -D_UNICODE
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
# Generate a new buildid every time we "export" in config... that's only
|
||||
# supposed to be once per-build!
|
||||
export::
|
||||
|
@ -112,7 +112,7 @@ GARBAGE += \
|
|||
|
||||
FORCE:
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
check-preqs += check-jar-mn
|
||||
endif
|
||||
check-preqs += check-makefiles
|
||||
|
@ -123,7 +123,7 @@ check-jar-mn::
|
|||
$(MAKE) -C tests/src-simple check-jar
|
||||
$(MAKE) -C tests/src-simple check-flat
|
||||
$(MAKE) -C tests/src-simple check-flat USE_EXTENSION_MANIFEST=1
|
||||
ifneq (,$(filter-out WINNT OS2,$(OS_ARCH)))
|
||||
ifneq (,$(filter-out WINNT,$(OS_ARCH)))
|
||||
$(MAKE) -C tests/src-simple check-symlink
|
||||
endif
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
ifndef INCLUDED_AUTOCONF_MK
|
||||
INCLUDED_AUTOCONF_MK = 1
|
||||
include $(DEPTH)/config/emptyvars-js.mk
|
||||
@ALLSUBSTS@
|
||||
include $(topsrcdir)/config/baseconfig.mk
|
||||
endif
|
|
@ -447,10 +447,6 @@ endif
|
|||
|
||||
TAR_CREATE_FLAGS = -chf
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
TAR_CREATE_FLAGS = -cf
|
||||
endif
|
||||
|
||||
#
|
||||
# Personal makefile customizations go in these optional make include files.
|
||||
#
|
||||
|
@ -646,9 +642,6 @@ endif
|
|||
# Set link flags according to whether we want a console.
|
||||
ifdef MOZ_WINCONSOLE
|
||||
ifeq ($(MOZ_WINCONSOLE),1)
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BIN_FLAGS += -Zlinker -PM:VIO
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef GNU_CC
|
||||
WIN32_EXE_LDFLAGS += -mconsole
|
||||
|
@ -657,9 +650,6 @@ WIN32_EXE_LDFLAGS += -SUBSYSTEM:CONSOLE
|
|||
endif
|
||||
endif
|
||||
else # MOZ_WINCONSOLE
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
BIN_FLAGS += -Zlinker -PM:PM
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
ifdef GNU_CC
|
||||
WIN32_EXE_LDFLAGS += -mwindows
|
||||
|
@ -714,19 +704,15 @@ NSINSTALL_NATIVECMD := %nsinstall nsinstall
|
|||
ifdef NSINSTALL_BIN
|
||||
NSINSTALL = $(NSINSTALL_BIN)
|
||||
else
|
||||
ifeq (OS2,$(CROSS_COMPILE)$(OS_ARCH))
|
||||
NSINSTALL = $(MOZ_TOOLS_DIR)/nsinstall
|
||||
else
|
||||
ifeq ($(HOST_OS_ARCH),WINNT)
|
||||
NSINSTALL = $(NSINSTALL_PY)
|
||||
else
|
||||
NSINSTALL = $(DIST)/bin/nsinstall$(HOST_BIN_SUFFIX)
|
||||
endif # WINNT
|
||||
endif # OS2
|
||||
endif # NSINSTALL_BIN
|
||||
|
||||
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT OS2, $(OS_ARCH)))
|
||||
ifeq (,$(CROSS_COMPILE)$(filter-out WINNT, $(OS_ARCH)))
|
||||
INSTALL = $(NSINSTALL) -t
|
||||
ifdef .PYMAKE
|
||||
install_cmd = $(NSINSTALL_NATIVECMD) -t $(1)
|
||||
|
@ -738,7 +724,7 @@ else
|
|||
# target-specific.
|
||||
INSTALL = $(if $(filter copy, $(NSDISTMODE)), $(NSINSTALL) -t, $(if $(filter absolute_symlink, $(NSDISTMODE)), $(NSINSTALL) -L $(PWD), $(NSINSTALL) -R))
|
||||
|
||||
endif # WINNT/OS2
|
||||
endif # WINNT
|
||||
|
||||
# The default for install_cmd is simply INSTALL
|
||||
install_cmd ?= $(INSTALL) $(1)
|
||||
|
@ -795,13 +781,9 @@ MERGE_FILE = $(LOCALE_SRCDIR)/$(1)
|
|||
endif
|
||||
MERGE_FILES = $(foreach f,$(1),$(call MERGE_FILE,$(f)))
|
||||
|
||||
ifeq (OS2,$(OS_ARCH))
|
||||
RUN_TEST_PROGRAM = $(topsrcdir)/build/os2/test_os2.cmd '$(LIBXUL_DIST)'
|
||||
else
|
||||
ifneq (WINNT,$(OS_ARCH))
|
||||
RUN_TEST_PROGRAM = $(LIBXUL_DIST)/bin/run-mozilla.sh
|
||||
endif # ! WINNT
|
||||
endif # ! OS2
|
||||
|
||||
#
|
||||
# Java macros
|
||||
|
@ -844,7 +826,7 @@ HOST_EXTRA_LIBS += $(call EXPAND_LIBNAME_PATH,host_stdc++compat,$(DEPTH)/build/u
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq (,$(filter $(OS_TARGET),WINNT Darwin OS2))
|
||||
ifeq (,$(filter $(OS_TARGET),WINNT Darwin))
|
||||
CHECK_TEXTREL = @$(TOOLCHAIN_PREFIX)readelf -d $(1) | grep TEXTREL > /dev/null && echo 'TEST-UNEXPECTED-FAIL | check_textrel | We do not want text relocations in libraries and programs' || true
|
||||
endif
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
@ALLEMPTYSUBSTS@
|
|
@ -1,7 +0,0 @@
|
|||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
add_tier_dir('js', 'js/src', external=True)
|
||||
|
|
@ -67,7 +67,7 @@ SHARED_LIBRARY_DEST ?= $(FINAL_TARGET)
|
|||
SHARED_LIBRARY_TARGET = binaries libs
|
||||
INSTALL_TARGETS += SHARED_LIBRARY
|
||||
|
||||
ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH)))
|
||||
ifndef NO_INSTALL_IMPORT_LIBRARY
|
||||
IMPORT_LIB_FILES = $(IMPORT_LIBRARY)
|
||||
endif # NO_INSTALL_IMPORT_LIBRARY
|
||||
|
|
|
@ -36,7 +36,7 @@ libs::
|
|||
$(MAKE) -C $(DEPTH)/nsprpub install prefix=$(ABS_DIST)/sdk exec_prefix=$(ABS_DIST)/sdk bindir=$(ABS_DIST)/sdk/dummy includedir=$(ABS_DIST)/include/nspr libdir=$(ABS_DIST)/sdk/lib datadir=$(ABS_DIST)/sdk/dummy DESTDIR= $(EXTRA_MAKE_FLAGS)
|
||||
$(INSTALL) $(DEPTH)/nsprpub/config/nspr-config $(DIST)/sdk/bin
|
||||
$(RM) -rf $(DIST)/sdk/dummy
|
||||
ifneq (,$(filter OS2 WINNT,$(OS_ARCH))) # {
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH))) # {
|
||||
$(RM) -f $(DIST)/sdk/lib/$(DLL_PREFIX)nspr4$(DLL_SUFFIX) $(DIST)/sdk/lib/$(DLL_PREFIX)plc4$(DLL_SUFFIX) $(DIST)/sdk/lib/$(DLL_PREFIX)plds4$(DLL_SUFFIX)
|
||||
$(RM) -f $(DIST)/sdk/lib/$(LIB_PREFIX)nspr4_s.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plc4_s.$(LIB_SUFFIX) $(DIST)/sdk/lib/$(LIB_PREFIX)plds4_s.$(LIB_SUFFIX)
|
||||
else # } {
|
||||
|
|
|
@ -200,7 +200,6 @@ endif # ifeq (1_.,$(MOZ_PSEUDO_DERECURSE)_$(DEPTH))
|
|||
ifdef MOZ_PSEUDO_DERECURSE
|
||||
ifeq (.,$(DEPTH))
|
||||
# top-level directories
|
||||
ifdef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
# Only define recurse_targets for js, when it is built as part of gecko.
|
||||
recurse_targets := $(addsuffix /binaries,$(call TIER_DIRS,binaries))
|
||||
|
@ -208,7 +207,6 @@ recurse_targets := $(addsuffix /binaries,$(call TIER_DIRS,binaries))
|
|||
want_abspaths = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef COMPILE_ENVIRONMENT
|
||||
|
||||
|
|
|
@ -56,11 +56,7 @@ else
|
|||
REPORT_BUILD = $(info $(notdir $@))
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
EXEC =
|
||||
else
|
||||
EXEC = exec
|
||||
endif
|
||||
|
||||
# Don't copy xulrunner files at install time, when using system xulrunner
|
||||
ifdef SYSTEM_LIBXUL
|
||||
|
@ -124,6 +120,9 @@ libs:: $(CPP_UNIT_TEST_BINS) $(call mkdir_deps,$(DIST)/cppunittests)
|
|||
$(NSINSTALL) $(CPP_UNIT_TEST_BINS) $(DIST)/cppunittests
|
||||
endif
|
||||
|
||||
run-cppunittests::
|
||||
@$(PYTHON) $(topsrcdir)/testing/runcppunittests.py --xre-path=$(DIST)/bin --symbols-path=$(DIST)/crashreporter-symbols $(subst .cpp,$(BIN_SUFFIX),$(CPP_UNIT_TESTS))
|
||||
|
||||
cppunittests-remote: DM_TRANS?=adb
|
||||
cppunittests-remote:
|
||||
@if [ '${TEST_DEVICE}' != '' -o '$(DM_TRANS)' = 'adb' ]; then \
|
||||
|
@ -191,7 +190,7 @@ ifdef LIB_IS_C_ONLY
|
|||
MKSHLIB = $(MKCSHLIB)
|
||||
endif
|
||||
|
||||
ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH)))
|
||||
IMPORT_LIBRARY := $(LIB_PREFIX)$(SHARED_LIBRARY_NAME).$(IMPORT_LIB_SUFFIX)
|
||||
endif
|
||||
|
||||
|
@ -201,10 +200,6 @@ else
|
|||
SHARED_LIBRARY := $(DLL_PREFIX)$(SHARED_LIBRARY_NAME)$(DLL_SUFFIX)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
DEF_FILE := $(SHARED_LIBRARY:.dll=.def)
|
||||
endif
|
||||
|
||||
EMBED_MANIFEST_AT=2
|
||||
|
||||
endif # MKSHLIB
|
||||
|
@ -364,10 +359,6 @@ ifdef MOZ_UPDATE_XTERM
|
|||
UPDATE_TITLE = printf '\033]0;%s in %s\007' $(1) $(relativesrcdir)/$(2) ;
|
||||
endif
|
||||
|
||||
ifdef BUILDING_JS
|
||||
NO_BUILDSTATUS_MESSAGES=1
|
||||
endif
|
||||
|
||||
ifdef MACH
|
||||
ifndef NO_BUILDSTATUS_MESSAGES
|
||||
define BUILDSTATUS
|
||||
|
@ -729,9 +720,6 @@ distclean::
|
|||
$(wildcard *.$(OBJ_SUFFIX)) $(wildcard *.ho) $(wildcard host_*.o*) \
|
||||
$(wildcard *.$(LIB_SUFFIX)) $(wildcard *$(DLL_SUFFIX)) \
|
||||
$(wildcard *.$(IMPORT_LIB_SUFFIX))
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
-$(RM) $(PROGRAM:.exe=.map)
|
||||
endif
|
||||
|
||||
alltags:
|
||||
$(RM) TAGS
|
||||
|
@ -872,23 +860,6 @@ ifeq ($(OS_ARCH),WINNT)
|
|||
$(IMPORT_LIBRARY): $(SHARED_LIBRARY) ;
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(DEF_FILE): $(OBJS) $(SHARED_LIBRARY_LIBS)
|
||||
$(RM) $@
|
||||
echo LIBRARY $(SHARED_LIBRARY_NAME) INITINSTANCE TERMINSTANCE > $@
|
||||
echo PROTMODE >> $@
|
||||
echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@
|
||||
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
|
||||
echo EXPORTS >> $@
|
||||
|
||||
$(ADD_TO_DEF_FILE)
|
||||
|
||||
$(IMPORT_LIBRARY): $(SHARED_LIBRARY)
|
||||
$(REPORT_BUILD)
|
||||
$(RM) $@
|
||||
$(IMPLIB) $@ $^
|
||||
endif # OS/2
|
||||
|
||||
$(HOST_LIBRARY): $(HOST_OBJS) Makefile
|
||||
$(REPORT_BUILD)
|
||||
$(RM) $@
|
||||
|
@ -1076,22 +1047,18 @@ $(filter %.i,$(CMMSRCS:%.mm=%.i)): %.i: %.mm $(call mkdir_deps,$(MDDEPDIR))
|
|||
$(RESFILE): %.res: %.rc
|
||||
$(REPORT_BUILD)
|
||||
@echo Creating Resource file: $@
|
||||
ifeq ($(OS_ARCH),OS2)
|
||||
$(RC) $(RCFLAGS:-D%=-d %) -i $(subst /,\,$(srcdir)) -r $< $@
|
||||
else
|
||||
ifdef GNU_CC
|
||||
$(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) $(OUTOPTION)$@ $(_VPATH_SRCS)
|
||||
else
|
||||
$(RC) $(RCFLAGS) -r $(DEFINES) $(INCLUDES) $(OUTOPTION)$@ $(_VPATH_SRCS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Cancel GNU make built-in implicit rules
|
||||
ifndef .PYMAKE
|
||||
MAKEFLAGS += -r
|
||||
endif
|
||||
|
||||
ifneq (,$(filter OS2 WINNT,$(OS_ARCH)))
|
||||
ifneq (,$(filter WINNT,$(OS_ARCH)))
|
||||
SEP := ;
|
||||
else
|
||||
SEP := :
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
DEHYDRA_SCRIPT = $(topsrcdir)/config/static-checking.js
|
||||
|
||||
ifndef BUILDING_JS
|
||||
ifndef JS_STANDALONE
|
||||
DEHYDRA_MODULES = \
|
||||
$(topsrcdir)/xpcom/analysis/final.js \
|
||||
$(topsrcdir)/xpcom/analysis/must-override.js \
|
||||
|
@ -43,11 +43,7 @@ OS_CXXFLAGS += $(DEHYDRA_FLAGS)
|
|||
endif
|
||||
|
||||
ifdef ENABLE_CLANG_PLUGIN
|
||||
ifndef BUILDING_JS
|
||||
CLANG_PLUGIN := $(DEPTH)/build/clang-plugin/$(DLL_PREFIX)clang-plugin$(DLL_SUFFIX)
|
||||
else
|
||||
CLANG_PLUGIN := $(DEPTH)/../../build/clang-plugin/$(DLL_PREFIX)clang-plugin$(DLL_SUFFIX)
|
||||
endif
|
||||
OS_CXXFLAGS += -Xclang -load -Xclang $(CLANG_PLUGIN) -Xclang -add-plugin -Xclang moz-check
|
||||
OS_CFLAGS += -Xclang -load -Xclang $(CLANG_PLUGIN) -Xclang -add-plugin -Xclang moz-check
|
||||
endif
|
||||
|
|
|
@ -221,7 +221,6 @@ cairo-atsui.h
|
|||
cairo-beos.h
|
||||
cairo-ft.h
|
||||
cairo-glitz.h
|
||||
cairo-os2.h
|
||||
cairo-pdf.h
|
||||
cairo-ps.h
|
||||
cairo-tee.h
|
||||
|
@ -690,7 +689,6 @@ oleidl.h
|
|||
OpenGL/OpenGL.h
|
||||
OpenTptInternet.h
|
||||
OpenTransport.h
|
||||
os2.h
|
||||
OS.h
|
||||
osreldate.h
|
||||
ostream
|
||||
|
|
281
configure.in
281
configure.in
|
@ -92,7 +92,6 @@ _topsrcdir=`cd \`dirname $0\`; pwd`
|
|||
_objdir=`pwd`
|
||||
|
||||
|
||||
|
||||
dnl TODO Don't exempt L10N builds once bug 842760 is resolved.
|
||||
if test "$_topsrcdir" = "$_objdir" -a "${with_l10n_base+set}" != set; then
|
||||
echo " ***"
|
||||
|
@ -287,7 +286,6 @@ if test -n "$gonkdir" ; then
|
|||
AC_SUBST(ANDROID_VERSION)
|
||||
AC_DEFINE(HAVE_SYS_UIO_H)
|
||||
AC_DEFINE(HAVE_PTHREADS)
|
||||
CROSS_COMPILE=1
|
||||
MOZ_CHROME_FILE_FORMAT=omni
|
||||
direct_nspr_config=1
|
||||
else
|
||||
|
@ -314,16 +312,13 @@ AC_SUBST(OBJCOPY)
|
|||
dnl ========================================================
|
||||
dnl Checks for compilers.
|
||||
dnl ========================================================
|
||||
dnl Set CROSS_COMPILE in the environment when running configure
|
||||
dnl to use the cross-compile setup for now
|
||||
dnl ========================================================
|
||||
|
||||
dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269)
|
||||
AR_FLAGS='crs $@'
|
||||
|
||||
if test "$COMPILE_ENVIRONMENT"; then
|
||||
|
||||
if test -n "$CROSS_COMPILE" -a "$target" != "$host"; then
|
||||
if test "$target" != "$host"; then
|
||||
MOZ_CROSS_COMPILER
|
||||
else
|
||||
AC_PROG_CC
|
||||
|
@ -1046,9 +1041,6 @@ solaris*)
|
|||
AC_SUBST(SOLARIS_SUNPRO_CC)
|
||||
AC_SUBST(SOLARIS_SUNPRO_CXX)
|
||||
;;
|
||||
OS_2)
|
||||
HOST_OS_ARCH=OS2
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$OS_ARCH" in
|
||||
|
@ -1087,11 +1079,6 @@ AIX)
|
|||
OS_RELEASE=`uname -v`.`uname -r`
|
||||
OS_TEST=${target_cpu}
|
||||
;;
|
||||
OS_2)
|
||||
OS_ARCH=OS2
|
||||
OS_TARGET=OS2
|
||||
OS_RELEASE=`uname -v`
|
||||
;;
|
||||
Darwin)
|
||||
case "${target_cpu}" in
|
||||
powerpc*)
|
||||
|
@ -1542,16 +1529,6 @@ AC_SUBST(HAVE_64BIT_OS)
|
|||
AC_LANG_RESTORE
|
||||
fi # COMPILE_ENVIRONMENT
|
||||
|
||||
dnl ========================================================
|
||||
dnl Enable high-memory support on OS/2 by default.
|
||||
dnl ========================================================
|
||||
MOZ_OS2_HIGH_MEMORY=1
|
||||
MOZ_ARG_DISABLE_BOOL(os2-high-mem,
|
||||
[ --disable-os2-high-mem Disable high-memory support on OS/2],
|
||||
MOZ_OS2_HIGH_MEMORY=,
|
||||
MOZ_OS2_HIGH_MEMORY=1 )
|
||||
AC_SUBST(MOZ_OS2_HIGH_MEMORY)
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Use profiling compile flags
|
||||
dnl ========================================================
|
||||
|
@ -1742,14 +1719,6 @@ case "$host" in
|
|||
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
|
||||
;;
|
||||
|
||||
*os2*)
|
||||
HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
|
||||
HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
|
||||
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
||||
HOST_BIN_SUFFIX=.exe
|
||||
MOZ_FIX_LINK_PATHS=
|
||||
;;
|
||||
|
||||
*)
|
||||
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
|
||||
HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
|
||||
|
@ -2257,71 +2226,6 @@ ia64*-hpux*)
|
|||
fi
|
||||
;;
|
||||
|
||||
*-os2*)
|
||||
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
AC_DEFINE(OS2)
|
||||
AC_DEFINE(XP_OS2)
|
||||
AC_DEFINE(OS2EMX_PLAIN_CHAR)
|
||||
AC_DEFINE(TCPV40HDRS)
|
||||
DLL_PREFIX=
|
||||
LIB_PREFIX=
|
||||
LIB_SUFFIX=lib
|
||||
BIN_SUFFIX=".exe"
|
||||
DLL_SUFFIX=".dll"
|
||||
IMPORT_LIB_SUFFIX=lib
|
||||
DSO_PIC_CFLAGS=
|
||||
AR=emxomfar
|
||||
AR_FLAGS='r $@'
|
||||
CFLAGS="$CFLAGS -Zomf"
|
||||
CXXFLAGS="$CXXFLAGS -Zomf"
|
||||
DSO_LDOPTS='-Zdll'
|
||||
BIN_FLAGS='-Zlinker /ST:0x100000'
|
||||
IMPLIB='emximp -o'
|
||||
FILTER='true'
|
||||
LDFLAGS='-Zmap'
|
||||
WARNINGS_AS_ERRORS='-Werror'
|
||||
MOZ_DEBUG_FLAGS="-g -fno-inline"
|
||||
MOZ_OPTIMIZE_FLAGS="-O2"
|
||||
MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
|
||||
LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
|
||||
TARGET_MD_ARCH=os2
|
||||
_PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
|
||||
RC=rc.exe
|
||||
MC=mc.exe
|
||||
RCFLAGS='-n'
|
||||
MOZ_USER_DIR="Mozilla"
|
||||
ZIP="$ZIP -X"
|
||||
STRIP=lxlite
|
||||
STRIP_FLAGS="/yua /ydd /yxd /ynl /anp /b- /cs+ /d /i- /ml1 /mr2 /mf2 /r+ /u+ /x- /zs:0 /zx /zd"
|
||||
|
||||
if test "$MOZTOOLS"; then
|
||||
MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
|
||||
else
|
||||
AC_MSG_ERROR([MOZTOOLS is not set])
|
||||
fi
|
||||
if test -n "$MOZ_OS2_HIGH_MEMORY"; then
|
||||
DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
|
||||
LDFLAGS="$LDFLAGS -Zhigh-mem"
|
||||
MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
|
||||
AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
|
||||
fi
|
||||
|
||||
# GCC for OS/2 currently predefines these, but we don't want them
|
||||
_DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
|
||||
_DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
|
||||
|
||||
AC_CACHE_CHECK(for __declspec(dllexport),
|
||||
ac_os2_declspec,
|
||||
[AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
|
||||
[return 0;],
|
||||
ac_os2_declspec="yes",
|
||||
ac_os2_declspec="no")])
|
||||
if test "$ac_os2_declspec" != "yes"; then
|
||||
AC_MSG_ERROR([Compiler does not support __declspec(dllexport), install GCC-4.3.2 or newer])
|
||||
fi
|
||||
;;
|
||||
|
||||
*-solaris*)
|
||||
AC_DEFINE(SOLARIS)
|
||||
TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
|
||||
|
@ -2417,10 +2321,6 @@ ia64*-hpux*)
|
|||
esac
|
||||
;;
|
||||
|
||||
*-os2*)
|
||||
HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
case "$target" in
|
||||
|
@ -2453,9 +2353,6 @@ if test -z "$MKSHLIB_FORCE_ALL" -o -z "$MKSHLIB_UNFORCE_ALL"; then
|
|||
NO_LD_ARCHIVE_FLAGS=1
|
||||
fi
|
||||
case "$target" in
|
||||
*-os2*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
*-aix4.3*|*-aix5*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
|
@ -2811,8 +2708,6 @@ dnl against libSystem causes issues when debugging (see bug 299601).
|
|||
case $target in
|
||||
*-darwin*)
|
||||
;;
|
||||
*-os2*)
|
||||
;;
|
||||
*)
|
||||
AC_SEARCH_LIBS(dlopen, dl,
|
||||
MOZ_CHECK_HEADER(dlfcn.h,
|
||||
|
@ -2837,13 +2732,7 @@ if test ! "$GNU_CXX"; then
|
|||
esac
|
||||
fi
|
||||
|
||||
dnl OS/2 has socket in libc.
|
||||
case $target in
|
||||
*-os2*)
|
||||
;;
|
||||
*)
|
||||
AC_CHECK_LIB(socket, socket)
|
||||
esac
|
||||
AC_CHECK_LIB(socket, socket)
|
||||
|
||||
XLDFLAGS="$X_LIBS"
|
||||
XLIBS="$X_EXTRA_LIBS"
|
||||
|
@ -3122,7 +3011,7 @@ fi
|
|||
AC_LANG_CPLUSPLUS
|
||||
|
||||
case $target_os in
|
||||
darwin*|mingw*|os2*)
|
||||
darwin*|mingw*)
|
||||
;;
|
||||
*)
|
||||
|
||||
|
@ -3563,7 +3452,7 @@ MOZ_ARG_WITH_BOOL(system-nspr,
|
|||
_USE_SYSTEM_NSPR=1 )
|
||||
|
||||
if test -n "$_USE_SYSTEM_NSPR"; then
|
||||
AM_PATH_NSPR(4.10.2, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
|
||||
AM_PATH_NSPR(4.10.3, [MOZ_NATIVE_NSPR=1], [AC_MSG_ERROR([your don't have NSPR installed or your version is too old])])
|
||||
fi
|
||||
|
||||
if test -n "$MOZ_NATIVE_NSPR"; then
|
||||
|
@ -3697,7 +3586,7 @@ if test -n "$MOZ_NATIVE_NSS"; then
|
|||
else
|
||||
NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
|
||||
|
||||
if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2"; then
|
||||
if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT"; then
|
||||
NSS_LIBS="\
|
||||
\$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
|
||||
\$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(LIB_SUFFIX) \
|
||||
|
@ -3907,18 +3796,9 @@ AC_SUBST(MOZ_NATIVE_HUNSPELL)
|
|||
dnl ========================================================
|
||||
dnl system libffi Support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_ENABLE_BOOL(system-ffi,
|
||||
[ --enable-system-ffi Use system libffi (located with pkgconfig)],
|
||||
MOZ_NATIVE_FFI=1 )
|
||||
MOZ_CONFIG_FFI()
|
||||
|
||||
if test -n "$MOZ_NATIVE_FFI"; then
|
||||
# Vanilla libffi 3.0.9 needs a few patches from upcoming version 3.0.10
|
||||
# for non-GCC compilers.
|
||||
if test -z "$GNU_CC"; then
|
||||
PKG_CHECK_MODULES(MOZ_FFI, libffi > 3.0.9)
|
||||
else
|
||||
PKG_CHECK_MODULES(MOZ_FFI, libffi >= 3.0.9)
|
||||
fi
|
||||
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_FFI_LIBS"
|
||||
fi
|
||||
|
||||
|
@ -3933,26 +3813,6 @@ MOZ_ARG_ENABLE_BOOL(shared-js,
|
|||
JS_SHARED_LIBRARY=1,
|
||||
JS_SHARED_LIBRARY=)
|
||||
|
||||
dnl ========================================================
|
||||
dnl System ICU Support
|
||||
dnl ========================================================
|
||||
MOZ_NATIVE_ICU=
|
||||
MOZ_ARG_WITH_BOOL(system-icu,
|
||||
[ --with-system-icu
|
||||
Use system ICU (located with pkgconfig)],
|
||||
MOZ_NATIVE_ICU=1)
|
||||
|
||||
if test -n "$MOZ_NATIVE_ICU"; then
|
||||
PKG_CHECK_MODULES(MOZ_ICU, icu-i18n >= 50.1)
|
||||
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS"
|
||||
MOZ_SHARED_ICU=1
|
||||
else
|
||||
MOZ_ICU_CFLAGS='-I$(topsrcdir)/intl/icu/source/common -I$(topsrcdir)/intl/icu/source/i18n'
|
||||
AC_SUBST(MOZ_ICU_CFLAGS)
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_NATIVE_ICU)
|
||||
|
||||
dnl ========================================================
|
||||
dnl Java SDK support
|
||||
dnl ========================================================
|
||||
|
@ -4199,10 +4059,6 @@ if test -n "$WITH_APP_NAME" ; then
|
|||
MOZ_APP_NAME="$WITH_APP_NAME"
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_APP_NAME"; then
|
||||
MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z`
|
||||
fi
|
||||
|
||||
MOZ_ARG_WITH_STRING(app-basename,
|
||||
[--with-app-basename=BASENAME sets MOZ_APP_BASENAME to BASENAME],
|
||||
WITH_APP_BASENAME=$withval,
|
||||
|
@ -4282,7 +4138,6 @@ MOZ_ARG_HEADER(Toolkit Options)
|
|||
Select default toolkit
|
||||
Platform specific defaults:
|
||||
Mac OS X - cairo-cocoa
|
||||
OS/2 - cairo-os2
|
||||
Win32 - cairo-windows
|
||||
* - cairo-gtk2
|
||||
* - cairo-gtk3
|
||||
|
@ -4295,7 +4150,6 @@ MOZ_ARG_HEADER(Toolkit Options)
|
|||
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk3" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-uikit" \
|
||||
-o "$_DEFAULT_TOOLKIT" = "cairo-android" \
|
||||
|
@ -4391,14 +4245,6 @@ cairo-qt)
|
|||
AC_DEFINE(QT_NO_KEYWORDS)
|
||||
;;
|
||||
|
||||
cairo-os2)
|
||||
MOZ_WIDGET_TOOLKIT=os2
|
||||
USE_FC_FREETYPE=1
|
||||
TK_CFLAGS='$(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS)'
|
||||
TK_LIBS='$(MOZ_CAIRO_LIBS) $(MOZ_PIXMAN_LIBS)'
|
||||
MOZ_PDF_PRINTING=1
|
||||
;;
|
||||
|
||||
cairo-cocoa)
|
||||
MOZ_WIDGET_TOOLKIT=cocoa
|
||||
AC_DEFINE(MOZ_WIDGET_COCOA)
|
||||
|
@ -6850,8 +6696,8 @@ fi
|
|||
if test "${OS_TARGET}" = "Android"; then
|
||||
dnl On Android, we use WRAP_LDFLAGS to link everything to mozglue
|
||||
:
|
||||
elif test "${OS_TARGET}" = "WINNT" -o "${OS_TARGET}" = "Darwin" -o "${OS_TARGET}" = "OS2"; then
|
||||
dnl On Windows, OSX and OS2, we want to link all our binaries against mozglue
|
||||
elif test "${OS_TARGET}" = "WINNT" -o "${OS_TARGET}" = "Darwin"; then
|
||||
dnl On Windows and OSX, we want to link all our binaries against mozglue
|
||||
if test -z "$GNU_CC"; then
|
||||
MOZ_GLUE_LDFLAGS='$(call EXPAND_LIBNAME_PATH,mozglue,$(LIBXUL_DIST)/lib)'
|
||||
else
|
||||
|
@ -7563,7 +7409,7 @@ if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
|
|||
AC_DEFINE(MOZ_OMNIJAR)
|
||||
fi
|
||||
MOZ_PACKAGER_FORMAT="$MOZ_CHROME_FILE_FORMAT"
|
||||
if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2" -o "$MOZ_WIDGET_TOOLKIT" = "android"; then
|
||||
if test "$OS_ARCH" = "WINNT" -o "$MOZ_WIDGET_TOOLKIT" = "android"; then
|
||||
MOZ_CHROME_FILE_FORMAT=flat
|
||||
else
|
||||
MOZ_CHROME_FILE_FORMAT=symlink
|
||||
|
@ -8043,13 +7889,6 @@ if test "$MOZ_TREE_CAIRO"; then
|
|||
MOZ_CHECK_HEADER(d3d10.h, MOZ_ENABLE_D3D10_LAYER=1)
|
||||
fi
|
||||
;;
|
||||
os2)
|
||||
OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
|
||||
FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
|
||||
MOZ_ENABLE_CAIRO_FT=1
|
||||
CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
|
||||
CAIRO_FT_OSLIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
|
||||
;;
|
||||
esac
|
||||
if test "$USE_FC_FREETYPE"; then
|
||||
FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
|
||||
|
@ -8425,7 +8264,6 @@ AC_SUBST(XPCOM_STANDALONE_STATICRUNTIME_GLUE_LDOPTS)
|
|||
AC_SUBST(USE_DEPENDENT_LIBS)
|
||||
|
||||
AC_SUBST(MOZ_BUILD_ROOT)
|
||||
AC_SUBST(MOZ_OS2_TOOLS)
|
||||
|
||||
AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
|
||||
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
|
||||
|
@ -8506,6 +8344,10 @@ AC_SUBST(MOZ_CHILD_PROCESS_BUNDLE)
|
|||
# - MOZ_PROFILE_MIGRATOR: When set, enables profile migrator.
|
||||
# - MOZ_EXTENSION_MANAGER: When set, enabled extension manager.
|
||||
|
||||
if test -z "$MOZ_APP_NAME"; then
|
||||
MOZ_APP_NAME=`echo $MOZ_APP_BASENAME | tr A-Z a-z`
|
||||
fi
|
||||
|
||||
# For extensions and langpacks, we require a max version that is compatible
|
||||
# across security releases. MOZ_APP_MAXVERSION is our method for doing that.
|
||||
# 24.0a1 and 24.0a2 aren't affected
|
||||
|
@ -8797,7 +8639,7 @@ dnl ========================================================
|
|||
|
||||
if test "$OS_ARCH" = "Darwin"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2"; then
|
||||
elif test "$OS_ARCH" != "WINNT"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
fi
|
||||
|
||||
|
@ -8849,84 +8691,34 @@ HAVE_SYS_MOUNT_H
|
|||
|
||||
AC_SUBST(STLPORT_LIBS)
|
||||
|
||||
MOZ_ARG_WITH_STRING(intl-api,
|
||||
[ --with-intl-api, --with-intl-api=build, --without-intl-api
|
||||
Determine the status of the ECMAScript Internationalization API. The first
|
||||
(or lack of any of these) builds and exposes the API. The second builds it
|
||||
but doesn't use ICU or expose the API to script. The third doesn't build
|
||||
ICU at all.],
|
||||
_INTL_API=$withval,
|
||||
_INTL_API=yes)
|
||||
dnl ========================================================
|
||||
dnl ICU Support
|
||||
dnl ========================================================
|
||||
|
||||
WITH_INTL="--with-intl-api=$_INTL_API"
|
||||
ENABLE_INTL_API=
|
||||
case "$_INTL_API" in
|
||||
no)
|
||||
;;
|
||||
build)
|
||||
ENABLE_INTL_API=1
|
||||
;;
|
||||
yes)
|
||||
ENABLE_INTL_API=1
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid value passed to --with-intl-api: $_INTL_API])
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "$ENABLE_INTL_API"; then
|
||||
if test "$MOZ_BUILD_APP" = "browser"; then
|
||||
WITH_INTL="--with-intl-api"
|
||||
_INTL_API=yes
|
||||
else
|
||||
# Internationalization isn't built or exposed by default in non-desktop
|
||||
# builds. Bugs to enable:
|
||||
#
|
||||
# Android: bug 864843
|
||||
# B2G: bug 866301
|
||||
WITH_INTL="--without-intl-api"
|
||||
ENABLE_INTL_API=
|
||||
fi
|
||||
_INTL_API=no
|
||||
fi
|
||||
|
||||
dnl Settings for the implementation of the ECMAScript Internationalization API
|
||||
if test -n "$ENABLE_INTL_API"; then
|
||||
AC_DEFINE(ENABLE_INTL_API)
|
||||
MOZ_CONFIG_ICU()
|
||||
|
||||
MOZ_CONFIG_ICU()
|
||||
|
||||
dnl Build ICU as a shared library for shared js builds.
|
||||
if test -z "$MOZ_NATIVE_ICU" -a -n "$JS_SHARED_LIBRARY"; then
|
||||
case "$OS_TARGET" in
|
||||
WINNT)
|
||||
ICU_LIB_NAMES="icuin icuuc icudt"
|
||||
DBG_SUFFIX=
|
||||
if test -n "$MOZ_DEBUG"; then
|
||||
DBG_SUFFIX=d
|
||||
fi
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/js/src/intl/icu/target/lib/$(LIB_PREFIX)$(lib)$(DBG_SUFFIX).$(LIB_SUFFIX))'
|
||||
;;
|
||||
Darwin)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/js/src/intl/icu/target/lib/$(DLL_PREFIX)$(lib).$(MOZ_ICU_VERSION)$(DLL_SUFFIX))'
|
||||
;;
|
||||
Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
|
||||
ICU_LIB_NAMES="icui18n icuuc icudata"
|
||||
MOZ_ICU_LIBS='$(foreach lib,$(ICU_LIB_NAMES),$(DEPTH)/js/src/intl/icu/target/lib/$(DLL_PREFIX)$(lib)$(DLL_SUFFIX).$(MOZ_ICU_VERSION))'
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([ECMAScript Internationalization API is not yet supported on this platform])
|
||||
esac
|
||||
fi
|
||||
if test -n "$MOZ_NATIVE_ICU"; then
|
||||
MOZ_JS_STATIC_LIBS="$MOZ_JS_STATIC_LIBS $MOZ_ICU_LIBS"
|
||||
fi
|
||||
|
||||
AC_SUBST(DBG_SUFFIX)
|
||||
AC_SUBST(ENABLE_INTL_API)
|
||||
AC_SUBST(ICU_LIB_NAMES)
|
||||
AC_SUBST(MOZ_ICU_LIBS)
|
||||
MOZ_CREATE_CONFIG_STATUS()
|
||||
|
||||
export WRITE_MOZINFO=1
|
||||
AC_OUTPUT()
|
||||
unset WRITE_MOZINFO
|
||||
# No need to run subconfigures when building with LIBXUL_SDK_DIR
|
||||
if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
|
||||
MOZ_SUBCONFIGURE_ICU()
|
||||
MOZ_SUBCONFIGURE_FFI()
|
||||
fi
|
||||
|
||||
# Hack around an Apple bug that affects the egrep that comes with OS X 10.7.
|
||||
# "env ARCHPREFERENCE=i386,x86_64 arch egrep" first tries to use the 32-bit
|
||||
|
@ -9106,9 +8898,6 @@ if test -z "$MOZ_NATIVE_NSPR"; then
|
|||
AC_OUTPUT_SUBDIRS(nsprpub)
|
||||
|
||||
# .. and restore them
|
||||
unset CFLAGS
|
||||
unset CPPFLAGS
|
||||
unset LDFLAGS
|
||||
CFLAGS="$_SAVE_CFLAGS"
|
||||
CPPFLAGS="$_SAVE_CPPFLAGS"
|
||||
LDFLAGS="$_SAVE_LDFLAGS"
|
||||
|
@ -9142,7 +8931,9 @@ dist=$MOZ_BUILD_ROOT/dist
|
|||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
ac_configure_args="$ac_configure_args --enable-threadsafe"
|
||||
|
||||
ac_configure_args="$ac_configure_args $WITH_INTL"
|
||||
if test "$_INTL_API" = no; then
|
||||
ac_configure_args="$ac_configure_args --without-intl-api"
|
||||
fi
|
||||
|
||||
if test "$BUILD_CTYPES"; then
|
||||
# Build js-ctypes on the platforms we can.
|
||||
|
@ -9161,7 +8952,6 @@ if test -z "$MOZ_NATIVE_NSPR"; then
|
|||
ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
|
||||
ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
|
||||
fi
|
||||
ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
|
||||
ac_configure_args="$ac_configure_args --prefix=$dist"
|
||||
if test "$MOZ_MEMORY"; then
|
||||
ac_configure_args="$ac_configure_args --enable-jemalloc"
|
||||
|
@ -9197,3 +8987,12 @@ AC_OUTPUT_SUBDIRS(js/src)
|
|||
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
|
||||
|
||||
fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR
|
||||
|
||||
export WRITE_MOZINFO=1
|
||||
dnl we need to run config.status after js/src subconfigure because we're
|
||||
dnl traversing its moz.build and we need its config.status for that.
|
||||
dnl However, writing our own config.status needs to happen before
|
||||
dnl subconfigures because the setup surrounding subconfigures alters
|
||||
dnl many AC_SUBSTed variables.
|
||||
MOZ_RUN_CONFIG_STATUS()
|
||||
unset WRITE_MOZINFO
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#ifndef nsContentUtils_h___
|
||||
#define nsContentUtils_h___
|
||||
|
||||
#if defined(XP_WIN) || defined(XP_OS2)
|
||||
#if defined(XP_WIN)
|
||||
#include <float.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -38,3 +38,4 @@ DEPRECATED_OPERATION(UseOfReleaseEvents)
|
|||
DEPRECATED_OPERATION(UseOfDOM3LoadMethod)
|
||||
DEPRECATED_OPERATION(ShowModalDialog)
|
||||
DEPRECATED_OPERATION(Window_Content)
|
||||
DEPRECATED_OPERATION(SyncXMLHttpRequest)
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "nsIDOMClassInfo.h"
|
||||
#include "nsIDOMFile.h"
|
||||
#include "xpcpublic.h"
|
||||
#include "mozilla/Debug.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "mozilla/dom/StructuredCloneUtils.h"
|
||||
#include "JavaScriptChild.h"
|
||||
|
@ -37,9 +38,6 @@
|
|||
#include "nsPrintfCString.h"
|
||||
#include <algorithm>
|
||||
|
||||
#ifdef ANDROID
|
||||
#include <android/log.h>
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
#include <windows.h>
|
||||
# if defined(SendMessage)
|
||||
|
@ -723,16 +721,7 @@ nsFrameMessageManager::GetChildAt(uint32_t aIndex,
|
|||
NS_IMETHODIMP
|
||||
nsFrameMessageManager::Dump(const nsAString& aStr)
|
||||
{
|
||||
#ifdef ANDROID
|
||||
__android_log_print(ANDROID_LOG_INFO, "Gecko", "%s", NS_ConvertUTF16toUTF8(aStr).get());
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
if (IsDebuggerPresent()) {
|
||||
OutputDebugStringW(PromiseFlatString(aStr).get());
|
||||
}
|
||||
#endif
|
||||
fputs(NS_ConvertUTF16toUTF8(aStr).get(), stdout);
|
||||
fflush(stdout);
|
||||
PrintToDebugger(aStr, stdout);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -273,6 +273,9 @@ nsXMLHttpRequestUpload::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aScope)
|
|||
//
|
||||
/////////////////////////////////////////////
|
||||
|
||||
bool
|
||||
nsXMLHttpRequest::sDontWarnAboutSyncXHR = false;
|
||||
|
||||
nsXMLHttpRequest::nsXMLHttpRequest()
|
||||
: mResponseBodyDecodedPos(0),
|
||||
mResponseType(XML_HTTP_RESPONSE_TYPE_DEFAULT),
|
||||
|
@ -1541,6 +1544,11 @@ nsXMLHttpRequest::Open(const nsACString& method, const nsACString& url,
|
|||
{
|
||||
NS_ENSURE_ARG(!method.IsEmpty());
|
||||
|
||||
if (!async && !DontWarnAboutSyncXHR() && GetOwner() &&
|
||||
GetOwner()->GetExtantDoc()) {
|
||||
GetOwner()->GetExtantDoc()->WarnOnceAbout(nsIDocument::eSyncXMLHttpRequest);
|
||||
}
|
||||
|
||||
Telemetry::Accumulate(Telemetry::XMLHTTPREQUEST_ASYNC_OR_SYNC,
|
||||
async ? 0 : 1);
|
||||
|
||||
|
|
|
@ -533,6 +533,14 @@ public:
|
|||
|
||||
virtual void DisconnectFromOwner() MOZ_OVERRIDE;
|
||||
|
||||
static void SetDontWarnAboutSyncXHR(bool aVal)
|
||||
{
|
||||
sDontWarnAboutSyncXHR = aVal;
|
||||
}
|
||||
static bool DontWarnAboutSyncXHR()
|
||||
{
|
||||
return sDontWarnAboutSyncXHR;
|
||||
}
|
||||
protected:
|
||||
nsresult DetectCharset();
|
||||
nsresult AppendToResponseText(const char * aBuffer, uint32_t aBufferLen);
|
||||
|
@ -736,6 +744,25 @@ protected:
|
|||
|
||||
// Helper object to manage our XPCOM scriptability bits
|
||||
nsXMLHttpRequestXPCOMifier* mXPCOMifier;
|
||||
|
||||
static bool sDontWarnAboutSyncXHR;
|
||||
};
|
||||
|
||||
class MOZ_STACK_CLASS AutoDontWarnAboutSyncXHR
|
||||
{
|
||||
public:
|
||||
AutoDontWarnAboutSyncXHR() : mOldVal(nsXMLHttpRequest::DontWarnAboutSyncXHR())
|
||||
{
|
||||
nsXMLHttpRequest::SetDontWarnAboutSyncXHR(true);
|
||||
}
|
||||
|
||||
~AutoDontWarnAboutSyncXHR()
|
||||
{
|
||||
nsXMLHttpRequest::SetDontWarnAboutSyncXHR(mOldVal);
|
||||
}
|
||||
|
||||
private:
|
||||
bool mOldVal;
|
||||
};
|
||||
|
||||
// A shim class designed to expose the non-DOM interfaces of
|
||||
|
|
|
@ -513,7 +513,7 @@ public:
|
|||
, mInput(aInput)
|
||||
, mTopDir(aTopDir)
|
||||
, mFileListLength(0)
|
||||
, mCanceled(0)
|
||||
, mCanceled(false)
|
||||
{}
|
||||
|
||||
NS_IMETHOD Run() {
|
||||
|
@ -578,7 +578,7 @@ public:
|
|||
// Clear mInput to make sure that it can't lose its last strong ref off the
|
||||
// main thread (which may happen if our dtor runs off the main thread)!
|
||||
mInput = nullptr;
|
||||
mCanceled = 1; // true
|
||||
mCanceled = true;
|
||||
}
|
||||
|
||||
uint32_t GetFileListLength() const
|
||||
|
@ -606,8 +606,7 @@ private:
|
|||
// this atomic member to make the access thread safe:
|
||||
mozilla::Atomic<uint32_t> mFileListLength;
|
||||
|
||||
// We'd prefer this member to be bool, but we don't support Atomic<bool>.
|
||||
mozilla::Atomic<uint32_t> mCanceled;
|
||||
mozilla::Atomic<bool> mCanceled;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1277,10 +1277,10 @@ MediaStreamGraphImpl::RunThread()
|
|||
// Enter shutdown mode. The stable-state handler will detect this
|
||||
// and complete shutdown. Destroy any streams immediately.
|
||||
STREAM_LOG(PR_LOG_DEBUG, ("MediaStreamGraph %p waiting for main thread cleanup", this));
|
||||
// Commit to shutting down this graph object.
|
||||
// We'll shut down this graph object if it does not get restarted.
|
||||
mLifecycleState = LIFECYCLE_WAITING_FOR_MAIN_THREAD_CLEANUP;
|
||||
// No need to Destroy streams here. The main-thread owner of each
|
||||
// stream is responsible for calling Destroy them.
|
||||
// stream is responsible for calling Destroy on them.
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1421,11 +1421,15 @@ public:
|
|||
|
||||
// mGraph's thread is not running so it's OK to do whatever here
|
||||
if (mGraph->IsEmpty()) {
|
||||
// mGraph is no longer needed, so delete it. If the graph is not empty
|
||||
// then we must be in a forced shutdown and some later AppendMessage will
|
||||
// detect that the manager has been emptied, and delete it.
|
||||
// mGraph is no longer needed, so delete it.
|
||||
delete mGraph;
|
||||
} else {
|
||||
// The graph is not empty. We must be in a forced shutdown, or a
|
||||
// non-realtime graph that has finished processing. Some later
|
||||
// AppendMessage will detect that the manager has been emptied, and
|
||||
// delete it.
|
||||
NS_ASSERTION(mGraph->mForceShutDown || !mGraph->mRealtime,
|
||||
"Not in forced shutdown?");
|
||||
for (uint32_t i = 0; i < mGraph->mStreams.Length(); ++i) {
|
||||
DOMMediaStream* s = mGraph->mStreams[i]->GetWrapper();
|
||||
if (s) {
|
||||
|
@ -1433,7 +1437,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
NS_ASSERTION(mGraph->mForceShutDown, "Not in forced shutdown?");
|
||||
mGraph->mLifecycleState =
|
||||
MediaStreamGraphImpl::LIFECYCLE_WAITING_FOR_STREAM_DESTRUCTION;
|
||||
}
|
||||
|
@ -1565,7 +1568,7 @@ MediaStreamGraphImpl::RunInStableState()
|
|||
}
|
||||
}
|
||||
|
||||
if (mForceShutDown &&
|
||||
if ((mForceShutDown || !mRealtime) &&
|
||||
mLifecycleState == LIFECYCLE_WAITING_FOR_MAIN_THREAD_CLEANUP) {
|
||||
// Defer calls to RunDuringShutdown() to happen while mMonitor is not held.
|
||||
for (uint32_t i = 0; i < mMessageQueue.Length(); ++i) {
|
||||
|
@ -1640,7 +1643,8 @@ MediaStreamGraphImpl::AppendMessage(ControlMessage* aMessage)
|
|||
// happened. From now on we can't append messages to mCurrentTaskMessageQueue,
|
||||
// because that will never be processed again, so just RunDuringShutdown
|
||||
// this message.
|
||||
// This should only happen during forced shutdown.
|
||||
// This should only happen during forced shutdown, or after a non-realtime
|
||||
// graph has finished processing.
|
||||
aMessage->RunDuringShutdown();
|
||||
delete aMessage;
|
||||
if (IsEmpty() &&
|
||||
|
|
|
@ -468,12 +468,13 @@ public:
|
|||
* creation after this point will create a new graph. An async event is
|
||||
* dispatched to Shutdown() the graph's threads and then delete the graph
|
||||
* object.
|
||||
* 2) Forced shutdown at application shutdown. A flag is set, RunThread()
|
||||
* detects the flag and exits, the next RunInStableState() detects the flag,
|
||||
* and dispatches the async event to Shutdown() the graph's threads. However
|
||||
* the graph object is not deleted. New messages for the graph are processed
|
||||
* synchronously on the main thread if necessary. When the last stream is
|
||||
* destroyed, the graph object is deleted.
|
||||
* 2) Forced shutdown at application shutdown, or completion of a
|
||||
* non-realtime graph. A flag is set, RunThread() detects the flag and
|
||||
* exits, the next RunInStableState() detects the flag, and dispatches the
|
||||
* async event to Shutdown() the graph's threads. However the graph object
|
||||
* is not deleted. New messages for the graph are processed synchronously on
|
||||
* the main thread if necessary. When the last stream is destroyed, the
|
||||
* graph object is deleted.
|
||||
*/
|
||||
enum LifecycleState {
|
||||
// The graph thread hasn't started yet.
|
||||
|
@ -491,8 +492,9 @@ public:
|
|||
// to shut down the graph thread(s).
|
||||
LIFECYCLE_WAITING_FOR_THREAD_SHUTDOWN,
|
||||
// Graph threads have shut down but we're waiting for remaining streams
|
||||
// to be destroyed. Only happens during application shutdown since normally
|
||||
// we'd only shut down a graph when it has no streams.
|
||||
// to be destroyed. Only happens during application shutdown and on
|
||||
// completed non-realtime graphs, since normally we'd only shut down a
|
||||
// realtime graph when it has no streams.
|
||||
LIFECYCLE_WAITING_FOR_STREAM_DESTRUCTION
|
||||
};
|
||||
LifecycleState mLifecycleState;
|
||||
|
|
|
@ -153,14 +153,13 @@ public:
|
|||
// Borrow a full buffer of size WEBAUDIO_BLOCK_SIZE from the source buffer
|
||||
// at offset aSourceOffset. This avoids copying memory.
|
||||
void BorrowFromInputBuffer(AudioChunk* aOutput,
|
||||
uint32_t aChannels,
|
||||
uintptr_t aSourceOffset)
|
||||
uint32_t aChannels)
|
||||
{
|
||||
aOutput->mDuration = WEBAUDIO_BLOCK_SIZE;
|
||||
aOutput->mBuffer = mBuffer;
|
||||
aOutput->mChannelData.SetLength(aChannels);
|
||||
for (uint32_t i = 0; i < aChannels; ++i) {
|
||||
aOutput->mChannelData[i] = mBuffer->GetData(i) + aSourceOffset;
|
||||
aOutput->mChannelData[i] = mBuffer->GetData(i) + mBufferPosition;
|
||||
}
|
||||
aOutput->mVolume = 1.0f;
|
||||
aOutput->mBufferFormat = AUDIO_FORMAT_FLOAT32;
|
||||
|
@ -170,13 +169,12 @@ public:
|
|||
// and put it at offset aBufferOffset in the destination buffer.
|
||||
void CopyFromInputBuffer(AudioChunk* aOutput,
|
||||
uint32_t aChannels,
|
||||
uintptr_t aSourceOffset,
|
||||
uintptr_t aBufferOffset,
|
||||
uintptr_t aOffsetWithinBlock,
|
||||
uint32_t aNumberOfFrames) {
|
||||
for (uint32_t i = 0; i < aChannels; ++i) {
|
||||
float* baseChannelData = static_cast<float*>(const_cast<void*>(aOutput->mChannelData[i]));
|
||||
memcpy(baseChannelData + aBufferOffset,
|
||||
mBuffer->GetData(i) + aSourceOffset,
|
||||
memcpy(baseChannelData + aOffsetWithinBlock,
|
||||
mBuffer->GetData(i) + mBufferPosition,
|
||||
aNumberOfFrames * sizeof(float));
|
||||
}
|
||||
}
|
||||
|
@ -191,15 +189,14 @@ public:
|
|||
uint32_t aChannels,
|
||||
uint32_t aOffsetWithinBlock,
|
||||
uint32_t& aFramesWritten,
|
||||
uint32_t aBufferOffset,
|
||||
uint32_t aBufferMax) {
|
||||
int32_t aBufferMax) {
|
||||
// TODO: adjust for mStop (see bug 913854 comment 9).
|
||||
uint32_t availableInOutputBuffer = WEBAUDIO_BLOCK_SIZE - aOffsetWithinBlock;
|
||||
SpeexResamplerState* resampler = Resampler(aStream, aChannels);
|
||||
MOZ_ASSERT(aChannels > 0);
|
||||
|
||||
if (aBufferOffset < aBufferMax) {
|
||||
uint32_t availableInInputBuffer = aBufferMax - aBufferOffset;
|
||||
if (mBufferPosition < aBufferMax) {
|
||||
uint32_t availableInInputBuffer = aBufferMax - mBufferPosition;
|
||||
// Limit the number of input samples copied and possibly
|
||||
// format-converted for resampling by estimating how many will be used.
|
||||
// This may be a little small when filling the resampler with initial
|
||||
|
@ -210,7 +207,7 @@ public:
|
|||
availableInOutputBuffer * num / den + 10);
|
||||
for (uint32_t i = 0; true; ) {
|
||||
uint32_t inSamples = inputLimit;
|
||||
const float* inputData = mBuffer->GetData(i) + aBufferOffset;
|
||||
const float* inputData = mBuffer->GetData(i) + mBufferPosition;
|
||||
|
||||
uint32_t outSamples = availableInOutputBuffer;
|
||||
float* outputData =
|
||||
|
@ -308,17 +305,16 @@ public:
|
|||
uint32_t aChannels,
|
||||
uint32_t* aOffsetWithinBlock,
|
||||
TrackTicks* aCurrentPosition,
|
||||
uint32_t aBufferOffset,
|
||||
uint32_t aBufferMax)
|
||||
int32_t aBufferMax)
|
||||
{
|
||||
MOZ_ASSERT(*aCurrentPosition < mStop);
|
||||
uint32_t numFrames =
|
||||
std::min<TrackTicks>(std::min(WEBAUDIO_BLOCK_SIZE - *aOffsetWithinBlock,
|
||||
aBufferMax - aBufferOffset),
|
||||
mStop - *aCurrentPosition);
|
||||
std::min(std::min<TrackTicks>(WEBAUDIO_BLOCK_SIZE - *aOffsetWithinBlock,
|
||||
aBufferMax - mBufferPosition),
|
||||
mStop - *aCurrentPosition);
|
||||
if (numFrames == WEBAUDIO_BLOCK_SIZE && !ShouldResample(aStream->SampleRate())) {
|
||||
MOZ_ASSERT(aBufferOffset < aBufferMax);
|
||||
BorrowFromInputBuffer(aOutput, aChannels, aBufferOffset);
|
||||
MOZ_ASSERT(mBufferPosition < aBufferMax);
|
||||
BorrowFromInputBuffer(aOutput, aChannels);
|
||||
*aOffsetWithinBlock += numFrames;
|
||||
*aCurrentPosition += numFrames;
|
||||
mBufferPosition += numFrames;
|
||||
|
@ -327,14 +323,14 @@ public:
|
|||
AllocateAudioBlock(aChannels, aOutput);
|
||||
}
|
||||
if (!ShouldResample(aStream->SampleRate())) {
|
||||
MOZ_ASSERT(aBufferOffset < aBufferMax);
|
||||
CopyFromInputBuffer(aOutput, aChannels, aBufferOffset, *aOffsetWithinBlock, numFrames);
|
||||
MOZ_ASSERT(mBufferPosition < aBufferMax);
|
||||
CopyFromInputBuffer(aOutput, aChannels, *aOffsetWithinBlock, numFrames);
|
||||
*aOffsetWithinBlock += numFrames;
|
||||
*aCurrentPosition += numFrames;
|
||||
mBufferPosition += numFrames;
|
||||
} else {
|
||||
uint32_t framesWritten;
|
||||
CopyFromInputBufferWithResampling(aStream, aOutput, aChannels, *aOffsetWithinBlock, framesWritten, aBufferOffset, aBufferMax);
|
||||
CopyFromInputBufferWithResampling(aStream, aOutput, aChannels, *aOffsetWithinBlock, framesWritten, aBufferMax);
|
||||
*aOffsetWithinBlock += framesWritten;
|
||||
*aCurrentPosition += framesWritten;
|
||||
}
|
||||
|
@ -424,15 +420,16 @@ public:
|
|||
continue;
|
||||
}
|
||||
if (mLoop) {
|
||||
if (mBufferPosition < mLoopEnd) {
|
||||
CopyFromBuffer(aStream, aOutput, channels, &written, &streamPosition, mBufferPosition, mLoopEnd);
|
||||
} else {
|
||||
uint32_t offsetInLoop = (mBufferPosition - mLoopEnd) % (mLoopEnd - mLoopStart);
|
||||
CopyFromBuffer(aStream, aOutput, channels, &written, &streamPosition, mLoopStart + offsetInLoop, mLoopEnd);
|
||||
// mLoopEnd can become less than mBufferPosition when a LOOPEND engine
|
||||
// parameter is received after "loopend" is changed on the node or a
|
||||
// new buffer with lower samplerate is set.
|
||||
if (mBufferPosition >= mLoopEnd) {
|
||||
mBufferPosition = mLoopStart;
|
||||
}
|
||||
CopyFromBuffer(aStream, aOutput, channels, &written, &streamPosition, mLoopEnd);
|
||||
} else {
|
||||
if (mBufferPosition < mBufferEnd || mRemainingResamplerTail) {
|
||||
CopyFromBuffer(aStream, aOutput, channels, &written, &streamPosition, mBufferPosition, mBufferEnd);
|
||||
CopyFromBuffer(aStream, aOutput, channels, &written, &streamPosition, mBufferEnd);
|
||||
} else {
|
||||
FillWithZeroes(aOutput, channels, &written, &streamPosition, TRACK_TICKS_MAX);
|
||||
}
|
||||
|
|
|
@ -30,6 +30,17 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=650295
|
|||
info("Successfully start() from end() callback");
|
||||
}
|
||||
|
||||
function expectExceptionHandler(evt, sr) {
|
||||
try {
|
||||
sr.start();
|
||||
} catch (err) {
|
||||
is(err.name, "InvalidStateError");
|
||||
return;
|
||||
}
|
||||
|
||||
ok(false, "Calling start() didn't raise InvalidStateError");
|
||||
}
|
||||
|
||||
performTest({
|
||||
eventsToRequest: [
|
||||
'EVENT_START',
|
||||
|
@ -37,11 +48,11 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=650295
|
|||
'EVENT_RECOGNITIONSERVICE_FINAL_RESULT'
|
||||
],
|
||||
expectedEvents: {
|
||||
'start': null,
|
||||
'audiostart': null,
|
||||
'speechstart': null,
|
||||
'speechend': null,
|
||||
'audioend': null,
|
||||
'start': expectExceptionHandler,
|
||||
'audiostart': expectExceptionHandler,
|
||||
'speechstart': expectExceptionHandler,
|
||||
'speechend': expectExceptionHandler,
|
||||
'audioend': expectExceptionHandler,
|
||||
'result': buildResultCallback("Mock final result"),
|
||||
'end': endHandler,
|
||||
},
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче