diff options
author | Wojtek Kosior <koszko@koszko.org> | 2021-07-21 22:00:20 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2021-07-21 22:00:20 +0200 |
commit | c483ae19e110ef5c1e539883a38fbc79b3dd4e4e (patch) | |
tree | 60298e3852ce74233eacc95c77a6e5cdc297418d /html | |
parent | 5c68551800e477db41ae6fe3a318b2ff2d7a9cb1 (diff) | |
download | browser-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.html | 23 | ||||
-rw-r--r-- | html/display-panel.js | 35 |
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") |