mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 23:08:39 +09:00
Merge remote-tracking branch 'origin/master' into custom
This commit is contained in:
commit
11fc0dd014
7 changed files with 44 additions and 34 deletions
|
|
@ -4,3 +4,4 @@ ecosia
|
|||
twitter
|
||||
wikipedia
|
||||
yahoo
|
||||
yandex-ru
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
|
||||
<os:ShortName>Яндекс</os:ShortName>
|
||||
<os:Description>Воспользуйтесь Яндексом для поиска в Интернете.</os:Description>
|
||||
<os:InputEncoding>UTF-8</os:InputEncoding>
|
||||
<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAB50lEQVQ4T43SvWsacRgH8OcPCITSLRQ6BSRL1gxZTNZQsgYC3QKunVoMnTKFhBQSnDqIUa5gxNbBCgriC4pv50sJ1lIR5SROpRVbz+O4b5/flbvedekJH+557nvfH8chdbvdIFMYPAgBICdqt9uKpmnw8huNRuDnX8J5QKvVgmEYnqiqClmWwZ113kmger0OXdf/Wv6EIb0BTo+AgB94ceDKJ5MJuHPOMwlUqVSwWq1sevQaxqvn0O5l6HdvgaMdV75cLtFoNMC9Xd6JisWiedNiPNuB9l4yZ+1jEvBvuXJBURRwL8YzUT6fx2KxsGHrKdQPCXNW794Bvieu3CLegrsnlM1mMZ/PbfqeH6vToDkvb2+Bx49cuWU2m4G7bUqn0xiPx7ZpqYRf29v4cXyMxf4+tLU1V24ZDAbgbptSqRSGw6HL9OwM37n4bXPTvP6bC7lcDtw9oWQyiX6/b/vMH1XZ2MAoEMDXqytM+QBnLtRqNXAvxjNRPB5Hr9ez9Q8PMfD50OM/2P3FBb7wAc680+mIMri3yzuRJEloNpsmORTCJy7INzd/9stLc7dyIZPJgDvnPJNA0WgU1WrVkxJ/4FgsBu6s804CRSKRh0KhgHK5/F+JRAL8fJBnslA4HH7NHhg8CDnLwm8IYz560xw92AAAAABJRU5ErkJggg==</os:Image>
|
||||
<SearchForm>https://www.yandex.ru/?clid=2348180</SearchForm>
|
||||
<os:Url type="text/html" method="GET" template="https://yandex.ru/yandsearch/" resultDomain="yandex.ru">
|
||||
<os:Param name="clid" value="2348180"/>
|
||||
<os:Param name="text" value="{searchTerms}"/>
|
||||
</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="https://suggest.yandex.net/suggest-ff.cgi" resultDomain="suggest.yandex.net">
|
||||
<os:Param name="part" value="{searchTerms}"/>
|
||||
</os:Url>
|
||||
</SearchPlugin>
|
||||
|
|
@ -834,7 +834,7 @@ js::atomics_wait(JSContext* cx, unsigned argc, Value* vp)
|
|||
}
|
||||
|
||||
bool
|
||||
js::atomics_wake(JSContext* cx, unsigned argc, Value* vp)
|
||||
js::atomics_notify(JSContext* cx, unsigned argc, Value* vp)
|
||||
{
|
||||
CallArgs args = CallArgsFromVp(argc, vp);
|
||||
HandleValue objv = args.get(0);
|
||||
|
|
@ -874,7 +874,7 @@ js::atomics_wake(JSContext* cx, unsigned argc, Value* vp)
|
|||
iter = iter->lower_pri;
|
||||
if (c->offset != offset || !c->rt->fx.isWaiting())
|
||||
continue;
|
||||
c->rt->fx.wake(FutexRuntime::WakeExplicit);
|
||||
c->rt->fx.notify(FutexRuntime::NotifyExplicit);
|
||||
++woken;
|
||||
--count;
|
||||
} while (count > 0 && iter != waiters);
|
||||
|
|
@ -950,7 +950,7 @@ js::FutexRuntime::isWaiting()
|
|||
// When a worker is awoken for an interrupt it goes into state
|
||||
// WaitingNotifiedForInterrupt for a short time before it actually
|
||||
// wakes up and goes into WaitingInterrupted. In those states the
|
||||
// worker is still waiting, and if an explicit wake arrives the
|
||||
// worker is still waiting, and if an explicit notify arrives the
|
||||
// worker transitions to Woken. See further comments in
|
||||
// FutexRuntime::wait().
|
||||
return state_ == Waiting || state_ == WaitingInterrupted || state_ == WaitingNotifiedForInterrupt;
|
||||
|
|
@ -1029,14 +1029,14 @@ js::FutexRuntime::wait(JSContext* cx, js::UniqueLock<js::Mutex>& locked,
|
|||
// should be woken when the interrupt handler returns.
|
||||
// To that end, we flag the thread as interrupted around
|
||||
// the interrupt and check state_ when the interrupt
|
||||
// handler returns. A wake() call that reaches the
|
||||
// handler returns. A notify() call that reaches the
|
||||
// runtime during the interrupt sets state_ to Woken.
|
||||
//
|
||||
// - It is in principle possible for wait() to be
|
||||
// reentered on the same thread/runtime and waiting on the
|
||||
// same location and to yet again be interrupted and enter
|
||||
// the interrupt handler. In this case, it is important
|
||||
// that when another agent wakes waiters, all waiters using
|
||||
// that when another agent notifies waiters, all waiters using
|
||||
// the same runtime on the same location are woken in LIFO
|
||||
// order; FIFO may be the required order, but FIFO would
|
||||
// fail to wake up the innermost call. Interrupts are
|
||||
|
|
@ -1073,25 +1073,25 @@ finished:
|
|||
}
|
||||
|
||||
void
|
||||
js::FutexRuntime::wake(WakeReason reason)
|
||||
js::FutexRuntime::notify(NotifyReason reason)
|
||||
{
|
||||
MOZ_ASSERT(isWaiting());
|
||||
|
||||
if ((state_ == WaitingInterrupted || state_ == WaitingNotifiedForInterrupt) && reason == WakeExplicit) {
|
||||
if ((state_ == WaitingInterrupted || state_ == WaitingNotifiedForInterrupt) && reason == NotifyExplicit) {
|
||||
state_ = Woken;
|
||||
return;
|
||||
}
|
||||
switch (reason) {
|
||||
case WakeExplicit:
|
||||
case NotifyExplicit:
|
||||
state_ = Woken;
|
||||
break;
|
||||
case WakeForJSInterrupt:
|
||||
case NotifyForJSInterrupt:
|
||||
if (state_ == WaitingNotifiedForInterrupt)
|
||||
return;
|
||||
state_ = WaitingNotifiedForInterrupt;
|
||||
break;
|
||||
default:
|
||||
MOZ_CRASH("bad WakeReason in FutexRuntime::wake()");
|
||||
MOZ_CRASH("bad NotifyReason in FutexRuntime::notify()");
|
||||
}
|
||||
cond_->notify_all();
|
||||
}
|
||||
|
|
@ -1108,7 +1108,8 @@ const JSFunctionSpec AtomicsMethods[] = {
|
|||
JS_INLINABLE_FN("xor", atomics_xor, 3,0, AtomicsXor),
|
||||
JS_INLINABLE_FN("isLockFree", atomics_isLockFree, 1,0, AtomicsIsLockFree),
|
||||
JS_FN("wait", atomics_wait, 4,0),
|
||||
JS_FN("wake", atomics_wake, 3,0),
|
||||
JS_FN("notify", atomics_notify, 3,0),
|
||||
JS_FN("wake", atomics_notify, 3,0), //Legacy name
|
||||
JS_FS_END
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ MOZ_MUST_USE bool atomics_or(JSContext* cx, unsigned argc, Value* vp);
|
|||
MOZ_MUST_USE bool atomics_xor(JSContext* cx, unsigned argc, Value* vp);
|
||||
MOZ_MUST_USE bool atomics_isLockFree(JSContext* cx, unsigned argc, Value* vp);
|
||||
MOZ_MUST_USE bool atomics_wait(JSContext* cx, unsigned argc, Value* vp);
|
||||
MOZ_MUST_USE bool atomics_wake(JSContext* cx, unsigned argc, Value* vp);
|
||||
MOZ_MUST_USE bool atomics_notify(JSContext* cx, unsigned argc, Value* vp);
|
||||
|
||||
/* asm.js callouts */
|
||||
namespace wasm { class Instance; }
|
||||
|
|
@ -63,10 +63,10 @@ public:
|
|||
MOZ_MUST_USE bool initInstance();
|
||||
void destroyInstance();
|
||||
|
||||
// Parameters to wake().
|
||||
enum WakeReason {
|
||||
WakeExplicit, // Being asked to wake up by another thread
|
||||
WakeForJSInterrupt // Interrupt requested
|
||||
// Parameters to notify().
|
||||
enum NotifyReason {
|
||||
NotifyExplicit, // Being asked to wake up by another thread
|
||||
NotifyForJSInterrupt // Interrupt requested
|
||||
};
|
||||
|
||||
// Result code from wait().
|
||||
|
|
@ -83,29 +83,27 @@ public:
|
|||
// times allowed; specify mozilla::Nothing() for an indefinite
|
||||
// wait.
|
||||
//
|
||||
// wait() will not wake up spuriously. It will return true and
|
||||
// set *result to a return code appropriate for
|
||||
// Atomics.wait() on success, and return false on error.
|
||||
// wait() will not wake up spuriously.
|
||||
MOZ_MUST_USE bool wait(JSContext* cx, js::UniqueLock<js::Mutex>& locked,
|
||||
mozilla::Maybe<mozilla::TimeDuration>& timeout, WaitResult* result);
|
||||
|
||||
// Wake the thread represented by this Runtime.
|
||||
// Notify the thread represented by this Runtime.
|
||||
//
|
||||
// The futex lock must be held around this call. (The sleeping
|
||||
// thread will not wake up until the caller of Atomics.wake()
|
||||
// thread will not wake up until the caller of Atomics.notify()
|
||||
// releases the lock.)
|
||||
//
|
||||
// If the thread is not waiting then this method does nothing.
|
||||
//
|
||||
// If the thread is waiting in a call to wait() and the
|
||||
// reason is WakeExplicit then the wait() call will return
|
||||
// reason is NotifyExplicit then the wait() call will return
|
||||
// with Woken.
|
||||
//
|
||||
// If the thread is waiting in a call to wait() and the
|
||||
// reason is WakeForJSInterrupt then the wait() will return
|
||||
// reason is NotifyForJSInterrupt then the wait() will return
|
||||
// with WaitingNotifiedForInterrupt; in the latter case the caller
|
||||
// of wait() must handle the interrupt.
|
||||
void wake(WakeReason reason);
|
||||
void notify(NotifyReason reason);
|
||||
|
||||
bool isWaiting();
|
||||
|
||||
|
|
@ -128,7 +126,7 @@ public:
|
|||
// interrupt handler
|
||||
WaitingInterrupted, // We are waiting, but have been interrupted
|
||||
// and are running the interrupt handler
|
||||
Woken // Woken by a script call to Atomics.wake
|
||||
Woken // Woken by a script call to Atomics.notify
|
||||
};
|
||||
|
||||
// Condition variable that this runtime will wait on.
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ if (helperThreadCount() === 0) {
|
|||
quit();
|
||||
}
|
||||
|
||||
var mem = new Int32Array(new SharedArrayBuffer(1024));
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// wait() returns "not-equal" if the value is not the expected one.
|
||||
|
|
@ -102,7 +104,7 @@ dprint("Sleeping for 2 seconds");
|
|||
sleep(2);
|
||||
dprint("Waking the main thread now");
|
||||
setSharedArrayBuffer(null);
|
||||
assertEq(Atomics.wake(mem, 0, 1), 1); // Can fail spuriously but very unlikely
|
||||
assertEq(Atomics.notify(mem, 0, 1), 1); // Can fail spuriously but very unlikely
|
||||
`);
|
||||
|
||||
var then = Date.now();
|
||||
|
|
@ -113,14 +115,14 @@ assertEq(getSharedArrayBuffer(), null); // The worker's clearing of the mbx is v
|
|||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Test the default argument to atomics.wake()
|
||||
// Test the default argument to atomics.notify()
|
||||
|
||||
setSharedArrayBuffer(mem.buffer);
|
||||
|
||||
evalInWorker(`
|
||||
var mem = new Int32Array(getSharedArrayBuffer());
|
||||
sleep(2); // Probably long enough to avoid a spurious error next
|
||||
assertEq(Atomics.wake(mem, 0), 1); // Last argument to wake should default to +Infinity
|
||||
assertEq(Atomics.notify(mem, 0), 1); // Last argument to wake should default to +Infinity
|
||||
`);
|
||||
|
||||
var then = Date.now();
|
||||
|
|
|
|||
|
|
@ -589,7 +589,7 @@ JSRuntime::requestInterrupt(InterruptMode mode)
|
|||
// Atomics.wait().
|
||||
fx.lock();
|
||||
if (fx.isWaiting())
|
||||
fx.wake(FutexRuntime::WakeForJSInterrupt);
|
||||
fx.notify(FutexRuntime::NotifyForJSInterrupt);
|
||||
fx.unlock();
|
||||
InterruptRunningJitCode(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1319,12 +1319,7 @@ pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
|
|||
|
||||
pref("javascript.options.showInConsole", false);
|
||||
|
||||
#ifdef RELEASE_OR_BETA
|
||||
// Disabled in Beta and Release for now, see bug 1225406
|
||||
pref("javascript.options.shared_memory", false);
|
||||
#else
|
||||
pref("javascript.options.shared_memory", true);
|
||||
#endif
|
||||
|
||||
pref("javascript.options.throw_on_debuggee_would_run", false);
|
||||
pref("javascript.options.dump_stack_on_debuggee_would_run", false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue