merge m-c to fx-team

This commit is contained in:
Rob Campbell 2011-08-26 11:38:59 -03:00
commit f6795ab075
122 changed files with 85813 additions and 478 deletions

View File

@ -629,7 +629,6 @@ MSMANIFEST_TOOL = @MSMANIFEST_TOOL@
WIN32_REDIST_DIR = @WIN32_REDIST_DIR@
MOZ_MEMORY_LDFLAGS = @MOZ_MEMORY_LDFLAGS@
WIN32_CRT_LIBS = @WIN32_CRT_LIBS@
MOZ_CRT_CPU_ARCH = @MOZ_CRT_CPU_ARCH@
# This is for custom CRT building
ifdef MOZ_MEMORY

View File

@ -681,6 +681,12 @@ else
OUTOPTION = -o # eol
endif # WINNT && !GNU_CC
ifneq (,$(filter ml%,$(AS)))
ASOUTOPTION = -Fo# eol
else
ASOUTOPTION = -o # eol
endif
ifeq (,$(CROSS_COMPILE))
HOST_OUTOPTION = $(OUTOPTION)
else
@ -1286,7 +1292,7 @@ ifdef ASFILES
# The AS_DASH_C_FLAG is needed cause not all assemblers (Solaris) accept
# a '-c' flag.
%.$(OBJ_SUFFIX): %.$(ASM_SUFFIX) $(GLOBAL_DEPS)
$(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(_VPATH_SRCS)
$(AS) $(ASOUTOPTION)$@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(_VPATH_SRCS)
endif
%.$(OBJ_SUFFIX): %.S $(GLOBAL_DEPS)

View File

@ -46,7 +46,6 @@
// Interfaces needed to be included
#include "nsCopySupport.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMUIEvent.h"
#include "nsISelection.h"
#include "nsIDOMNode.h"

View File

@ -141,7 +141,6 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_XTFSERVICE_CID);
#include "nsUnicharUtilCIID.h"
#include "nsCompressedCharMap.h"
#include "nsINativeKeyBindings.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsIPrivateDOMEvent.h"
#include "nsXULPopupManager.h"
@ -4138,13 +4137,12 @@ nsContentUtils::DOMEventToNativeKeyEvent(nsIDOMKeyEvent* aKeyEvent,
nsNativeKeyEvent* aNativeEvent,
PRBool aGetCharCode)
{
nsCOMPtr<nsIDOMNSUIEvent> uievent = do_QueryInterface(aKeyEvent);
nsCOMPtr<nsIDOMNSEvent> nsevent = do_QueryInterface(aKeyEvent);
PRBool defaultPrevented;
uievent->GetPreventDefault(&defaultPrevented);
nsevent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented)
return PR_FALSE;
nsCOMPtr<nsIDOMNSEvent> nsevent = do_QueryInterface(aKeyEvent);
PRBool trusted = PR_FALSE;
nsevent->GetIsTrusted(&trusted);
if (!trusted)

View File

@ -3641,7 +3641,7 @@ nsGenericElement::DispatchClickEvent(nsPresContext* aPresContext,
pressure = static_cast<nsMouseEvent*>(aSourceEvent)->pressure;
inputSource = static_cast<nsMouseEvent*>(aSourceEvent)->inputSource;
} else if (aSourceEvent->eventStructType == NS_KEY_EVENT) {
inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
}
event.pressure = pressure;
event.clickCount = clickCount;

View File

@ -492,7 +492,9 @@ protected:
PRBool ValidateAttribIndex(WebGLuint index, const char *info);
PRBool ValidateStencilParamsForDrawCall();
bool ValidateGLSLIdentifier(const nsAString& name, const char *info);
bool ValidateGLSLVariableName(const nsAString& name, const char *info);
bool ValidateGLSLCharacter(PRUnichar c);
bool ValidateGLSLString(const nsAString& string, const char *info);
static PRUint32 GetTexelSize(WebGLenum format, WebGLenum type);

View File

@ -62,6 +62,7 @@
#endif
#include "WebGLTexelConversions.h"
#include "WebGLValidateStrings.h"
using namespace mozilla;
@ -182,8 +183,8 @@ WebGLContext::BindAttribLocation(nsIWebGLProgram *pobj, WebGLuint location, cons
if (!GetGLName<WebGLProgram>("bindAttribLocation: program", pobj, &progname))
return NS_OK;
if (name.IsEmpty())
return ErrorInvalidValue("BindAttribLocation: name can't be null or empty");
if (!ValidateGLSLVariableName(name, "bindAttribLocation"))
return NS_OK;
if (!ValidateAttribIndex(location, "bindAttribLocation"))
return NS_OK;
@ -1839,7 +1840,7 @@ WebGLContext::GetAttribLocation(nsIWebGLProgram *pobj,
if (!GetGLName<WebGLProgram>("getAttribLocation: program", pobj, &progname))
return NS_OK;
if (!ValidateGLSLIdentifier(name, "getAttribLocation"))
if (!ValidateGLSLVariableName(name, "getAttribLocation"))
return NS_OK;
MakeContextCurrent();
@ -2664,7 +2665,7 @@ WebGLContext::GetUniformLocation(nsIWebGLProgram *pobj, const nsAString& name, n
if (!GetConcreteObjectAndGLName("getUniformLocation: program", pobj, &prog, &progname))
return NS_OK;
if (!ValidateGLSLIdentifier(name, "getUniformLocation"))
if (!ValidateGLSLVariableName(name, "getUniformLocation"))
return NS_OK;
MakeContextCurrent();
@ -3166,8 +3167,8 @@ WebGLContext::RenderbufferStorage(WebGLenum target, WebGLenum internalformat, We
if (target != LOCAL_GL_RENDERBUFFER)
return ErrorInvalidEnumInfo("renderbufferStorage: target", target);
if (width <= 0 || height <= 0)
return ErrorInvalidValue("renderbufferStorage: width and height must be > 0");
if (width < 0 || height < 0)
return ErrorInvalidValue("renderbufferStorage: width and height must be >= 0");
if (!mBoundRenderbuffer || !mBoundRenderbuffer->GLName())
return ErrorInvalidOperation("renderbufferStorage called on renderbuffer 0");
@ -4131,7 +4132,10 @@ WebGLContext::ShaderSource(nsIWebGLShader *sobj, const nsAString& source)
WebGLuint shadername;
if (!GetConcreteObjectAndGLName("shaderSource: shader", sobj, &shader, &shadername))
return NS_OK;
if (!ValidateGLSLString(source, "shaderSource"))
return NS_OK;
const nsPromiseFlatString& flatSource = PromiseFlatString(source);
if (!NS_IsAscii(flatSource.get()))

View File

@ -328,14 +328,31 @@ PRBool WebGLContext::ValidateDrawModeEnum(WebGLenum mode, const char *info)
}
}
bool WebGLContext::ValidateGLSLIdentifier(const nsAString& name, const char *info)
bool WebGLContext::ValidateGLSLVariableName(const nsAString& name, const char *info)
{
const PRUint32 maxSize = 4095;
const PRUint32 maxSize = 255;
if (name.Length() > maxSize) {
ErrorInvalidValue("%s: identifier is %d characters long, exceeds the maximum allowed length of %d characters",
info, name.Length(), maxSize);
return false;
}
if (!ValidateGLSLString(name, info)) {
return false;
}
return true;
}
bool WebGLContext::ValidateGLSLString(const nsAString& string, const char *info)
{
for (PRUint32 i = 0; i < string.Length(); ++i) {
if (!ValidateGLSLCharacter(string.CharAt(i))) {
ErrorInvalidValue("%s: string contains the illegal character '%d'", info, string.CharAt(i));
return false;
}
}
return true;
}

View File

@ -0,0 +1,58 @@
/*
* Copyright (C) 2011 Apple Inc. All rights reserved.
* Copyright (C) 2011 Mozilla Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef WEBGLVALIDATESTRINGS_H_
#define WEBGLVALIDATESTRINGS_H_
#include "WebGLContext.h"
namespace mozilla {
// The following function was taken from the WebKit WebGL implementation,
// which can be found here:
// http://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas/WebGLRenderingContext.cpp#L123
/****** BEGIN CODE TAKEN FROM WEBKIT ******/
bool WebGLContext::ValidateGLSLCharacter(PRUnichar c)
{
// Printing characters are valid except " $ ` @ \ ' DEL.
if (c >= 32 && c <= 126 &&
c != '"' && c != '$' && c != '`' && c != '@' && c != '\\' && c != '\'')
{
return true;
}
// Horizontal tab, line feed, vertical tab, form feed, carriage return are also valid.
if (c >= 9 && c <= 13) {
return true;
}
return false;
}
/****** END CODE TAKEN FROM WEBKIT ******/
} // end namespace mozilla
#endif // WEBGLVALIDATESTRINGS_H_

View File

@ -13,7 +13,6 @@ conformance/gl-getshadersource.html
conformance/gl-uniform-bool.html
conformance/glsl-conformance.html
conformance/glsl-long-variable-names.html
conformance/invalid-passed-params.html
conformance/object-deletion-behaviour.html
conformance/premultiplyalpha-test.html
conformance/read-pixels-test.html

View File

@ -7,7 +7,6 @@ conformance/gl-getshadersource.html
conformance/gl-object-get-calls.html
conformance/glsl-conformance.html
conformance/glsl-long-variable-names.html
conformance/invalid-passed-params.html
conformance/object-deletion-behaviour.html
conformance/premultiplyalpha-test.html
conformance/program-test.html

View File

@ -5,7 +5,6 @@ conformance/framebuffer-object-attachment.html
conformance/gl-getshadersource.html
conformance/glsl-conformance.html
conformance/glsl-long-variable-names.html
conformance/invalid-passed-params.html
conformance/object-deletion-behaviour.html
conformance/premultiplyalpha-test.html
conformance/read-pixels-test.html

View File

@ -54,7 +54,7 @@ nsDOMDragEvent::nsDOMDragEvent(nsPresContext* aPresContext,
mEventIsInternal = PR_TRUE;
mEvent->time = PR_Now();
mEvent->refPoint.x = mEvent->refPoint.y = 0;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
}
}

View File

@ -144,8 +144,9 @@ nsDOMKeyboardEvent::GetKeyCode(PRUint32* aKeyCode)
return NS_OK;
}
NS_IMETHODIMP
nsDOMKeyboardEvent::GetWhich(PRUint32* aWhich)
/* virtual */
nsresult
nsDOMKeyboardEvent::Which(PRUint32* aWhich)
{
NS_ENSURE_ARG_POINTER(aWhich);

View File

@ -57,8 +57,9 @@ public:
// Forward to base class
NS_FORWARD_TO_NSDOMUIEVENT
protected:
// Specific implementation for a keyboard event.
NS_IMETHOD GetWhich(PRUint32 *aWhich);
virtual nsresult Which(PRUint32* aWhich);
};

View File

@ -59,7 +59,7 @@ nsDOMMouseEvent::nsDOMMouseEvent(nsPresContext* aPresContext,
mEventIsInternal = PR_TRUE;
mEvent->time = PR_Now();
mEvent->refPoint.x = mEvent->refPoint.y = 0;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
}
switch (mEvent->eventStructType)
@ -98,7 +98,6 @@ DOMCI_DATA(MouseEvent, nsDOMMouseEvent)
NS_INTERFACE_MAP_BEGIN(nsDOMMouseEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMMouseEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMNSMouseEvent)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(MouseEvent)
NS_INTERFACE_MAP_END_INHERITING(nsDOMUIEvent)
@ -282,8 +281,9 @@ nsDOMMouseEvent::GetMetaKey(PRBool* aIsDown)
return NS_OK;
}
NS_IMETHODIMP
nsDOMMouseEvent::GetWhich(PRUint32* aWhich)
/* virtual */
nsresult
nsDOMMouseEvent::Which(PRUint32* aWhich)
{
NS_ENSURE_ARG_POINTER(aWhich);
PRUint16 button;

View File

@ -41,13 +41,12 @@
#include "nsIDOMMouseEvent.h"
#include "nsDOMUIEvent.h"
#include "nsIDOMNSMouseEvent.h"
class nsIContent;
class nsEvent;
class nsDOMMouseEvent : public nsDOMUIEvent,
public nsIDOMNSMouseEvent
public nsIDOMMouseEvent
{
public:
nsDOMMouseEvent(nsPresContext* aPresContext, nsInputEvent* aEvent);
@ -58,14 +57,12 @@ public:
// nsIDOMMouseEvent Interface
NS_DECL_NSIDOMMOUSEEVENT
// nsIDOMNSMouseEvent Interface
NS_DECL_NSIDOMNSMOUSEEVENT
// Forward to base class
NS_FORWARD_TO_NSDOMUIEVENT
protected:
// Specific implementation for a mouse event.
NS_IMETHOD GetWhich(PRUint32 *aWhich);
virtual nsresult Which(PRUint32* aWhich);
};
#define NS_FORWARD_TO_NSDOMMOUSEEVENT \

View File

@ -51,7 +51,7 @@ nsDOMMouseScrollEvent::nsDOMMouseScrollEvent(nsPresContext* aPresContext,
mEventIsInternal = PR_TRUE;
mEvent->time = PR_Now();
mEvent->refPoint.x = mEvent->refPoint.y = 0;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
}
if(mEvent->eventStructType == NS_MOUSE_SCROLL_EVENT) {

View File

@ -51,7 +51,7 @@ nsDOMSimpleGestureEvent::nsDOMSimpleGestureEvent(nsPresContext* aPresContext, ns
mEventIsInternal = PR_TRUE;
mEvent->time = PR_Now();
mEvent->refPoint.x = mEvent->refPoint.y = 0;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN;
static_cast<nsMouseEvent*>(mEvent)->inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
}
}

View File

@ -119,7 +119,6 @@ DOMCI_DATA(UIEvent, nsDOMUIEvent)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDOMUIEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMUIEvent)
NS_INTERFACE_MAP_ENTRY(nsIDOMNSUIEvent)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(UIEvent)
NS_INTERFACE_MAP_END_INHERITING(nsDOMEvent)
@ -249,10 +248,7 @@ nsDOMUIEvent::GetPageY(PRInt32* aPageY)
NS_IMETHODIMP
nsDOMUIEvent::GetWhich(PRUint32* aWhich)
{
NS_ENSURE_ARG_POINTER(aWhich);
// Usually we never reach here, as this is reimplemented for mouse and keyboard events.
*aWhich = 0;
return NS_OK;
return Which(aWhich);
}
NS_IMETHODIMP

View File

@ -40,12 +40,10 @@
#define nsDOMUIEvent_h
#include "nsIDOMUIEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsDOMEvent.h"
class nsDOMUIEvent : public nsDOMEvent,
public nsIDOMUIEvent,
public nsIDOMNSUIEvent
public nsIDOMUIEvent
{
public:
nsDOMUIEvent(nsPresContext* aPresContext, nsGUIEvent* aEvent);
@ -56,9 +54,6 @@ public:
// nsIDOMUIEvent Interface
NS_DECL_NSIDOMUIEVENT
// nsIDOMNSUIEvent Interface
NS_DECL_NSIDOMNSUIEVENT
// nsIPrivateDOMEvent interface
NS_IMETHOD DuplicatePrivateData();
virtual void Serialize(IPC::Message* aMsg, PRBool aSerializeInterfaceType);
@ -68,15 +63,23 @@ public:
NS_FORWARD_TO_NSDOMEVENT
NS_FORWARD_NSIDOMNSEVENT(nsDOMEvent::)
protected:
protected:
// Internal helper functions
nsIntPoint GetClientPoint();
nsIntPoint GetScreenPoint();
nsIntPoint GetLayerPoint();
nsIntPoint GetPagePoint();
protected:
// Allow specializations.
virtual nsresult Which(PRUint32* aWhich)
{
NS_ENSURE_ARG_POINTER(aWhich);
// Usually we never reach here, as this is reimplemented for mouse and keyboard events.
*aWhich = 0;
return NS_OK;
}
nsCOMPtr<nsIDOMWindow> mView;
PRInt32 mDetail;
nsIntPoint mClientPoint;

View File

@ -99,7 +99,7 @@
#include "nsIDOMMouseScrollEvent.h"
#include "nsIDOMDragEvent.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMUIEvent.h"
#include "nsDOMDragEvent.h"
#include "nsIDOMNSEditableElement.h"
@ -2645,8 +2645,8 @@ nsEventStateManager::ComputeWheelDeltaFor(nsMouseScrollEvent* aMouseEvent)
}
if (ComputeWheelActionFor(aMouseEvent, useSysNumLines) == MOUSE_SCROLL_PAGE) {
delta = (delta > 0) ? PRInt32(nsIDOMNSUIEvent::SCROLL_PAGE_DOWN) :
PRInt32(nsIDOMNSUIEvent::SCROLL_PAGE_UP);
delta = (delta > 0) ? PRInt32(nsIDOMUIEvent::SCROLL_PAGE_DOWN) :
PRInt32(nsIDOMUIEvent::SCROLL_PAGE_UP);
}
return delta;

View File

@ -26,8 +26,8 @@ function prepareListener(eventName, expectedValue) {
};
}
const INPUT_SOURCE_UNKNOWN = Components.interfaces.nsIDOMNSMouseEvent.MOZ_SOURCE_UNKNOWN;
const INPUT_SOURCE_KEYBOARD = Components.interfaces.nsIDOMNSMouseEvent.MOZ_SOURCE_KEYBOARD;
const INPUT_SOURCE_UNKNOWN = Components.interfaces.nsIDOMMouseEvent.MOZ_SOURCE_UNKNOWN;
const INPUT_SOURCE_KEYBOARD = Components.interfaces.nsIDOMMouseEvent.MOZ_SOURCE_KEYBOARD;
function doTest() {
var eventNames = [

View File

@ -29,13 +29,13 @@ function check(event) {
function doTest() {
setup();
expectedInputSource = Components.interfaces.nsIDOMNSMouseEvent.MOZ_SOURCE_KEYBOARD;
expectedInputSource = Components.interfaces.nsIDOMMouseEvent.MOZ_SOURCE_KEYBOARD;
testKeyboard();
expectedInputSource = Components.interfaces.nsIDOMNSMouseEvent.MOZ_SOURCE_MOUSE;
expectedInputSource = Components.interfaces.nsIDOMMouseEvent.MOZ_SOURCE_MOUSE;
testMouse();
expectedInputSource = Components.interfaces.nsIDOMNSMouseEvent.MOZ_SOURCE_UNKNOWN;
expectedInputSource = Components.interfaces.nsIDOMMouseEvent.MOZ_SOURCE_UNKNOWN;
testScriptedClicks();
cleanup();

View File

@ -3401,7 +3401,7 @@ nsresult nsGenericHTMLElement::Click()
// is called from chrome code.
nsMouseEvent event(nsContentUtils::IsCallerChrome(),
NS_MOUSE_CLICK, nsnull, nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN;
nsEventDispatcher::Dispatch(this, context, &event);
@ -3507,7 +3507,7 @@ nsGenericHTMLElement::PerformAccesskey(PRBool aKeyCausesActivation,
// Click on it if the users prefs indicate to do so.
nsMouseEvent event(aIsTrustedEvent, NS_MOUSE_CLICK,
nsnull, nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
nsAutoPopupStatePusher popupStatePusher(aIsTrustedEvent ?
openAllowed : openAbused);

View File

@ -368,7 +368,7 @@ nsHTMLButtonElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor)
nsMouseEvent event(NS_IS_TRUSTED_EVENT(aVisitor.mEvent),
NS_MOUSE_CLICK, nsnull,
nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
nsEventDispatcher::Dispatch(static_cast<nsIContent*>(this),
aVisitor.mPresContext, &event, nsnull,
&status);

View File

@ -2179,7 +2179,7 @@ nsHTMLInputElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor)
{
nsMouseEvent event(NS_IS_TRUSTED_EVENT(aVisitor.mEvent),
NS_MOUSE_CLICK, nsnull, nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
nsEventStatus status = nsEventStatus_eIgnore;
nsEventDispatcher::Dispatch(static_cast<nsIContent*>(this),
@ -2217,7 +2217,7 @@ nsHTMLInputElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor)
nsMouseEvent event(NS_IS_TRUSTED_EVENT(aVisitor.mEvent),
NS_MOUSE_CLICK, nsnull,
nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
rv = nsEventDispatcher::Dispatch(radioContent,
aVisitor.mPresContext,
&event, nsnull, &status);

View File

@ -314,7 +314,7 @@ nsHTMLLabelElement::PerformAccesskey(PRBool aKeyCausesActivation,
// Click on it if the users prefs indicate to do so.
nsMouseEvent event(aIsTrustedEvent, NS_MOUSE_CLICK,
nsnull, nsMouseEvent::eReal);
event.inputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD;
event.inputSource = nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD;
nsAutoPopupStatePusher popupStatePusher(aIsTrustedEvent ?
openAllowed : openAbused);

View File

@ -52,7 +52,6 @@
#include "nsIController.h"
#include "nsIControllers.h"
#include "nsIDOMXULElement.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIURI.h"
#include "nsIDOMHTMLTextAreaElement.h"
#include "nsIDOMHTMLInputElement.h"
@ -387,9 +386,10 @@ nsXBLPrototypeHandler::DispatchXBLCommand(nsIDOMEventTarget* aTarget, nsIDOMEven
// See if preventDefault has been set. If so, don't execute.
PRBool preventDefault = PR_FALSE;
nsCOMPtr<nsIDOMNSUIEvent> nsUIEvent(do_QueryInterface(aEvent));
if (nsUIEvent)
nsUIEvent->GetPreventDefault(&preventDefault);
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aEvent);
if (domNSEvent) {
domNSEvent->GetPreventDefault(&preventDefault);
}
if (preventDefault)
return NS_OK;

View File

@ -42,7 +42,6 @@
#include "nsXBLWindowKeyHandler.h"
#include "nsIContent.h"
#include "nsIAtom.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMKeyEvent.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMNSEvent.h"
@ -319,15 +318,13 @@ DoCommandCallback(const char *aCommand, void *aData)
nsresult
nsXBLWindowKeyHandler::WalkHandlers(nsIDOMKeyEvent* aKeyEvent, nsIAtom* aEventType)
{
nsCOMPtr<nsIDOMNSUIEvent> evt = do_QueryInterface(aKeyEvent);
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aKeyEvent);
PRBool prevent;
evt->GetPreventDefault(&prevent);
domNSEvent->GetPreventDefault(&prevent);
if (prevent)
return NS_OK;
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aKeyEvent);
PRBool trustedEvent = PR_FALSE;
if (domNSEvent) {
//Don't process the event if it was not dispatched from a trusted source
domNSEvent->GetIsTrusted(&trustedEvent);
@ -344,7 +341,7 @@ nsXBLWindowKeyHandler::WalkHandlers(nsIDOMKeyEvent* aKeyEvent, nsIAtom* aEventTy
if (!el) {
if (mUserHandler) {
WalkHandlersInternal(aKeyEvent, aEventType, mUserHandler);
evt->GetPreventDefault(&prevent);
domNSEvent->GetPreventDefault(&prevent);
if (prevent)
return NS_OK; // Handled by the user bindings. Our work here is done.
}

View File

@ -694,7 +694,7 @@ nsXULElement::PerformAccesskey(PRBool aKeyCausesActivation,
}
}
if (aKeyCausesActivation && tag != nsGkAtoms::textbox && tag != nsGkAtoms::menulist) {
elm->ClickWithInputSource(nsIDOMNSMouseEvent::MOZ_SOURCE_KEYBOARD);
elm->ClickWithInputSource(nsIDOMMouseEvent::MOZ_SOURCE_KEYBOARD);
}
}
else {
@ -2077,7 +2077,7 @@ nsXULElement::Blur()
NS_IMETHODIMP
nsXULElement::Click()
{
return ClickWithInputSource(nsIDOMNSMouseEvent::MOZ_SOURCE_UNKNOWN);
return ClickWithInputSource(nsIDOMMouseEvent::MOZ_SOURCE_UNKNOWN);
}
nsresult

View File

@ -60,7 +60,6 @@
#include "nsIDOMWindow.h"
#include "nsIDOMXULDocument.h"
#include "nsIDocument.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMNSEvent.h"
#include "nsServiceManagerUtils.h"
@ -130,9 +129,8 @@ nsXULPopupListener::HandleEvent(nsIDOMEvent* aEvent)
}
// check if someone has attempted to prevent this action.
nsCOMPtr<nsIDOMNSUIEvent> nsUIEvent;
nsUIEvent = do_QueryInterface(mouseEvent);
if (!nsUIEvent) {
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(mouseEvent);
if (!domNSEvent) {
return NS_OK;
}
@ -160,7 +158,7 @@ nsXULPopupListener::HandleEvent(nsIDOMEvent* aEvent)
}
PRBool preventDefault;
nsUIEvent->GetPreventDefault(&preventDefault);
domNSEvent->GetPreventDefault(&preventDefault);
if (preventDefault && targetNode && mIsContext) {
// Someone called preventDefault on a context menu.
// Let's make sure they are allowed to do so.

View File

@ -68,7 +68,6 @@
#include "nsIViewManager.h"
#include "nsIContentViewer.h"
#include "nsGUIEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMXULElement.h"
#include "nsIPrivateDOMEvent.h"
#include "nsIRDFNode.h"

View File

@ -229,7 +229,6 @@
#include "nsIDOMComment.h"
#include "nsIDOMCDATASection.h"
#include "nsIDOMProcessingInstruction.h"
#include "nsIDOMNSEvent.h"
#include "nsIDOMDataContainerEvent.h"
#include "nsIDOMKeyEvent.h"
#include "nsIDOMMouseEvent.h"
@ -316,7 +315,6 @@
#include "nsIDOMHTMLVideoElement.h"
#include "nsIDOMHTMLAudioElement.h"
#include "nsIDOMProgressEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMCSS2Properties.h"
#include "nsIDOMCSSCharsetRule.h"
#include "nsIDOMCSSImportRule.h"
@ -475,9 +473,6 @@
// Simple gestures include
#include "nsIDOMSimpleGestureEvent.h"
#include "nsIDOMNSMouseEvent.h"
#include "nsIDOMMozTouchEvent.h"
#include "nsIEventListenerService.h"
@ -2207,7 +2202,6 @@ nsDOMClassInfo::RegisterExternalClasses()
#define DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES \
DOM_CLASSINFO_MAP_ENTRY(nsIDOMUIEvent) \
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSUIEvent) \
DOM_CLASSINFO_EVENT_MAP_ENTRIES
nsresult
@ -2466,21 +2460,18 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_BEGIN(MouseEvent, nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSMouseEvent)
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(MouseScrollEvent, nsIDOMMouseScrollEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseScrollEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSMouseEvent)
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(DragEvent, nsIDOMDragEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMDragEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSMouseEvent)
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
DOM_CLASSINFO_MAP_END
@ -3943,14 +3934,12 @@ nsDOMClassInfo::Init()
DOM_CLASSINFO_MAP_BEGIN(SimpleGestureEvent, nsIDOMSimpleGestureEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMSimpleGestureEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSMouseEvent)
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
DOM_CLASSINFO_MAP_END
DOM_CLASSINFO_MAP_BEGIN(MozTouchEvent, nsIDOMMozTouchEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMozTouchEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMMouseEvent)
DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSMouseEvent)
DOM_CLASSINFO_UI_EVENT_MAP_ENTRIES
DOM_CLASSINFO_MAP_END

View File

@ -61,7 +61,6 @@ XPIDLSRCS = \
nsIDOMDataContainerEvent.idl \
nsIDOMKeyEvent.idl \
nsIDOMMutationEvent.idl \
nsIDOMNSUIEvent.idl \
nsIDOMDragEvent.idl \
nsIDOMDataTransfer.idl \
nsIDOMPopupBlockedEvent.idl \
@ -75,7 +74,6 @@ XPIDLSRCS = \
nsIDOMPaintRequest.idl \
nsIDOMPaintRequestList.idl \
nsIDOMSimpleGestureEvent.idl \
nsIDOMNSMouseEvent.idl \
nsIDOMMozTouchEvent.idl \
nsIDOMDeviceOrientationEvent.idl\
nsIDOMDeviceMotionEvent.idl \

View File

@ -40,7 +40,7 @@
interface nsIDOMDataTransfer;
[scriptable, uuid(0f4fef03-c0e9-406c-a754-c01148e431ae)]
[scriptable, uuid(26b40393-c383-4e9a-977f-e8e1351926eb)]
interface nsIDOMDragEvent : nsIDOMMouseEvent
{
readonly attribute nsIDOMDataTransfer dataTransfer;

View File

@ -39,7 +39,7 @@
#include "nsIDOMUIEvent.idl"
[scriptable, uuid(e44d7977-20f2-442e-bc13-0f2f52992a4c)]
[scriptable, uuid(ffcfb88a-d1d1-40b9-96e1-e338211d3511)]
interface nsIDOMKeyEvent : nsIDOMUIEvent
{
const unsigned long DOM_VK_CANCEL = 0x03;

View File

@ -22,6 +22,7 @@
* Contributor(s):
* Tom Pixley <joki@netscape.com> (original author)
* Johnny Stenback <jst@netscape.com>
* Oleg Romashin <romaxa@gmail.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
@ -47,7 +48,7 @@
* http://www.w3.org/TR/DOM-Level-2-Events/
*/
[scriptable, uuid(73558605-f479-493e-86d1-9794cd117fef)]
[scriptable, uuid(7e6cb6e1-d3ba-4e60-a6ff-96350187a1e3)]
interface nsIDOMMouseEvent : nsIDOMUIEvent
{
readonly attribute long screenX;
@ -79,4 +80,36 @@ interface nsIDOMMouseEvent : nsIDOMUIEvent
in boolean metaKeyArg,
in unsigned short buttonArg,
in nsIDOMEventTarget relatedTargetArg);
// Finger or touch pressure event value
// ranges between 0.0 and 1.0
readonly attribute float mozPressure;
const unsigned short MOZ_SOURCE_UNKNOWN = 0;
const unsigned short MOZ_SOURCE_MOUSE = 1;
const unsigned short MOZ_SOURCE_PEN = 2;
const unsigned short MOZ_SOURCE_ERASER = 3;
const unsigned short MOZ_SOURCE_CURSOR = 4;
const unsigned short MOZ_SOURCE_TOUCH = 5;
const unsigned short MOZ_SOURCE_KEYBOARD = 6;
readonly attribute unsigned short mozInputSource;
void initNSMouseEvent(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in nsIDOMWindow viewArg,
in long detailArg,
in long screenXArg,
in long screenYArg,
in long clientXArg,
in long clientYArg,
in boolean ctrlKeyArg,
in boolean altKeyArg,
in boolean shiftKeyArg,
in boolean metaKeyArg,
in unsigned short buttonArg,
in nsIDOMEventTarget relatedTargetArg,
in float pressure,
in unsigned short inputSourceArg);
};

View File

@ -38,7 +38,7 @@
#include "nsIDOMMouseEvent.idl"
[scriptable, uuid(af08bce0-6821-4bac-8964-0fcee4be549a)]
[scriptable, uuid(eac2ea89-7926-417a-bbc8-bb893e77bebb)]
interface nsIDOMMouseScrollEvent : nsIDOMMouseEvent
{
const long HORIZONTAL_AXIS = 1;

View File

@ -40,7 +40,7 @@
#include "nsIDOMMouseEvent.idl"
[scriptable, uuid(e9ed248b-1995-482f-8407-33ae7744bb9c)]
[scriptable, uuid(e680bab6-740a-4097-b5e0-5e9d7d381cbc)]
interface nsIDOMMozTouchEvent : nsIDOMMouseEvent
{
readonly attribute unsigned long streamId;

View File

@ -1,80 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Oleg Romashin <romaxa@gmail.com> (original author)
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsIDOMMouseEvent.idl"
/**
* The nsIDOMNSMouseEvent interface extends nsIDOMMouseEvent
* by providing various information related to the mouse event.
*/
[scriptable, uuid(8418a402-3c9b-431a-80a7-a59b23ed57a0)]
interface nsIDOMNSMouseEvent : nsIDOMMouseEvent
{
// Finger or touch pressure event value
// ranges between 0.0 and 1.0
readonly attribute float mozPressure;
const unsigned short MOZ_SOURCE_UNKNOWN = 0;
const unsigned short MOZ_SOURCE_MOUSE = 1;
const unsigned short MOZ_SOURCE_PEN = 2;
const unsigned short MOZ_SOURCE_ERASER = 3;
const unsigned short MOZ_SOURCE_CURSOR = 4;
const unsigned short MOZ_SOURCE_TOUCH = 5;
const unsigned short MOZ_SOURCE_KEYBOARD = 6;
readonly attribute unsigned short mozInputSource;
void initNSMouseEvent(in DOMString typeArg,
in boolean canBubbleArg,
in boolean cancelableArg,
in nsIDOMWindow viewArg,
in long detailArg,
in long screenXArg,
in long screenYArg,
in long clientXArg,
in long clientYArg,
in boolean ctrlKeyArg,
in boolean altKeyArg,
in boolean shiftKeyArg,
in boolean metaKeyArg,
in unsigned short buttonArg,
in nsIDOMEventTarget relatedTargetArg,
in float pressure,
in unsigned short inputSourceArg);
};

View File

@ -1,59 +0,0 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 2000
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Tom Pixley <joki@netscape.com> (original author)
* Johnny Stenback <jst@netscape.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsIDOMNSEvent.idl"
[scriptable, uuid(72c9f79c-98cd-4224-a467-86b59c0a38f7)]
interface nsIDOMNSUIEvent : nsIDOMNSEvent
{
const long SCROLL_PAGE_UP = -32768;
const long SCROLL_PAGE_DOWN = 32768;
readonly attribute long layerX;
readonly attribute long layerY;
readonly attribute long pageX;
readonly attribute long pageY;
readonly attribute unsigned long which;
readonly attribute nsIDOMNode rangeParent;
readonly attribute long rangeOffset;
attribute boolean cancelBubble;
readonly attribute boolean isChar;
};

View File

@ -37,7 +37,7 @@
#include "nsIDOMUIEvent.idl"
[scriptable, uuid(911c3352-6690-421c-9bbe-6bd34f1600dc)]
[scriptable, uuid(00028177-32a5-4ea3-b71d-8409beb15225)]
interface nsIDOMScrollAreaEvent : nsIDOMUIEvent
{
// Scroll area client rect

View File

@ -97,7 +97,7 @@
* consuming events.
*/
[scriptable, uuid(fe6b7df3-be7c-4a0b-99a2-da84e956e2f5)]
[scriptable, uuid(0fdcef08-b4e8-4d41-91a0-4f5d259bfb81)]
interface nsIDOMSimpleGestureEvent : nsIDOMMouseEvent
{
/* Swipe direction constants */

View File

@ -47,7 +47,7 @@
* http://www.w3.org/TR/DOM-Level-2-Events/
*/
[scriptable, uuid(25f28689-3f78-47e8-8d76-15b936faf8c1)]
[scriptable, uuid(4f3032d1-bdc5-4f37-bece-af8056d71c5c)]
interface nsIDOMUIEvent : nsIDOMEvent
{
readonly attribute nsIDOMWindow view;
@ -57,4 +57,19 @@ interface nsIDOMUIEvent : nsIDOMEvent
in boolean cancelableArg,
in nsIDOMWindow viewArg,
in long detailArg);
const long SCROLL_PAGE_UP = -32768;
const long SCROLL_PAGE_DOWN = 32768;
readonly attribute long layerX;
readonly attribute long layerY;
readonly attribute long pageX;
readonly attribute long pageY;
readonly attribute unsigned long which;
readonly attribute nsIDOMNode rangeParent;
readonly attribute long rangeOffset;
attribute boolean cancelBubble;
readonly attribute boolean isChar;
};

View File

@ -45,7 +45,7 @@
interface nsIDOMSVGRect;
interface nsIDOMSVGPoint;
[scriptable, uuid(7298880d-127d-470d-a8ac-e5a8e5969270)]
[scriptable, uuid(91f381f0-65ba-4392-bbf9-381fda450d76)]
interface nsIDOMSVGZoomEvent : nsIDOMUIEvent
{
readonly attribute nsIDOMSVGRect zoomRectScreen;

View File

@ -43,7 +43,7 @@
#include "nsIDOMUIEvent.idl"
[scriptable, uuid(1d78da1e-2177-4b8f-9b11-41e78d1e60f7)]
[scriptable, uuid(da4922ca-6dbc-4df6-8187-91f3a71eb48f)]
interface nsIDOMXULCommandEvent : nsIDOMUIEvent
{
/**

View File

@ -51,7 +51,6 @@
#include "nsISelectionController.h"
#include "nsIDOMKeyEvent.h"
#include "nsIDOMMouseEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIPrivateTextEvent.h"
#include "nsIEditorMailSupport.h"
#include "nsILookAndFeel.h"
@ -341,16 +340,15 @@ nsEditorEventListener::KeyPress(nsIDOMEvent* aKeyEvent)
// If the client pass cancelled the event, defaultPrevented will be true
// below.
nsCOMPtr<nsIDOMNSUIEvent> UIEvent = do_QueryInterface(aKeyEvent);
if(UIEvent) {
if (NSEvent) {
PRBool defaultPrevented;
UIEvent->GetPreventDefault(&defaultPrevented);
if(defaultPrevented) {
NSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented) {
return NS_OK;
}
}
nsCOMPtr<nsIDOMKeyEvent>keyEvent = do_QueryInterface(aKeyEvent);
nsCOMPtr<nsIDOMKeyEvent> keyEvent = do_QueryInterface(aKeyEvent);
if (!keyEvent) {
//non-key event passed to keypress. bad things.
return NS_OK;
@ -373,14 +371,9 @@ nsEditorEventListener::MouseClick(nsIDOMEvent* aMouseEvent)
return NS_OK;
}
nsresult rv;
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent = do_QueryInterface(aMouseEvent);
NS_ENSURE_TRUE(nsuiEvent, NS_ERROR_NULL_POINTER);
PRBool preventDefault;
rv = nsuiEvent->GetPreventDefault(&preventDefault);
if (NS_FAILED(rv) || preventDefault)
{
nsresult rv = nsevent->GetPreventDefault(&preventDefault);
if (NS_FAILED(rv) || preventDefault) {
// We're done if 'preventdefault' is true (see for example bug 70698).
return rv;
}
@ -398,10 +391,10 @@ nsEditorEventListener::MouseClick(nsIDOMEvent* aMouseEvent)
{
// Set the selection to the point under the mouse cursor:
nsCOMPtr<nsIDOMNode> parent;
if (NS_FAILED(nsuiEvent->GetRangeParent(getter_AddRefs(parent))))
if (NS_FAILED(mouseEvent->GetRangeParent(getter_AddRefs(parent))))
return NS_ERROR_NULL_POINTER;
PRInt32 offset = 0;
if (NS_FAILED(nsuiEvent->GetRangeOffset(&offset)))
if (NS_FAILED(mouseEvent->GetRangeOffset(&offset)))
return NS_ERROR_NULL_POINTER;
nsCOMPtr<nsISelection> selection;
@ -516,30 +509,28 @@ nsresult
nsEditorEventListener::DragOver(nsIDOMDragEvent* aDragEvent)
{
nsCOMPtr<nsIDOMNode> parent;
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent = do_QueryInterface(aDragEvent);
if (nsuiEvent) {
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aDragEvent);
if (domNSEvent) {
PRBool defaultPrevented;
nsuiEvent->GetPreventDefault(&defaultPrevented);
domNSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented)
return NS_OK;
nsuiEvent->GetRangeParent(getter_AddRefs(parent));
nsCOMPtr<nsIContent> dropParent = do_QueryInterface(parent);
NS_ENSURE_TRUE(dropParent, NS_ERROR_FAILURE);
if (!dropParent->IsEditable())
return NS_OK;
}
PRBool canDrop = CanDrop(aDragEvent);
if (canDrop)
{
aDragEvent->GetRangeParent(getter_AddRefs(parent));
nsCOMPtr<nsIContent> dropParent = do_QueryInterface(parent);
NS_ENSURE_TRUE(dropParent, NS_ERROR_FAILURE);
if (!dropParent->IsEditable()) {
return NS_OK;
}
if (CanDrop(aDragEvent)) {
aDragEvent->PreventDefault(); // consumed
if (mCaret && nsuiEvent)
{
if (mCaret) {
PRInt32 offset = 0;
nsresult rv = nsuiEvent->GetRangeOffset(&offset);
nsresult rv = aDragEvent->GetRangeOffset(&offset);
NS_ENSURE_SUCCESS(rv, rv);
// to avoid flicker, we could track the node and offset to see if we moved
@ -593,25 +584,24 @@ nsEditorEventListener::Drop(nsIDOMDragEvent* aMouseEvent)
{
CleanupDragDropCaret();
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent = do_QueryInterface(aMouseEvent);
if (nsuiEvent) {
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aMouseEvent);
if (domNSEvent) {
PRBool defaultPrevented;
nsuiEvent->GetPreventDefault(&defaultPrevented);
domNSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented)
return NS_OK;
nsCOMPtr<nsIDOMNode> parent;
nsuiEvent->GetRangeParent(getter_AddRefs(parent));
nsCOMPtr<nsIContent> dropParent = do_QueryInterface(parent);
NS_ENSURE_TRUE(dropParent, NS_ERROR_FAILURE);
if (!dropParent->IsEditable())
return NS_OK;
}
PRBool canDrop = CanDrop(aMouseEvent);
if (!canDrop)
{
nsCOMPtr<nsIDOMNode> parent;
aMouseEvent->GetRangeParent(getter_AddRefs(parent));
nsCOMPtr<nsIContent> dropParent = do_QueryInterface(parent);
NS_ENSURE_TRUE(dropParent, NS_ERROR_FAILURE);
if (!dropParent->IsEditable()) {
return NS_OK;
}
if (!CanDrop(aMouseEvent)) {
// was it because we're read-only?
if (mEditor->IsReadonly() || mEditor->IsDisabled())
{
@ -698,15 +688,12 @@ nsEditorEventListener::CanDrop(nsIDOMDragEvent* aEvent)
// Don't bother if collapsed - can always drop
if (!isCollapsed)
{
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent (do_QueryInterface(aEvent));
NS_ENSURE_TRUE(nsuiEvent, PR_FALSE);
nsCOMPtr<nsIDOMNode> parent;
rv = nsuiEvent->GetRangeParent(getter_AddRefs(parent));
rv = aEvent->GetRangeParent(getter_AddRefs(parent));
if (NS_FAILED(rv) || !parent) return PR_FALSE;
PRInt32 offset = 0;
rv = nsuiEvent->GetRangeOffset(&offset);
rv = aEvent->GetRangeOffset(&offset);
NS_ENSURE_SUCCESS(rv, PR_FALSE);
PRInt32 rangeCount;

View File

@ -90,7 +90,7 @@
#include "nsIClipboard.h"
#include "nsITransferable.h"
#include "nsIDragService.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMUIEvent.h"
#include "nsIOutputStream.h"
#include "nsIInputStream.h"
#include "nsDirectoryServiceDefs.h"
@ -1551,20 +1551,20 @@ NS_IMETHODIMP nsHTMLEditor::InsertFromDrop(nsIDOMEvent* aDropEvent)
// if we run into problems here, we'll just assume the user doesn't want a copy
PRBool userWantsCopy = PR_FALSE;
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent(do_QueryInterface(aDropEvent));
NS_ENSURE_TRUE(nsuiEvent, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMMouseEvent> mouseEvent(do_QueryInterface(aDropEvent));
if (mouseEvent)
nsCOMPtr<nsIDOMUIEvent> uiEvent = do_QueryInterface(aDropEvent);
NS_ENSURE_TRUE(uiEvent, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aDropEvent);
if (mouseEvent) {
#if defined(XP_MACOSX)
mouseEvent->GetAltKey(&userWantsCopy);
#else
mouseEvent->GetCtrlKey(&userWantsCopy);
#endif
}
// Current doc is destination
nsCOMPtr<nsIDOMDocument>destdomdoc;
nsCOMPtr<nsIDOMDocument> destdomdoc;
rv = GetDocument(getter_AddRefs(destdomdoc));
NS_ENSURE_SUCCESS(rv, rv);
@ -1578,11 +1578,11 @@ NS_IMETHODIMP nsHTMLEditor::InsertFromDrop(nsIDOMEvent* aDropEvent)
NS_ENSURE_SUCCESS(rv, rv);
// Parent and offset under the mouse cursor
rv = nsuiEvent->GetRangeParent(getter_AddRefs(newSelectionParent));
rv = uiEvent->GetRangeParent(getter_AddRefs(newSelectionParent));
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(newSelectionParent, NS_ERROR_FAILURE);
rv = nsuiEvent->GetRangeOffset(&newSelectionOffset);
rv = uiEvent->GetRangeOffset(&newSelectionOffset);
NS_ENSURE_SUCCESS(rv, rv);
// XXX: This userSelectNode code is a workaround for bug 195957.

View File

@ -49,7 +49,6 @@
#include "nsIDOMRange.h"
#include "nsIDOMNSRange.h"
#include "nsIDOMEventTarget.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMHTMLTableElement.h"
#include "nsIDOMHTMLTableCellElement.h"
#include "nsIContent.h"
@ -152,17 +151,13 @@ nsHTMLEditorEventListener::MouseDown(nsIDOMEvent* aMouseEvent)
NS_ENSURE_TRUE(selection, NS_OK);
// Get location of mouse within target node
nsCOMPtr<nsIDOMNSUIEvent> uiEvent = do_QueryInterface(aMouseEvent);
NS_ENSURE_TRUE(uiEvent, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMNode> parent;
PRInt32 offset = 0;
res = uiEvent->GetRangeParent(getter_AddRefs(parent));
res = mouseEvent->GetRangeParent(getter_AddRefs(parent));
NS_ENSURE_SUCCESS(res, res);
NS_ENSURE_TRUE(parent, NS_ERROR_FAILURE);
res = uiEvent->GetRangeOffset(&offset);
PRInt32 offset = 0;
res = mouseEvent->GetRangeOffset(&offset);
NS_ENSURE_SUCCESS(res, res);
// Detect if mouse point is within current selection for context click

View File

@ -59,7 +59,7 @@
#include "nsIClipboard.h"
#include "nsITransferable.h"
#include "nsIDragService.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMUIEvent.h"
#include "nsCopySupport.h"
// Misc
@ -188,16 +188,16 @@ NS_IMETHODIMP nsPlaintextEditor::InsertFromDrop(nsIDOMEvent* aDropEvent)
// We have to figure out whether to delete and relocate caret only once
// Parent and offset are under the mouse cursor
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent (do_QueryInterface(aDropEvent));
NS_ENSURE_TRUE(nsuiEvent, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMUIEvent> uiEvent = do_QueryInterface(aDropEvent);
NS_ENSURE_TRUE(uiEvent, NS_ERROR_FAILURE);
nsCOMPtr<nsIDOMNode> newSelectionParent;
rv = nsuiEvent->GetRangeParent(getter_AddRefs(newSelectionParent));
rv = uiEvent->GetRangeParent(getter_AddRefs(newSelectionParent));
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(newSelectionParent, NS_ERROR_FAILURE);
PRInt32 newSelectionOffset;
rv = nsuiEvent->GetRangeOffset(&newSelectionOffset);
rv = uiEvent->GetRangeOffset(&newSelectionOffset);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsISelection> selection;

View File

@ -72,7 +72,7 @@
#include "nsIDOMSVGTitleElement.h"
#include "nsIDOMEvent.h"
#include "nsIDOMMouseEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsIDOMNamedNodeMap.h"
#include "nsIFormControl.h"
#include "nsIDOMHTMLInputElement.h"
@ -938,10 +938,10 @@ nsDocShellTreeOwner::HandleEvent(nsIDOMEvent* aEvent)
nsCOMPtr<nsIDOMDragEvent> dragEvent = do_QueryInterface(aEvent);
NS_ENSURE_TRUE(dragEvent, NS_ERROR_INVALID_ARG);
nsCOMPtr<nsIDOMNSUIEvent> nsuiEvent = do_QueryInterface(aEvent);
if (nsuiEvent) {
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aEvent);
if (domNSEvent) {
PRBool defaultPrevented;
nsuiEvent->GetPreventDefault(&defaultPrevented);
domNSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented)
return NS_OK;
}
@ -1684,11 +1684,11 @@ ChromeContextMenuListener::HandleEvent(nsIDOMEvent* aMouseEvent)
nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aMouseEvent);
NS_ENSURE_TRUE(mouseEvent, NS_ERROR_UNEXPECTED);
nsCOMPtr<nsIDOMNSUIEvent> uievent(do_QueryInterface(aMouseEvent));
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aMouseEvent);
if (uievent) {
if (domNSEvent) {
PRBool isDefaultPrevented = PR_FALSE;
uievent->GetPreventDefault(&isDefaultPrevented);
domNSEvent->GetPreventDefault(&isDefaultPrevented);
if (isDefaultPrevented) {
return NS_OK;

View File

@ -0,0 +1,44 @@
License information for hyph_hu.dic:
Derived from hyph_hu.tex in the "huhyphn" package <https://github.com/nagybence/huhyphn>,
by processing the TeX hyphenation patterns with substrings.pl.
% Huhyphn - hungarian hyphenation patterns v20110815
%
% ***** BEGIN LICENSE BLOCK *****
% Version: MPL 1.1/GPL 2.0/LGPL 2.1
%
% The contents of this file are subject to the Mozilla Public License Version
% 1.1 (the "License"); you may not use this file except in compliance with
% the License. You may obtain a copy of the License at
% http://www.mozilla.org/MPL/
%
% Software distributed under the License is distributed on an "AS IS" basis,
% WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
% for the specific language governing rights and limitations under the
% License.
%
% The Original Code is the Huhyphn - hungarian hyphenation patterns.
%
% The Initial Developer of the Original Code is
% Bence Nagy.
% Portions created by the Initial Developer are Copyright (C) 2003
% the Initial Developer. All Rights Reserved.
%
% Contributor(s):
% Bence Nagy <bence.nagy@gmail.com>
%
% Alternatively, the contents of this file may be used under the terms of
% either the GNU General Public License Version 2 or later (the "GPL"), or
% the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
% in which case the provisions of the GPL or the LGPL are applicable instead
% of those above. If you wish to allow use of your version of this file only
% under the terms of either the GPL or the LGPL, and not to allow others to
% use your version of this file under the terms of the MPL, indicate your
% decision by deleting the provisions above and replace them with the notice
% and other provisions required by the GPL or the LGPL. If you do not delete
% the provisions above, a recipient may use your version of this file under
% the terms of any one of the MPL, the GPL or the LGPL.
%
% ***** END LICENSE BLOCK *****
%

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
License information for hyph_it.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK *****
Version: MPL 1.1/GPL 2.0/LGPL 2.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is Mozilla hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@gmail.com>
Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
***** END LICENSE BLOCK *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
At the time this file was first modified, a complete, unmodified copy of
the LPPL Work was available from:
http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/?pathrev=580
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Portions of this file were originally made available under the following license
(copied verbatim from hyph-it.lic.txt in the original work):
Italian hyphenation patterns
(more info about the licence to be added later)
% hyph-it.tex
%
% Italian hyphenation patterns
%
% This file is part of the hyph-utf8 package.
% For more unformation see
%
% http://tug.org/tex-hyphen
%
%------------------------------------------------------------------------------
%
%% Copyright 2008-2011 Claudio Beccari
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any later
% version. The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions
% of LaTeX version 2003/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% This Current Maintainer of this work is Claudio Beccari
% e-mail: claudio dot beccari at gmail dot com
%
% This work consists of the single file hyph-it.tex.
%
% \versionnumber{4.8i} \versiondate{2011/08/16}
%
% These hyphenation patterns for the Italian language are supposed to comply
% with the Recommendation UNI 6461 on hyphenation issued by the Italian
% Standards Institution (Ente Nazionale di Unificazione UNI). No guarantee
% or declaration of fitness to any particular purpose is given and any
% liability is disclaimed.
%
% ChangeLog:
% - 2011-08-16 - Change the licence from GNU LGPL into LPPL v1.3.
% - 2010-05-24 - Fix for Italian patterns for proper hyphenation of -ich and Ljubljana.
% - 2008-06-09 - Import of original ithyph.tex into hyph-utf8 package.
% - 2008-03-08 - (last change in ithyph.tex)
%

View File

@ -0,0 +1,441 @@
UTF-8
LEFTHYPHENMIN 2
RIGHTHYPHENMIN 2
.a3p2n
.a1p
.anti1
.a1n
.a2n1t
.a1nti3m2n
.anti1m
.bio1
.c2
.ca4p3s2
.ca1p
.circu2m1
.ci1r
.ci2r1c
.contro1
.co1n
.co2n1t
.cont2r
.d2
.di2s3cine
.di1s2
.dis1c
.disci1n
.e2x1eu
.e1x
.fra2n2k3
.f2r
.fra1n
.free3
.li3p2sa
.li1p
.li2p1s2
.narco1
.na1r
.na2r1c
.opto1
.o1p
.o2p1t
.orto3p2
.o1r
.o2r1t
.para1
.pa1r
.poli3p2
.po1l
.pre1
.p2r
.p2s2
.re1i2sc2r
.rei1s2
.reis1c
.sha2re3
.s2
.s1h
.sha1r
.tran2s3c
.t2r
.tra1n
.tra2n1s2
.tran2s3d
.tran2s3l
.tra1n2s3n
.tran2s3p
.t1ran2s3r
.tran2s3t
.su2b3lu
.su1b
.sub2l
.su2b3r
.wa2g3n
.wa1g
.we2l2t1
.we1l
2'2
22
a1ia
a1ie
a1io
a1iu
a1uo
a1ya
2a2t.
a1t
e1iu
e2w
o1ia
o1ie
o1io
o1iu
1b
2b1b
2b1c
2b1d
2b1f
2b1m
2b1n
2b1p
2b1s2
2b1t
2b1v
b2l
b2r
2b.
2b2'2
2b22
1c
2c1b
2c1c
2c1d
2c1f
2c1k
2c1m
2c1n
2c1q
2c1s2
2c1t
2c1z
c2h
2c2h1h
2c2h.
2ch'.
c2h2'2
2ch.
c2h22
2ch''.
ch'2'2
2ch.
ch22
2c2h1b
c2h2r
2c2h1n
c2l
c2r
2c.
2c2'2
2c22
1d
2d1b
2d1d
2d1g
2d1l
2d1m
2d1n
2d1p
d2r
2d1s2
2d1t
2d1v
2d1w
2d.
2d2'2
2d22
1f
2f1b
2f1g
2f1f
2f1n
f2l
f2r
2f1s2
2f1t
2f.
2f2'2
2f22
1g
2g1b
2g1d
2g1f
2g1g
g2h
g2l
2g1m
g2n
2g1p
g2r
2g1s2
2g1t
2g1v
2g1w
2g1z
2gh2t
2g.
2g2'2
2g22
1h
2h1b
2h1d
2h1h
hi3p2n
hi1p
h2l
2h1m
2h1n
2h1r
2h1v
2h.
2h2'2
2h22
1j
2j.
2j2'2
2j22
1k
2k1g
2k1f
k2h
2k1k
k2l
2k1m
k2r
2k1s2
2k1t
2k.
2k2'2
2k22
1l
2l1b
2l1c
2l1d
2l3f2
2l1g
l2h
l2j
2l1k
2l1l
2l1m
2l1n
2l1p
2l1q
2l1r
2l1s2
2l1t
2l1v
2l1w
2l1z
2l.
2l'.
l2'2
2l.
l22
2l2'2'2
2l222
1m
2m1b
2m1c
2m1f
2m1l
2m1m
2m1n
2m1p
2m1q
2m1r
2m1s2
2m1t
2m1v
2m1w
2m.
2m2'2
2m22
1n
2n1b
2n1c
2n1d
2n1f
2n1g
2n1k
2n1l
2n1m
2n1n
2n1p
2n1q
2n1r
2n1s2
n2s3fe1r
ns1f
2n1t
2n1v
2n1z
1n2g3n
2nhei1t
n1h
2n.
2n2'2
2n22
1p
2p1d
p2h
p2l
2p1n
3p2ne
2p1p
p2r
2p1s2
3p2si1c
2p1t
2p1z
2p.
2p2'2
2p22
1q
2q1q
2q.
2q2'2
2q22
1r
2r1b
2r1c
2r1d
2r1f
r2h
2r1g
2r1k
2r1l
2r1m
2r1n
2r1p
2r1q
2r1r
2r1s2
2r1t
r2t2s3
2r1v
2r1x
2r1w
2r1z
2r.
2r2'2
2r22
1s2
2s2h1m
s1h
2s2h.
2s2h2'2
2s2h22
2s3s2
s4s3m
2s3p2n
s1p
2s2t1b
s1t
2s2t1c
2s2t1d
2s2t1f
2s2t1g
2s2t1m
2s2t1n
2s2t1p
2s2t2s2
2s2t1t
2s2t1v
2s1z
4s.
4s'.
s2'2
4s.
s22
4s2'2'2
4s222
1t
2t1b
2t1c
2t1d
2t1f
2t1g
t2h
t2l
2t1m
2t1n
2t1p
t2r
t2s2
3t2sc2h
ts1c
2t1t
t2t3s2
2t1v
2t1w
t2z
2tz1k
t2z2s2
2t.
2t'.
t2'2
2t.
t22
2t2'2'2
2t222
1v
2v1c
v2l
v2r
2v1v
2v.
2v'.
v2'2
2v.
v22
2v2'2'2
2v222
1w
w2h
wa2r
2w1y
2w.
2w2'2
2w22
1x
2x1b
2x1c
2x1f
2x1h
2x1m
2x1p
2x1t
2x1w
2x.
2x2'2
2x22
y1ou
y1i
1z
2z1b
2z1d
2z1l
2z1n
2z1p
2z1t
2z1s2
2z1v
2z1z
2z.
2z'.
z2'2
2z.
z22
2z2'2'2
2z222
.z2

View File

@ -0,0 +1,91 @@
License information for hyph_tr.dic:
This file is based on the TeX hyphenation patterns distributed under the
LaTeX Project Public License (LPPL) as part of the hyph-utf8 package.
***** BEGIN LICENSE BLOCK *****
Version: MPL 1.1/GPL 2.0/LGPL 2.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is Mozilla hyphenation service.
The Initial Developer of the Original Code is
Mozilla Foundation.
Portions created by the Initial Developer are Copyright (C) 2011
the Initial Developer. All Rights Reserved.
Contributor(s):
Jonathan Kew <jfkthame@gmail.com>
Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
***** END LICENSE BLOCK *****
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
At the time this file was first modified, a complete, unmodified copy of
the LPPL Work was available from:
http://tug.org/svn/texhyphen/trunk/hyph-utf8/tex/generic/hyph-utf8/patterns/?pathrev=580
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Portions of this file were originally made available under the following license
(copied verbatim from hyph-tr.lic.txt in the original work):
Turkish hyphenation patterns
(more info about the licence to be added later)
% hyph-tr.tex
%
% Turkish hyphenation patterns
%
% This file is auto-generated from source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb that is part of hyph-utf8.
% Please don't modify this file; modify the generating script instead.
%
% Copyright (C) 1987 Pierre A. MacKay
% 2008, 2011 TUG
%
% This program can redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or (at your option) any later version.
%
% Credits:
% - algorithm developed by P. A. MacKay for the Ottoman Texts Project in 1987
% - rules adapted for modern Turkish by H. Turgut Uyar <uyar at itu.edu.tr>
% - initiative to improve Turkish patterns by S. Ekin Kocabas <kocabas at stanford.edu>
% - script written by Mojca Miklavec <mojca.miklavec.lists at gmail.com> in June 2008
%
% See also:
% - http://www.ctan.org/tex-archive/language/turkish/hyphen/turk_hyf.c
% - http://www.tug.org/TUGboat/Articles/tb09-1/tb20mackay.pdf
%
% Differences with Ottoman patterns:
% - adapted for the use on modern TeX engines, using UTF-8 charactes
% - only letters for Modern Turkish + âîû (the first one often needed, the other two don't hurt)
% - (if needed, support for Ottoman Turkish might be provided separately under language code 'ota')
%
% Changes:
% - 2008-06-25/27/28 - create this file by adapting Ottoman rules for modern Turkish
% - 2011-08-10 - add LPPL licence with permission of Pierre A. MacKay
%

View File

@ -0,0 +1,607 @@
UTF-8
LEFTHYPHENMIN 2
RIGHTHYPHENMIN 2
2a1
2â1
2e1
2ı1
2i1
2î1
2o1
2ö1
2u1
2ü1
2û1
1b1
1c1
1ç1
1d1
1f1
1g1
1ğ1
1h1
1j1
1k1
1l1
1m1
1n1
1p1
1r1
1s1
1ş1
1t1
1v1
1y1
1z1
2e2cek.
e1c1
ec2e1
ece1k1
2b1b1
2b1c1
2b1ç1
2b1d1
2b1f1
2b1g1
2b1ğ1
2b1h1
2b1j1
2b1k1
2b1l1
2b1m1
2b1n1
2b1p1
2b1r1
2b1s1
2b1ş1
2b1t1
2b1v1
2b1y1
2b1z1
2c1b1
2c1c1
2c1ç1
2c1d1
2c1f1
2c1g1
2c1ğ1
2c1h1
2c1j1
2c1k1
2c1l1
2c1m1
2c1n1
2c1p1
2c1r1
2c1s1
2c1ş1
2c1t1
2c1v1
2c1y1
2c1z1
2ç1b1
2ç1c1
2ç1ç1
2ç1d1
2ç1f1
2ç1g1
2ç1ğ1
2ç1h1
2ç1j1
2ç1k1
2ç1l1
2ç1m1
2ç1n1
2ç1p1
2ç1r1
2ç1s1
2ç1ş1
2ç1t1
2ç1v1
2ç1y1
2ç1z1
2d1b1
2d1c1
2d1ç1
2d1d1
2d1f1
2d1g1
2d1ğ1
2d1h1
2d1j1
2d1k1
2d1l1
2d1m1
2d1n1
2d1p1
2d1r1
2d1s1
2d1ş1
2d1t1
2d1v1
2d1y1
2d1z1
2f1b1
2f1c1
2f1ç1
2f1d1
2f1f1
2f1g1
2f1ğ1
2f1h1
2f1j1
2f1k1
2f1l1
2f1m1
2f1n1
2f1p1
2f1r1
2f1s1
2f1ş1
2f1t1
2f1v1
2f1y1
2f1z1
2g1b1
2g1c1
2g1ç1
2g1d1
2g1f1
2g1g1
2g1ğ1
2g1h1
2g1j1
2g1k1
2g1l1
2g1m1
2g1n1
2g1p1
2g1r1
2g1s1
2g1ş1
2g1t1
2g1v1
2g1y1
2g1z1
2ğ1b1
2ğ1c1
2ğ1ç1
2ğ1d1
2ğ1f1
2ğ1g1
2ğ1ğ1
2ğ1h1
2ğ1j1
2ğ1k1
2ğ1l1
2ğ1m1
2ğ1n1
2ğ1p1
2ğ1r1
2ğ1s1
2ğ1ş1
2ğ1t1
2ğ1v1
2ğ1y1
2ğ1z1
2h1b1
2h1c1
2h1ç1
2h1d1
2h1f1
2h1g1
2h1ğ1
2h1h1
2h1j1
2h1k1
2h1l1
2h1m1
2h1n1
2h1p1
2h1r1
2h1s1
2h1ş1
2h1t1
2h1v1
2h1y1
2h1z1
2j1b1
2j1c1
2j1ç1
2j1d1
2j1f1
2j1g1
2j1ğ1
2j1h1
2j1j1
2j1k1
2j1l1
2j1m1
2j1n1
2j1p1
2j1r1
2j1s1
2j1ş1
2j1t1
2j1v1
2j1y1
2j1z1
2k1b1
2k1c1
2k1ç1
2k1d1
2k1f1
2k1g1
2k1ğ1
2k1h1
2k1j1
2k1k1
2k1l1
2k1m1
2k1n1
2k1p1
2k1r1
2k1s1
2k1ş1
2k1t1
2k1v1
2k1y1
2k1z1
2l1b1
2l1c1
2l1ç1
2l1d1
2l1f1
2l1g1
2l1ğ1
2l1h1
2l1j1
2l1k1
2l1l1
2l1m1
2l1n1
2l1p1
2l1r1
2l1s1
2l1ş1
2l1t1
2l1v1
2l1y1
2l1z1
2m1b1
2m1c1
2m1ç1
2m1d1
2m1f1
2m1g1
2m1ğ1
2m1h1
2m1j1
2m1k1
2m1l1
2m1m1
2m1n1
2m1p1
2m1r1
2m1s1
2m1ş1
2m1t1
2m1v1
2m1y1
2m1z1
2n1b1
2n1c1
2n1ç1
2n1d1
2n1f1
2n1g1
2n1ğ1
2n1h1
2n1j1
2n1k1
2n1l1
2n1m1
2n1n1
2n1p1
2n1r1
2n1s1
2n1ş1
2n1t1
2n1v1
2n1y1
2n1z1
2p1b1
2p1c1
2p1ç1
2p1d1
2p1f1
2p1g1
2p1ğ1
2p1h1
2p1j1
2p1k1
2p1l1
2p1m1
2p1n1
2p1p1
2p1r1
2p1s1
2p1ş1
2p1t1
2p1v1
2p1y1
2p1z1
2r1b1
2r1c1
2r1ç1
2r1d1
2r1f1
2r1g1
2r1ğ1
2r1h1
2r1j1
2r1k1
2r1l1
2r1m1
2r1n1
2r1p1
2r1r1
2r1s1
2r1ş1
2r1t1
2r1v1
2r1y1
2r1z1
2s1b1
2s1c1
2s1ç1
2s1d1
2s1f1
2s1g1
2s1ğ1
2s1h1
2s1j1
2s1k1
2s1l1
2s1m1
2s1n1
2s1p1
2s1r1
2s1s1
2s1ş1
2s1t1
2s1v1
2s1y1
2s1z1
2ş1b1
2ş1c1
2ş1ç1
2ş1d1
2ş1f1
2ş1g1
2ş1ğ1
2ş1h1
2ş1j1
2ş1k1
2ş1l1
2ş1m1
2ş1n1
2ş1p1
2ş1r1
2ş1s1
2ş1ş1
2ş1t1
2ş1v1
2ş1y1
2ş1z1
2t1b1
2t1c1
2t1ç1
2t1d1
2t1f1
2t1g1
2t1ğ1
2t1h1
2t1j1
2t1k1
2t1l1
2t1m1
2t1n1
2t1p1
2t1r1
2t1s1
2t1ş1
2t1t1
2t1v1
2t1y1
2t1z1
2v1b1
2v1c1
2v1ç1
2v1d1
2v1f1
2v1g1
2v1ğ1
2v1h1
2v1j1
2v1k1
2v1l1
2v1m1
2v1n1
2v1p1
2v1r1
2v1s1
2v1ş1
2v1t1
2v1v1
2v1y1
2v1z1
2y1b1
2y1c1
2y1ç1
2y1d1
2y1f1
2y1g1
2y1ğ1
2y1h1
2y1j1
2y1k1
2y1l1
2y1m1
2y1n1
2y1p1
2y1r1
2y1s1
2y1ş1
2y1t1
2y1v1
2y1y1
2y1z1
2z1b1
2z1c1
2z1ç1
2z1d1
2z1f1
2z1g1
2z1ğ1
2z1h1
2z1j1
2z1k1
2z1l1
2z1m1
2z1n1
2z1p1
2z1r1
2z1s1
2z1ş1
2z1t1
2z1v1
2z1y1
2z1z1
2a3a2
a3â2
a3e2
a3ı2
a3i2
a3î2
a3o2
a3ö2
a3u2
a3ü2
a3û2
â3a2
2â3â2
â3e2
â3ı2
â3i2
â3î2
â3o2
â3ö2
â3u2
â3ü2
â3û2
e3a2
e3â2
2e3e2
e3ı2
e3i2
e3î2
e3o2
e3ö2
e3u2
e3ü2
e3û2
ı3a2
ı3â2
ı3e2
2ı3ı2
ı3i2
ı3î2
ı3o2
ı3ö2
ı3u2
ı3ü2
ı3û2
i3a2
i3â2
i3e2
i3ı2
2i3i2
i3î2
i3o2
i3ö2
i3u2
i3ü2
i3û2
î3a2
î3â2
î3e2
î3ı2
î3i2
2î3î2
î3o2
î3ö2
î3u2
î3ü2
î3û2
o3a2
o3â2
o3e2
o3ı2
o3i2
o3î2
2o3o2
o3ö2
o3u2
o3ü2
o3û2
ö3a2
ö3â2
ö3e2
ö3ı2
ö3i2
ö3î2
ö3o2
2ö3ö2
ö3u2
ö3ü2
ö3û2
u3a2
u3â2
u3e2
u3ı2
u3i2
u3î2
u3o2
u3ö2
2u3u2
u3ü2
u3û2
ü3a2
ü3â2
ü3e2
ü3ı2
ü3i2
ü3î2
ü3o2
ü3ö2
ü3u2
2ü3ü2
ü3û2
û3a2
û3â2
û3e2
û3ı2
û3i2
û3î2
û3o2
û3ö2
û3u2
û3ü2
2û3û2
tu4r4k1
t2u1
tu1r1
m1t4ra1k1
m2t1r1
mtr2a1

View File

@ -681,6 +681,12 @@ else
OUTOPTION = -o # eol
endif # WINNT && !GNU_CC
ifneq (,$(filter ml%,$(AS)))
ASOUTOPTION = -Fo# eol
else
ASOUTOPTION = -o # eol
endif
ifeq (,$(CROSS_COMPILE))
HOST_OUTOPTION = $(OUTOPTION)
else
@ -1286,7 +1292,7 @@ ifdef ASFILES
# The AS_DASH_C_FLAG is needed cause not all assemblers (Solaris) accept
# a '-c' flag.
%.$(OBJ_SUFFIX): %.$(ASM_SUFFIX) $(GLOBAL_DEPS)
$(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(_VPATH_SRCS)
$(AS) $(ASOUTOPTION)$@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(_VPATH_SRCS)
endif
%.$(OBJ_SUFFIX): %.S $(GLOBAL_DEPS)

View File

@ -52,6 +52,7 @@
inline bool
JSAtom::isUnitString(const void *ptr)
{
#ifdef JS_HAS_STATIC_STRINGS
jsuword delta = reinterpret_cast<jsuword>(ptr) -
reinterpret_cast<jsuword>(unitStaticTable);
if (delta >= UNIT_STATIC_LIMIT * sizeof(JSString))
@ -60,11 +61,15 @@ JSAtom::isUnitString(const void *ptr)
/* If ptr points inside the static array, it must be well-aligned. */
JS_ASSERT(delta % sizeof(JSString) == 0);
return true;
#else
return false;
#endif
}
inline bool
JSAtom::isLength2String(const void *ptr)
{
#ifdef JS_HAS_STATIC_STRINGS
jsuword delta = reinterpret_cast<jsuword>(ptr) -
reinterpret_cast<jsuword>(length2StaticTable);
if (delta >= NUM_SMALL_CHARS * NUM_SMALL_CHARS * sizeof(JSString))
@ -73,11 +78,15 @@ JSAtom::isLength2String(const void *ptr)
/* If ptr points inside the static array, it must be well-aligned. */
JS_ASSERT(delta % sizeof(JSString) == 0);
return true;
#else
return false;
#endif
}
inline bool
JSAtom::isHundredString(const void *ptr)
{
#ifdef JS_HAS_STATIC_STRINGS
jsuword delta = reinterpret_cast<jsuword>(ptr) -
reinterpret_cast<jsuword>(hundredStaticTable);
if (delta >= NUM_HUNDRED_STATICS * sizeof(JSString))
@ -86,6 +95,9 @@ JSAtom::isHundredString(const void *ptr)
/* If ptr points inside the static array, it must be well-aligned. */
JS_ASSERT(delta % sizeof(JSString) == 0);
return true;
#else
return false;
#endif
}
inline bool

View File

@ -205,8 +205,8 @@ MarkXML(JSTracer *trc, JSXML *xml, const char *name)
void
PushMarkStack(GCMarker *gcmarker, JSXML *thing)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
if (thing->markIfUnmarked(gcmarker->getMarkColor()))
gcmarker->pushXML(thing);
@ -215,8 +215,8 @@ PushMarkStack(GCMarker *gcmarker, JSXML *thing)
void
PushMarkStack(GCMarker *gcmarker, JSObject *thing)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
if (thing->markIfUnmarked(gcmarker->getMarkColor()))
gcmarker->pushObject(thing);
@ -225,8 +225,8 @@ PushMarkStack(GCMarker *gcmarker, JSObject *thing)
void
PushMarkStack(GCMarker *gcmarker, JSFunction *thing)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
if (thing->markIfUnmarked(gcmarker->getMarkColor()))
gcmarker->pushObject(thing);
@ -235,8 +235,8 @@ PushMarkStack(GCMarker *gcmarker, JSFunction *thing)
void
PushMarkStack(GCMarker *gcmarker, JSShortString *thing)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
(void) thing->markIfUnmarked(gcmarker->getMarkColor());
}
@ -247,8 +247,8 @@ ScanShape(GCMarker *gcmarker, const Shape *shape);
void
PushMarkStack(GCMarker *gcmarker, const Shape *thing)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
thing->compartment() == gcmarker->context->runtime->gcCurrentCompartment);
/* We mark shapes directly rather than pushing on the stack. */
if (thing->markIfUnmarked(gcmarker->getMarkColor()))
@ -562,9 +562,9 @@ restart:
static inline void
ScanRope(GCMarker *gcmarker, JSRope *rope)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
rope->compartment() == gcmarker->context->runtime->gcCurrentCompartment
|| rope->compartment() == gcmarker->context->runtime->atomsCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
rope->compartment() == gcmarker->context->runtime->gcCurrentCompartment
|| rope->compartment() == gcmarker->context->runtime->atomsCompartment);
JS_ASSERT(rope->isMarked());
JSString *leftChild = NULL;
@ -590,9 +590,9 @@ ScanRope(GCMarker *gcmarker, JSRope *rope)
static inline void
PushMarkStack(GCMarker *gcmarker, JSString *str)
{
JS_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
str->compartment() == gcmarker->context->runtime->gcCurrentCompartment
|| str->compartment() == gcmarker->context->runtime->atomsCompartment);
JS_OPT_ASSERT_IF(gcmarker->context->runtime->gcCurrentCompartment,
str->compartment() == gcmarker->context->runtime->gcCurrentCompartment
|| str->compartment() == gcmarker->context->runtime->atomsCompartment);
if (str->isLinear()) {
str->asLinear().mark(gcmarker);

View File

@ -1203,6 +1203,7 @@ js_NumberToStringWithBase(JSContext *cx, jsdouble d, jsint base)
if (JSDOUBLE_IS_INT32(d, &i)) {
if (base == 10 && JSAtom::hasIntStatic(i))
return &JSAtom::intStatic(i);
#ifdef JS_HAS_STATIC_STRINGS
if (jsuint(i) < jsuint(base)) {
if (i < 10)
return &JSAtom::intStatic(i);
@ -1210,6 +1211,7 @@ js_NumberToStringWithBase(JSContext *cx, jsdouble d, jsint base)
JS_ASSERT(JSAtom::hasUnitStatic(c));
return &JSAtom::unitStatic(c);
}
#endif
if (JSFlatString *str = c->dtoaCache.lookup(base, d))
return str;

View File

@ -2884,6 +2884,8 @@ static JSFunctionSpec string_methods[] = {
JS_FS_END
};
#ifdef JS_HAS_STATIC_STRINGS
/*
* Set up some tools to make it easier to generate large tables. After constant
* folding, for each n, Rn(0) is the comma-separated list R(0), R(1), ..., R(2^n-1).
@ -3078,6 +3080,8 @@ const JSString::Data *const JSAtom::intStaticTable[] = { R8(0) };
#undef R3
#undef R7
#endif /* defined(JS_HAS_STATIC_STRINGS) */
JSBool
js_String(JSContext *cx, uintN argc, Value *vp)
{

View File

@ -11475,6 +11475,7 @@ TraceRecorder::callNative(uintN argc, JSOp mode)
}
if (vp[1].isString()) {
JSString *str = vp[1].toString();
#ifdef JS_HAS_STATIC_STRINGS
if (native == js_str_charAt) {
jsdouble i = vp[2].toNumber();
if (JSDOUBLE_IS_NaN(i))
@ -11488,7 +11489,9 @@ TraceRecorder::callNative(uintN argc, JSOp mode)
set(&vp[0], char_ins);
pendingSpecializedNative = IGNORE_NATIVE_CALL_COMPLETE_CALLBACK;
return RECORD_CONTINUE;
} else if (native == js_str_charCodeAt) {
} else
#endif
if (native == js_str_charCodeAt) {
jsdouble i = vp[2].toNumber();
if (JSDOUBLE_IS_NaN(i))
i = 0;
@ -12843,6 +12846,7 @@ TraceRecorder::getCharCodeAt(JSString *str, LIns* str_ins, LIns* idx_ins, LIns**
JS_STATIC_ASSERT(sizeof(JSString) == 16 || sizeof(JSString) == 32);
#ifdef JS_HAS_STATIC_STRINGS
JS_REQUIRES_STACK LIns*
TraceRecorder::getUnitString(LIns* str_ins, LIns* idx_ins)
{
@ -12887,6 +12891,7 @@ TraceRecorder::getCharAt(JSString *str, LIns* str_ins, LIns* idx_ins, JSOp mode,
}
return RECORD_CONTINUE;
}
#endif
// Typed array tracing depends on EXPANDED_LOADSTORE and F2I
#if NJ_EXPANDED_LOADSTORE_SUPPORTED && NJ_F2I_SUPPORTED
@ -12921,6 +12926,7 @@ TraceRecorder::record_JSOP_GETELEM()
LIns* obj_ins = get(&lval);
LIns* idx_ins = get(&idx);
#ifdef JS_HAS_STATIC_STRINGS
// Special case for array-like access of strings.
if (lval.isString() && hasInt32Repr(idx)) {
if (call)
@ -12933,6 +12939,7 @@ TraceRecorder::record_JSOP_GETELEM()
set(&lval, char_ins);
return ARECORD_CONTINUE;
}
#endif
if (lval.isPrimitive())
RETURN_STOP_A("JSOP_GETLEM on a primitive");

View File

@ -1398,10 +1398,12 @@ class TraceRecorder
JS_REQUIRES_STACK RecordingStatus getCharCodeAt(JSString *str,
nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
nanojit::LIns** out_ins);
#ifdef JS_HAS_STATIC_STRINGS
JS_REQUIRES_STACK nanojit::LIns* getUnitString(nanojit::LIns* str_ins, nanojit::LIns* idx_ins);
JS_REQUIRES_STACK RecordingStatus getCharAt(JSString *str,
nanojit::LIns* str_ins, nanojit::LIns* idx_ins,
JSOp mode, nanojit::LIns** out_ins);
#endif
JS_REQUIRES_STACK RecordingStatus initOrSetPropertyByName(nanojit::LIns* obj_ins,
Value* idvalp, Value* rvalp,

View File

@ -61,6 +61,10 @@ JS_BEGIN_EXTERN_C
#define JS_FREE_PATTERN 0xDA
#ifdef DEBUG
#define JS_CRASH_DIAGNOSTICS 1
#endif
#ifdef JS_CRASH_DIAGNOSTICS
#define JS_POISON(p, val, size) memset((p), (val), (size))

View File

@ -250,7 +250,9 @@ couldBeObjectOrString(LIns *ins)
// ins = andq ins_oprnd1, ins_oprnd2
ret = true;
#endif
} else if (ins->isop(LIR_addp) &&
}
#ifdef JS_HAS_STATIC_STRINGS
else if (ins->isop(LIR_addp) &&
((ins->oprnd1()->isImmP() &&
(void *)ins->oprnd1()->immP() == JSAtom::unitStaticTable) ||
(ins->oprnd2()->isImmP() &&
@ -262,6 +264,7 @@ couldBeObjectOrString(LIns *ins)
// ins = addp JSString::unitStringTable, ...
ret = true;
}
#endif
return ret;
}

View File

@ -193,6 +193,7 @@ JSExternalString::new_(JSContext *cx, const jschar *chars, size_t length, intN t
return str;
}
#ifdef JS_HAS_STATIC_STRINGS
inline bool
JSAtom::fitsInSmallChar(jschar c)
{
@ -304,6 +305,82 @@ JSAtom::lookupStatic(const jschar *chars, size_t length)
return NULL;
}
#else /* defined(JS_HAS_STATIC_STRINGS) */
inline bool
JSAtom::fitsInSmallChar(jschar c)
{
return false;
}
inline bool
JSAtom::hasUnitStatic(jschar c)
{
return false;
}
inline JSStaticAtom &
JSAtom::unitStatic(jschar c)
{
JS_NOT_REACHED("no static strings");
return *(JSStaticAtom *)NULL;
}
inline bool
JSAtom::hasUintStatic(uint32 u)
{
return false;
}
inline JSStaticAtom &
JSAtom::uintStatic(uint32 u)
{
JS_NOT_REACHED("no static strings");
return *(JSStaticAtom *)NULL;
}
inline bool
JSAtom::hasIntStatic(int32 i)
{
return false;
}
inline JSStaticAtom &
JSAtom::intStatic(jsint i)
{
JS_NOT_REACHED("no static strings");
return *(JSStaticAtom *)NULL;
}
inline JSLinearString *
JSAtom::getUnitStringForElement(JSContext *cx, JSString *str, size_t index)
{
JS_ASSERT(index < str->length());
return js_NewDependentString(cx, str, index, 1);
}
inline JSStaticAtom &
JSAtom::length2Static(jschar c1, jschar c2)
{
JS_NOT_REACHED("no static strings");
return *(JSStaticAtom *)NULL;
}
inline JSStaticAtom &
JSAtom::length2Static(uint32 i)
{
JS_NOT_REACHED("no static strings");
return *(JSStaticAtom *)NULL;
}
/* Get a static atomized string for chars if possible. */
inline JSStaticAtom *
JSAtom::lookupStatic(const jschar *chars, size_t length)
{
return NULL;
}
#endif /* defined(JS_HAS_STATIC_STRINGS) */
JS_ALWAYS_INLINE void
JSString::finalize(JSContext *cx)
{

View File

@ -655,24 +655,35 @@ class JSExternalString : public JSFixedString
JS_STATIC_ASSERT(sizeof(JSExternalString) == sizeof(JSString));
#if !defined(__ia64__)
/*
* Don't use static strings on ia64 since the compiler may put the static
* memory out of the acceptable 47-bit jsval pointer range.
*/
# define JS_HAS_STATIC_STRINGS
#endif
class JSAtom : public JSFixedString
{
public:
/* Exposed only for jits. */
#ifdef JS_HAS_STATIC_STRINGS
static const size_t UNIT_STATIC_LIMIT = 256U;
static const size_t SMALL_CHAR_LIMIT = 128U; /* Bigger chars cannot be in a length-2 string. */
static const size_t NUM_SMALL_CHARS = 64U;
static const size_t INT_STATIC_LIMIT = 256U;
static const size_t NUM_HUNDRED_STATICS = 156U;
#ifdef __SUNPRO_CC
# pragma align 8 (__1cGJSAtomPunitStaticTable_, __1cGJSAtomSlength2StaticTable_, __1cGJSAtomShundredStaticTable_)
#endif
# ifdef __SUNPRO_CC
# pragma align 8 (__1cGJSAtomPunitStaticTable_, __1cGJSAtomSlength2StaticTable_, __1cGJSAtomShundredStaticTable_)
# endif
static const JSString::Data unitStaticTable[];
static const JSString::Data length2StaticTable[];
static const JSString::Data hundredStaticTable[];
static const JSString::Data *const intStaticTable[];
#endif
private:
/* Defined in jsgcinlines.h */

View File

@ -181,12 +181,12 @@ members = [
#XXX Can't quickstub initProgressEvent because it has long long parameters.
'nsIDOMNSEvent.originalTarget',
'nsIDOMNSEvent.getPreventDefault',
'nsIDOMNSUIEvent.which',
'nsIDOMNSUIEvent.rangeParent',
'nsIDOMNSUIEvent.rangeOffset',
'nsIDOMNSUIEvent.pageX',
'nsIDOMNSUIEvent.pageY',
'nsIDOMNSUIEvent.isChar',
'nsIDOMUIEvent.which',
'nsIDOMUIEvent.rangeParent',
'nsIDOMUIEvent.rangeOffset',
'nsIDOMUIEvent.pageX',
'nsIDOMUIEvent.pageY',
'nsIDOMUIEvent.isChar',
'nsIDOMTouch.*',
'nsIDOMTouchList.*',

View File

@ -69,7 +69,7 @@
#include "nsContentCreatorFunctions.h"
#include "nsContentUtils.h"
#include "nsDisplayList.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsIDOMHTMLInputElement.h"
#include "nsEventListenerManager.h"
#ifdef ACCESSIBILITY
@ -389,10 +389,10 @@ PRBool ShouldProcessMouseClick(nsIDOMEvent* aMouseEvent)
{
// only allow the left button
nsCOMPtr<nsIDOMMouseEvent> mouseEvent = do_QueryInterface(aMouseEvent);
nsCOMPtr<nsIDOMNSUIEvent> uiEvent = do_QueryInterface(aMouseEvent);
NS_ENSURE_TRUE(mouseEvent && uiEvent, PR_FALSE);
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aMouseEvent);
NS_ENSURE_TRUE(mouseEvent && domNSEvent, PR_FALSE);
PRBool defaultPrevented = PR_FALSE;
uiEvent->GetPreventDefault(&defaultPrevented);
domNSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented) {
return PR_FALSE;
}
@ -521,10 +521,10 @@ nsFileControlFrame::BrowseMouseListener::HandleEvent(nsIDOMEvent* aEvent)
return input ? input->FireAsyncClickHandler() : NS_OK;
}
nsCOMPtr<nsIDOMNSUIEvent> uiEvent = do_QueryInterface(aEvent);
NS_ENSURE_STATE(uiEvent);
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aEvent);
NS_ENSURE_STATE(domNSEvent);
PRBool defaultPrevented = PR_FALSE;
uiEvent->GetPreventDefault(&defaultPrevented);
domNSEvent->GetPreventDefault(&defaultPrevented);
if (defaultPrevented) {
return NS_OK;
}

View File

@ -87,7 +87,6 @@
#include "nsIDOMEventListener.h"//observe documents to send onchangenotifications
#include "nsGUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMCharacterData.h" //for selection setting helper func
#include "nsIDOMNodeList.h" //for selection setting helper func

View File

@ -0,0 +1,13 @@
<html class="reftest-wait">
<head>
<script>
function tweak() {
document.body.removeAttribute('style');
document.documentElement.removeAttribute("class");
}
</script>
</head>
<body style="display: inline; mask: url(#a);" onload="setTimeout(tweak, 50)">
<input id="g" style="display: block; mask: url(#g);">
</body>
</html>

View File

@ -369,3 +369,4 @@ asserts(2) load text-overflow-bug670564.xhtml # asserts(2) for bug 436470
load text-overflow-bug671796.xhtml
load 667025.html
asserts(14) load 673770.html # bug 569193 and bug 459597
load 679933-1.html

View File

@ -441,6 +441,20 @@ nsFrame::DestroyFrom(nsIFrame* aDestructRoot)
}
}
// If we have an IB split special sibling, clear its reference to us.
// (Note: This has to happen before we call shell->NotifyDestroyingFrame,
// because that clears our Properties() table.)
if (mState & NS_FRAME_IS_SPECIAL) {
nsIFrame* nextSib = static_cast<nsIFrame*>
(Properties().Get(nsIFrame::IBSplitSpecialSibling()));
if (nextSib) {
NS_WARN_IF_FALSE(this ==
nextSib->Properties().Get(nsIFrame::IBSplitSpecialPrevSibling()),
"Next-sibling / prev-sibling chain is inconsistent");
nextSib->Properties().Delete(nsIFrame::IBSplitSpecialPrevSibling());
}
}
shell->NotifyDestroyingFrame(this);
if ((mState & NS_FRAME_EXTERNAL_REFERENCE) ||

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:manual;" lang="hu">
Min&shy;den em&shy;be&shy;ri lény sza&shy;ba&shy;don szü&shy;le&shy;tik és egyen&shy;lő mél&shy;&shy;&shy;ga és jo&shy;ga van.
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:auto;" lang="hu">
Minden emberi lény szabadon születik és egyenlő méltósága és joga van.
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:manual;" lang="it">
Tut&shy;ti gli es&shy;se&shy;ri uma&shy;ni na&shy;sco&shy;no li&shy;be&shy;ri ed egua&shy;li in di&shy;gni&shy;tà e di&shy;rit&shy;ti.
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:auto;" lang="it">
Tutti gli esseri umani nascono liberi ed eguali in dignità e diritti.
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:manual;" lang="tr">
&shy;tün in&shy;san&shy;lar hür, hay&shy;si&shy;yet ve hak&shy;lar ba&shy;kı&shy;mın&shy;dan eşit do&shy;ğar&shy;lar.
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<div style="width:1em; -moz-hyphens:auto;" lang="tr">
Bütün insanlar hür, haysiyet ve haklar bakımından eşit doğarlar.
</div>
</body>
</html>

View File

@ -115,8 +115,10 @@ random-if(!winWidget) == arial-bold-lam-alef-1.html arial-bold-lam-alef-1-ref.ht
== auto-hyphenation-gl-1.html auto-hyphenation-gl-1-ref.html
== auto-hyphenation-hr-1.html auto-hyphenation-hr-1-ref.html
== auto-hyphenation-hsb-1.html auto-hyphenation-hsb-1-ref.html
== auto-hyphenation-hu-1.html auto-hyphenation-hu-1-ref.html
== auto-hyphenation-ia-1.html auto-hyphenation-ia-1-ref.html
== auto-hyphenation-is-1.html auto-hyphenation-is-1-ref.html
== auto-hyphenation-it-1.html auto-hyphenation-it-1-ref.html
== auto-hyphenation-kmr-1.html auto-hyphenation-kmr-1-ref.html
== auto-hyphenation-la-1.html auto-hyphenation-la-1-ref.html
== auto-hyphenation-lt-1.html auto-hyphenation-lt-1-ref.html
@ -131,4 +133,5 @@ random-if(!winWidget) == arial-bold-lam-alef-1.html arial-bold-lam-alef-1-ref.ht
== auto-hyphenation-sr-1.html auto-hyphenation-sr-1-ref.html
== auto-hyphenation-sv-1.html auto-hyphenation-sv-1-ref.html # test swedish patterns
!= auto-hyphenation-sv-1.html auto-hyphenation-sv-1-notref.html # verify swedish != english
== auto-hyphenation-tr-1.html auto-hyphenation-tr-1-ref.html
== auto-hyphenation-uk-1.html auto-hyphenation-uk-1-ref.html

View File

@ -41,7 +41,6 @@
#include "nsMenuBarListener.h"
#include "nsMenuBarFrame.h"
#include "nsMenuPopupFrame.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsGUIEvent.h"
@ -193,16 +192,16 @@ nsresult
nsMenuBarListener::KeyPress(nsIDOMEvent* aKeyEvent)
{
// if event has already been handled, bail
nsCOMPtr<nsIDOMNSUIEvent> uiEvent ( do_QueryInterface(aKeyEvent) );
if ( uiEvent ) {
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aKeyEvent);
if (domNSEvent) {
PRBool eventHandled = PR_FALSE;
uiEvent->GetPreventDefault ( &eventHandled );
if ( eventHandled )
domNSEvent->GetPreventDefault(&eventHandled);
if (eventHandled) {
return NS_OK; // don't consume event
}
}
//handlers shouldn't be triggered by non-trusted events.
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aKeyEvent);
PRBool trustedEvent = PR_FALSE;
if (domNSEvent) {
domNSEvent->GetIsTrusted(&trustedEvent);
@ -217,11 +216,8 @@ nsMenuBarListener::KeyPress(nsIDOMEvent* aKeyEvent)
if (mAccessKey)
{
nsCOMPtr<nsIDOMNSUIEvent> nsUIEvent = do_QueryInterface(aKeyEvent);
PRBool preventDefault;
nsUIEvent->GetPreventDefault(&preventDefault);
domNSEvent->GetPreventDefault(&preventDefault);
if (!preventDefault) {
nsCOMPtr<nsIDOMKeyEvent> keyEvent = do_QueryInterface(aKeyEvent);
PRUint32 keyCode, charCode;

View File

@ -40,7 +40,7 @@
#include "nsBoxObject.h"
#include "nsIFrame.h"
#include "nsGUIEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMNSEvent.h"
#include "nsMenuBarFrame.h"
#include "nsMenuBarListener.h"
#include "nsMenuFrame.h"
@ -119,12 +119,12 @@ NS_IMETHODIMP nsMenuBoxObject::HandleKeyPress(nsIDOMKeyEvent* aKeyEvent, PRBool*
return NS_OK;
// if event has already been handled, bail
nsCOMPtr<nsIDOMNSUIEvent> uiEvent(do_QueryInterface(aKeyEvent));
if (!uiEvent)
nsCOMPtr<nsIDOMNSEvent> domNSEvent = do_QueryInterface(aKeyEvent);
if (!domNSEvent)
return NS_OK;
PRBool eventHandled = PR_FALSE;
uiEvent->GetPreventDefault(&eventHandled);
domNSEvent->GetPreventDefault(&eventHandled);
if (eventHandled)
return NS_OK;

View File

@ -44,7 +44,6 @@
#include "nsContentUtils.h"
#include "nsIDOMDocument.h"
#include "nsIDOMNSEvent.h"
#include "nsIDOMNSUIEvent.h"
#include "nsIDOMXULElement.h"
#include "nsIXULDocument.h"
#include "nsIXULTemplateBuilder.h"
@ -470,7 +469,7 @@ nsXULPopupManager::InitTriggerEvent(nsIDOMEvent* aEvent, nsIContent* aPopup,
mCachedModifiers = 0;
nsCOMPtr<nsIDOMNSUIEvent> uiEvent = do_QueryInterface(aEvent);
nsCOMPtr<nsIDOMUIEvent> uiEvent = do_QueryInterface(aEvent);
if (uiEvent) {
uiEvent->GetRangeParent(getter_AddRefs(mRangeParent));
uiEvent->GetRangeOffset(&mRangeOffset);

View File

@ -724,6 +724,9 @@ var Browser = {
newTab.chromeTab.dispatchEvent(event);
newTab.browser.messageManager.sendAsyncMessage("Browser:TabOpen");
let cmd = document.getElementById("cmd_showTabs");
cmd.setAttribute("label", this._tabs.length - 1);
return newTab;
},
@ -738,6 +741,9 @@ var Browser = {
}
tab.browser.messageManager.sendAsyncMessage("Browser:CanUnload", {});
let cmd = document.getElementById("cmd_showTabs");
cmd.setAttribute("label", this._tabs.length - 1);
},
_doCloseTab: function _doCloseTab(aTab) {
@ -834,7 +840,10 @@ var Browser = {
if (tab)
tab.active = true;
if (!isFirstTab) {
if (isFirstTab) {
// Don't waste time at startup updating the whole UI; just display the URL.
BrowserUI._titleChanged(browser);
} else {
// Update all of our UI to reflect the new tab's location
BrowserUI.updateURI();
getIdentityHandler().checkIdentity();
@ -2801,8 +2810,9 @@ Tab.prototype = {
// Make sure the viewport height is not shorter than the window when
// the page is zoomed out to show its full width.
if (viewportH * this.clampZoomLevel(this.getPageZoomLevel()) < screenH)
viewportH = Math.max(viewportH, screenH * (browser.contentDocumentWidth / screenW));
let pageZoomLevel = this.getPageZoomLevel(screenW);
let minScale = this.clampZoomLevel(pageZoomLevel, pageZoomLevel);
viewportH = Math.max(viewportH, screenH / minScale);
if (browser.contentWindowWidth != viewportW || browser.contentWindowHeight != viewportH)
browser.setWindowSize(viewportW, viewportH);
@ -2934,11 +2944,23 @@ Tab.prototype = {
}
},
clampZoomLevel: function clampZoomLevel(aScale) {
/**
* Takes a scale and restricts it based on this tab's zoom limits.
* @param aScale The original scale.
* @param aPageZoomLevel (optional) The zoom-to-fit scale, if known.
* This is a performance optimization to avoid extra calls.
*/
clampZoomLevel: function clampZoomLevel(aScale, aPageZoomLevel) {
let md = this.metadata;
if (!this.allowZoom) {
return (md && md.defaultZoom)
? md.defaultZoom
: (aPageZoomLevel || this.getPageZoomLevel());
}
let browser = this._browser;
let bounded = Util.clamp(aScale, ZoomManager.MIN, ZoomManager.MAX);
let md = this.metadata;
if (md && md.minZoom)
bounded = Math.max(bounded, md.minZoom);
if (md && md.maxZoom)
@ -3017,12 +3039,18 @@ Tab.prototype = {
return this.clampZoomLevel(pageZoom);
},
getPageZoomLevel: function getPageZoomLevel() {
/**
* @param aScreenWidth (optional) The width of the browser widget, if known.
* This is a performance optimization to save extra calls to getBoundingClientRect.
* @return The scale at which the browser will be zoomed out to fit the document width.
*/
getPageZoomLevel: function getPageZoomLevel(aScreenWidth) {
let browserW = this._browser.contentDocumentWidth;
if (browserW == 0)
return 1.0;
return this._browser.getBoundingClientRect().width / browserW;
let screenW = aScreenWidth || this._browser.getBoundingClientRect().width;
return screenW / browserW;
},
get allowZoom() {

View File

@ -102,7 +102,7 @@
<command id="cmd_openLocation" oncommand="CommandUpdater.doCommand(this.id);"/>
<!-- tabs -->
<command id="cmd_showTabs" label="&showTabs.label;" oncommand="CommandUpdater.doCommand(this.id);"/>
<command id="cmd_showTabs" oncommand="CommandUpdater.doCommand(this.id);"/>
<command id="cmd_newTab" label="&newtab.label;" oncommand="CommandUpdater.doCommand(this.id);"/>
<command id="cmd_closeTab" label="&closetab.label;" oncommand="CommandUpdater.doCommand(this.id);"/>
#ifdef MOZ_SERVICES_SYNC
@ -222,6 +222,7 @@
<toolbar id="toolbar-main" class="panel-dark window-width" observes="bcast_urlbarState">
<toolbarbutton id="tool-back2" class="tool-back button-actionbar" command="cmd_back"/>
<toolbarbutton id="tool-forward2" class="tool-forward button-actionbar" command="cmd_forward"/>
<toolbarbutton id="tool-tabs" class="button-actionbar" command="cmd_showTabs"/>
#ifdef MOZ_PLATFORM_MAEMO
#if MOZ_PLATFORM_MAEMO != 6
<toolbarbutton id="tool-app-switch" oncommand="BrowserUI.switchTask();"/>
@ -261,8 +262,8 @@
</hbox>
</hbox>
<toolbarbutton id="tool-star2" class="tool-star button-actionbar" command="cmd_star"/>
<spacer class="spacer-actionbar" flex="1"/>
<toolbarbutton id="tool-menu" class="button-actionbar" command="cmd_menu"/>
<toolbarbutton id="tool-tabs" class="button-actionbar" command="cmd_showTabs"/>
#ifndef ANDROID
<toolbarbutton id="tool-app-close" class="urlbar-button" command="cmd_close"/>
#endif

View File

@ -1578,6 +1578,7 @@ setting {
/* Tablet mode */
.spacer-actionbar,
.button-actionbar {
visibility: collapse;
}
@ -1590,6 +1591,7 @@ setting {
background-color: #8db8d8;
}
#toolbar-main[tablet="true"] > .spacer-actionbar,
#toolbar-main[tablet="true"] > .button-actionbar {
visibility: visible;
}

View File

@ -1544,6 +1544,7 @@ setting {
/* Tablet mode */
.spacer-actionbar,
.button-actionbar {
visibility: collapse;
}
@ -1556,6 +1557,7 @@ setting {
background-color: #8db8d8;
}
#toolbar-main[tablet="true"] > .spacer-actionbar,
#toolbar-main[tablet="true"] > .button-actionbar {
visibility: visible;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,223 @@
%filter substitution
%define color_background_active #fff
%define color_text_active #222222
%define color_background_default_window #fff
%define color_background_default rgba(255,255,255,0.95)
%define color_text_default #222222
%define color_divider_border #333333
%define color_button_border #5a5a5a
%define color_background_dialog #fff
%define color_text_dialog #000
%define color_dialog_border #5a5a5a
%define color_background_dlgbuttons #9a9a9a
%define color_background_panel #d6d6d6
%define color_text_panel #000
%define color_background_header #292929
%define color_text_header #999999
%define color_background_scroller #9a9a9a
%define color_background_textbox #fff
%define color_text_textbox #000
%define color_text_button #000
%define color_text_disabled #808080
%define color_text_placeholder #808080
%define color_text_as_link #febc2b
%define color_background_highlight #a7c5f4
%define color_background_highlight_overlay rgba(167, 197, 244, 0.8)
%define color_text_highlight #000
%define color_selection #c0e49a
%define color_subtext_default #aaaaaa
%ifdef ANDROID
%define font_xlarge 6.08mozmm
%define font_xnormal 3.75mozmm
%define font_normal 3.54mozmm
%define font_snormal 3mozmm
%define font_small 2.91mozmm
%define font_xsmall 2.69mozmm
%define font_tiny 2.48mozmm
%define font_xtiny 2.27mozmm
%define touch_row 10.41mozmm
%define touch_button_xlarge 10.62mozmm
%define touch_button_large 9.77mozmm
%define touch_button_small 8.93mozmm
%define touch_button_minwidth 11.86mozmm
%define touch_action_minwidth 21.17mozmm
%define touch_normal 6.77mozmm
%define margin_context_popup 3.39mozmm
%define margin_large 2.54mozmm
%define margin_xxxnormal 1.69mozmm
%define margin_xnormal 1.06mozmm
%define margin_normal 0.85mozmm
%define margin_snormal 0.64mozmm
%define margin_small 0.42mozmm
%define margin_tiny 0.21mozmm
%define margin_xtiny 0.11mozmm
%define padding_xlarge 3.39mozmm
%define padding_large 2.54mozmm
%define padding_xxxnormal 1.69mozmm
%define padding_xxnormal 1.27mozmm
%define padding_xnormal 1.06mozmm
%define padding_normal 0.85mozmm
%define padding_snormal 0.64mozmm
%define padding_small 0.42mozmm
%define padding_xsmall 0.21mozmm
%define padding_tiny 0.11mozmm
%define border_width_xxlarge 0.64mozmm
%define border_width_xlarge 0.42mozmm
%define border_width_large 0.32mozmm
%define border_width_small 0.21mozmm
%define border_width_tiny 0.11mozmm
%define border_radius_normal 0.85mozmm
%define border_radius_small 0.64mozmm
%define border_radius_tiny 0.21mozmm
%define shadow_width_xlarge 1.06mozmm
%define shadow_width_large 0.64mozmm
%define shadow_width_small 0.21mozmm
%define textbox_height 5.08mozmm
%define dropmarker_padding 0.53mozmm
%define progressmeter_height 3.39mozmm
%define urlbar_edit_height 6.35mozmm
%define urlbar_edit_indent 0.85mozmm
%define urlbar_max_width 96mozmm
%define scroller_thickness 0.64mozmm
%define scroller_minimum 1.27mozmm
%define sidebar_width_minimum 8.47mozmm
%define sidebar_button_height 7.41mozmm
%define documenttab_margin_bottom 0.85mozmm
%define placelabel_padding 8.47mozmm
%define placeitem_padding 4.23mozmm
%define autocomplete_item_container_image_padding 0.53mozmm
%define autocomplete_item_container_position 0.21mozmm
%define autocomplete_item_container_size 2.75mozmm
%define autocomplete_item_container_padding 5.08mozmm
%define autocomplete_item_subtitle_margin 2.75mozmm
%define autocomplete_item_label_margin 3.18mozmm
%define autocomplete_item_tags_margin 3.39mozmm
%define autocompleteresult_padding 0.53mozmm
%define dialog_width 76.2mozmm
%define appmenu_portrait_height 21.17mozmm
%define appmenu_button_height 10.48mozmm
%define tablet_panel_controls 40mozmm
%define tablet_panel_minwidth 124mozmm
%else
%define font_xlarge 48px
%define font_xnormal 26px
%define font_normal 24px
%define font_snormal 20px
%define font_small 18px
%define font_xsmall 16px
%define font_tiny 14px
%define font_xtiny 12px
%define touch_row 70px
%define touch_button_xlarge 72px
%define touch_button_large 64px
%define touch_button_small 56px
%define touch_button_minwidth 112px
%define touch_action_minwidth 200px
%define touch_normal 64px
%define margin_context_popup 32px
%define margin_large 24px
%define margin_xxxnormal 16px
%define margin_xnormal 10px
%define margin_normal 8px
%define margin_snormal 6px
%define margin_small 4px
%define margin_tiny 2px
%define margin_xtiny 1px
%define padding_xlarge 32px
%define padding_large 24px
%define padding_xxxnormal 16px
%define padding_xxnormal 12px
%define padding_xnormal 10px
%define padding_normal 8px
%define padding_snormal 6px
%define padding_small 4px
%define padding_xsmall 2px
%define padding_tiny 1px
%define border_width_xxlarge 6px
%define border_width_xlarge 4px
%define border_width_large 3px
%define border_width_small 2px
%define border_width_tiny 1px
%define border_radius_normal 8px
%define border_radius_small 6px
%define border_radius_tiny 2px
%define shadow_width_xlarge 10px
%define shadow_width_large 6px
%define shadow_width_small 2px
%define textbox_height 48px
%define dropmarker_margin 5px
%define progressmeter_height 32px
%define urlbar_edit_height 60px
%define urlbar_edit_indent 8px
%define urlbar_max_width 596px
%define scroller_thickness 6px
%define scroller_minimum 12px
%define sidebar_width_minimum 80px
%define sidebar_button_height 70px
%define documenttab_margin_bottom 8px
%define placelabel_padding 80px
%define placeitem_padding 40px
%define autocomplete_item_container_image_padding 5px
%define autocomplete_item_container_position 2px
%define autocomplete_item_container_size 26px
%define autocomplete_item_container_padding 48px
%define autocomplete_item_subtitle_margin 26px
%define autocomplete_item_label_margin 30px
%define autocomplete_item_tags_margin 32px
%define autocompleteresult_padding 5px
%define dialog_width 500px
%define appmenu_portrait_height 200px
%define appmenu_button_height 99px
%define tablet_panel_controls 270px
%define tablet_panel_minwidth 801px
%endif
%ifdef MOZ_PLATFORM_MAEMO
%define orientation -moz-device-orientation
%elifdef ANDROID
%define orientation -moz-device-orientation
%else
%define orientation orientation
%endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

After

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Some files were not shown because too many files have changed in this diff Show More