mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
b3dd358267
- Bug 1247362 - move mAnonymousGlobalScope tracing into nsMessageManagerScriptExecutor; r=mccr8 (9b33b54bc9)
- Bug 1195881 - Contextual Identity working under e10s. r=tanvi r=sicking r=baku (b3fd69bd92)
- Bug 1174624 - Add the Transferable parameter into SendAsyncMessage of nsFrameMessageManager. r=baku (33911dc6f7)
- Bug 1174624 - Add PortIdentifier copy code in order to communicate with same process. r=baku (d597f24e20)
- Bug 1234176 - Do not send memory pressure events to applications sent into the background. r=dhylands (687f154573)
- Bug 1201394 - Remove unused mLRUPoolSize member variable. r=gsvelto (a109934b8d)
- Bug 1144132 follow up to fix static check build bustage on a CLOSED TREE with r=me (050f49060e)
- Bug 1153394 - make HangMonitorChild::sInstance an atomic variable; r=billm (89e6905f3f)
- Bug 1202952 - Fix directory picking for e10s on Windows by making FilePickerParent use the correct nsIFilePicker API for directory picking. r=roc (a7e964d4fa)
- Bug 1227312 - Avoid calling FinalizeChildData twice in GenerateCompleteMinidump. r=ted (c29e6786ae)
- Bug 1222109 - Initialize mHasGamepadListener in InitializeMembers(); r=cleu (8057137e5d)
- Bug 1231498 - ContentParent::RecvCreateWindow() should fail in opt builds if passed bad chromeflags. r=billm (639fb93101)
- minor indentation (f5dbd8996c)
- fix misspatch (3b306e0084)
- Bug 1101264: Truncate long sourceName messages since they can be massive data: URLs. r=bent (c528048e58)
- Bug 1233497 - Update test_bug1086684.html to not access CPOWs unsafely inside SpecialPowers. r=mrbkap (d5d161eac2)
- align tests (24d98036dc)
- Bug 1232931 Return null instead of throwing if swm.getWorkerByID() cannot find the worker. r=ochameau IGNORE IDL for comment only change (17f293f323)
- Bug 1186812 (part 3) - Replace nsBaseHashtable::EnumerateRead() calls in dom/{ipc,plugins}/. r=jimm. (a944fa4480)
- Bug 1234656 - Add TouchEvent ctor, r=mbrubeck (842245df14)
- Bug 1246854 - Remove unnecessary warning. r=botond (7d0532e516)
- Bug 1245393 - Measure s{,Default}RootBranch in the Preferences memory reporter. r=froydnj. (be200f9ebe)
- Bug 1089232 - Updates nsContentPrefService to take an extra isPrivate argument. r=adw (9ea4fe075d)
- Bug 1229519: Fix toolkit/components/contentprefs to pass eslint checks. r=mconley (e48b64448b)
- Bug 663570 - MetaCSP Part 6: CSP preload changes (r=sicking) (65700820c1)
- Bug 1030936 - [CSP] remove fast-path for certified apps once the C++ backend is activated. r=ckerschb (e9527e9cfc)
- Bug 1228497 - initialize 3 members in class. r=christophkerschbaumer (44414e8429)
- Bug 1208946 - Strip URIs in CSP reports (r=dveditz) (dd6c18a8ff)
- Bug 1247464 - Run CSP report URIs through the URL classifier. r=ckerschb (ebb3570172)
- Bug 1242909, r=ckerschb (569de89b26)
- Bug 1119565: Ensure that a plugin listener's stream type is always set, even when it is STREAM_TYPE_UNKNOWN; r=jimm (43fb9ebdb9)
- Bug 1228116 - Relax Security checks for DTD loads. r=sicking (b77e2c4531)
- Bug 1195173 - Use channel->ascynOpen2 layout/style/Loader.cpp (r=bz) (97de97b864)
- let-var (fb35f8f50c)
- Bug 1226324 - Do not use NS_ENSURCE_SUCCESS(rv, NS_OK) within nsContentSecurityManager. r=tanvi (745ecaf562)
- Bug 1221365 - Tests for "Is origin potentially trustworthy?" logic. r=ckerschb,bkelly (1d520ebcc5)
- Bug 1132211 - Dispatch an event when <input type=password> is added to a document (including outside of a form). r=smaug (3e9acb8bf3)
- Bug 1217766 - All PDFs trigger the insecure password warning. r=MattN,bz (0ea7e35b96)
- Bug 1155471 - Mark some members of nsNodeInfoManager as MOZ_NON_OWNING_REF; r=baku (bd47bcea10)
- Tests for bug 1200856; r=sicking (454ff8048a)
- Bug 1243453 P1 Make nsCORSListenerProxy call UpdateChannel() for internal redirects. r=sicking (f2a45b1997)
- Bug 1243453 P2 Test XHR with a non-intercepting service worker. r=ehsan (d83b31ab3d)
- Bug 1169233 - Get grey (inactive) text color from menu labels. r=karlt (470155483b)
- Bug 1161056 - Gtk3 - use sMozWindowBackground colors for combobox background. r=karlt (4502f5583a)
- Bug 1169232 - [gtk3] Add background class to tooltip window to get correct background color. r=karlt (9421a23b1c)
- Bug 1219717 - Derive text color/background from GtkTextView. r=karlt (a39cd997ee)
- Bug 1241239 - Fix missing 'using mozilla::LogLevel' in nsIdleServiceGTK.cpp. r=karlt (16bacfc530)
- Bug 1209659 - Disable client-side decorations on broken Gtk3 versions (<3.20). r=karlt (d5cbd4c0fb)
- Bug 540078 - Remove assertion annotations that are no longer needed and add crashtest. (89f33bb00c)
- Bug 1168219 - Make nsIWidget::Configuration::mChild a smart pointer on widget/qt too. r=froydnj (0f2f97a31b)
- Bug 1234385: Add downloadable blocklist support for between comparison types, by recognizing driverVersionMax when parsing. r=benwa (87617d0fa1)
- Bug 1112712 - DOM key mapping for soft1 soft2 and call keys r=schien (3f4360e64b)
- Bug 1237691 - Implement Oculus Head Pose Prediction (3f6b0122e3)
- Bug 1041882 - Remove Froyo-specific OMX plugin support. r=snorp (eb2f6dd36a)
- Bug 1205930 - Tighten up warnings handling in media/omx-plugin/. r=gerald. (86845d720a)
- Bug 1153849 - Use MOZ_JPEG_CFLAGS when build libyuv with system jpeg. r=jesup (a38f53057d)
- Bug 1240635 - Interpret glyph x-offsets on SVG vertical text paths in the correct direction. r=longsonr (ce90452da1)
- Bug 1185266 - Look up painting properties on the SVGTextFrame when painting text frames that are direct children of <text>. r=jwatt (9c89ab71eb)
- Bug 1143096 - Init all WebMBufferedParser members - r=kinetik (7df2e4e0c3)
- Bug 1231855 - Avoid inserting out of (timecode) order entries in WebMBufferedParser. r=jya (f7806faec4)
193 lines
5.2 KiB
C++
193 lines
5.2 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "mozilla/dom/Touch.h"
|
|
|
|
#include "mozilla/dom/EventTarget.h"
|
|
#include "mozilla/dom/TouchEvent.h"
|
|
#include "nsGlobalWindow.h"
|
|
#include "nsContentUtils.h"
|
|
#include "nsIContent.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
// static
|
|
already_AddRefed<Touch>
|
|
Touch::Constructor(const GlobalObject& aGlobal,
|
|
const TouchInit& aParam,
|
|
ErrorResult& aRv)
|
|
{
|
|
// Annoyingly many parameters, make sure the ordering is the same as in the
|
|
// Touch constructor.
|
|
RefPtr<Touch> touch = new Touch(aParam.mTarget,
|
|
aParam.mIdentifier,
|
|
aParam.mPageX,
|
|
aParam.mPageY,
|
|
aParam.mScreenX,
|
|
aParam.mScreenY,
|
|
aParam.mClientX,
|
|
aParam.mClientY,
|
|
aParam.mRadiusX,
|
|
aParam.mRadiusY,
|
|
aParam.mRotationAngle,
|
|
aParam.mForce);
|
|
return touch.forget();
|
|
}
|
|
|
|
Touch::Touch(EventTarget* aTarget,
|
|
int32_t aIdentifier,
|
|
int32_t aPageX,
|
|
int32_t aPageY,
|
|
int32_t aScreenX,
|
|
int32_t aScreenY,
|
|
int32_t aClientX,
|
|
int32_t aClientY,
|
|
int32_t aRadiusX,
|
|
int32_t aRadiusY,
|
|
float aRotationAngle,
|
|
float aForce)
|
|
{
|
|
mTarget = aTarget;
|
|
mIdentifier = aIdentifier;
|
|
mPagePoint = CSSIntPoint(aPageX, aPageY);
|
|
mScreenPoint = CSSIntPoint(aScreenX, aScreenY);
|
|
mClientPoint = CSSIntPoint(aClientX, aClientY);
|
|
mRefPoint = LayoutDeviceIntPoint(0, 0);
|
|
mPointsInitialized = true;
|
|
mRadius.x = aRadiusX;
|
|
mRadius.y = aRadiusY;
|
|
mRotationAngle = aRotationAngle;
|
|
mForce = aForce;
|
|
|
|
mChanged = false;
|
|
mMessage = 0;
|
|
nsJSContext::LikelyShortLivingObjectCreated();
|
|
}
|
|
|
|
Touch::Touch(int32_t aIdentifier,
|
|
LayoutDeviceIntPoint aPoint,
|
|
LayoutDeviceIntPoint aRadius,
|
|
float aRotationAngle,
|
|
float aForce)
|
|
{
|
|
mIdentifier = aIdentifier;
|
|
mPagePoint = CSSIntPoint(0, 0);
|
|
mScreenPoint = CSSIntPoint(0, 0);
|
|
mClientPoint = CSSIntPoint(0, 0);
|
|
mRefPoint = aPoint;
|
|
mPointsInitialized = false;
|
|
mRadius = aRadius;
|
|
mRotationAngle = aRotationAngle;
|
|
mForce = aForce;
|
|
|
|
mChanged = false;
|
|
mMessage = 0;
|
|
nsJSContext::LikelyShortLivingObjectCreated();
|
|
}
|
|
|
|
Touch::Touch(const Touch& aOther)
|
|
: mTarget(aOther.mTarget)
|
|
, mRefPoint(aOther.mRefPoint)
|
|
, mChanged(aOther.mChanged)
|
|
, mMessage(aOther.mMessage)
|
|
, mIdentifier(aOther.mIdentifier)
|
|
, mPagePoint(aOther.mPagePoint)
|
|
, mClientPoint(aOther.mClientPoint)
|
|
, mScreenPoint(aOther.mScreenPoint)
|
|
, mRadius(aOther.mRadius)
|
|
, mRotationAngle(aOther.mRotationAngle)
|
|
, mForce(aOther.mForce)
|
|
, mPointsInitialized(aOther.mPointsInitialized)
|
|
{
|
|
nsJSContext::LikelyShortLivingObjectCreated();
|
|
}
|
|
|
|
Touch::~Touch()
|
|
{
|
|
}
|
|
|
|
// static
|
|
bool
|
|
Touch::PrefEnabled(JSContext* aCx, JSObject* aGlobal)
|
|
{
|
|
return TouchEvent::PrefEnabled(aCx, aGlobal);
|
|
}
|
|
|
|
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(Touch, mTarget)
|
|
|
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Touch)
|
|
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
|
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
|
NS_INTERFACE_MAP_END
|
|
|
|
NS_IMPL_CYCLE_COLLECTING_ADDREF(Touch)
|
|
NS_IMPL_CYCLE_COLLECTING_RELEASE(Touch)
|
|
|
|
EventTarget*
|
|
Touch::GetTarget() const
|
|
{
|
|
nsCOMPtr<nsIContent> content = do_QueryInterface(mTarget);
|
|
if (content && content->ChromeOnlyAccess() &&
|
|
!nsContentUtils::LegacyIsCallerNativeCode() &&
|
|
!nsContentUtils::CanAccessNativeAnon()) {
|
|
return content->FindFirstNonChromeOnlyAccessContent();
|
|
}
|
|
|
|
return mTarget;
|
|
}
|
|
|
|
void
|
|
Touch::InitializePoints(nsPresContext* aPresContext, WidgetEvent* aEvent)
|
|
{
|
|
if (mPointsInitialized) {
|
|
return;
|
|
}
|
|
mClientPoint = Event::GetClientCoords(
|
|
aPresContext, aEvent, mRefPoint, mClientPoint);
|
|
mPagePoint = Event::GetPageCoords(
|
|
aPresContext, aEvent, mRefPoint, mClientPoint);
|
|
mScreenPoint = Event::GetScreenCoords(aPresContext, aEvent, mRefPoint);
|
|
mPointsInitialized = true;
|
|
}
|
|
|
|
void
|
|
Touch::SetTarget(EventTarget* aTarget)
|
|
{
|
|
mTarget = aTarget;
|
|
}
|
|
|
|
bool
|
|
Touch::Equals(Touch* aTouch)
|
|
{
|
|
return mRefPoint == aTouch->mRefPoint &&
|
|
mForce == aTouch->Force() &&
|
|
mRotationAngle == aTouch->RotationAngle() &&
|
|
mRadius.x == aTouch->RadiusX() &&
|
|
mRadius.y == aTouch->RadiusY();
|
|
}
|
|
|
|
JSObject*
|
|
Touch::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
|
|
{
|
|
return TouchBinding::Wrap(aCx, this, aGivenProto);
|
|
}
|
|
|
|
// Parent ourselves to the global of the target. This achieves the desirable
|
|
// effects of parenting to the target, but avoids making the touch inaccessible
|
|
// when the target happens to be NAC and therefore reflected into the XBL scope.
|
|
nsIGlobalObject*
|
|
Touch::GetParentObject()
|
|
{
|
|
if (!mTarget) {
|
|
return nullptr;
|
|
}
|
|
return mTarget->GetOwnerGlobal();
|
|
}
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|