small_patches_for_Mac
This commit is contained in:
1 parent
a2e9664322
commit
02f49d5791
2 files changed
+140
-33
No files matched your search
+23
-7
@@ -124,11 +124,10 @@ if (typeof globalThis.browser === "undefined" && typeof chrome !== "undefined")
|
||||
chrome.tabs.sendMessage(tabId, message, response => {
|
||||
const err = chrome.runtime.lastError;
|
||||
if (err) {
|
||||
console.warn("Nazeka tabs.sendMessage warning:", err.message);
|
||||
resolve(undefined);
|
||||
} else {
|
||||
resolve(response);
|
||||
}
|
||||
resolve(undefined);
|
||||
} else {
|
||||
resolve(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -1928,8 +1927,25 @@ function lookup_indirect_for_tests(text)
|
||||
{
|
||||
let old_last_lookup = last_lookup;
|
||||
last_lookup = "";
|
||||
let ret = lookup_indirect(text, Date.now(), false, {alternatives_mode: 3, strict_alternatives:true, strict_epwing:true});
|
||||
|
||||
let ret = lookup_indirect(
|
||||
text,
|
||||
Date.now(),
|
||||
false,
|
||||
{
|
||||
alternatives_mode: 3,
|
||||
strict_alternatives: true,
|
||||
strict_epwing: true
|
||||
}
|
||||
);
|
||||
|
||||
last_lookup = old_last_lookup;
|
||||
|
||||
if (!ret || !Array.isArray(ret) || ret.length === 0 || !ret[0]) {
|
||||
console.warn("Nazeka test lookup returned no result for:", text, ret);
|
||||
return null;
|
||||
}
|
||||
|
||||
return ret[0].result;
|
||||
}
|
||||
|
||||
@@ -2373,4 +2389,4 @@ async function regression_tests()
|
||||
|
||||
console.log("exit regression tests");
|
||||
}
|
||||
regression_tests();
|
||||
//regression_tests();
|
||||
+117
-26
@@ -362,6 +362,7 @@ let last_display_x = 0;
|
||||
let last_display_y = 0;
|
||||
function display_div(middle, x, y)
|
||||
{
|
||||
console.log("Nazeka display_div called", x, y, middle);
|
||||
last_display_x = x;
|
||||
last_display_y = y;
|
||||
let font = settings.font.trim().replace(";","").replace("}","");
|
||||
@@ -376,18 +377,51 @@ function display_div(middle, x, y)
|
||||
let newy = y;
|
||||
let mydoc = document;
|
||||
|
||||
while(find_root.parent && find_root.parent != find_root && is_not_frameset(find_root))
|
||||
while(find_root.parent && find_root.parent != find_root && is_not_frameset(find_root))
|
||||
{
|
||||
try
|
||||
{
|
||||
let rect = find_root.frameElement.getBoundingClientRect();
|
||||
let frame_element = find_root.frameElement;
|
||||
if(!frame_element)
|
||||
break;
|
||||
|
||||
let rect = frame_element.getBoundingClientRect();
|
||||
let rx = rect.x;
|
||||
let ry = rect.y;
|
||||
let sx1 = find_root.parent.scrollX;
|
||||
let sy1 = find_root.parent.scrollY;
|
||||
let sx2 = find_root.scrollX;
|
||||
let sy2 = find_root.scrollY;
|
||||
find_root = find_root.parent;
|
||||
|
||||
let parent_window = find_root.parent;
|
||||
|
||||
let sx1 = 0;
|
||||
let sy1 = 0;
|
||||
let sx2 = 0;
|
||||
let sy2 = 0;
|
||||
|
||||
try
|
||||
{
|
||||
sx1 = parent_window.scrollX || 0;
|
||||
sy1 = parent_window.scrollY || 0;
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
// Cross-origin parent frame. Chromium blocks access.
|
||||
break;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
sx2 = find_root.scrollX || 0;
|
||||
sy2 = find_root.scrollY || 0;
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
sx2 = 0;
|
||||
sy2 = 0;
|
||||
}
|
||||
|
||||
find_root = parent_window;
|
||||
newx += (rx + sx1 - sx2);
|
||||
newy += (ry + sy1 - sy2);
|
||||
|
||||
try
|
||||
{
|
||||
mydoc = find_root.document;
|
||||
@@ -397,18 +431,12 @@ function display_div(middle, x, y)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// compensate for body being relative if it is, because our popup is absolute
|
||||
let relative_body = getComputedStyle(mydoc.body).position == "relative";
|
||||
if(relative_body)
|
||||
catch(err)
|
||||
{
|
||||
let rect = mydoc.body.getBoundingClientRect();
|
||||
newx -= rect.x;
|
||||
newy -= rect.y;
|
||||
// overcompensate for scrolling
|
||||
newx -= mydoc.scrollingElement.scrollLeft;
|
||||
newy -= mydoc.scrollingElement.scrollTop;
|
||||
console.warn("Nazeka frame positioning warning:", err);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
let basewidth = Math.round(Number(settings.width));
|
||||
if(settings.x_dodge != 1 && basewidth > mydoc.documentElement.getBoundingClientRect().width/2 - settings.xoffset - 5)
|
||||
@@ -2034,27 +2062,90 @@ let ctrl_down = false;
|
||||
function ele_data_from_point(doc, x, y)
|
||||
{
|
||||
let ret = doc.elementFromPoint(x, y);
|
||||
|
||||
while (ret && ret.tagName && ["frame", "iframe"].includes(ret.tagName.toLowerCase()))
|
||||
{
|
||||
let wind = ret.contentWindow;
|
||||
let rect = ret.getBoundingClientRect();
|
||||
let wind;
|
||||
try
|
||||
{
|
||||
wind = ret.contentWindow;
|
||||
if (!wind) break;
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
let rect;
|
||||
try
|
||||
{
|
||||
rect = ret.getBoundingClientRect();
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
let rx = rect.x;
|
||||
let ry = rect.y;
|
||||
let sx1 = wind.parent.scrollX;
|
||||
let sy1 = wind.parent.scrollY;
|
||||
let sx2 = wind.scrollX;
|
||||
let sy2 = wind.scrollY;
|
||||
|
||||
let sx1 = 0;
|
||||
let sy1 = 0;
|
||||
let sx2 = 0;
|
||||
let sy2 = 0;
|
||||
|
||||
try
|
||||
{
|
||||
if (wind.parent && wind.parent !== wind)
|
||||
{
|
||||
sx1 = wind.parent.scrollX || 0;
|
||||
sy1 = wind.parent.scrollY || 0;
|
||||
}
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
// Cross-origin parent frame; stop descending further
|
||||
break;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
sx2 = wind.scrollX || 0;
|
||||
sy2 = wind.scrollY || 0;
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
sx2 = 0;
|
||||
sy2 = 0;
|
||||
}
|
||||
|
||||
x -= rx;
|
||||
y -= ry;
|
||||
x += sx2;
|
||||
y += sy2;
|
||||
doc = wind.document;
|
||||
ret = doc.elementFromPoint(x, y);
|
||||
|
||||
try
|
||||
{
|
||||
doc = wind.document;
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ret = doc.elementFromPoint(x, y);
|
||||
}
|
||||
catch (err)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return [ret, doc, x, y];
|
||||
}
|
||||
|
||||
|
||||
let last_event_time = 0;
|
||||
function update(event)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user