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 => {
|
chrome.tabs.sendMessage(tabId, message, response => {
|
||||||
const err = chrome.runtime.lastError;
|
const err = chrome.runtime.lastError;
|
||||||
if (err) {
|
if (err) {
|
||||||
console.warn("Nazeka tabs.sendMessage warning:", err.message);
|
resolve(undefined);
|
||||||
resolve(undefined);
|
} else {
|
||||||
} else {
|
resolve(response);
|
||||||
resolve(response);
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -1928,8 +1927,25 @@ function lookup_indirect_for_tests(text)
|
|||||||
{
|
{
|
||||||
let old_last_lookup = last_lookup;
|
let old_last_lookup = 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;
|
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;
|
return ret[0].result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2373,4 +2389,4 @@ async function regression_tests()
|
|||||||
|
|
||||||
console.log("exit 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;
|
let last_display_y = 0;
|
||||||
function display_div(middle, x, y)
|
function display_div(middle, x, y)
|
||||||
{
|
{
|
||||||
|
console.log("Nazeka display_div called", x, y, middle);
|
||||||
last_display_x = x;
|
last_display_x = x;
|
||||||
last_display_y = y;
|
last_display_y = y;
|
||||||
let font = settings.font.trim().replace(";","").replace("}","");
|
let font = settings.font.trim().replace(";","").replace("}","");
|
||||||
@@ -376,18 +377,51 @@ function display_div(middle, x, y)
|
|||||||
let newy = y;
|
let newy = y;
|
||||||
let mydoc = document;
|
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 rx = rect.x;
|
||||||
let ry = rect.y;
|
let ry = rect.y;
|
||||||
let sx1 = find_root.parent.scrollX;
|
|
||||||
let sy1 = find_root.parent.scrollY;
|
let parent_window = find_root.parent;
|
||||||
let sx2 = find_root.scrollX;
|
|
||||||
let sy2 = find_root.scrollY;
|
let sx1 = 0;
|
||||||
find_root = find_root.parent;
|
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);
|
newx += (rx + sx1 - sx2);
|
||||||
newy += (ry + sy1 - sy2);
|
newy += (ry + sy1 - sy2);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
mydoc = find_root.document;
|
mydoc = find_root.document;
|
||||||
@@ -397,18 +431,12 @@ function display_div(middle, x, y)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch(err)
|
||||||
// compensate for body being relative if it is, because our popup is absolute
|
|
||||||
let relative_body = getComputedStyle(mydoc.body).position == "relative";
|
|
||||||
if(relative_body)
|
|
||||||
{
|
{
|
||||||
let rect = mydoc.body.getBoundingClientRect();
|
console.warn("Nazeka frame positioning warning:", err);
|
||||||
newx -= rect.x;
|
break;
|
||||||
newy -= rect.y;
|
|
||||||
// overcompensate for scrolling
|
|
||||||
newx -= mydoc.scrollingElement.scrollLeft;
|
|
||||||
newy -= mydoc.scrollingElement.scrollTop;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let basewidth = Math.round(Number(settings.width));
|
let basewidth = Math.round(Number(settings.width));
|
||||||
if(settings.x_dodge != 1 && basewidth > mydoc.documentElement.getBoundingClientRect().width/2 - settings.xoffset - 5)
|
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)
|
function ele_data_from_point(doc, x, y)
|
||||||
{
|
{
|
||||||
let ret = doc.elementFromPoint(x, y);
|
let ret = doc.elementFromPoint(x, y);
|
||||||
|
|
||||||
while (ret && ret.tagName && ["frame", "iframe"].includes(ret.tagName.toLowerCase()))
|
while (ret && ret.tagName && ["frame", "iframe"].includes(ret.tagName.toLowerCase()))
|
||||||
{
|
{
|
||||||
let wind = ret.contentWindow;
|
let wind;
|
||||||
let rect = ret.getBoundingClientRect();
|
try
|
||||||
|
{
|
||||||
|
wind = ret.contentWindow;
|
||||||
|
if (!wind) break;
|
||||||
|
}
|
||||||
|
catch (err)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
let rect;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
rect = ret.getBoundingClientRect();
|
||||||
|
}
|
||||||
|
catch (err)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
let rx = rect.x;
|
let rx = rect.x;
|
||||||
let ry = rect.y;
|
let ry = rect.y;
|
||||||
let sx1 = wind.parent.scrollX;
|
|
||||||
let sy1 = wind.parent.scrollY;
|
let sx1 = 0;
|
||||||
let sx2 = wind.scrollX;
|
let sy1 = 0;
|
||||||
let sy2 = wind.scrollY;
|
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;
|
x -= rx;
|
||||||
y -= ry;
|
y -= ry;
|
||||||
x += sx2;
|
x += sx2;
|
||||||
y += sy2;
|
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];
|
return [ret, doc, x, y];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let last_event_time = 0;
|
let last_event_time = 0;
|
||||||
function update(event)
|
function update(event)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user