aboutsummaryrefslogtreecommitdiff
path: root/html
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-07-21 22:00:20 +0200
committerWojtek Kosior <koszko@koszko.org>2021-07-21 22:00:20 +0200
commitc483ae19e110ef5c1e539883a38fbc79b3dd4e4e (patch)
tree60298e3852ce74233eacc95c77a6e5cdc297418d /html
parent5c68551800e477db41ae6fe3a318b2ff2d7a9cb1 (diff)
downloadbrowser-extension-c483ae19e110ef5c1e539883a38fbc79b3dd4e4e.tar.gz
browser-extension-c483ae19e110ef5c1e539883a38fbc79b3dd4e4e.zip
add ability to query page content from repo and display it in the popup
Diffstat (limited to 'html')
-rw-r--r--html/display-panel.html23
-rw-r--r--html/display-panel.js35
2 files changed, 48 insertions, 10 deletions
diff --git a/html/display-panel.html b/html/display-panel.html
index 9b6d619..d8d7f5d 100644
--- a/html/display-panel.html
+++ b/html/display-panel.html
@@ -21,6 +21,14 @@
display: none;
}
+ .show_hide_next2:not(:checked)+* {
+ display: none;
+ }
+
+ .show_hide_next2:checked+*+* {
+ display: none;
+ }
+
.hide {
display: none;
}
@@ -34,10 +42,6 @@
#container_for_injected>#none_injected:not(:last-child) {
display: none;
}
-
- input#connected_chbx:checked+div+h3 {
- display: none;
- }
</style>
</head>
<body>
@@ -65,12 +69,19 @@
</label>
<ul id="possible_patterns"></ul>
- <input id="connected_chbx" type="checkbox" class="show_next"></input>
+ <input id="connected_chbx" type="checkbox" class="show_hide_next2"></input>
<div>
<h3>
Matched pattern: <span id="pattern">...</span>
<button id="view_pattern" class="hide">
- View in settings
+ View in settings
+ </button>
+ <input id="query_started_chbx" type="checkbox" class="show_hide_next2"></input>
+ <div id="container_for_repo_responses">
+ <h3>Queried from repositories</h3>
+ </div>
+ <button id="query_pattern">
+ Search for matching patterns
</button>
</h3>
<h3>
diff --git a/html/display-panel.js b/html/display-panel.js
index 650c234..1693182 100644
--- a/html/display-panel.js
+++ b/html/display-panel.js
@@ -144,6 +144,7 @@ function handle_page_info(message)
}
const connected_chbx = by_id("connected_chbx");
+const query_pattern_but = by_id("query_pattern");
function try_to_connect(tab_id)
{
@@ -151,21 +152,35 @@ function try_to_connect(tab_id)
const connect_info = {name: CONNECTION_TYPE.ACTIVITY_INFO, frameId: 0};
const port = browser.tabs.connect(tab_id, connect_info);
- port.onDisconnect.addListener(port => handle_disconnect(tab_id));
+ const button_cb = (e) => start_querying_repos(port);
+
+ port.onDisconnect.addListener(port => handle_disconnect(tab_id, button_cb));
port.onMessage.addListener(handle_activity_report);
+ query_pattern_but.addEventListener("click", button_cb);
+
if (is_mozilla)
setTimeout(() => monitor_connecting(port, tab_id), 1000);
}
+const query_started_chbx = by_id("query_started_chbx");
+
+function start_querying_repos(port)
+{
+ port.postMessage("dummy (trigger repo querying)");
+ query_started_chbx.checked = true;
+}
+
const loading_chbx = by_id("loading_chbx");
-function handle_disconnect(tab_id)
+function handle_disconnect(tab_id, button_cb)
{
+ query_pattern_but.removeEventListener("click", button_cb);
+
if (is_chrome && !browser.runtime.lastError)
return;
- /* return if there was no connection initialization failure */
+ /* return if error was not during connection initialization */
if (connected_chbx.checked)
return;
@@ -189,6 +204,7 @@ const blocked_span = by_id("blocked");
const payload_span = by_id("payload");
const view_payload_but = by_id("view_payload");
const container_for_injected = by_id("container_for_injected");
+const container_for_repo_responses = by_id("container_for_repo_responses");
function handle_activity_report(message)
{
@@ -197,7 +213,7 @@ function handle_activity_report(message)
const [type, data] = message;
if (type === "settings") {
- let [pattern, settings] = data;
+ let [pattern, settings, repos] = data;
settings = settings || {};
blocked_span.textContent = settings.allow ? "no" : "yes";
@@ -231,6 +247,17 @@ function handle_activity_report(message)
container_for_injected.appendChild(h4);
container_for_injected.appendChild(pre);
}
+ if (type === "repo_query_result") {
+ const [repo_url, response_text] = data;
+
+ const h4 = document.createElement("h4");
+ const pre = document.createElement("pre");
+ h4.textContent = repo_url;
+ pre.textContent = response_text;
+
+ container_for_repo_responses.appendChild(h4);
+ container_for_repo_responses.appendChild(pre);
+ }
}
by_id("settings_but")