mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 02:08:38 +09:00
Merge remote-tracking branch 'origin/tracking' into custom
This commit is contained in:
commit
be997daa6b
7 changed files with 60 additions and 20 deletions
|
|
@ -23,6 +23,19 @@ function enableSourceMaps() {
|
|||
|
||||
function _resolveSourceMapURL(source) {
|
||||
const { url = "", sourceMapURL = "" } = source;
|
||||
|
||||
const UNSUPPORTED_PROTOCOLS = ["chrome://", "resource://"];
|
||||
if (path.isURL(sourceMapURL) && UNSUPPORTED_PROTOCOLS.some(protocol => sourceMapURL.startsWith(protocol))) {
|
||||
// If it's an internal protocol, don't allow it and return empty.
|
||||
return "";
|
||||
}
|
||||
if (path.isURL(sourceMapURL) && sourceMapURL.startsWith("file://")) {
|
||||
// Only allow file:// source maps from file:// docs
|
||||
if (!url.startsWith("file://")) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
if (path.isURL(sourceMapURL) || url == "") {
|
||||
// If it's already a full URL or the source doesn't have a URL,
|
||||
// don't resolve anything.
|
||||
|
|
|
|||
|
|
@ -1066,6 +1066,15 @@ WebGLContext::DoFakeVertexAttrib0(const char* funcName, GLuint vertexCount)
|
|||
vertexCount = 1;
|
||||
}
|
||||
|
||||
if (gl->WorkAroundDriverBugs() && gl->Vendor() == gl::GLVendor::Nouveau) {
|
||||
// Padded/strided to vec4, so 4x4bytes.
|
||||
const auto effectiveVertAttribBytes = CheckedInt<int32_t>(vertexCount) * 4 * 4;
|
||||
if (!effectiveVertAttribBytes.isValid()) {
|
||||
ErrorOutOfMemory("`offset + count` too large for Mesa.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const auto whatDoesAttrib0Need = WhatDoesVertexAttrib0Need();
|
||||
if (MOZ_LIKELY(whatDoesAttrib0Need == WebGLVertexAttrib0Status::Default))
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -10113,7 +10113,7 @@ class MLoadTypedArrayElementHole
|
|||
return congruentIfOperandsEqual(other);
|
||||
}
|
||||
AliasSet getAliasSet() const override {
|
||||
return AliasSet::Load(AliasSet::UnboxedElement);
|
||||
return AliasSet::Load(AliasSet::UnboxedElement | AliasSet::ObjectFields);
|
||||
}
|
||||
bool canProduceFloat32() const override { return arrayType_ == Scalar::Float32; }
|
||||
|
||||
|
|
|
|||
|
|
@ -137,10 +137,15 @@ LazyIdleThread::EnsureThread()
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
MOZ_ASSERT(!mPendingEventCount, "Shouldn't have events yet!");
|
||||
MOZ_ASSERT(!mIdleNotificationCount, "Shouldn't have idle events yet!");
|
||||
MOZ_ASSERT(!mIdleTimer, "Should have killed this long ago!");
|
||||
MOZ_ASSERT(!mThreadIsShuttingDown, "Should have cleared that!");
|
||||
#ifdef DEBUG
|
||||
{ // Lock scope
|
||||
MutexAutoLock lock(mMutex);
|
||||
MOZ_ASSERT(!mPendingEventCount, "Shouldn't have events yet!");
|
||||
MOZ_ASSERT(!mIdleNotificationCount, "Shouldn't have idle events yet!");
|
||||
MOZ_ASSERT(!mIdleTimer, "Should have killed this long ago!");
|
||||
MOZ_ASSERT(!mThreadIsShuttingDown, "Should have cleared that!");
|
||||
}
|
||||
#endif
|
||||
|
||||
nsresult rv;
|
||||
|
||||
|
|
|
|||
|
|
@ -152,9 +152,10 @@ private:
|
|||
nsCOMPtr<nsIThread> mThread;
|
||||
|
||||
/**
|
||||
* Protected by mMutex. Created when mThread has no pending events and fired
|
||||
* Created when mThread has no pending events and fired
|
||||
* at mOwningThread. Any thread that dispatches to mThread will take ownership
|
||||
* of the timer and fire a separate cancel event to the owning thread.
|
||||
* Only accessed from the owning thread.
|
||||
*/
|
||||
nsCOMPtr<nsITimer> mIdleTimer;
|
||||
|
||||
|
|
|
|||
|
|
@ -280,10 +280,13 @@ nsProcess::ProcessComplete()
|
|||
}
|
||||
|
||||
const char* topic;
|
||||
if (mExitValue < 0) {
|
||||
topic = "process-failed";
|
||||
} else {
|
||||
topic = "process-finished";
|
||||
{ // Lock scope
|
||||
MutexAutoLock lock(mLock);
|
||||
if (mExitValue < 0) {
|
||||
topic = "process-failed";
|
||||
} else {
|
||||
topic = "process-finished";
|
||||
}
|
||||
}
|
||||
|
||||
mPid = -1;
|
||||
|
|
@ -412,8 +415,11 @@ nsProcess::RunProcess(bool aBlocking, char** aMyArgv, nsIObserver* aObserver,
|
|||
}
|
||||
}
|
||||
|
||||
mExitValue = -1;
|
||||
mPid = -1;
|
||||
{
|
||||
MutexAutoLock lock(mLock);
|
||||
mExitValue = -1;
|
||||
mPid = -1;
|
||||
}
|
||||
|
||||
#if defined(PROCESSMODEL_WINAPI)
|
||||
BOOL retVal;
|
||||
|
|
@ -477,6 +483,7 @@ nsProcess::RunProcess(bool aBlocking, char** aMyArgv, nsIObserver* aObserver,
|
|||
mBlocking = aBlocking;
|
||||
if (aBlocking) {
|
||||
Monitor(this);
|
||||
MutexAutoLock lock(mLock);
|
||||
if (mExitValue < 0) {
|
||||
return NS_ERROR_FILE_EXECUTION_FAILED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -155,8 +155,6 @@ nsThreadPool::Run()
|
|||
{
|
||||
mThreadNaming.SetThreadPoolName(mName);
|
||||
|
||||
LOG(("THRD-P(%p) enter %s\n", this, mName.BeginReading()));
|
||||
|
||||
nsCOMPtr<nsIThread> current;
|
||||
nsThreadManager::get().GetCurrentThread(getter_AddRefs(current));
|
||||
|
||||
|
|
@ -169,6 +167,7 @@ nsThreadPool::Run()
|
|||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
listener = mListener;
|
||||
LOG(("THRD-P(%p) enter %s\n", this, mName.BeginReading()));
|
||||
}
|
||||
|
||||
if (listener) {
|
||||
|
|
@ -223,7 +222,12 @@ nsThreadPool::Run()
|
|||
}
|
||||
}
|
||||
if (event) {
|
||||
LOG(("THRD-P(%p) %s running [%p]\n", this, mName.BeginReading(), event.get()));
|
||||
#ifdef DEBUG
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
LOG(("THRD-P(%p) %s running [%p]\n", this, mName.BeginReading(), event.get()));
|
||||
}
|
||||
#endif
|
||||
event->Run();
|
||||
}
|
||||
} while (!exitThread);
|
||||
|
|
@ -335,6 +339,7 @@ nsThreadPool::Shutdown()
|
|||
NS_IMETHODIMP
|
||||
nsThreadPool::GetThreadLimit(uint32_t* aValue)
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
*aValue = mThreadLimit;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
@ -358,6 +363,7 @@ nsThreadPool::SetThreadLimit(uint32_t aValue)
|
|||
NS_IMETHODIMP
|
||||
nsThreadPool::GetIdleThreadLimit(uint32_t* aValue)
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
*aValue = mIdleThreadLimit;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
@ -382,6 +388,7 @@ nsThreadPool::SetIdleThreadLimit(uint32_t aValue)
|
|||
NS_IMETHODIMP
|
||||
nsThreadPool::GetIdleThreadTimeout(uint32_t* aValue)
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
*aValue = mIdleThreadTimeout;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
@ -438,11 +445,9 @@ nsThreadPool::SetListener(nsIThreadPoolListener* aListener)
|
|||
NS_IMETHODIMP
|
||||
nsThreadPool::SetName(const nsACString& aName)
|
||||
{
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
if (mThreads.Count()) {
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
MutexAutoLock lock(mMutex);
|
||||
if (mThreads.Count()) {
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
mName = aName;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue